@fireweaveai/web-sdk 2.3.0 → 3.0.0-rc.1

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.
Files changed (75) hide show
  1. package/README.md +100 -4
  2. package/dist/application/client.d.ts +12 -27
  3. package/dist/application/client.d.ts.map +1 -1
  4. package/dist/application/client.js +21 -38
  5. package/dist/application/client.js.map +1 -1
  6. package/dist/application/ports.d.ts +4 -4
  7. package/dist/application/ports.d.ts.map +1 -1
  8. package/dist/application/runtime.d.ts +2 -2
  9. package/dist/application/runtime.d.ts.map +1 -1
  10. package/dist/application/runtime.js +22 -19
  11. package/dist/application/runtime.js.map +1 -1
  12. package/dist/build/node/define.d.ts +14 -0
  13. package/dist/build/node/define.js +35 -0
  14. package/dist/build/node/define.js.map +1 -0
  15. package/dist/build/node/shared.d.ts +19 -0
  16. package/dist/build/node/shared.js +44 -0
  17. package/dist/build/node/shared.js.map +1 -0
  18. package/dist/build/node/vite.d.ts +53 -0
  19. package/dist/build/node/vite.js +103 -0
  20. package/dist/build/node/vite.js.map +1 -0
  21. package/dist/build/src/start/build-info.d.ts +2 -0
  22. package/dist/build/src/start/build-info.js +7 -0
  23. package/dist/build/src/start/build-info.js.map +1 -0
  24. package/dist/build/src/start/names.d.ts +44 -0
  25. package/dist/build/src/start/names.js +45 -0
  26. package/dist/build/src/start/names.js.map +1 -0
  27. package/dist/build/src/start/policy.d.ts +70 -0
  28. package/dist/build/src/start/policy.js +124 -0
  29. package/dist/build/src/start/policy.js.map +1 -0
  30. package/dist/domain/errors.d.ts +1 -1
  31. package/dist/domain/errors.d.ts.map +1 -1
  32. package/dist/domain/errors.js +1 -1
  33. package/dist/domain/errors.js.map +1 -1
  34. package/dist/domain/types.d.ts +3 -3
  35. package/dist/domain/types.d.ts.map +1 -1
  36. package/dist/domain/validation.d.ts +4 -4
  37. package/dist/domain/validation.js +7 -7
  38. package/dist/domain/validation.js.map +1 -1
  39. package/dist/infrastructure/adapters/inmemory.js +1 -1
  40. package/dist/infrastructure/adapters/inmemory.js.map +1 -1
  41. package/dist/infrastructure/adapters/remote.js +11 -11
  42. package/dist/infrastructure/adapters/remote.js.map +1 -1
  43. package/dist/start/build-info.d.ts +3 -0
  44. package/dist/start/build-info.d.ts.map +1 -0
  45. package/dist/start/build-info.js +7 -0
  46. package/dist/start/build-info.js.map +1 -0
  47. package/dist/start/control-points.d.ts +25 -0
  48. package/dist/start/control-points.d.ts.map +1 -0
  49. package/dist/start/control-points.js +57 -0
  50. package/dist/start/control-points.js.map +1 -0
  51. package/dist/start/fw.d.ts +43 -0
  52. package/dist/start/fw.d.ts.map +1 -0
  53. package/dist/start/fw.js +135 -0
  54. package/dist/start/fw.js.map +1 -0
  55. package/dist/start/identity.d.ts +20 -0
  56. package/dist/start/identity.d.ts.map +1 -0
  57. package/dist/start/identity.js +85 -0
  58. package/dist/start/identity.js.map +1 -0
  59. package/dist/start/index.d.ts +35 -0
  60. package/dist/start/index.d.ts.map +1 -0
  61. package/dist/start/index.js +30 -0
  62. package/dist/start/index.js.map +1 -0
  63. package/dist/start/names.d.ts +45 -0
  64. package/dist/start/names.d.ts.map +1 -0
  65. package/dist/start/names.js +45 -0
  66. package/dist/start/names.js.map +1 -0
  67. package/dist/start/policy.d.ts +71 -0
  68. package/dist/start/policy.d.ts.map +1 -0
  69. package/dist/start/policy.js +124 -0
  70. package/dist/start/policy.js.map +1 -0
  71. package/dist/start/state.d.ts +104 -0
  72. package/dist/start/state.d.ts.map +1 -0
  73. package/dist/start/state.js +361 -0
  74. package/dist/start/state.js.map +1 -0
  75. package/package.json +23 -3
