@qwik.dev/core 2.0.0-beta.3 → 2.0.0-beta.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.
- package/bindings/qwik.darwin-arm64.node +0 -0
- package/bindings/qwik.darwin-x64.node +0 -0
- package/bindings/qwik.linux-x64-gnu.node +0 -0
- package/bindings/qwik.win32-x64-msvc.node +0 -0
- package/bindings/qwik_wasm_bg.wasm +0 -0
- package/dist/build/package.json +1 -1
- package/dist/cli.cjs +2 -2
- package/dist/core-internal.d.ts +111 -28
- package/dist/core.cjs +224 -154
- package/dist/core.cjs.map +1 -1
- package/dist/core.min.mjs +1 -1
- package/dist/core.mjs +219 -153
- package/dist/core.mjs.map +1 -1
- package/dist/core.prod.cjs +154 -92
- package/dist/core.prod.mjs +162 -97
- package/dist/loader/package.json +1 -1
- package/dist/optimizer.cjs +2 -2
- package/dist/optimizer.mjs +2 -2
- package/dist/server.cjs +15 -12
- package/dist/server.mjs +15 -12
- package/dist/testing/index.cjs +159 -102
- package/dist/testing/index.mjs +158 -102
- package/dist/testing/package.json +1 -1
- package/package.json +2 -2
- package/public.d.ts +1 -0
package/dist/testing/index.mjs
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @license
|
|
3
|
-
* @qwik.dev/core/testing 2.0.0-beta.
|
|
3
|
+
* @qwik.dev/core/testing 2.0.0-beta.5-dev+8887f7e
|
|
4
4
|
* Copyright QwikDev. All Rights Reserved.
|
|
5
5
|
* Use of this source code is governed by an MIT-style license that can be
|
|
6
6
|
* found in the LICENSE file at https://github.com/QwikDev/qwik/blob/main/LICENSE
|
|
@@ -22227,6 +22227,24 @@ function assertNumber(value1, text, ...parts) {
|
|
|
22227
22227
|
}
|
|
22228
22228
|
}
|
|
22229
22229
|
|
|
22230
|
+
// packages/qwik/src/core/shared/utils/types.ts
|
|
22231
|
+
var isSerializableObject = (v) => {
|
|
22232
|
+
const proto = Object.getPrototypeOf(v);
|
|
22233
|
+
return proto === Object.prototype || proto === Array.prototype || proto === null;
|
|
22234
|
+
};
|
|
22235
|
+
var isObject = (v) => {
|
|
22236
|
+
return typeof v === "object" && v !== null;
|
|
22237
|
+
};
|
|
22238
|
+
var isArray = (v) => {
|
|
22239
|
+
return Array.isArray(v);
|
|
22240
|
+
};
|
|
22241
|
+
var isString = (v) => {
|
|
22242
|
+
return typeof v === "string";
|
|
22243
|
+
};
|
|
22244
|
+
var isFunction = (v) => {
|
|
22245
|
+
return typeof v === "function";
|
|
22246
|
+
};
|
|
22247
|
+
|
|
22230
22248
|
// packages/qwik/src/core/shared/error/error.ts
|
|
22231
22249
|
var codeToText = (code2, ...parts) => {
|
|
22232
22250
|
if (qDev) {
|
|
@@ -22307,7 +22325,7 @@ See https://qwik.dev/docs/components/tasks/#use-method-rules`,
|
|
|
22307
22325
|
if (parts.length) {
|
|
22308
22326
|
text = text.replaceAll(/{{(\d+)}}/g, (_, index) => {
|
|
22309
22327
|
let v = parts[index];
|
|
22310
|
-
if (v &&
|
|
22328
|
+
if (v && isObject(v) && v.constructor === Object) {
|
|
22311
22329
|
v = JSON.stringify(v).slice(0, 50);
|
|
22312
22330
|
}
|
|
22313
22331
|
return v;
|
|
@@ -22379,24 +22397,6 @@ function retryOnPromise(fn, retryCount = 0) {
|
|
|
22379
22397
|
}
|
|
22380
22398
|
}
|
|
22381
22399
|
|
|
22382
|
-
// packages/qwik/src/core/shared/utils/types.ts
|
|
22383
|
-
var isSerializableObject = (v) => {
|
|
22384
|
-
const proto = Object.getPrototypeOf(v);
|
|
22385
|
-
return proto === Object.prototype || proto === Array.prototype || proto === null;
|
|
22386
|
-
};
|
|
22387
|
-
var isObject = (v) => {
|
|
22388
|
-
return !!v && typeof v === "object";
|
|
22389
|
-
};
|
|
22390
|
-
var isArray = (v) => {
|
|
22391
|
-
return Array.isArray(v);
|
|
22392
|
-
};
|
|
22393
|
-
var isString = (v) => {
|
|
22394
|
-
return typeof v === "string";
|
|
22395
|
-
};
|
|
22396
|
-
var isFunction = (v) => {
|
|
22397
|
-
return typeof v === "function";
|
|
22398
|
-
};
|
|
22399
|
-
|
|
22400
22400
|
// packages/qwik/src/build/index.dev.ts
|
|
22401
22401
|
var isDev2 = true;
|
|
22402
22402
|
|
|
@@ -22605,7 +22605,7 @@ var WrappedSignalImpl = class extends (_b = SignalImpl, _a = _EFFECT_BACK_REF, _
|
|
|
22605
22605
|
this.$funcStr$ = fnStr;
|
|
22606
22606
|
this.$flags$ = flags;
|
|
22607
22607
|
}
|
|
22608
|
-
|
|
22608
|
+
invalidate() {
|
|
22609
22609
|
this.$flags$ |= 1 /* INVALID */;
|
|
22610
22610
|
this.$forceRunEffects$ = false;
|
|
22611
22611
|
this.$container$?.$scheduler$(
|
|
@@ -22620,9 +22620,13 @@ var WrappedSignalImpl = class extends (_b = SignalImpl, _a = _EFFECT_BACK_REF, _
|
|
|
22620
22620
|
* remained the same object.
|
|
22621
22621
|
*/
|
|
22622
22622
|
force() {
|
|
22623
|
-
this.$
|
|
22624
|
-
this.$
|
|
22625
|
-
|
|
22623
|
+
this.$forceRunEffects$ = true;
|
|
22624
|
+
this.$container$?.$scheduler$(
|
|
22625
|
+
7 /* RECOMPUTE_AND_SCHEDULE_EFFECTS */,
|
|
22626
|
+
this.$hostElement$,
|
|
22627
|
+
this,
|
|
22628
|
+
this.$effects$
|
|
22629
|
+
);
|
|
22626
22630
|
}
|
|
22627
22631
|
get untrackedValue() {
|
|
22628
22632
|
const didChange = this.$computeIfNeeded$();
|
|
@@ -22729,7 +22733,7 @@ var newInvokeContextFromTuple = ([element, event, url]) => {
|
|
|
22729
22733
|
return newInvokeContext(locale, hostElement, element, event, url);
|
|
22730
22734
|
};
|
|
22731
22735
|
var newInvokeContext = (locale, hostElement, element, event, url) => {
|
|
22732
|
-
const $locale$ = locale || (
|
|
22736
|
+
const $locale$ = locale || (event && isObject(event) && "locale" in event ? event.locale : void 0);
|
|
22733
22737
|
const ctx = {
|
|
22734
22738
|
$url$: url,
|
|
22735
22739
|
$i$: 0,
|
|
@@ -22848,7 +22852,7 @@ var StoreHandler = class {
|
|
|
22848
22852
|
return this.toString;
|
|
22849
22853
|
}
|
|
22850
22854
|
const flags = this.$flags$;
|
|
22851
|
-
if (flags & 1 /* RECURSIVE */ &&
|
|
22855
|
+
if (flags & 1 /* RECURSIVE */ && isObject(value) && !Object.isFrozen(value) && !isStore(value) && !Object.isFrozen(target)) {
|
|
22852
22856
|
return getOrCreateStore(value, this.$flags$, this.$container$);
|
|
22853
22857
|
}
|
|
22854
22858
|
return value;
|
|
@@ -23266,6 +23270,7 @@ var inlinedQrl = (symbol, symbolName, lexicalScopeCapture = EMPTY_ARRAY) => {
|
|
|
23266
23270
|
var _CONST_PROPS = Symbol("CONST");
|
|
23267
23271
|
var _VAR_PROPS = Symbol("VAR");
|
|
23268
23272
|
var _IMMUTABLE = Symbol("IMMUTABLE");
|
|
23273
|
+
var _UNINITIALIZED = Symbol("UNINITIALIZED");
|
|
23269
23274
|
|
|
23270
23275
|
// packages/qwik/src/core/shared/qrl/qrl.public.ts
|
|
23271
23276
|
var runtimeSymbolId = 0;
|
|
@@ -23291,7 +23296,7 @@ var DEBUG3 = false;
|
|
|
23291
23296
|
var log3 = (...args) => console.log("COMPUTED SIGNAL", ...args.map(qwikDebugToString));
|
|
23292
23297
|
var _a2, _b2;
|
|
23293
23298
|
var ComputedSignalImpl = class extends (_b2 = SignalImpl, _a2 = _EFFECT_BACK_REF, _b2) {
|
|
23294
|
-
constructor(container, fn, flags = 1 /* INVALID */) {
|
|
23299
|
+
constructor(container, fn, flags = 1 /* INVALID */ | 16 /* SERIALIZATION_STRATEGY_ALWAYS */) {
|
|
23295
23300
|
super(container, NEEDS_COMPUTATION);
|
|
23296
23301
|
/**
|
|
23297
23302
|
* The compute function is stored here.
|
|
@@ -23306,7 +23311,7 @@ var ComputedSignalImpl = class extends (_b2 = SignalImpl, _a2 = _EFFECT_BACK_REF
|
|
|
23306
23311
|
this.$computeQrl$ = fn;
|
|
23307
23312
|
this.$flags$ = flags;
|
|
23308
23313
|
}
|
|
23309
|
-
|
|
23314
|
+
invalidate() {
|
|
23310
23315
|
this.$flags$ |= 1 /* INVALID */;
|
|
23311
23316
|
this.$forceRunEffects$ = false;
|
|
23312
23317
|
this.$container$?.$scheduler$(
|
|
@@ -23382,7 +23387,11 @@ var DEBUG4 = false;
|
|
|
23382
23387
|
var log4 = (...args) => console.log("SERIALIZER SIGNAL", ...args.map(qwikDebugToString));
|
|
23383
23388
|
var SerializerSignalImpl = class extends ComputedSignalImpl {
|
|
23384
23389
|
constructor(container, argQrl) {
|
|
23385
|
-
super(
|
|
23390
|
+
super(
|
|
23391
|
+
container,
|
|
23392
|
+
argQrl,
|
|
23393
|
+
1 /* INVALID */ | 16 /* SERIALIZATION_STRATEGY_ALWAYS */
|
|
23394
|
+
);
|
|
23386
23395
|
__publicField(this, "$didInitialize$", false);
|
|
23387
23396
|
}
|
|
23388
23397
|
$computeIfNeeded$() {
|
|
@@ -23398,7 +23407,7 @@ var SerializerSignalImpl = class extends ComputedSignalImpl {
|
|
|
23398
23407
|
const update = arg.update;
|
|
23399
23408
|
const currentValue = this.$untrackedValue$ === NEEDS_COMPUTATION ? initial : this.$untrackedValue$;
|
|
23400
23409
|
const untrackedValue = trackSignal(
|
|
23401
|
-
() => this.$didInitialize$ ? update?.(currentValue) : deserialize(currentValue),
|
|
23410
|
+
() => this.$didInitialize$ ? update?.(currentValue) || currentValue : deserialize(currentValue),
|
|
23402
23411
|
this,
|
|
23403
23412
|
"." /* VNODE */,
|
|
23404
23413
|
this.$container$
|
|
@@ -23478,7 +23487,7 @@ var AsyncComputedSignalImpl = class extends (_b3 = ComputedSignalImpl, _a3 = _EF
|
|
|
23478
23487
|
__publicField(this, "$loadingEffects$", null);
|
|
23479
23488
|
__publicField(this, "$errorEffects$", null);
|
|
23480
23489
|
__publicField(this, "$destroy$");
|
|
23481
|
-
__publicField(this, "$promiseValue$",
|
|
23490
|
+
__publicField(this, "$promiseValue$", NEEDS_COMPUTATION);
|
|
23482
23491
|
__publicField(this, _a3, null);
|
|
23483
23492
|
}
|
|
23484
23493
|
/**
|
|
@@ -23528,6 +23537,10 @@ var AsyncComputedSignalImpl = class extends (_b3 = ComputedSignalImpl, _a3 = _EF
|
|
|
23528
23537
|
get untrackedError() {
|
|
23529
23538
|
return this.$untrackedError$;
|
|
23530
23539
|
}
|
|
23540
|
+
invalidate() {
|
|
23541
|
+
super.invalidate();
|
|
23542
|
+
this.$promiseValue$ = NEEDS_COMPUTATION;
|
|
23543
|
+
}
|
|
23531
23544
|
$computeIfNeeded$() {
|
|
23532
23545
|
if (!(this.$flags$ & 1 /* INVALID */)) {
|
|
23533
23546
|
return false;
|
|
@@ -23535,10 +23548,10 @@ var AsyncComputedSignalImpl = class extends (_b3 = ComputedSignalImpl, _a3 = _EF
|
|
|
23535
23548
|
const computeQrl = this.$computeQrl$;
|
|
23536
23549
|
throwIfQRLNotResolved(computeQrl);
|
|
23537
23550
|
const [cleanup2] = cleanupFn(this, (err) => this.$container$?.handleError(err, null));
|
|
23538
|
-
const untrackedValue = this.$promiseValue$
|
|
23551
|
+
const untrackedValue = this.$promiseValue$ === NEEDS_COMPUTATION ? computeQrl.getFn()({
|
|
23539
23552
|
track: trackFn(this, this.$container$),
|
|
23540
23553
|
cleanup: cleanup2
|
|
23541
|
-
})
|
|
23554
|
+
}) : this.$promiseValue$;
|
|
23542
23555
|
if (isPromise(untrackedValue)) {
|
|
23543
23556
|
this.untrackedLoading = true;
|
|
23544
23557
|
this.untrackedError = null;
|
|
@@ -23547,11 +23560,12 @@ var AsyncComputedSignalImpl = class extends (_b3 = ComputedSignalImpl, _a3 = _EF
|
|
|
23547
23560
|
this.untrackedLoading = false;
|
|
23548
23561
|
this.untrackedError = null;
|
|
23549
23562
|
}).catch((err) => {
|
|
23563
|
+
this.$promiseValue$ = err;
|
|
23550
23564
|
this.untrackedLoading = false;
|
|
23551
23565
|
this.untrackedError = err;
|
|
23552
23566
|
});
|
|
23553
23567
|
}
|
|
23554
|
-
this.$promiseValue$ =
|
|
23568
|
+
this.$promiseValue$ = NEEDS_COMPUTATION;
|
|
23555
23569
|
DEBUG5 && log5("Signal.$asyncCompute$", untrackedValue);
|
|
23556
23570
|
this.$flags$ &= ~1 /* INVALID */;
|
|
23557
23571
|
const didChange = untrackedValue !== this.$untrackedValue$;
|
|
@@ -23564,7 +23578,6 @@ var AsyncComputedSignalImpl = class extends (_b3 = ComputedSignalImpl, _a3 = _EF
|
|
|
23564
23578
|
|
|
23565
23579
|
// packages/qwik/src/core/reactive-primitives/signal-api.ts
|
|
23566
23580
|
var createSerializerSignal = (arg) => {
|
|
23567
|
-
throwIfQRLNotResolved(arg);
|
|
23568
23581
|
return new SerializerSignalImpl(null, arg);
|
|
23569
23582
|
};
|
|
23570
23583
|
|
|
@@ -24148,9 +24161,12 @@ var executeComponent = (container, renderHost, subscriptionHost, componentQRL, p
|
|
|
24148
24161
|
(err) => {
|
|
24149
24162
|
if (isPromise(err) && retryCount < MAX_RETRY_ON_PROMISE_COUNT) {
|
|
24150
24163
|
return err.then(
|
|
24151
|
-
() => executeComponentWithPromiseExceptionRetry(retryCount
|
|
24164
|
+
() => executeComponentWithPromiseExceptionRetry(++retryCount)
|
|
24152
24165
|
);
|
|
24153
24166
|
} else {
|
|
24167
|
+
if (retryCount >= MAX_RETRY_ON_PROMISE_COUNT) {
|
|
24168
|
+
throw new Error(`Max retry count of component execution reached`);
|
|
24169
|
+
}
|
|
24154
24170
|
throw err;
|
|
24155
24171
|
}
|
|
24156
24172
|
}
|
|
@@ -25704,7 +25720,7 @@ var createScheduler = (container, scheduleDrain, journalFlush) => {
|
|
|
25704
25720
|
if (target instanceof ComputedSignalImpl || target instanceof WrappedSignalImpl) {
|
|
25705
25721
|
const forceRunEffects = target.$forceRunEffects$;
|
|
25706
25722
|
target.$forceRunEffects$ = false;
|
|
25707
|
-
if (!effects?.size) {
|
|
25723
|
+
if (!effects?.size && !forceRunEffects) {
|
|
25708
25724
|
break;
|
|
25709
25725
|
}
|
|
25710
25726
|
returnValue = maybeThen(
|
|
@@ -26201,7 +26217,7 @@ var ignoreErrorToPreventNodeFromCrashing = (err) => {
|
|
|
26201
26217
|
// packages/qwik/src/core/shared/shared-serialization.ts
|
|
26202
26218
|
var deserializedProxyMap = /* @__PURE__ */ new WeakMap();
|
|
26203
26219
|
var isDeserializerProxy = (value) => {
|
|
26204
|
-
return
|
|
26220
|
+
return isObject(value) && SERIALIZER_PROXY_UNWRAP in value;
|
|
26205
26221
|
};
|
|
26206
26222
|
var SERIALIZER_PROXY_UNWRAP = Symbol("UNWRAP");
|
|
26207
26223
|
var wrapDeserializerProxy = (container, data) => {
|
|
@@ -26390,9 +26406,8 @@ var inflate = (container, target, typeId, data) => {
|
|
|
26390
26406
|
const hasValue = d.length > 6;
|
|
26391
26407
|
if (hasValue) {
|
|
26392
26408
|
asyncComputed.$untrackedValue$ = d[6];
|
|
26393
|
-
} else {
|
|
26394
|
-
asyncComputed.$flags$ |= 1 /* INVALID */;
|
|
26395
26409
|
}
|
|
26410
|
+
asyncComputed.$flags$ |= 1 /* INVALID */;
|
|
26396
26411
|
break;
|
|
26397
26412
|
}
|
|
26398
26413
|
// Inflating a SerializerSignal is the same as inflating a ComputedSignal
|
|
@@ -26486,7 +26501,7 @@ var inflate = (container, target, typeId, data) => {
|
|
|
26486
26501
|
propsProxy[_VAR_PROPS] = data === 0 ? {} : data[0];
|
|
26487
26502
|
propsProxy[_CONST_PROPS] = data[1];
|
|
26488
26503
|
break;
|
|
26489
|
-
case 35 /*
|
|
26504
|
+
case 35 /* SubscriptionData */: {
|
|
26490
26505
|
const effectData = target;
|
|
26491
26506
|
effectData.data.$scopedStyleIdPrefix$ = data[0];
|
|
26492
26507
|
effectData.data.$isConst$ = data[1];
|
|
@@ -26507,6 +26522,7 @@ var _constants = [
|
|
|
26507
26522
|
EMPTY_OBJ,
|
|
26508
26523
|
NEEDS_COMPUTATION,
|
|
26509
26524
|
STORE_ALL_PROPS,
|
|
26525
|
+
_UNINITIALIZED,
|
|
26510
26526
|
Slot,
|
|
26511
26527
|
Fragment,
|
|
26512
26528
|
NaN,
|
|
@@ -26526,6 +26542,7 @@ var _constantNames = [
|
|
|
26526
26542
|
"EMPTY_OBJ",
|
|
26527
26543
|
"NEEDS_COMPUTATION",
|
|
26528
26544
|
"STORE_ALL_PROPS",
|
|
26545
|
+
"_UNINITIALIZED",
|
|
26529
26546
|
"Slot",
|
|
26530
26547
|
"Fragment",
|
|
26531
26548
|
"NaN",
|
|
@@ -26546,7 +26563,12 @@ var allocate = (container, typeId, value) => {
|
|
|
26546
26563
|
if (!container.$forwardRefs$) {
|
|
26547
26564
|
throw qError(18 /* serializeErrorCannotAllocate */, ["forward ref"]);
|
|
26548
26565
|
}
|
|
26549
|
-
|
|
26566
|
+
const rootRef = container.$forwardRefs$[value];
|
|
26567
|
+
if (rootRef === -1) {
|
|
26568
|
+
return _UNINITIALIZED;
|
|
26569
|
+
} else {
|
|
26570
|
+
return container.$getObjectById$(rootRef);
|
|
26571
|
+
}
|
|
26550
26572
|
case 2 /* ForwardRefs */:
|
|
26551
26573
|
return value;
|
|
26552
26574
|
case 3 /* Constant */:
|
|
@@ -26642,7 +26664,7 @@ var allocate = (container, typeId, value) => {
|
|
|
26642
26664
|
} else {
|
|
26643
26665
|
throw qError(17 /* serializeErrorExpectedVNode */, [typeof vNode]);
|
|
26644
26666
|
}
|
|
26645
|
-
case 35 /*
|
|
26667
|
+
case 35 /* SubscriptionData */:
|
|
26646
26668
|
return new SubscriptionData({});
|
|
26647
26669
|
default:
|
|
26648
26670
|
throw qError(18 /* serializeErrorCannotAllocate */, [typeId]);
|
|
@@ -26684,7 +26706,7 @@ var createSerializationContext = (NodeConstructor, DomRefConstructor, symbolToCh
|
|
|
26684
26706
|
};
|
|
26685
26707
|
}
|
|
26686
26708
|
const seenObjsMap = /* @__PURE__ */ new Map();
|
|
26687
|
-
const
|
|
26709
|
+
const objectPathStringCache = /* @__PURE__ */ new Map();
|
|
26688
26710
|
const syncFnMap = /* @__PURE__ */ new Map();
|
|
26689
26711
|
const syncFns = [];
|
|
26690
26712
|
const roots = [];
|
|
@@ -26693,7 +26715,7 @@ var createSerializationContext = (NodeConstructor, DomRefConstructor, symbolToCh
|
|
|
26693
26715
|
return seenObjsMap.set(obj, { $parent$: parent, $index$: index, $rootIndex$: -1 });
|
|
26694
26716
|
};
|
|
26695
26717
|
const $addRootPath$ = (obj) => {
|
|
26696
|
-
const rootPath =
|
|
26718
|
+
const rootPath = objectPathStringCache.get(obj);
|
|
26697
26719
|
if (rootPath) {
|
|
26698
26720
|
return rootPath;
|
|
26699
26721
|
}
|
|
@@ -26711,7 +26733,7 @@ var createSerializationContext = (NodeConstructor, DomRefConstructor, symbolToCh
|
|
|
26711
26733
|
current = seenObjsMap.get(current.$parent$);
|
|
26712
26734
|
}
|
|
26713
26735
|
const pathStr = path.length > 1 ? path.join(" ") : path.length ? path[0] : seen.$index$;
|
|
26714
|
-
|
|
26736
|
+
objectPathStringCache.set(obj, pathStr);
|
|
26715
26737
|
return pathStr;
|
|
26716
26738
|
};
|
|
26717
26739
|
const $addRoot$ = (obj, parent = null) => {
|
|
@@ -26776,7 +26798,7 @@ var createSerializationContext = (NodeConstructor, DomRefConstructor, symbolToCh
|
|
|
26776
26798
|
$storeProxyMap$: storeProxyMap,
|
|
26777
26799
|
$getProp$: getProp,
|
|
26778
26800
|
$setProp$: setProp,
|
|
26779
|
-
$
|
|
26801
|
+
$objectPathStringCache$: objectPathStringCache
|
|
26780
26802
|
};
|
|
26781
26803
|
};
|
|
26782
26804
|
function $discoverRoots$(serializationContext, obj, parent, index) {
|
|
@@ -26798,7 +26820,7 @@ var discoverValuesForVNodeData = (vnodeData, callback) => {
|
|
|
26798
26820
|
for (let i = 1; i < value.length; i += 2) {
|
|
26799
26821
|
const keyValue = value[i - 1];
|
|
26800
26822
|
const attrValue = value[i];
|
|
26801
|
-
if (typeof attrValue === "string" || // skip empty props
|
|
26823
|
+
if (attrValue == null || typeof attrValue === "string" || // skip empty props
|
|
26802
26824
|
keyValue === ELEMENT_PROPS && Object.keys(attrValue).length === 0) {
|
|
26803
26825
|
continue;
|
|
26804
26826
|
}
|
|
@@ -26816,13 +26838,28 @@ var PromiseResult = class {
|
|
|
26816
26838
|
this.$qrl$ = $qrl$;
|
|
26817
26839
|
}
|
|
26818
26840
|
};
|
|
26841
|
+
var SerializationWeakRef = class {
|
|
26842
|
+
constructor($obj$) {
|
|
26843
|
+
this.$obj$ = $obj$;
|
|
26844
|
+
}
|
|
26845
|
+
};
|
|
26819
26846
|
async function serialize(serializationContext) {
|
|
26820
|
-
const {
|
|
26847
|
+
const {
|
|
26848
|
+
$writer$,
|
|
26849
|
+
$isSsrNode$,
|
|
26850
|
+
$isDomRef$,
|
|
26851
|
+
$storeProxyMap$,
|
|
26852
|
+
$addRoot$,
|
|
26853
|
+
$objectPathStringCache$,
|
|
26854
|
+
$wasSeen$
|
|
26855
|
+
} = serializationContext;
|
|
26821
26856
|
let depth = 0;
|
|
26857
|
+
let rootIdx = 0;
|
|
26822
26858
|
const forwardRefs = [];
|
|
26823
26859
|
let forwardRefsId = 0;
|
|
26824
26860
|
const promises = /* @__PURE__ */ new Set();
|
|
26825
26861
|
const preloadQrls = /* @__PURE__ */ new Set();
|
|
26862
|
+
const s11nWeakRefs = /* @__PURE__ */ new Map();
|
|
26826
26863
|
let parent = null;
|
|
26827
26864
|
const isRootObject = () => depth === 0;
|
|
26828
26865
|
const outputArray = (value, writeFn) => {
|
|
@@ -26863,17 +26900,27 @@ async function serialize(serializationContext) {
|
|
|
26863
26900
|
};
|
|
26864
26901
|
const addPreloadQrl = (qrl) => {
|
|
26865
26902
|
preloadQrls.add(qrl);
|
|
26866
|
-
serializationContext.$addRoot$(qrl
|
|
26903
|
+
serializationContext.$addRoot$(qrl);
|
|
26867
26904
|
};
|
|
26868
|
-
const
|
|
26905
|
+
const outputAsRootRef = (value, rootDepth = 0) => {
|
|
26869
26906
|
const seen = $wasSeen$(value);
|
|
26870
|
-
const rootRefPath = $
|
|
26907
|
+
const rootRefPath = $objectPathStringCache$.get(value);
|
|
26871
26908
|
if (rootDepth === depth && seen && seen.$parent$ !== null && rootRefPath) {
|
|
26872
26909
|
output(0 /* RootRef */, rootRefPath);
|
|
26873
26910
|
return true;
|
|
26874
26911
|
} else if (depth > rootDepth && seen && seen.$rootIndex$ !== -1) {
|
|
26875
26912
|
output(0 /* RootRef */, seen.$rootIndex$);
|
|
26876
26913
|
return true;
|
|
26914
|
+
} else if (s11nWeakRefs.has(value)) {
|
|
26915
|
+
const forwardRefId = s11nWeakRefs.get(value);
|
|
26916
|
+
if (rootDepth === depth) {
|
|
26917
|
+
forwardRefs[forwardRefId] = rootIdx;
|
|
26918
|
+
} else {
|
|
26919
|
+
const rootRef = $addRoot$(value);
|
|
26920
|
+
output(0 /* RootRef */, rootRef);
|
|
26921
|
+
forwardRefs[forwardRefId] = rootRef;
|
|
26922
|
+
return true;
|
|
26923
|
+
}
|
|
26877
26924
|
}
|
|
26878
26925
|
return false;
|
|
26879
26926
|
};
|
|
@@ -26886,11 +26933,11 @@ async function serialize(serializationContext) {
|
|
|
26886
26933
|
output(3 /* Constant */, value ? 2 /* True */ : 3 /* False */);
|
|
26887
26934
|
} else if (typeof value === "function") {
|
|
26888
26935
|
if (value === Slot) {
|
|
26889
|
-
output(3 /* Constant */,
|
|
26936
|
+
output(3 /* Constant */, 10 /* Slot */);
|
|
26890
26937
|
} else if (value === Fragment) {
|
|
26891
|
-
output(3 /* Constant */,
|
|
26938
|
+
output(3 /* Constant */, 11 /* Fragment */);
|
|
26892
26939
|
} else if (isQrl(value)) {
|
|
26893
|
-
if (!
|
|
26940
|
+
if (!outputAsRootRef(value)) {
|
|
26894
26941
|
const qrl = qrlToString(serializationContext, value);
|
|
26895
26942
|
const type = preloadQrls.has(value) ? 21 /* PreloadQRL */ : 20 /* QRL */;
|
|
26896
26943
|
if (isRootObject()) {
|
|
@@ -26909,18 +26956,18 @@ async function serialize(serializationContext) {
|
|
|
26909
26956
|
}
|
|
26910
26957
|
} else if (typeof value === "number") {
|
|
26911
26958
|
if (Number.isNaN(value)) {
|
|
26912
|
-
output(3 /* Constant */,
|
|
26959
|
+
output(3 /* Constant */, 12 /* NaN */);
|
|
26913
26960
|
} else if (!Number.isFinite(value)) {
|
|
26914
26961
|
output(
|
|
26915
26962
|
3 /* Constant */,
|
|
26916
|
-
value < 0 ?
|
|
26963
|
+
value < 0 ? 14 /* NegativeInfinity */ : 13 /* PositiveInfinity */
|
|
26917
26964
|
);
|
|
26918
26965
|
} else if (value === Number.MAX_SAFE_INTEGER) {
|
|
26919
|
-
output(3 /* Constant */,
|
|
26966
|
+
output(3 /* Constant */, 15 /* MaxSafeInt */);
|
|
26920
26967
|
} else if (value === Number.MAX_SAFE_INTEGER - 1) {
|
|
26921
|
-
output(3 /* Constant */,
|
|
26968
|
+
output(3 /* Constant */, 16 /* AlmostMaxSafeInt */);
|
|
26922
26969
|
} else if (value === Number.MIN_SAFE_INTEGER) {
|
|
26923
|
-
output(3 /* Constant */,
|
|
26970
|
+
output(3 /* Constant */, 17 /* MinSafeInt */);
|
|
26924
26971
|
} else {
|
|
26925
26972
|
output(4 /* Number */, value);
|
|
26926
26973
|
}
|
|
@@ -26943,7 +26990,7 @@ async function serialize(serializationContext) {
|
|
|
26943
26990
|
if (value.length === 0) {
|
|
26944
26991
|
output(3 /* Constant */, 4 /* EmptyString */);
|
|
26945
26992
|
} else {
|
|
26946
|
-
if (!
|
|
26993
|
+
if (!outputAsRootRef(value)) {
|
|
26947
26994
|
output(5 /* String */, value);
|
|
26948
26995
|
}
|
|
26949
26996
|
}
|
|
@@ -26953,12 +27000,14 @@ async function serialize(serializationContext) {
|
|
|
26953
27000
|
output(3 /* Constant */, 7 /* NEEDS_COMPUTATION */);
|
|
26954
27001
|
} else if (value === STORE_ALL_PROPS) {
|
|
26955
27002
|
output(3 /* Constant */, 8 /* STORE_ALL_PROPS */);
|
|
27003
|
+
} else if (value === _UNINITIALIZED) {
|
|
27004
|
+
output(3 /* Constant */, 9 /* UNINITIALIZED */);
|
|
26956
27005
|
} else {
|
|
26957
27006
|
throw qError(20 /* serializeErrorUnknownType */, [typeof value]);
|
|
26958
27007
|
}
|
|
26959
27008
|
};
|
|
26960
27009
|
const writeObjectValue = (value) => {
|
|
26961
|
-
if (
|
|
27010
|
+
if (outputAsRootRef(value, 1)) {
|
|
26962
27011
|
return;
|
|
26963
27012
|
}
|
|
26964
27013
|
if (isPropsProxy(value)) {
|
|
@@ -26967,7 +27016,7 @@ async function serialize(serializationContext) {
|
|
|
26967
27016
|
const out = constProps ? [varProps, constProps] : Object.keys(varProps).length ? [varProps] : 0;
|
|
26968
27017
|
output(34 /* PropsProxy */, out);
|
|
26969
27018
|
} else if (value instanceof SubscriptionData) {
|
|
26970
|
-
output(35 /*
|
|
27019
|
+
output(35 /* SubscriptionData */, [value.data.$scopedStyleIdPrefix$, value.data.$isConst$]);
|
|
26971
27020
|
} else if (isStore(value)) {
|
|
26972
27021
|
if (isResource(value)) {
|
|
26973
27022
|
serializationContext.$resources$.add(value);
|
|
@@ -27046,7 +27095,6 @@ async function serialize(serializationContext) {
|
|
|
27046
27095
|
output(1 /* ForwardRef */, forwardRefId);
|
|
27047
27096
|
return;
|
|
27048
27097
|
}
|
|
27049
|
-
const v = value instanceof ComputedSignalImpl && (value.$flags$ & 1 /* INVALID */ || fastSkipSerialize(value.$untrackedValue$)) ? NEEDS_COMPUTATION : value.$untrackedValue$;
|
|
27050
27098
|
if (value instanceof WrappedSignalImpl) {
|
|
27051
27099
|
output(26 /* WrappedSignal */, [
|
|
27052
27100
|
...serializeWrappingFn(serializationContext, value),
|
|
@@ -27055,33 +27103,36 @@ async function serialize(serializationContext) {
|
|
|
27055
27103
|
value.$hostElement$,
|
|
27056
27104
|
...value.$effects$ || []
|
|
27057
27105
|
]);
|
|
27058
|
-
} else if (value instanceof AsyncComputedSignalImpl) {
|
|
27059
|
-
addPreloadQrl(value.$computeQrl$);
|
|
27060
|
-
const out = [
|
|
27061
|
-
value.$computeQrl$,
|
|
27062
|
-
value.$effects$,
|
|
27063
|
-
value.$loadingEffects$,
|
|
27064
|
-
value.$errorEffects$,
|
|
27065
|
-
value.$untrackedLoading$,
|
|
27066
|
-
value.$untrackedError$
|
|
27067
|
-
];
|
|
27068
|
-
if (v !== NEEDS_COMPUTATION) {
|
|
27069
|
-
out.push(v);
|
|
27070
|
-
}
|
|
27071
|
-
output(28 /* AsyncComputedSignal */, out);
|
|
27072
27106
|
} else if (value instanceof ComputedSignalImpl) {
|
|
27107
|
+
let v = value.$untrackedValue$;
|
|
27108
|
+
const shouldAlwaysSerialize = value.$flags$ & 16 /* SERIALIZATION_STRATEGY_ALWAYS */;
|
|
27109
|
+
const shouldNeverSerialize = value.$flags$ & 8 /* SERIALIZATION_STRATEGY_NEVER */;
|
|
27110
|
+
const isInvalid = value.$flags$ & 1 /* INVALID */;
|
|
27111
|
+
const isSkippable = fastSkipSerialize(value.$untrackedValue$);
|
|
27112
|
+
if (shouldAlwaysSerialize) {
|
|
27113
|
+
v = value.$untrackedValue$;
|
|
27114
|
+
} else if (shouldNeverSerialize) {
|
|
27115
|
+
v = NEEDS_COMPUTATION;
|
|
27116
|
+
} else if (isInvalid || isSkippable) {
|
|
27117
|
+
v = NEEDS_COMPUTATION;
|
|
27118
|
+
}
|
|
27073
27119
|
addPreloadQrl(value.$computeQrl$);
|
|
27074
|
-
const out = [
|
|
27075
|
-
|
|
27076
|
-
|
|
27077
|
-
|
|
27078
|
-
|
|
27120
|
+
const out = [value.$computeQrl$, value.$effects$];
|
|
27121
|
+
const isAsync = value instanceof AsyncComputedSignalImpl;
|
|
27122
|
+
if (isAsync) {
|
|
27123
|
+
out.push(
|
|
27124
|
+
value.$loadingEffects$,
|
|
27125
|
+
value.$errorEffects$,
|
|
27126
|
+
value.$untrackedLoading$,
|
|
27127
|
+
value.$untrackedError$
|
|
27128
|
+
);
|
|
27129
|
+
}
|
|
27079
27130
|
if (v !== NEEDS_COMPUTATION) {
|
|
27080
27131
|
out.push(v);
|
|
27081
27132
|
}
|
|
27082
|
-
output(27 /* ComputedSignal */, out);
|
|
27133
|
+
output(isAsync ? 28 /* AsyncComputedSignal */ : 27 /* ComputedSignal */, out);
|
|
27083
27134
|
} else {
|
|
27084
|
-
output(25 /* Signal */, [
|
|
27135
|
+
output(25 /* Signal */, [value.$untrackedValue$, ...value.$effects$ || []]);
|
|
27085
27136
|
}
|
|
27086
27137
|
} else if (value instanceof URL) {
|
|
27087
27138
|
output(7 /* URL */, value.href);
|
|
@@ -27190,6 +27241,11 @@ async function serialize(serializationContext) {
|
|
|
27190
27241
|
}
|
|
27191
27242
|
const out = btoa(buf).replace(/=+$/, "");
|
|
27192
27243
|
output(19 /* Uint8Array */, out);
|
|
27244
|
+
} else if (value instanceof SerializationWeakRef) {
|
|
27245
|
+
const forwardRefId = forwardRefsId++;
|
|
27246
|
+
s11nWeakRefs.set(value.$obj$, forwardRefId);
|
|
27247
|
+
forwardRefs[forwardRefId] = -1;
|
|
27248
|
+
output(1 /* ForwardRef */, forwardRefId);
|
|
27193
27249
|
} else if (vnode_isVNode(value)) {
|
|
27194
27250
|
output(3 /* Constant */, 0 /* Undefined */);
|
|
27195
27251
|
} else {
|
|
@@ -27210,20 +27266,19 @@ async function serialize(serializationContext) {
|
|
|
27210
27266
|
}
|
|
27211
27267
|
const outputRoots = async () => {
|
|
27212
27268
|
$writer$.write("[");
|
|
27213
|
-
let lastRootsLength = 0;
|
|
27214
27269
|
let rootsLength = serializationContext.$roots$.length;
|
|
27215
|
-
while (
|
|
27216
|
-
if (
|
|
27270
|
+
while (rootIdx < rootsLength || promises.size) {
|
|
27271
|
+
if (rootIdx !== 0) {
|
|
27217
27272
|
$writer$.write(",");
|
|
27218
27273
|
}
|
|
27219
27274
|
let separator = false;
|
|
27220
|
-
for (
|
|
27275
|
+
for (; rootIdx < rootsLength; rootIdx++) {
|
|
27221
27276
|
if (separator) {
|
|
27222
27277
|
$writer$.write(",");
|
|
27223
27278
|
} else {
|
|
27224
27279
|
separator = true;
|
|
27225
27280
|
}
|
|
27226
|
-
writeValue(serializationContext.$roots$[
|
|
27281
|
+
writeValue(serializationContext.$roots$[rootIdx]);
|
|
27227
27282
|
}
|
|
27228
27283
|
if (promises.size) {
|
|
27229
27284
|
try {
|
|
@@ -27231,7 +27286,6 @@ async function serialize(serializationContext) {
|
|
|
27231
27286
|
} catch {
|
|
27232
27287
|
}
|
|
27233
27288
|
}
|
|
27234
|
-
lastRootsLength = rootsLength;
|
|
27235
27289
|
rootsLength = serializationContext.$roots$.length;
|
|
27236
27290
|
}
|
|
27237
27291
|
if (forwardRefs.length) {
|
|
@@ -27405,7 +27459,7 @@ function shouldTrackObj(obj) {
|
|
|
27405
27459
|
return (
|
|
27406
27460
|
// THINK: Not sure if we need to keep track of functions (QRLs) Let's skip them for now.
|
|
27407
27461
|
// and see if we have a test case which requires them.
|
|
27408
|
-
|
|
27462
|
+
isObject(obj) || /**
|
|
27409
27463
|
* We track all strings greater than 1 character, because those take at least 6 bytes to encode
|
|
27410
27464
|
* and even with 999 root objects it saves one byte per reference. Tracking more objects makes
|
|
27411
27465
|
* the map bigger so we want to strike a balance
|
|
@@ -27421,7 +27475,7 @@ function isResource(value) {
|
|
|
27421
27475
|
return "__brand" in value && value.__brand === "resource";
|
|
27422
27476
|
}
|
|
27423
27477
|
var frameworkType = (obj) => {
|
|
27424
|
-
return
|
|
27478
|
+
return isObject(obj) && (obj instanceof SignalImpl || obj instanceof Task || isJSXNode(obj)) || isQrl(obj);
|
|
27425
27479
|
};
|
|
27426
27480
|
var canSerialize = (value, seen = /* @__PURE__ */ new WeakSet()) => {
|
|
27427
27481
|
if (value == null || typeof value === "string" || typeof value === "number" || typeof value === "boolean" || typeof value === "bigint") {
|
|
@@ -27485,6 +27539,8 @@ var canSerialize = (value, seen = /* @__PURE__ */ new WeakSet()) => {
|
|
|
27485
27539
|
if (isQrl(value) || isQwikComponent(value)) {
|
|
27486
27540
|
return true;
|
|
27487
27541
|
}
|
|
27542
|
+
} else if (value === _UNINITIALIZED) {
|
|
27543
|
+
return true;
|
|
27488
27544
|
}
|
|
27489
27545
|
return false;
|
|
27490
27546
|
};
|
|
@@ -27525,14 +27581,14 @@ var _typeIdNames = [
|
|
|
27525
27581
|
"FormData",
|
|
27526
27582
|
"JSXNode",
|
|
27527
27583
|
"PropsProxy",
|
|
27528
|
-
"
|
|
27584
|
+
"SubscriptionData"
|
|
27529
27585
|
];
|
|
27530
27586
|
var circularProofJson = (obj, indent) => {
|
|
27531
27587
|
const seen = /* @__PURE__ */ new WeakSet();
|
|
27532
27588
|
return JSON.stringify(
|
|
27533
27589
|
obj,
|
|
27534
|
-
(
|
|
27535
|
-
if (
|
|
27590
|
+
(_, value) => {
|
|
27591
|
+
if (isObject(value)) {
|
|
27536
27592
|
if (seen.has(value)) {
|
|
27537
27593
|
return `[Circular ${value.constructor.name}]`;
|
|
27538
27594
|
}
|
|
@@ -27568,7 +27624,7 @@ var dumpState = (state, color = false, prefix = "", limit = 20) => {
|
|
|
27568
27624
|
if (key === void 0) {
|
|
27569
27625
|
hasRaw = true;
|
|
27570
27626
|
out.push(
|
|
27571
|
-
`${RED}[raw${
|
|
27627
|
+
`${RED}[raw${isObject(value) ? ` ${value.constructor.name}` : ""}]${RESET} ${printRaw(value, `${prefix} `)}`
|
|
27572
27628
|
);
|
|
27573
27629
|
} else {
|
|
27574
27630
|
if (key === 3 /* Constant */) {
|
|
@@ -27696,10 +27752,10 @@ var shouldSerialize = (obj) => {
|
|
|
27696
27752
|
return true;
|
|
27697
27753
|
};
|
|
27698
27754
|
var fastSkipSerialize = (obj) => {
|
|
27699
|
-
return obj && (
|
|
27755
|
+
return obj && (isObject(obj) || typeof obj === "function") && (NoSerializeSymbol in obj || noSerializeSet.has(obj));
|
|
27700
27756
|
};
|
|
27701
27757
|
var noSerialize = (input) => {
|
|
27702
|
-
if (
|
|
27758
|
+
if (isObject(input) && input !== null || typeof input === "function") {
|
|
27703
27759
|
noSerializeSet.add(input);
|
|
27704
27760
|
}
|
|
27705
27761
|
return input;
|
|
@@ -28637,7 +28693,7 @@ var triggerEffects = (container, signal, effects) => {
|
|
|
28637
28693
|
container.$scheduler$(1 /* QRL_RESOLVE */, null, consumer.$computeQrl$);
|
|
28638
28694
|
}
|
|
28639
28695
|
}
|
|
28640
|
-
consumer
|
|
28696
|
+
consumer.invalidate();
|
|
28641
28697
|
} else if (property === ":" /* COMPONENT */) {
|
|
28642
28698
|
const host = consumer;
|
|
28643
28699
|
const qrl = container.getHostProp(host, OnRenderProp);
|
|
@@ -28669,7 +28725,7 @@ var triggerEffects = (container, signal, effects) => {
|
|
|
28669
28725
|
DEBUG7 && log6("done scheduling");
|
|
28670
28726
|
};
|
|
28671
28727
|
var isSerializerObj = (obj) => {
|
|
28672
|
-
return
|
|
28728
|
+
return isObject(obj) && typeof obj[SerializerSymbol] === "function";
|
|
28673
28729
|
};
|
|
28674
28730
|
|
|
28675
28731
|
// packages/qwik/src/core/debug.ts
|
|
@@ -32621,7 +32677,7 @@ var SSRContainer = class extends _SharedContainer2 {
|
|
|
32621
32677
|
const qwikLoaderScript = getQwikLoaderScript({
|
|
32622
32678
|
debug: this.renderOptions.debug
|
|
32623
32679
|
});
|
|
32624
|
-
const scriptAttrs = ["id", "qwikloader", "async", true];
|
|
32680
|
+
const scriptAttrs = ["id", "qwikloader", "async", true, "type", "module"];
|
|
32625
32681
|
const nonce = this.renderOptions.serverData?.nonce;
|
|
32626
32682
|
if (nonce) {
|
|
32627
32683
|
scriptAttrs.push("nonce", nonce);
|