@qwik.dev/core 2.0.0-beta.1 → 2.0.0-beta.11

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 (100) hide show
  1. package/bindings/qwik.darwin-arm64.node +0 -0
  2. package/bindings/qwik.darwin-x64.node +0 -0
  3. package/bindings/qwik.linux-x64-gnu.node +0 -0
  4. package/bindings/qwik.win32-x64-msvc.node +0 -0
  5. package/bindings/qwik_wasm_bg.wasm +0 -0
  6. package/dist/backpatch/index.cjs +6 -0
  7. package/dist/backpatch/index.d.ts +2 -0
  8. package/dist/backpatch/index.mjs +5 -0
  9. package/dist/backpatch/package.json +8 -0
  10. package/dist/backpatch-executor.debug.js +34 -0
  11. package/dist/backpatch-executor.js +1 -0
  12. package/dist/build/package.json +1 -1
  13. package/dist/cli.cjs +3031 -763
  14. package/dist/core-internal.d.ts +285 -156
  15. package/dist/core.cjs +7546 -6628
  16. package/dist/core.cjs.map +1 -1
  17. package/dist/core.min.mjs +1 -1
  18. package/dist/core.mjs +7524 -6625
  19. package/dist/core.mjs.map +1 -1
  20. package/dist/core.prod.cjs +3088 -2624
  21. package/dist/core.prod.mjs +4453 -3916
  22. package/dist/insights/vite/index.cjs +1 -1
  23. package/dist/insights/vite/index.mjs +10 -10
  24. package/dist/loader/index.cjs +2 -2
  25. package/dist/loader/index.mjs +2 -2
  26. package/dist/loader/package.json +1 -1
  27. package/dist/optimizer.cjs +208 -4016
  28. package/dist/optimizer.d.ts +13 -38
  29. package/dist/optimizer.mjs +2592 -3715
  30. package/dist/preloader.cjs +8 -11
  31. package/dist/preloader.mjs +8 -11
  32. package/dist/qwikloader.debug.js +1 -15
  33. package/dist/qwikloader.js +1 -1
  34. package/dist/server.cjs +315 -122
  35. package/dist/server.d.ts +18 -3
  36. package/dist/server.mjs +294 -110
  37. package/dist/starters/adapters/aws-lambda/adapters/aws-lambda/vite.config.mts +1 -1
  38. package/dist/starters/adapters/aws-lambda/package.json +1 -1
  39. package/dist/starters/adapters/aws-lambda/src/entry_aws-lambda.tsx +2 -6
  40. package/dist/starters/adapters/azure-swa/adapters/azure-swa/vite.config.mts +1 -1
  41. package/dist/starters/adapters/azure-swa/package.json +1 -1
  42. package/dist/starters/adapters/azure-swa/src/entry.azure-swa.tsx +2 -3
  43. package/dist/starters/adapters/bun/adapters/bun/vite.config.mts +2 -2
  44. package/dist/starters/adapters/bun/package.json +1 -1
  45. package/dist/starters/adapters/bun/src/entry.bun.ts +0 -2
  46. package/dist/starters/adapters/cloud-run/adapters/cloud-run/vite.config.mts +1 -1
  47. package/dist/starters/adapters/cloud-run/package.json +1 -1
  48. package/dist/starters/adapters/cloud-run/src/entry.cloud-run.tsx +1 -3
  49. package/dist/starters/adapters/cloudflare-pages/adapters/cloudflare-pages/vite.config.mts +1 -1
  50. package/dist/starters/adapters/cloudflare-pages/package.json +1 -1
  51. package/dist/starters/adapters/cloudflare-pages/src/entry.cloudflare-pages.tsx +2 -3
  52. package/dist/starters/adapters/deno/adapters/deno/vite.config.mts +1 -1
  53. package/dist/starters/adapters/deno/package.json +1 -1
  54. package/dist/starters/adapters/deno/src/entry.deno.ts +0 -2
  55. package/dist/starters/adapters/express/adapters/express/vite.config.mts +1 -1
  56. package/dist/starters/adapters/express/package.json +1 -1
  57. package/dist/starters/adapters/express/src/entry.express.tsx +1 -3
  58. package/dist/starters/adapters/fastify/adapters/fastify/vite.config.mts +1 -1
  59. package/dist/starters/adapters/fastify/package.json +1 -1
  60. package/dist/starters/adapters/fastify/src/entry.fastify.tsx +1 -1
  61. package/dist/starters/adapters/fastify/src/plugins/fastify-qwik.ts +1 -2
  62. package/dist/starters/adapters/firebase/adapters/firebase/vite.config.mts +1 -1
  63. package/dist/starters/adapters/firebase/package.json +1 -1
  64. package/dist/starters/adapters/firebase/src/entry-firebase.tsx +2 -3
  65. package/dist/starters/adapters/netlify-edge/adapters/netlify-edge/vite.config.mts +1 -1
  66. package/dist/starters/adapters/netlify-edge/package.json +1 -1
  67. package/dist/starters/adapters/netlify-edge/src/entry.netlify-edge.tsx +2 -3
  68. package/dist/starters/adapters/node-server/adapters/node-server/vite.config.mts +1 -1
  69. package/dist/starters/adapters/node-server/package.json +1 -1
  70. package/dist/starters/adapters/node-server/src/entry.node-server.tsx +0 -2
  71. package/dist/starters/adapters/{static/adapters/static → ssg/adapters/ssg}/vite.config.mts +2 -2
  72. package/dist/starters/adapters/ssg/package.json +19 -0
  73. package/dist/starters/adapters/vercel-edge/adapters/vercel-edge/vite.config.mts +1 -1
  74. package/dist/starters/adapters/vercel-edge/package.json +1 -1
  75. package/dist/starters/adapters/vercel-edge/src/entry.vercel-edge.tsx +2 -3
  76. package/dist/starters/adapters/vercel-edge/vercel.json +1 -1
  77. package/dist/starters/features/auth/package.json +1 -1
  78. package/dist/starters/features/csr/index.html +23 -0
  79. package/dist/starters/features/csr/package.json +29 -0
  80. package/dist/starters/features/csr/src/root.tsx +15 -0
  81. package/dist/starters/features/csr/vite.config.mts +13 -0
  82. package/dist/starters/features/localize/package.json +3 -3
  83. package/dist/starters/features/localize/src/entry.ssr.tsx +17 -21
  84. package/dist/starters/features/pandacss/package.json +1 -1
  85. package/dist/starters/features/playwright/playwright-report/index.html +953 -911
  86. package/dist/starters/features/postcss/postcss.config.js +1 -1
  87. package/dist/starters/features/tailwind/package.json +2 -2
  88. package/dist/starters/features/tailwind/prettier.config.js +10 -0
  89. package/dist/starters/features/tailwind-v3/package.json +1 -1
  90. package/dist/starters/features/tailwind-v3/prettier.config.js +10 -0
  91. package/dist/testing/index.cjs +9898 -7478
  92. package/dist/testing/index.d.ts +953 -5
  93. package/dist/testing/index.mjs +10085 -7683
  94. package/dist/testing/package.json +1 -1
  95. package/package.json +16 -10
  96. package/public.d.ts +1 -0
  97. package/server.d.ts +2 -0
  98. package/dist/starters/adapters/static/package.json +0 -19
  99. package/dist/starters/features/tailwind/.prettierrc.js +0 -3
  100. /package/dist/starters/adapters/{static → ssg}/README.md +0 -0
