@fireweaveai/web-sdk 2.1.0 → 2.1.1-staging.2

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 (89) hide show
  1. package/README.md +105 -0
  2. package/dist/application/client.d.ts +120 -0
  3. package/dist/application/client.d.ts.map +1 -0
  4. package/dist/application/client.js +160 -0
  5. package/dist/application/client.js.map +1 -0
  6. package/dist/application/mode.d.ts +100 -0
  7. package/dist/application/mode.d.ts.map +1 -0
  8. package/dist/application/mode.js +99 -0
  9. package/dist/application/mode.js.map +1 -0
  10. package/dist/{adapter.d.ts → application/ports.d.ts} +19 -4
  11. package/dist/application/ports.d.ts.map +1 -0
  12. package/dist/application/ports.js +2 -0
  13. package/dist/application/ports.js.map +1 -0
  14. package/dist/{runtime.d.ts → application/runtime.d.ts} +15 -6
  15. package/dist/application/runtime.d.ts.map +1 -0
  16. package/dist/{runtime.js → application/runtime.js} +80 -27
  17. package/dist/application/runtime.js.map +1 -0
  18. package/dist/domain/context.d.ts +52 -0
  19. package/dist/domain/context.d.ts.map +1 -0
  20. package/dist/domain/context.js +68 -0
  21. package/dist/domain/context.js.map +1 -0
  22. package/dist/domain/errors.d.ts.map +1 -0
  23. package/dist/domain/errors.js.map +1 -0
  24. package/dist/domain/target.d.ts +3 -0
  25. package/dist/domain/target.d.ts.map +1 -0
  26. package/dist/domain/target.js +2 -0
  27. package/dist/domain/target.js.map +1 -0
  28. package/dist/domain/types.d.ts.map +1 -0
  29. package/dist/domain/types.js.map +1 -0
  30. package/dist/domain/validation.d.ts +129 -0
  31. package/dist/domain/validation.d.ts.map +1 -0
  32. package/dist/domain/validation.js +350 -0
  33. package/dist/domain/validation.js.map +1 -0
  34. package/dist/index.d.ts +37 -31
  35. package/dist/index.d.ts.map +1 -1
  36. package/dist/index.js +25 -21
  37. package/dist/index.js.map +1 -1
  38. package/dist/{adapters → infrastructure/adapters}/inmemory.d.ts +3 -3
  39. package/dist/infrastructure/adapters/inmemory.d.ts.map +1 -0
  40. package/dist/{adapters → infrastructure/adapters}/inmemory.js +1 -1
  41. package/dist/infrastructure/adapters/inmemory.js.map +1 -0
  42. package/dist/infrastructure/adapters/local.d.ts +80 -0
  43. package/dist/infrastructure/adapters/local.d.ts.map +1 -0
  44. package/dist/infrastructure/adapters/local.js +95 -0
  45. package/dist/infrastructure/adapters/local.js.map +1 -0
  46. package/dist/{adapters → infrastructure/adapters}/remote.d.ts +2 -2
  47. package/dist/infrastructure/adapters/remote.d.ts.map +1 -0
  48. package/dist/{adapters → infrastructure/adapters}/remote.js +9 -15
  49. package/dist/infrastructure/adapters/remote.js.map +1 -0
  50. package/dist/infrastructure/hosts.d.ts.map +1 -0
  51. package/dist/{hosts.js → infrastructure/hosts.js} +1 -1
  52. package/dist/infrastructure/hosts.js.map +1 -0
  53. package/package.json +16 -11
  54. package/dist/adapter.d.ts.map +0 -1
  55. package/dist/adapter.js +0 -2
  56. package/dist/adapter.js.map +0 -1
  57. package/dist/adapters/inmemory.d.ts.map +0 -1
  58. package/dist/adapters/inmemory.js.map +0 -1
  59. package/dist/adapters/local.d.ts +0 -38
  60. package/dist/adapters/local.d.ts.map +0 -1
  61. package/dist/adapters/local.js +0 -51
  62. package/dist/adapters/local.js.map +0 -1
  63. package/dist/adapters/remote.d.ts.map +0 -1
  64. package/dist/adapters/remote.js.map +0 -1
  65. package/dist/client.d.ts +0 -134
  66. package/dist/client.d.ts.map +0 -1
  67. package/dist/client.js +0 -0
  68. package/dist/client.js.map +0 -1
  69. package/dist/context.d.ts +0 -26
  70. package/dist/context.d.ts.map +0 -1
  71. package/dist/context.js +0 -106
  72. package/dist/context.js.map +0 -1
  73. package/dist/errors.d.ts.map +0 -1
  74. package/dist/errors.js.map +0 -1
  75. package/dist/hosts.d.ts.map +0 -1
  76. package/dist/hosts.js.map +0 -1
  77. package/dist/provider.d.ts +0 -39
  78. package/dist/provider.d.ts.map +0 -1
  79. package/dist/provider.js +0 -93
  80. package/dist/provider.js.map +0 -1
  81. package/dist/runtime.d.ts.map +0 -1
  82. package/dist/runtime.js.map +0 -1
  83. package/dist/types.d.ts.map +0 -1
  84. package/dist/types.js.map +0 -1
  85. /package/dist/{errors.d.ts → domain/errors.d.ts} +0 -0
  86. /package/dist/{errors.js → domain/errors.js} +0 -0
  87. /package/dist/{types.d.ts → domain/types.d.ts} +0 -0
  88. /package/dist/{types.js → domain/types.js} +0 -0
  89. /package/dist/{hosts.d.ts → infrastructure/hosts.d.ts} +0 -0