package/README.md CHANGED
@@ -4,9 +4,9 @@ Fireweave control points for the browser ([ADR-0009](../../docs/adr/0009-browser
4
4
  **control points** and **target registration**, the two v1 capabilities
5
5
  ([spec/control-points.md](../../spec/control-points.md) "Scope of v1"; spec v0.1.0).
6
6
 
7
- - **Remote-only and secret-free by construction.** No local evaluation, no vendor SDK dependency, no environment reads, and vendor/secret key shapes are rejected at the door.
7
+ - **Secret-free by construction.** No vendor SDK dependency, no environment reads, and vendor/secret key shapes are rejected at the door.
8
8
  - **Reads are synchronous** — `controlPoints.getBooleanValue(...)` returns a value directly, no `await`, safe inside a render path. `initFireweave` prefetches a decision cache once per context; reads afterward are a pure in-memory lookup.
9
- - **Bun is the toolchain.** Tested on Bun only — this package ships no server entry point, reads no environment, and imports no runtime built-ins, so Node/Deno are not target runtimes for it.
9
+ - **Bun is the toolchain.** The browser code is tested on Bun with happy-dom. It reads no environment and imports no runtime built-ins, so Node/Deno are not target runtimes for it. The two build-time entries, `/vite` and `/define`, run in Node while your bundler loads its config, and never ship to the browser.
10
10
 
11
11
  ## Install
12
12
 
@@ -14,6 +14,102 @@ Fireweave control points for the browser ([ADR-0009](../../docs/adr/0009-browser
14
14
  bun add @fireweaveai/web-sdk # or: npm install @fireweaveai/web-sdk
15
15
  ```
16
16
 
17
+ ## Quick start (one line: the start profile)
18
+
19
+ The start profile ([ADR-0012](../../docs/adr/0012-start-profile.md)) replaces the generated
20
+ `fw-harness.ts` / `fw-providers.ts` files with one plugin, one start file and one control-points file.
21
+ The core API below (`initFireweave`) is unchanged.
22
+
23
+ ```ts
24
+ // vite.config.ts (Nuxt / Astro: the same call under the framework config's `vite.plugins`)
25
+ import { fireweave } from '@fireweaveai/web-sdk/vite';
26
+ export default defineConfig({ plugins: [react(), fireweave()] });
27
+
28
+ // src/fireweave/control-points.ts: every control point the app reads, with its local value
29
+ import { defineControlPoints } from '@fireweaveai/web-sdk/start';
30
+ export const controlPoints = defineControlPoints({
31
+ 'new-checkout': { local: true, description: 'New checkout flow' },
32
+ });
33
+
34
+ // src/fireweave/start.ts: imported first by your entry module
35
+ import { start } from '@fireweaveai/web-sdk/start';
36
+ import { controlPoints } from './control-points';
37
+ export const ready = start({ controlPoints });
38
+
39
+ // src/main.tsx: render once the first prefetch settles, so first render has decisions
40
+ import { ready } from './fireweave/start';
41
+ ready.then(() => createRoot(document.getElementById('root')!).render(<App />));
42
+ ```
43
+
44
+ ```ts
45
+ import { fw } from '@fireweaveai/web-sdk/start';
46
+
47
+ // @fireweave-controlpoint new-checkout
48
+ if (fw.controlPoints.getBooleanValue('new-checkout', false)) { /* synchronous, never throws */ }
49
+
50
+ await fw.identify(user.id, { plan: user.plan }); // sign-in / session restore
51
+ await fw.reset(); // sign-out: back to this browser's device id
52
+ fw.deviceId(); // the anonymous key, for analytics joins
53
+ fw.setPersistence('memory'); // consent withdrawn; fw.forget() also mints a new id
54
+ fw.status(); // mode, channel, host, key source, problem; never the key
55
+ fw.subscribe((state) => rerender()); // fires on settle and after identify / reset
56
+ ```
57
+
58
+ Set the browser key in the **build** environment (CI or the deploy's build step), not in a
59
+ developer `.env`, so `vite dev` stays local:
60
+
61
+ ```bash
62
+ FIREWEAVE_BROWSER_KEY=fw_public_...
63
+ ```
64
+
65
+ ### Options and overrides
66
+
67
+ Each value resolves as: the `start()` option, then what the build helper injected, then the default.
68
+ The build helpers read the process environment and, for Vite, the app's `.env` files.
69
+
70
+ | `start()` option | Build variable | Default | Notes |
71
+ | --- | --- | --- | --- |
72
+ | `controlPoints` | — | `{}` | `defineControlPoints({...})` from `src/fireweave/control-points.ts`. Served in local mode only; a read of a key missing from it warns once. |
73
+ | `mode` | — | inferred | `'remote'` or `'local'`. Without it: a key means remote; no key and a development environment name means local; anything else fails closed. |
74
+ | `environment` | `FIREWEAVE_ENV`, then `APP_ENV` (the dev server and Vitest also use Vite's mode) | — | Only feeds the mode rule. A build never infers local from `--mode development`. |
75
+ | `url` | `FIREWEAVE_URL` | this SDK build's channel | `-rc.N` builds (`@next`) call `https://staging-app-server.fireweave.ai`, others `https://app-server.fireweave.ai`. Also accepts a same-origin proxy path such as `/fw`. https only, except localhost. |
76
+ | `key` | `FIREWEAVE_BROWSER_KEY` | — | A browser key (`fw_public_…`) only. Server keys (`project-api-key_…`), analytics vendor keys and org/CLI tokens are refused; messages name the source, never the value. |
77
+ | `persistence` | — | `'localStorage'` | `'memory'` stores nothing until `fw.setPersistence('localStorage')`. |
78
+ | `deviceId` | — | stored `dev_<uuid>` | An app-supplied anonymous id (for example the analytics id), used verbatim and not stored. |
79
+
80
+ `start()` never throws or rejects, so it cannot blank a page. A configuration fault logs one
81
+ `console.error`, sets `fw.status().state` to `FAILED` with a `problem`, and every read serves its
82
+ default. The build is where a fault fails loudly:
83
+
84
+ - **`fireweave()`** fails `vite build` (and the dev server) for a missing key outside development,
85
+ a server key, a wrong key family, an http URL off localhost, or an `envPrefix` that would expose
86
+ `FIREWEAVE_KEY`. After a client build it fails if any output file holds a server key.
87
+ - **Other bundlers** (Next.js, webpack, esbuild, Rollup) use `/define`, which has no `vite` import:
88
+
89
+ ```ts
90
+ // next.config.mjs
91
+ import { fireweaveDefine } from '@fireweaveai/web-sdk/define';
92
+ const define = fireweaveDefine(); // throws on the same faults; reads FIREWEAVE_ENV, APP_ENV, then NODE_ENV
93
+ export default {
94
+ webpack(config, { webpack }) {
95
+ config.plugins.push(new webpack.DefinePlugin(define));
96
+ return config;
97
+ },
98
+ };
99
+ ```
100
+
101
+ Without a build helper, pass `key` and `environment` to `start()` yourself.
102
+
103
+ Runtime faults keep their cause in `fw.status().problem`: `key-rejected` (fw-server answered 401/403)
104
+ and `unreachable` (offline, an ad or tracker blocker, a firewall, or a Content-Security-Policy
105
+ `connect-src` rule). Both leave the state `STALE` and reads on their defaults. Point `FIREWEAVE_URL`
106
+ at a same-origin proxy (`/fw`) that forwards `/v1/control-points/evaluate`, `/v1/capture` and
107
+ `/v1/targets/register` to avoid most of them.
108
+
109
+ On the server side of an SSR app, remote mode does nothing (a server-side singleton would share one
110
+ visitor's identity across requests) and reads return defaults; local mode serves the control-points object
111
+ everywhere, so server and client renders agree.
112
+
17
113
  ## Quick start (production path)
18
114
 
19
115
  ```ts
@@ -68,7 +164,7 @@ with reason `STALE` rather than blocking.
68
164
  | `application/runtime.ts` | `FireweaveWebRuntime` — prefetch-once-per-context cache, lifecycle state, sync reads. |
69
165
  | `application/client.ts` | `FireweaveWebClient` — `controlPoints`, `registerTarget`, `identify`. |
70
166
  | `application/mode.ts` | `initFireweave` — the single entry point; the only module allowed to import concrete adapters. |
71
- | `infrastructure/adapters/remote.ts` | `FireweaveRemoteWebAdapter` — the production backend (`/v1/flags/evaluate`, `/v1/targets/register`). |
167
+ | `infrastructure/adapters/remote.ts` | `FireweaveRemoteWebAdapter` — the production backend (`/v1/control-points/evaluate`, `/v1/targets/register`). |
72
168
  | `infrastructure/adapters/inmemory.ts` | Deterministic fixture-driven adapter for tests and conformance. |
73
169
  | `infrastructure/adapters/local.ts` | `FireweaveLocalWebAdapter` — the DEV substrate `initFireweave({ mode: 'local' })` builds. |
74
170
  | `application/ports.ts` | The `WebBackendAdapter` boundary. |
@@ -84,7 +180,7 @@ The SDK reads no environment variables — every option is an explicit argument
84
180
  | --- | --- | --- |
85
181
  | `apiUrl` | `remote` | fw-server base URL (required) |
86
182
  | `apiKey` | `remote` | Fireweave **project** key — public by construction, never a secret (required) |
87
- | `allowedHosts` | `remote` | SSRF allowlist override; defaults to the `apiUrl` host plus loopback |
183
+ | `allowedHosts` | `remote` | SSRF allowlist override |
88
184
  | `context` | both | initial evaluation context (e.g. an anonymous `targetingKey`) to prefetch under |
89
185
  | `local.controlPoints` | `local` | seeded boolean overrides; a present key resolves `STATIC`, an absent key misses to the caller's default with reason `DEFAULT` |
90
186
 
@@ -7,14 +7,12 @@
7
7
  * capabilities — control points and target registration. Releases,
8
8
  * exposures, signals, capabilities discovery and guardrails are out of v1;
9
9
  * this client MUST NOT expose them (conformance/surface/control-points.surface.json
10
- * "mustNotExpose"). The dynamic `invokeCapability` dispatcher and the
11
- * deprecated `flags` alias survive unchanged.
10
+ * "mustNotExpose"). The dynamic `invokeCapability` dispatcher survives
11
+ * unchanged; the `flags` alias is gone (ADR-0013).
12
12
  *
13
13
  * One divergence from the server SDK, and it is intentional: `controlPoints.*`
14
14
  * is SYNCHRONOUS here and promise-returning on the server. That follows from
15
- * the OpenFeature web contract — browser reads happen in render paths — and
16
- * is recorded in docs/compatibility.md as a surface difference rather than a
17
- * gap.
15
+ * the OpenFeature web contract — browser reads happen in render paths.
18
16
  */
19
17
  import { FireweaveError } from '../domain/errors.js';
20
18
  import type { ContextInput } from '../domain/context.js';
@@ -52,11 +50,11 @@ export interface EvaluateOptions {
52
50
  export declare class WebControlPointsApi {
53
51
  private readonly runtime;
54
52
  constructor(runtime: FireweaveWebRuntime);
55
- evaluate(flagKey: string, expectedType: ExpectedFlagType, defaultValue: JsonValue, context?: ContextInput, _options?: EvaluateOptions): Decision;
56
- getBooleanValue(flagKey: string, defaultValue: boolean, context?: ContextInput): boolean;
57
- getStringValue(flagKey: string, defaultValue: string, context?: ContextInput): string;
58
- getNumberValue(flagKey: string, defaultValue: number, context?: ContextInput): number;
59
- getObjectValue(flagKey: string, defaultValue: JsonValue, context?: ContextInput): JsonValue;
53
+ evaluate(controlPointKey: string, expectedType: ExpectedFlagType, defaultValue: JsonValue, context?: ContextInput, _options?: EvaluateOptions): Decision;
54
+ getBooleanValue(controlPointKey: string, defaultValue: boolean, context?: ContextInput): boolean;
55
+ getStringValue(controlPointKey: string, defaultValue: string, context?: ContextInput): string;
56
+ getNumberValue(controlPointKey: string, defaultValue: number, context?: ContextInput): number;
57
+ getObjectValue(controlPointKey: string, defaultValue: JsonValue, context?: ContextInput): JsonValue;
60
58
  /**
61
59
  * Detailed reads — the whole {@link Decision} rather than just its value.
62
60
  *
@@ -64,29 +62,16 @@ export declare class WebControlPointsApi {
64
62
  * to the other without restructuring the call (spec/control-points.md "The
65
63
  * nine methods"). SYNCHRONOUS like every other read here (ADR-0009).
66
64
  */
67
- getBooleanDetails(flagKey: string, defaultValue: boolean, context?: ContextInput): Decision;
68
- getStringDetails(flagKey: string, defaultValue: string, context?: ContextInput): Decision;
69
- getNumberDetails(flagKey: string, defaultValue: number, context?: ContextInput): Decision;
70
- getObjectDetails(flagKey: string, defaultValue: JsonValue, context?: ContextInput): Decision;
65
+ getBooleanDetails(controlPointKey: string, defaultValue: boolean, context?: ContextInput): Decision;
66
+ getStringDetails(controlPointKey: string, defaultValue: string, context?: ContextInput): Decision;
67
+ getNumberDetails(controlPointKey: string, defaultValue: number, context?: ContextInput): Decision;
68
+ getObjectDetails(controlPointKey: string, defaultValue: JsonValue, context?: ContextInput): Decision;
71
69
  }
72
70
  export interface FireweaveWebClientOptions {
73
71
  }
74
72
  export declare class FireweaveWebClient {
75
73
  readonly runtime: FireweaveWebRuntime;
76
74
  readonly controlPoints: WebControlPointsApi;
77
- /**
78
- * Control-point evaluation under its former name.
79
- *
80
- * @deprecated Renamed to {@link FireweaveWebClient.controlPoints}
81
- * (ADR-0007). Identical and fully supported —
82
- * `client.flags === client.controlPoints` — so no migration is required and
83
- * none is planned. Silent at runtime: the alias is permanent, not scheduled
84
- * for removal, so there is nothing to warn a caller toward — deprecation is
85
- * conveyed by this doc comment only (no log, and no env gate to control
86
- * one, since the SDK reads no environment variables regardless — ADR-0009
87
- * security rule 3).
88
- */
89
- get flags(): WebControlPointsApi;
90
75
  constructor(runtime: FireweaveWebRuntime, _options?: FireweaveWebClientOptions);
91
76
  /**
92
77
  * Dynamic capability dispatch. Unknown capabilities — currently all of
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/application/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/application/client.ts"],"names":[],"mappings":"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"}
@@ -7,14 +7,12 @@
7
7
  * capabilities — control points and target registration. Releases,
8
8
  * exposures, signals, capabilities discovery and guardrails are out of v1;
9
9
  * this client MUST NOT expose them (conformance/surface/control-points.surface.json
10
- * "mustNotExpose"). The dynamic `invokeCapability` dispatcher and the
11
- * deprecated `flags` alias survive unchanged.
10
+ * "mustNotExpose"). The dynamic `invokeCapability` dispatcher survives
11
+ * unchanged; the `flags` alias is gone (ADR-0013).
12
12
  *
13
13
  * One divergence from the server SDK, and it is intentional: `controlPoints.*`
14
14
  * is SYNCHRONOUS here and promise-returning on the server. That follows from
15
- * the OpenFeature web contract — browser reads happen in render paths — and
16
- * is recorded in docs/compatibility.md as a surface difference rather than a
17
- * gap.
15
+ * the OpenFeature web contract — browser reads happen in render paths.
18
16
  */
19
17
  import { FireweaveError } from '../domain/errors.js';
20
18
  function failure(error, degraded = false) {
@@ -45,20 +43,20 @@ export class WebControlPointsApi {
45
43
  constructor(runtime) {
46
44
  this.runtime = runtime;
47
45
  }
48
- evaluate(flagKey, expectedType, defaultValue, context, _options) {
49
- return this.runtime.evaluateSync(flagKey, expectedType, defaultValue, context);
46
+ evaluate(controlPointKey, expectedType, defaultValue, context, _options) {
47
+ return this.runtime.evaluateSync(controlPointKey, expectedType, defaultValue, context);
50
48
  }
51
- getBooleanValue(flagKey, defaultValue, context) {
52
- return this.evaluate(flagKey, 'boolean', defaultValue, context).value;
49
+ getBooleanValue(controlPointKey, defaultValue, context) {
50
+ return this.evaluate(controlPointKey, 'boolean', defaultValue, context).value;
53
51
  }
54
- getStringValue(flagKey, defaultValue, context) {
55
- return this.evaluate(flagKey, 'string', defaultValue, context).value;
52
+ getStringValue(controlPointKey, defaultValue, context) {
53
+ return this.evaluate(controlPointKey, 'string', defaultValue, context).value;
56
54
  }
57
- getNumberValue(flagKey, defaultValue, context) {
58
- return this.evaluate(flagKey, 'number', defaultValue, context).value;
55
+ getNumberValue(controlPointKey, defaultValue, context) {
56
+ return this.evaluate(controlPointKey, 'number', defaultValue, context).value;
59
57
  }
60
- getObjectValue(flagKey, defaultValue, context) {
61
- return this.evaluate(flagKey, 'object', defaultValue, context).value;
58
+ getObjectValue(controlPointKey, defaultValue, context) {
59
+ return this.evaluate(controlPointKey, 'object', defaultValue, context).value;
62
60
  }
63
61
  /**
64
62
  * Detailed reads — the whole {@link Decision} rather than just its value.
@@ -67,17 +65,17 @@ export class WebControlPointsApi {
67
65
  * to the other without restructuring the call (spec/control-points.md "The
68
66
  * nine methods"). SYNCHRONOUS like every other read here (ADR-0009).
69
67
  */
70
- getBooleanDetails(flagKey, defaultValue, context) {
71
- return this.evaluate(flagKey, 'boolean', defaultValue, context);
68
+ getBooleanDetails(controlPointKey, defaultValue, context) {
69
+ return this.evaluate(controlPointKey, 'boolean', defaultValue, context);
72
70
  }
73
- getStringDetails(flagKey, defaultValue, context) {
74
- return this.evaluate(flagKey, 'string', defaultValue, context);
71
+ getStringDetails(controlPointKey, defaultValue, context) {
72
+ return this.evaluate(controlPointKey, 'string', defaultValue, context);
75
73
  }
76
- getNumberDetails(flagKey, defaultValue, context) {
77
- return this.evaluate(flagKey, 'number', defaultValue, context);
74
+ getNumberDetails(controlPointKey, defaultValue, context) {
75
+ return this.evaluate(controlPointKey, 'number', defaultValue, context);
78
76
  }
79
- getObjectDetails(flagKey, defaultValue, context) {
80
- return this.evaluate(flagKey, 'object', defaultValue, context);
77
+ getObjectDetails(controlPointKey, defaultValue, context) {
78
+ return this.evaluate(controlPointKey, 'object', defaultValue, context);
81
79
  }
82
80
  }
83
81
  /**
@@ -91,21 +89,6 @@ const SUPPORTED_CAPABILITIES = Object.freeze([]);
91
89
  export class FireweaveWebClient {
92
90
  runtime;
93
91
  controlPoints;
94
- /**
95
- * Control-point evaluation under its former name.
96
- *
97
- * @deprecated Renamed to {@link FireweaveWebClient.controlPoints}
98
- * (ADR-0007). Identical and fully supported —
99
- * `client.flags === client.controlPoints` — so no migration is required and
100
- * none is planned. Silent at runtime: the alias is permanent, not scheduled
101
- * for removal, so there is nothing to warn a caller toward — deprecation is
102
- * conveyed by this doc comment only (no log, and no env gate to control
103
- * one, since the SDK reads no environment variables regardless — ADR-0009
104
- * security rule 3).
105
- */
106
- get flags() {
107
- return this.controlPoints;
108
- }
109
92
  constructor(runtime, _options = {}) {
110
93
  this.runtime = runtime;
111
94
  this.controlPoints = new WebControlPointsApi(runtime);
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/application/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/application/client.ts"],"names":[],"mappings":"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"}
@@ -3,7 +3,7 @@
3
3
  *
4
4
  * One shape differs from the server port, and it is the difference that makes
5
5
  * a synchronous OpenFeature provider possible: the server port has
6
- * `resolve(flagKey)` — one call per control point — while this port has
6
+ * `resolve(controlPointKey)` — one call per control point — while this port has
7
7
  * `prefetch(context)`, which returns EVERY decision for a context in one round
8
8
  * trip. Evaluation then becomes a synchronous map lookup in the runtime.
9
9
  *
@@ -33,7 +33,7 @@ export interface AdapterResolution {
33
33
  export type PrefetchResult = ReadonlyMap<string, AdapterResolution>;
34
34
  export interface PrefetchOptions {
35
35
  /** Restrict the batch to these keys; omit to let the backend return all it knows. */
36
- readonly flagKeys?: readonly string[];
36
+ readonly controlPointKeys?: readonly string[];
37
37
  readonly signal?: AbortSignal;
38
38
  }
39
39
  export interface RegisterTargetOptions {
@@ -67,14 +67,14 @@ export interface WebBackendAdapter {
67
67
  * Miss-reason override for a control point ABSENT from the prefetch result
68
68
  * (spec/modes.md "Behaviour per mode": local mode's unknown-key row is
69
69
  * `default`/reason `DEFAULT`, not an error — unlike remote's
70
- * `default`/`ERROR`/`FlagNotFound`).
70
+ * `default`/`ERROR`/`ControlPointNotFound`).
71
71
  *
72
72
  * Node's per-call `resolve()` lets a miss carry its own `reason: 'DEFAULT'`
73
73
  * on the resolution object itself. Web's adapter returns EVERY decision for
74
74
  * a context in one batch (`prefetch`), so there is no per-key resolution
75
75
  * object for a key that was never in the batch at all — the seam instead
76
76
  * lives on the adapter. `FireweaveLocalWebAdapter` sets this to `'DEFAULT'`;
77
- * every other adapter leaves it undefined and keeps the FlagNotFound/ERROR
77
+ * every other adapter leaves it undefined and keeps the ControlPointNotFound/ERROR
78
78
  * path (`FireweaveWebRuntime.evaluateSync` checks it with strict `===`).
79
79
  */
80
80
  readonly missReason?: 'DEFAULT';
@@ -1 +1 @@
1
- {"version":3,"file":"ports.d.ts","sourceRoot":"","sources":["../../src/application/ports.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ports.d.ts","sourceRoot":"","sources":["../../src/application/ports.ts"],"names":[],"mappings":"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"}
@@ -13,7 +13,7 @@ export interface FireweaveWebRuntimeConfig {
13
13
  readonly reservedAttributeKeys?: readonly string[];
14
14
  readonly flagsReadyTimeoutMs?: number;
15
15
  /** Restrict prefetch to a known set of control points. */
16
- readonly flagKeys?: readonly string[];
16
+ readonly controlPointKeys?: readonly string[];
17
17
  /** Emit a Fireweave exposure on each successful evaluation. Default false. */
18
18
  readonly sendExposure?: boolean;
19
19
  }
@@ -53,7 +53,7 @@ export declare class FireweaveWebRuntime {
53
53
  * any I/O" names — key, default-vs-type, context, lifecycle — stopping at
54
54
  * the first failure. Only once all four pass does this consult the cache.
55
55
  */
56
- evaluateSync(flagKey: string, expectedType: ExpectedFlagType, defaultValue: JsonValue, invocationContext?: ContextInput): Decision;
56
+ evaluateSync(controlPointKey: string, expectedType: ExpectedFlagType, defaultValue: JsonValue, invocationContext?: ContextInput): Decision;
57
57
  private reasonFor;
58
58
  private metadataFor;
59
59
  private recordExposureFor;
@@ -1 +1 @@
1
- {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../../src/application/runtime.ts"],"names":[],"mappings":"AAkCA,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAiB,MAAM,sBAAsB,CAAC;AAQvF,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,KAAK,EAGV,qBAAqB,EACrB,oBAAoB,EACpB,iBAAiB,EAClB,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EAEV,QAAQ,EAER,QAAQ,EACR,SAAS,EACT,cAAc,EACd,cAAc,EACd,MAAM,EACP,MAAM,oBAAoB,CAAC;AAE5B,YAAY,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAEhE,2EAA2E;AAC3E,eAAO,MAAM,8BAA8B,OAAQ,CAAC;AAEpD,MAAM,WAAW,yBAAyB;IACxC,sEAAsE;IACtE,QAAQ,CAAC,aAAa,CAAC,EAAE,YAAY,CAAC;IACtC,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC;IACzC,kFAAkF;IAClF,QAAQ,CAAC,qBAAqB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACnD,QAAQ,CAAC,mBAAmB,CAAC,EAAE,MAAM,CAAC;IACtC,0DAA0D;IAC1D,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACtC,8EAA8E;IAC9E,QAAQ,CAAC,YAAY,CAAC,EAAE,OAAO,CAAC;CACjC;AAED,qBAAa,mBAAmB;IAC9B,QAAQ,CAAC,OAAO,EAAE,iBAAiB,CAAC;IACpC,QAAQ,CAAC,MAAM,EAAE,yBAAyB,CAAC;IAE3C,OAAO,CAAC,KAAK,CAAmC;IAChD,OAAO,CAAC,KAAK,CAA6B;IAC1C,OAAO,CAAC,aAAa,CAAe;IACpC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAgB;IAC9C,OAAO,CAAC,cAAc,CAAsB;IAC5C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA8C;gBAE5D,OAAO,EAAE,iBAAiB,EAAE,MAAM,GAAE,yBAA8B;IAc9E,QAAQ,IAAI,cAAc;IAI1B,aAAa,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,cAAc,KAAK,IAAI,GAAG,MAAM,IAAI;IAKpE,OAAO,CAAC,QAAQ;IAKhB,iBAAiB,CAAC,GAAG,EAAE,cAAc,GAAG,IAAI;IAI5C,iBAAiB,IAAI,cAAc;IAInC,mEAAmE;IAC7D,UAAU,CAAC,OAAO,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAcvD;;;;;;OAMG;IACG,UAAU,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,SAAS,MAAM,EAAE,CAAC;IAOnE,8DAA8D;IACxD,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IA8C9B;;;;;;;;OAQG;IACH,YAAY,CACV,OAAO,EAAE,MAAM,EACf,YAAY,EAAE,gBAAgB,EAC9B,YAAY,EAAE,SAAS,EACvB,iBAAiB,CAAC,EAAE,YAAY,GAC/B,QAAQ;IAwEX,OAAO,CAAC,SAAS;IAOjB,OAAO,CAAC,WAAW;IAQnB,OAAO,CAAC,iBAAiB;IAkBzB,cAAc,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI;IAIxC,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAI5B,cAAc,CAClB,YAAY,EAAE,MAAM,EACpB,OAAO,GAAE,qBAA0B,GAClC,OAAO,CAAC,oBAAoB,CAAC;IAiB1B,KAAK,CAAC,OAAO,GAAE;QAAE,MAAM,CAAC,EAAE,OAAO,CAAA;KAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAIxD,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAgB/B,OAAO,CAAC,WAAW;IAWnB,OAAO,CAAC,cAAc;IAgBtB,OAAO,CAAC,aAAa;CAWtB"}
1
+ {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../../src/application/runtime.ts"],"names":[],"mappings":"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"}
@@ -119,7 +119,7 @@ export class FireweaveWebRuntime {
119
119
  const timeoutMs = this.config.flagsReadyTimeoutMs ?? DEFAULT_FLAGS_READY_TIMEOUT_MS;
120
120
  let timer;
121
121
  const TIMED_OUT = Symbol('timeout');
122
- const prefetch = this.adapter.prefetch(canonical, this.config.flagKeys !== undefined ? { flagKeys: this.config.flagKeys } : undefined);
122
+ const prefetch = this.adapter.prefetch(canonical, this.config.controlPointKeys !== undefined ? { controlPointKeys: this.config.controlPointKeys } : undefined);
123
123
  try {
124
124
  const result = await Promise.race([
125
125
  prefetch,
@@ -155,14 +155,14 @@ export class FireweaveWebRuntime {
155
155
  * any I/O" names — key, default-vs-type, context, lifecycle — stopping at
156
156
  * the first failure. Only once all four pass does this consult the cache.
157
157
  */
158
- evaluateSync(flagKey, expectedType, defaultValue, invocationContext) {
159
- const keyResult = validateControlPointKey(flagKey);
158
+ evaluateSync(controlPointKey, expectedType, defaultValue, invocationContext) {
159
+ const keyResult = validateControlPointKey(controlPointKey);
160
160
  if (!keyResult.ok) {
161
- return this.errorDecision(flagKey, defaultValue, keyResult.error);
161
+ return this.errorDecision(controlPointKey, defaultValue, keyResult.error);
162
162
  }
163
163
  const defaultResult = validateDefaultValue(expectedType, defaultValue);
164
164
  if (!defaultResult.ok) {
165
- return this.errorDecision(flagKey, defaultValue, defaultResult.error);
165
+ return this.errorDecision(controlPointKey, defaultValue, defaultResult.error);
166
166
  }
167
167
  // The validated context here is not what SELECTS the cached decision —
168
168
  // that was fixed by the last prefetch (ADR-0009: evaluation is a pure
@@ -173,42 +173,42 @@ export class FireweaveWebRuntime {
173
173
  const merged = mergeContexts(this.globalContext, invocationContext);
174
174
  const contextResult = validateContext(merged, this.contextPolicy);
175
175
  if (!contextResult.ok) {
176
- return this.errorDecision(flagKey, defaultValue, contextResult.error);
176
+ return this.errorDecision(controlPointKey, defaultValue, contextResult.error);
177
177
  }
178
178
  const lifecycleError = this.lifecycleError();
179
179
  if (lifecycleError !== undefined) {
180
- return this.errorDecision(flagKey, defaultValue, lifecycleError);
180
+ return this.errorDecision(controlPointKey, defaultValue, lifecycleError);
181
181
  }
182
- const resolution = this.cache.get(flagKey);
182
+ const resolution = this.cache.get(controlPointKey);
183
183
  if (resolution === undefined || resolution.found === false) {
184
184
  // spec/modes.md "Behaviour per mode": local's unknown-key row is
185
185
  // `default`/reason `DEFAULT` — deliberately not an error. The local
186
186
  // adapter signals this via `missReason: 'DEFAULT'` (adapter.ts); every
187
187
  // other adapter leaves it undefined and keeps the path below.
188
188
  if (this.adapter.missReason === 'DEFAULT') {
189
- return { flagKey, value: defaultValue, reason: 'DEFAULT', metadata: {} };
189
+ return { controlPointKey, value: defaultValue, reason: 'DEFAULT', metadata: {} };
190
190
  }
191
191
  // A cache miss while STALE is not a missing control point — it is an
192
192
  // unanswered question. Reporting FLAG_NOT_FOUND there would send a
193
193
  // caller hunting for a flag that may well exist.
194
194
  if (this.state === 'STALE') {
195
195
  return {
196
- flagKey,
196
+ controlPointKey,
197
197
  value: defaultValue,
198
198
  reason: 'STALE',
199
199
  variant: 'default',
200
200
  metadata: { 'fireweave.stale': true },
201
201
  };
202
202
  }
203
- return this.errorDecision(flagKey, defaultValue, new FireweaveError('FlagNotFound'));
203
+ return this.errorDecision(controlPointKey, defaultValue, new FireweaveError('ControlPointNotFound'));
204
204
  }
205
205
  const value = resolution.value ?? null;
206
206
  if (!matchesExpectedType(value, expectedType)) {
207
- return this.errorDecision(flagKey, defaultValue, new FireweaveError('TypeMismatch'));
207
+ return this.errorDecision(controlPointKey, defaultValue, new FireweaveError('TypeMismatch'));
208
208
  }
209
209
  const metadata = this.metadataFor(resolution);
210
210
  const decision = {
211
- flagKey,
211
+ controlPointKey,
212
212
  value,
213
213
  reason: this.reasonFor(resolution),
214
214
  ...(resolution.variant !== undefined ? { variant: resolution.variant } : {}),
@@ -220,18 +220,21 @@ export class FireweaveWebRuntime {
220
220
  return decision;
221
221
  }
222
222
  reasonFor(resolution) {
223
+ // A STALE runtime is serving the last good decisions after a failed or
224
+ // timed-out re-fetch (spec/control-points.md): say so, whatever reason the
225
+ // backend gave when the decision was fresh.
226
+ if (this.state === 'STALE')
227
+ return 'STALE';
223
228
  if (resolution.enabled === false)
224
229
  return 'DISABLED';
225
230
  if (resolution.reason !== undefined)
226
231
  return resolution.reason;
227
- if (this.state === 'STALE')
228
- return 'STALE';
229
232
  return 'TARGETING_MATCH';
230
233
  }
231
234
  metadataFor(resolution) {
232
235
  const metadata = {};
233
236
  if (resolution.version !== undefined)
234
- metadata['fireweave.flagVersion'] = resolution.version;
237
+ metadata['fireweave.controlPointVersion'] = resolution.version;
235
238
  if (resolution.reasonCode !== undefined)
236
239
  metadata['fireweave.reasonCode'] = resolution.reasonCode;
237
240
  if (resolution.quotaLimited === true)
@@ -247,7 +250,7 @@ export class FireweaveWebRuntime {
247
250
  return;
248
251
  const rc = this.releaseContext;
249
252
  const exposure = {
250
- flagKey: decision.flagKey,
253
+ controlPointKey: decision.controlPointKey,
251
254
  targetingKey,
252
255
  value: decision.value,
253
256
  ...(decision.variant !== undefined ? { variant: decision.variant } : {}),
@@ -327,9 +330,9 @@ export class FireweaveWebRuntime {
327
330
  return undefined;
328
331
  }
329
332
  }
330
- errorDecision(flagKey, defaultValue, err) {
333
+ errorDecision(controlPointKey, defaultValue, err) {
331
334
  return {
332
- flagKey,
335
+ controlPointKey,
333
336
  value: defaultValue,
334
337
  reason: 'ERROR',
335
338
  errorCode: err.openFeatureErrorCode,
@@ -1 +1 @@
1
- {"version":3,"file":"runtime.js","sourceRoot":"","sources":["../../src/application/runtime.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runtime.js","sourceRoot":"","sources":["../../src/application/runtime.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ import type { PolicyConfig } from '../src/start/policy.js';
2
+ import { type BuildOptions } from './shared.js';
3
+ export interface FireweaveDefineOptions extends BuildOptions {
4
+ /** The variable holding the browser key. Default FIREWEAVE_BROWSER_KEY. */
5
+ readonly keyVariable?: string;
6
+ /** Read these values instead of process.env (tests). */
7
+ readonly env?: Readonly<Record<string, string | undefined>>;
8
+ /** Where the summary line goes. Default console.info. */
9
+ readonly log?: (line: string) => void;
10
+ }
11
+ /** Fail the build (throw) when the start profile would not start; returns the resolved config. */
12
+ export declare function assertFireweaveBuild(options?: FireweaveDefineOptions): PolicyConfig;
13
+ /** assertFireweaveBuild, plus the define map that hands the result to start(). */
14
+ export declare function fireweaveDefine(options?: FireweaveDefineOptions): Record<string, string>;