@@ -1,11 +1,9 @@
1
+ import { ComputedSignal as ComputedSignal_2 } from '..';
1
2
  import * as CSS_2 from 'csstype';
2
3
  import { isBrowser } from './build';
3
4
  import { isDev } from './build';
4
5
  import { isServer } from './build';
5
6
  import { QRL as QRL_2 } from './qrl.public';
6
- import { ReadonlySignal as ReadonlySignal_2 } from '..';
7
- import type { StreamWriter as StreamWriter_2 } from '.';
8
- import { ValueOrPromise as ValueOrPromise_2 } from '..';
9
7
 
10
8
  /**
11
9
  * Qwik Optimizer marker function.
@@ -99,7 +97,7 @@ declare type _AllowPlainQrl<Q> = QRLEventHandlerMulti<any, any> extends Q ? Q ex
99
97
 
100
98
  declare type AllPascalEventMaps = PascalMap<AllEventsMap>;
101
99
 
102
- declare type AllSignalFlags = SignalFlags | WrappedSignalFlags;
100
+ declare type AllSignalFlags = SignalFlags | WrappedSignalFlags | SerializationSignalFlags;
103
101
 
104
102
  /**
105
103
  * TS defines these with the React syntax which is not compatible with Qwik. E.g. `ariaAtomic`
@@ -366,12 +364,47 @@ declare type AsyncComputedCtx = {
366
364
  export declare type AsyncComputedFn<T> = (ctx: AsyncComputedCtx) => Promise<T>;
367
365
 
368
366
  /** @public */
