@walkeros/core 4.7.0-next-1790245733116 → 4.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,71 +1,106 @@
1
1
  # @walkeros/core
2
2
 
3
- ## 4.7.0-next-1790245733116
3
+ ## 4.7.0
4
4
 
5
5
  ### Minor Changes
6
6
 
7
- - 57788bc: `anonymizeIP` now handles IPv6, keeping the first 48 bits, and treats
8
- an IPv4-mapped address (`::ffff:1.2.3.4`) as IPv4; both returned an empty
9
- string before. `getHashServer` takes an optional `key` for a keyed HMAC hash;
10
- without it the output is unchanged.
7
+ - 74821ed: Inside an array, a transformer's own `next` runs right after it, then
8
+ the array continues. `many` works in every chain field, each match becoming a
9
+ copy with a derived `event.id`. Unknown transformer ids warn and the chain
10
+ continues, and a throwing transformer counts in `status.failed`. `walkChain`
11
+ and `extractTransformerNextMap` are no longer exported.
11
12
  - 06b498a: `walkeros bundle --manifest <url|path>` builds every artifact a build
12
13
  manifest lists and uploads each one with a result. Declare build values in
13
14
  `config.bundle.env`; they must be literal strings and supply `$env` in web
14
15
  bundles. Step packages, overrides and their dependencies must now come from
15
16
  the npm registry: git, file and URL specs are rejected.
