Releases: elbwalker/walkerOS
walkerOS v1.1.2
Changes
Fix transformer chains computed on-demand instead of pre-computed
Transformer chains configured via destination.before now work correctly.
Previously, chains were pre-computed at initialization but the resolution
function was never called, causing before configuration to be silently
ignored.
What changed:
- Chains now compute at push time from
destination.config.before - Removed unused
collector.transformerChainstate - Removed dead
resolveTransformerGraph()function - Dynamic destinations now support
beforeproperty
Published Packages
walkerOS v1.1.1
Changes
Add inline code support for sources, transformers, and destinations
- Add
InlineCodeSchemawithpush,type, andinitfields for embedding
JavaScript in flow configs - Make
packagefield optional in reference schemas (eitherpackageorcode
required at runtime) - Update
flow-complete.jsonexample with inline code demonstrations including
enricher transformer, debug destination, and conditional mappings
Published Packages
walkerOS v1.1.0
Changes
Enables explicit control over transformer chain order by accepting arrays for
next and before properties, bypassing automatic chain resolution.
Array chain behavior:
| Syntax | Behavior |
|---|---|
"next": "validate" |
Walks chain via each transformer's next property |
"next": ["validate", "enrich"] |
Uses exact order specified, ignores transformer next |
Example:
{
"sources": {
"http": {
"package": "@walkeros/server-source-express",
"next": ["validate", "enrich", "redact"]
}
},
"destinations": {
"analytics": {
"package": "@walkeros/server-destination-gcp",
"before": ["format", "anonymize"]
}
}
}When walking a chain encounters an array next, it appends all items and stops
(does not recursively resolve those transformers' next properties).
Add inline code syntax for sources, transformers, and destinations
Enables defining custom logic directly in flow.json using code objects instead
of requiring external packages. This is ideal for simple one-liner
transformations.
Example:
{
"transformers": {
"enrich": {
"code": {
"push": "$code:(event) => ({ ...event, data: { ...event.data, enriched: true } })"
},
"config": {}
}
}
}Code object properties:
push- The push function with$code:prefix (required)type- Optional instance type identifierinit- Optional init function with$code:prefix
Rules:
- Use
packageORcode, never both (CLI validates this) configstays separate fromcode$code:prefix outputs raw JavaScript at bundle time
Session detection extracted to standalone sourceSession
- New
sourceSessionfor composable session management - Browser source no longer includes session by default
- To restore previous behavior, add sourceSession alongside browser source:
sources: {
browser: sourceBrowser,
session: { code: sourceSession, config: { storage: true } }
}Add transformer support to CLI bundler
- Detect and bundle transformer packages from flow.json configuration
- Support transformer chaining via
nextfield - Handle
$code:prefix for inline JavaScript in transformer config - Generate proper import statements and config objects for transformers
- Document transformer configuration in flow.json
Add default exports for simpler CLI flow.json configuration
Add array support for transformer chain configuration
Published Packages
- @walkeros/cli
- @walkeros/collector
- @walkeros/core
- @walkeros/server-destination-aws
- @walkeros/server-destination-gcp
- @walkeros/server-source-express
- @walkeros/server-source-fetch
- @walkeros/server-transformer-fingerprint
- @walkeros/transformer-validator
- @walkeros/web-source-browser
- @walkeros/web-source-session
walkerOS v1.0.1
Changes
Add prefix support for inline JavaScript in flow.json
Values prefixed with are output as raw JavaScript instead of quoted
strings in the bundled output. This enables features like callbacks and
predicates directly in JSON configuration files.
Example:
Outputs:
Auto-detect default export for sources and destinations
Sources and destinations now automatically use their package's default export,
eliminating the need to specify for the main function.
Before (verbose):
After (simpler):
The field is now only needed for utility functions. Explicit
still works for packages without default exports.
Implicit collector: auto-add @walkeros/collector when sources/destinations exist
The CLI now automatically adds and imports
when your flow has sources or destinations. No need to declare the collector
package.
Before (verbose):
After (simpler):
You only need to specify when you want to pin a specific
version or use a local path for development.
Queue on() events until destination init completes
Destinations now receive and other lifecycle events only after
has completed. Previously, was called before , requiring
workarounds like gtag's call inside its handler.
Also renamed queue properties for clarity:
- →
- →
Fix CLI commands hanging after completion
Commands (, , ) would hang indefinitely after completing
successfully due to open handles keeping the Node.js event loop alive.
Root cause: esbuild worker threads and pacote HTTP keep-alive connections were
not being cleaned up.
Fixes:
- Add after builds to terminate worker threads
- Add explicit on successful completion for all CLI commands
Breaking change: Unified dynamic pattern syntax in Flow configuration, sorry!
New syntax:
-
- Reference definitions (replaces
)
- Reference definitions (replaces
-
- Reference variables (replaces )
- or - Reference environment variables
Migration:
| Old Syntax | New Syntax |
| --------------------------------------- | -------------------------------------- |
| | |
| | |
| or | or |
Note: Only supports defaults () because environment
variables are external and unpredictable. Variables () are explicitly
defined in config, so missing ones indicate a configuration error and will
throw.
Example:
Remove initializeGtag workaround from on() handler
The handler no longer needs to call as a
workaround. With the collector fix, is now guaranteed to run after
completes, so is always available.
Add modulePathIgnorePatterns to Jest config to prevent Haste module collisions
with cached packages
Fix simulate command JSON output to use consistent property instead of
Published Packages
walkerOS v1.0.0
Hello World 🖖
Open-source event data collection. Collect event data for digital analytics in a unified and privacy-centric way.
Published Packages
- @walkeros/core@1.0.0
- @walkeros/collector@1.0.0
- @walkeros/cli@1.0.0
- @walkeros/walker.js@1.0.0
- @walkeros/web-core@1.0.0
- @walkeros/web-source-browser@1.0.0
- @walkeros/web-source-datalayer@1.0.0
- @walkeros/web-destination-api@1.0.0
- @walkeros/web-destination-gtag@1.0.0
- @walkeros/web-destination-meta@1.0.0
- @walkeros/web-destination-piwikpro@1.0.0
- @walkeros/web-destination-plausible@1.0.0
- @walkeros/server-core@1.0.0
- @walkeros/server-source-aws@1.0.0
- @walkeros/server-source-express@1.0.0
- @walkeros/server-source-fetch@1.0.0
- @walkeros/server-source-gcp@1.0.0
- @walkeros/server-destination-api@1.0.0
- @walkeros/server-destination-aws@1.0.0
- @walkeros/server-destination-datamanager@1.0.0
- @walkeros/server-destination-gcp@1.0.0
- @walkeros/server-destination-meta@1.0.0
- @walkeros/server-transformer-fingerprint@1.0.0
- @walkeros/transformer-validator@1.0.0
- walkeros@1.0.0
v1.6.5
v1.6.4
v1.6.3
v1.6.2
v1.6.1
- walker, utils, and destinations are also available as ESM web modules (#169)
- added
getSessionfunction to triggersession startevents (#162) - add a destination with config parameter (#156)
- internal destination queue for better async support (#161)
- reset timing with each new run (#145)
- custom destination types as generic interfaces (#156)