@@ -0,0 +1,80 @@
1
+ /**
2
+ * Local development adapter for the browser — the DEV substrate of a
3
+ * scaffolded web harness, and the exact peer of the server SDK's
4
+ * `FireweaveLocalAdapter`.
5
+ *
6
+ * A key present in `devFlags` resolves with reason `STATIC`; every other key
7
+ * misses, which the runtime turns into the caller's own default. No network,
8
+ * no credentials, nothing to configure.
9
+ *
10
+ * Call-site defaults stay `false` under RAMP-1. Never write `flag(key, true)`
11
+ * to dogfood locally — that same `true` is the production fallback when a
12
+ * control point is absent from the provider, so it silently ships the ON
13
+ * branch. Use `devFlags`.
14
+ */
15
+ import type { AdapterRuntimeFeatures, PrefetchOptions, PrefetchResult, RegisterTargetOptions, RegisterTargetResult, WebBackendAdapter } from '../../application/ports.js';
16
+ import type { TargetKind } from '../../domain/target.js';
17
+ import type { CanonicalContext } from '../../domain/types.js';
18
+ export interface FireweaveLocalWebAdapterOptions {
19
+ readonly devFlags?: Record<string, boolean>;
20
+ /**
21
+ * Sink for the `[fireweave:local]` registerTarget trace line
22
+ * (spec/modes.md "registerTarget in local mode"). Defaults to
23
+ * `console.info`.
24
+ */
25
+ readonly log?: (message: string) => void;
26
+ }
27
+ /** A target recorded by {@link FireweaveLocalWebAdapter.registerTarget}. */
28
+ export interface LocalRegisteredTarget {
29
+ readonly targetingKey: string;
30
+ readonly kind: TargetKind;
31
+ readonly properties: Record<string, unknown>;
32
+ readonly environment?: string;
33
+ }
34
+ export declare class FireweaveLocalWebAdapter implements WebBackendAdapter {
35
+ /** Not `inmemory` — that name belongs to the fixture adapter. */
36
+ readonly name: "other";
37
+ /**
38
+ * spec/modes.md "Behaviour per mode": local's unknown-key row is
39
+ * `default`/reason `DEFAULT`, not an error. This is the strict `===` seam
40
+ * `FireweaveWebRuntime.evaluateSync` checks on a cache miss.
41
+ */
42
+ readonly missReason: "DEFAULT";
43
+ private readonly devFlags;
44
+ private readonly log;
45
+ private readonly targets;
46
+ private closed;
47
+ constructor(options?: FireweaveLocalWebAdapterOptions);
48
+ initialize(_signal?: AbortSignal): Promise<void>;
49
+ /**
50
+ * `enabled: true` alongside `reason: 'STATIC'` is deliberate: reporting
51
+ * `enabled: false` for an override of `false` would make the runtime label
52
+ * the decision `DISABLED`, which means "exists but switched off upstream" —
53
+ * not what a local override expresses.
54
+ */
55
+ prefetch(_context: CanonicalContext, _options?: PrefetchOptions): Promise<PrefetchResult>;
56
+ /**
57
+ * Records the target in-process and traces it, rather than reporting
58
+ * `UnsupportedCapability`.
59
+ *
60
+ * The capability could instead report Unsupported so a dev harness could
61
+ * not *silently* look registered — but the failure being guarded against
62
+ * is a developer believing their targeting works because nothing objected.
63
+ * A recorded target plus an explicit `[fireweave:local]` line preserves
64
+ * that guarantee by a different route: nothing is silent, and local dev
65
+ * can exercise targeting rules offline instead of only in production
66
+ * (spec/modes.md "registerTarget in local mode").
67
+ *
68
+ * The trace names the mode, so a line appearing in a production log is
69
+ * itself the signal that something booted in local mode by mistake.
70
+ *
71
+ * No network call is made and nothing reaches fw-server.
72
+ */
73
+ registerTarget(targetingKey: string, options?: RegisterTargetOptions): Promise<RegisterTargetResult>;
74
+ /** Targets recorded this process, for assertions and dev inspection. */
75
+ getRegisteredTargets(): readonly LocalRegisteredTarget[];
76
+ shutdown(): Promise<void>;
77
+ isClosed(): boolean;
78
+ features(): AdapterRuntimeFeatures;
79
+ }
80
+ //# sourceMappingURL=local.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"local.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/adapters/local.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,OAAO,KAAK,EAEV,sBAAsB,EACtB,eAAe,EACf,cAAc,EACd,qBAAqB,EACrB,oBAAoB,EACpB,iBAAiB,EAClB,MAAM,4BAA4B,CAAC;AACpC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAE9D,MAAM,WAAW,+BAA+B;IAC9C,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC5C;;;;OAIG;IACH,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CAC1C;AAED,4EAA4E;AAC5E,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAC1B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC7C,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;CAC/B;AAED,qBAAa,wBAAyB,YAAW,iBAAiB;IAChE,iEAAiE;IACjE,QAAQ,CAAC,IAAI,EAAG,OAAO,CAAU;IACjC;;;;OAIG;IACH,QAAQ,CAAC,UAAU,EAAG,SAAS,CAAU;IAEzC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA0B;IACnD,OAAO,CAAC,QAAQ,CAAC,GAAG,CAA4B;IAChD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA4C;IACpE,OAAO,CAAC,MAAM,CAAS;gBAEX,OAAO,GAAE,+BAAoC;IAKnD,UAAU,CAAC,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAItD;;;;;OAKG;IACG,QAAQ,CAAC,QAAQ,EAAE,gBAAgB,EAAE,QAAQ,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,cAAc,CAAC;IAe/F;;;;;;;;;;;;;;;;OAgBG;IACG,cAAc,CAClB,YAAY,EAAE,MAAM,EACpB,OAAO,GAAE,qBAA0B,GAClC,OAAO,CAAC,oBAAoB,CAAC;IAiBhC,wEAAwE;IACxE,oBAAoB,IAAI,SAAS,qBAAqB,EAAE;IAIlD,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAI/B,QAAQ,IAAI,OAAO;IAInB,QAAQ,IAAI,sBAAsB;CAYnC"}
@@ -0,0 +1,95 @@
1
+ export class FireweaveLocalWebAdapter {
2
+ /** Not `inmemory` — that name belongs to the fixture adapter. */
3
+ name = 'other';
4
+ /**
5
+ * spec/modes.md "Behaviour per mode": local's unknown-key row is
6
+ * `default`/reason `DEFAULT`, not an error. This is the strict `===` seam
7
+ * `FireweaveWebRuntime.evaluateSync` checks on a cache miss.
8
+ */
9
+ missReason = 'DEFAULT';
10
+ devFlags;
11
+ log;
12
+ targets = new Map();
13
+ closed = false;
14
+ constructor(options = {}) {
15
+ this.devFlags = { ...(options.devFlags ?? {}) };
16
+ this.log = options.log ?? ((m) => console.info(m));
17
+ }
18
+ async initialize(_signal) {
19
+ // Nothing to connect to.
20
+ }
21
+ /**
22
+ * `enabled: true` alongside `reason: 'STATIC'` is deliberate: reporting
23
+ * `enabled: false` for an override of `false` would make the runtime label
24
+ * the decision `DISABLED`, which means "exists but switched off upstream" —
25
+ * not what a local override expresses.
26
+ */
27
+ async prefetch(_context, _options) {
28
+ const out = new Map();
29
+ for (const [key, value] of Object.entries(this.devFlags)) {
30
+ out.set(key, {
31
+ found: true,
32
+ enabled: true,
33
+ value,
34
+ variant: value ? 'on' : 'off',
35
+ reason: 'STATIC',
36
+ flagType: 'boolean',
37
+ });
38
+ }
39
+ return out;
40
+ }
41
+ /**
42
+ * Records the target in-process and traces it, rather than reporting
43
+ * `UnsupportedCapability`.
44
+ *
45
+ * The capability could instead report Unsupported so a dev harness could
46
+ * not *silently* look registered — but the failure being guarded against
47
+ * is a developer believing their targeting works because nothing objected.
48
+ * A recorded target plus an explicit `[fireweave:local]` line preserves
49
+ * that guarantee by a different route: nothing is silent, and local dev
50
+ * can exercise targeting rules offline instead of only in production
51
+ * (spec/modes.md "registerTarget in local mode").
52
+ *
53
+ * The trace names the mode, so a line appearing in a production log is
54
+ * itself the signal that something booted in local mode by mistake.
55
+ *
56
+ * No network call is made and nothing reaches fw-server.
57
+ */
58
+ async registerTarget(targetingKey, options = {}) {
59
+ const kind = options.kind ?? 'user';
60
+ const properties = { ...(options.properties ?? {}) };
61
+ const target = {
62
+ targetingKey,
63
+ kind,
64
+ properties,
65
+ ...(options.environment === undefined ? {} : { environment: options.environment }),
66
+ };
67
+ this.targets.set(targetingKey, target);
68
+ this.log(`[fireweave:local] registerTarget ${kind} ${targetingKey} ` +
69
+ `${JSON.stringify(properties)} — recorded in-process, NOT sent to fw-server`);
70
+ return { ok: true };
71
+ }
72
+ /** Targets recorded this process, for assertions and dev inspection. */
73
+ getRegisteredTargets() {
74
+ return [...this.targets.values()];
75
+ }
76
+ async shutdown() {
77
+ this.closed = true;
78
+ }
79
+ isClosed() {
80
+ return this.closed;
81
+ }
82
+ features() {
83
+ return {
84
+ remoteEvaluation: false,
85
+ localEvaluation: true,
86
+ localOnly: true,
87
+ // No exposure sink exists locally; claiming otherwise would advertise
88
+ // emission that silently goes nowhere.
89
+ exposureEmission: false,
90
+ sideEffectFreeReads: true,
91
+ groupAnalytics: false,
92
+ };
93
+ }
94
+ }
95
+ //# sourceMappingURL=local.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"local.js","sourceRoot":"","sources":["../../../src/infrastructure/adapters/local.ts"],"names":[],"mappings":"AA4CA,MAAM,OAAO,wBAAwB;IACnC,iEAAiE;IACxD,IAAI,GAAG,OAAgB,CAAC;IACjC;;;;OAIG;IACM,UAAU,GAAG,SAAkB,CAAC;IAExB,QAAQ,CAA0B;IAClC,GAAG,CAA4B;IAC/B,OAAO,GAAG,IAAI,GAAG,EAAiC,CAAC;IAC5D,MAAM,GAAG,KAAK,CAAC;IAEvB,YAAY,UAA2C,EAAE;QACvD,IAAI,CAAC,QAAQ,GAAG,EAAE,GAAG,CAAC,OAAO,CAAC,QAAQ,IAAI,EAAE,CAAC,EAAE,CAAC;QAChD,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IACrD,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,OAAqB;QACpC,yBAAyB;IAC3B,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,QAAQ,CAAC,QAA0B,EAAE,QAA0B;QACnE,MAAM,GAAG,GAAG,IAAI,GAAG,EAA6B,CAAC;QACjD,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;YACzD,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE;gBACX,KAAK,EAAE,IAAI;gBACX,OAAO,EAAE,IAAI;gBACb,KAAK;gBACL,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK;gBAC7B,MAAM,EAAE,QAAQ;gBAChB,QAAQ,EAAE,SAAS;aACpB,CAAC,CAAC;QACL,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IAED;;;;;;;;;;;;;;;;OAgBG;IACH,KAAK,CAAC,cAAc,CAClB,YAAoB,EACpB,UAAiC,EAAE;QAEnC,MAAM,IAAI,GAAe,OAAO,CAAC,IAAI,IAAI,MAAM,CAAC;QAChD,MAAM,UAAU,GAAG,EAAE,GAAG,CAAC,OAAO,CAAC,UAAU,IAAI,EAAE,CAAC,EAAE,CAAC;QACrD,MAAM,MAAM,GAA0B;YACpC,YAAY;YACZ,IAAI;YACJ,UAAU;YACV,GAAG,CAAC,OAAO,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,OAAO,CAAC,WAAW,EAAE,CAAC;SACnF,CAAC;QACF,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;QACvC,IAAI,CAAC,GAAG,CACN,oCAAoC,IAAI,IAAI,YAAY,GAAG;YACzD,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,+CAA+C,CAC/E,CAAC;QACF,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;IACtB,CAAC;IAED,wEAAwE;IACxE,oBAAoB;QAClB,OAAO,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IACpC,CAAC;IAED,KAAK,CAAC,QAAQ;QACZ,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;IACrB,CAAC;IAED,QAAQ;QACN,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED,QAAQ;QACN,OAAO;YACL,gBAAgB,EAAE,KAAK;YACvB,eAAe,EAAE,IAAI;YACrB,SAAS,EAAE,IAAI;YACf,sEAAsE;YACtE,uCAAuC;YACvC,gBAAgB,EAAE,KAAK;YACvB,mBAAmB,EAAE,IAAI;YACzB,cAAc,EAAE,KAAK;SACtB,CAAC;IACJ,CAAC;CACF"}
@@ -1,5 +1,5 @@
1
- import type { AdapterRuntimeFeatures, PrefetchOptions, PrefetchResult, RegisterTargetOptions, RegisterTargetResult, WebBackendAdapter } from '../adapter.js';
2
- import type { CanonicalContext, Exposure, Signal } from '../types.js';
1
+ import type { AdapterRuntimeFeatures, PrefetchOptions, PrefetchResult, RegisterTargetOptions, RegisterTargetResult, WebBackendAdapter } from '../../application/ports.js';
2
+ import type { CanonicalContext, Exposure, Signal } from '../../domain/types.js';
3
3
  export type FireweaveFetchLike = typeof fetch;
