@warp-drive/core 5.8.0-alpha.3 → 5.8.0-alpha.30
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 +22 -38
- package/declarations/build-config.d.ts +18 -1
- package/declarations/graph/-private/-edge-definition.d.ts +12 -2
- package/declarations/index.d.ts +82 -3
- package/declarations/reactive/-private/document.d.ts +58 -46
- package/declarations/reactive/-private/record.d.ts +10 -1
- package/declarations/reactive/-private/schema.d.ts +77 -4
- package/declarations/reactive/-private.d.ts +1 -0
- package/declarations/reactive.d.ts +13 -7
- package/declarations/request/-private/types.d.ts +1 -1
- package/declarations/request.d.ts +47 -0
- package/declarations/store/-private/caches/instance-cache.d.ts +4 -5
- package/declarations/store/-private/default-cache-policy.d.ts +147 -129
- package/declarations/store/-private/managers/cache-capabilities-manager.d.ts +1 -1
- package/declarations/store/-private/managers/cache-key-manager.d.ts +26 -8
- package/declarations/store/-private/managers/cache-manager.d.ts +6 -4
- package/declarations/store/-private/managers/notification-manager.d.ts +1 -1
- package/declarations/store/-private/new-core-tmp/promise-state.d.ts +1 -0
- package/declarations/store/-private/new-core-tmp/request-state.d.ts +1 -1
- package/declarations/store/-private/store-service.d.ts +43 -64
- package/declarations/store/-private.d.ts +0 -1
- package/declarations/store/-types/q/cache-capabilities-manager.d.ts +1 -1
- package/declarations/store/deprecated/store.d.ts +33 -32
- package/declarations/store.d.ts +1 -0
- package/declarations/types/cache.d.ts +8 -6
- package/declarations/types/record.d.ts +132 -0
- package/declarations/types/request.d.ts +26 -14
- package/declarations/types/schema/fields.d.ts +30 -6
- package/declarations/{store/-types/q → types/schema}/schema-service.d.ts +11 -9
- package/declarations/types/spec/document.d.ts +34 -0
- package/declarations/types/symbols.d.ts +2 -2
- package/declarations/types.d.ts +1 -1
- package/dist/build-config.js +1 -1
- package/dist/default-cache-policy-D7_u4YRH.js +572 -0
- package/dist/graph/-private.js +13 -4
- package/dist/{request-state-CUuZzgvE.js → index-CHrZ1B2X.js} +10081 -8924
- package/dist/index.js +6 -382
- package/dist/reactive.js +4 -778
- package/dist/{context-C_7OLieY.js → request-oqoLC9rz.js} +219 -172
- package/dist/request.js +1 -1
- package/dist/store/-private.js +1 -1
- package/dist/store.js +1 -533
- package/dist/types/-private.js +1 -1
- package/dist/types/record.js +127 -0
- package/dist/types/request.js +14 -12
- package/dist/types/schema/fields.js +14 -0
- package/dist/types/schema/schema-service.js +0 -0
- package/dist/types/symbols.js +2 -2
- package/logos/README.md +2 -2
- package/logos/logo-yellow-slab.svg +1 -0
- package/logos/word-mark-black.svg +1 -0
- package/logos/word-mark-white.svg +1 -0
- package/package.json +3 -3
- package/logos/NCC-1701-a-blue.svg +0 -4
- package/logos/NCC-1701-a-gold.svg +0 -4
- package/logos/NCC-1701-a-gold_100.svg +0 -1
- package/logos/NCC-1701-a-gold_base-64.txt +0 -1
- package/logos/NCC-1701-a.svg +0 -4
- package/logos/docs-badge.svg +0 -2
- package/logos/ember-data-logo-dark.svg +0 -12
- package/logos/ember-data-logo-light.svg +0 -12
- package/logos/social1.png +0 -0
- package/logos/social2.png +0 -0
- package/logos/warp-drive-logo-dark.svg +0 -4
- package/logos/warp-drive-logo-gold.svg +0 -4
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { STRUCTURED, IS_FUTURE
|
|
1
|
+
import { SkipCache, STRUCTURED, IS_FUTURE } from './types/request.js';
|
|
2
2
|
import { getOrSetGlobal, getOrSetUniversal } from './types/-private.js';
|
|
3
3
|
import { macroCondition, getGlobalConfig } from '@embroider/macros';
|
|
4
4
|
const BODY_TYPES = {
|
|
@@ -233,6 +233,179 @@ function assertValidRequest(request, isTopLevel) {
|
|
|
233
233
|
}
|
|
234
234
|
}
|
|
235
235
|
}
|
|
236
|
+
function upgradeHeaders(headers) {
|
|
237
|
+
headers.clone = () => {
|
|
238
|
+
return new Headers(headers);
|
|
239
|
+
};
|
|
240
|
+
headers.toJSON = () => {
|
|
241
|
+
return Array.from(headers);
|
|
242
|
+
};
|
|
243
|
+
return headers;
|
|
244
|
+
}
|
|
245
|
+
function cloneResponseProperties(response) {
|
|
246
|
+
const {
|
|
247
|
+
headers,
|
|
248
|
+
ok,
|
|
249
|
+
redirected,
|
|
250
|
+
status,
|
|
251
|
+
statusText,
|
|
252
|
+
type,
|
|
253
|
+
url
|
|
254
|
+
} = response;
|
|
255
|
+
upgradeHeaders(headers);
|
|
256
|
+
return {
|
|
257
|
+
headers: headers,
|
|
258
|
+
ok,
|
|
259
|
+
redirected,
|
|
260
|
+
status,
|
|
261
|
+
statusText,
|
|
262
|
+
type,
|
|
263
|
+
url
|
|
264
|
+
};
|
|
265
|
+
}
|
|
266
|
+
class ContextOwner {
|
|
267
|
+
hasSetStream = false;
|
|
268
|
+
hasSetResponse = false;
|
|
269
|
+
hasSubscribers = false;
|
|
270
|
+
stream = createDeferred();
|
|
271
|
+
response = null;
|
|
272
|
+
nextCalled = 0;
|
|
273
|
+
constructor(request, god, isRoot = false) {
|
|
274
|
+
this.isRoot = isRoot;
|
|
275
|
+
this.requestId = god.id;
|
|
276
|
+
this.controller = request.controller || god.controller;
|
|
277
|
+
this.stream.promise.sizeHint = 0;
|
|
278
|
+
if (request.controller) {
|
|
279
|
+
if (request.controller !== god.controller) {
|
|
280
|
+
god.controller.signal.addEventListener('abort', () => {
|
|
281
|
+
this.controller.abort(god.controller.signal.reason);
|
|
282
|
+
});
|
|
283
|
+
}
|
|
284
|
+
delete request.controller;
|
|
285
|
+
}
|
|
286
|
+
let enhancedRequest = Object.assign({
|
|
287
|
+
signal: this.controller.signal
|
|
288
|
+
}, request);
|
|
289
|
+
if (macroCondition(getGlobalConfig().WarpDrive.env.DEBUG)) {
|
|
290
|
+
if (!request?.cacheOptions?.[SkipCache]) {
|
|
291
|
+
request = deepFreeze(request);
|
|
292
|
+
enhancedRequest = deepFreeze(enhancedRequest);
|
|
293
|
+
}
|
|
294
|
+
} else {
|
|
295
|
+
if (request.headers) {
|
|
296
|
+
upgradeHeaders(request.headers);
|
|
297
|
+
}
|
|
298
|
+
}
|
|
299
|
+
this.enhancedRequest = enhancedRequest;
|
|
300
|
+
this.request = request;
|
|
301
|
+
this.god = god;
|
|
302
|
+
this.stream.promise = this.stream.promise.then(stream => {
|
|
303
|
+
if (this.god.stream === stream && this.hasSubscribers) {
|
|
304
|
+
this.god.stream = null;
|
|
305
|
+
}
|
|
306
|
+
return stream;
|
|
307
|
+
});
|
|
308
|
+
}
|
|
309
|
+
get hasRequestedStream() {
|
|
310
|
+
return this.god.hasRequestedStream;
|
|
311
|
+
}
|
|
312
|
+
getResponse() {
|
|
313
|
+
if (this.hasSetResponse) {
|
|
314
|
+
return this.response;
|
|
315
|
+
}
|
|
316
|
+
if (this.nextCalled === 1) {
|
|
317
|
+
return this.god.response;
|
|
318
|
+
}
|
|
319
|
+
return null;
|
|
320
|
+
}
|
|
321
|
+
getStream() {
|
|
322
|
+
if (this.isRoot) {
|
|
323
|
+
this.god.hasRequestedStream = true;
|
|
324
|
+
}
|
|
325
|
+
if (!this.hasSetResponse) {
|
|
326
|
+
const hint = this.god.response?.headers?.get('content-length');
|
|
327
|
+
this.stream.promise.sizeHint = hint ? parseInt(hint, 10) : 0;
|
|
328
|
+
}
|
|
329
|
+
this.hasSubscribers = true;
|
|
330
|
+
return this.stream.promise;
|
|
331
|
+
}
|
|
332
|
+
abort(reason) {
|
|
333
|
+
this.controller.abort(reason);
|
|
334
|
+
}
|
|
335
|
+
setStream(stream) {
|
|
336
|
+
if (!this.hasSetStream) {
|
|
337
|
+
this.hasSetStream = true;
|
|
338
|
+
if (!(stream instanceof Promise)) {
|
|
339
|
+
this.god.stream = stream;
|
|
340
|
+
}
|
|
341
|
+
// @ts-expect-error
|
|
342
|
+
this.stream.resolve(stream);
|
|
343
|
+
}
|
|
344
|
+
}
|
|
345
|
+
resolveStream() {
|
|
346
|
+
this.setStream(this.nextCalled === 1 ? this.god.stream : null);
|
|
347
|
+
}
|
|
348
|
+
setResponse(response) {
|
|
349
|
+
if (this.hasSetResponse) {
|
|
350
|
+
if (macroCondition(getGlobalConfig().WarpDrive.env.DEBUG)) {
|
|
351
|
+
throw new Error(`Cannot setResponse when a response has already been set`);
|
|
352
|
+
}
|
|
353
|
+
return;
|
|
354
|
+
}
|
|
355
|
+
this.hasSetResponse = true;
|
|
356
|
+
if (response instanceof Response) {
|
|
357
|
+
// TODO potentially avoid cloning in prod
|
|
358
|
+
let responseData = cloneResponseProperties(response);
|
|
359
|
+
if (macroCondition(getGlobalConfig().WarpDrive.env.DEBUG)) {
|
|
360
|
+
responseData = deepFreeze(responseData);
|
|
361
|
+
}
|
|
362
|
+
this.response = responseData;
|
|
363
|
+
this.god.response = responseData;
|
|
364
|
+
const sizeHint = response.headers?.get('content-length');
|
|
365
|
+
this.stream.promise.sizeHint = sizeHint ? parseInt(sizeHint, 10) : 0;
|
|
366
|
+
} else {
|
|
367
|
+
this.response = response;
|
|
368
|
+
this.god.response = response;
|
|
369
|
+
}
|
|
370
|
+
}
|
|
371
|
+
}
|
|
372
|
+
class Context {
|
|
373
|
+
/** @internal */
|
|
374
|
+
|
|
375
|
+
/** @internal */
|
|
376
|
+
|
|
377
|
+
/** @internal */
|
|
378
|
+
|
|
379
|
+
constructor(owner, isCacheHandler) {
|
|
380
|
+
this.id = owner.requestId;
|
|
381
|
+
this.___owner = owner;
|
|
382
|
+
this.request = owner.enhancedRequest;
|
|
383
|
+
this._isCacheHandler = isCacheHandler;
|
|
384
|
+
this._finalized = false;
|
|
385
|
+
}
|
|
386
|
+
setStream(stream) {
|
|
387
|
+
this.___owner.setStream(stream);
|
|
388
|
+
}
|
|
389
|
+
setResponse(response) {
|
|
390
|
+
this.___owner.setResponse(response);
|
|
391
|
+
}
|
|
392
|
+
setIdentifier(identifier) {
|
|
393
|
+
macroCondition(getGlobalConfig().WarpDrive.env.DEBUG) ? (test => {
|
|
394
|
+
if (!test) {
|
|
395
|
+
throw new Error(`setIdentifier may only be used synchronously from a CacheHandler`);
|
|
396
|
+
}
|
|
397
|
+
})(identifier && this._isCacheHandler && !this._finalized) : {};
|
|
398
|
+
this.___owner.god.identifier = identifier;
|
|
399
|
+
}
|
|
400
|
+
get hasRequestedStream() {
|
|
401
|
+
return this.___owner.hasRequestedStream;
|
|
402
|
+
}
|
|
403
|
+
|
|
404
|
+
/** @private */
|
|
405
|
+
_finalize() {
|
|
406
|
+
this._finalized = true;
|
|
407
|
+
}
|
|
408
|
+
}
|
|
236
409
|
const PromiseCache = getOrSetUniversal('PromiseCache', new WeakMap());
|
|
237
410
|
const RequestMap = getOrSetUniversal('RequestMap', new Map());
|
|
238
411
|
function setRequestResult(requestId, result) {
|
|
@@ -502,177 +675,51 @@ function createFuture(owner) {
|
|
|
502
675
|
deferred.promise = promise;
|
|
503
676
|
return deferred;
|
|
504
677
|
}
|
|
505
|
-
function upgradeHeaders(headers) {
|
|
506
|
-
headers.clone = () => {
|
|
507
|
-
return new Headers(headers);
|
|
508
|
-
};
|
|
509
|
-
headers.toJSON = () => {
|
|
510
|
-
return Array.from(headers);
|
|
511
|
-
};
|
|
512
|
-
return headers;
|
|
513
|
-
}
|
|
514
|
-
function cloneResponseProperties(response) {
|
|
515
|
-
const {
|
|
516
|
-
headers,
|
|
517
|
-
ok,
|
|
518
|
-
redirected,
|
|
519
|
-
status,
|
|
520
|
-
statusText,
|
|
521
|
-
type,
|
|
522
|
-
url
|
|
523
|
-
} = response;
|
|
524
|
-
upgradeHeaders(headers);
|
|
525
|
-
return {
|
|
526
|
-
headers: headers,
|
|
527
|
-
ok,
|
|
528
|
-
redirected,
|
|
529
|
-
status,
|
|
530
|
-
statusText,
|
|
531
|
-
type,
|
|
532
|
-
url
|
|
533
|
-
};
|
|
534
|
-
}
|
|
535
|
-
class ContextOwner {
|
|
536
|
-
hasSetStream = false;
|
|
537
|
-
hasSetResponse = false;
|
|
538
|
-
hasSubscribers = false;
|
|
539
|
-
stream = createDeferred();
|
|
540
|
-
response = null;
|
|
541
|
-
nextCalled = 0;
|
|
542
|
-
constructor(request, god, isRoot = false) {
|
|
543
|
-
this.isRoot = isRoot;
|
|
544
|
-
this.requestId = god.id;
|
|
545
|
-
this.controller = request.controller || god.controller;
|
|
546
|
-
this.stream.promise.sizeHint = 0;
|
|
547
|
-
if (request.controller) {
|
|
548
|
-
if (request.controller !== god.controller) {
|
|
549
|
-
god.controller.signal.addEventListener('abort', () => {
|
|
550
|
-
this.controller.abort(god.controller.signal.reason);
|
|
551
|
-
});
|
|
552
|
-
}
|
|
553
|
-
delete request.controller;
|
|
554
|
-
}
|
|
555
|
-
let enhancedRequest = Object.assign({
|
|
556
|
-
signal: this.controller.signal
|
|
557
|
-
}, request);
|
|
558
|
-
if (macroCondition(getGlobalConfig().WarpDrive.env.DEBUG)) {
|
|
559
|
-
if (!request?.cacheOptions?.[SkipCache]) {
|
|
560
|
-
request = deepFreeze(request);
|
|
561
|
-
enhancedRequest = deepFreeze(enhancedRequest);
|
|
562
|
-
}
|
|
563
|
-
} else {
|
|
564
|
-
if (request.headers) {
|
|
565
|
-
upgradeHeaders(request.headers);
|
|
566
|
-
}
|
|
567
|
-
}
|
|
568
|
-
this.enhancedRequest = enhancedRequest;
|
|
569
|
-
this.request = request;
|
|
570
|
-
this.god = god;
|
|
571
|
-
this.stream.promise = this.stream.promise.then(stream => {
|
|
572
|
-
if (this.god.stream === stream && this.hasSubscribers) {
|
|
573
|
-
this.god.stream = null;
|
|
574
|
-
}
|
|
575
|
-
return stream;
|
|
576
|
-
});
|
|
577
|
-
}
|
|
578
|
-
get hasRequestedStream() {
|
|
579
|
-
return this.god.hasRequestedStream;
|
|
580
|
-
}
|
|
581
|
-
getResponse() {
|
|
582
|
-
if (this.hasSetResponse) {
|
|
583
|
-
return this.response;
|
|
584
|
-
}
|
|
585
|
-
if (this.nextCalled === 1) {
|
|
586
|
-
return this.god.response;
|
|
587
|
-
}
|
|
588
|
-
return null;
|
|
589
|
-
}
|
|
590
|
-
getStream() {
|
|
591
|
-
if (this.isRoot) {
|
|
592
|
-
this.god.hasRequestedStream = true;
|
|
593
|
-
}
|
|
594
|
-
if (!this.hasSetResponse) {
|
|
595
|
-
const hint = this.god.response?.headers?.get('content-length');
|
|
596
|
-
this.stream.promise.sizeHint = hint ? parseInt(hint, 10) : 0;
|
|
597
|
-
}
|
|
598
|
-
this.hasSubscribers = true;
|
|
599
|
-
return this.stream.promise;
|
|
600
|
-
}
|
|
601
|
-
abort(reason) {
|
|
602
|
-
this.controller.abort(reason);
|
|
603
|
-
}
|
|
604
|
-
setStream(stream) {
|
|
605
|
-
if (!this.hasSetStream) {
|
|
606
|
-
this.hasSetStream = true;
|
|
607
|
-
if (!(stream instanceof Promise)) {
|
|
608
|
-
this.god.stream = stream;
|
|
609
|
-
}
|
|
610
|
-
// @ts-expect-error
|
|
611
|
-
this.stream.resolve(stream);
|
|
612
|
-
}
|
|
613
|
-
}
|
|
614
|
-
resolveStream() {
|
|
615
|
-
this.setStream(this.nextCalled === 1 ? this.god.stream : null);
|
|
616
|
-
}
|
|
617
|
-
setResponse(response) {
|
|
618
|
-
if (this.hasSetResponse) {
|
|
619
|
-
if (macroCondition(getGlobalConfig().WarpDrive.env.DEBUG)) {
|
|
620
|
-
throw new Error(`Cannot setResponse when a response has already been set`);
|
|
621
|
-
}
|
|
622
|
-
return;
|
|
623
|
-
}
|
|
624
|
-
this.hasSetResponse = true;
|
|
625
|
-
if (response instanceof Response) {
|
|
626
|
-
// TODO potentially avoid cloning in prod
|
|
627
|
-
let responseData = cloneResponseProperties(response);
|
|
628
|
-
if (macroCondition(getGlobalConfig().WarpDrive.env.DEBUG)) {
|
|
629
|
-
responseData = deepFreeze(responseData);
|
|
630
|
-
}
|
|
631
|
-
this.response = responseData;
|
|
632
|
-
this.god.response = responseData;
|
|
633
|
-
const sizeHint = response.headers?.get('content-length');
|
|
634
|
-
this.stream.promise.sizeHint = sizeHint ? parseInt(sizeHint, 10) : 0;
|
|
635
|
-
} else {
|
|
636
|
-
this.response = response;
|
|
637
|
-
this.god.response = response;
|
|
638
|
-
}
|
|
639
|
-
}
|
|
640
|
-
}
|
|
641
|
-
class Context {
|
|
642
|
-
/** @internal */
|
|
643
|
-
|
|
644
|
-
/** @internal */
|
|
645
|
-
|
|
646
|
-
/** @internal */
|
|
647
678
|
|
|
648
|
-
|
|
649
|
-
|
|
650
|
-
|
|
651
|
-
|
|
652
|
-
|
|
653
|
-
|
|
654
|
-
|
|
655
|
-
|
|
656
|
-
|
|
657
|
-
}
|
|
658
|
-
|
|
659
|
-
|
|
660
|
-
|
|
661
|
-
|
|
662
|
-
|
|
663
|
-
|
|
664
|
-
|
|
665
|
-
|
|
666
|
-
|
|
667
|
-
this.___owner.god.identifier = identifier;
|
|
668
|
-
}
|
|
669
|
-
get hasRequestedStream() {
|
|
670
|
-
return this.___owner.hasRequestedStream;
|
|
671
|
-
}
|
|
679
|
+
/**
|
|
680
|
+
* Brands the supplied object with the supplied response type.
|
|
681
|
+
*
|
|
682
|
+
* ```ts
|
|
683
|
+
* import type { ReactiveDataDocument } from '@warp-drive/core/reactive';
|
|
684
|
+
* import { withResponseType } from '@warp-drive/core/request';
|
|
685
|
+
* import type { User } from '#/data/user.ts'
|
|
686
|
+
*
|
|
687
|
+
* const result = await store.request(
|
|
688
|
+
* withResponseType<ReactiveDataDocument<User>>({ url: '/users/1' })
|
|
689
|
+
* );
|
|
690
|
+
*
|
|
691
|
+
* result.content.data; // will have type User
|
|
692
|
+
* ```
|
|
693
|
+
*
|
|
694
|
+
*/
|
|
695
|
+
function withResponseType(obj) {
|
|
696
|
+
return obj;
|
|
697
|
+
}
|
|
672
698
|
|
|
673
|
-
|
|
674
|
-
|
|
675
|
-
|
|
676
|
-
|
|
699
|
+
/**
|
|
700
|
+
* Brands the supplied object with the supplied response type
|
|
701
|
+
* wrapped in {@link ReactiveDataDocument}. This is a convenience for
|
|
702
|
+
* the common case of using {@link withResponseType} with `ReactiveDataDocument`.
|
|
703
|
+
*
|
|
704
|
+
* ```ts
|
|
705
|
+
* import { withReactiveResponse } from '@warp-drive/core/request';
|
|
706
|
+
* import type { User } from '#/data/user.ts'
|
|
707
|
+
*
|
|
708
|
+
* const result = await store.request(
|
|
709
|
+
* withReactiveResponse<User>({ url: '/users/1' })
|
|
710
|
+
* );
|
|
711
|
+
*
|
|
712
|
+
* result.content.data; // will have type User
|
|
713
|
+
* ```
|
|
714
|
+
*
|
|
715
|
+
* @public
|
|
716
|
+
*/
|
|
717
|
+
function withReactiveResponse(obj) {
|
|
718
|
+
return obj;
|
|
677
719
|
}
|
|
678
|
-
|
|
720
|
+
|
|
721
|
+
/**
|
|
722
|
+
* @deprecated use {@link withResponseType} instead
|
|
723
|
+
*/
|
|
724
|
+
const withBrand = withResponseType;
|
|
725
|
+
export { IS_CACHE_HANDLER as I, assertValidRequest as a, getRequestResult as b, cloneResponseProperties as c, clearRequestResult as d, executeNextHandler as e, withResponseType as f, getPromiseResult as g, withReactiveResponse as h, createDeferred as i, setPromiseResult as s, upgradePromise as u, withBrand as w };
|
package/dist/request.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export {
|
|
1
|
+
export { i as createDeferred, g as getPromiseResult, s as setPromiseResult, w as withBrand, h as withReactiveResponse, f as withResponseType } from "./request-oqoLC9rz.js";
|
package/dist/store/-private.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export { C as CacheHandler, D as DISPOSE, R as RecordArrayManager,
|
|
1
|
+
export { C as CacheHandler, D as DISPOSE, R as RecordArrayManager, B as Signals, S as Store, k as StoreMap, _ as _clearCaches, n as _deprecatingNormalize, h as assertPrivateCapabilities, d as assertPrivateStore, b as coerceId, c as constructResource, I as consumeInternalSignal, F as createInternalMemo, l as createLegacyManyArray, p as createRequestSubscription, z as defineGate, A as defineNonEnumerableSignal, y as defineSignal, e as ensureStringId, x as entangleInitiallyStaleSignal, w as entangleSignal, f as fastPush, v as gate, J as getOrCreateInternalSignal, q as getRequestState, g as isPrivateStore, a as isRequestKey, i as isResourceKey, m as log, o as logGroup, u as memoized, H as notifyInternalSignal, E as peekInternalSignal, r as recordIdentifierFor, j as setRecordIdentifier, t as signal, s as storeFor, G as withSignalStore } from "../index-CHrZ1B2X.js";
|
|
2
2
|
export { A as ARRAY_SIGNAL, O as OBJECT_SIGNAL, w as waitFor } from "../configure-C3x8YXzL.js";
|