16
- - f5a1cfd: New `collector.next`: a transformer chain that runs once per event,
17
- before the event is handed to the destinations. Everything it produces reaches
18
- every destination, and a `stop` in it drops the event for all of them;
19
- per-destination filtering stays on `destination.before`. The explorer flow map
20
- draws this chain, and the MCP guidance describes it.
21
- - 06b498a: New `@walkeros/core/node` entry point with the Node-only helpers the
22
- CLI and the runner both share: `scrubSecrets`, `redactLine`,
23
- `createCLILogger`, `createCLILoggerConfig`, `getTmpPath`, `createTmpResolver`
24
- and `getDefaultTmpRoot`. The main entry gains `createTimer` and
25
- `getErrorMessage`.
26
- - 2aebc53: A mapping value now runs exactly one producer, in the order `loop`,
27
- `map`, `set`, `key`, `fn`; the rest never run, so a `fn` next to a `key` is
28
- ignored. To transform a field, use `fn` alone. A `loop` over something that is
29
- not a list now yields the `value` fallback instead of the whole event.
30
- - f5a1cfd: Inside an array, a transformer's own `next` now runs right after it,
31
- then the array continues. `many` works in every chain field: each match
32
- becomes its own copy with a derived `event.id` that finishes the rest of the
33
- path. Unknown transformer ids log a warning and the chain continues.
34
- `@walkeros/collector` no longer exports `walkChain` or
35
- `extractTransformerNextMap`.
36
- - f5a1cfd: Routes can drop an event with `{ stop: true }`, optionally gated by
37
- `match`, in every chain field. A route `match` now reads `{ ingest, event }`
38
- and resolves only when the event reaches it, so it sees values earlier steps
39
- loaded. `getNextSteps(spec, root)` now requires that root and returns
40
- `NextSteps`; the new `getRouteGraph` lists every branch.
41
- - 2aebc53: `state` paths now resolve against `{ event, ingest }` and need an
42
- `event.` or `ingest.` prefix, so a store can be keyed by request context. A
43
- `get` can write into `ingest`, keeping the value off the event. An
44
- unresolvable key logs a warning instead of failing silently.
45
- `buildCacheContext` is renamed `createMappingRoot`.
46
- - 8f8aea6: Every step field now survives bundling. A transformer with only
47
- `state` or `mapping`, and inline code steps with `cache` or `state`, were
48
- silently dropped from the bundle before and did nothing at runtime. `mapping`
49
- is now a typed transformer field, and bundles no longer carry `variables`.
50
- - 2aebc53: `walkeros validate` now reports paths that can never resolve: an
51
- `ingest.` path in mapping `data` or `policy`, which resolve against the event,
52
- and a cache key or route match without an `event.` or `ingest.` prefix. Flow
53
- steps now declare `state`, so its paths are validated too.
54
- - 2aebc53: A mapping or `policy` entry that resolves to nothing now removes the
55
- field instead of leaving an `undefined` placeholder, so a denied consent gate
56
- redacts it. The validate transformer never throws: an engine failure becomes
57
- an issue, and `pass` mode no longer drops events that carry such fields.
17
+ - 74821ed: New `collector.next`: a transformer chain run once per event before
18
+ the destinations; a `stop` there drops it for all of them. Routes in every
19
+ chain field can drop an event with `{ stop: true }`, optionally gated by
20
+ `match`. A route `match` reads `{ ingest, event }` when the event reaches it.
21
+ New `getRouteGraph`; `getNextSteps(spec, root)` requires its root.
22
+ - 64b06de: Packages with several exports, such as the GCP and AWS sources and
23
+ destinations, now publish a settings schema per export. `walkeros validate`
24
+ and MCP `package_get` use the schema of the export a step imports. Pub/Sub,
25
+ BigQuery, SNS and SQS steps pinned to this release or later are checked
26
+ instead of skipped; older pins still report a skip.
27
+ - 4b4937f: `getFlowSettings` throws a typed `FlowCycleError` for `$flow` and
28
+ `$var` cycles, with `code` (`FLOW_CYCLE` or `VAR_CYCLE`) and the `chain` of
29
+ names; the message is unchanged. `validateFlowConfig` reference warnings now
30
+ carry the path of the value that holds the reference, and an unresolvable root
31
+ `contract` is an error at `contract`.
32
+ - 74821ed: `anonymizeIP` now handles IPv6 (first 48 bits) and IPv4-mapped
33
+ addresses; `getHashServer` takes an optional HMAC `key`. The fingerprint
34
+ transformer works with just `{ salt }`: it hashes the anonymized IP, reduced
35
+ user agent and site, rotated daily. Hashes change once on upgrade;
36
+ `rotate: "none"` keeps them stable. A missing salt warns.
37
+ - 74821ed: A flow's own log lines now go through the CLI logger: its debug lines
38
+ need `--verbose`, and they go to stderr with `--json`. Version numbers are no
39
+ longer masked as tokens, so `walkeros deploy` shows the image tag and
40
+ `bundle --stats` shows package versions. Paths under the system temp directory
41
+ print as `$TMPDIR/...`.
42
+ - 74821ed: A mapping value runs exactly one producer, in the order `loop`,
43
+ `map`, `set`, `key`, `fn`, so a `fn` next to a `key` is ignored. A `loop` over
44
+ a non-list yields the `value` fallback. A mapping or `policy` entry that
45
+ resolves to nothing removes the field. The validate transformer never throws
46
+ and `pass` mode keeps such events.
47
+ - 06b498a: `walkeros run` is removed. Build with `walkeros bundle`, then start
48
+ the artifact with `runneros start dist/flow.mjs` from the new
49
+ `@walkeros/runner` package, which the `walkeros/flow` image now runs. The CLI
50
+ no longer depends on `express`, `cors` or `p-limit`. New `@walkeros/core/node`
51
+ entry with the Node-only logger, redaction and temp-path helpers.
52
+ - 74821ed: Simulate and push output, CLI and flow logs, and the MCP
53
+ `flow_simulate` and `flow_push` results mask the values of secrets a flow
54
+ references, also inside JSON strings, numbers and URLs. `scrubSecrets` takes
55
+ `known`, the CLI logger `knownSecrets`, and `scrubJson` replaces
56
+ `maskKnownNumbers`. MCP `flow_push` and `flow_simulate` read their config
57
+ once; a config that cannot be read stops the run.
58
+ - 74821ed: `walkeros push --simulate` prints each step's mapping and vendor
59
+ calls (`simulations` in `--json`) and reports init or push failures. New
60
+ flags: `--ingest`, `--consent` (MCP `state.consent`), `--command` for command
61
+ examples, `--simulate collector.default` and `--mock collector.next.<id>`. A
62
+ destination that sent nothing says why in `skipped`. `toPrintable` is
63
+ exported.
64
+ - 74821ed: Simulate records every vendor call through one recorder, `observeEnv`
65
+ from `@walkeros/core`, and runs offline: BigQuery, Data Manager and the
66
+ Sheets, GCS and S3 stores reach the network through `env`. Client and `Env`
67
+ types of BigQuery, Firehose, PostHog, SQS and Pub/Sub are structural.
68
+ `@walkeros/cli` exports `resolveExportName` and `selectDevExamples` and drops
69
+ `findExample` and `compareOutput`.
70
+ - 74821ed: `state` paths resolve against `{ event, ingest }` and need an
71
+ `event.` or `ingest.` prefix; a `get` can write into `ingest`, and an
72
+ unresolvable key warns. Every step field now survives bundling: transformers
73
+ with only `state` or `mapping`, and code steps with `cache` or `state`, were
74
+ silently dropped before. `buildCacheContext` is renamed `createMappingRoot`.
75
+ - e860006: `state` gains `mapping` to shape what a lookup returns or a write
76
+ stores, merged into the target. An undeclared `state.store`, or a `file: true`
77
+ store, is now a validation error in `walkeros validate` and deploy preflight;
78
+ at runtime the entry logs an error or is skipped with a warning. The s3 and
79
+ gcs stores report their `file` mode.
80
+ - 74821ed: An unknown `$var` or `$store` now fails `walkeros validate`, as it
81
+ fails the bundle. References resolve per flow, and `description` text is never
82
+ read as a reference. A dangling contract `extend`, an unknown `$contract` on a
83
+ validate step, or a contract cycle is an error. Contracts bind only on
84
+ validate steps. Malformed references and unknown or shadowed routes warn.
85
+ - 4f89234: Web builds now assign the collector to the global named in
86
+ `config.settings.windowCollector`, default `walkerOS`. Before,
87
+ `walkeros bundle` ignored the setting. It accepts a name or a `$var`/`$env`
88
+ reference; the resolved name must be a valid, non-reserved JavaScript
89
+ identifier, or the build and `walkeros validate` report an error.
58
90
 
