octane 0.2.11 → 0.2.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +5 -0
- package/dist/behavior-root.d.ts +13 -3
- package/dist/behavior-root.js +28 -5
- package/dist/cjs/behavior-root.cjs +32 -6
- package/dist/cjs/class-names.cjs +49 -0
- package/dist/cjs/constants.cjs +9 -0
- package/dist/cjs/context-epoch.cjs +38 -0
- package/dist/cjs/css.cjs +6 -27
- package/dist/cjs/data-encoding.cjs +160 -0
- package/dist/cjs/dom-binding-handoff.cjs +93 -0
- package/dist/cjs/dom-binding-protocol.cjs +115 -0
- package/dist/cjs/dom-binding-styles.cjs +292 -0
- package/dist/cjs/dom-bindings.cjs +700 -0
- package/dist/cjs/dom-focused-move.cjs +66 -0
- package/dist/cjs/dom-stage.cjs +896 -0
- package/dist/cjs/dom-tables.cjs +4 -94
- package/dist/cjs/error-codes.client.generated.cjs +33 -0
- package/dist/cjs/error-codes.server.generated.cjs +24 -0
- package/dist/cjs/hydration/control-capture.cjs +244 -0
- package/dist/cjs/hydration/event-capture.cjs +125 -43
- package/dist/cjs/hydration/interaction-config.cjs +50 -2
- package/dist/cjs/hydration-markers.cjs +37 -0
- package/dist/cjs/independent-hydration-protocol.cjs +106 -0
- package/dist/cjs/index.cjs +9 -0
- package/dist/cjs/runtime.cjs +6397 -1683
- package/dist/cjs/runtime.server.cjs +1465 -213
- package/dist/cjs/server/early-signals.cjs +45 -0
- package/dist/cjs/server/index.cjs +47 -0
- package/dist/cjs/server/rpc-batch.cjs +149 -0
- package/dist/cjs/server/rpc-stream.cjs +146 -0
- package/dist/cjs/server/rpc.cjs +34 -15
- package/dist/cjs/server/signal-query-observation.cjs +158 -0
- package/dist/cjs/server/streamed-region.cjs +52 -0
- package/dist/cjs/server/streamed-signals.cjs +512 -0
- package/dist/cjs/server-call.cjs +103 -0
- package/dist/cjs/server-rpc-batch-client.cjs +141 -0
- package/dist/cjs/server-rpc-client.cjs +94 -27
- package/dist/cjs/server-rpc-protocol.cjs +141 -0
- package/dist/cjs/server-rpc-stream-client.cjs +118 -0
- package/dist/cjs/signals/actions.cjs +474 -0
- package/dist/cjs/signals/client.cjs +4 -1
- package/dist/cjs/signals/computations.cjs +460 -0
- package/dist/cjs/signals/control-binding.cjs +368 -0
- package/dist/cjs/signals/derived-facade.cjs +50 -0
- package/dist/cjs/signals/document-owner.cjs +71 -0
- package/dist/cjs/signals/early-values.cjs +155 -0
- package/dist/cjs/signals/encoding.cjs +6 -95
- package/dist/cjs/signals/engine.cjs +276 -12
- package/dist/cjs/signals/errors.cjs +18 -0
- package/dist/cjs/signals/facade.cjs +477 -0
- package/dist/cjs/signals/graph.cjs +166 -20
- package/dist/cjs/signals/handle-protocol.cjs +36 -0
- package/dist/cjs/signals/index.cjs +81 -2
- package/dist/cjs/signals/native-read-client.cjs +10 -0
- package/dist/cjs/signals/owner-context.cjs +112 -0
- package/dist/cjs/signals/query-attempt-observer.cjs +68 -0
- package/dist/cjs/signals/query-facade.cjs +72 -0
- package/dist/cjs/signals/read-protocol.cjs +54 -0
- package/dist/cjs/signals/requests.cjs +287 -14
- package/dist/cjs/signals/scalar-computations.cjs +76 -0
- package/dist/cjs/signals/server.cjs +4 -1
- package/dist/cjs/signals/transition-candidate.cjs +567 -0
- package/dist/cjs/signals/transition-state.cjs +106 -0
- package/dist/cjs/signals/types.cjs +50 -0
- package/dist/cjs/stream-protocol.cjs +3 -0
- package/dist/cjs/streamed-signals-protocol.cjs +159 -0
- package/dist/cjs/style-values.cjs +122 -0
- package/dist/cjs/trusted-html.cjs +30 -0
- package/dist/cjs/version.cjs +1 -1
- package/dist/class-names.d.ts +5 -0
- package/dist/class-names.js +25 -0
- package/dist/compiler/bundler.js +51 -22
- package/dist/compiler/compile.js +2534 -581
- package/dist/compiler/dom-binding-program.js +935 -0
- package/dist/compiler/dom-binding-request.js +57 -0
- package/dist/compiler/dom-bindings.js +2245 -0
- package/dist/compiler/hook-deps.js +759 -10
- package/dist/compiler/hydrate-boundaries.js +358 -15
- package/dist/compiler/index.d.ts +39 -2
- package/dist/compiler/index.js +1 -0
- package/dist/compiler/native-attribute-reads.js +127 -0
- package/dist/compiler/native-change-diagnostics.js +32 -38
- package/dist/compiler/native-read-diagnostics.js +69 -8
- package/dist/compiler/native-read-types.js +80 -34
- package/dist/compiler/parser.node.js +1 -1
- package/dist/compiler/renderer-boundaries.js +40 -0
- package/dist/compiler/server-context.js +118 -0
- package/dist/compiler/signal-attempt-reads.js +479 -0
- package/dist/compiler/signal-declarations.js +557 -0
- package/dist/compiler/signal-start-reads.js +413 -0
- package/dist/compiler/slot-hooks.d.ts +3 -1
- package/dist/compiler/slot-hooks.js +168 -34
- package/dist/compiler/strong-auto-memo.js +90 -0
- package/dist/compiler/strong-html.js +143 -0
- package/dist/compiler/strong-mode.js +764 -66
- package/dist/compiler/strong-template-policy.js +307 -0
- package/dist/compiler/template-ir.js +200 -0
- package/dist/compiler/typescript.d.ts +2 -0
- package/dist/compiler/typescript.js +2 -0
- package/dist/compiler/vite.d.ts +3 -1
- package/dist/compiler/vite.js +122 -4
- package/dist/compiler/volar.LICENSES.txt +1 -1
- package/dist/compiler/volar.d.ts +6 -1
- package/dist/compiler/volar.js +750 -1433
- package/dist/constants.d.ts +1 -0
- package/dist/constants.js +10 -0
- package/dist/context-epoch.d.ts +2 -0
- package/dist/context-epoch.js +13 -0
- package/dist/css.d.ts +2 -5
- package/dist/css.js +2 -23
- package/dist/data-encoding.d.ts +9 -0
- package/dist/data-encoding.js +134 -0
- package/dist/dom-binding-classes.d.ts +15 -0
- package/dist/dom-binding-classes.js +129 -0
- package/dist/dom-binding-controls.d.ts +2 -0
- package/dist/dom-binding-controls.js +6 -0
- package/dist/dom-binding-handoff.d.ts +55 -0
- package/dist/dom-binding-handoff.js +62 -0
- package/dist/dom-binding-program.d.ts +300 -0
- package/dist/dom-binding-program.js +1625 -0
- package/dist/dom-binding-projections.d.ts +15 -0
- package/dist/dom-binding-projections.js +187 -0
- package/dist/dom-binding-protocol.d.ts +13 -0
- package/dist/dom-binding-protocol.js +88 -0
- package/dist/dom-binding-signals.d.ts +21 -0
- package/dist/dom-binding-signals.js +109 -0
- package/dist/dom-binding-styles.d.ts +17 -0
- package/dist/dom-binding-styles.js +272 -0
- package/dist/dom-bindings.d.ts +89 -0
- package/dist/dom-bindings.js +670 -0
- package/dist/dom-focused-move.d.ts +6 -0
- package/dist/dom-focused-move.js +42 -0
- package/dist/dom-stage.d.ts +52 -0
- package/dist/dom-stage.js +872 -0
- package/dist/dom-tables.d.ts +1 -3
- package/dist/dom-tables.js +1 -91
- package/dist/error-codes.client.generated.d.ts +9 -0
- package/dist/error-codes.client.generated.js +33 -0
- package/dist/error-codes.server.generated.d.ts +6 -0
- package/dist/error-codes.server.generated.js +24 -0
- package/dist/hydration/control-capture.d.ts +62 -0
- package/dist/hydration/control-capture.js +223 -0
- package/dist/hydration/document-lifecycle.d.ts +23 -0
- package/dist/hydration/document-lifecycle.js +80 -0
- package/dist/hydration/event-capture.d.ts +20 -1
- package/dist/hydration/event-capture.js +128 -42
- package/dist/hydration/independent-island.d.ts +45 -0
- package/dist/hydration/independent-island.js +233 -0
- package/dist/hydration/index.d.ts +8 -1
- package/dist/hydration/index.js +55 -1
- package/dist/hydration/interaction-config.d.ts +5 -0
- package/dist/hydration/interaction-config.js +44 -1
- package/dist/hydration/stream-delivery.d.ts +32 -0
- package/dist/hydration/stream-delivery.js +333 -0
- package/dist/hydration/stream-receiver.d.ts +26 -0
- package/dist/hydration/stream-receiver.js +204 -0
- package/dist/hydration/stream-result-receiver.d.ts +70 -0
- package/dist/hydration/stream-result-receiver.js +246 -0
- package/dist/hydration/streamed-signals.d.ts +44 -0
- package/dist/hydration/streamed-signals.js +186 -0
- package/dist/hydration/types.d.ts +6 -0
- package/dist/hydration-markers.d.ts +7 -0
- package/dist/hydration-markers.js +10 -0
- package/dist/independent-hydration-protocol.d.ts +31 -0
- package/dist/independent-hydration-protocol.js +80 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.js +6 -0
- package/dist/internal/signal-read.d.ts +1 -0
- package/dist/internal/signal-read.js +4 -0
- package/dist/jsx-runtime-strong.d.ts +33 -0
- package/dist/jsx-runtime.d.ts +58 -2
- package/dist/public-types.d.ts +15 -1
- package/dist/runtime.d.ts +297 -23
- package/dist/runtime.js +6405 -1679
- package/dist/runtime.server.d.ts +110 -27
- package/dist/runtime.server.js +1458 -213
- package/dist/server/early-signals.d.ts +14 -0
- package/dist/server/early-signals.js +34 -0
- package/dist/server/index.d.ts +11 -2
- package/dist/server/index.js +50 -1
- package/dist/server/rpc-batch.d.ts +17 -0
- package/dist/server/rpc-batch.js +129 -0
- package/dist/server/rpc-stream.d.ts +9 -0
- package/dist/server/rpc-stream.js +125 -0
- package/dist/server/rpc.d.ts +5 -1
- package/dist/server/rpc.js +37 -13
- package/dist/server/signal-query-observation.d.ts +3 -0
- package/dist/server/signal-query-observation.js +134 -0
- package/dist/server/streamed-region.d.ts +15 -0
- package/dist/server/streamed-region.js +30 -0
- package/dist/server/streamed-signals.d.ts +45 -0
- package/dist/server/streamed-signals.js +488 -0
- package/dist/server-call.d.ts +41 -0
- package/dist/server-call.js +75 -0
- package/dist/server-rpc-batch-client.d.ts +7 -0
- package/dist/server-rpc-batch-client.js +119 -0
- package/dist/server-rpc-client.d.ts +3 -1
- package/dist/server-rpc-client.js +99 -27
- package/dist/server-rpc-protocol.d.ts +47 -0
- package/dist/server-rpc-protocol.js +109 -0
- package/dist/server-rpc-stream-client.d.ts +5 -0
- package/dist/server-rpc-stream-client.js +98 -0
- package/dist/signals/actions.d.ts +12 -0
- package/dist/signals/actions.js +466 -0
- package/dist/signals/client.d.ts +2 -0
- package/dist/signals/client.js +1 -0
- package/dist/signals/computations.d.ts +37 -0
- package/dist/signals/computations.js +455 -0
- package/dist/signals/control-binding.d.ts +31 -0
- package/dist/signals/control-binding.js +353 -0
- package/dist/signals/derived-facade.d.ts +3 -0
- package/dist/signals/derived-facade.js +25 -0
- package/dist/signals/document-owner.d.ts +10 -0
- package/dist/signals/document-owner.js +43 -0
- package/dist/signals/early-values.d.ts +24 -0
- package/dist/signals/early-values.js +124 -0
- package/dist/signals/encoding.d.ts +1 -3
- package/dist/signals/encoding.js +3 -93
- package/dist/signals/engine.d.ts +53 -4
- package/dist/signals/engine.js +275 -16
- package/dist/signals/errors.d.ts +7 -0
- package/dist/signals/errors.js +16 -0
- package/dist/signals/facade.d.ts +74 -0
- package/dist/signals/facade.js +452 -0
- package/dist/signals/graph.d.ts +52 -6
- package/dist/signals/graph.js +174 -19
- package/dist/signals/handle-protocol.d.ts +4 -0
- package/dist/signals/handle-protocol.js +11 -0
- package/dist/signals/index.d.ts +12 -3
- package/dist/signals/index.js +71 -2
- package/dist/signals/native-read-client.d.ts +3 -0
- package/dist/signals/native-read-client.js +10 -0
- package/dist/signals/owner-context.d.ts +22 -0
- package/dist/signals/owner-context.js +77 -0
- package/dist/signals/query-attempt-observer.d.ts +49 -0
- package/dist/signals/query-attempt-observer.js +41 -0
- package/dist/signals/query-facade.d.ts +3 -0
- package/dist/signals/query-facade.js +49 -0
- package/dist/signals/read-protocol.d.ts +37 -2
- package/dist/signals/read-protocol.js +44 -0
- package/dist/signals/requests.d.ts +38 -5
- package/dist/signals/requests.js +298 -15
- package/dist/signals/scalar-computations.d.ts +2 -0
- package/dist/signals/scalar-computations.js +60 -0
- package/dist/signals/server.d.ts +2 -0
- package/dist/signals/server.js +1 -0
- package/dist/signals/transition-candidate.d.ts +71 -0
- package/dist/signals/transition-candidate.js +557 -0
- package/dist/signals/transition-state.d.ts +51 -0
- package/dist/signals/transition-state.js +70 -0
- package/dist/signals/types.d.ts +95 -5
- package/dist/signals/types.js +20 -0
- package/dist/stream-protocol.d.ts +0 -5
- package/dist/stream-protocol.js +3 -0
- package/dist/streamed-signals-protocol.d.ts +60 -0
- package/dist/streamed-signals-protocol.js +130 -0
- package/dist/style-values.d.ts +3 -0
- package/dist/style-values.js +96 -0
- package/dist/trusted-html.d.ts +17 -0
- package/dist/trusted-html.js +6 -0
- package/dist/universal-core.d.ts +6 -0
- package/dist/universal-core.js +214 -202
- package/dist/version.js +1 -1
- package/package.json +48 -5
package/dist/cjs/dom-tables.cjs
CHANGED
|
@@ -26,12 +26,13 @@ __export(dom_tables_exports, {
|
|
|
26
26
|
POSITIVE_NUMERIC_ATTR_PROPS: () => POSITIVE_NUMERIC_ATTR_PROPS,
|
|
27
27
|
SVG_ONLY_TAGS: () => SVG_ONLY_TAGS,
|
|
28
28
|
VOID_ELEMENTS: () => VOID_ELEMENTS,
|
|
29
|
-
cssStyleValue: () => cssStyleValue,
|
|
30
|
-
hyphenateStyleName: () => hyphenateStyleName,
|
|
29
|
+
cssStyleValue: () => import_style_values.cssStyleValue,
|
|
30
|
+
hyphenateStyleName: () => import_style_values.hyphenateStyleName,
|
|
31
31
|
isEnumeratedBooleanAttr: () => isEnumeratedBooleanAttr,
|
|
32
|
-
isUnitlessStyleProp: () => isUnitlessStyleProp
|
|
32
|
+
isUnitlessStyleProp: () => import_style_values.isUnitlessStyleProp
|
|
33
33
|
});
|
|
34
34
|
module.exports = __toCommonJS(dom_tables_exports);
|
|
35
|
+
var import_style_values = require("./style-values.cjs");
|
|
35
36
|
const VOID_ELEMENTS = /* @__PURE__ */ new Set([
|
|
36
37
|
"area",
|
|
37
38
|
"base",
|
|
@@ -399,97 +400,6 @@ function isEnumeratedBooleanAttr(name) {
|
|
|
399
400
|
}
|
|
400
401
|
return false;
|
|
401
402
|
}
|
|
402
|
-
const UNITLESS_STYLE_PROPS = /* @__PURE__ */ new Set();
|
|
403
|
-
for (const base of [
|
|
404
|
-
"animationIterationCount",
|
|
405
|
-
"aspectRatio",
|
|
406
|
-
"borderImageOutset",
|
|
407
|
-
"borderImageSlice",
|
|
408
|
-
"borderImageWidth",
|
|
409
|
-
"boxFlex",
|
|
410
|
-
"boxFlexGroup",
|
|
411
|
-
"boxOrdinalGroup",
|
|
412
|
-
"columnCount",
|
|
413
|
-
"columns",
|
|
414
|
-
"flex",
|
|
415
|
-
"flexGrow",
|
|
416
|
-
"flexPositive",
|
|
417
|
-
"flexShrink",
|
|
418
|
-
"flexNegative",
|
|
419
|
-
"flexOrder",
|
|
420
|
-
"gridArea",
|
|
421
|
-
"gridRow",
|
|
422
|
-
"gridRowEnd",
|
|
423
|
-
"gridRowSpan",
|
|
424
|
-
"gridRowStart",
|
|
425
|
-
"gridColumn",
|
|
426
|
-
"gridColumnEnd",
|
|
427
|
-
"gridColumnSpan",
|
|
428
|
-
"gridColumnStart",
|
|
429
|
-
"fontWeight",
|
|
430
|
-
"lineClamp",
|
|
431
|
-
"lineHeight",
|
|
432
|
-
"opacity",
|
|
433
|
-
"order",
|
|
434
|
-
"orphans",
|
|
435
|
-
"scale",
|
|
436
|
-
"tabSize",
|
|
437
|
-
"widows",
|
|
438
|
-
"zIndex",
|
|
439
|
-
"zoom",
|
|
440
|
-
"fillOpacity",
|
|
441
|
-
"floodOpacity",
|
|
442
|
-
"stopOpacity",
|
|
443
|
-
"strokeDasharray",
|
|
444
|
-
"strokeDashoffset",
|
|
445
|
-
"strokeMiterlimit",
|
|
446
|
-
"strokeOpacity",
|
|
447
|
-
"strokeWidth"
|
|
448
|
-
]) {
|
|
449
|
-
const c = base.toLowerCase();
|
|
450
|
-
UNITLESS_STYLE_PROPS.add(c);
|
|
451
|
-
UNITLESS_STYLE_PROPS.add("webkit" + c);
|
|
452
|
-
UNITLESS_STYLE_PROPS.add("ms" + c);
|
|
453
|
-
UNITLESS_STYLE_PROPS.add("moz" + c);
|
|
454
|
-
UNITLESS_STYLE_PROPS.add("o" + c);
|
|
455
|
-
}
|
|
456
|
-
const unitlessStylePropCache = /* @__PURE__ */ new Map();
|
|
457
|
-
function isUnitlessStyleProp(name) {
|
|
458
|
-
const cached = unitlessStylePropCache.get(name);
|
|
459
|
-
if (cached !== void 0) return cached;
|
|
460
|
-
const result = UNITLESS_STYLE_PROPS.has(name.replaceAll("-", "").toLowerCase());
|
|
461
|
-
unitlessStylePropCache.set(name, result);
|
|
462
|
-
return result;
|
|
463
|
-
}
|
|
464
|
-
function cssStyleValue(name, value) {
|
|
465
|
-
if (typeof value === "number" && value !== 0 && name.charCodeAt(0) !== 45 && !isUnitlessStyleProp(name)) {
|
|
466
|
-
return value + "px";
|
|
467
|
-
}
|
|
468
|
-
return typeof value === "string" ? value.trim() : "" + value;
|
|
469
|
-
}
|
|
470
|
-
function hyphenateStyleName(name) {
|
|
471
|
-
if (name === "cssFloat") return "float";
|
|
472
|
-
if (name.charCodeAt(0) === 45) return name;
|
|
473
|
-
let hasUpper = false;
|
|
474
|
-
for (let i = 0; i < name.length; i++) {
|
|
475
|
-
const c = name.charCodeAt(i);
|
|
476
|
-
if (c >= 65 && c <= 90) {
|
|
477
|
-
hasUpper = true;
|
|
478
|
-
break;
|
|
479
|
-
}
|
|
480
|
-
}
|
|
481
|
-
if (!hasUpper) return name;
|
|
482
|
-
let out = "";
|
|
483
|
-
for (let i = 0; i < name.length; i++) {
|
|
484
|
-
const c = name.charCodeAt(i);
|
|
485
|
-
if (c >= 65 && c <= 90) out += "-" + String.fromCharCode(c + 32);
|
|
486
|
-
else out += name[i];
|
|
487
|
-
}
|
|
488
|
-
if (out.charCodeAt(0) === 109 && out.charCodeAt(1) === 115 && out.charCodeAt(2) === 45) {
|
|
489
|
-
out = "-" + out;
|
|
490
|
-
}
|
|
491
|
-
return out;
|
|
492
|
-
}
|
|
493
403
|
// Annotate the CommonJS export names for ESM import in node:
|
|
494
404
|
0 && (module.exports = {
|
|
495
405
|
ATTRIBUTE_ALIASES,
|
|
@@ -211,6 +211,39 @@ function formatClientError(code, ...args) {
|
|
|
211
211
|
);
|
|
212
212
|
case 64:
|
|
213
213
|
return (0, import_error_message.formatDevErrorMessage)("Multiple errors were thrown during act.", args);
|
|
214
|
+
case 66:
|
|
215
|
+
return (0, import_error_message.formatDevErrorMessage)(
|
|
216
|
+
"An independent Hydrate boundary cannot change ownership after mount.",
|
|
217
|
+
args
|
|
218
|
+
);
|
|
219
|
+
case 67:
|
|
220
|
+
return (0, import_error_message.formatDevErrorMessage)('Signal control identity mismatch for "%s".', args);
|
|
221
|
+
case 72:
|
|
222
|
+
return (0, import_error_message.formatDevErrorMessage)(
|
|
223
|
+
"Octane DOM binding text range does not match its template.",
|
|
224
|
+
args
|
|
225
|
+
);
|
|
226
|
+
case 74:
|
|
227
|
+
return (0, import_error_message.formatDevErrorMessage)("Unsupported Octane signal binding ABI.", args);
|
|
228
|
+
case 75:
|
|
229
|
+
return (0, import_error_message.formatDevErrorMessage)(
|
|
230
|
+
"Hydration binding leases require a supported fixed native view without structural regions or unsupported writers.",
|
|
231
|
+
args
|
|
232
|
+
);
|
|
233
|
+
case 76:
|
|
234
|
+
return (0, import_error_message.formatDevErrorMessage)(
|
|
235
|
+
"DOM binding hydration leases are supported only by hydrateRoot().",
|
|
236
|
+
args
|
|
237
|
+
);
|
|
238
|
+
case 77:
|
|
239
|
+
return (0, import_error_message.formatDevErrorMessage)(
|
|
240
|
+
"Hydration binding leases require active fixed native views owned by this container.",
|
|
241
|
+
args
|
|
242
|
+
);
|
|
243
|
+
case 78:
|
|
244
|
+
return (0, import_error_message.formatDevErrorMessage)("A hydration binding lease can be claimed only once.", args);
|
|
245
|
+
case 79:
|
|
246
|
+
return (0, import_error_message.formatDevErrorMessage)("Unsupported native signal transition.", args);
|
|
214
247
|
default:
|
|
215
248
|
return (0, import_error_message.formatUnknownDevErrorMessage)(code);
|
|
216
249
|
}
|
|
@@ -149,6 +149,30 @@ function formatServerError(code, ...args) {
|
|
|
149
149
|
"A component suspended without a Suspense boundary during synchronous server rendering. Use prerender() or a streaming renderer to await it.",
|
|
150
150
|
args
|
|
151
151
|
);
|
|
152
|
+
case 65:
|
|
153
|
+
return (0, import_error_message.formatDevErrorMessage)(
|
|
154
|
+
"Internal SSR invariant violated: ASYNC_SCOPE is not an extension of the active frame's async scope. Please file an Octane issue.",
|
|
155
|
+
args
|
|
156
|
+
);
|
|
157
|
+
case 68:
|
|
158
|
+
return (0, import_error_message.formatDevErrorMessage)(
|
|
159
|
+
"A signal control cannot join values from different document owners.",
|
|
160
|
+
args
|
|
161
|
+
);
|
|
162
|
+
case 69:
|
|
163
|
+
return (0, import_error_message.formatDevErrorMessage)(
|
|
164
|
+
"Independent Hydrate requires a build manifest in RenderOptions.",
|
|
165
|
+
args
|
|
166
|
+
);
|
|
167
|
+
case 70:
|
|
168
|
+
return (0, import_error_message.formatDevErrorMessage)(
|
|
169
|
+
"Independent Hydrate activation chunk is missing from the build manifest.",
|
|
170
|
+
args
|
|
171
|
+
);
|
|
172
|
+
case 71:
|
|
173
|
+
return (0, import_error_message.formatDevErrorMessage)("Unsupported Octane server signal binding ABI.", args);
|
|
174
|
+
case 73:
|
|
175
|
+
return (0, import_error_message.formatDevErrorMessage)("Octane DOM bindings require unique list keys.", args);
|
|
152
176
|
default:
|
|
153
177
|
return (0, import_error_message.formatUnknownDevErrorMessage)(code);
|
|
154
178
|
}
|
|
@@ -0,0 +1,244 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
var control_capture_exports = {};
|
|
20
|
+
__export(control_capture_exports, {
|
|
21
|
+
applyHydrationControlCandidate: () => applyHydrationControlCandidate,
|
|
22
|
+
captureHydrationControlCandidate: () => captureHydrationControlCandidate,
|
|
23
|
+
consumeHydrationControl: () => consumeHydrationControl,
|
|
24
|
+
initializeHydrationControlCapture: () => initializeHydrationControlCapture,
|
|
25
|
+
isEarlyHydrationIntentCurrent: () => isEarlyHydrationIntentCurrent,
|
|
26
|
+
snapshotHydrationControl: () => snapshotHydrationControl
|
|
27
|
+
});
|
|
28
|
+
module.exports = __toCommonJS(control_capture_exports);
|
|
29
|
+
var import_hydration_markers = require("../hydration-markers.cjs");
|
|
30
|
+
var import_interaction_config = require("./interaction-config.cjs");
|
|
31
|
+
var import_early_values = require("../signals/early-values.cjs");
|
|
32
|
+
const HYDRATE_MARKER_SELECTOR = "[data-octane-hydrate-id]";
|
|
33
|
+
const HYDRATE_CONTROL_DOCUMENTS = /* @__PURE__ */ new WeakSet();
|
|
34
|
+
function isEarlyHydrationIntentCurrent([event, target, boundary, id, when, events], ownerDocument) {
|
|
35
|
+
return event.target === target && target.isConnected && boundary.isConnected && target.ownerDocument === ownerDocument && boundary.ownerDocument === ownerDocument && target.closest(`[${import_hydration_markers.HYDRATE_INDEPENDENT_ATTR}]`) === boundary && boundary.getAttribute("data-octane-hydrate-id") === id && boundary.getAttribute("data-octane-hydrate-when") === when && boundary.getAttribute(import_interaction_config.HYDRATE_INTERACTION_EVENTS_ATTR) === events;
|
|
36
|
+
}
|
|
37
|
+
function isHydrationElement(target) {
|
|
38
|
+
return target !== null && target.nodeType === 1;
|
|
39
|
+
}
|
|
40
|
+
const HYDRATE_CONTROL_RECORDS = /* @__PURE__ */ new WeakMap();
|
|
41
|
+
function hydrationControl(target) {
|
|
42
|
+
if (!isHydrationElement(target)) return null;
|
|
43
|
+
const tag = target.localName;
|
|
44
|
+
return tag === "input" || tag === "textarea" || tag === "select" || target.isContentEditable ? target : null;
|
|
45
|
+
}
|
|
46
|
+
function hydrationControlRecord(control) {
|
|
47
|
+
let record = HYDRATE_CONTROL_RECORDS.get(control);
|
|
48
|
+
if (record === void 0) {
|
|
49
|
+
const revision = (0, import_early_values.readEarlyHydrationControlRevision)(control);
|
|
50
|
+
record = { editRevision: revision, selectionRevision: 0, revision, composing: false };
|
|
51
|
+
HYDRATE_CONTROL_RECORDS.set(control, record);
|
|
52
|
+
}
|
|
53
|
+
return record;
|
|
54
|
+
}
|
|
55
|
+
function recordHydrationControlEvent(event) {
|
|
56
|
+
const control = hydrationControl(event.target);
|
|
57
|
+
if (control === null) return;
|
|
58
|
+
const record = hydrationControlRecord(control);
|
|
59
|
+
switch (event.type) {
|
|
60
|
+
case "input":
|
|
61
|
+
record.editRevision++;
|
|
62
|
+
record.revision++;
|
|
63
|
+
(0, import_early_values.publishHydrationControlSignalValues)(control, record.revision);
|
|
64
|
+
break;
|
|
65
|
+
case "compositionstart":
|
|
66
|
+
record.composing = true;
|
|
67
|
+
record.revision++;
|
|
68
|
+
break;
|
|
69
|
+
case "compositionupdate":
|
|
70
|
+
record.revision++;
|
|
71
|
+
break;
|
|
72
|
+
case "compositionend":
|
|
73
|
+
record.composing = false;
|
|
74
|
+
record.revision++;
|
|
75
|
+
break;
|
|
76
|
+
case "focusin":
|
|
77
|
+
case "focusout":
|
|
78
|
+
record.revision++;
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
function recordHydrationSelection(event) {
|
|
82
|
+
const ownerDocument = event.currentTarget;
|
|
83
|
+
const control = hydrationControl(ownerDocument.activeElement);
|
|
84
|
+
if (control === null) return;
|
|
85
|
+
const record = hydrationControlRecord(control);
|
|
86
|
+
record.selectionRevision++;
|
|
87
|
+
record.revision++;
|
|
88
|
+
}
|
|
89
|
+
function snapshotHydrationControl(control) {
|
|
90
|
+
if (hydrationControl(control) === null) return null;
|
|
91
|
+
const record = HYDRATE_CONTROL_RECORDS.get(control);
|
|
92
|
+
const earlyRevision = record === void 0 ? (0, import_early_values.readEarlyHydrationControlRevision)(control) : 0;
|
|
93
|
+
const input = control;
|
|
94
|
+
let value;
|
|
95
|
+
let checked;
|
|
96
|
+
let selectedValues;
|
|
97
|
+
let selectionStart = null;
|
|
98
|
+
let selectionEnd = null;
|
|
99
|
+
let selectionDirection = null;
|
|
100
|
+
if (control.localName === "select") {
|
|
101
|
+
const select = input;
|
|
102
|
+
value = select.value;
|
|
103
|
+
if (select.multiple)
|
|
104
|
+
selectedValues = Array.from(select.selectedOptions, (option) => option.value);
|
|
105
|
+
} else if (control.isContentEditable) {
|
|
106
|
+
value = control.textContent ?? "";
|
|
107
|
+
} else {
|
|
108
|
+
value = input.value;
|
|
109
|
+
if (control.localName === "input") checked = input.checked;
|
|
110
|
+
try {
|
|
111
|
+
selectionStart = input.selectionStart;
|
|
112
|
+
selectionEnd = input.selectionEnd;
|
|
113
|
+
selectionDirection = input.selectionDirection;
|
|
114
|
+
} catch {
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
return {
|
|
118
|
+
editRevision: record?.editRevision ?? earlyRevision,
|
|
119
|
+
selectionRevision: record?.selectionRevision ?? 0,
|
|
120
|
+
revision: record?.revision ?? earlyRevision,
|
|
121
|
+
value,
|
|
122
|
+
...checked === void 0 ? {} : { checked },
|
|
123
|
+
...selectedValues === void 0 ? {} : { selectedValues },
|
|
124
|
+
selectionStart,
|
|
125
|
+
selectionEnd,
|
|
126
|
+
selectionDirection,
|
|
127
|
+
focused: control.ownerDocument.activeElement === control,
|
|
128
|
+
composing: record?.composing ?? false
|
|
129
|
+
};
|
|
130
|
+
}
|
|
131
|
+
function captureHydrationControlCandidate(control) {
|
|
132
|
+
const snapshot = snapshotHydrationControl(control);
|
|
133
|
+
if (snapshot === null) return null;
|
|
134
|
+
initializeHydrationControlCapture(control.ownerDocument);
|
|
135
|
+
return {
|
|
136
|
+
control,
|
|
137
|
+
bindingId: control.getAttribute(import_hydration_markers.HYDRATE_INPUT_ATTR),
|
|
138
|
+
boundaryId: control.closest(HYDRATE_MARKER_SELECTOR)?.getAttribute("data-octane-hydrate-id") ?? null,
|
|
139
|
+
snapshot
|
|
140
|
+
};
|
|
141
|
+
}
|
|
142
|
+
function sameHydrationControlValue(left, right) {
|
|
143
|
+
if (left.value !== right.value || left.checked !== right.checked) return false;
|
|
144
|
+
const a = left.selectedValues;
|
|
145
|
+
const b = right.selectedValues;
|
|
146
|
+
if (a === void 0 || b === void 0) return a === b;
|
|
147
|
+
if (a.length !== b.length) return false;
|
|
148
|
+
for (let index = 0; index < a.length; index++) if (a[index] !== b[index]) return false;
|
|
149
|
+
return true;
|
|
150
|
+
}
|
|
151
|
+
function applyHydrationControlCandidate(candidate, value) {
|
|
152
|
+
const control = candidate.control;
|
|
153
|
+
if (!control.isConnected || control.getAttribute(import_hydration_markers.HYDRATE_INPUT_ATTR) !== candidate.bindingId || (control.closest(HYDRATE_MARKER_SELECTOR)?.getAttribute("data-octane-hydrate-id") ?? null) !== candidate.boundaryId) {
|
|
154
|
+
return false;
|
|
155
|
+
}
|
|
156
|
+
const current = snapshotHydrationControl(control);
|
|
157
|
+
if (current === null || current.revision !== candidate.snapshot.revision || current.editRevision !== candidate.snapshot.editRevision || current.composing || !sameHydrationControlValue(current, candidate.snapshot)) {
|
|
158
|
+
return false;
|
|
159
|
+
}
|
|
160
|
+
if (control.localName === "select") {
|
|
161
|
+
const select = control;
|
|
162
|
+
if (select.multiple && value.selectedValues !== void 0) {
|
|
163
|
+
const selected = new Set(value.selectedValues);
|
|
164
|
+
for (const option of select.options) option.selected = selected.has(option.value);
|
|
165
|
+
} else if (value.value !== void 0) {
|
|
166
|
+
select.value = value.value;
|
|
167
|
+
} else {
|
|
168
|
+
return false;
|
|
169
|
+
}
|
|
170
|
+
} else if (control.isContentEditable) {
|
|
171
|
+
if (value.value === void 0) return false;
|
|
172
|
+
control.textContent = value.value;
|
|
173
|
+
} else {
|
|
174
|
+
const input = control;
|
|
175
|
+
if (value.value !== void 0) input.value = value.value;
|
|
176
|
+
else if (control.localName !== "input" || value.checked === void 0) return false;
|
|
177
|
+
if (control.localName === "input" && value.checked !== void 0) {
|
|
178
|
+
input.checked = value.checked;
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
if (current.focused && current.selectionStart !== null && current.selectionEnd !== null && control.localName !== "select" && !control.isContentEditable) {
|
|
182
|
+
try {
|
|
183
|
+
control.setSelectionRange(
|
|
184
|
+
current.selectionStart,
|
|
185
|
+
current.selectionEnd,
|
|
186
|
+
current.selectionDirection ?? void 0
|
|
187
|
+
);
|
|
188
|
+
} catch {
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
const record = hydrationControlRecord(control);
|
|
192
|
+
record.editRevision++;
|
|
193
|
+
record.revision++;
|
|
194
|
+
(0, import_early_values.publishHydrationControlSignalValues)(control, record.revision);
|
|
195
|
+
return true;
|
|
196
|
+
}
|
|
197
|
+
function consumeHydrationControl(control, revision) {
|
|
198
|
+
initializeHydrationControlCapture(control.ownerDocument);
|
|
199
|
+
const record = hydrationControlRecord(control);
|
|
200
|
+
if (record.revision !== revision) return false;
|
|
201
|
+
record.editRevision = 0;
|
|
202
|
+
record.selectionRevision = 0;
|
|
203
|
+
(0, import_early_values.clearEarlyHydrationControlRevision)(control);
|
|
204
|
+
return true;
|
|
205
|
+
}
|
|
206
|
+
function initializeHydrationControlCapture(ownerDocument) {
|
|
207
|
+
const targetDocument = ownerDocument ?? (typeof document === "undefined" ? void 0 : document);
|
|
208
|
+
if (targetDocument === void 0 || HYDRATE_CONTROL_DOCUMENTS.has(targetDocument)) return;
|
|
209
|
+
HYDRATE_CONTROL_DOCUMENTS.add(targetDocument);
|
|
210
|
+
const mailbox = targetDocument[import_interaction_config.EARLY_HYDRATION_INTENTS_KEY];
|
|
211
|
+
const target = typeof mailbox?.stop === "function" ? targetDocument.defaultView ?? targetDocument : targetDocument;
|
|
212
|
+
const record = target === targetDocument ? recordHydrationControlEvent : (event) => {
|
|
213
|
+
if (event.target?.ownerDocument === targetDocument)
|
|
214
|
+
recordHydrationControlEvent(event);
|
|
215
|
+
};
|
|
216
|
+
for (const event of [
|
|
217
|
+
"input",
|
|
218
|
+
"compositionstart",
|
|
219
|
+
"compositionupdate",
|
|
220
|
+
"compositionend",
|
|
221
|
+
"focusin",
|
|
222
|
+
"focusout"
|
|
223
|
+
]) {
|
|
224
|
+
target.addEventListener(event, record, true);
|
|
225
|
+
}
|
|
226
|
+
targetDocument.addEventListener("selectionchange", recordHydrationSelection, true);
|
|
227
|
+
(0, import_early_values.claimEarlyHydrationControlCapture)(targetDocument);
|
|
228
|
+
for (const intent of mailbox?.q ?? []) {
|
|
229
|
+
const [event] = intent;
|
|
230
|
+
const control = hydrationControl(event.target);
|
|
231
|
+
if (control === null || !isEarlyHydrationIntentCurrent(intent, targetDocument)) continue;
|
|
232
|
+
if (event.type === "input" && (0, import_early_values.readEarlyHydrationControlRevision)(control) > 0) continue;
|
|
233
|
+
recordHydrationControlEvent(event);
|
|
234
|
+
}
|
|
235
|
+
}
|
|
236
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
237
|
+
0 && (module.exports = {
|
|
238
|
+
applyHydrationControlCandidate,
|
|
239
|
+
captureHydrationControlCandidate,
|
|
240
|
+
consumeHydrationControl,
|
|
241
|
+
initializeHydrationControlCapture,
|
|
242
|
+
isEarlyHydrationIntentCurrent,
|
|
243
|
+
snapshotHydrationControl
|
|
244
|
+
});
|