@qwik.dev/core 2.0.0-alpha.3 → 2.0.0-alpha.5

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.
@@ -4,15 +4,12 @@ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "sy
4
4
  import { sync$, component$ } from "@qwik.dev/core";
5
5
  /**
6
6
  * @license
7
- * @qwik.dev/core 2.0.0-alpha.3-dev+418fd6d
7
+ * @qwik.dev/core 2.0.0-alpha.5-dev+cb53bbd
8
8
  * Copyright QwikDev. All Rights Reserved.
9
9
  * Use of this source code is governed by an MIT-style license that can be
10
10
  * found in the LICENSE file at https://github.com/QwikDev/qwik/blob/main/LICENSE
11
11
  */
12
- const logError = (message, ...optionalParams) => createAndLogError(false, message, ...optionalParams);
13
- const throwErrorAndStop = (message, ...optionalParams) => {
14
- throw createAndLogError(false, message, ...optionalParams);
15
- };
12
+ const logErrorAndStop = (message, ...optionalParams) => createAndLogError(true, message, ...optionalParams);
16
13
  const createAndLogError = (asyncThrow, message, ...optionalParams) => {
17
14
  const err = message instanceof Error ? message : new Error(message);
18
15
  return console.error("%cQWIK ERROR", "", err.message, ...optionalParams, err.stack), asyncThrow && setTimeout(() => {
@@ -23,18 +20,21 @@ function assertTrue() {
23
20
  }
24
21
  function assertFalse() {
25
22
  }
23
+ const codeToText = (code) => `Code(Q${code}) https://github.com/QwikDev/qwik/blob/main/packages/qwik/src/core/error/error.ts#L${8 + code}`;
24
+ var QError;
25
+ !function(QError2) {
26
+ QError2[QError2.stringifyClassOrStyle = 0] = "stringifyClassOrStyle", QError2[QError2.UNUSED_1 = 1] = "UNUSED_1", QError2[QError2.UNUSED_2 = 2] = "UNUSED_2", QError2[QError2.verifySerializable = 3] = "verifySerializable", QError2[QError2.UNUSED_4 = 4] = "UNUSED_4", QError2[QError2.cannotRenderOverExistingContainer = 5] = "cannotRenderOverExistingContainer", QError2[QError2.UNUSED_6 = 6] = "UNUSED_6", QError2[QError2.UNUSED_7 = 7] = "UNUSED_7", QError2[QError2.UNUSED_8 = 8] = "UNUSED_8", QError2[QError2.UNUSED_9 = 9] = "UNUSED_9", QError2[QError2.qrlIsNotFunction = 10] = "qrlIsNotFunction", QError2[QError2.dynamicImportFailed = 11] = "dynamicImportFailed", QError2[QError2.unknownTypeArgument = 12] = "unknownTypeArgument", QError2[QError2.notFoundContext = 13] = "notFoundContext", QError2[QError2.useMethodOutsideContext = 14] = "useMethodOutsideContext", QError2[QError2.UNUSED_15 = 15] = "UNUSED_15", QError2[QError2.UNUSED_16 = 16] = "UNUSED_16", QError2[QError2.UNUSED_17 = 17] = "UNUSED_17", QError2[QError2.UNUSED_18 = 18] = "UNUSED_18", QError2[QError2.UNUSED_19 = 19] = "UNUSED_19", QError2[QError2.useInvokeContext = 20] = "useInvokeContext", QError2[QError2.UNUSED_21 = 21] = "UNUSED_21", QError2[QError2.UNUSED_22 = 22] = "UNUSED_22", QError2[QError2.UNUSED_23 = 23] = "UNUSED_23", QError2[QError2.UNUSED_24 = 24] = "UNUSED_24", QError2[QError2.UNUSED_25 = 25] = "UNUSED_25", QError2[QError2.UNUSED_26 = 26] = "UNUSED_26", QError2[QError2.UNUSED_27 = 27] = "UNUSED_27", QError2[QError2.invalidContext = 28] = "invalidContext", QError2[QError2.tagError = 29] = "tagError", QError2[QError2.qrlMissingContainer = 30] = "qrlMissingContainer", QError2[QError2.qrlMissingChunk = 31] = "qrlMissingChunk", QError2[QError2.invalidRefValue = 32] = "invalidRefValue", QError2[QError2.serializeErrorNotImplemented = 33] = "serializeErrorNotImplemented", QError2[QError2.serializeErrorExpectedVNode = 34] = "serializeErrorExpectedVNode", QError2[QError2.serializeErrorCannotAllocate = 35] = "serializeErrorCannotAllocate", QError2[QError2.serializeErrorMissingRootId = 36] = "serializeErrorMissingRootId", QError2[QError2.serializeErrorUnknownType = 37] = "serializeErrorUnknownType", QError2[QError2.serializeErrorUnvisited = 38] = "serializeErrorUnvisited", QError2[QError2.serializeErrorMissingChunk = 39] = "serializeErrorMissingChunk", QError2[QError2.wrongTextareaValue = 40] = "wrongTextareaValue", QError2[QError2.containerNotFound = 41] = "containerNotFound", QError2[QError2.elementWithoutContainer = 42] = "elementWithoutContainer", QError2[QError2.invalidVNodeType = 43] = "invalidVNodeType", QError2[QError2.materializeVNodeDataError = 44] = "materializeVNodeDataError", QError2[QError2.serverHostMismatch = 45] = "serverHostMismatch", QError2[QError2.cannotCoerceSignal = 46] = "cannotCoerceSignal", QError2[QError2.computedNotSync = 47] = "computedNotSync", QError2[QError2.computedReadOnly = 48] = "computedReadOnly", QError2[QError2.wrappedReadOnly = 49] = "wrappedReadOnly", QError2[QError2.promisesNotExpected = 50] = "promisesNotExpected", QError2[QError2.unsafeAttr = 51] = "unsafeAttr";
27
+ }(QError || (QError = {}));
28
+ const qError = (code, errorMessageArgs = []) => {
29
+ const text = codeToText(code, ...errorMessageArgs);
30
+ return logErrorAndStop(text, ...errorMessageArgs);
31
+ };
26
32
  const isPromise = (value) => !!value && "object" == typeof value && "function" == typeof value.then;
27
- function retryOnPromise(fn, retryCount = 0) {
28
- try {
29
- return fn();
30
- } catch (e) {
31
- if (isPromise(e) && retryCount < 100) {
32
- return e.then(retryOnPromise.bind(null, fn, retryCount++));
33
- }
34
- throw e;
35
- }
36
- }
37
33
  const isArray = (v) => Array.isArray(v);
34
+ var VNodeDataFlag;
35
+ !function(VNodeDataFlag2) {
36
+ VNodeDataFlag2[VNodeDataFlag2.NONE = 0] = "NONE", VNodeDataFlag2[VNodeDataFlag2.TEXT_DATA = 1] = "TEXT_DATA", VNodeDataFlag2[VNodeDataFlag2.VIRTUAL_NODE = 2] = "VIRTUAL_NODE", VNodeDataFlag2[VNodeDataFlag2.ELEMENT_NODE = 4] = "ELEMENT_NODE", VNodeDataFlag2[VNodeDataFlag2.REFERENCE = 8] = "REFERENCE", VNodeDataFlag2[VNodeDataFlag2.SERIALIZE = 16] = "SERIALIZE";
37
+ }(VNodeDataFlag || (VNodeDataFlag = {}));
38
38
  var VirtualType;
39
39
  !function(VirtualType2) {
40
40
  VirtualType2.Virtual = "V", VirtualType2.Fragment = "F", VirtualType2.WrappedSignal = "S", VirtualType2.Awaited = "A", VirtualType2.Component = "C", VirtualType2.InlineComponent = "I", VirtualType2.Projection = "P";
@@ -57,6 +57,12 @@ const dangerouslySetInnerHTML = "dangerouslySetInnerHTML";
57
57
  const isQrl$1 = (value) => "function" == typeof value && "function" == typeof value.getSymbol;
58
58
  const EMPTY_OBJ = {};
59
59
  Object.freeze(EMPTY_OBJ);
60
+ const STORE_TARGET = Symbol("store.target");
61
+ var StoreFlags;
62
+ !function(StoreFlags2) {
63
+ StoreFlags2[StoreFlags2.NONE = 0] = "NONE", StoreFlags2[StoreFlags2.RECURSIVE = 1] = "RECURSIVE", StoreFlags2[StoreFlags2.IMMUTABLE = 2] = "IMMUTABLE";
64
+ }(StoreFlags || (StoreFlags = {}));
65
+ const isStore = (value) => STORE_TARGET in value;
60
66
  class Subscriber {
61
67
  constructor() {
62
68
  __publicField(this, "$effectDependencies$", null);
@@ -65,6 +71,50 @@ class Subscriber {
65
71
  function isSubscriber(value) {
66
72
  return value instanceof Subscriber || value instanceof WrappedSignal;
67
73
  }
74
+ var VNodeFlags;
75
+ var VNodeFlagsIndex;
76
+ var VNodeProps;
77
+ var ElementVNodeProps;
78
+ var TextVNodeProps;
79
+ var VirtualVNodeProps;
80
+ !function(VNodeFlags2) {
81
+ VNodeFlags2[VNodeFlags2.Element = 1] = "Element", VNodeFlags2[VNodeFlags2.Virtual = 2] = "Virtual", VNodeFlags2[VNodeFlags2.ELEMENT_OR_VIRTUAL_MASK = 3] = "ELEMENT_OR_VIRTUAL_MASK", VNodeFlags2[VNodeFlags2.ELEMENT_OR_TEXT_MASK = 5] = "ELEMENT_OR_TEXT_MASK", VNodeFlags2[VNodeFlags2.TYPE_MASK = 7] = "TYPE_MASK", VNodeFlags2[VNodeFlags2.INFLATED_TYPE_MASK = 15] = "INFLATED_TYPE_MASK", VNodeFlags2[VNodeFlags2.Text = 4] = "Text", VNodeFlags2[VNodeFlags2.Inflated = 8] = "Inflated", VNodeFlags2[VNodeFlags2.Resolved = 16] = "Resolved", VNodeFlags2[VNodeFlags2.Deleted = 32] = "Deleted", VNodeFlags2[VNodeFlags2.NAMESPACE_MASK = 192] = "NAMESPACE_MASK", VNodeFlags2[VNodeFlags2.NEGATED_NAMESPACE_MASK = -193] = "NEGATED_NAMESPACE_MASK", VNodeFlags2[VNodeFlags2.NS_html = 0] = "NS_html", VNodeFlags2[VNodeFlags2.NS_svg = 64] = "NS_svg", VNodeFlags2[VNodeFlags2.NS_math = 128] = "NS_math";
82
+ }(VNodeFlags || (VNodeFlags = {})), function(VNodeFlagsIndex2) {
83
+ VNodeFlagsIndex2[VNodeFlagsIndex2.mask = -256] = "mask", VNodeFlagsIndex2[VNodeFlagsIndex2.negated_mask = 255] = "negated_mask", VNodeFlagsIndex2[VNodeFlagsIndex2.shift = 8] = "shift";
84
+ }(VNodeFlagsIndex || (VNodeFlagsIndex = {})), function(VNodeProps2) {
85
+ VNodeProps2[VNodeProps2.flags = 0] = "flags", VNodeProps2[VNodeProps2.parent = 1] = "parent", VNodeProps2[VNodeProps2.previousSibling = 2] = "previousSibling", VNodeProps2[VNodeProps2.nextSibling = 3] = "nextSibling";
86
+ }(VNodeProps || (VNodeProps = {})), function(ElementVNodeProps2) {
87
+ ElementVNodeProps2[ElementVNodeProps2.firstChild = 4] = "firstChild", ElementVNodeProps2[ElementVNodeProps2.lastChild = 5] = "lastChild", ElementVNodeProps2[ElementVNodeProps2.element = 6] = "element", ElementVNodeProps2[ElementVNodeProps2.elementName = 7] = "elementName", ElementVNodeProps2[ElementVNodeProps2.PROPS_OFFSET = 8] = "PROPS_OFFSET";
88
+ }(ElementVNodeProps || (ElementVNodeProps = {})), function(TextVNodeProps2) {
89
+ TextVNodeProps2[TextVNodeProps2.node = 4] = "node", TextVNodeProps2[TextVNodeProps2.text = 5] = "text";
90
+ }(TextVNodeProps || (TextVNodeProps = {})), function(VirtualVNodeProps2) {
91
+ VirtualVNodeProps2[VirtualVNodeProps2.firstChild = 4] = "firstChild", VirtualVNodeProps2[VirtualVNodeProps2.lastChild = 5] = "lastChild", VirtualVNodeProps2[VirtualVNodeProps2.PROPS_OFFSET = 6] = "PROPS_OFFSET";
92
+ }(VirtualVNodeProps || (VirtualVNodeProps = {}));
93
+ var SiblingsArray;
94
+ !function(SiblingsArray2) {
95
+ SiblingsArray2[SiblingsArray2.Name = 0] = "Name", SiblingsArray2[SiblingsArray2.Key = 1] = "Key", SiblingsArray2[SiblingsArray2.VNode = 2] = "VNode", SiblingsArray2[SiblingsArray2.Size = 3] = "Size", SiblingsArray2[SiblingsArray2.NextVNode = 5] = "NextVNode";
96
+ }(SiblingsArray || (SiblingsArray = {}));
97
+ var ChoreType;
98
+ !function(ChoreType2) {
99
+ ChoreType2[ChoreType2.MACRO = 240] = "MACRO", ChoreType2[ChoreType2.MICRO = 15] = "MICRO", ChoreType2[ChoreType2.QRL_RESOLVE = 1] = "QRL_RESOLVE", ChoreType2[ChoreType2.RESOURCE = 2] = "RESOURCE", ChoreType2[ChoreType2.TASK = 3] = "TASK", ChoreType2[ChoreType2.NODE_DIFF = 4] = "NODE_DIFF", ChoreType2[ChoreType2.NODE_PROP = 5] = "NODE_PROP", ChoreType2[ChoreType2.COMPONENT_SSR = 6] = "COMPONENT_SSR", ChoreType2[ChoreType2.COMPONENT = 7] = "COMPONENT", ChoreType2[ChoreType2.RECOMPUTE_AND_SCHEDULE_EFFECTS = 8] = "RECOMPUTE_AND_SCHEDULE_EFFECTS", ChoreType2[ChoreType2.JOURNAL_FLUSH = 16] = "JOURNAL_FLUSH", ChoreType2[ChoreType2.VISIBLE = 32] = "VISIBLE", ChoreType2[ChoreType2.CLEANUP_VISIBLE = 48] = "CLEANUP_VISIBLE", ChoreType2[ChoreType2.WAIT_FOR_ALL = 255] = "WAIT_FOR_ALL";
100
+ }(ChoreType || (ChoreType = {}));
101
+ var TaskFlags;
102
+ !function(TaskFlags2) {
103
+ TaskFlags2[TaskFlags2.VISIBLE_TASK = 1] = "VISIBLE_TASK", TaskFlags2[TaskFlags2.TASK = 2] = "TASK", TaskFlags2[TaskFlags2.RESOURCE = 4] = "RESOURCE", TaskFlags2[TaskFlags2.DIRTY = 8] = "DIRTY";
104
+ }(TaskFlags || (TaskFlags = {}));
105
+ class Task extends Subscriber {
106
+ constructor($flags$, $index$, $el$, $qrl$, $state$, $destroy$) {
107
+ super();
108
+ __publicField(this, "$flags$");
109
+ __publicField(this, "$index$");
110
+ __publicField(this, "$el$");
111
+ __publicField(this, "$qrl$");
112
+ __publicField(this, "$state$");
113
+ __publicField(this, "$destroy$");
114
+ this.$flags$ = $flags$, this.$index$ = $index$, this.$el$ = $el$, this.$qrl$ = $qrl$, this.$state$ = $state$, this.$destroy$ = $destroy$;
115
+ }
116
+ }
117
+ const isTask = (value) => value instanceof Task;
68
118
  const NEEDS_COMPUTATION = Symbol("invalid");
69
119
  const throwIfQRLNotResolved = (qrl2) => {
70
120
  if (!qrl2.resolved) {
@@ -72,7 +122,7 @@ const throwIfQRLNotResolved = (qrl2) => {
72
122
  }
73
123
  };
74
124
  const isSignal = (value) => value instanceof Signal;
75
- class EffectData {
125
+ class EffectPropData {
76
126
  constructor(data) {
77
127
  __publicField(this, "data");
78
128
  this.data = data;
@@ -149,7 +199,7 @@ const ensureEffectContainsSubscriber = (effect, subscriber, container) => {
149
199
  return;
150
200
  }
151
201
  effect.$effectDependencies$.push(subscriber);
152
- } else if (vnode_isVNode(effect) && vnode_isVirtualVNode(effect)) {
202
+ } else if (vnode_isVNode(effect) && !vnode_isTextVNode(effect)) {
153
203
  let subscribers = vnode_getProp(effect, "q:subs", container ? container.$getObjectById$ : null);
154
204
  if (subscribers || (subscribers = []), subscriberExistInSubscribers(subscribers, subscriber)) {
155
205
  return;
@@ -182,12 +232,7 @@ const triggerEffects = (container, signal, effects) => {
182
232
  let choreType = ChoreType.TASK;
183
233
  effect.$flags$ & TaskFlags.VISIBLE_TASK ? choreType = ChoreType.VISIBLE : effect.$flags$ & TaskFlags.RESOURCE && (choreType = ChoreType.RESOURCE), container.$scheduler$(choreType, effect);
184
234
  } else if (effect instanceof Signal) {
185
- effect instanceof ComputedSignal && (effect.$computeQrl$.resolved || container.$scheduler$(ChoreType.QRL_RESOLVE, null, effect.$computeQrl$));
186
- try {
187
- retryOnPromise(() => effect.$invalidate$());
188
- } catch (e) {
189
- logError(e);
190
- }
235
+ effect instanceof ComputedSignal && (effect.$computeQrl$.resolved || container.$scheduler$(ChoreType.QRL_RESOLVE, null, effect.$computeQrl$)), effect.$invalidate$();
191
236
  } else if (property === EffectProperty.COMPONENT) {
192
237
  const host = effect;
193
238
  const qrl2 = container.getHostProp(host, "q:renderFn");
@@ -196,8 +241,8 @@ const triggerEffects = (container, signal, effects) => {
196
241
  } else if (property === EffectProperty.VNODE) {
197
242
  container.$scheduler$(ChoreType.NODE_DIFF, effect, effect, signal);
198
243
  } else {
199
- let effectData = effectSubscriptions[EffectSubscriptionsProp.FIRST_BACK_REF_OR_DATA];
200
- if (effectData instanceof EffectData) {
244
+ const effectData = effectSubscriptions[EffectSubscriptionsProp.FIRST_BACK_REF_OR_DATA];
245
+ if (effectData instanceof EffectPropData) {
201
246
  const payload = {
202
247
  ...effectData.data,
203
248
  $value$: signal
@@ -214,16 +259,18 @@ class ComputedSignal extends Signal {
214
259
  super(container, NEEDS_COMPUTATION);
215
260
  __publicField(this, "$computeQrl$");
216
261
  __publicField(this, "$invalid$", true);
262
+ __publicField(this, "$forceRunEffects$", false);
217
263
  this.$computeQrl$ = fn;
218
264
  }
219
265
  $invalidate$() {
220
- this.$invalid$ = true, this.$effects$?.length && this.$computeIfNeeded$() && triggerEffects(this.$container$, this, this.$effects$);
266
+ this.$invalid$ = true, this.$forceRunEffects$ = false, this.$container$?.$scheduler$(ChoreType.RECOMPUTE_AND_SCHEDULE_EFFECTS, null, this);
221
267
  }
222
268
  force() {
223
- this.$invalid$ = true, triggerEffects(this.$container$, this, this.$effects$);
269
+ this.$invalid$ = true, this.$forceRunEffects$ = false, triggerEffects(this.$container$, this, this.$effects$);
224
270
  }
225
271
  get untrackedValue() {
226
- return this.$computeIfNeeded$(), assertFalse(this.$untrackedValue$ === NEEDS_COMPUTATION), this.$untrackedValue$;
272
+ const didChange = this.$computeIfNeeded$();
273
+ return didChange && (this.$forceRunEffects$ = didChange), assertFalse(this.$untrackedValue$ === NEEDS_COMPUTATION), this.$untrackedValue$;
227
274
  }
228
275
  $computeIfNeeded$() {
229
276
  if (!this.$invalid$) {
@@ -236,7 +283,10 @@ class ComputedSignal extends Signal {
236
283
  ctx && (ctx.$effectSubscriber$ = [this, EffectProperty.VNODE]);
237
284
  try {
238
285
  const untrackedValue = computeQrl.getFn(ctx)();
239
- isPromise(untrackedValue) && throwErrorAndStop(`useComputedSignal$ QRL ${computeQrl.dev ? `${computeQrl.dev.file} ` : ""}${computeQrl.$hash$} returned a Promise`), this.$invalid$ = false;
286
+ if (isPromise(untrackedValue)) {
287
+ throw qError(QError.computedNotSync, [computeQrl.dev ? computeQrl.dev.file : "", computeQrl.$hash$]);
288
+ }
289
+ this.$invalid$ = false;
240
290
  const didChange = untrackedValue !== this.$untrackedValue$;
241
291
  return didChange && (this.$untrackedValue$ = untrackedValue), didChange;
242
292
  } finally {
@@ -247,7 +297,7 @@ class ComputedSignal extends Signal {
247
297
  return super.value;
248
298
  }
249
299
  set value(_) {
250
- throwErrorAndStop("ComputedSignal is read-only");
300
+ throw qError(QError.computedReadOnly);
251
301
  }
252
302
  }
253
303
  class WrappedSignal extends Signal {
@@ -258,16 +308,19 @@ class WrappedSignal extends Signal {
258
308
  __publicField(this, "$funcStr$");
259
309
  __publicField(this, "$invalid$", true);
260
310
  __publicField(this, "$effectDependencies$", null);
311
+ __publicField(this, "$hostElement$", null);
312
+ __publicField(this, "$forceRunEffects$", false);
261
313
  this.$args$ = args, this.$func$ = fn, this.$funcStr$ = fnStr;
262
314
  }
263
315
  $invalidate$() {
264
- this.$invalid$ = true, this.$effects$?.length && this.$computeIfNeeded$() && triggerEffects(this.$container$, this, this.$effects$);
316
+ this.$invalid$ = true, this.$forceRunEffects$ = false, this.$container$?.$scheduler$(ChoreType.RECOMPUTE_AND_SCHEDULE_EFFECTS, this.$hostElement$, this);
265
317
  }
266
318
  force() {
267
- this.$invalid$ = true, triggerEffects(this.$container$, this, this.$effects$);
319
+ this.$invalid$ = true, this.$forceRunEffects$ = false, triggerEffects(this.$container$, this, this.$effects$);
268
320
  }
269
321
  get untrackedValue() {
270
- return this.$computeIfNeeded$(), assertFalse(this.$untrackedValue$ === NEEDS_COMPUTATION), this.$untrackedValue$;
322
+ const didChange = this.$computeIfNeeded$();
323
+ return didChange && (this.$forceRunEffects$ = didChange), assertFalse(this.$untrackedValue$ === NEEDS_COMPUTATION), this.$untrackedValue$;
271
324
  }
272
325
  $computeIfNeeded$() {
273
326
  if (!this.$invalid$) {
@@ -281,112 +334,9 @@ class WrappedSignal extends Signal {
281
334
  return super.value;
282
335
  }
283
336
  set value(_) {
284
- throwErrorAndStop("WrappedSignal is read-only");
285
- }
286
- }
287
- var TaskFlags;
288
- !function(TaskFlags2) {
289
- TaskFlags2[TaskFlags2.VISIBLE_TASK = 1] = "VISIBLE_TASK", TaskFlags2[TaskFlags2.TASK = 2] = "TASK", TaskFlags2[TaskFlags2.RESOURCE = 4] = "RESOURCE", TaskFlags2[TaskFlags2.DIRTY = 8] = "DIRTY";
290
- }(TaskFlags || (TaskFlags = {}));
291
- class Task extends Subscriber {
292
- constructor($flags$, $index$, $el$, $qrl$, $state$, $destroy$) {
293
- super();
294
- __publicField(this, "$flags$");
295
- __publicField(this, "$index$");
296
- __publicField(this, "$el$");
297
- __publicField(this, "$qrl$");
298
- __publicField(this, "$state$");
299
- __publicField(this, "$destroy$");
300
- this.$flags$ = $flags$, this.$index$ = $index$, this.$el$ = $el$, this.$qrl$ = $qrl$, this.$state$ = $state$, this.$destroy$ = $destroy$;
301
- }
302
- }
303
- const isTask = (value) => value instanceof Task;
304
- const STORE_TARGET = Symbol("store.target");
305
- var StoreFlags;
306
- !function(StoreFlags2) {
307
- StoreFlags2[StoreFlags2.NONE = 0] = "NONE", StoreFlags2[StoreFlags2.RECURSIVE = 1] = "RECURSIVE", StoreFlags2[StoreFlags2.IMMUTABLE = 2] = "IMMUTABLE";
308
- }(StoreFlags || (StoreFlags = {}));
309
- const isStore = (value) => STORE_TARGET in value;
310
- var VNodeFlags;
311
- var VNodeFlagsIndex;
312
- var VNodeProps;
313
- var ElementVNodeProps;
314
- var TextVNodeProps;
315
- var VirtualVNodeProps;
316
- !function(VNodeFlags2) {
317
- VNodeFlags2[VNodeFlags2.Element = 1] = "Element", VNodeFlags2[VNodeFlags2.Virtual = 2] = "Virtual", VNodeFlags2[VNodeFlags2.ELEMENT_OR_VIRTUAL_MASK = 3] = "ELEMENT_OR_VIRTUAL_MASK", VNodeFlags2[VNodeFlags2.ELEMENT_OR_TEXT_MASK = 5] = "ELEMENT_OR_TEXT_MASK", VNodeFlags2[VNodeFlags2.TYPE_MASK = 7] = "TYPE_MASK", VNodeFlags2[VNodeFlags2.INFLATED_TYPE_MASK = 15] = "INFLATED_TYPE_MASK", VNodeFlags2[VNodeFlags2.Text = 4] = "Text", VNodeFlags2[VNodeFlags2.Inflated = 8] = "Inflated", VNodeFlags2[VNodeFlags2.Resolved = 16] = "Resolved", VNodeFlags2[VNodeFlags2.Deleted = 32] = "Deleted", VNodeFlags2[VNodeFlags2.NAMESPACE_MASK = 192] = "NAMESPACE_MASK", VNodeFlags2[VNodeFlags2.NEGATED_NAMESPACE_MASK = -193] = "NEGATED_NAMESPACE_MASK", VNodeFlags2[VNodeFlags2.NS_html = 0] = "NS_html", VNodeFlags2[VNodeFlags2.NS_svg = 64] = "NS_svg", VNodeFlags2[VNodeFlags2.NS_math = 128] = "NS_math";
318
- }(VNodeFlags || (VNodeFlags = {})), function(VNodeFlagsIndex2) {
319
- VNodeFlagsIndex2[VNodeFlagsIndex2.mask = -256] = "mask", VNodeFlagsIndex2[VNodeFlagsIndex2.negated_mask = 255] = "negated_mask", VNodeFlagsIndex2[VNodeFlagsIndex2.shift = 8] = "shift";
320
- }(VNodeFlagsIndex || (VNodeFlagsIndex = {})), function(VNodeProps2) {
321
- VNodeProps2[VNodeProps2.flags = 0] = "flags", VNodeProps2[VNodeProps2.parent = 1] = "parent", VNodeProps2[VNodeProps2.previousSibling = 2] = "previousSibling", VNodeProps2[VNodeProps2.nextSibling = 3] = "nextSibling";
322
- }(VNodeProps || (VNodeProps = {})), function(ElementVNodeProps2) {
323
- ElementVNodeProps2[ElementVNodeProps2.firstChild = 4] = "firstChild", ElementVNodeProps2[ElementVNodeProps2.lastChild = 5] = "lastChild", ElementVNodeProps2[ElementVNodeProps2.element = 6] = "element", ElementVNodeProps2[ElementVNodeProps2.elementName = 7] = "elementName", ElementVNodeProps2[ElementVNodeProps2.PROPS_OFFSET = 8] = "PROPS_OFFSET";
324
- }(ElementVNodeProps || (ElementVNodeProps = {})), function(TextVNodeProps2) {
325
- TextVNodeProps2[TextVNodeProps2.node = 4] = "node", TextVNodeProps2[TextVNodeProps2.text = 5] = "text";
326
- }(TextVNodeProps || (TextVNodeProps = {})), function(VirtualVNodeProps2) {
327
- VirtualVNodeProps2[VirtualVNodeProps2.firstChild = 4] = "firstChild", VirtualVNodeProps2[VirtualVNodeProps2.lastChild = 5] = "lastChild", VirtualVNodeProps2[VirtualVNodeProps2.PROPS_OFFSET = 6] = "PROPS_OFFSET";
328
- }(VirtualVNodeProps || (VirtualVNodeProps = {}));
329
- var SiblingsArray;
330
- var ChoreType;
331
- !function(SiblingsArray2) {
332
- SiblingsArray2[SiblingsArray2.Name = 0] = "Name", SiblingsArray2[SiblingsArray2.Key = 1] = "Key", SiblingsArray2[SiblingsArray2.VNode = 2] = "VNode", SiblingsArray2[SiblingsArray2.Size = 3] = "Size", SiblingsArray2[SiblingsArray2.NextVNode = 5] = "NextVNode";
333
- }(SiblingsArray || (SiblingsArray = {})), function(ChoreType2) {
334
- ChoreType2[ChoreType2.MACRO = 112] = "MACRO", ChoreType2[ChoreType2.MICRO = 15] = "MICRO", ChoreType2[ChoreType2.QRL_RESOLVE = 1] = "QRL_RESOLVE", ChoreType2[ChoreType2.RESOURCE = 2] = "RESOURCE", ChoreType2[ChoreType2.TASK = 3] = "TASK", ChoreType2[ChoreType2.NODE_DIFF = 4] = "NODE_DIFF", ChoreType2[ChoreType2.NODE_PROP = 5] = "NODE_PROP", ChoreType2[ChoreType2.COMPONENT_SSR = 6] = "COMPONENT_SSR", ChoreType2[ChoreType2.COMPONENT = 7] = "COMPONENT", ChoreType2[ChoreType2.WAIT_FOR_COMPONENTS = 16] = "WAIT_FOR_COMPONENTS", ChoreType2[ChoreType2.JOURNAL_FLUSH = 48] = "JOURNAL_FLUSH", ChoreType2[ChoreType2.VISIBLE = 64] = "VISIBLE", ChoreType2[ChoreType2.CLEANUP_VISIBLE = 80] = "CLEANUP_VISIBLE", ChoreType2[ChoreType2.WAIT_FOR_ALL = 127] = "WAIT_FOR_ALL";
335
- }(ChoreType || (ChoreType = {}));
336
- let _context;
337
- const tryGetInvokeContext = () => {
338
- if (!_context) {
339
- const context = "undefined" != typeof document && document && document.__q_context__;
340
- if (!context) {
341
- return;
342
- }
343
- return isArray(context) ? document.__q_context__ = newInvokeContextFromTuple(context) : context;
337
+ throw qError(QError.wrappedReadOnly);
344
338
  }
345
- return _context;
346
- };
347
- function invoke(context, fn, ...args) {
348
- return invokeApply.call(this, context, fn, args);
349
339
  }
350
- function invokeApply(context, fn, args) {
351
- const previousContext = _context;
352
- let returnValue;
353
- try {
354
- _context = context, returnValue = fn.apply(this, args);
355
- } finally {
356
- _context = previousContext;
357
- }
358
- return returnValue;
359
- }
360
- const newInvokeContextFromTuple = ([element, event, url]) => {
361
- const container = element.closest(QContainerSelector);
362
- const locale = container?.getAttribute("q:locale") || void 0;
363
- return newInvokeContext(locale, void 0, element, event, url);
364
- };
365
- const newInvokeContext = (locale, hostElement, element, event, url) => {
366
- const ctx = {
367
- $url$: url,
368
- $i$: 0,
369
- $hostElement$: hostElement,
370
- $element$: element,
371
- $event$: event,
372
- $qrl$: void 0,
373
- $effectSubscriber$: void 0,
374
- $locale$: locale || ("object" == typeof event && event && "locale" in event ? event.locale : void 0),
375
- $container$: void 0
376
- };
377
- return ctx;
378
- };
379
- const untrack = (fn) => invoke(void 0, fn);
380
- const trackInvocation = /* @__PURE__ */ newInvokeContext(void 0, void 0, void 0, "qRender");
381
- const trackSignal = (fn, subscriber, property, container, data) => {
382
- const previousSubscriber = trackInvocation.$effectSubscriber$;
383
- const previousContainer = trackInvocation.$container$;
384
- try {
385
- return trackInvocation.$effectSubscriber$ = [subscriber, property], data && trackInvocation.$effectSubscriber$.push(data), trackInvocation.$container$ = container, invoke(trackInvocation, fn);
386
- } finally {
387
- trackInvocation.$effectSubscriber$ = previousSubscriber, trackInvocation.$container$ = previousContainer;
388
- }
389
- };
390
340
  const _CONST_PROPS = Symbol("CONST");
391
341
  const _VAR_PROPS = Symbol("VAR");
392
342
  const _jsxSorted = (type, varProps, constProps, children, flags, key) => {
@@ -539,8 +489,8 @@ var VNodeJournalOpCode;
539
489
  VNodeJournalOpCode2[VNodeJournalOpCode2.SetText = 1] = "SetText", VNodeJournalOpCode2[VNodeJournalOpCode2.SetAttribute = 2] = "SetAttribute", VNodeJournalOpCode2[VNodeJournalOpCode2.HoistStyles = 3] = "HoistStyles", VNodeJournalOpCode2[VNodeJournalOpCode2.Remove = 4] = "Remove", VNodeJournalOpCode2[VNodeJournalOpCode2.Insert = 5] = "Insert";
540
490
  }(VNodeJournalOpCode || (VNodeJournalOpCode = {}));
541
491
  const vnode_isVNode = (vNode) => vNode instanceof VNodeArray;
542
- const vnode_isVirtualVNode = (vNode) => {
543
- return (vNode[VNodeProps.flags] & VNodeFlags.Virtual) === VNodeFlags.Virtual;
492
+ const vnode_isTextVNode = (vNode) => {
493
+ return (vNode[VNodeProps.flags] & VNodeFlags.Text) === VNodeFlags.Text;
544
494
  };
545
495
  const ensureElementOrVirtualVNode = (vNode) => {
546
496
  assertTrue(!!(vNode[VNodeProps.flags] & VNodeFlags.ELEMENT_OR_VIRTUAL_MASK), "Expecting ElementVNode or VirtualVNode was: " + vnode_getNodeTypeName(vNode));
@@ -620,7 +570,7 @@ const vnode_getPropStartIndex = (vnode) => {
620
570
  if (type === VNodeFlags.Virtual) {
621
571
  return VirtualVNodeProps.PROPS_OFFSET;
622
572
  }
623
- throw throwErrorAndStop("Invalid vnode type.");
573
+ throw qError(QError.invalidVNodeType, [type]);
624
574
  };
625
575
  const VNodeArray = class VNode extends Array {
626
576
  static createElement(flags, parent, previousSibling, nextSibling, firstChild, lastChild, element, elementName) {
@@ -639,13 +589,60 @@ const VNodeArray = class VNode extends Array {
639
589
  super(), this.push(flags, parent, previousSibling, nextSibling);
640
590
  }
641
591
  };
642
- var ExperimentalFeatures;
643
- var VNodeDataFlag;
644
- !function(ExperimentalFeatures2) {
645
- ExperimentalFeatures2.preventNavigate = "preventNavigate", ExperimentalFeatures2.valibot = "valibot", ExperimentalFeatures2.noSPA = "noSPA", ExperimentalFeatures2.webWorker = "webWorker", ExperimentalFeatures2.insights = "insights";
646
- }(ExperimentalFeatures || (ExperimentalFeatures = {})), function(VNodeDataFlag2) {
647
- VNodeDataFlag2[VNodeDataFlag2.NONE = 0] = "NONE", VNodeDataFlag2[VNodeDataFlag2.TEXT_DATA = 1] = "TEXT_DATA", VNodeDataFlag2[VNodeDataFlag2.VIRTUAL_NODE = 2] = "VIRTUAL_NODE", VNodeDataFlag2[VNodeDataFlag2.REFERENCE = 4] = "REFERENCE", VNodeDataFlag2[VNodeDataFlag2.SERIALIZE = 8] = "SERIALIZE";
648
- }(VNodeDataFlag || (VNodeDataFlag = {}));
592
+ let _context;
593
+ const tryGetInvokeContext = () => {
594
+ if (!_context) {
595
+ const context = "undefined" != typeof document && document && document.__q_context__;
596
+ if (!context) {
597
+ return;
598
+ }
599
+ return isArray(context) ? document.__q_context__ = newInvokeContextFromTuple(context) : context;
600
+ }
601
+ return _context;
602
+ };
603
+ function invoke(context, fn, ...args) {
604
+ return invokeApply.call(this, context, fn, args);
605
+ }
606
+ function invokeApply(context, fn, args) {
607
+ const previousContext = _context;
608
+ let returnValue;
609
+ try {
610
+ _context = context, returnValue = fn.apply(this, args);
611
+ } finally {
612
+ _context = previousContext;
613
+ }
614
+ return returnValue;
615
+ }
616
+ const newInvokeContextFromTuple = ([element, event, url]) => {
617
+ const container = element.closest(QContainerSelector);
618
+ const locale = container?.getAttribute("q:locale") || void 0;
619
+ return newInvokeContext(locale, void 0, element, event, url);
620
+ };
621
+ const newInvokeContext = (locale, hostElement, element, event, url) => {
622
+ const ctx = {
623
+ $url$: url,
624
+ $i$: 0,
625
+ $hostElement$: hostElement,
626
+ $element$: element,
627
+ $event$: event,
628
+ $qrl$: void 0,
629
+ $effectSubscriber$: void 0,
630
+ $locale$: locale || ("object" == typeof event && event && "locale" in event ? event.locale : void 0),
631
+ $container$: void 0
632
+ };
633
+ return ctx;
634
+ };
635
+ const untrack = (fn) => invoke(void 0, fn);
636
+ const trackInvocation = /* @__PURE__ */ newInvokeContext(void 0, void 0, void 0, "qRender");
637
+ const trackSignal = (fn, subscriber, property, container, data) => {
638
+ const previousSubscriber = trackInvocation.$effectSubscriber$;
639
+ const previousContainer = trackInvocation.$container$;
640
+ try {
641
+ return trackInvocation.$effectSubscriber$ = [subscriber, property], data && trackInvocation.$effectSubscriber$.push(data), trackInvocation.$container$ = container, invoke(trackInvocation, fn);
642
+ } finally {
643
+ trackInvocation.$effectSubscriber$ = previousSubscriber, trackInvocation.$container$ = previousContainer;
644
+ }
645
+ };
649
646
  var TypeIds;
650
647
  var Constants;
651
648
  !function(TypeIds2) {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@qwik.dev/core/loader",
3
- "version": "2.0.0-alpha.3-dev+418fd6d",
3
+ "version": "2.0.0-alpha.5-dev+cb53bbd",
4
4
  "main": "index.mjs",
5
5
  "types": "index.d.ts",
6
6
  "private": true,