@fireweaveai/web-sdk 2.3.0 → 3.0.0-staging.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.
- package/README.md +100 -4
- package/dist/application/client.d.ts +12 -27
- package/dist/application/client.d.ts.map +1 -1
- package/dist/application/client.js +21 -38
- package/dist/application/client.js.map +1 -1
- package/dist/application/ports.d.ts +4 -4
- package/dist/application/ports.d.ts.map +1 -1
- package/dist/application/runtime.d.ts +2 -2
- package/dist/application/runtime.d.ts.map +1 -1
- package/dist/application/runtime.js +22 -19
- package/dist/application/runtime.js.map +1 -1
- package/dist/build/node/define.d.ts +14 -0
- package/dist/build/node/define.js +35 -0
- package/dist/build/node/define.js.map +1 -0
- package/dist/build/node/shared.d.ts +19 -0
- package/dist/build/node/shared.js +44 -0
- package/dist/build/node/shared.js.map +1 -0
- package/dist/build/node/vite.d.ts +53 -0
- package/dist/build/node/vite.js +103 -0
- package/dist/build/node/vite.js.map +1 -0
- package/dist/build/src/start/build-info.d.ts +2 -0
- package/dist/build/src/start/build-info.js +7 -0
- package/dist/build/src/start/build-info.js.map +1 -0
- package/dist/build/src/start/names.d.ts +44 -0
- package/dist/build/src/start/names.js +45 -0
- package/dist/build/src/start/names.js.map +1 -0
- package/dist/build/src/start/policy.d.ts +70 -0
- package/dist/build/src/start/policy.js +124 -0
- package/dist/build/src/start/policy.js.map +1 -0
- package/dist/domain/errors.d.ts +1 -1
- package/dist/domain/errors.d.ts.map +1 -1
- package/dist/domain/errors.js +1 -1
- package/dist/domain/errors.js.map +1 -1
- package/dist/domain/types.d.ts +3 -3
- package/dist/domain/types.d.ts.map +1 -1
- package/dist/domain/validation.d.ts +4 -4
- package/dist/domain/validation.js +7 -7
- package/dist/domain/validation.js.map +1 -1
- package/dist/infrastructure/adapters/inmemory.js +1 -1
- package/dist/infrastructure/adapters/inmemory.js.map +1 -1
- package/dist/infrastructure/adapters/remote.js +11 -11
- package/dist/infrastructure/adapters/remote.js.map +1 -1
- package/dist/start/build-info.d.ts +3 -0
- package/dist/start/build-info.d.ts.map +1 -0
- package/dist/start/build-info.js +7 -0
- package/dist/start/build-info.js.map +1 -0
- package/dist/start/control-points.d.ts +25 -0
- package/dist/start/control-points.d.ts.map +1 -0
- package/dist/start/control-points.js +57 -0
- package/dist/start/control-points.js.map +1 -0
- package/dist/start/fw.d.ts +43 -0
- package/dist/start/fw.d.ts.map +1 -0
- package/dist/start/fw.js +135 -0
- package/dist/start/fw.js.map +1 -0
- package/dist/start/identity.d.ts +20 -0
- package/dist/start/identity.d.ts.map +1 -0
- package/dist/start/identity.js +85 -0
- package/dist/start/identity.js.map +1 -0
- package/dist/start/index.d.ts +35 -0
- package/dist/start/index.d.ts.map +1 -0
- package/dist/start/index.js +30 -0
- package/dist/start/index.js.map +1 -0
- package/dist/start/names.d.ts +45 -0
- package/dist/start/names.d.ts.map +1 -0
- package/dist/start/names.js +45 -0
- package/dist/start/names.js.map +1 -0
- package/dist/start/policy.d.ts +71 -0
- package/dist/start/policy.d.ts.map +1 -0
- package/dist/start/policy.js +124 -0
- package/dist/start/policy.js.map +1 -0
- package/dist/start/state.d.ts +104 -0
- package/dist/start/state.d.ts.map +1 -0
- package/dist/start/state.js +361 -0
- package/dist/start/state.js.map +1 -0
- package/package.json +23 -3
|
@@ -0,0 +1,361 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* start() and the page-wide singleton behind `fw`.
|
|
3
|
+
*
|
|
4
|
+
* One slot per page (or worker) at a Symbol.for key on globalThis, so HMR
|
|
5
|
+
* re-evaluation and two bundled copies of this package share one client.
|
|
6
|
+
*
|
|
7
|
+
* Nothing here throws or rejects. A browser that fails to start must still
|
|
8
|
+
* render: a configuration fault logs one console.error, sets the state to
|
|
9
|
+
* FAILED and `problem`, and every read serves its default. The build helpers
|
|
10
|
+
* (`/vite`, `/define`) are where a bad configuration fails loudly.
|
|
11
|
+
*/
|
|
12
|
+
import { FireweaveError, initFireweave } from '../index.js';
|
|
13
|
+
import { SDK_CHANNEL, SDK_VERSION } from './build-info.js';
|
|
14
|
+
import { normalizeControlPoints, toLocalControlPoints } from './control-points.js';
|
|
15
|
+
import { clearStoredIdentity, loadIdentity, mintDeviceId, persistIdentity, readItem, removeItem, writeItem, } from './identity.js';
|
|
16
|
+
import { BUILD_ENV, LOOPBACK_HOSTS, STORAGE_KEYS } from './names.js';
|
|
17
|
+
import { firstOf, resolvePolicy, sourced, } from './policy.js';
|
|
18
|
+
const SLOT_KEY = Symbol.for('@fireweaveai/web-sdk/start');
|
|
19
|
+
let protocolWarned = false;
|
|
20
|
+
const defaultLog = (line) => {
|
|
21
|
+
if (line.startsWith('[fireweave:local]'))
|
|
22
|
+
console.info(line);
|
|
23
|
+
else
|
|
24
|
+
console.warn(line);
|
|
25
|
+
};
|
|
26
|
+
const freshSlot = () => ({
|
|
27
|
+
protocol: 1,
|
|
28
|
+
state: 'NOT_STARTED',
|
|
29
|
+
generation: 0,
|
|
30
|
+
controlPoints: Object.freeze({}),
|
|
31
|
+
persistence: 'localStorage',
|
|
32
|
+
appDeviceId: false,
|
|
33
|
+
ready: Promise.resolve(),
|
|
34
|
+
chain: Promise.resolve(),
|
|
35
|
+
log: defaultLog,
|
|
36
|
+
warned: new Set(),
|
|
37
|
+
listeners: new Set(),
|
|
38
|
+
});
|
|
39
|
+
export function slot() {
|
|
40
|
+
const g = globalThis;
|
|
41
|
+
const existing = g[SLOT_KEY];
|
|
42
|
+
if (existing !== undefined) {
|
|
43
|
+
if (existing.protocol !== 1 && !protocolWarned) {
|
|
44
|
+
protocolWarned = true;
|
|
45
|
+
console.warn('[fireweave] Two incompatible copies of @fireweaveai/web-sdk are loaded. Deduplicate the dependency.');
|
|
46
|
+
}
|
|
47
|
+
return existing;
|
|
48
|
+
}
|
|
49
|
+
const created = freshSlot();
|
|
50
|
+
g[SLOT_KEY] = created;
|
|
51
|
+
return created;
|
|
52
|
+
}
|
|
53
|
+
export function warnOnce(s, line) {
|
|
54
|
+
if (s.warned.has(line))
|
|
55
|
+
return;
|
|
56
|
+
s.warned.add(line);
|
|
57
|
+
s.log(line);
|
|
58
|
+
}
|
|
59
|
+
/** console.error once per line. Errors bypass the log sink so they always reach the console. */
|
|
60
|
+
export function errorOnce(s, line) {
|
|
61
|
+
if (s.warned.has(line))
|
|
62
|
+
return;
|
|
63
|
+
s.warned.add(line);
|
|
64
|
+
console.error(line);
|
|
65
|
+
}
|
|
66
|
+
/** Change state and notify. `always` re-notifies an unchanged state (a re-prefetch after identify). */
|
|
67
|
+
export function setState(s, next, always = false) {
|
|
68
|
+
if (s.state === next && !always)
|
|
69
|
+
return;
|
|
70
|
+
s.state = next;
|
|
71
|
+
for (const listener of s.listeners) {
|
|
72
|
+
try {
|
|
73
|
+
listener(next);
|
|
74
|
+
}
|
|
75
|
+
catch {
|
|
76
|
+
// a listener's bug must not break the SDK
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
const fromLifecycle = (state) => (state === 'UNINITIALIZED' ? 'INITIALIZING' : state);
|
|
81
|
+
/** What the fireweave() build plugin or fireweaveDefine() injected, if anything. */
|
|
82
|
+
export function injectedConfig() {
|
|
83
|
+
let raw;
|
|
84
|
+
try {
|
|
85
|
+
raw = typeof __FIREWEAVE_WEB_CONFIG__ !== 'undefined' ? __FIREWEAVE_WEB_CONFIG__ : undefined;
|
|
86
|
+
}
|
|
87
|
+
catch {
|
|
88
|
+
raw = undefined;
|
|
89
|
+
}
|
|
90
|
+
if (typeof raw !== 'object' || raw === null || raw.v !== 1)
|
|
91
|
+
return undefined;
|
|
92
|
+
return raw;
|
|
93
|
+
}
|
|
94
|
+
const hasDom = () => typeof window !== 'undefined' && typeof document !== 'undefined';
|
|
95
|
+
/** Sorted-key JSON, so the fingerprint does not depend on property order. */
|
|
96
|
+
function stableJson(value) {
|
|
97
|
+
if (Array.isArray(value))
|
|
98
|
+
return `[${value.map(stableJson).join(',')}]`;
|
|
99
|
+
if (value !== null && typeof value === 'object') {
|
|
100
|
+
const entries = Object.entries(value)
|
|
101
|
+
.filter(([, v]) => v !== undefined)
|
|
102
|
+
.sort(([a], [b]) => (a < b ? -1 : a > b ? 1 : 0));
|
|
103
|
+
return `{${entries.map(([k, v]) => `${JSON.stringify(k)}:${stableJson(v)}`).join(',')}}`;
|
|
104
|
+
}
|
|
105
|
+
return JSON.stringify(value ?? null);
|
|
106
|
+
}
|
|
107
|
+
function fingerprintOf(config, controlPoints, deviceId) {
|
|
108
|
+
return stableJson({
|
|
109
|
+
mode: config.mode,
|
|
110
|
+
url: config.url,
|
|
111
|
+
key: config.key,
|
|
112
|
+
allowedHosts: config.allowedHosts,
|
|
113
|
+
deviceId,
|
|
114
|
+
// Local values only matter in local mode.
|
|
115
|
+
controlPoints: config.mode === 'local' ? toLocalControlPoints(controlPoints) : undefined,
|
|
116
|
+
});
|
|
117
|
+
}
|
|
118
|
+
const isActive = (state) => state === 'INITIALIZING' || state === 'READY' || state === 'STALE' || state === 'ERROR';
|
|
119
|
+
function fail(s, problem, message) {
|
|
120
|
+
// A bad repeat start() must not take down the client that is already running.
|
|
121
|
+
if (isActive(s.state)) {
|
|
122
|
+
errorOnce(s, `${message} Keeping the running configuration.`);
|
|
123
|
+
return s.ready;
|
|
124
|
+
}
|
|
125
|
+
s.problem = problem;
|
|
126
|
+
errorOnce(s, `${message} FireWeave is not running; reads serve their defaults.`);
|
|
127
|
+
setState(s, 'FAILED');
|
|
128
|
+
s.ready = Promise.resolve();
|
|
129
|
+
return s.ready;
|
|
130
|
+
}
|
|
131
|
+
/** Same-origin proxy paths ('/fw') resolve against the page origin. */
|
|
132
|
+
function absolutize(config) {
|
|
133
|
+
if (config.url === undefined || !config.url.startsWith('/'))
|
|
134
|
+
return config;
|
|
135
|
+
const origin = globalThis.location.origin;
|
|
136
|
+
return { ...config, url: `${origin}${config.url}`, allowedHosts: [globalThis.location.hostname, ...LOOPBACK_HOSTS] };
|
|
137
|
+
}
|
|
138
|
+
function localLine(config, controlPoints) {
|
|
139
|
+
const why = config.modeSource === 'option'
|
|
140
|
+
? "mode 'local'"
|
|
141
|
+
: `no key; environment '${config.environment ?? ''}' from ${config.environmentSource ?? 'the build config'}`;
|
|
142
|
+
const n = Object.keys(controlPoints).length;
|
|
143
|
+
return `[fireweave:local] Local mode (${why}). Serving ${n} control point${n === 1 ? '' : 's'} from your control-points object; nothing is sent to fw-server.`;
|
|
144
|
+
}
|
|
145
|
+
/**
|
|
146
|
+
* Wrap the transport so faults the core folds into STALE keep their cause:
|
|
147
|
+
* a 401/403 means the key was refused, a rejected fetch means fw-server was
|
|
148
|
+
* not reachable from this page.
|
|
149
|
+
*/
|
|
150
|
+
function observedFetch(s, generation, base, config) {
|
|
151
|
+
const host = config.url !== undefined ? new URL(config.url).host : 'fw-server';
|
|
152
|
+
const wrapped = async (input, init) => {
|
|
153
|
+
try {
|
|
154
|
+
const response = await base(input, init);
|
|
155
|
+
if (s.generation === generation) {
|
|
156
|
+
if (response.status === 401 || response.status === 403) {
|
|
157
|
+
s.problem = { reason: 'key-rejected', variable: config.keySource };
|
|
158
|
+
errorOnce(s, `[fireweave] fw-server refused the browser key from ${config.keySource} (HTTP ${response.status}). Check the key is an active browser key (fw_public_…) for this project. Reads serve their defaults.`);
|
|
159
|
+
}
|
|
160
|
+
else if (response.ok && (s.problem?.reason === 'key-rejected' || s.problem?.reason === 'unreachable')) {
|
|
161
|
+
s.problem = undefined;
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
return response;
|
|
165
|
+
}
|
|
166
|
+
catch (err) {
|
|
167
|
+
if (s.generation === generation) {
|
|
168
|
+
s.problem = { reason: 'unreachable' };
|
|
169
|
+
warnOnce(s, `[fireweave] Could not reach fw-server at ${host}: offline, an ad or tracker blocker, a firewall, or a Content-Security-Policy connect-src rule. Reads serve their defaults. A same-origin proxy set through FIREWEAVE_URL avoids most of these.`);
|
|
170
|
+
}
|
|
171
|
+
throw err;
|
|
172
|
+
}
|
|
173
|
+
};
|
|
174
|
+
return wrapped;
|
|
175
|
+
}
|
|
176
|
+
function registerDevice(s, generation) {
|
|
177
|
+
const { client, identity, config } = s;
|
|
178
|
+
if (client === undefined || identity === undefined || config?.mode !== 'remote' || !identity.durable)
|
|
179
|
+
return;
|
|
180
|
+
if (readItem(STORAGE_KEYS.deviceRegistered) === identity.deviceId)
|
|
181
|
+
return;
|
|
182
|
+
void client.registerTarget(identity.deviceId, { kind: 'device' }).then((result) => {
|
|
183
|
+
if (result.ok && s.generation === generation && s.persistence === 'localStorage') {
|
|
184
|
+
writeItem(STORAGE_KEYS.deviceRegistered, identity.deviceId);
|
|
185
|
+
}
|
|
186
|
+
});
|
|
187
|
+
}
|
|
188
|
+
/**
|
|
189
|
+
* Start FireWeave for this page. Call once, from src/fireweave/start.ts.
|
|
190
|
+
*
|
|
191
|
+
* Resolves when the first prefetch settles (READY, STALE or ERROR) and never
|
|
192
|
+
* rejects, so `await start(...)` cannot blank a page. Check `fw.status()` for
|
|
193
|
+
* the outcome.
|
|
194
|
+
*/
|
|
195
|
+
export function start(options = {}) {
|
|
196
|
+
const s = slot();
|
|
197
|
+
if (options.log !== undefined && (s.state === 'NOT_STARTED' || s.state === 'FAILED' || s.state === 'SHUTDOWN')) {
|
|
198
|
+
s.log = options.log;
|
|
199
|
+
}
|
|
200
|
+
let controlPoints;
|
|
201
|
+
try {
|
|
202
|
+
controlPoints = normalizeControlPoints(options.controlPoints);
|
|
203
|
+
}
|
|
204
|
+
catch (err) {
|
|
205
|
+
return fail(s, { reason: 'invalid-control-points', variable: 'controlPoints' }, err.message);
|
|
206
|
+
}
|
|
207
|
+
const injected = injectedConfig();
|
|
208
|
+
const policy = resolvePolicy({
|
|
209
|
+
mode: options.mode,
|
|
210
|
+
key: firstOf(sourced(options.key, 'start({ key })'), sourced(injected?.key, injected?.keySource ?? BUILD_ENV.key)),
|
|
211
|
+
url: firstOf(sourced(options.url, 'start({ url })'), sourced(injected?.url, injected?.urlSource ?? BUILD_ENV.url)),
|
|
212
|
+
environment: firstOf(sourced(options.environment, 'start({ environment })'), sourced(injected?.environment, injected?.environmentSource ?? BUILD_ENV.environment)),
|
|
213
|
+
channel: SDK_CHANNEL,
|
|
214
|
+
keyVariable: injected !== undefined ? BUILD_ENV.key : `the browser key (start({ key }), or ${BUILD_ENV.key} through the fireweave() build plugin)`,
|
|
215
|
+
environmentChecked: 'start({ environment }) and the build config',
|
|
216
|
+
});
|
|
217
|
+
if (!policy.ok)
|
|
218
|
+
return fail(s, { reason: policy.reason, variable: policy.variable }, policy.message);
|
|
219
|
+
// Remote mode without a DOM (SSR, a worker, a DOM-less test) does nothing:
|
|
220
|
+
// a server-side singleton would share one visitor's identity across requests.
|
|
221
|
+
if (policy.config.mode === 'remote' && !hasDom())
|
|
222
|
+
return Promise.resolve();
|
|
223
|
+
const config = absolutize(policy.config);
|
|
224
|
+
const fingerprint = fingerprintOf(config, controlPoints, options.deviceId);
|
|
225
|
+
if (isActive(s.state)) {
|
|
226
|
+
if (fingerprint !== s.fingerprint) {
|
|
227
|
+
errorOnce(s, '[fireweave] start() was already called with a different configuration; keeping the first one. Call start() once, from src/fireweave/start.ts.');
|
|
228
|
+
}
|
|
229
|
+
return s.ready;
|
|
230
|
+
}
|
|
231
|
+
const generation = s.generation + 1;
|
|
232
|
+
s.generation = generation;
|
|
233
|
+
s.fingerprint = fingerprint;
|
|
234
|
+
s.config = config;
|
|
235
|
+
s.controlPoints = controlPoints;
|
|
236
|
+
s.problem = undefined;
|
|
237
|
+
s.client = undefined;
|
|
238
|
+
s.persistence = options.persistence === 'memory' ? 'memory' : 'localStorage';
|
|
239
|
+
s.appDeviceId = options.deviceId !== undefined;
|
|
240
|
+
s.chain = Promise.resolve();
|
|
241
|
+
for (const w of policy.warnings)
|
|
242
|
+
warnOnce(s, w);
|
|
243
|
+
// Local mode stores nothing and registers nothing: the id lives for this page only.
|
|
244
|
+
const identity = config.mode === 'local'
|
|
245
|
+
? { deviceId: options.deviceId ?? mintDeviceId(), durable: false }
|
|
246
|
+
: loadIdentity(s.persistence, options.deviceId);
|
|
247
|
+
s.identity = identity;
|
|
248
|
+
s.currentKey = identity.user ?? identity.deviceId;
|
|
249
|
+
if (config.mode === 'local')
|
|
250
|
+
s.log(localLine(config, controlPoints));
|
|
251
|
+
setState(s, 'INITIALIZING');
|
|
252
|
+
const base = options.fetch ?? globalThis.fetch?.bind(globalThis);
|
|
253
|
+
const init = config.mode === 'local'
|
|
254
|
+
? initFireweave({
|
|
255
|
+
mode: 'local',
|
|
256
|
+
local: { controlPoints: toLocalControlPoints(controlPoints), log: (line) => s.log(line) },
|
|
257
|
+
context: { targetingKey: s.currentKey },
|
|
258
|
+
})
|
|
259
|
+
: initFireweave({
|
|
260
|
+
mode: 'remote',
|
|
261
|
+
apiKey: config.key,
|
|
262
|
+
apiUrl: config.url,
|
|
263
|
+
...(config.allowedHosts !== undefined ? { allowedHosts: config.allowedHosts } : {}),
|
|
264
|
+
...(base !== undefined ? { fetch: observedFetch(s, generation, base, config) } : {}),
|
|
265
|
+
context: { targetingKey: s.currentKey },
|
|
266
|
+
});
|
|
267
|
+
s.ready = init.then((client) => {
|
|
268
|
+
if (s.generation !== generation) {
|
|
269
|
+
void client.shutdown();
|
|
270
|
+
return;
|
|
271
|
+
}
|
|
272
|
+
s.client = client;
|
|
273
|
+
s.detachRuntime = client.runtime.onStateChange((state) => {
|
|
274
|
+
if (s.generation === generation)
|
|
275
|
+
setState(s, fromLifecycle(state), true);
|
|
276
|
+
});
|
|
277
|
+
setState(s, fromLifecycle(client.runtime.getState()));
|
|
278
|
+
registerDevice(s, generation);
|
|
279
|
+
}, () => {
|
|
280
|
+
if (s.generation !== generation)
|
|
281
|
+
return;
|
|
282
|
+
s.problem = { reason: 'start-failed' };
|
|
283
|
+
errorOnce(s, '[fireweave] start failed: the core rejected the configuration. FireWeave is not running; reads serve their defaults.');
|
|
284
|
+
setState(s, 'FAILED');
|
|
285
|
+
});
|
|
286
|
+
return s.ready;
|
|
287
|
+
}
|
|
288
|
+
export function currentStatus() {
|
|
289
|
+
const s = slot();
|
|
290
|
+
const c = s.config;
|
|
291
|
+
const active = s.state !== 'NOT_STARTED' && s.state !== 'FAILED';
|
|
292
|
+
return {
|
|
293
|
+
state: s.state,
|
|
294
|
+
channel: SDK_CHANNEL,
|
|
295
|
+
sdkVersion: SDK_VERSION,
|
|
296
|
+
...(c !== undefined && active
|
|
297
|
+
? {
|
|
298
|
+
mode: c.mode,
|
|
299
|
+
modeSource: c.modeSource,
|
|
300
|
+
keySource: c.keySource,
|
|
301
|
+
controlPointCount: Object.keys(s.controlPoints).length,
|
|
302
|
+
...(c.url !== undefined && c.urlSource !== undefined ? { host: new URL(c.url).hostname, endpointSource: c.urlSource } : {}),
|
|
303
|
+
...(c.environment !== undefined ? { environment: c.environment } : {}),
|
|
304
|
+
}
|
|
305
|
+
: {}),
|
|
306
|
+
...(s.problem !== undefined ? { problem: s.problem } : {}),
|
|
307
|
+
};
|
|
308
|
+
}
|
|
309
|
+
/** Switch storage at runtime, for consent. Never part of the start() configuration check. */
|
|
310
|
+
export function setPersistenceFor(mode) {
|
|
311
|
+
const s = slot();
|
|
312
|
+
if (mode !== 'localStorage' && mode !== 'memory')
|
|
313
|
+
return;
|
|
314
|
+
const previous = s.persistence;
|
|
315
|
+
s.persistence = mode;
|
|
316
|
+
if (s.identity === undefined || s.config?.mode !== 'remote' || previous === mode)
|
|
317
|
+
return;
|
|
318
|
+
if (mode === 'memory') {
|
|
319
|
+
clearStoredIdentity();
|
|
320
|
+
return;
|
|
321
|
+
}
|
|
322
|
+
const user = s.currentKey !== s.identity.deviceId ? s.currentKey : undefined;
|
|
323
|
+
s.identity.durable = persistIdentity(s.identity, user, s.appDeviceId);
|
|
324
|
+
registerDevice(s, s.generation);
|
|
325
|
+
}
|
|
326
|
+
/** Store (or clear) the signed-in key, when persistence allows it. */
|
|
327
|
+
export function rememberUser(s, user) {
|
|
328
|
+
if (s.config?.mode !== 'remote' || s.persistence !== 'localStorage')
|
|
329
|
+
return;
|
|
330
|
+
if (user === undefined)
|
|
331
|
+
removeItem(STORAGE_KEYS.identity);
|
|
332
|
+
else
|
|
333
|
+
writeItem(STORAGE_KEYS.identity, user);
|
|
334
|
+
}
|
|
335
|
+
export async function shutdownSlot() {
|
|
336
|
+
const s = slot();
|
|
337
|
+
await s.ready;
|
|
338
|
+
const client = s.client;
|
|
339
|
+
s.generation += 1;
|
|
340
|
+
s.detachRuntime?.();
|
|
341
|
+
s.client = undefined;
|
|
342
|
+
s.fingerprint = undefined;
|
|
343
|
+
s.ready = Promise.resolve();
|
|
344
|
+
setState(s, 'SHUTDOWN');
|
|
345
|
+
if (client !== undefined)
|
|
346
|
+
await client.shutdown();
|
|
347
|
+
}
|
|
348
|
+
/** Test only: shut down and forget the singleton so the next start() begins fresh. */
|
|
349
|
+
export async function resetForTests() {
|
|
350
|
+
const g = globalThis;
|
|
351
|
+
const s = g[SLOT_KEY];
|
|
352
|
+
if (s !== undefined) {
|
|
353
|
+
s.generation += 1;
|
|
354
|
+
s.detachRuntime?.();
|
|
355
|
+
if (s.client !== undefined)
|
|
356
|
+
await s.client.shutdown().catch(() => undefined);
|
|
357
|
+
}
|
|
358
|
+
delete g[SLOT_KEY];
|
|
359
|
+
}
|
|
360
|
+
export const notStartedError = (state) => new FireweaveError(state === 'FAILED' ? 'Configuration' : state === 'SHUTDOWN' ? 'AlreadyClosed' : 'NotReady');
|
|
361
|
+
//# sourceMappingURL=state.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"state.js","sourceRoot":"","sources":["../../src/start/state.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@fireweaveai/web-sdk",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "3.0.0-staging.1",
|
|
4
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",
|
|
@@ -18,6 +18,18 @@
|
|
|
18
18
|
".": {
|
|
19
19
|
"types": "./dist/index.d.ts",
|
|
20
20
|
"default": "./dist/index.js"
|
|
21
|
+
},
|
|
22
|
+
"./start": {
|
|
23
|
+
"types": "./dist/start/index.d.ts",
|
|
24
|
+
"default": "./dist/start/index.js"
|
|
25
|
+
},
|
|
26
|
+
"./vite": {
|
|
27
|
+
"types": "./dist/build/node/vite.d.ts",
|
|
28
|
+
"default": "./dist/build/node/vite.js"
|
|
29
|
+
},
|
|
30
|
+
"./define": {
|
|
31
|
+
"types": "./dist/build/node/define.d.ts",
|
|
32
|
+
"default": "./dist/build/node/define.js"
|
|
21
33
|
}
|
|
22
34
|
},
|
|
23
35
|
"files": [
|
|
@@ -25,12 +37,20 @@
|
|
|
25
37
|
],
|
|
26
38
|
"scripts": {
|
|
27
39
|
"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",
|
|
40
|
+
"build": "bun run clean && tsc -p tsconfig.json && tsc -p tsconfig.node.json",
|
|
41
|
+
"typecheck": "bun run build && tsc -p tsconfig.json --noEmit && tsc -p tsconfig.node.json --noEmit && tsc -p test/tsconfig.json --noEmit",
|
|
30
42
|
"test": "bun run build && bun test test/unit",
|
|
31
43
|
"conformance": "bun run build && bun test/conformance/run.ts",
|
|
32
44
|
"verify": "bun run typecheck && bun run test && bun run conformance"
|
|
33
45
|
},
|
|
46
|
+
"peerDependencies": {
|
|
47
|
+
"vite": ">=5.0.0"
|
|
48
|
+
},
|
|
49
|
+
"peerDependenciesMeta": {
|
|
50
|
+
"vite": {
|
|
51
|
+
"optional": true
|
|
52
|
+
}
|
|
53
|
+
},
|
|
34
54
|
"devDependencies": {
|
|
35
55
|
"@happy-dom/global-registrator": "^20.11.2",
|
|
36
56
|
"@openfeature/web-sdk": "^1.9.0",
|