59
91
  ### Patch Changes
60
92
 
61
- - ef02916: The JSON Schema for a mapping loop now sets `minItems` and `maxItems`
62
- to 2, so a settings schema that embeds a mapping value no longer makes
63
- `walkeros validate --path` print an Ajv strict-mode warning. The published
64
- Flow JSON Schema (`schema/flow/v4.json`) was refreshed to match: it now
65
- includes `config.observe` and no longer lists the step-level `validate` field.
66
- - ef02916: The destination `queue` option's description now says what it does:
67
- whether a destination added later receives the run's earlier events (default
68
- true). Consent-denied events are queued regardless.
93
+ - 74821ed: Simulate starts only the simulated step, and a simulated transformer
94
+ continues through its `next`. Source simulations list the commands a source
95
+ issues as `elb` calls; `--page-url` sets the web page. Express flows need no
96
+ port. Packages with several exports use per-export examples and mocks, and a
97
+ destination without a mock env is refused instead of calling the vendor.
98
+ - 74821ed: `walkeros validate` reports a missing or non-JSON input as exit 3,
99
+ like `--path`, `--flow` or `--offline` with a non-flow `-t`. Unknown keys on
100
+ destinations and stores warn (`UNKNOWN_KEY`), as does
101
+ `@walkeros/store-memory`. `--path` ignores `uri` and email formats. The Flow
102
+ JSON Schema adds `config.observe` and drops step-level `validate`; the
103
+ Usercentrics schema lists `apiVersion` and `v3EventName`.
69
104
 
70
105
  ## 4.6.1
71
106