369
- export declare interface AsyncComputedReadonlySignal<T = unknown> extends ReadonlySignal<T> {
367
+ export declare interface AsyncComputedReadonlySignal<T = unknown> extends ComputedSignal<T> {
368
+ /** Whether the signal is currently loading. */
369
+ loading: boolean;
370
+ /** The error that occurred while computing the signal. */
371
+ error: Error | null;
370
372
  }
371
373
 
372
374
  /** @public */
373
375
  export declare type AsyncComputedReturnType<T> = T extends Promise<infer T> ? AsyncComputedReadonlySignal<T> : AsyncComputedReadonlySignal<T>;
374
376
 
377
+ /**
378
+ * # ================================
379
+ *
380
+ * AsyncComputedSignalImpl
381
+ *
382
+ * # ================================
383
+ */
384
+ declare class AsyncComputedSignalImpl<T> extends ComputedSignalImpl<T, AsyncComputeQRL<T>> implements BackRef {
385
+ $untrackedLoading$: boolean;
386
+ $untrackedError$: Error | null;
387
+ $loadingEffects$: null | Set<EffectSubscription>;
388
+ $errorEffects$: null | Set<EffectSubscription>;
389
+ $destroy$: NoSerialize<() => void> | null;
390
+ private $promiseValue$;
391
+ [_EFFECT_BACK_REF]: Map<EffectProperty | string, EffectSubscription> | null;
392
+ constructor(container: Container | null, fn: AsyncComputeQRL<T>, flags?: SignalFlags | SerializationSignalFlags);
393
+ /**
394
+ * Loading is true if the signal is still waiting for the promise to resolve, false if the promise
395
+ * has resolved or rejected.
396
+ */
397
+ get loading(): boolean;
398
+ set untrackedLoading(value: boolean);
399
+ get untrackedLoading(): boolean;
400
+ /** The error that occurred when the signal was resolved. */
401
+ get error(): Error | null;
402
+ set untrackedError(value: Error | null);
403
+ get untrackedError(): Error | null;
404
+ invalidate(): void;
405
+ $computeIfNeeded$(): boolean | undefined;
406
+ }
407
+
375
408
  declare type AsyncComputeQRL<T> = QRLInternal<AsyncComputedFn<T>>;
376
409
 
377
410
  /**
@@ -400,6 +433,37 @@ declare type BivariantQrlFn<ARGS extends any[], RETURN> = {
400
433
  /** @public */
401
434
  declare type Booleanish = boolean | `${boolean}`;
402
435
 
436
+ declare interface Chore<T extends ChoreType = ChoreType> {
437
+ $type$: T;
438
+ $idx$: number | string;
439
+ $host$: HostElement;
440
+ $target$: ChoreTarget | null;
441
+ $payload$: unknown;
442
+ $state$: ChoreState;
443
+ $blockedChores$: Chore[] | null;
444
+ $startTime$: number | undefined;
445
+ $endTime$: number | undefined;
446
+ $resolve$: ((value: any) => void) | undefined;
447
+ $reject$: ((reason?: any) => void) | undefined;
448
+ $returnValue$: ValueOrPromise<ChoreReturnValue<T>>;
449
+ }
450
+
451
+ declare class ChoreArray extends Array<Chore> {
452
+ add(value: Chore): number;
453
+ delete(value: Chore): number;
454
+ }
455
+
456
+ declare type ChoreReturnValue<T extends ChoreType = ChoreType> = T extends ChoreType.RECOMPUTE_AND_SCHEDULE_EFFECTS | ChoreType.WAIT_FOR_QUEUE | ChoreType.NODE_PROP ? void : T extends ChoreType.NODE_DIFF | ChoreType.COMPONENT ? JSXOutput : unknown;
457
+
458
+ declare enum ChoreState {
459
+ NONE = 0,
460
+ RUNNING = 1,
461
+ FAILED = 2,
462
+ DONE = 3
463
+ }
464
+
465
+ declare type ChoreTarget = HostElement | QRLInternal<(...args: unknown[]) => unknown> | Signal | StoreTarget;
466
+
403
467
  declare const enum ChoreType {
404
468
  MACRO = 240,
405
469
  MICRO = 15,
@@ -411,10 +475,9 @@ declare const enum ChoreType {
411
475
  NODE_PROP = 5,
412
476
  COMPONENT = 6,
413
477
  RECOMPUTE_AND_SCHEDULE_EFFECTS = 7,
414
- JOURNAL_FLUSH = 16,
415
- VISIBLE = 32,
416
- CLEANUP_VISIBLE = 48,
417
- WAIT_FOR_ALL = 255
478
+ VISIBLE = 16,
479
+ CLEANUP_VISIBLE = 32,
480
+ WAIT_FOR_QUEUE = 255
418
481
  }
419
482
 
420
483
  /**
@@ -438,9 +501,8 @@ export declare interface ClientContainer extends Container {
438
501
  qManifestHash: string;
439
502
  rootVNode: _ElementVNode;
440
503
  $journal$: VNodeJournal;
441
- renderDone: Promise<void> | null;
442
504
  $forwardRefs$: Array<number> | null;
443
- $initialQRLsIndexes$: Array<number> | null;
505
+ $flushEpoch$: number;
444
506
  parseQRL<T = unknown>(qrl: string): QRL<T>;
445
507
  $setRawState$(id: number, vParent: _ElementVNode | _VirtualVNode): void;
446
508
  }
@@ -540,7 +602,13 @@ export declare const componentQrl: <PROPS extends Record<any, any>>(componentQrl
540
602
  export declare type ComputedFn<T> = () => T;
541
603
 
542
604
  /** @public */
543
- export declare type ComputedReturnType<T> = T extends Promise<any> ? never : ReadonlySignal<T>;
605
+ export declare interface ComputedOptions {
606
+ serializationStrategy?: SerializationStrategy;
607
+ container?: Container;
608
+ }
609
+
610
+ /** @public */
611
+ export declare type ComputedReturnType<T> = T extends Promise<any> ? never : ComputedSignal<T>;
544
612
 
545
613
  /**
546
614
  * A computed signal is a signal which is calculated from other signals. When the signals change,
@@ -551,10 +619,15 @@ export declare type ComputedReturnType<T> = T extends Promise<any> ? never : Rea
551
619
  */
552
620
  export declare interface ComputedSignal<T> extends ReadonlySignal<T> {
553
621
  /**
554
- * Use this to force recalculation and running subscribers, for example when the calculated value
555
- * mutates but remains the same object. Useful for third-party libraries.
622
+ * Use this to force running subscribers, for example when the calculated value mutates but
623
+ * remains the same object.
556
624
  */
557
625
  force(): void;
626
+ /**
627
+ * Use this to force recalculation and running subscribers, for example when the calculated value
628
+ * mutates but remains the same object.
629
+ */
630
+ invalidate(): void;
558
631
  }
559
632
 
560
633
  /**
@@ -570,18 +643,17 @@ declare class ComputedSignalImpl<T, S extends QRLInternal = ComputeQRL<T>> exten
570
643
  * resolve the QRL during the mark dirty phase so that any call to it will be synchronous). )
571
644
  */
572
645
  $computeQrl$: S;
573
- $flags$: SignalFlags;
574
- $forceRunEffects$: boolean;
646
+ $flags$: SignalFlags | SerializationSignalFlags;
575
647
  [_EFFECT_BACK_REF]: Map<EffectProperty | string, EffectSubscription> | null;
576
- constructor(container: Container | null, fn: S, flags?: SignalFlags);
577
- $invalidate$(): void;
648
+ constructor(container: Container | null, fn: S, flags?: SignalFlags | SerializationSignalFlags);
649
+ invalidate(): void;
578
650
  /**
579
651
  * Use this to force running subscribers, for example when the calculated value has mutated but
580
652
  * remained the same object
581
653
  */
582
654
  force(): void;
583
655
  get untrackedValue(): T;
584
- $computeIfNeeded$(): boolean;
656
+ $computeIfNeeded$(): void;
585
657
  set value(_: any);
586
658
  get value(): any;
587
659
  }
@@ -611,7 +683,7 @@ declare interface Container {
611
683
  readonly $serverData$: Record<string, any>;
612
684
  $currentUniqueId$: number;
613
685
  $buildBase$: string | null;
614
- handleError(err: any, $host$: HostElement): void;
686
+ handleError(err: any, $host$: HostElement | null): void;
615
687
  getParentHost(host: HostElement): HostElement | null;
616
688
  setContext<T>(host: HostElement, context: ContextId<T>, value: T): void;
617
689
  resolveContext<T>(host: HostElement, contextId: ContextId<T>): T | undefined;
@@ -762,12 +834,6 @@ export declare interface CorePlatform {
762
834
  * @param fn - The function to call when the next animation frame is ready.
763
835
  */
764
836
  raf: (fn: () => any) => Promise<any>;
765
- /**
766
- * Perform operation on next tick.
767
- *
768
- * @param fn - The function to call when the tick is ready.
769
- */
770
- nextTick: (fn: () => any) => Promise<any>;
771
837
  /**
772
838
  * Retrieve chunk name for the symbol.
773
839
  *
@@ -789,6 +855,21 @@ export declare interface CorrectedToggleEvent extends Event {
789
855
  readonly prevState: 'open' | 'closed';
790
856
  }
791
857
 
858
+ /**
859
+ * Create an async computed signal which is calculated from the given QRL. A computed signal is a
860
+ * signal which is calculated from other signals or async operation. When the signals change, the
861
+ * computed signal is recalculated.
862
+ *
863
+ * The QRL must be a function which returns the value of the signal. The function must not have side
864
+ * effects, and it can be async.
865
+ *
866
+ * @public
867
+ */
868
+ export declare const createAsyncComputed$: <T>(qrl: () => Promise<T>, options?: ComputedOptions) => AsyncComputedReturnType<T>;
869
+
870
+ /** @internal */
871
+ export declare const createAsyncComputedQrl: <T>(qrl: QRL<(ctx: AsyncComputedCtx) => Promise<T>>, options?: ComputedOptions) => AsyncComputedSignalImpl<T>;
872
+
792
873
  /**
793
874
  * Create a computed signal which is calculated from the given QRL. A computed signal is a signal
794
875
  * which is calculated from other signals. When the signals change, the computed signal is
@@ -797,14 +878,14 @@ export declare interface CorrectedToggleEvent extends Event {
797
878
  * The QRL must be a function which returns the value of the signal. The function must not have side
798
879
  * effects, and it must be synchronous.
799
880
  *
800
- * If you need the function to be async, use `useSignal` and `useTask$` instead.
881
+ * If you need the function to be async, use `useAsyncComputed$` instead.
801
882
  *
802
883
  * @public
803
884
  */
804
- export declare const createComputed$: <T>(qrl: () => T) => T extends Promise<any> ? never : ComputedSignal<T>;
885
+ export declare const createComputed$: <T>(qrl: () => T, options?: ComputedOptions) => ComputedReturnType<T>;
805
886
 
806
887
  /** @internal */
807
- export declare const createComputedQrl: <T>(qrl: QRL<() => T>) => ComputedSignalImpl<T>;
888
+ export declare const createComputedQrl: <T>(qrl: QRL<() => T>, options?: ComputedOptions) => ComputedSignalImpl<T>;
808
889
 
809
890
  /**
810
891
  * Create a context ID to be used in your application. The name should be written with no spaces.
@@ -858,17 +939,16 @@ export declare const createComputedQrl: <T>(qrl: QRL<() => T>) => ComputedSignal
858
939
  */
859
940
  export declare const createContextId: <STATE = unknown>(name: string) => ContextId<STATE>;
860
941
 
861
- declare const createScheduler: (container: Container, scheduleDrain: () => void, journalFlush: () => void) => {
862
- (type: ChoreType.QRL_RESOLVE, ignore: null, target: ComputeQRL<any> | AsyncComputeQRL<any>): ValueOrPromise<void>;
863
- (type: ChoreType.JOURNAL_FLUSH): ValueOrPromise<void>;
864
- (type: ChoreType.WAIT_FOR_ALL): ValueOrPromise<void>;
865
- (type: ChoreType.RECOMPUTE_AND_SCHEDULE_EFFECTS, host: HostElement | null, target: Signal | StoreHandler, effects: Set<EffectSubscription> | null): ValueOrPromise<void>;
866
- (type: ChoreType.TASK | ChoreType.VISIBLE, task: Task): ValueOrPromise<void>;
867
- (type: ChoreType.RUN_QRL, host: HostElement, target: QRLInternal<(...args: unknown[]) => unknown>, args: unknown[]): ValueOrPromise<void>;
868
- (type: ChoreType.COMPONENT, host: HostElement, qrl: QRLInternal<OnRenderFn<unknown>>, props: Props | null): ValueOrPromise<JSXOutput>;
869
- (type: ChoreType.NODE_DIFF, host: HostElement, target: HostElement, value: JSXOutput | Signal): ValueOrPromise<void>;
870
- (type: ChoreType.NODE_PROP, host: HostElement, prop: string, value: any): ValueOrPromise<void>;
871
- (type: ChoreType.CLEANUP_VISIBLE, task: Task): ValueOrPromise<JSXOutput>;
942
+ declare const createScheduler: (container: Container, journalFlush: () => void, choreQueue: ChoreArray, blockedChores: Set<Chore>, runningChores: Set<Chore>) => {
943
+ (type: ChoreType.QRL_RESOLVE, ignore: null, target: ComputeQRL<any> | AsyncComputeQRL<any>): Chore<ChoreType.QRL_RESOLVE>;
944
+ (type: ChoreType.WAIT_FOR_QUEUE): Chore<ChoreType.WAIT_FOR_QUEUE>;
945
+ (type: ChoreType.RECOMPUTE_AND_SCHEDULE_EFFECTS, host: HostElement | null, target: Signal<unknown> | StoreTarget, effects: Set<EffectSubscription> | null): Chore<ChoreType.RECOMPUTE_AND_SCHEDULE_EFFECTS>;
946
+ (type: ChoreType.TASK | ChoreType.VISIBLE, task: Task): Chore<ChoreType.TASK | ChoreType.VISIBLE>;
947
+ (type: ChoreType.RUN_QRL, host: HostElement, target: QRLInternal<(...args: unknown[]) => unknown>, args: unknown[]): Chore<ChoreType.RUN_QRL>;
948
+ (type: ChoreType.COMPONENT, host: HostElement, qrl: QRLInternal<OnRenderFn<unknown>>, props: Props | null): Chore<ChoreType.COMPONENT>;
949
+ (type: ChoreType.NODE_DIFF, host: HostElement, target: HostElement, value: JSXOutput | Signal): Chore<ChoreType.NODE_DIFF>;
950
+ (type: ChoreType.NODE_PROP, host: HostElement, prop: string, value: any): Chore<ChoreType.NODE_PROP>;
951
+ (type: ChoreType.CLEANUP_VISIBLE, task: Task): Chore<ChoreType.CLEANUP_VISIBLE>;
872
952
  };
873
953
 
874
954
  /**
@@ -935,7 +1015,7 @@ declare interface DeserializeContainer {
935
1015
  $state$?: unknown[];
936
1016
  $storeProxyMap$: ObjToProxyMap;
937
1017
  $forwardRefs$: Array<number> | null;
938
- $initialQRLsIndexes$: Array<number> | null;
1018
+ $initialQRLs$: Array<string> | null;
939
1019
  readonly $scheduler$: Scheduler | null;
940
1020
  }
941
1021
 
@@ -964,28 +1044,24 @@ declare class DomContainer extends _SharedContainer implements ClientContainer {
964
1044
  rootVNode: _ElementVNode;
965
1045
  document: _QDocument;
966
1046
  $journal$: VNodeJournal;
967
- renderDone: Promise<void> | null;
968
1047
  $rawStateData$: unknown[];
969
1048
  $storeProxyMap$: ObjToProxyMap;
970
1049
  $qFuncs$: Array<(...args: unknown[]) => unknown>;
971
1050
  $instanceHash$: string;
972
1051
  $forwardRefs$: Array<number> | null;
973
- $initialQRLsIndexes$: Array<number> | null;
1052
+ $initialQRLs$: Array<string> | null;
974
1053
  vNodeLocate: (id: string | Element) => _VNode;
975
1054
  private $stateData$;
976
1055
  private $styleIds$;
977
- private $renderCount$;
978
1056
  constructor(element: _ContainerElement);
979
1057
  $setRawState$(id: number, vParent: _ElementVNode | _VirtualVNode): void;
980
1058
  parseQRL<T = unknown>(qrl: string): QRL<T>;
981
- handleError(err: any, host: HostElement): void;
982
- setContext<T>(host: HostElement, context: ContextId<T>, value: T): void;
983
- resolveContext<T>(host: HostElement, contextId: ContextId<T>): T | undefined;
984
- getParentHost(host: HostElement): HostElement | null;
1059
+ handleError(err: any, host: _VNode | null): void;
1060
+ setContext<T>(host: _VNode, context: ContextId<T>, value: T): void;
1061
+ resolveContext<T>(host: _VNode, contextId: ContextId<T>): T | undefined;
1062
+ getParentHost(host: _VNode): _VNode | null;
985
1063
  setHostProp<T>(host: HostElement, name: string, value: T): void;
986
1064
  getHostProp<T>(host: HostElement, name: string): T | null;
987
- scheduleRender(): Promise<void>;
988
- private processChores;
989
1065
  ensureProjectionResolved(vNode: _VirtualVNode): void;
990
1066
  $getObjectById$: (id: number | string) => unknown;
991
1067
  getSyncFn(id: number): (...args: unknown[]) => unknown;
@@ -1076,25 +1152,13 @@ _SubscriptionData | null
1076
1152
  ];
1077
1153
 
1078
1154
  /** @internal */
1079
- export declare type _ElementVNode = [
1080
- _VNodeFlags.Element,
1081
- ////////////// 0 - Flags
1082
- _VNode | null,
1083
- /////////////// 1 - Parent
1084
- _VNode | null,
1085
- /////////////// 2 - Previous sibling
1086
- _VNode | null,
1087
- /////////////// 3 - Next sibling
1088
- _VNode | null | undefined,
1089
- /// 4 - First child - undefined if children need to be materialize
1090
- _VNode | null | undefined,
1091
- Element,
1092
- //////////////////// 6 - Element
1093
- string | undefined,
1094
- (string | null)[]
1095
- ] & {
1096
- __brand__: 'ElementVNode';
1097
- };
1155
+ export declare class _ElementVNode extends _VNode {
1156
+ firstChild: _VNode | null | undefined;
1157
+ lastChild: _VNode | null | undefined;
1158
+ element: Element;
1159
+ elementName: string | undefined;
1160
+ constructor(flags: _VNodeFlags, parent: _ElementVNode | _VirtualVNode | null, previousSibling: _VNode | null | undefined, nextSibling: _VNode | null | undefined, firstChild: _VNode | null | undefined, lastChild: _VNode | null | undefined, element: Element, elementName: string | undefined);
1161
+ }
1098
1162
 
1099
1163
  /** @internal */
1100
1164
  export declare const _EMPTY_ARRAY: any[];
@@ -1147,6 +1211,13 @@ declare type Filtered<T, A = {}> = {
1147
1211
  /** @internal */
1148
1212
  export declare const _fnSignal: <T extends (...args: any) => any>(fn: T, args: Parameters<T>, fnStr?: string) => WrappedSignalImpl<any>;
1149
1213
 
1214
+ /**
1215
+ * Force a store to recompute and schedule effects.
1216
+ *
1217
+ * @public
1218
+ */
1219
+ export declare const forceStoreEffects: (value: StoreTarget, prop: keyof StoreTarget) => void;
1220
+
1150
1221
  /** @public */
1151
1222
  export declare const Fragment: FunctionComponent<{
1152
1223
  children?: any;
@@ -1164,6 +1235,12 @@ export declare type FunctionComponent<P = unknown> = {
1164
1235
  renderFn(props: P, key: string | null, flags: number, dev?: DevJSX): JSXOutput;
1165
1236
  }['renderFn'];
1166
1237
 
1238
+ /** @internal */
1239
+ export declare const _getConstProps: <T, JSX>(props: PropsProxy | Record<string, unknown> | null | undefined) => Props | null;
1240
+
1241
+ /** @internal */
1242
+ export declare const _getContextContainer: () => ClientContainer | undefined;
1243
+
1167
1244
  /** @internal */
1168
1245
  export declare const _getContextElement: () => unknown;
1169
1246
 
@@ -1202,6 +1279,9 @@ export declare const getPlatform: () => CorePlatform;
1202
1279
  /** @internal */
1203
1280
  export declare function _getQContainerElement(element: Element | _VNode): Element | null;
1204
1281
 
1282
+ /** @internal */
1283
+ export declare const _getVarProps: <T, JSX>(props: PropsProxy | Record<string, unknown> | null | undefined) => Props | null;
1284
+
1205
1285
  /** @public */
1206
1286
  declare interface GlobalInjections {
1207
1287
  tag: string;
@@ -1223,6 +1303,12 @@ declare function h<TYPE extends string | FunctionComponent<PROPS>, PROPS extends
1223
1303
  export { h as createElement }
1224
1304
  export { h }
1225
1305
 
1306
+ /**
1307
+ * @returns True if the store has effects for the given prop
1308
+ * @internal
1309
+ */
1310
+ export declare const _hasStoreEffects: (value: StoreTarget, prop: keyof StoreTarget) => boolean;
1311
+
1226
1312
  /** @public */
1227
1313
  declare interface HoistEntryStrategy {
1228
1314
  type: 'hoist';
@@ -1436,17 +1522,26 @@ export declare interface ISsrComponentFrame {
1436
1522
 
1437
1523
  declare interface ISsrNode {
1438
1524
  id: string;
1439
- parentSsrNode: ISsrNode | null;
1440
- vnodeData?: VNodeData;
1525
+ flags: SsrNodeFlags;
1526
+ parentComponent: ISsrNode | null;
1527
+ vnodeData: VNodeData;
1528
+ currentFile: string | null;
1441
1529
  setProp(name: string, value: any): void;
1442
1530
  getProp(name: string): any;
1443
1531
  removeProp(name: string): void;
1444
1532
  addChild(child: ISsrNode): void;
1533
+ setTreeNonUpdatable(): void;
1445
1534
  }
1446
1535
 
1536
+ /** @internal */
1537
+ export declare const _isStore: (value: StoreTarget) => boolean;
1538
+
1447
1539
  /** @internal */
1448
1540
  export declare function _isStringifiable(value: unknown): value is _Stringifiable;
1449
1541
 
1542
+ /** @internal */
1543
+ export declare const _isTask: (value: any) => value is Task;
1544
+
1450
1545
  /**
1451
1546
  * @public
1452
1547
  * Used by the JSX transpilers to create a JSXNode.
@@ -1601,6 +1696,15 @@ declare interface LenientSVGProps<T extends Element> extends SVGAttributes, DOMA
1601
1696
  */
1602
1697
  declare type LiteralUnion<LiteralType, BaseType extends Primitive> = LiteralType | (BaseType & Record<never, never>);
1603
1698
 
1699
+ /** @internal */
1700
+ export declare const _mapApp_findIndx: <T>(array: (T | null)[], key: string, start: number) => number;
1701
+
1702
+ /** @internal */
1703
+ export declare const _mapArray_get: <T>(array: (T | null)[], key: string, start: number) => T | null;
1704
+
1705
+ /** @internal */
1706
+ export declare const _mapArray_set: <T>(array: (T | null)[], key: string, value: T | null, start: number, allowNullValue?: boolean) => void;
1707
+
1604
1708
  declare type MediaSpecialAttrs = {
1605
1709
  crossOrigin?: HTMLCrossOriginAttribute;
1606
1710
  };
@@ -1858,6 +1962,8 @@ declare type PropsProxy = {
1858
1962
  [_CONST_PROPS]: Props | null;
1859
1963
  };
1860
1964
 
1965
+ declare type PropType<T extends object, P extends keyof T> = P extends keyof T ? T[P] : 'value' extends keyof T ? T['value'] : never;
1966
+
1861
1967
  /**
1862
1968
  * Extends the defined component PROPS, adding the default ones (children and q:slot) and allowing
1863
1969
  * plain functions to QRL arguments.
@@ -2049,13 +2155,12 @@ declare type QRLInternalMethods<TYPE> = {
2049
2155
  $captureRef$: unknown[] | null;
2050
2156
  dev: QRLDev | null;
2051
2157
  resolved: undefined | TYPE;
2052
- resolve(): Promise<TYPE>;
2158
+ resolve(containerEl?: Element): Promise<TYPE>;
2053
2159
  getSymbol(): string;
2054
2160
  getHash(): string;
2055
2161
  getCaptured(): unknown[] | null;
2056
2162
  getFn(currentCtx?: InvokeContext | InvokeTuple, beforeFn?: () => void): TYPE extends (...args: any) => any ? (...args: Parameters<TYPE>) => ValueOrPromise<ReturnType<TYPE>> : unknown;
2057
2163
  $setContainer$(containerEl: Element | undefined): Element | undefined;
2058
- $resolveLazy$(containerEl?: Element): ValueOrPromise<TYPE>;
2059
2164
  };
2060
2165
 
2061
2166
  declare type QrlReturn<T> = T extends (...args: any) => infer R ? Awaited<R> : unknown;
@@ -2393,6 +2498,8 @@ export declare const RenderOnce: FunctionComponent<{
2393
2498
  key?: string | number | null | undefined;
2394
2499
  }>;
2395
2500
 
2501
+ /** @internal */
2502
+ /** @internal */
2396
2503
  /** @public */
2397
2504
  export declare interface RenderOptions {
2398
2505
  serverData?: Record<string, any>;
@@ -2413,6 +2520,9 @@ export declare interface RenderSSROptions {
2413
2520
  manifestHash: string;
2414
2521
  }
2415
2522
 
2523
+ /** @internal */
2524
+ export declare const _resolveContextWithoutSequentialScope: <STATE>(context: ContextId<STATE>) => STATE | undefined;
2525
+
2416
2526
  /** @public */
2417
2527
  declare interface ResolvedManifest {
2418
2528
  mapper: SymbolMapper;
@@ -2513,9 +2623,9 @@ export declare interface ResourcePending<T> {
2513
2623
  /** @public */
2514
2624
  export declare interface ResourceProps<T> {
2515
2625
  readonly value: ResourceReturn<T> | Signal<Promise<T> | T> | Promise<T>;
2516
- onResolved: (value: T) => JSXOutput;
2517
- onPending?: () => JSXOutput;
2518
- onRejected?: (reason: Error) => JSXOutput;
2626
+ onResolved: (value: T) => JSXOutput | Promise<JSXOutput>;
2627
+ onPending?: () => JSXOutput | Promise<JSXOutput>;
2628
+ onRejected?: (reason: Error) => JSXOutput | Promise<JSXOutput>;
2519
2629
  }
2520
2630
 
2521
2631
  /** @public */
@@ -2545,14 +2655,14 @@ declare interface ResourceReturnInternal<T> {
2545
2655
  }
2546
2656
 
2547
2657
  /** @internal */
2548
- export declare const _restProps: (props: PropsProxy, omit: string[], target?: Props) => Props;
2658
+ export declare const _restProps: (props: PropsProxy, omit?: string[], target?: Props) => Props;
2549
2659
 
2550
2660
  /**
2551
2661
  * This is called by qwik-loader to schedule a QRL. It has to be synchronous.
2552
2662
  *
2553
2663
  * @internal
2554
2664
  */
2555
- export declare const _run: (...args: unknown[]) => ValueOrPromise_2<void>;
2665
+ export declare const _run: (...args: unknown[]) => ValueOrPromise<unknown>;
2556
2666
 
2557
2667
  declare type Scheduler = ReturnType<typeof createScheduler>;
2558
2668
 
@@ -2602,11 +2712,11 @@ declare interface SerializationContext {
2602
2712
  $addRootPath$: (obj: any) => string | number;
2603
2713
  $seen$: (obj: unknown, parent: unknown | null, index: number) => void;
2604
2714
  $roots$: unknown[];
2605
- $pathMap$: Map<unknown, string | number>;
2715
+ $objectPathStringCache$: Map<unknown, string | number>;
2606
2716
  $addSyncFn$($funcStr$: string | null, argsCount: number, fn: Function): number;
2607
2717
  $isSsrNode$: (obj: unknown) => obj is SsrNode;
2608
2718
  $isDomRef$: (obj: unknown) => obj is DomRef;
2609
- $writer$: StreamWriter_2;
2719
+ $writer$: StreamWriter;
2610
2720
  $syncFns$: string[];
2611
2721
  $eventQrls$: Set<QRL>;
2612
2722
  $eventNames$: Set<string>;
@@ -2617,6 +2727,14 @@ declare interface SerializationContext {
2617
2727
  $setProp$: (obj: any, prop: string, value: any) => void;
2618
2728
  }
2619
2729
 
2730
+ declare const enum SerializationSignalFlags {
2731
+ SERIALIZATION_STRATEGY_NEVER = 16,
2732
+ SERIALIZATION_STRATEGY_ALWAYS = 32
2733
+ }
2734
+
2735
+ /** @public */
2736
+ export declare type SerializationStrategy = 'never' | 'always';
2737
+
2620
2738
  /**
2621
2739
  * Serialize data to string using SerializationContext.
2622
2740
  *
@@ -2688,7 +2806,7 @@ declare interface SerializerSignal<T> extends ComputedSignal<T> {
2688
2806
  declare class SerializerSignalImpl<T, S> extends ComputedSignalImpl<T> {
2689
2807
  constructor(container: Container | null, argQrl: QRLInternal<SerializerArg<T, S>>);
2690
2808
  $didInitialize$: boolean;
2691
- $computeIfNeeded$(): boolean;
2809
+ $computeIfNeeded$(): void;
2692
2810
  }
2693
2811
 
2694
2812
  /**
@@ -2739,7 +2857,8 @@ export declare abstract class _SharedContainer implements Container {
2739
2857
  $currentUniqueId$: number;
2740
2858
  $instanceHash$: string | null;
2741
2859
  $buildBase$: string | null;
2742
- constructor(scheduleDrain: () => void, journalFlush: () => void, serverData: Record<string, any>, locale: string);
2860
+ $flushEpoch$: number;
2861
+ constructor(journalFlush: () => void, serverData: Record<string, any>, locale: string);
2743
2862
  trackSignalValue<T>(signal: Signal, subscriber: HostElement, property: string, data: _SubscriptionData): T;
2744
2863
  serializationCtxFactory(NodeConstructor: {
2745
2864
  new (...rest: any[]): {
@@ -2751,7 +2870,7 @@ export declare abstract class _SharedContainer implements Container {
2751
2870
  };
2752
2871
  } | null, symbolToChunkResolver: SymbolToChunkResolver, writer?: StreamWriter): SerializationContext;
2753
2872
  abstract ensureProjectionResolved(host: HostElement): void;
2754
- abstract handleError(err: any, $host$: HostElement): void;
2873
+ abstract handleError(err: any, $host$: HostElement | null): void;
2755
2874
  abstract getParentHost(host: HostElement): HostElement | null;
2756
2875
  abstract setContext<T>(host: HostElement, context: ContextId<T>, value: T): void;
2757
2876
  abstract resolveContext<T>(host: HostElement, contextId: ContextId<T>): T | undefined;
@@ -2777,7 +2896,8 @@ export declare interface Signal<T = any> extends ReadonlySignal<T> {
2777
2896
  }
2778
2897
 
2779
2898
  declare const enum SignalFlags {
2780
- INVALID = 1
2899
+ INVALID = 1,
2900
+ RUN_EFFECTS = 2
2781
2901
  }
2782
2902
 
2783
2903
  declare class SignalImpl<T = any> implements Signal<T> {
@@ -2786,6 +2906,11 @@ declare class SignalImpl<T = any> implements Signal<T> {
2786
2906
  $effects$: null | Set<EffectSubscription>;
2787
2907
  $container$: Container | null;
2788
2908
  constructor(container: Container | null, value: T);
2909
+ /**
2910
+ * Use this to force running subscribers, for example when the calculated value has mutated but
2911
+ * remained the same object
2912
+ */
2913
+ force(): void;
2789
2914
  get untrackedValue(): T;
2790
2915
  set untrackedValue(value: T);
2791
2916
  get value(): T;
@@ -3115,6 +3240,8 @@ declare interface SSRContainer extends Container {
3115
3240
  render(jsx: JSXOutput): Promise<void>;
3116
3241
  emitPreloaderPre(): void;
3117
3242
  emitQwikLoaderAtTopIfNeeded(): void;
3243
+ emitPatchDataIfNeeded(): void;
3244
+ addBackpatchEntry(ssrNodeId: string, attrName: string, serializedValue: string | boolean | null): void;
3118
3245
  }
3119
3246
 
3120
3247
  /** @public */
@@ -3130,6 +3257,10 @@ declare type SsrNode = {
3130
3257
  [_EFFECT_BACK_REF]: Map<EffectProperty | string, EffectSubscription> | null;
3131
3258
  };
3132
3259
 
3260
+ declare const enum SsrNodeFlags {
3261
+ Updatable = 1
3262
+ }
3263
+
3133
3264
  /** @public */
3134
3265
  export declare const SSRRaw: FunctionComponent<{
3135
3266
  data: string;
@@ -3144,38 +3275,22 @@ export declare const SSRStreamBlock: FunctionComponent<{
3144
3275
  }>;
3145
3276
 
3146
3277
  /** @public */
3147
- export declare type SSRStreamChildren = AsyncGenerator<JSXChildren, void, any> | ((stream: StreamWriter) => Promise<void>) | (() => AsyncGenerator<JSXChildren, void, any>);
3278
+ export declare type SSRStreamChildren = AsyncGenerator<JSXChildren, void, any> | ((stream: SSRStreamWriter) => Promise<void>) | (() => AsyncGenerator<JSXChildren, void, any>);
3148
3279
 
3149
3280
  /** @public */
3150
3281
  export declare type SSRStreamProps = {
3151
3282
  children: SSRStreamChildren;
3152
3283
  };
3153
3284
 
3285
+ /** @public */
3286
+ export declare interface SSRStreamWriter {
3287
+ write(chunk: JSXOutput): void;
3288
+ }
3289
+
3154
3290
  declare type StopPropagation = {
3155
3291
  [K in keyof HTMLElementEventMap as `stoppropagation:${K}`]?: boolean;
3156
3292
  };
3157
3293
 
3158
- declare const enum StoreFlags {
3159
- NONE = 0,
3160
- RECURSIVE = 1,
3161
- IMMUTABLE = 2
3162
- }
3163
-
3164
- declare class StoreHandler implements ProxyHandler<StoreTarget> {
3165
- $flags$: StoreFlags;
3166
- $container$: Container | null;
3167
- $effects$: null | Map<string | symbol, Set<EffectSubscription>>;
3168
- constructor($flags$: StoreFlags, $container$: Container | null);
3169
- toString(): string;
3170
- get(target: StoreTarget, prop: string | symbol): any;
3171
- /** In the case of oldValue and value are the same, the effects are not triggered. */
3172
- set(target: StoreTarget, prop: string | symbol, value: any): boolean;
3173
- deleteProperty(target: StoreTarget, prop: string | symbol): boolean;
3174
- has(target: StoreTarget, prop: string | symbol): boolean;
3175
- ownKeys(target: StoreTarget): ArrayLike<string | symbol>;
3176
- getOwnPropertyDescriptor(target: StoreTarget, prop: string | symbol): PropertyDescriptor | undefined;
3177
- }
3178
-
3179
3294
  declare type StoreTarget = Record<string | symbol, any>;
3180
3295
 
3181
3296
  /** @internal */
@@ -3531,20 +3646,11 @@ declare const TaskEvent = "qTask";
3531
3646
  export declare type TaskFn = (ctx: TaskCtx) => ValueOrPromise<void | (() => void)>;
3532
3647
 
3533
3648
  /** @internal */
3534
- export declare type _TextVNode = [
3535
- _VNodeFlags.Text | _VNodeFlags.Inflated,
3536
- // 0 - Flags
3537
- _VNode | null,
3538
- ///////////////// 1 - Parent
3539
- _VNode | null,
3540
- ///////////////// 2 - Previous sibling
3541
- _VNode | null,
3542
- ///////////////// 3 - Next sibling
3543
- Text | null | undefined,
3544
- string
3545
- ] & {
3546
- __brand__: 'TextVNode';
3547
- };
3649
+ export declare class _TextVNode extends _VNode {
3650
+ textNode: Text | null;
3651
+ text: string | undefined;
3652
+ constructor(flags: _VNodeFlags, parent: _ElementVNode | _VirtualVNode | null, previousSibling: _VNode | null | undefined, nextSibling: _VNode | null | undefined, textNode: Text | null, text: string | undefined);
3653
+ }
3548
3654
 
3549
3655
  /**
3550
3656
  * Used to signal to Qwik which state should be watched for changes.
@@ -3631,6 +3737,9 @@ export declare interface Tracker {
3631
3737
  <T extends object, P extends keyof T>(obj: T, prop: P): T[P];
3632
3738
  }
3633
3739
 
3740
+ /** @internal */
3741
+ export declare const _UNINITIALIZED: unique symbol;
3742
+
3634
3743
  /**
3635
3744
  * Don't track listeners for this callback
3636
3745
  *
@@ -3658,10 +3767,10 @@ export declare const unwrapStore: <T>(value: T) => T;
3658
3767
  *
3659
3768
  * @public
3660
3769
  */
3661
- export declare const useAsyncComputed$: <T>(qrl: AsyncComputedFn<T>) => AsyncComputedReturnType<T>;
3770
+ export declare const useAsyncComputed$: <T>(qrl: AsyncComputedFn<T>, options?: ComputedOptions | undefined) => AsyncComputedReturnType<T>;
3662
3771
 
3663
3772
  /** @internal */
3664
- export declare const useAsyncComputedQrl: <T>(qrl: QRL<AsyncComputedFn<T>>) => AsyncComputedReturnType<T>;
3773
+ export declare const useAsyncComputedQrl: <T>(qrl: QRL<AsyncComputedFn<T>>, options?: ComputedOptions) => AsyncComputedReturnType<T>;
3665
3774
 
3666
3775
  /**
3667
3776
  * Creates a computed signal which is calculated from the given function. A computed signal is a
@@ -3673,10 +3782,10 @@ export declare const useAsyncComputedQrl: <T>(qrl: QRL<AsyncComputedFn<T>>) => A
3673
3782
  *
3674
3783
  * @public
3675
3784
  */
3676
- export declare const useComputed$: <T>(qrl: ComputedFn<T>) => ComputedReturnType<T>;
3785
+ export declare const useComputed$: <T>(qrl: ComputedFn<T>, options?: ComputedOptions | undefined) => ComputedReturnType<T>;
3677
3786
 
3678
3787
  /** @internal */
3679
- export declare const useComputedQrl: <T>(qrl: QRL<ComputedFn<T>>) => ComputedReturnType<T>;
3788
+ export declare const useComputedQrl: <T>(qrl: QRL<ComputedFn<T>>, options?: ComputedOptions) => ComputedReturnType<T>;
3680
3789
 
3681
3790
  /**
3682
3791
  * Stores a value which is retained for the lifetime of the component. Subsequent calls to
@@ -4002,7 +4111,7 @@ export declare const useResourceQrl: <T>(qrl: QRL<ResourceFn<T>>, opts?: Resourc
4002
4111
  export declare const useSerializer$: typeof createSerializer$;
4003
4112
 
4004
4113
  /** @internal */
4005
- export declare const useSerializerQrl: <T, S>(qrl: QRL<SerializerArg<T, S>>) => ReadonlySignal_2<unknown>;
4114
+ export declare const useSerializerQrl: <T, S>(qrl: QRL<SerializerArg<T, S>>) => ComputedSignal_2<unknown>;
4006
4115
 
4007
4116
  /** @public */
4008
4117
  export declare function useServerData<T>(key: string): T | undefined;
@@ -4250,35 +4359,60 @@ export declare const _VAR_PROPS: unique symbol;
4250
4359
  export declare const _verifySerializable: <T>(value: T, preMessage?: string) => T;
4251
4360
 
4252
4361
  /**
4253
- * 2.0.0-beta.1-dev+495e8d9
4362
+ * 2.0.0-beta.11-dev+d7daca3
4254
4363
  *
4255
4364
  * @public
4256
4365
  */
4257
4366
  export declare const version: string;
4258
4367
 
4259
4368
  /** @internal */
4260
- export declare type _VirtualVNode = [
4261
- _VNodeFlags.Virtual,
4262
- ///////////// 0 - Flags
4263
- _VNode | null,
4264
- /////////////// 1 - Parent
4265
- _VNode | null,
4266
- /////////////// 2 - Previous sibling
4267
- _VNode | null,
4268
- /////////////// 3 - Next sibling
4269
- _VNode | null,
4270
- /////////////// 4 - First child
4271
- _VNode | null,
4272
- (string | null | boolean)[]
4273
- ] & {
4274
- __brand__: 'FragmentNode' & 'HostElement';
4275
- };
4369
+ export declare class _VirtualVNode extends _VNode {
4370
+ firstChild: _VNode | null | undefined;
4371
+ lastChild: _VNode | null | undefined;
4372
+ constructor(flags: _VNodeFlags, parent: _ElementVNode | _VirtualVNode | null, previousSibling: _VNode | null | undefined, nextSibling: _VNode | null | undefined, firstChild: _VNode | null | undefined, lastChild: _VNode | null | undefined);
4373
+ }
4276
4374
 
4277
4375
  /** @public */
4278
4376
  export declare type VisibleTaskStrategy = 'intersection-observer' | 'document-ready' | 'document-idle';
4279
4377
 
4280
4378
  /** @internal */
4281
- export declare type _VNode = _ElementVNode | _TextVNode | _VirtualVNode;
4379
+ export declare abstract class _VNode extends BackRef {
4380
+ flags: _VNodeFlags;
4381
+ parent: _ElementVNode | _VirtualVNode | null;
4382
+ previousSibling: _VNode | null | undefined;
4383
+ nextSibling: _VNode | null | undefined;
4384
+ props: unknown[] | null;
4385
+ slotParent: _VNode | null;
4386
+ chores: ChoreArray | null;
4387
+ blockedChores: ChoreArray | null;
4388
+ constructor(flags: _VNodeFlags, parent: _ElementVNode | _VirtualVNode | null, previousSibling: _VNode | null | undefined, nextSibling: _VNode | null | undefined);
4389
+ getProp<T>(key: string, getObject: ((id: string) => any) | null): T | null;
4390
+ setProp(key: string, value: any): void;
4391
+ getAttr(key: string): string | null;
4392
+ setAttr(key: string, value: string | null | boolean, journal: VNodeJournal | null): void;
4393
+ toString(): string;
4394
+ }
4395
+
4396
+ /** @internal */
4397
+ export declare const _vnode_ensureElementInflated: (vnode: _VNode) => void;
4398
+
4399
+ /** @internal */
4400
+ export declare const _vnode_getAttrKeys: (vnode: _ElementVNode | _VirtualVNode) => string[];
4401
+
4402
+ /** @internal */
4403
+ export declare const _vnode_getFirstChild: (vnode: _VNode) => _VNode | null;
4404
+
4405
+ /** @internal */
4406
+ export declare const _vnode_getProps: (vnode: _ElementVNode | _VirtualVNode) => unknown[];
4407
+
4408
+ /** @internal */
4409
+ export declare const _vnode_isMaterialized: (vNode: _VNode) => boolean;
4410
+
4411
+ /** @internal */
4412
+ export declare const _vnode_isTextVNode: (vNode: _VNode) => vNode is _TextVNode;
4413
+
4414
+ /** @internal */
4415
+ export declare const _vnode_isVirtualVNode: (vNode: _VNode) => vNode is _VirtualVNode;
4282
4416
 
4283
4417
  /** @internal */
4284
4418
  export declare function _vnode_toString(this: _VNode | null, depth?: number, offset?: string, materialize?: boolean, siblings?: boolean, colorize?: boolean): string;
@@ -4349,10 +4483,10 @@ export declare const enum _VNodeFlags {
4349
4483
  Element = 1,
4350
4484
  Virtual = 2,
4351
4485
  ELEMENT_OR_VIRTUAL_MASK = 3,
4486
+ Text = 4,
4352
4487
  ELEMENT_OR_TEXT_MASK = 5,
4353
4488
  TYPE_MASK = 7,
4354
4489
  INFLATED_TYPE_MASK = 15,
4355
- Text = 4,
4356
4490
  Inflated = 8,
4357
4491
  Resolved = 16,
4358
4492
  Deleted = 32,
@@ -4390,9 +4524,6 @@ export declare function _walkJSX(ssr: SSRContainer, value: JSXOutput, options: {
4390
4524
  parentComponentFrame: ISsrComponentFrame | null;
4391
4525
  }): Promise<void>;
4392
4526
 
4393
- /** @internal */
4394
- export declare const _weakSerialize: <T extends object>(input: T) => Partial<T>;
4395
-
4396
4527
  /**
4397
4528
  * Override the `getLocale` with `lang` within the `fn` execution.
4398
4529
  *
@@ -4400,8 +4531,10 @@ export declare const _weakSerialize: <T extends object>(input: T) => Partial<T>;
4400
4531
  */
4401
4532
  export declare function withLocale<T>(locale: string, fn: () => T): T;
4402
4533
 
4534
+ declare type WrappedProp<T extends object, P extends keyof T> = T extends Signal ? WrappedSignalImpl<PropType<T, P>> : PropType<T, P>;
4535
+
4403
4536
  declare const enum WrappedSignalFlags {
4404
- UNWRAP = 2
4537
+ UNWRAP = 4
4405
4538
  }
4406
4539
 
4407
4540
  declare class WrappedSignalImpl<T> extends SignalImpl<T> implements BackRef {
@@ -4410,17 +4543,16 @@ declare class WrappedSignalImpl<T> extends SignalImpl<T> implements BackRef {
4410
4543
  $funcStr$: string | null;
4411
4544
  $flags$: AllSignalFlags;
4412
4545
  $hostElement$: HostElement | null;
4413
- $forceRunEffects$: boolean;
4414
4546
  [_EFFECT_BACK_REF]: Map<EffectProperty | string, EffectSubscription> | null;
4415
4547
  constructor(container: Container | null, fn: (...args: any[]) => T, args: any[], fnStr: string | null, flags?: SignalFlags);
4416
- $invalidate$(): void;
4548
+ invalidate(): void;
4417
4549
  /**
4418
4550
  * Use this to force running subscribers, for example when the calculated value has mutated but
4419
4551
  * remained the same object.
4420
4552
  */
4421
4553
  force(): void;
4422
4554
  get untrackedValue(): T;
4423
- $computeIfNeeded$(): boolean;
4555
+ $computeIfNeeded$(): void;
4424
4556
  set value(_: any);
4425
4557
  get value(): any;
4426
4558
  }
@@ -4436,12 +4568,9 @@ declare class WrappedSignalImpl<T> extends SignalImpl<T> implements BackRef {
4436
4568
  *
4437
4569
  * @internal
4438
4570
  */
4439
- export declare const _wrapProp: <T extends Record<any, any>, P extends keyof T>(...args: [T, P?]) => any;
4571
+ export declare const _wrapProp: <T extends object, P extends keyof T>(...args: [T, P?]) => WrappedProp<T, P>;
4440
4572
 
4441
4573
  /** @internal @deprecated v1 compat */
4442
- export declare const _wrapSignal: <T extends Record<any, any>, P extends keyof T>(obj: T, prop: P) => any;
4443
-
4444
- /** @internal */
4445
- export declare const _wrapStore: <T extends Record<any, any>, P extends keyof T>(obj: T, prop: P) => Signal<T>;
4574
+ export declare const _wrapSignal: <T extends object, P extends keyof T>(obj: T, prop: P) => T[P] | WrappedProp<T, P>;
4446
4575
 
4447
4576
  export { }