octane 0.2.12 → 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/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-tables.cjs +4 -94
- package/dist/cjs/error-codes.client.generated.cjs +33 -0
- package/dist/cjs/error-codes.server.generated.cjs +19 -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 +6 -0
- package/dist/cjs/runtime.cjs +2791 -215
- package/dist/cjs/runtime.server.cjs +716 -76
- package/dist/cjs/server/early-signals.cjs +45 -0
- package/dist/cjs/server/index.cjs +44 -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 +163 -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 +32 -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/version.cjs +1 -1
- package/dist/class-names.d.ts +5 -0
- package/dist/class-names.js +25 -0
- package/dist/compiler/bundler.js +34 -6
- package/dist/compiler/compile.js +2234 -559
- 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 +26 -0
- package/dist/compiler/hydrate-boundaries.js +358 -15
- package/dist/compiler/index.d.ts +38 -1
- package/dist/compiler/index.js +1 -0
- package/dist/compiler/native-attribute-reads.js +127 -0
- package/dist/compiler/native-read-diagnostics.js +48 -9
- package/dist/compiler/native-read-types.js +55 -32
- 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.js +57 -10
- 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.d.ts +6 -1
- package/dist/compiler/volar.js +674 -143
- package/dist/constants.d.ts +1 -0
- package/dist/constants.js +10 -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-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 +5 -0
- package/dist/error-codes.server.generated.js +19 -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 +2 -0
- package/dist/index.js +4 -0
- package/dist/internal/signal-read.d.ts +1 -0
- package/dist/internal/signal-read.js +4 -0
- package/dist/jsx-runtime.d.ts +45 -6
- package/dist/public-types.d.ts +15 -1
- package/dist/runtime.d.ts +259 -21
- package/dist/runtime.js +2812 -220
- package/dist/runtime.server.d.ts +86 -6
- package/dist/runtime.server.js +712 -76
- package/dist/server/early-signals.d.ts +14 -0
- package/dist/server/early-signals.js +34 -0
- package/dist/server/index.d.ts +10 -2
- package/dist/server/index.js +48 -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 +50 -5
- package/dist/signals/graph.js +170 -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 +32 -3
- package/dist/signals/read-protocol.js +26 -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/version.js +1 -1
- package/package.json +37 -1
|
@@ -0,0 +1,45 @@
|
|
|
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 early_signals_exports = {};
|
|
20
|
+
__export(early_signals_exports, {
|
|
21
|
+
earlySignalBootstrapScript: () => earlySignalBootstrapScript,
|
|
22
|
+
streamedSignalBootstrapJs: () => streamedSignalBootstrapJs
|
|
23
|
+
});
|
|
24
|
+
module.exports = __toCommonJS(early_signals_exports);
|
|
25
|
+
var import_constants = require("../constants.cjs");
|
|
26
|
+
var import_interaction_config = require("../hydration/interaction-config.cjs");
|
|
27
|
+
function earlySignalBootstrapScript(options = {}) {
|
|
28
|
+
const nonce = options.nonce === void 0 ? "" : ' nonce="' + options.nonce.replace(/&/g, "&").replace(/"/g, """).replace(/</g, "<").replace(/>/g, ">") + '"';
|
|
29
|
+
return "<script " + import_constants.STREAM_SCRIPT_ATTR + nonce + ">" + streamedSignalBootstrapJs(options.independentHydration) + "</script>";
|
|
30
|
+
}
|
|
31
|
+
let STREAMED_SIGNAL_BOOTSTRAP_JS;
|
|
32
|
+
let STREAMED_SIGNAL_INDEPENDENT_BOOTSTRAP_JS;
|
|
33
|
+
function streamedSignalBootstrapJs(independentHydration = false) {
|
|
34
|
+
const signals = STREAMED_SIGNAL_BOOTSTRAP_JS ??= '(function(g){var z="__octaneStreamedSignalSelections",v=g[z];if(!v){var a=[];g[z]={version:1,identities:a,register:function(i){if(a.length>=256){this.overflow=true;return;}a.push(i);}};}var k="__octaneStreamedRenderer",e=g[k];if(e)return;var q=[];g[k]={version:1,frames:q,receive:function(f){if(q.length>=512){this.overflow=true;return;}q.push(f);}};var s=g.__octaneEarlySignalControls||(g.__octaneEarlySignalControls={q:[],n:0});if(!s.l){s.l=1;document.addEventListener("input",function(e){var t=e.target;if(!t||!t.getAttribute||!t.getAttribute("' + import_constants.SIGNAL_CONTROL_ATTR + '"))return;var r=++s.n,p=g.__octanePublishSignalControl;if(p){p(t,r);return;}for(var i=0;i<s.q.length;i++)if(s.q[i][0]===t){s.q[i]=[t,r];return;}if(s.q.length<256)s.q.push([t,r]);},true);}})(globalThis);';
|
|
35
|
+
if (!independentHydration) return signals;
|
|
36
|
+
return STREAMED_SIGNAL_INDEPENDENT_BOOTSTRAP_JS ??= signals + // A completed client build can contain its first independent widget only
|
|
37
|
+
// in a later streamed wave. Capture its intent before module evaluation,
|
|
38
|
+
// with no activation dependency on its parent or sidecar being present.
|
|
39
|
+
"(function(d){var h=" + JSON.stringify(import_interaction_config.EARLY_HYDRATION_INTENTS_KEY) + ";if(d[h])return;var u=d[h]={version:1,q:[]},es=" + JSON.stringify(import_interaction_config.HYDRATE_SUPPORTED_INTERACTION_EVENTS) + ",ds=" + JSON.stringify(import_interaction_config.HYDRATE_DEFAULT_INTERACTION_EVENTS) + ",ns=" + JSON.stringify(import_interaction_config.HYDRATE_NATIVE_DEFAULT_INTERACTION_EVENTS) + ',is="[' + import_constants.HYDRATE_INDEPENDENT_ATTR + ']",ms="[' + import_constants.HYDRATE_ID_ATTR + ']";function c(e){var t=e.target;if(!t||!t.closest)return;var b=t.closest(is);if(!b)return;var id=b.getAttribute("' + import_constants.HYDRATE_ID_ATTR + '");if(id===null)return;var w=b.getAttribute("' + import_constants.HYDRATE_WHEN_ATTR + '"),a=b.getAttribute("' + import_interaction_config.HYDRATE_INTERACTION_EVENTS_ATTR + '");if(w===null||w==="never")return;var link=t.closest("a[href],area[href]");if(link&&b.contains(link))return;if((e.type==="pointerenter"||e.type==="mouseenter")&&d.elementFromPoint){var hit=d.elementFromPoint(e.clientX,e.clientY),nested=hit&&hit.closest(is);if(nested&&nested!==b&&b.contains(nested))return;}var m=t.closest(ms),ok=false;while(m){var x=m.getAttribute("' + import_constants.HYDRATE_WHEN_ATTR + '"),y=m.getAttribute("' + import_interaction_config.HYDRATE_INTERACTION_EVENTS_ATTR + '");if(x==="dynamic"&&e.type==="click"||x==="interaction"&&(y===null?ds:y.split(/\\s+/)).indexOf(e.type)!==-1)ok=true;if(m===b)break;m=m.parentElement&&m.parentElement.closest(ms);}if(!ok)return;var c=null,g=null,p=u.q[u.q.length-1];if(e.type==="click"&&e.button===0&&!e.altKey&&!e.ctrlKey&&!e.metaKey&&!e.shiftKey){c=t.closest("button[' + import_interaction_config.HYDRATE_SELECTION_ATTR + ']");if(c&&c.type==="button"&&c.closest(is)===b)g=c.getAttribute("' + import_interaction_config.HYDRATE_SELECTION_ATTR + '");}var v=g?[e,t,b,id,w,a,c,g]:[e,t,b,id,w,a];if(g&&p&&p[2]===b&&p[7]===g&&p[6].isConnected&&p[6].contains(p[1])&&p[6].type==="button"&&p[6].getAttribute("' + import_interaction_config.HYDRATE_SELECTION_ATTR + '")===g){u.q[u.q.length-1]=v;}else{if(u.q.length>=' + import_interaction_config.EARLY_HYDRATION_INTENTS_LIMIT + "){u.overflow=true;u.q.length=0;u.stop();return;}u.q.push(v);}if(e.bubbles){if(e.cancelable&&ns.indexOf(e.type)===-1)e.preventDefault();e.stopPropagation();e.stopImmediatePropagation();}}u.stop=function(){for(var i=0;i<es.length;i++)d.removeEventListener(es[i],c,true);u.stop=null;};for(var j=0;j<es.length;j++)d.addEventListener(es[j],c,true);})(document);";
|
|
40
|
+
}
|
|
41
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
42
|
+
0 && (module.exports = {
|
|
43
|
+
earlySignalBootstrapScript,
|
|
44
|
+
streamedSignalBootstrapJs
|
|
45
|
+
});
|
|
@@ -29,25 +29,39 @@ __export(server_exports, {
|
|
|
29
29
|
Suspense: () => import_runtime_server.Suspense,
|
|
30
30
|
ViewTransition: () => import_runtime_server.ViewTransition,
|
|
31
31
|
__methodDep: () => import_method_dep.__methodDep,
|
|
32
|
+
__registerServerFunction: () => import_server_call.__registerServerFunction,
|
|
33
|
+
__serverCall: () => import_server_call.__serverCall,
|
|
34
|
+
__setServerCallContextSource: () => import_server_call.__setServerCallContextSource,
|
|
32
35
|
__useLinkedStateWithGetter: () => import_runtime_server.__useLinkedStateWithGetter,
|
|
33
36
|
__useReducerWithGetter: () => import_runtime_server.__useReducerWithGetter,
|
|
34
37
|
__useStateWithGetter: () => import_runtime_server.__useStateWithGetter,
|
|
35
38
|
addTransitionType: () => import_runtime_server.addTransitionType,
|
|
39
|
+
batchServerCalls: () => import_rpc_batch.batchServerCalls,
|
|
36
40
|
cloneElement: () => import_runtime_server.cloneElement,
|
|
41
|
+
createAutomaticStreamedSignalInjection: () => import_streamed_signals.createAutomaticStreamedSignalInjection,
|
|
37
42
|
createContext: () => import_runtime_server.createContext,
|
|
38
43
|
createElement: () => import_runtime_server.createElement,
|
|
39
44
|
createPortal: () => import_runtime_server.createPortal,
|
|
40
45
|
createScopedElement: () => import_runtime_server.createScopedElement,
|
|
41
46
|
createScopedValue: () => import_runtime_server.createScopedValue,
|
|
47
|
+
createStreamedRegionPlacementFrame: () => import_streamed_region.createStreamedRegionPlacementFrame,
|
|
48
|
+
createStreamedRendererFrameStream: () => import_streamed_signals.createStreamedRendererFrameStream,
|
|
49
|
+
createStreamedSignalInjection: () => import_streamed_signals.createStreamedSignalInjection,
|
|
50
|
+
createStreamedSignalResultFrames: () => import_streamed_signals.createStreamedSignalResultFrames,
|
|
42
51
|
createSubSlot: () => import_sub_slot.createSubSlot,
|
|
43
52
|
descriptorChildren: () => import_runtime_server.descriptorChildren,
|
|
53
|
+
earlySignalBootstrapScript: () => import_early_signals.earlySignalBootstrapScript,
|
|
54
|
+
enableServerSignalBindings: () => import_runtime_server.enableServerSignalBindings,
|
|
44
55
|
escapeAttr: () => import_runtime_server.escapeAttr,
|
|
45
56
|
escapeHtml: () => import_runtime_server.escapeHtml,
|
|
46
57
|
executeServerFunction: () => import_rpc.executeServerFunction,
|
|
58
|
+
executeServerFunctionBatch: () => import_rpc_batch.executeServerFunctionBatch,
|
|
59
|
+
executeServerFunctionStream: () => import_rpc.executeServerFunctionStream,
|
|
47
60
|
flushSync: () => import_runtime_server.flushSync,
|
|
48
61
|
getSsrSuspenseTimeout: () => import_runtime_server.getSsrSuspenseTimeout,
|
|
49
62
|
hookSlots: () => import_runtime_server.hookSlots,
|
|
50
63
|
injectStyle: () => import_runtime_server.injectStyle,
|
|
64
|
+
installSignalOwnerEnvironment: () => import_owner_context.installSignalOwnerEnvironment,
|
|
51
65
|
invokeManualHook: () => import_runtime_server.invokeManualHook,
|
|
52
66
|
isChildrenBlock: () => import_runtime_server.isChildrenBlock,
|
|
53
67
|
isValidElement: () => import_runtime_server.isValidElement,
|
|
@@ -74,6 +88,7 @@ __export(server_exports, {
|
|
|
74
88
|
renderToStaticMarkup: () => import_runtime_server.renderToStaticMarkup,
|
|
75
89
|
renderToString: () => import_runtime_server.renderToString,
|
|
76
90
|
requestFormReset: () => import_runtime_server.requestFormReset,
|
|
91
|
+
retireSignalOwnerIdentity: () => import_owner_context.retireSignalOwnerIdentity,
|
|
77
92
|
setSsrSuspenseTimeout: () => import_runtime_server.setSsrSuspenseTimeout,
|
|
78
93
|
ssrActivity: () => import_runtime_server.ssrActivity,
|
|
79
94
|
ssrArm: () => import_runtime_server.ssrArm,
|
|
@@ -110,6 +125,9 @@ __export(server_exports, {
|
|
|
110
125
|
ssrSelectAttrs: () => import_runtime_server.ssrSelectAttrs,
|
|
111
126
|
ssrSelectScope: () => import_runtime_server.ssrSelectScope,
|
|
112
127
|
ssrSelectScopeSources: () => import_runtime_server.ssrSelectScopeSources,
|
|
128
|
+
ssrSignalControlAttrs: () => import_runtime_server.ssrSignalControlAttrs,
|
|
129
|
+
ssrSignalControlValue: () => import_runtime_server.ssrSignalControlValue,
|
|
130
|
+
ssrSignalValue: () => import_runtime_server.ssrSignalValue,
|
|
113
131
|
ssrSnapshotSpread: () => import_runtime_server.ssrSnapshotSpread,
|
|
114
132
|
ssrSpread: () => import_runtime_server.ssrSpread,
|
|
115
133
|
ssrSpreadContent: () => import_runtime_server.ssrSpreadContent,
|
|
@@ -124,6 +142,7 @@ __export(server_exports, {
|
|
|
124
142
|
ssrValueAttr: () => import_runtime_server.ssrValueAttr,
|
|
125
143
|
ssrVoidContent: () => import_runtime_server.ssrVoidContent,
|
|
126
144
|
startTransition: () => import_runtime_server.startTransition,
|
|
145
|
+
streamedRendererFrameScript: () => import_streamed_signals.streamedRendererFrameScript,
|
|
127
146
|
styleMap: () => import_runtime_server.styleMap,
|
|
128
147
|
subSlot: () => import_sub_slot.subSlot,
|
|
129
148
|
touchStyleMap: () => import_runtime_server.touchStyleMap,
|
|
@@ -162,6 +181,12 @@ __export(server_exports, {
|
|
|
162
181
|
module.exports = __toCommonJS(server_exports);
|
|
163
182
|
var import_trusted_html = require("../trusted-html.cjs");
|
|
164
183
|
var import_rpc = require("./rpc.cjs");
|
|
184
|
+
var import_early_signals = require("./early-signals.cjs");
|
|
185
|
+
var import_rpc_batch = require("./rpc-batch.cjs");
|
|
186
|
+
var import_streamed_region = require("./streamed-region.cjs");
|
|
187
|
+
var import_streamed_signals = require("./streamed-signals.cjs");
|
|
188
|
+
var import_owner_context = require("../signals/owner-context.cjs");
|
|
189
|
+
var import_server_call = require("../server-call.cjs");
|
|
165
190
|
var import_version = require("../version.cjs");
|
|
166
191
|
var import_compatibility = require("../compatibility.cjs");
|
|
167
192
|
var import_sub_slot = require("../sub-slot.cjs");
|
|
@@ -180,25 +205,39 @@ var import_runtime_server = require("../runtime.server.cjs");
|
|
|
180
205
|
Suspense,
|
|
181
206
|
ViewTransition,
|
|
182
207
|
__methodDep,
|
|
208
|
+
__registerServerFunction,
|
|
209
|
+
__serverCall,
|
|
210
|
+
__setServerCallContextSource,
|
|
183
211
|
__useLinkedStateWithGetter,
|
|
184
212
|
__useReducerWithGetter,
|
|
185
213
|
__useStateWithGetter,
|
|
186
214
|
addTransitionType,
|
|
215
|
+
batchServerCalls,
|
|
187
216
|
cloneElement,
|
|
217
|
+
createAutomaticStreamedSignalInjection,
|
|
188
218
|
createContext,
|
|
189
219
|
createElement,
|
|
190
220
|
createPortal,
|
|
191
221
|
createScopedElement,
|
|
192
222
|
createScopedValue,
|
|
223
|
+
createStreamedRegionPlacementFrame,
|
|
224
|
+
createStreamedRendererFrameStream,
|
|
225
|
+
createStreamedSignalInjection,
|
|
226
|
+
createStreamedSignalResultFrames,
|
|
193
227
|
createSubSlot,
|
|
194
228
|
descriptorChildren,
|
|
229
|
+
earlySignalBootstrapScript,
|
|
230
|
+
enableServerSignalBindings,
|
|
195
231
|
escapeAttr,
|
|
196
232
|
escapeHtml,
|
|
197
233
|
executeServerFunction,
|
|
234
|
+
executeServerFunctionBatch,
|
|
235
|
+
executeServerFunctionStream,
|
|
198
236
|
flushSync,
|
|
199
237
|
getSsrSuspenseTimeout,
|
|
200
238
|
hookSlots,
|
|
201
239
|
injectStyle,
|
|
240
|
+
installSignalOwnerEnvironment,
|
|
202
241
|
invokeManualHook,
|
|
203
242
|
isChildrenBlock,
|
|
204
243
|
isValidElement,
|
|
@@ -225,6 +264,7 @@ var import_runtime_server = require("../runtime.server.cjs");
|
|
|
225
264
|
renderToStaticMarkup,
|
|
226
265
|
renderToString,
|
|
227
266
|
requestFormReset,
|
|
267
|
+
retireSignalOwnerIdentity,
|
|
228
268
|
setSsrSuspenseTimeout,
|
|
229
269
|
ssrActivity,
|
|
230
270
|
ssrArm,
|
|
@@ -261,6 +301,9 @@ var import_runtime_server = require("../runtime.server.cjs");
|
|
|
261
301
|
ssrSelectAttrs,
|
|
262
302
|
ssrSelectScope,
|
|
263
303
|
ssrSelectScopeSources,
|
|
304
|
+
ssrSignalControlAttrs,
|
|
305
|
+
ssrSignalControlValue,
|
|
306
|
+
ssrSignalValue,
|
|
264
307
|
ssrSnapshotSpread,
|
|
265
308
|
ssrSpread,
|
|
266
309
|
ssrSpreadContent,
|
|
@@ -275,6 +318,7 @@ var import_runtime_server = require("../runtime.server.cjs");
|
|
|
275
318
|
ssrValueAttr,
|
|
276
319
|
ssrVoidContent,
|
|
277
320
|
startTransition,
|
|
321
|
+
streamedRendererFrameScript,
|
|
278
322
|
styleMap,
|
|
279
323
|
subSlot,
|
|
280
324
|
touchStyleMap,
|
|
@@ -0,0 +1,149 @@
|
|
|
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 rpc_batch_exports = {};
|
|
20
|
+
__export(rpc_batch_exports, {
|
|
21
|
+
batchServerCalls: () => batchServerCalls,
|
|
22
|
+
executeServerFunctionBatch: () => executeServerFunctionBatch
|
|
23
|
+
});
|
|
24
|
+
module.exports = __toCommonJS(rpc_batch_exports);
|
|
25
|
+
var import_server_call = require("../server-call.cjs");
|
|
26
|
+
var import_server_rpc_protocol = require("../server-rpc-protocol.cjs");
|
|
27
|
+
var import_server_rpc_stream_client = require("../server-rpc-stream-client.cjs");
|
|
28
|
+
var import_rpc_stream = require("./rpc-stream.cjs");
|
|
29
|
+
function batchServerCalls(options, callback) {
|
|
30
|
+
(0, import_server_rpc_protocol.validateServerCallBatch)(options);
|
|
31
|
+
return callback();
|
|
32
|
+
}
|
|
33
|
+
function executeServerFunctionBatch(body, invoke, options = {}) {
|
|
34
|
+
const limits = (0, import_server_rpc_protocol.serverResultLimits)(options);
|
|
35
|
+
let members;
|
|
36
|
+
try {
|
|
37
|
+
const envelope = JSON.parse(body);
|
|
38
|
+
if (!Array.isArray(envelope) || envelope.length !== 2 || envelope[0] !== 1 || !Array.isArray(envelope[1]) || envelope[1].length === 0 || envelope[1].length > 32) {
|
|
39
|
+
throw new Error("Invalid batch");
|
|
40
|
+
}
|
|
41
|
+
members = envelope[1].map((member, id) => {
|
|
42
|
+
if (!Array.isArray(member) || member.length !== 3 || member[0] !== id || typeof member[1] !== "string" || !/^[a-f0-9]{8}$/.test(member[1]) || typeof member[2] !== "string") {
|
|
43
|
+
throw new Error("Invalid batch member");
|
|
44
|
+
}
|
|
45
|
+
(0, import_server_rpc_protocol.decodeServerArguments)(member[2]);
|
|
46
|
+
return { id, hash: member[1], body: member[2] };
|
|
47
|
+
});
|
|
48
|
+
} catch (error) {
|
|
49
|
+
throw new import_server_call.InvalidServerFunctionPayloadError(error);
|
|
50
|
+
}
|
|
51
|
+
const cancellation = new AbortController();
|
|
52
|
+
const signal = options.signal === void 0 ? cancellation.signal : AbortSignal.any([options.signal, cancellation.signal]);
|
|
53
|
+
async function* results() {
|
|
54
|
+
const ready = [];
|
|
55
|
+
let wake;
|
|
56
|
+
let remaining = members.length;
|
|
57
|
+
let closed = false;
|
|
58
|
+
let sequence = 1;
|
|
59
|
+
for (const member of members) {
|
|
60
|
+
void (async () => {
|
|
61
|
+
const timeout = new AbortController();
|
|
62
|
+
const memberSignal = AbortSignal.any([signal, timeout.signal]);
|
|
63
|
+
const timer = setTimeout(
|
|
64
|
+
() => timeout.abort(new DOMException("Server batch member timed out", "TimeoutError")),
|
|
65
|
+
limits.timeoutMs
|
|
66
|
+
);
|
|
67
|
+
let abort;
|
|
68
|
+
const aborted = new Promise((_, reject) => {
|
|
69
|
+
abort = () => reject(memberSignal.reason);
|
|
70
|
+
memberSignal.addEventListener("abort", abort, { once: true });
|
|
71
|
+
if (memberSignal.aborted) abort();
|
|
72
|
+
});
|
|
73
|
+
let outcome;
|
|
74
|
+
try {
|
|
75
|
+
const work = (async () => {
|
|
76
|
+
memberSignal.throwIfAborted();
|
|
77
|
+
const response = await invoke(member, memberSignal);
|
|
78
|
+
if (memberSignal.aborted) {
|
|
79
|
+
void response.body?.cancel().catch(() => {
|
|
80
|
+
});
|
|
81
|
+
memberSignal.throwIfAborted();
|
|
82
|
+
}
|
|
83
|
+
if (!response.ok) {
|
|
84
|
+
void response.body?.cancel().catch(() => {
|
|
85
|
+
});
|
|
86
|
+
return [
|
|
87
|
+
member.id,
|
|
88
|
+
response.headers.get("Octane-RPC-Outcome") === "rejected" ? "rejected" : "uncertain",
|
|
89
|
+
`Server function failed with status ${response.status}`
|
|
90
|
+
];
|
|
91
|
+
}
|
|
92
|
+
const value = await (0, import_server_rpc_stream_client.readServerResult)(response, { ...limits, signal: memberSignal });
|
|
93
|
+
if (value !== null && typeof value === "object" && Symbol.asyncIterator in value) {
|
|
94
|
+
await value[Symbol.asyncIterator]().return?.();
|
|
95
|
+
throw new Error("Subscriptions cannot join a finite server-call batch");
|
|
96
|
+
}
|
|
97
|
+
return [member.id, "value", value];
|
|
98
|
+
})();
|
|
99
|
+
outcome = await Promise.race([work, aborted]);
|
|
100
|
+
} catch {
|
|
101
|
+
outcome = [
|
|
102
|
+
member.id,
|
|
103
|
+
"uncertain",
|
|
104
|
+
"Server batch member did not produce an authoritative result"
|
|
105
|
+
];
|
|
106
|
+
} finally {
|
|
107
|
+
clearTimeout(timer);
|
|
108
|
+
memberSignal.removeEventListener("abort", abort);
|
|
109
|
+
}
|
|
110
|
+
if (!closed) {
|
|
111
|
+
ready.push(outcome);
|
|
112
|
+
wake?.();
|
|
113
|
+
}
|
|
114
|
+
})();
|
|
115
|
+
}
|
|
116
|
+
try {
|
|
117
|
+
while (remaining > 0) {
|
|
118
|
+
if (ready.length === 0)
|
|
119
|
+
await new Promise((resolve) => {
|
|
120
|
+
wake = resolve;
|
|
121
|
+
});
|
|
122
|
+
wake = void 0;
|
|
123
|
+
while (ready.length > 0) {
|
|
124
|
+
remaining--;
|
|
125
|
+
let outcome = ready.shift();
|
|
126
|
+
if ((0, import_server_rpc_protocol.encodeServerResultFrame)(sequence, { kind: "value", value: outcome }).byteLength > limits.maxFrameBytes) {
|
|
127
|
+
outcome = [outcome[0], "uncertain", "Server batch member exceeded its frame budget"];
|
|
128
|
+
}
|
|
129
|
+
sequence++;
|
|
130
|
+
yield outcome;
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
} finally {
|
|
134
|
+
closed = true;
|
|
135
|
+
cancellation.abort();
|
|
136
|
+
ready.length = 0;
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
return (0, import_rpc_stream.createServerResultStream)(results(), {
|
|
140
|
+
...limits,
|
|
141
|
+
signal,
|
|
142
|
+
cancel: () => cancellation.abort()
|
|
143
|
+
});
|
|
144
|
+
}
|
|
145
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
146
|
+
0 && (module.exports = {
|
|
147
|
+
batchServerCalls,
|
|
148
|
+
executeServerFunctionBatch
|
|
149
|
+
});
|
|
@@ -0,0 +1,146 @@
|
|
|
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 rpc_stream_exports = {};
|
|
20
|
+
__export(rpc_stream_exports, {
|
|
21
|
+
createServerResultStream: () => createServerResultStream
|
|
22
|
+
});
|
|
23
|
+
module.exports = __toCommonJS(rpc_stream_exports);
|
|
24
|
+
var import_server_rpc_protocol = require("../server-rpc-protocol.cjs");
|
|
25
|
+
function createServerResultStream(result, options = {}) {
|
|
26
|
+
const limits = (0, import_server_rpc_protocol.serverResultLimits)(options);
|
|
27
|
+
let sequence = 0;
|
|
28
|
+
let totalBytes = 0;
|
|
29
|
+
let iterator;
|
|
30
|
+
let finished = false;
|
|
31
|
+
let terminal = false;
|
|
32
|
+
let streaming = false;
|
|
33
|
+
let initialized = false;
|
|
34
|
+
let pending = Promise.resolve(result);
|
|
35
|
+
void pending.catch(() => {
|
|
36
|
+
});
|
|
37
|
+
let controller;
|
|
38
|
+
let timer;
|
|
39
|
+
const cleanup = () => {
|
|
40
|
+
clearTimeout(timer);
|
|
41
|
+
options.signal?.removeEventListener("abort", abort);
|
|
42
|
+
};
|
|
43
|
+
const closeIterator = () => {
|
|
44
|
+
try {
|
|
45
|
+
void Promise.resolve(iterator?.return?.()).catch(() => {
|
|
46
|
+
});
|
|
47
|
+
} catch {
|
|
48
|
+
}
|
|
49
|
+
iterator = void 0;
|
|
50
|
+
};
|
|
51
|
+
const write = (frame) => {
|
|
52
|
+
const encoded = (0, import_server_rpc_protocol.encodeServerResultFrame)(sequence, frame);
|
|
53
|
+
if (encoded.byteLength > limits.maxFrameBytes || totalBytes + encoded.byteLength > limits.maxTotalBytes) {
|
|
54
|
+
throw new Error("Server result exceeded its response budget");
|
|
55
|
+
}
|
|
56
|
+
sequence++;
|
|
57
|
+
totalBytes += encoded.byteLength;
|
|
58
|
+
controller.enqueue(encoded);
|
|
59
|
+
};
|
|
60
|
+
const fail = (message) => {
|
|
61
|
+
if (finished) return;
|
|
62
|
+
finished = true;
|
|
63
|
+
pending = void 0;
|
|
64
|
+
cleanup();
|
|
65
|
+
options.cancel?.();
|
|
66
|
+
closeIterator();
|
|
67
|
+
try {
|
|
68
|
+
write({ kind: "error", error: message });
|
|
69
|
+
controller.close();
|
|
70
|
+
} catch (error) {
|
|
71
|
+
controller.error(error);
|
|
72
|
+
}
|
|
73
|
+
};
|
|
74
|
+
const abort = () => fail("Server function was canceled");
|
|
75
|
+
return new ReadableStream(
|
|
76
|
+
{
|
|
77
|
+
start(streamController) {
|
|
78
|
+
controller = streamController;
|
|
79
|
+
timer = setTimeout(() => fail("Server function timed out"), limits.timeoutMs);
|
|
80
|
+
options.signal?.addEventListener("abort", abort, { once: true });
|
|
81
|
+
if (options.signal?.aborted) abort();
|
|
82
|
+
},
|
|
83
|
+
async pull() {
|
|
84
|
+
if (finished) return;
|
|
85
|
+
try {
|
|
86
|
+
if (terminal) {
|
|
87
|
+
write({ kind: "complete" });
|
|
88
|
+
finished = true;
|
|
89
|
+
cleanup();
|
|
90
|
+
controller.close();
|
|
91
|
+
return;
|
|
92
|
+
}
|
|
93
|
+
if (!initialized) {
|
|
94
|
+
const value = await pending;
|
|
95
|
+
pending = void 0;
|
|
96
|
+
if (finished) {
|
|
97
|
+
if (value !== null && typeof value === "object" && Symbol.asyncIterator in value) {
|
|
98
|
+
iterator = value[Symbol.asyncIterator]();
|
|
99
|
+
closeIterator();
|
|
100
|
+
}
|
|
101
|
+
return;
|
|
102
|
+
}
|
|
103
|
+
initialized = true;
|
|
104
|
+
if (value !== null && typeof value === "object" && Symbol.asyncIterator in value) {
|
|
105
|
+
iterator = value[Symbol.asyncIterator]();
|
|
106
|
+
streaming = true;
|
|
107
|
+
write({ kind: "stream" });
|
|
108
|
+
return;
|
|
109
|
+
}
|
|
110
|
+
write({ kind: "value", value });
|
|
111
|
+
terminal = true;
|
|
112
|
+
return;
|
|
113
|
+
}
|
|
114
|
+
if (streaming) {
|
|
115
|
+
const item = await iterator.next();
|
|
116
|
+
if (finished) return;
|
|
117
|
+
if (item.done) {
|
|
118
|
+
iterator = void 0;
|
|
119
|
+
write({ kind: "complete" });
|
|
120
|
+
finished = true;
|
|
121
|
+
cleanup();
|
|
122
|
+
controller.close();
|
|
123
|
+
} else {
|
|
124
|
+
write({ kind: "value", value: item.value });
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
} catch {
|
|
128
|
+
fail("Server function failed");
|
|
129
|
+
}
|
|
130
|
+
},
|
|
131
|
+
cancel() {
|
|
132
|
+
if (finished) return;
|
|
133
|
+
finished = true;
|
|
134
|
+
pending = void 0;
|
|
135
|
+
cleanup();
|
|
136
|
+
options.cancel?.();
|
|
137
|
+
closeIterator();
|
|
138
|
+
}
|
|
139
|
+
},
|
|
140
|
+
{ highWaterMark: 0 }
|
|
141
|
+
);
|
|
142
|
+
}
|
|
143
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
144
|
+
0 && (module.exports = {
|
|
145
|
+
createServerResultStream
|
|
146
|
+
});
|
package/dist/cjs/server/rpc.cjs
CHANGED
|
@@ -28,31 +28,50 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
|
|
|
28
28
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
29
29
|
var rpc_exports = {};
|
|
30
30
|
__export(rpc_exports, {
|
|
31
|
-
executeServerFunction: () => executeServerFunction
|
|
31
|
+
executeServerFunction: () => executeServerFunction,
|
|
32
|
+
executeServerFunctionStream: () => executeServerFunctionStream
|
|
32
33
|
});
|
|
33
34
|
module.exports = __toCommonJS(rpc_exports);
|
|
34
35
|
var devalue = __toESM(require("devalue"), 1);
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
this.name = "InvalidServerFunctionPayloadError";
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
async function executeServerFunction(fn, body) {
|
|
36
|
+
var import_server_call = require("../server-call.cjs");
|
|
37
|
+
var import_rpc_stream = require("./rpc-stream.cjs");
|
|
38
|
+
var import_server_rpc_protocol = require("../server-rpc-protocol.cjs");
|
|
39
|
+
function serverArguments(body) {
|
|
43
40
|
let args;
|
|
44
41
|
try {
|
|
45
42
|
args = devalue.parse(body);
|
|
46
43
|
} catch (error) {
|
|
47
|
-
throw new InvalidServerFunctionPayloadError(error);
|
|
48
|
-
}
|
|
49
|
-
if (!Array.isArray(args)) {
|
|
50
|
-
throw new InvalidServerFunctionPayloadError();
|
|
44
|
+
throw new import_server_call.InvalidServerFunctionPayloadError(error);
|
|
51
45
|
}
|
|
52
|
-
|
|
46
|
+
if (!Array.isArray(args)) throw new import_server_call.InvalidServerFunctionPayloadError();
|
|
47
|
+
return args;
|
|
48
|
+
}
|
|
49
|
+
async function executeServerFunction(fn, body, context) {
|
|
50
|
+
const args = serverArguments(body);
|
|
51
|
+
const value = await (0, import_server_call.invokeServerFunction)(fn, args, context);
|
|
53
52
|
return devalue.stringify({ value });
|
|
54
53
|
}
|
|
54
|
+
function executeServerFunctionStream(fn, body, context, limits) {
|
|
55
|
+
const resolvedLimits = (0, import_server_rpc_protocol.serverResultLimits)(limits);
|
|
56
|
+
let args;
|
|
57
|
+
try {
|
|
58
|
+
args = (0, import_server_rpc_protocol.decodeServerArguments)(body);
|
|
59
|
+
} catch (error) {
|
|
60
|
+
throw new import_server_call.InvalidServerFunctionPayloadError(error);
|
|
61
|
+
}
|
|
62
|
+
const cancellation = new AbortController();
|
|
63
|
+
const signal = context === void 0 ? cancellation.signal : AbortSignal.any([context.signal, cancellation.signal]);
|
|
64
|
+
const trusted = context === void 0 ? void 0 : { ...context, signal };
|
|
65
|
+
return (0, import_rpc_stream.createServerResultStream)(
|
|
66
|
+
Promise.resolve().then(() => {
|
|
67
|
+
signal.throwIfAborted();
|
|
68
|
+
return (0, import_server_call.invokeServerFunction)(fn, args, trusted);
|
|
69
|
+
}),
|
|
70
|
+
{ ...resolvedLimits, signal, cancel: () => cancellation.abort() }
|
|
71
|
+
);
|
|
72
|
+
}
|
|
55
73
|
// Annotate the CommonJS export names for ESM import in node:
|
|
56
74
|
0 && (module.exports = {
|
|
57
|
-
executeServerFunction
|
|
75
|
+
executeServerFunction,
|
|
76
|
+
executeServerFunctionStream
|
|
58
77
|
});
|