4
4
  export interface FireweaveRemoteWebAdapterOptions {
5
5
  /** fw-server base URL, e.g. `https://app-server.fireweave.ai`. */
@@ -0,0 +1 @@
1
+ {"version":3,"file":"remote.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/adapters/remote.ts"],"names":[],"mappings":"AAqBA,OAAO,KAAK,EAEV,sBAAsB,EACtB,eAAe,EACf,cAAc,EACd,qBAAqB,EACrB,oBAAoB,EACpB,iBAAiB,EAClB,MAAM,4BAA4B,CAAC;AACpC,OAAO,KAAK,EAAE,gBAAgB,EAAkB,QAAQ,EAAa,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAQ3G,MAAM,MAAM,kBAAkB,GAAG,OAAO,KAAK,CAAC;AAE9C,MAAM,WAAW,gCAAgC;IAC/C,kEAAkE;IAClE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,kFAAkF;IAClF,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,kEAAkE;IAClE,QAAQ,CAAC,YAAY,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC1C,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IACnC,sDAAsD;IACtD,QAAQ,CAAC,KAAK,CAAC,EAAE,kBAAkB,CAAC;CACrC;AAuDD,qBAAa,yBAA0B,YAAW,iBAAiB;IACjE,QAAQ,CAAC,IAAI,EAAG,WAAW,CAAU;IAErC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAgC;IAC7D,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAS;IAC1C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAqB;IAC/C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAsB;IAC9C,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,MAAM,CAAS;gBAEX,OAAO,EAAE,gCAAgC;IAW/C,UAAU,CAAC,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAOhD,QAAQ,CAAC,OAAO,EAAE,gBAAgB,EAAE,OAAO,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,cAAc,CAAC;IAsCvF,cAAc,CAClB,YAAY,EAAE,MAAM,EACpB,OAAO,GAAE,qBAA0B,GAClC,OAAO,CAAC,oBAAoB,CAAC;IA4BhC,cAAc,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI;IAexC,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAqBlC;;;;OAIG;IACG,KAAK,CAAC,OAAO,GAAE;QAAE,MAAM,CAAC,EAAE,OAAO,CAAA;KAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAkB9D,OAAO,CAAC,qBAAqB;IA0BvB,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAO/B,QAAQ,IAAI,sBAAsB;IAYlC,OAAO,CAAC,YAAY;YAwBN,WAAW;CAmC1B"}
@@ -16,8 +16,9 @@
16
16
  *
17
17
  * See spec/remote-protocol.md § Browser clients.
18
18
  */
19
- import { FireweaveError } from '../errors.js';
19
+ import { FireweaveError } from '../../domain/errors.js';
20
20
  import { assertHostAllowed, assertNotSecretKey } from '../hosts.js';
21
+ import { validateTargetingKey } from '../../domain/validation.js';
21
22
  const EVALUATE_PATH = '/v1/flags/evaluate';
22
23
  const CAPTURE_PATH = '/v1/capture';
23
24
  const REGISTER_TARGET_PATH = '/v1/targets/register';
@@ -78,12 +79,10 @@ export class FireweaveRemoteWebAdapter {
78
79
  throw new FireweaveError('AlreadyClosed');
79
80
  if (!this.ready)
80
81
  throw new FireweaveError('NotReady');
81
- const targetingKey = context.targetingKey ?? '';
82
- if (targetingKey === '') {
83
- throw new FireweaveError('InvalidContext', {
84
- openFeatureErrorCode: 'TARGETING_KEY_MISSING',
85
- });
86
- }
82
+ const targetingKeyResult = validateTargetingKey(context.targetingKey, true);
83
+ if (!targetingKeyResult.ok)
84
+ throw targetingKeyResult.error;
85
+ const targetingKey = targetingKeyResult.value ?? '';
87
86
  // `$`-prefixed and `fireweave.`-prefixed attributes are backend directives,
88
87
  // not person properties, and groups travel in their own fields.
89
88
  const attributes = {};
@@ -116,14 +115,9 @@ export class FireweaveRemoteWebAdapter {
116
115
  return { ok: false, error: new FireweaveError('AlreadyClosed') };
117
116
  if (!this.ready)
118
117
  return { ok: false, error: new FireweaveError('NotReady') };
119
- if (targetingKey.trim() === '') {
120
- return {
121
- ok: false,
122
- error: new FireweaveError('InvalidContext', {
123
- openFeatureErrorCode: 'TARGETING_KEY_MISSING',
124
- }),
125
- };
126
- }
118
+ const targetingKeyResult = validateTargetingKey(targetingKey.trim() === '' ? undefined : targetingKey, true);
119
+ if (!targetingKeyResult.ok)
120
+ return { ok: false, error: targetingKeyResult.error };
127
121
  const body = { targetingKey };
128
122
  if (options.kind !== undefined)
129
123
  body['kind'] = options.kind;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"remote.js","sourceRoot":"","sources":["../../../src/infrastructure/adapters/remote.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hosts.d.ts","sourceRoot":"","sources":["../../src/infrastructure/hosts.ts"],"names":[],"mappings":"AAgBA,eAAO,MAAM,qBAAqB,EAAE,SAAS,MAAM,EAMjD,CAAC;AAEH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAO5D;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,IAAI,CA0BtF;AAYD,+FAA+F;AAC/F,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAQvD"}
@@ -12,7 +12,7 @@
12
12
  * Scheme policy matches the server SDK: https everywhere except loopback,
13
13
  * where plain http is allowed for local development against a dev server.
14
14
  */
15
- import { FireweaveError } from './errors.js';
15
+ import { FireweaveError } from '../domain/errors.js';
16
16
  export const DEFAULT_ALLOWED_HOSTS = Object.freeze([
17
17
  'app-server.fireweave.ai',
18
18
  'staging-app-server.fireweave.ai',
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hosts.js","sourceRoot":"","sources":["../../src/infrastructure/hosts.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAErD,MAAM,CAAC,MAAM,qBAAqB,GAAsB,MAAM,CAAC,MAAM,CAAC;IACpE,yBAAyB;IACzB,iCAAiC;IACjC,WAAW;IACX,WAAW;IACX,KAAK;CACN,CAAC,CAAC;AAEH,MAAM,UAAU,kBAAkB,CAAC,QAAgB;IACjD,OAAO,CACL,QAAQ,KAAK,WAAW;QACxB,QAAQ,KAAK,WAAW;QACxB,QAAQ,KAAK,KAAK;QAClB,QAAQ,KAAK,OAAO,CACrB,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,iBAAiB,CAAC,IAAY,EAAE,YAAgC;IAC9E,IAAI,GAAQ,CAAC;IACb,IAAI,CAAC;QACH,GAAG,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC;IACtB,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,cAAc,CAAC,eAAe,CAAC,CAAC;IAC5C,CAAC;IACD,IAAI,GAAG,CAAC,QAAQ,KAAK,OAAO,IAAI,GAAG,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;QAC1D,MAAM,IAAI,cAAc,CAAC,eAAe,CAAC,CAAC;IAC5C,CAAC;IACD,MAAM,QAAQ,GAAG,kBAAkB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAClD,IAAI,GAAG,CAAC,QAAQ,KAAK,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC;QAC1C,MAAM,IAAI,cAAc,CAAC,eAAe,CAAC,CAAC;IAC5C,CAAC;IACD,MAAM,IAAI,GACR,YAAY,KAAK,SAAS,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,qBAAqB,CAAC;IAC/F,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;QAAE,OAAO,CAAC,mBAAmB;IACnD,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CACvB,CAAC,CAAC,EAAE,EAAE,CACJ,GAAG,CAAC,QAAQ,KAAK,CAAC;QAClB,CAAC,CAAC,KAAK,WAAW,IAAI,QAAQ,CAAC;QAC/B,CAAC,CAAC,KAAK,KAAK,IAAI,GAAG,CAAC,QAAQ,KAAK,OAAO,CAAC,CAC5C,CAAC;IACF,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,cAAc,CAAC,eAAe,CAAC,CAAC;IAC5C,CAAC;AACH,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,sBAAsB,GAAsB,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;AAE1F,+FAA+F;AAC/F,MAAM,UAAU,kBAAkB,CAAC,MAAc;IAC/C,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC;IAC1B,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC;QAAE,MAAM,IAAI,cAAc,CAAC,eAAe,CAAC,CAAC;IAChE,KAAK,MAAM,MAAM,IAAI,sBAAsB,EAAE,CAAC;QAC5C,IAAI,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;YAC3B,MAAM,IAAI,cAAc,CAAC,eAAe,CAAC,CAAC;QAC5C,CAAC;IACH,CAAC;AACH,CAAC"}
package/package.json CHANGED
@@ -1,18 +1,15 @@
1
1
  {
2
2
  "name": "@fireweaveai/web-sdk",
3
- "version": "2.1.0",
4
- "description": "Fireweave release-engineering SDK for browsers: control points, target registration, exposures, and health/outcome signals — with an OpenFeature web provider. Remote-only; holds no secrets.",
3
+ "version": "2.1.1-staging.2",
4
+ "description": "Fireweave SDK for browsers: control points and target registration, in remote (fw-server) or local (in-process, no network) mode. Holds no secrets.",
5
5
  "license": "MIT",
6
6
  "type": "module",
7
7
  "repository": {
8
8
  "type": "git",
9
9
  "url": "git+https://github.com/FireWeave-HQ/fireweave-sdk.git",
10
- "directory": "sdks/web/packages/sdk"
10
+ "directory": "sdks/web"
11
11
  },
12
- "publishConfig": {
13
- "access": "public"
14
- },
15
- "homepage": "https://github.com/FireWeave-HQ/fireweave-sdk/tree/master/sdks/web/packages/sdk#readme",
12
+ "homepage": "https://github.com/FireWeave-HQ/fireweave-sdk/tree/master/sdks/web#readme",
16
13
  "bugs": "https://github.com/FireWeave-HQ/fireweave-sdk/issues",
17
14
  "sideEffects": false,
18
15
  "main": "./dist/index.js",
@@ -27,10 +24,19 @@
27
24
  "dist"
28
25
  ],
29
26
  "scripts": {
30
- "build": "tsc -p tsconfig.json"
27
+ "clean": "rm -rf dist",
28
+ "build": "bun run clean && tsc -p tsconfig.json",
29
+ "typecheck": "bun run build && tsc -p tsconfig.json --noEmit && tsc -p test/tsconfig.json --noEmit",
30
+ "test": "bun run build && bun test test/unit",
31
+ "conformance": "bun run build && bun test/conformance/run.ts",
32
+ "verify": "bun run typecheck && bun run test && bun run conformance"
31
33
  },
32
- "peerDependencies": {
33
- "@openfeature/web-sdk": "^1.9.0"
34
+ "devDependencies": {
35
+ "@happy-dom/global-registrator": "^20.11.2",
36
+ "@openfeature/web-sdk": "^1.9.0",
37
+ "@types/node": "^24.0.0",
38
+ "happy-dom": "^20.0.0",
39
+ "typescript": "^5.6.0"
34
40
  },
35
41
  "keywords": [
36
42
  "fireweave",
@@ -38,7 +44,6 @@
38
44
  "progressive-delivery",
39
45
  "control-points",
40
46
  "feature-flags",
41
- "openfeature",
42
47
  "browser",
43
48
  "web"
44
49
  ]
@@ -1 +0,0 @@
1
- {"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../src/adapter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AACH,OAAO,KAAK,EAAE,gBAAgB,EAAE,cAAc,EAAE,QAAQ,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAC/G,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAElD,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,OAAO,CAAC;IACf,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,aAAa,CAAC;IACzB,MAAM,CAAC,EAAE,cAAc,CAAC;IACxB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,SAAS,CAAC;IACpB,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED,mFAAmF;AACnF,MAAM,MAAM,cAAc,GAAG,WAAW,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;AAEpE,MAAM,WAAW,eAAe;IAC9B,qFAAqF;IACrF,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACtC,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAC;CAC/B;AAED,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,QAAQ,CAAC;AAE3C,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,IAAI,CAAC,EAAE,UAAU,CAAC;IAC3B,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IAChD,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAC;CAC/B;AAED,MAAM,WAAW,oBAAoB;IACnC;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,KAAK,CAAC,EAAE,cAAc,CAAC;CACjC;AAED,MAAM,WAAW,sBAAsB;IACrC,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,gEAAgE;IAChE,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,IAAI,EAAE,WAAW,GAAG,UAAU,GAAG,OAAO,CAAC;IAClD,kFAAkF;IAClF,UAAU,CAAC,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAChD,qFAAqF;IACrF,QAAQ,CAAC,OAAO,EAAE,gBAAgB,EAAE,OAAO,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;IACxF,oFAAoF;IACpF,cAAc,CAAC,CAAC,YAAY,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,qBAAqB,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAAC;IACtG,cAAc,CAAC,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI,CAAC;IAC1C,YAAY,CAAC,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC;;;;;;OAMG;IACH,KAAK,CAAC,CAAC,OAAO,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACtD,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1B,QAAQ,IAAI,sBAAsB,CAAC;CACpC"}
package/dist/adapter.js DELETED
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=adapter.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"adapter.js","sourceRoot":"","sources":["../src/adapter.ts"],"names":[],"mappings":""}
@@ -1 +0,0 @@
1
- {"version":3,"file":"inmemory.d.ts","sourceRoot":"","sources":["../../src/adapters/inmemory.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EAAkB,KAAK,kBAAkB,EAAE,MAAM,cAAc,CAAC;AACvE,OAAO,KAAK,EACV,iBAAiB,EACjB,sBAAsB,EACtB,eAAe,EACf,cAAc,EACd,iBAAiB,EAClB,MAAM,eAAe,CAAC;AACvB,OAAO,KAAK,EAAE,gBAAgB,EAAE,QAAQ,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAEhG,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC;IAC7B,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC;IAC1B,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,CAAC;IAC7B,+EAA+E;IAC/E,QAAQ,CAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IACpC,QAAQ,CAAC,eAAe,CAAC,EAAE,iBAAiB,CAAC,QAAQ,CAAC,CAAC;CACxD;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,IAAI,EAAE,kBAAkB,CAAC;IAClC,mDAAmD;IACnD,QAAQ,CAAC,YAAY,CAAC,EAAE,OAAO,CAAC;CACjC;AAED,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,sBAAsB,CAAC,CAAC;IACxD,QAAQ,CAAC,KAAK,CAAC,EAAE,aAAa,CAAC;CAChC;AAED,qBAAa,kBAAmB,YAAW,iBAAiB;IAC1D,QAAQ,CAAC,IAAI,EAAG,UAAU,CAAU;IAEpC,OAAO,CAAC,KAAK,CAAsC;IACnD,OAAO,CAAC,KAAK,CAA4B;IACzC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAkB;IAC5C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAgB;IACxC,OAAO,CAAC,MAAM,CAAS;gBAEX,OAAO,GAAE,yBAA8B;IAKnD,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,sBAAsB,CAAC,GAAG,IAAI;IAI7D,QAAQ,CAAC,KAAK,EAAE,aAAa,GAAG,SAAS,GAAG,IAAI;IAI1C,UAAU,CAAC,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAIhD,QAAQ,CAAC,OAAO,EAAE,gBAAgB,EAAE,OAAO,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,cAAc,CAAC;IA0B7F,cAAc,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI;IAIxC,YAAY,IAAI,SAAS,QAAQ,EAAE;IAInC,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAIlC,UAAU,IAAI,SAAS,MAAM,EAAE;IAIzB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAItB,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAI/B,QAAQ,IAAI,OAAO;IAInB,QAAQ,IAAI,sBAAsB;CAUnC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"inmemory.js","sourceRoot":"","sources":["../../src/adapters/inmemory.ts"],"names":[],"mappings":"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"}
@@ -1,38 +0,0 @@
1
- /**
2
- * Local development adapter for the browser — the DEV substrate of a
3
- * scaffolded web harness, and the exact peer of the server SDK's
4
- * `FireweaveLocalAdapter`.
5
- *
6
- * A key present in `devFlags` resolves with reason `STATIC`; every other key
7
- * misses, which the runtime turns into the caller's own default. No network,
8
- * no credentials, nothing to configure.
9
- *
10
- * Call-site defaults stay `false` under RAMP-1. Never write `flag(key, true)`
11
- * to dogfood locally — that same `true` is the production fallback when a
12
- * control point is absent from the provider, so it silently ships the ON
13
- * branch. Use `devFlags`.
14
- */
15
- import type { AdapterRuntimeFeatures, PrefetchOptions, PrefetchResult, WebBackendAdapter } from '../adapter.js';
16
- import type { CanonicalContext } from '../types.js';
17
- export interface FireweaveLocalWebAdapterOptions {
18
- readonly devFlags?: Record<string, boolean>;
19
- }
20
- export declare class FireweaveLocalWebAdapter implements WebBackendAdapter {
21
- /** Not `inmemory` — that name belongs to the fixture adapter. */
22
- readonly name: "other";
23
- private readonly devFlags;
24
- private closed;
25
- constructor(options?: FireweaveLocalWebAdapterOptions);
26
- initialize(_signal?: AbortSignal): Promise<void>;
27
- /**
28
- * `enabled: true` alongside `reason: 'STATIC'` is deliberate: reporting
29
- * `enabled: false` for an override of `false` would make the runtime label
30
- * the decision `DISABLED`, which means "exists but switched off upstream" —
31
- * not what a local override expresses.
32
- */
33
- prefetch(_context: CanonicalContext, _options?: PrefetchOptions): Promise<PrefetchResult>;
34
- shutdown(): Promise<void>;
35
- isClosed(): boolean;
36
- features(): AdapterRuntimeFeatures;
37
- }
38
- //# sourceMappingURL=local.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"local.d.ts","sourceRoot":"","sources":["../../src/adapters/local.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,OAAO,KAAK,EAEV,sBAAsB,EACtB,eAAe,EACf,cAAc,EACd,iBAAiB,EAClB,MAAM,eAAe,CAAC;AACvB,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAEpD,MAAM,WAAW,+BAA+B;IAC9C,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC7C;AAED,qBAAa,wBAAyB,YAAW,iBAAiB;IAChE,iEAAiE;IACjE,QAAQ,CAAC,IAAI,EAAG,OAAO,CAAU;IAEjC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA0B;IACnD,OAAO,CAAC,MAAM,CAAS;gBAEX,OAAO,GAAE,+BAAoC;IAInD,UAAU,CAAC,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAItD;;;;;OAKG;IACG,QAAQ,CAAC,QAAQ,EAAE,gBAAgB,EAAE,QAAQ,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,cAAc,CAAC;IAezF,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAI/B,QAAQ,IAAI,OAAO;IAInB,QAAQ,IAAI,sBAAsB;CAYnC"}
@@ -1,51 +0,0 @@
1
- export class FireweaveLocalWebAdapter {
2
- /** Not `inmemory` — that name belongs to the fixture adapter. */
3
- name = 'other';
4
- devFlags;
5
- closed = false;
6
- constructor(options = {}) {
7
- this.devFlags = { ...(options.devFlags ?? {}) };
8
- }
9
- async initialize(_signal) {
10
- // Nothing to connect to.
11
- }
12
- /**
13
- * `enabled: true` alongside `reason: 'STATIC'` is deliberate: reporting
14
- * `enabled: false` for an override of `false` would make the runtime label
15
- * the decision `DISABLED`, which means "exists but switched off upstream" —
16
- * not what a local override expresses.
17
- */
18
- async prefetch(_context, _options) {
19
- const out = new Map();
20
- for (const [key, value] of Object.entries(this.devFlags)) {
21
- out.set(key, {
22
- found: true,
23
- enabled: true,
24
- value,
25
- variant: value ? 'on' : 'off',
26
- reason: 'STATIC',
27
- flagType: 'boolean',
28
- });
29
- }
30
- return out;
31
- }
32
- async shutdown() {
33
- this.closed = true;
34
- }
35
- isClosed() {
36
- return this.closed;
37
- }
38
- features() {
39
- return {
40
- remoteEvaluation: false,
41
- localEvaluation: true,
42
- localOnly: true,
43
- // No exposure sink exists locally; claiming otherwise would advertise
44
- // emission that silently goes nowhere.
45
- exposureEmission: false,
46
- sideEffectFreeReads: true,
47
- groupAnalytics: false,
48
- };
49
- }
50
- }
51
- //# sourceMappingURL=local.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"local.js","sourceRoot":"","sources":["../../src/adapters/local.ts"],"names":[],"mappings":"AA2BA,MAAM,OAAO,wBAAwB;IACnC,iEAAiE;IACxD,IAAI,GAAG,OAAgB,CAAC;IAEhB,QAAQ,CAA0B;IAC3C,MAAM,GAAG,KAAK,CAAC;IAEvB,YAAY,UAA2C,EAAE;QACvD,IAAI,CAAC,QAAQ,GAAG,EAAE,GAAG,CAAC,OAAO,CAAC,QAAQ,IAAI,EAAE,CAAC,EAAE,CAAC;IAClD,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,OAAqB;QACpC,yBAAyB;IAC3B,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,QAAQ,CAAC,QAA0B,EAAE,QAA0B;QACnE,MAAM,GAAG,GAAG,IAAI,GAAG,EAA6B,CAAC;QACjD,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;YACzD,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE;gBACX,KAAK,EAAE,IAAI;gBACX,OAAO,EAAE,IAAI;gBACb,KAAK;gBACL,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK;gBAC7B,MAAM,EAAE,QAAQ;gBAChB,QAAQ,EAAE,SAAS;aACpB,CAAC,CAAC;QACL,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IAED,KAAK,CAAC,QAAQ;QACZ,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;IACrB,CAAC;IAED,QAAQ;QACN,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED,QAAQ;QACN,OAAO;YACL,gBAAgB,EAAE,KAAK;YACvB,eAAe,EAAE,IAAI;YACrB,SAAS,EAAE,IAAI;YACf,sEAAsE;YACtE,uCAAuC;YACvC,gBAAgB,EAAE,KAAK;YACvB,mBAAmB,EAAE,IAAI;YACzB,cAAc,EAAE,KAAK;SACtB,CAAC;IACJ,CAAC;CACF"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"remote.d.ts","sourceRoot":"","sources":["../../src/adapters/remote.ts"],"names":[],"mappings":"AAoBA,OAAO,KAAK,EAEV,sBAAsB,EACtB,eAAe,EACf,cAAc,EACd,qBAAqB,EACrB,oBAAoB,EACpB,iBAAiB,EAClB,MAAM,eAAe,CAAC;AACvB,OAAO,KAAK,EAAE,gBAAgB,EAAkB,QAAQ,EAAa,MAAM,EAAE,MAAM,aAAa,CAAC;AAQjG,MAAM,MAAM,kBAAkB,GAAG,OAAO,KAAK,CAAC;AAE9C,MAAM,WAAW,gCAAgC;IAC/C,kEAAkE;IAClE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,kFAAkF;IAClF,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,kEAAkE;IAClE,QAAQ,CAAC,YAAY,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC1C,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IACnC,sDAAsD;IACtD,QAAQ,CAAC,KAAK,CAAC,EAAE,kBAAkB,CAAC;CACrC;AAuDD,qBAAa,yBAA0B,YAAW,iBAAiB;IACjE,QAAQ,CAAC,IAAI,EAAG,WAAW,CAAU;IAErC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAgC;IAC7D,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAS;IAC1C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAqB;IAC/C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAsB;IAC9C,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,MAAM,CAAS;gBAEX,OAAO,EAAE,gCAAgC;IAW/C,UAAU,CAAC,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAOhD,QAAQ,CAAC,OAAO,EAAE,gBAAgB,EAAE,OAAO,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,cAAc,CAAC;IAyCvF,cAAc,CAClB,YAAY,EAAE,MAAM,EACpB,OAAO,GAAE,qBAA0B,GAClC,OAAO,CAAC,oBAAoB,CAAC;IAkChC,cAAc,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI;IAexC,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAqBlC;;;;OAIG;IACG,KAAK,CAAC,OAAO,GAAE;QAAE,MAAM,CAAC,EAAE,OAAO,CAAA;KAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAkB9D,OAAO,CAAC,qBAAqB;IA0BvB,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAO/B,QAAQ,IAAI,sBAAsB;IAYlC,OAAO,CAAC,YAAY;YAwBN,WAAW;CAmC1B"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"remote.js","sourceRoot":"","sources":["../../src/adapters/remote.ts"],"names":[],"mappings":"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"}