@exactjs/core 0.6.3 → 0.6.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/README.md +2 -0
- package/dist/client/component/resumption.js +5 -1
- package/dist/client/component/resumption.js.map +1 -1
- package/dist/client/framework/fragment-target-projection-plan.d.ts +9 -0
- package/dist/client/framework/fragment-target-projection-plan.d.ts.map +1 -0
- package/dist/client/framework/fragment-target-projection-plan.js +99 -0
- package/dist/client/framework/fragment-target-projection-plan.js.map +1 -0
- package/dist/client/framework/fragment-target-projection.d.ts +1 -5
- package/dist/client/framework/fragment-target-projection.d.ts.map +1 -1
- package/dist/client/framework/fragment-target-projection.js +5 -95
- package/dist/client/framework/fragment-target-projection.js.map +1 -1
- package/dist/client/framework/server-fragment-target-projection.d.ts +4 -0
- package/dist/client/framework/server-fragment-target-projection.d.ts.map +1 -0
- package/dist/client/framework/server-fragment-target-projection.js +7 -0
- package/dist/client/framework/server-fragment-target-projection.js.map +1 -0
- package/dist/client/framework/server-render-structure.d.ts +1 -0
- package/dist/client/framework/server-render-structure.d.ts.map +1 -1
- package/dist/client/framework/server-render-structure.js +1 -0
- package/dist/client/framework/server-render-structure.js.map +1 -1
- package/dist/client/tasks/contracts.d.ts +2 -0
- package/dist/client/tasks/contracts.d.ts.map +1 -1
- package/dist/client/tasks/contracts.js.map +1 -1
- package/dist/client/tasks/runtime-types.d.ts +0 -1
- package/dist/client/tasks/runtime-types.d.ts.map +1 -1
- package/dist/client/tasks/runtime-types.js.map +1 -1
- package/dist/client/tasks/runtime.js +5 -9
- package/dist/client/tasks/runtime.js.map +1 -1
- package/dist/component/resumption.js +5 -1
- package/dist/component/resumption.js.map +1 -1
- package/dist/framework/fragment-target-projection-plan.d.ts +9 -0
- package/dist/framework/fragment-target-projection-plan.d.ts.map +1 -0
- package/dist/framework/fragment-target-projection-plan.js +99 -0
- package/dist/framework/fragment-target-projection-plan.js.map +1 -0
- package/dist/framework/fragment-target-projection.d.ts +1 -5
- package/dist/framework/fragment-target-projection.d.ts.map +1 -1
- package/dist/framework/fragment-target-projection.js +5 -95
- package/dist/framework/fragment-target-projection.js.map +1 -1
- package/dist/framework/server-fragment-target-projection.d.ts +4 -0
- package/dist/framework/server-fragment-target-projection.d.ts.map +1 -0
- package/dist/framework/server-fragment-target-projection.js +7 -0
- package/dist/framework/server-fragment-target-projection.js.map +1 -0
- package/dist/framework/server-render-structure.d.ts +1 -0
- package/dist/framework/server-render-structure.d.ts.map +1 -1
- package/dist/framework/server-render-structure.js +1 -0
- package/dist/framework/server-render-structure.js.map +1 -1
- package/dist/server/component/resumption.js +5 -1
- package/dist/server/component/resumption.js.map +1 -1
- package/dist/server/framework/fragment-target-projection-plan.d.ts +9 -0
- package/dist/server/framework/fragment-target-projection-plan.d.ts.map +1 -0
- package/dist/server/framework/fragment-target-projection-plan.js +99 -0
- package/dist/server/framework/fragment-target-projection-plan.js.map +1 -0
- package/dist/server/framework/fragment-target-projection.d.ts +1 -5
- package/dist/server/framework/fragment-target-projection.d.ts.map +1 -1
- package/dist/server/framework/fragment-target-projection.js +5 -95
- package/dist/server/framework/fragment-target-projection.js.map +1 -1
- package/dist/server/framework/server-fragment-target-projection.d.ts +4 -0
- package/dist/server/framework/server-fragment-target-projection.d.ts.map +1 -0
- package/dist/server/framework/server-fragment-target-projection.js +7 -0
- package/dist/server/framework/server-fragment-target-projection.js.map +1 -0
- package/dist/server/framework/server-render-structure.d.ts +1 -0
- package/dist/server/framework/server-render-structure.d.ts.map +1 -1
- package/dist/server/framework/server-render-structure.js +1 -0
- package/dist/server/framework/server-render-structure.js.map +1 -1
- package/dist/server/tasks/contracts.d.ts +2 -0
- package/dist/server/tasks/contracts.d.ts.map +1 -1
- package/dist/server/tasks/contracts.js.map +1 -1
- package/dist/server/tasks/runtime-types.d.ts +0 -1
- package/dist/server/tasks/runtime-types.d.ts.map +1 -1
- package/dist/server/tasks/runtime-types.js.map +1 -1
- package/dist/server/tasks/runtime.js +5 -9
- package/dist/server/tasks/runtime.js.map +1 -1
- package/dist/tasks/contracts.d.ts +2 -0
- package/dist/tasks/contracts.d.ts.map +1 -1
- package/dist/tasks/contracts.js.map +1 -1
- package/dist/tasks/runtime-types.d.ts +0 -1
- package/dist/tasks/runtime-types.d.ts.map +1 -1
- package/dist/tasks/runtime-types.js.map +1 -1
- package/dist/tasks/runtime.js +5 -9
- package/dist/tasks/runtime.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime.js","sourceRoot":"","sources":["../../../src/tasks/runtime.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n\tpeek,\n\trollbackReactiveMutationJournals,\n\tscheduleWork\n} from '@exactjs/reactive/framework/runtime';\nimport { reactiveObjects } from '@exactjs/reactive/framework/objects';\n\nimport { TaskCancellation } from './cancellation.js';\nimport { inheritComponentContinuationIdentity } from './component-continuation.js';\nimport { taskDefinitionBrand, type TaskDefinition } from './definition-record.js';\nimport { discardTaskMutations, publishTaskMutations } from './resources.js';\nimport { readExactInspectionSource } from '../component/inspection-source.js';\nimport type {\n\tBoundTaskFunction,\n\tRuntimeTaskOptions,\n\tTaskActivation,\n\tTaskContext,\n\tTaskFunction,\n\tTaskInvocation,\n\tTaskOwner,\n\tTaskStatus\n} from './contracts.js';\nimport {\n\tattachTaskFrameSettlement,\n\tcreateTaskOwnerRecord,\n\tcurrentTaskFrameRecord,\n\tmaterializeDeferredTaskFrame,\n\tcurrentTaskOwnerRecord,\n\tframeForTaskContext,\n\ttaskOwnerRecord,\n\ttype TaskOwnerRecord\n} from './frame-runtime.js';\nimport { taskOwnerForHost } from './owner-hosts.js';\nimport { TaskInvocationValue } from './invocation.js';\nimport { validateTaskOptions } from './options.js';\nimport { donateTaskPriority, taskWorkPriority } from './priority.js';\nimport { executeScheduledTaskGeneration } from './generation-execution.js';\nimport { markTaskPerformanceTrace, startTaskPerformanceTrace } from './performance-trace.js';\nimport { createTaskStatus, defineTaskStatusProperties } from './status.js';\nimport type {\n\tInternalTaskGeneration,\n\tInternalTaskLane,\n\tInternalTaskOwnerState\n} from './runtime-types.js';\n\nconst defaultLaneKey = Symbol('exact.default-task-lane');\n\n/**\n * Defines one stable runtime task using the same owner, lane, generation,\n * frame, cancellation, cleanup, and status runtime used by compiled tasks.\n */\nexport function defineTask<Args extends unknown[], Result>(\n\toptions: RuntimeTaskOptions<Args>,\n\timplementation: (...args: [...Args, TaskContext]) => Result | Promise<Result>\n): TaskFunction<Args, Awaited<Result>> {\n\tvalidateTaskOptions(options);\n\tif (typeof implementation !== 'function')\n\t\tthrow new TypeError('defineTask() requires an implementation function');\n\tconst sourceEntityId = readExactInspectionSource(implementation);\n\tconst definition: TaskDefinition<Args, Awaited<Result>> = {\n\t\t[taskDefinitionBrand]: true,\n\t\toptions,\n\t\timplementation: implementation as TaskDefinition<Args, Awaited<Result>>['implementation'],\n\t\t...(sourceEntityId ? { sourceEntityId } : {}),\n\t\towners: new WeakMap()\n\t};\n\tconst callable = ((...args: Args) =>\n\t\tinvokeDefinition(\n\t\t\tdefinition,\n\t\t\toptions.owner ? taskOwnerRecord(options.owner) : undefined,\n\t\t\tundefined,\n\t\t\targs,\n\t\t\t'invoked'\n\t\t)) as TaskFunction<Args, Awaited<Result>>;\n\tObject.defineProperty(callable, taskDefinitionBrand, { value: definition });\n\tinheritComponentContinuationIdentity(implementation, callable);\n\treturn callable;\n}\n\n/** Invokes a child task with an explicit retained parent after any await boundary. */\nexport function invokeTask<Args extends unknown[], Result>(\n\tparent: TaskContext,\n\tchild: TaskFunction<Args, Result>,\n\t...args: Args\n): TaskInvocation<Result> {\n\tconst frame = frameForTaskContext(parent);\n\treturn invokeDefinition(readDefinition(child), frame.owner, frame, args);\n}\n\n/** Creates an owner-bound callable facade with aggregate reactive status. */\nexport function bindTask<Args extends unknown[], Result>(\n\ttask: TaskFunction<Args, Result>,\n\toptions?: { readonly owner?: TaskOwner }\n): BoundTaskFunction<Args, Result> {\n\tconst definition = readDefinition(task);\n\tconst owner = resolveBoundOwner(options?.owner);\n\tconst status = createTaskStatus(ownerState(definition, owner), undefined, cancelLane);\n\tconst bound = ((...args: Args) =>\n\t\tinvokeDefinition(definition, owner, undefined, args, 'invoked')) as BoundTaskFunction<\n\t\tArgs,\n\t\tResult\n\t>;\n\tObject.defineProperty(bound, taskDefinitionBrand, { value: definition });\n\tinheritComponentContinuationIdentity(task, bound);\n\tdefineTaskStatusProperties(bound, status);\n\treturn bound;\n}\n\n/**\n * Binds compiler-generated task functions to an explicit durable host.\n *\n * Explicit host lookup preserves ownership across development module graphs\n * that contain more than one physical copy of the core runtime.\n */\nexport function bindTaskForHost<Args extends unknown[], Result>(\n\thost: object,\n\ttask: TaskFunction<Args, Result>\n): BoundTaskFunction<Args, Result> {\n\tconst owner = taskOwnerForHost(host);\n\tif (!owner) throw new Error('bindTaskForHost() requires a registered durable task host');\n\treturn bindTask(task, { owner });\n}\n\n/** Returns a non-callable owner-bound status view, optionally filtered to one key. */\nexport function taskStatus<Args extends unknown[], Result>(\n\ttask: TaskFunction<Args, Result> | ((...args: Args) => Result),\n\toptions?: { readonly owner?: TaskOwner; readonly key?: unknown }\n): TaskStatus<Awaited<Result>> {\n\tconst definition = readDefinition(task as TaskFunction<Args, Awaited<Result>>);\n\treturn createTaskStatus(\n\t\townerState(definition, resolveBoundOwner(options?.owner)),\n\t\toptions?.key,\n\t\tcancelLane\n\t);\n}\n\n/** Internal setup activation entry used by the compiler-facing activation ABI. */\nexport function invokeTaskForActivation<Args extends unknown[], Result>(\n\ttask: TaskFunction<Args, Result>,\n\towner: TaskOwnerRecord,\n\tactivationSite: object,\n\tactivation: 'initialization' | 'reactive',\n\targs: Args\n): TaskInvocation<Result> {\n\treturn invokeDefinition(readDefinition(task), owner, undefined, args, activation, activationSite);\n}\n\nfunction invokeDefinition<Args extends unknown[], Result>(\n\tdefinition: TaskDefinition<Args, Result>,\n\texplicitOwner: TaskOwnerRecord | undefined,\n\texplicitParent: ReturnType<typeof currentTaskFrameRecord>,\n\targs: Args,\n\tactivation: TaskActivation = 'invoked',\n\tactivationSite?: object\n): TaskInvocation<Result> {\n\tconst capturedArgs = definition.options.captureArguments\n\t\t? peek(() => definition.options.captureArguments!(args))\n\t\t: args;\n\tif (!Array.isArray(capturedArgs))\n\t\tthrow new TypeError('Task argument capture must return an argument array');\n\tconst resolvedArgs = capturedArgs as Args;\n\tconst dependencyDriven = activation !== 'invoked';\n\t// Dependency-driven activations are durable-owner roots. A dependency can publish while an\n\t// earlier generation's continuation is temporarily restored; inheriting that ambient frame\n\t// would make the replacement generation a child of the generation it is about to supersede.\n\tconst ambient = dependencyDriven\n\t\t? explicitParent\n\t\t: (explicitParent ?? currentTaskFrameRecord() ?? materializeDeferredTaskFrame());\n\tconst owner =\n\t\texplicitOwner ??\n\t\tambient?.owner ??\n\t\tcurrentTaskOwnerRecord() ??\n\t\t(definition.options.owner\n\t\t\t? taskOwnerRecord(definition.options.owner)\n\t\t\t: createTaskOwnerRecord(definition.options.label));\n\tconst state = ownerState(definition, owner);\n\tconst key = dependencyDriven\n\t\t? (activationSite ?? defaultLaneKey)\n\t\t: (definition.options.concurrencyKey?.(...resolvedArgs) ?? defaultLaneKey);\n\tconst lane = taskLane(state, key);\n\tconst concurrency = dependencyDriven ? 'latest' : (definition.options.concurrency ?? 'parallel');\n\tif (concurrency === 'latest') cancelLane(lane, 'superseded');\n\tconst generation = ++state.nextGeneration;\n\tconst controller = new AbortController();\n\tconst priority = definition.options.priority ?? ambient?.priority ?? 'normal';\n\tconst readiness =\n\t\tdefinition.options.readiness ??\n\t\t(priority === 'deferred' ? 'nonblocking' : (ambient?.readiness ?? 'blocking'));\n\tconst foreground = readiness === 'blocking' && priority !== 'deferred';\n\tlet releaseReservation: (() => void) | undefined;\n\tif (ambient && !definition.options.detached) {\n\t\tconst reservation = new Promise<void>((resolve) => {\n\t\t\treleaseReservation = resolve;\n\t\t});\n\t\tattachTaskFrameSettlement(ambient, reservation);\n\t}\n\tlet resolve!: (value: Result) => void;\n\tlet reject!: (error: unknown) => void;\n\tconst promise = new Promise<Result>((accept, fail) => {\n\t\tresolve = accept;\n\t\treject = fail;\n\t});\n\t// Structural propagation owns unobserved failures, so the backing native\n\t// promise must never also surface them as process-level unhandled rejections.\n\tvoid promise.catch(() => undefined);\n\tconst record: InternalTaskGeneration<Result> = {\n\t\tgeneration,\n\t\tcontroller,\n\t\targs: resolvedArgs,\n\t\tjournals: [],\n\t\tpromise,\n\t\tresolve,\n\t\treject,\n\t\tparent: ambient,\n\t\treleaseReservation,\n\t\tforeground,\n\t\tactivation,\n\t\tconcurrency,\n\t\treadiness,\n\t\tpriority,\n\t\tobserved: false,\n\t\tstarted: false,\n\t\texecuting: false\n\t};\n\towner.settlements.add(promise);\n\towner.observeSettlement?.(promise);\n\tif (foreground && owner.registerReadiness) {\n\t\trecord.readinessRegistration = owner.registerReadiness(\n\t\t\tgeneration,\n\t\t\tpromise,\n\t\t\t() => publishTaskMutations(controller.signal),\n\t\t\t() => discardTaskMutations(controller.signal)\n\t\t);\n\t\tcontroller.signal.addEventListener('abort', () => record.readinessRegistration?.cancel(), {\n\t\t\tonce: true\n\t\t});\n\t}\n\tvoid promise.finally(() => owner.settlements.delete(promise)).catch(() => undefined);\n\tlane.active.add(record);\n\tif (foreground) {\n\t\tstate.pendingCount++;\n\t\tlane.pendingCount++;\n\t}\n\tif (concurrency === 'queue') {\n\t\tlane.queue.push(record);\n\t\tpumpLane(definition, owner, state, lane);\n\t} else {\n\t\tstartGeneration(definition, owner, state, lane, record);\n\t}\n\treturn new TaskInvocationValue(promise, () => {\n\t\trecord.observed = true;\n\t\tif (record.parent) donateTaskPriority(record, record.parent.priority);\n\t});\n}\n\nfunction startGeneration<Args extends unknown[], Result>(\n\tdefinition: TaskDefinition<Args, Result>,\n\towner: TaskOwnerRecord,\n\tstate: InternalTaskOwnerState<Result>,\n\tlane: InternalTaskLane<Result>,\n\trecord: InternalTaskGeneration<Result>\n): void {\n\trecord.started = true;\n\tstate.error = undefined;\n\tlane.error = undefined;\n\tconst execution = new Promise<Result>((resolveExecution, rejectExecution) => {\n\t\tconst scheduledWork = () => {\n\t\t\trecord.executing = true;\n\t\t\tstartTaskPerformanceTrace(owner, record, definition.sourceEntityId, definition.options.label);\n\t\t\tconst frameExecution = executeScheduledTaskGeneration(\n\t\t\t\towner,\n\t\t\t\trecord,\n\t\t\t\tdefinition.options,\n\t\t\t\tdefinition.sourceEntityId,\n\t\t\t\tdefinition.implementation\n\t\t\t);\n\t\t\trecord.releaseReservation?.();\n\t\t\tvoid frameExecution.then(resolveExecution, rejectExecution);\n\t\t};\n\t\trecord.scheduledWork = scheduledWork;\n\t\tscheduleWork(scheduledWork, taskWorkPriority(record.priority), rejectExecution);\n\t});\n\tvoid execution.then(\n\t\t(value) => {\n\t\t\tfor (const journal of record.journals) journal.discard();\n\t\t\tif (!record.readinessRegistration) publishTaskMutations(record.controller.signal);\n\t\t\tif (record.generation >= state.generation) {\n\t\t\t\tstate.generation = record.generation;\n\t\t\t\tstate.result = value;\n\t\t\t\tstate.error = undefined;\n\t\t\t}\n\t\t\tif (record.generation >= lane.generation) {\n\t\t\t\tlane.result = value;\n\t\t\t\tlane.error = undefined;\n\t\t\t\tlane.generation = record.generation;\n\t\t\t}\n\t\t\tif (record.trace) markTaskPerformanceTrace(record, 'settled', { outcome: 'success' });\n\t\t\tfinishGeneration(definition, owner, state, lane, record);\n\t\t\trecord.resolve(value);\n\t\t},\n\t\t(error) => {\n\t\t\trollbackReactiveMutationJournals(record.journals);\n\t\t\tdiscardTaskMutations(record.controller.signal);\n\t\t\trecord.readinessRegistration?.cancel();\n\t\t\tif (record.generation >= state.generation) {\n\t\t\t\tstate.generation = record.generation;\n\t\t\t\tif (!(error instanceof TaskCancellation)) state.error = error;\n\t\t\t}\n\t\t\tif (record.generation >= lane.generation) {\n\t\t\t\tlane.generation = record.generation;\n\t\t\t\tif (!(error instanceof TaskCancellation)) lane.error = error;\n\t\t\t}\n\t\t\tif (record.trace)\n\t\t\t\tmarkTaskPerformanceTrace(record, 'settled', {\n\t\t\t\t\toutcome: error instanceof TaskCancellation ? 'cancelled' : 'error'\n\t\t\t\t});\n\t\t\tfinishGeneration(definition, owner, state, lane, record);\n\t\t\trecord.reject(error);\n\t\t}\n\t);\n}\n\nfunction finishGeneration<Args extends unknown[], Result>(\n\tdefinition: TaskDefinition<Args, Result>,\n\towner: TaskOwnerRecord,\n\tstate: InternalTaskOwnerState<Result>,\n\tlane: InternalTaskLane<Result>,\n\trecord: InternalTaskGeneration<Result>\n): void {\n\tlane.active.delete(record);\n\tif (record.foreground) state.pendingCount = Math.max(0, state.pendingCount - 1);\n\tif (record.foreground) lane.pendingCount = Math.max(0, lane.pendingCount - 1);\n\tif (record.concurrency === 'queue') {\n\t\tconst next = lane.queue.shift();\n\t\tif (next) {\n\t\t\tstartGeneration(definition, owner, state, lane, next);\n\t\t}\n\t}\n}\n\nfunction pumpLane<Args extends unknown[], Result>(\n\tdefinition: TaskDefinition<Args, Result>,\n\towner: TaskOwnerRecord,\n\tstate: InternalTaskOwnerState<Result>,\n\tlane: InternalTaskLane<Result>\n): void {\n\tif ([...lane.active].some((record) => record.started)) return;\n\tconst next = lane.queue.shift();\n\tif (next) startGeneration(definition, owner, state, lane, next);\n}\n\nfunction ownerState<Args extends unknown[], Result>(\n\tdefinition: TaskDefinition<Args, Result>,\n\towner: TaskOwnerRecord\n): InternalTaskOwnerState<Result> {\n\tlet state = definition.owners.get(owner);\n\tif (!state) {\n\t\tstate = reactiveObjects<InternalTaskOwnerState<Result>>(\n\t\t\t{\n\t\t\t\tnextGeneration: 0,\n\t\t\t\tgeneration: 0,\n\t\t\t\tpendingCount: 0,\n\t\t\t\tresult: undefined,\n\t\t\t\terror: undefined,\n\t\t\t\tlanes: new Map(),\n\t\t\t\tlanesVersion: 0\n\t\t\t},\n\t\t\t{ passthroughKeys: ['lanes'] }\n\t\t);\n\t\tdefinition.owners.set(owner, state);\n\t}\n\treturn state;\n}\n\nfunction taskLane<Result>(\n\tstate: InternalTaskOwnerState<Result>,\n\tkey: unknown\n): InternalTaskLane<Result> {\n\tlet lane = state.lanes.get(key);\n\tif (!lane) {\n\t\tlane = reactiveObjects<InternalTaskLane<Result>>(\n\t\t\t{\n\t\t\t\tkey,\n\t\t\t\tactive: new Set<InternalTaskGeneration<Result>>(),\n\t\t\t\tqueue: [] as InternalTaskGeneration<Result>[],\n\t\t\t\tpendingCount: 0,\n\t\t\t\tgeneration: 0,\n\t\t\t\tresult: undefined,\n\t\t\t\terror: undefined\n\t\t\t},\n\t\t\t{ passthroughKeys: ['active', 'queue'] }\n\t\t);\n\t\tstate.lanes.set(key, lane);\n\t\tstate.lanesVersion++;\n\t}\n\treturn lane;\n}\n\nfunction cancelLane<Result>(lane: InternalTaskLane<Result>, reason: unknown): void {\n\tfor (const record of lane.active) {\n\t\trecord.readinessRegistration?.cancel();\n\t\trollbackReactiveMutationJournals(record.journals);\n\t\trecord.journals.length = 0;\n\t\trecord.controller.abort(reason);\n\t}\n}\n\nfunction readDefinition<Args extends unknown[], Result>(\n\ttask: TaskFunction<Args, Result>\n): TaskDefinition<Args, Result> {\n\tconst definition = (\n\t\ttask as TaskFunction<Args, Result> & {\n\t\t\t[taskDefinitionBrand]?: TaskDefinition<Args, Result>;\n\t\t}\n\t)[taskDefinitionBrand];\n\tif (!definition)\n\t\tthrow new TypeError('taskStatus() and task invocation require a compiled or defineTask() task');\n\treturn definition;\n}\n\nfunction resolveBoundOwner(owner?: TaskOwner): TaskOwnerRecord {\n\tif (owner) return taskOwnerRecord(owner);\n\tconst ownerRecord = currentTaskOwnerRecord();\n\tif (!ownerRecord)\n\t\tthrow new Error('Binding task status requires an explicit owner outside a durable task host');\n\treturn ownerRecord;\n}\n"]}
|
|
1
|
+
{"version":3,"file":"runtime.js","sourceRoot":"","sources":["../../../src/tasks/runtime.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n\tpeek,\n\trollbackReactiveMutationJournals,\n\tscheduleWork\n} from '@exactjs/reactive/framework/runtime';\nimport { reactiveObjects } from '@exactjs/reactive/framework/objects';\n\nimport { TaskCancellation } from './cancellation.js';\nimport { inheritComponentContinuationIdentity } from './component-continuation.js';\nimport { taskDefinitionBrand, type TaskDefinition } from './definition-record.js';\nimport { discardTaskMutations, publishTaskMutations } from './resources.js';\nimport { readExactInspectionSource } from '../component/inspection-source.js';\nimport type {\n\tBoundTaskFunction,\n\tRuntimeTaskOptions,\n\tTaskActivation,\n\tTaskContext,\n\tTaskFunction,\n\tTaskInvocation,\n\tTaskOwner,\n\tTaskStatus\n} from './contracts.js';\nimport {\n\tattachTaskFrameSettlement,\n\tcreateTaskOwnerRecord,\n\tcurrentTaskFrameRecord,\n\tmaterializeDeferredTaskFrame,\n\tcurrentTaskOwnerRecord,\n\tframeForTaskContext,\n\ttaskOwnerRecord,\n\ttype TaskOwnerRecord\n} from './frame-runtime.js';\nimport { taskOwnerForHost } from './owner-hosts.js';\nimport { TaskInvocationValue } from './invocation.js';\nimport { validateTaskOptions } from './options.js';\nimport { donateTaskPriority, taskWorkPriority } from './priority.js';\nimport { executeScheduledTaskGeneration } from './generation-execution.js';\nimport { markTaskPerformanceTrace, startTaskPerformanceTrace } from './performance-trace.js';\nimport { createTaskStatus, defineTaskStatusProperties } from './status.js';\nimport type {\n\tInternalTaskGeneration,\n\tInternalTaskLane,\n\tInternalTaskOwnerState\n} from './runtime-types.js';\n\nconst defaultLaneKey = Symbol('exact.default-task-lane');\n\n/**\n * Defines one stable runtime task using the same owner, lane, generation,\n * frame, cancellation, cleanup, and status runtime used by compiled tasks.\n */\nexport function defineTask<Args extends unknown[], Result>(\n\toptions: RuntimeTaskOptions<Args>,\n\timplementation: (...args: [...Args, TaskContext]) => Result | Promise<Result>\n): TaskFunction<Args, Awaited<Result>> {\n\tvalidateTaskOptions(options);\n\tif (typeof implementation !== 'function')\n\t\tthrow new TypeError('defineTask() requires an implementation function');\n\tconst sourceEntityId = readExactInspectionSource(implementation);\n\tconst definition: TaskDefinition<Args, Awaited<Result>> = {\n\t\t[taskDefinitionBrand]: true,\n\t\toptions,\n\t\timplementation: implementation as TaskDefinition<Args, Awaited<Result>>['implementation'],\n\t\t...(sourceEntityId ? { sourceEntityId } : {}),\n\t\towners: new WeakMap()\n\t};\n\tconst callable = ((...args: Args) =>\n\t\tinvokeDefinition(\n\t\t\tdefinition,\n\t\t\toptions.owner ? taskOwnerRecord(options.owner) : undefined,\n\t\t\tundefined,\n\t\t\targs,\n\t\t\t'invoked'\n\t\t)) as TaskFunction<Args, Awaited<Result>>;\n\tObject.defineProperty(callable, taskDefinitionBrand, { value: definition });\n\tinheritComponentContinuationIdentity(implementation, callable);\n\treturn callable;\n}\n\n/** Invokes a child task with an explicit retained parent after any await boundary. */\nexport function invokeTask<Args extends unknown[], Result>(\n\tparent: TaskContext,\n\tchild: TaskFunction<Args, Result>,\n\t...args: Args\n): TaskInvocation<Result> {\n\tconst frame = frameForTaskContext(parent);\n\treturn invokeDefinition(readDefinition(child), frame.owner, frame, args);\n}\n\n/** Creates an owner-bound callable facade with aggregate reactive status. */\nexport function bindTask<Args extends unknown[], Result>(\n\ttask: TaskFunction<Args, Result>,\n\toptions?: { readonly owner?: TaskOwner }\n): BoundTaskFunction<Args, Result> {\n\tconst definition = readDefinition(task);\n\tconst owner = resolveBoundOwner(options?.owner);\n\tconst status = createTaskStatus(ownerState(definition, owner), undefined, cancelLane);\n\tconst bound = ((...args: Args) =>\n\t\tinvokeDefinition(definition, owner, undefined, args, 'invoked')) as BoundTaskFunction<\n\t\tArgs,\n\t\tResult\n\t>;\n\tObject.defineProperty(bound, taskDefinitionBrand, { value: definition });\n\tinheritComponentContinuationIdentity(task, bound);\n\tdefineTaskStatusProperties(bound, status);\n\treturn bound;\n}\n\n/**\n * Binds compiler-generated task functions to an explicit durable host.\n *\n * Explicit host lookup preserves ownership across development module graphs\n * that contain more than one physical copy of the core runtime.\n */\nexport function bindTaskForHost<Args extends unknown[], Result>(\n\thost: object,\n\ttask: TaskFunction<Args, Result>\n): BoundTaskFunction<Args, Result> {\n\tconst owner = taskOwnerForHost(host);\n\tif (!owner) throw new Error('bindTaskForHost() requires a registered durable task host');\n\treturn bindTask(task, { owner });\n}\n\n/** Returns a non-callable owner-bound status view, optionally filtered to one key. */\nexport function taskStatus<Args extends unknown[], Result>(\n\ttask: TaskFunction<Args, Result> | ((...args: Args) => Result),\n\toptions?: { readonly owner?: TaskOwner; readonly key?: unknown }\n): TaskStatus<Awaited<Result>> {\n\tconst definition = readDefinition(task as TaskFunction<Args, Awaited<Result>>);\n\treturn createTaskStatus(\n\t\townerState(definition, resolveBoundOwner(options?.owner)),\n\t\toptions?.key,\n\t\tcancelLane\n\t);\n}\n\n/** Internal setup activation entry used by the compiler-facing activation ABI. */\nexport function invokeTaskForActivation<Args extends unknown[], Result>(\n\ttask: TaskFunction<Args, Result>,\n\towner: TaskOwnerRecord,\n\tactivationSite: object,\n\tactivation: 'initialization' | 'reactive',\n\targs: Args\n): TaskInvocation<Result> {\n\treturn invokeDefinition(readDefinition(task), owner, undefined, args, activation, activationSite);\n}\n\nfunction invokeDefinition<Args extends unknown[], Result>(\n\tdefinition: TaskDefinition<Args, Result>,\n\texplicitOwner: TaskOwnerRecord | undefined,\n\texplicitParent: ReturnType<typeof currentTaskFrameRecord>,\n\targs: Args,\n\tactivation: TaskActivation = 'invoked',\n\tactivationSite?: object\n): TaskInvocation<Result> {\n\tconst capturedArgs = definition.options.captureArguments\n\t\t? peek(() => definition.options.captureArguments!(args))\n\t\t: args;\n\tif (!Array.isArray(capturedArgs))\n\t\tthrow new TypeError('Task argument capture must return an argument array');\n\tconst resolvedArgs = capturedArgs as Args;\n\tconst dependencyDriven = activation !== 'invoked';\n\t// Dependency-driven activations are durable-owner roots. A dependency can publish while an\n\t// earlier generation's continuation is temporarily restored; inheriting that ambient frame\n\t// would make the replacement generation a child of the generation it is about to supersede.\n\tconst ambient = dependencyDriven\n\t\t? explicitParent\n\t\t: (explicitParent ?? currentTaskFrameRecord() ?? materializeDeferredTaskFrame());\n\tconst owner =\n\t\texplicitOwner ??\n\t\tambient?.owner ??\n\t\tcurrentTaskOwnerRecord() ??\n\t\t(definition.options.owner\n\t\t\t? taskOwnerRecord(definition.options.owner)\n\t\t\t: createTaskOwnerRecord(definition.options.label));\n\tconst state = ownerState(definition, owner);\n\tconst key = dependencyDriven\n\t\t? (activationSite ?? defaultLaneKey)\n\t\t: (definition.options.concurrencyKey?.(...resolvedArgs) ?? defaultLaneKey);\n\tconst lane = taskLane(state, key);\n\tconst concurrency = dependencyDriven ? 'latest' : (definition.options.concurrency ?? 'parallel');\n\tif (concurrency === 'latest') cancelLane(lane, 'superseded');\n\tconst generation = ++state.nextGeneration;\n\tconst controller = new AbortController();\n\tconst priority = definition.options.priority ?? ambient?.priority ?? 'normal';\n\tconst readiness =\n\t\tdefinition.options.readiness ??\n\t\t(priority === 'deferred' ? 'nonblocking' : (ambient?.readiness ?? 'blocking'));\n\tconst foreground = readiness === 'blocking' && priority !== 'deferred';\n\tlet releaseReservation: (() => void) | undefined;\n\tif (ambient && !definition.options.detached) {\n\t\tconst reservation = new Promise<void>((resolve) => {\n\t\t\treleaseReservation = resolve;\n\t\t});\n\t\tattachTaskFrameSettlement(ambient, reservation);\n\t}\n\tlet resolve!: (value: Result) => void;\n\tlet reject!: (error: unknown) => void;\n\tconst promise = new Promise<Result>((accept, fail) => {\n\t\tresolve = accept;\n\t\treject = fail;\n\t});\n\t// Structural propagation owns unobserved failures, so the backing native\n\t// promise must never also surface them as process-level unhandled rejections.\n\tvoid promise.catch(() => undefined);\n\tconst record: InternalTaskGeneration<Result> = {\n\t\tgeneration,\n\t\tcontroller,\n\t\targs: resolvedArgs,\n\t\tjournals: [],\n\t\tpromise,\n\t\tresolve,\n\t\treject,\n\t\tparent: ambient,\n\t\treleaseReservation,\n\t\tactivation,\n\t\tconcurrency,\n\t\treadiness,\n\t\tpriority,\n\t\tobserved: false,\n\t\tstarted: false,\n\t\texecuting: false\n\t};\n\towner.settlements.add(promise);\n\towner.observeSettlement?.(promise);\n\tif (foreground && owner.registerReadiness) {\n\t\trecord.readinessRegistration = owner.registerReadiness(\n\t\t\tgeneration,\n\t\t\tpromise,\n\t\t\t() => publishTaskMutations(controller.signal),\n\t\t\t() => discardTaskMutations(controller.signal)\n\t\t);\n\t\tcontroller.signal.addEventListener('abort', () => record.readinessRegistration?.cancel(), {\n\t\t\tonce: true\n\t\t});\n\t}\n\tvoid promise.finally(() => owner.settlements.delete(promise)).catch(() => undefined);\n\tlane.active.add(record);\n\t// Status describes all unsettled generations; readiness is registered separately above.\n\tstate.pendingCount++;\n\tlane.pendingCount++;\n\tif (concurrency === 'queue') {\n\t\tlane.queue.push(record);\n\t\tpumpLane(definition, owner, state, lane);\n\t} else {\n\t\tstartGeneration(definition, owner, state, lane, record);\n\t}\n\treturn new TaskInvocationValue(promise, () => {\n\t\trecord.observed = true;\n\t\tif (record.parent) donateTaskPriority(record, record.parent.priority);\n\t});\n}\n\nfunction startGeneration<Args extends unknown[], Result>(\n\tdefinition: TaskDefinition<Args, Result>,\n\towner: TaskOwnerRecord,\n\tstate: InternalTaskOwnerState<Result>,\n\tlane: InternalTaskLane<Result>,\n\trecord: InternalTaskGeneration<Result>\n): void {\n\trecord.started = true;\n\tstate.error = undefined;\n\tlane.error = undefined;\n\tconst execution = new Promise<Result>((resolveExecution, rejectExecution) => {\n\t\tconst scheduledWork = () => {\n\t\t\trecord.executing = true;\n\t\t\tstartTaskPerformanceTrace(owner, record, definition.sourceEntityId, definition.options.label);\n\t\t\tconst frameExecution = executeScheduledTaskGeneration(\n\t\t\t\towner,\n\t\t\t\trecord,\n\t\t\t\tdefinition.options,\n\t\t\t\tdefinition.sourceEntityId,\n\t\t\t\tdefinition.implementation\n\t\t\t);\n\t\t\trecord.releaseReservation?.();\n\t\t\tvoid frameExecution.then(resolveExecution, rejectExecution);\n\t\t};\n\t\trecord.scheduledWork = scheduledWork;\n\t\tscheduleWork(scheduledWork, taskWorkPriority(record.priority), rejectExecution);\n\t});\n\tvoid execution.then(\n\t\t(value) => {\n\t\t\tfor (const journal of record.journals) journal.discard();\n\t\t\tif (!record.readinessRegistration) publishTaskMutations(record.controller.signal);\n\t\t\tif (record.generation >= state.generation) {\n\t\t\t\tstate.generation = record.generation;\n\t\t\t\tstate.result = value;\n\t\t\t\tstate.error = undefined;\n\t\t\t}\n\t\t\tif (record.generation >= lane.generation) {\n\t\t\t\tlane.result = value;\n\t\t\t\tlane.error = undefined;\n\t\t\t\tlane.generation = record.generation;\n\t\t\t}\n\t\t\tif (record.trace) markTaskPerformanceTrace(record, 'settled', { outcome: 'success' });\n\t\t\tfinishGeneration(definition, owner, state, lane, record);\n\t\t\trecord.resolve(value);\n\t\t},\n\t\t(error) => {\n\t\t\trollbackReactiveMutationJournals(record.journals);\n\t\t\tdiscardTaskMutations(record.controller.signal);\n\t\t\trecord.readinessRegistration?.cancel();\n\t\t\tif (record.generation >= state.generation) {\n\t\t\t\tstate.generation = record.generation;\n\t\t\t\tif (!(error instanceof TaskCancellation)) state.error = error;\n\t\t\t}\n\t\t\tif (record.generation >= lane.generation) {\n\t\t\t\tlane.generation = record.generation;\n\t\t\t\tif (!(error instanceof TaskCancellation)) lane.error = error;\n\t\t\t}\n\t\t\tif (record.trace)\n\t\t\t\tmarkTaskPerformanceTrace(record, 'settled', {\n\t\t\t\t\toutcome: error instanceof TaskCancellation ? 'cancelled' : 'error'\n\t\t\t\t});\n\t\t\tfinishGeneration(definition, owner, state, lane, record);\n\t\t\trecord.reject(error);\n\t\t}\n\t);\n}\n\nfunction finishGeneration<Args extends unknown[], Result>(\n\tdefinition: TaskDefinition<Args, Result>,\n\towner: TaskOwnerRecord,\n\tstate: InternalTaskOwnerState<Result>,\n\tlane: InternalTaskLane<Result>,\n\trecord: InternalTaskGeneration<Result>\n): void {\n\tlane.active.delete(record);\n\tstate.pendingCount = Math.max(0, state.pendingCount - 1);\n\tlane.pendingCount = Math.max(0, lane.pendingCount - 1);\n\tif (record.concurrency === 'queue') {\n\t\tconst next = lane.queue.shift();\n\t\tif (next) {\n\t\t\tstartGeneration(definition, owner, state, lane, next);\n\t\t}\n\t}\n}\n\nfunction pumpLane<Args extends unknown[], Result>(\n\tdefinition: TaskDefinition<Args, Result>,\n\towner: TaskOwnerRecord,\n\tstate: InternalTaskOwnerState<Result>,\n\tlane: InternalTaskLane<Result>\n): void {\n\tif ([...lane.active].some((record) => record.started)) return;\n\tconst next = lane.queue.shift();\n\tif (next) startGeneration(definition, owner, state, lane, next);\n}\n\nfunction ownerState<Args extends unknown[], Result>(\n\tdefinition: TaskDefinition<Args, Result>,\n\towner: TaskOwnerRecord\n): InternalTaskOwnerState<Result> {\n\tlet state = definition.owners.get(owner);\n\tif (!state) {\n\t\tstate = reactiveObjects<InternalTaskOwnerState<Result>>(\n\t\t\t{\n\t\t\t\tnextGeneration: 0,\n\t\t\t\tgeneration: 0,\n\t\t\t\tpendingCount: 0,\n\t\t\t\tresult: undefined,\n\t\t\t\terror: undefined,\n\t\t\t\tlanes: new Map(),\n\t\t\t\tlanesVersion: 0\n\t\t\t},\n\t\t\t{ passthroughKeys: ['lanes'] }\n\t\t);\n\t\tdefinition.owners.set(owner, state);\n\t}\n\treturn state;\n}\n\nfunction taskLane<Result>(\n\tstate: InternalTaskOwnerState<Result>,\n\tkey: unknown\n): InternalTaskLane<Result> {\n\tlet lane = state.lanes.get(key);\n\tif (!lane) {\n\t\tlane = reactiveObjects<InternalTaskLane<Result>>(\n\t\t\t{\n\t\t\t\tkey,\n\t\t\t\tactive: new Set<InternalTaskGeneration<Result>>(),\n\t\t\t\tqueue: [] as InternalTaskGeneration<Result>[],\n\t\t\t\tpendingCount: 0,\n\t\t\t\tgeneration: 0,\n\t\t\t\tresult: undefined,\n\t\t\t\terror: undefined\n\t\t\t},\n\t\t\t{ passthroughKeys: ['active', 'queue'] }\n\t\t);\n\t\tstate.lanes.set(key, lane);\n\t\tstate.lanesVersion++;\n\t}\n\treturn lane;\n}\n\nfunction cancelLane<Result>(lane: InternalTaskLane<Result>, reason: unknown): void {\n\tfor (const record of lane.active) {\n\t\trecord.readinessRegistration?.cancel();\n\t\trollbackReactiveMutationJournals(record.journals);\n\t\trecord.journals.length = 0;\n\t\trecord.controller.abort(reason);\n\t}\n}\n\nfunction readDefinition<Args extends unknown[], Result>(\n\ttask: TaskFunction<Args, Result>\n): TaskDefinition<Args, Result> {\n\tconst definition = (\n\t\ttask as TaskFunction<Args, Result> & {\n\t\t\t[taskDefinitionBrand]?: TaskDefinition<Args, Result>;\n\t\t}\n\t)[taskDefinitionBrand];\n\tif (!definition)\n\t\tthrow new TypeError('taskStatus() and task invocation require a compiled or defineTask() task');\n\treturn definition;\n}\n\nfunction resolveBoundOwner(owner?: TaskOwner): TaskOwnerRecord {\n\tif (owner) return taskOwnerRecord(owner);\n\tconst ownerRecord = currentTaskOwnerRecord();\n\tif (!ownerRecord)\n\t\tthrow new Error('Binding task status requires an explicit owner outside a durable task host');\n\treturn ownerRecord;\n}\n"]}
|
|
@@ -32,7 +32,11 @@ function writePath(target, path, value) {
|
|
|
32
32
|
cursor = created;
|
|
33
33
|
}
|
|
34
34
|
}
|
|
35
|
-
|
|
35
|
+
const key = segments.at(-1);
|
|
36
|
+
// A captured collection already restores derived reads such as Map/Set.size.
|
|
37
|
+
// Reassigning that identical read would attempt to write a native getter-only property.
|
|
38
|
+
if (!Object.is(cursor[key], value))
|
|
39
|
+
cursor[key] = value;
|
|
36
40
|
}
|
|
37
41
|
/** Rejects prototype-bearing path segments before touching reactive state. */
|
|
38
42
|
function safeSegment(segment) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resumption.js","sourceRoot":"","sources":["../../src/component/resumption.ts"],"names":[],"mappings":"AAKA,4FAA4F;AAC5F,MAAM,UAAU,wBAAwB,CACvC,KAAwC,EACxC,UAAqC;IAErC,MAAM,MAAM,GAAG,aAAa,IAAI,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IACvF,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QAC3B,KAAK,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,MAAsD,EAAE,CAAC;YACrF,IAAI,OAAO,KAAK,KAAK,QAAQ;gBAC5B,MAAM,IAAI,KAAK,CACd,iDAAiD,aAAa,IAAI,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CACvH,CAAC;YACH,SAAS,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;QAChC,CAAC;QACD,OAAO;IACR,CAAC;IACD,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC;QAAE,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;AACnF,CAAC;AAED,wFAAwF;AACxF,SAAS,SAAS,CAAC,MAA+B,EAAE,IAAY,EAAE,KAAc;IAC/E,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACjC,IAAI,CAAC,QAAQ,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,CAAC;QACtD,MAAM,IAAI,KAAK,CAAC,mDAAmD,IAAI,EAAE,CAAC,CAAC;IAC5E,CAAC;IACD,IAAI,MAAM,GAAG,MAAM,CAAC;IACpB,KAAK,MAAM,OAAO,IAAI,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7C,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;QAChC,yEAAyE;QACzE,+EAA+E;QAC/E,IAAI,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;YAC5C,MAAM,GAAG,OAAkC,CAAC;QAC7C,CAAC;aAAM,CAAC;YACP,MAAM,OAAO,GAA4B,EAAE,CAAC;YAC5C,MAAM,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC;YAC1B,MAAM,GAAG,OAAO,CAAC;QAClB,CAAC;IACF,CAAC;IACD,MAAM,
|
|
1
|
+
{"version":3,"file":"resumption.js","sourceRoot":"","sources":["../../src/component/resumption.ts"],"names":[],"mappings":"AAKA,4FAA4F;AAC5F,MAAM,UAAU,wBAAwB,CACvC,KAAwC,EACxC,UAAqC;IAErC,MAAM,MAAM,GAAG,aAAa,IAAI,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IACvF,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QAC3B,KAAK,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,MAAsD,EAAE,CAAC;YACrF,IAAI,OAAO,KAAK,KAAK,QAAQ;gBAC5B,MAAM,IAAI,KAAK,CACd,iDAAiD,aAAa,IAAI,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CACvH,CAAC;YACH,SAAS,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;QAChC,CAAC;QACD,OAAO;IACR,CAAC;IACD,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC;QAAE,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;AACnF,CAAC;AAED,wFAAwF;AACxF,SAAS,SAAS,CAAC,MAA+B,EAAE,IAAY,EAAE,KAAc;IAC/E,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACjC,IAAI,CAAC,QAAQ,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,CAAC;QACtD,MAAM,IAAI,KAAK,CAAC,mDAAmD,IAAI,EAAE,CAAC,CAAC;IAC5E,CAAC;IACD,IAAI,MAAM,GAAG,MAAM,CAAC;IACpB,KAAK,MAAM,OAAO,IAAI,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7C,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;QAChC,yEAAyE;QACzE,+EAA+E;QAC/E,IAAI,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;YAC5C,MAAM,GAAG,OAAkC,CAAC;QAC7C,CAAC;aAAM,CAAC;YACP,MAAM,OAAO,GAA4B,EAAE,CAAC;YAC5C,MAAM,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC;YAC1B,MAAM,GAAG,OAAO,CAAC;QAClB,CAAC;IACF,CAAC;IACD,MAAM,GAAG,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,CAAE,CAAC;IAC7B,6EAA6E;IAC7E,wFAAwF;IACxF,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC;QAAE,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;AACzD,CAAC;AAED,8EAA8E;AAC9E,SAAS,WAAW,CAAC,OAAe;IACnC,OAAO,CACN,OAAO,CAAC,MAAM,GAAG,CAAC;QAClB,OAAO,KAAK,WAAW;QACvB,OAAO,KAAK,WAAW;QACvB,OAAO,KAAK,aAAa,CACzB,CAAC;AACH,CAAC","sourcesContent":["import type { Reactive } from '@exactjs/reactive/framework/runtime';\nimport type { ComponentResumptionSource } from './contracts.js';\n\ntype IndexedResumptionField = readonly [field: number | string, value: unknown];\n\n/** Applies compiler-selected SSR state paths without replacing client-local setup state. */\nexport function applyComponentResumption(\n\tstate: Reactive<Record<string, unknown>>,\n\tresumption: ComponentResumptionSource\n): void {\n\tconst values = 'componentId' in resumption ? resumption.values : (resumption[1] ?? []);\n\tif (Array.isArray(values)) {\n\t\tfor (const [field, value] of values as unknown as readonly IndexedResumptionField[]) {\n\t\t\tif (typeof field !== 'string')\n\t\t\t\tthrow new Error(\n\t\t\t\t\t`eXact indexed resumption was not prepared for ${'componentId' in resumption ? resumption.componentId : resumption[0]}`\n\t\t\t\t);\n\t\t\twritePath(state, field, value);\n\t\t}\n\t\treturn;\n\t}\n\tfor (const [path, value] of Object.entries(values)) writePath(state, path, value);\n}\n\n/** Materializes one validated dotted state path into the live reactive state object. */\nfunction writePath(target: Record<string, unknown>, path: string, value: unknown): void {\n\tconst segments = path.split('.');\n\tif (!segments.length || !segments.every(safeSegment)) {\n\t\tthrow new Error(`Malformed eXact component resumption state path ${path}`);\n\t}\n\tlet cursor = target;\n\tfor (const segment of segments.slice(0, -1)) {\n\t\tconst current = cursor[segment];\n\t\t// A child path can accompany its captured parent or a setup-owned array.\n\t\t// Traversing `.length` or an indexed item must preserve that array's identity.\n\t\tif (current && typeof current === 'object') {\n\t\t\tcursor = current as Record<string, unknown>;\n\t\t} else {\n\t\t\tconst created: Record<string, unknown> = {};\n\t\t\tcursor[segment] = created;\n\t\t\tcursor = created;\n\t\t}\n\t}\n\tconst key = segments.at(-1)!;\n\t// A captured collection already restores derived reads such as Map/Set.size.\n\t// Reassigning that identical read would attempt to write a native getter-only property.\n\tif (!Object.is(cursor[key], value)) cursor[key] = value;\n}\n\n/** Rejects prototype-bearing path segments before touching reactive state. */\nfunction safeSegment(segment: string): boolean {\n\treturn (\n\t\tsegment.length > 0 &&\n\t\tsegment !== '__proto__' &&\n\t\tsegment !== 'prototype' &&\n\t\tsegment !== 'constructor'\n\t);\n}\n"]}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { AnyComponentInstance, Child } from '../component/contracts.js';
|
|
2
|
+
/**
|
|
3
|
+
* Projects only one enhancement owner's supplied placement, preserving its authored structure.
|
|
4
|
+
* Nested component implementations stay opaque. Each owner is a host-coalescing barrier; transparent
|
|
5
|
+
* consecutive owners are grouped before this path. The caller supplies range evaluation: clients
|
|
6
|
+
* retain invalidation, while servers resolve the current render attempt without subscriptions.
|
|
7
|
+
*/
|
|
8
|
+
export declare function createFragmentTargetProjectionWithRanges(supplied: Child | (() => Child), tag: string, owner: AnyComponentInstance | undefined, projectRange: (read: () => Child, markerId?: string, mayReplaceSubtree?: boolean) => Child): (children: readonly Child[]) => Child[];
|
|
9
|
+
//# sourceMappingURL=fragment-target-projection-plan.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fragment-target-projection-plan.d.ts","sourceRoot":"","sources":["../../src/framework/fragment-target-projection-plan.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,KAAK,EAAE,MAAM,2BAA2B,CAAC;AA6B7E;;;;;GAKG;AACH,wBAAgB,wCAAwC,CACvD,QAAQ,EAAE,KAAK,GAAG,CAAC,MAAM,KAAK,CAAC,EAC/B,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,oBAAoB,GAAG,SAAS,EACvC,YAAY,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,iBAAiB,CAAC,EAAE,OAAO,KAAK,KAAK,GACxF,CAAC,QAAQ,EAAE,SAAS,KAAK,EAAE,KAAK,KAAK,EAAE,CAmGzC"}
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
import { unwrap } from '@exactjs/reactive/framework/values';
|
|
2
|
+
import { readCompiledTargetReceipt, createCompiledTargetReceipt } from '../component-abi/target-receipt.js';
|
|
3
|
+
import { readCompiledIntrinsicReceipt, withIntrinsicReceiptChildren } from '../component-abi/intrinsic-receipt.js';
|
|
4
|
+
import { readCompiledFragmentReceipt, createCompiledFragmentReceipt, createCompiledFragmentPresentation } from '../component-abi/fragment-receipt.js';
|
|
5
|
+
import { readChildRangeReceipt } from '../component-abi/child-range-receipt.js';
|
|
6
|
+
import { readPreparedServerChildRange, createPreparedServerChildRange } from '../component-abi/server-child-range.js';
|
|
7
|
+
import { readPreparedServerRenderProgram } from '../server-render-program.js';
|
|
8
|
+
import { readRenderProgramReceipt, createPreparedRenderProgram, readRenderProgramSlot } from '../render-program.js';
|
|
9
|
+
import { readPreparedTargetOutput } from './prepared-target-output.js';
|
|
10
|
+
import { FragmentPresentationHosts } from './fragment-hosts.js';
|
|
11
|
+
/**
|
|
12
|
+
* Projects only one enhancement owner's supplied placement, preserving its authored structure.
|
|
13
|
+
* Nested component implementations stay opaque. Each owner is a host-coalescing barrier; transparent
|
|
14
|
+
* consecutive owners are grouped before this path. The caller supplies range evaluation: clients
|
|
15
|
+
* retain invalidation, while servers resolve the current render attempt without subscriptions.
|
|
16
|
+
*/
|
|
17
|
+
export function createFragmentTargetProjectionWithRanges(supplied, tag, owner, projectRange) {
|
|
18
|
+
const identity = Symbol('fragment contribution');
|
|
19
|
+
const hosts = new FragmentPresentationHosts();
|
|
20
|
+
const cache = new WeakMap();
|
|
21
|
+
const map = (raw) => {
|
|
22
|
+
const selected = typeof supplied === 'function' ? supplied() : supplied;
|
|
23
|
+
if (raw === selected)
|
|
24
|
+
return raw;
|
|
25
|
+
const value = unwrap(raw);
|
|
26
|
+
if (value === selected)
|
|
27
|
+
return value;
|
|
28
|
+
if (Array.isArray(value))
|
|
29
|
+
return value.map(map);
|
|
30
|
+
if (typeof value !== 'object' || value === null)
|
|
31
|
+
return value;
|
|
32
|
+
const retained = cache.get(value);
|
|
33
|
+
if (retained !== undefined)
|
|
34
|
+
return retained;
|
|
35
|
+
const target = readCompiledTargetReceipt(value);
|
|
36
|
+
let result = value;
|
|
37
|
+
if (target) {
|
|
38
|
+
const contribution = readPreparedTargetOutput([value], selected);
|
|
39
|
+
const presentation = createCompiledFragmentPresentation(selected, hosts
|
|
40
|
+
.reconcile([
|
|
41
|
+
{
|
|
42
|
+
owner: identity,
|
|
43
|
+
tag,
|
|
44
|
+
props: contribution.props,
|
|
45
|
+
declaredHostProps: contribution.declaredHostProps
|
|
46
|
+
}
|
|
47
|
+
])
|
|
48
|
+
.map((host) => ({
|
|
49
|
+
identity: host.identity,
|
|
50
|
+
tag: host.tag,
|
|
51
|
+
contributions: [{ identity, props: contribution.props, owner }]
|
|
52
|
+
})));
|
|
53
|
+
result = createCompiledTargetReceipt(null, presentation);
|
|
54
|
+
}
|
|
55
|
+
else {
|
|
56
|
+
const intrinsic = readCompiledIntrinsicReceipt(value);
|
|
57
|
+
const fragment = readCompiledFragmentReceipt(value);
|
|
58
|
+
const range = readChildRangeReceipt(value);
|
|
59
|
+
const serverRange = readPreparedServerChildRange(value);
|
|
60
|
+
const program = readRenderProgramReceipt(value);
|
|
61
|
+
const serverProgram = readPreparedServerRenderProgram(value);
|
|
62
|
+
if (intrinsic)
|
|
63
|
+
result = withIntrinsicReceiptChildren(value, intrinsic.children.map((child) => map(child)));
|
|
64
|
+
else if (fragment)
|
|
65
|
+
result = createCompiledFragmentReceipt({ ...fragment.props, key: fragment.key, __exactEnhancements: fragment.enhancement }, ...fragment.children.map(map));
|
|
66
|
+
else if (range && !range.dynamicComponent)
|
|
67
|
+
result = projectRange(() => map(range.value), range.markerId, range.mayReplaceSubtree);
|
|
68
|
+
else if (serverRange)
|
|
69
|
+
result = createPreparedServerChildRange(map(serverRange.value), serverRange.markerId, serverRange.mayReplaceSubtree);
|
|
70
|
+
else if (program) {
|
|
71
|
+
const invocation = program.invocation;
|
|
72
|
+
const slots = new Set(invocation.program.targetSlots ?? []);
|
|
73
|
+
result = createPreparedRenderProgram(invocation.program, (index) => slots.has(index)
|
|
74
|
+
? map(readRenderProgramSlot(invocation, index))
|
|
75
|
+
: readRenderProgramSlot(invocation, index), invocation.owner, invocation.propertyWriter, program.enhancement);
|
|
76
|
+
}
|
|
77
|
+
else if (serverProgram) {
|
|
78
|
+
const slots = new Set(serverProgram.program.targetSlots ?? []);
|
|
79
|
+
const values = (input) => input.map((entry, index) => (slots.has(index) ? map(entry) : entry));
|
|
80
|
+
result = {
|
|
81
|
+
...serverProgram,
|
|
82
|
+
eagerValues: values(serverProgram.eagerValues),
|
|
83
|
+
...(serverProgram.deferredValues
|
|
84
|
+
? {
|
|
85
|
+
deferredValues: {
|
|
86
|
+
...serverProgram.deferredValues,
|
|
87
|
+
read: () => values(serverProgram.deferredValues.read())
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
: {})
|
|
91
|
+
};
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
cache.set(value, result);
|
|
95
|
+
return result;
|
|
96
|
+
};
|
|
97
|
+
return (children) => children.map((child) => map(child));
|
|
98
|
+
}
|
|
99
|
+
//# sourceMappingURL=fragment-target-projection-plan.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fragment-target-projection-plan.js","sourceRoot":"","sources":["../../src/framework/fragment-target-projection-plan.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,oCAAoC,CAAC;AAC5D,OAAO,EACN,yBAAyB,EACzB,2BAA2B,EAC3B,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EACN,4BAA4B,EAC5B,4BAA4B,EAC5B,MAAM,uCAAuC,CAAC;AAC/C,OAAO,EACN,2BAA2B,EAC3B,6BAA6B,EAC7B,kCAAkC,EAClC,MAAM,sCAAsC,CAAC;AAC9C,OAAO,EAAE,qBAAqB,EAAE,MAAM,yCAAyC,CAAC;AAChF,OAAO,EACN,4BAA4B,EAC5B,8BAA8B,EAC9B,MAAM,wCAAwC,CAAC;AAChD,OAAO,EAAE,+BAA+B,EAAE,MAAM,6BAA6B,CAAC;AAC9E,OAAO,EACN,wBAAwB,EACxB,2BAA2B,EAC3B,qBAAqB,EACrB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,wBAAwB,EAAE,MAAM,6BAA6B,CAAC;AACvE,OAAO,EAAE,yBAAyB,EAAE,MAAM,qBAAqB,CAAC;AAEhE;;;;;GAKG;AACH,MAAM,UAAU,wCAAwC,CACvD,QAA+B,EAC/B,GAAW,EACX,KAAuC,EACvC,YAA0F;IAE1F,MAAM,QAAQ,GAAG,MAAM,CAAC,uBAAuB,CAAC,CAAC;IACjD,MAAM,KAAK,GAAG,IAAI,yBAAyB,EAAE,CAAC;IAC9C,MAAM,KAAK,GAAG,IAAI,OAAO,EAAiB,CAAC;IAC3C,MAAM,GAAG,GAAG,CAAC,GAAY,EAAW,EAAE;QACrC,MAAM,QAAQ,GAAG,OAAO,QAAQ,KAAK,UAAU,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC;QACxE,IAAI,GAAG,KAAK,QAAQ;YAAE,OAAO,GAAG,CAAC;QACjC,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;QAC1B,IAAI,KAAK,KAAK,QAAQ;YAAE,OAAO,KAAK,CAAC;QACrC,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;YAAE,OAAO,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAChD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI;YAAE,OAAO,KAAK,CAAC;QAC9D,MAAM,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAClC,IAAI,QAAQ,KAAK,SAAS;YAAE,OAAO,QAAQ,CAAC;QAC5C,MAAM,MAAM,GAAG,yBAAyB,CAAC,KAAK,CAAC,CAAC;QAChD,IAAI,MAAM,GAAY,KAAK,CAAC;QAC5B,IAAI,MAAM,EAAE,CAAC;YACZ,MAAM,YAAY,GAAG,wBAAwB,CAAC,CAAC,KAAc,CAAC,EAAE,QAAQ,CAAE,CAAC;YAC3E,MAAM,YAAY,GAAG,kCAAkC,CACtD,QAAQ,EACR,KAAK;iBACH,SAAS,CAAC;gBACV;oBACC,KAAK,EAAE,QAAQ;oBACf,GAAG;oBACH,KAAK,EAAE,YAAY,CAAC,KAAK;oBACzB,iBAAiB,EAAE,YAAY,CAAC,iBAAiB;iBACjD;aACD,CAAC;iBACD,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;gBACf,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,GAAG,EAAE,IAAI,CAAC,GAAG;gBACb,aAAa,EAAE,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,YAAY,CAAC,KAAK,EAAE,KAAK,EAAE,CAAC;aAC/D,CAAC,CAAC,CACJ,CAAC;YACF,MAAM,GAAG,2BAA2B,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;QAC1D,CAAC;aAAM,CAAC;YACP,MAAM,SAAS,GAAG,4BAA4B,CAAC,KAAK,CAAC,CAAC;YACtD,MAAM,QAAQ,GAAG,2BAA2B,CAAC,KAAK,CAAC,CAAC;YACpD,MAAM,KAAK,GAAG,qBAAqB,CAAC,KAAK,CAAC,CAAC;YAC3C,MAAM,WAAW,GAAG,4BAA4B,CAAC,KAAK,CAAC,CAAC;YACxD,MAAM,OAAO,GAAG,wBAAwB,CAAC,KAAK,CAAC,CAAC;YAChD,MAAM,aAAa,GAAG,+BAA+B,CAAC,KAAK,CAAC,CAAC;YAC7D,IAAI,SAAS;gBACZ,MAAM,GAAG,4BAA4B,CACpC,KAAK,EACL,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,CAAC,KAAK,CAAU,CAAC,CACtD,CAAC;iBACE,IAAI,QAAQ;gBAChB,MAAM,GAAG,6BAA6B,CACrC,EAAE,GAAG,QAAQ,CAAC,KAAK,EAAE,GAAG,EAAE,QAAQ,CAAC,GAAG,EAAE,mBAAmB,EAAE,QAAQ,CAAC,WAAW,EAAE,EACnF,GAAG,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAC7B,CAAC;iBACE,IAAI,KAAK,IAAI,CAAC,KAAK,CAAC,gBAAgB;gBACxC,MAAM,GAAG,YAAY,CACpB,GAAG,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAU,EAC/B,KAAK,CAAC,QAAQ,EACd,KAAK,CAAC,iBAAiB,CACvB,CAAC;iBACE,IAAI,WAAW;gBACnB,MAAM,GAAG,8BAA8B,CACtC,GAAG,CAAC,WAAW,CAAC,KAAK,CAAU,EAC/B,WAAW,CAAC,QAAQ,EACpB,WAAW,CAAC,iBAAiB,CAC7B,CAAC;iBACE,IAAI,OAAO,EAAE,CAAC;gBAClB,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;gBACtC,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC;gBAC5D,MAAM,GAAG,2BAA2B,CACnC,UAAU,CAAC,OAAO,EAClB,CAAC,KAAK,EAAE,EAAE,CACT,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC;oBACf,CAAC,CAAC,GAAG,CAAC,qBAAqB,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;oBAC/C,CAAC,CAAC,qBAAqB,CAAC,UAAU,EAAE,KAAK,CAAC,EAC5C,UAAU,CAAC,KAAK,EAChB,UAAU,CAAC,cAAc,EACzB,OAAO,CAAC,WAAW,CACnB,CAAC;YACH,CAAC;iBAAM,IAAI,aAAa,EAAE,CAAC;gBAC1B,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,aAAa,CAAC,OAAO,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC;gBAC/D,MAAM,MAAM,GAAG,CAAC,KAAyB,EAAE,EAAE,CAC5C,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;gBACtE,MAAM,GAAG;oBACR,GAAG,aAAa;oBAChB,WAAW,EAAE,MAAM,CAAC,aAAa,CAAC,WAAW,CAAC;oBAC9C,GAAG,CAAC,aAAa,CAAC,cAAc;wBAC/B,CAAC,CAAC;4BACA,cAAc,EAAE;gCACf,GAAG,aAAa,CAAC,cAAc;gCAC/B,IAAI,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,aAAa,CAAC,cAAe,CAAC,IAAI,EAAE,CAAC;6BACxD;yBACD;wBACF,CAAC,CAAC,EAAE,CAAC;iBACN,CAAC;YACH,CAAC;QACF,CAAC;QACD,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,MAAe,CAAC,CAAC;QAClC,OAAO,MAAM,CAAC;IACf,CAAC,CAAC;IACF,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,CAAC,KAAK,CAAU,CAAC,CAAC;AACnE,CAAC","sourcesContent":["import type { AnyComponentInstance, Child } from '../component/contracts.js';\nimport { unwrap } from '@exactjs/reactive/framework/values';\nimport {\n\treadCompiledTargetReceipt,\n\tcreateCompiledTargetReceipt\n} from '../component-abi/target-receipt.js';\nimport {\n\treadCompiledIntrinsicReceipt,\n\twithIntrinsicReceiptChildren\n} from '../component-abi/intrinsic-receipt.js';\nimport {\n\treadCompiledFragmentReceipt,\n\tcreateCompiledFragmentReceipt,\n\tcreateCompiledFragmentPresentation\n} from '../component-abi/fragment-receipt.js';\nimport { readChildRangeReceipt } from '../component-abi/child-range-receipt.js';\nimport {\n\treadPreparedServerChildRange,\n\tcreatePreparedServerChildRange\n} from '../component-abi/server-child-range.js';\nimport { readPreparedServerRenderProgram } from '../server-render-program.js';\nimport {\n\treadRenderProgramReceipt,\n\tcreatePreparedRenderProgram,\n\treadRenderProgramSlot\n} from '../render-program.js';\nimport { readPreparedTargetOutput } from './prepared-target-output.js';\nimport { FragmentPresentationHosts } from './fragment-hosts.js';\n\n/**\n * Projects only one enhancement owner's supplied placement, preserving its authored structure.\n * Nested component implementations stay opaque. Each owner is a host-coalescing barrier; transparent\n * consecutive owners are grouped before this path. The caller supplies range evaluation: clients\n * retain invalidation, while servers resolve the current render attempt without subscriptions.\n */\nexport function createFragmentTargetProjectionWithRanges(\n\tsupplied: Child | (() => Child),\n\ttag: string,\n\towner: AnyComponentInstance | undefined,\n\tprojectRange: (read: () => Child, markerId?: string, mayReplaceSubtree?: boolean) => Child\n): (children: readonly Child[]) => Child[] {\n\tconst identity = Symbol('fragment contribution');\n\tconst hosts = new FragmentPresentationHosts();\n\tconst cache = new WeakMap<object, Child>();\n\tconst map = (raw: unknown): unknown => {\n\t\tconst selected = typeof supplied === 'function' ? supplied() : supplied;\n\t\tif (raw === selected) return raw;\n\t\tconst value = unwrap(raw);\n\t\tif (value === selected) return value;\n\t\tif (Array.isArray(value)) return value.map(map);\n\t\tif (typeof value !== 'object' || value === null) return value;\n\t\tconst retained = cache.get(value);\n\t\tif (retained !== undefined) return retained;\n\t\tconst target = readCompiledTargetReceipt(value);\n\t\tlet result: unknown = value;\n\t\tif (target) {\n\t\t\tconst contribution = readPreparedTargetOutput([value as Child], selected)!;\n\t\t\tconst presentation = createCompiledFragmentPresentation(\n\t\t\t\tselected,\n\t\t\t\thosts\n\t\t\t\t\t.reconcile([\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\towner: identity,\n\t\t\t\t\t\t\ttag,\n\t\t\t\t\t\t\tprops: contribution.props,\n\t\t\t\t\t\t\tdeclaredHostProps: contribution.declaredHostProps\n\t\t\t\t\t\t}\n\t\t\t\t\t])\n\t\t\t\t\t.map((host) => ({\n\t\t\t\t\t\tidentity: host.identity,\n\t\t\t\t\t\ttag: host.tag,\n\t\t\t\t\t\tcontributions: [{ identity, props: contribution.props, owner }]\n\t\t\t\t\t}))\n\t\t\t);\n\t\t\tresult = createCompiledTargetReceipt(null, presentation);\n\t\t} else {\n\t\t\tconst intrinsic = readCompiledIntrinsicReceipt(value);\n\t\t\tconst fragment = readCompiledFragmentReceipt(value);\n\t\t\tconst range = readChildRangeReceipt(value);\n\t\t\tconst serverRange = readPreparedServerChildRange(value);\n\t\t\tconst program = readRenderProgramReceipt(value);\n\t\t\tconst serverProgram = readPreparedServerRenderProgram(value);\n\t\t\tif (intrinsic)\n\t\t\t\tresult = withIntrinsicReceiptChildren(\n\t\t\t\t\tvalue,\n\t\t\t\t\tintrinsic.children.map((child) => map(child) as Child)\n\t\t\t\t);\n\t\t\telse if (fragment)\n\t\t\t\tresult = createCompiledFragmentReceipt(\n\t\t\t\t\t{ ...fragment.props, key: fragment.key, __exactEnhancements: fragment.enhancement },\n\t\t\t\t\t...fragment.children.map(map)\n\t\t\t\t);\n\t\t\telse if (range && !range.dynamicComponent)\n\t\t\t\tresult = projectRange(\n\t\t\t\t\t() => map(range.value) as Child,\n\t\t\t\t\trange.markerId,\n\t\t\t\t\trange.mayReplaceSubtree\n\t\t\t\t);\n\t\t\telse if (serverRange)\n\t\t\t\tresult = createPreparedServerChildRange(\n\t\t\t\t\tmap(serverRange.value) as Child,\n\t\t\t\t\tserverRange.markerId,\n\t\t\t\t\tserverRange.mayReplaceSubtree\n\t\t\t\t);\n\t\t\telse if (program) {\n\t\t\t\tconst invocation = program.invocation;\n\t\t\t\tconst slots = new Set(invocation.program.targetSlots ?? []);\n\t\t\t\tresult = createPreparedRenderProgram(\n\t\t\t\t\tinvocation.program,\n\t\t\t\t\t(index) =>\n\t\t\t\t\t\tslots.has(index)\n\t\t\t\t\t\t\t? map(readRenderProgramSlot(invocation, index))\n\t\t\t\t\t\t\t: readRenderProgramSlot(invocation, index),\n\t\t\t\t\tinvocation.owner,\n\t\t\t\t\tinvocation.propertyWriter,\n\t\t\t\t\tprogram.enhancement\n\t\t\t\t);\n\t\t\t} else if (serverProgram) {\n\t\t\t\tconst slots = new Set(serverProgram.program.targetSlots ?? []);\n\t\t\t\tconst values = (input: readonly unknown[]) =>\n\t\t\t\t\tinput.map((entry, index) => (slots.has(index) ? map(entry) : entry));\n\t\t\t\tresult = {\n\t\t\t\t\t...serverProgram,\n\t\t\t\t\teagerValues: values(serverProgram.eagerValues),\n\t\t\t\t\t...(serverProgram.deferredValues\n\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\tdeferredValues: {\n\t\t\t\t\t\t\t\t\t...serverProgram.deferredValues,\n\t\t\t\t\t\t\t\t\tread: () => values(serverProgram.deferredValues!.read())\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t: {})\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\t\tcache.set(value, result as Child);\n\t\treturn result;\n\t};\n\treturn (children) => children.map((child) => map(child) as Child);\n}\n"]}
|
|
@@ -1,8 +1,4 @@
|
|
|
1
1
|
import type { AnyComponentInstance, Child } from '../component/contracts.js';
|
|
2
|
-
/**
|
|
3
|
-
* Projects only one enhancement owner's supplied placement, preserving its authored structure.
|
|
4
|
-
* Nested component implementations stay opaque. Each owner is a host-coalescing barrier; transparent
|
|
5
|
-
* consecutive owners are grouped before this path. Reactive ranges retain their existing invalidation.
|
|
6
|
-
*/
|
|
2
|
+
/** Projects fragment targets while retaining client range subscriptions and ownership. */
|
|
7
3
|
export declare function createFragmentTargetProjection(supplied: Child | (() => Child), tag: string, owner?: AnyComponentInstance): (children: readonly Child[]) => Child[];
|
|
8
4
|
//# sourceMappingURL=fragment-target-projection.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fragment-target-projection.d.ts","sourceRoot":"","sources":["../../src/framework/fragment-target-projection.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,KAAK,EAAE,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"fragment-target-projection.d.ts","sourceRoot":"","sources":["../../src/framework/fragment-target-projection.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,KAAK,EAAE,MAAM,2BAA2B,CAAC;AAK7E,0FAA0F;AAC1F,wBAAgB,8BAA8B,CAC7C,QAAQ,EAAE,KAAK,GAAG,CAAC,MAAM,KAAK,CAAC,EAC/B,GAAG,EAAE,MAAM,EACX,KAAK,CAAC,EAAE,oBAAoB,GAC1B,CAAC,QAAQ,EAAE,SAAS,KAAK,EAAE,KAAK,KAAK,EAAE,CAQzC"}
|
|
@@ -1,98 +1,8 @@
|
|
|
1
|
-
import { computed
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
|
|
5
|
-
import { readChildRangeReceipt, createChildRangeReceipt } from '../component-abi/child-range-receipt.js';
|
|
6
|
-
import { readPreparedServerChildRange, createPreparedServerChildRange } from '../component-abi/server-child-range.js';
|
|
7
|
-
import { readPreparedServerRenderProgram } from '../server-render-program.js';
|
|
8
|
-
import { readRenderProgramReceipt, createPreparedRenderProgram, readRenderProgramSlot } from '../render-program.js';
|
|
9
|
-
import { readPreparedTargetOutput } from './prepared-target-output.js';
|
|
10
|
-
import { FragmentPresentationHosts } from './fragment-hosts.js';
|
|
11
|
-
/**
|
|
12
|
-
* Projects only one enhancement owner's supplied placement, preserving its authored structure.
|
|
13
|
-
* Nested component implementations stay opaque. Each owner is a host-coalescing barrier; transparent
|
|
14
|
-
* consecutive owners are grouped before this path. Reactive ranges retain their existing invalidation.
|
|
15
|
-
*/
|
|
1
|
+
import { computed } from '@exactjs/reactive/framework/runtime';
|
|
2
|
+
import { createChildRangeReceipt } from '../component-abi/child-range-receipt.js';
|
|
3
|
+
import { createFragmentTargetProjectionWithRanges } from './fragment-target-projection-plan.js';
|
|
4
|
+
/** Projects fragment targets while retaining client range subscriptions and ownership. */
|
|
16
5
|
export function createFragmentTargetProjection(supplied, tag, owner) {
|
|
17
|
-
|
|
18
|
-
const hosts = new FragmentPresentationHosts();
|
|
19
|
-
const cache = new WeakMap();
|
|
20
|
-
const map = (raw) => {
|
|
21
|
-
const selected = typeof supplied === 'function' ? supplied() : supplied;
|
|
22
|
-
if (raw === selected)
|
|
23
|
-
return raw;
|
|
24
|
-
const value = unwrap(raw);
|
|
25
|
-
if (value === selected)
|
|
26
|
-
return value;
|
|
27
|
-
if (Array.isArray(value))
|
|
28
|
-
return value.map(map);
|
|
29
|
-
if (typeof value !== 'object' || value === null)
|
|
30
|
-
return value;
|
|
31
|
-
const retained = cache.get(value);
|
|
32
|
-
if (retained !== undefined)
|
|
33
|
-
return retained;
|
|
34
|
-
const target = readCompiledTargetReceipt(value);
|
|
35
|
-
let result = value;
|
|
36
|
-
if (target) {
|
|
37
|
-
const contribution = readPreparedTargetOutput([value], selected);
|
|
38
|
-
const presentation = createCompiledFragmentPresentation(selected, hosts
|
|
39
|
-
.reconcile([
|
|
40
|
-
{
|
|
41
|
-
owner: identity,
|
|
42
|
-
tag,
|
|
43
|
-
props: contribution.props,
|
|
44
|
-
declaredHostProps: contribution.declaredHostProps
|
|
45
|
-
}
|
|
46
|
-
])
|
|
47
|
-
.map((host) => ({
|
|
48
|
-
identity: host.identity,
|
|
49
|
-
tag: host.tag,
|
|
50
|
-
contributions: [{ identity, props: contribution.props, owner }]
|
|
51
|
-
})));
|
|
52
|
-
result = createCompiledTargetReceipt(null, presentation);
|
|
53
|
-
}
|
|
54
|
-
else {
|
|
55
|
-
const intrinsic = readCompiledIntrinsicReceipt(value);
|
|
56
|
-
const fragment = readCompiledFragmentReceipt(value);
|
|
57
|
-
const range = readChildRangeReceipt(value);
|
|
58
|
-
const serverRange = readPreparedServerChildRange(value);
|
|
59
|
-
const program = readRenderProgramReceipt(value);
|
|
60
|
-
const serverProgram = readPreparedServerRenderProgram(value);
|
|
61
|
-
if (intrinsic)
|
|
62
|
-
result = withIntrinsicReceiptChildren(value, intrinsic.children.map((child) => map(child)));
|
|
63
|
-
else if (fragment)
|
|
64
|
-
result = createCompiledFragmentReceipt({ ...fragment.props, key: fragment.key, __exactEnhancements: fragment.enhancement }, ...fragment.children.map(map));
|
|
65
|
-
else if (range && !range.dynamicComponent)
|
|
66
|
-
result = createChildRangeReceipt(computed(() => map(range.value)), range.markerId, range.mayReplaceSubtree);
|
|
67
|
-
else if (serverRange)
|
|
68
|
-
result = createPreparedServerChildRange(map(serverRange.value), serverRange.markerId, serverRange.mayReplaceSubtree);
|
|
69
|
-
else if (program) {
|
|
70
|
-
const invocation = program.invocation;
|
|
71
|
-
const slots = new Set(invocation.program.targetSlots ?? []);
|
|
72
|
-
result = createPreparedRenderProgram(invocation.program, (index) => slots.has(index)
|
|
73
|
-
? map(readRenderProgramSlot(invocation, index))
|
|
74
|
-
: readRenderProgramSlot(invocation, index), invocation.owner, invocation.propertyWriter, program.enhancement);
|
|
75
|
-
}
|
|
76
|
-
else if (serverProgram) {
|
|
77
|
-
const slots = new Set(serverProgram.program.targetSlots ?? []);
|
|
78
|
-
const values = (input) => input.map((entry, index) => (slots.has(index) ? map(entry) : entry));
|
|
79
|
-
result = {
|
|
80
|
-
...serverProgram,
|
|
81
|
-
eagerValues: values(serverProgram.eagerValues),
|
|
82
|
-
...(serverProgram.deferredValues
|
|
83
|
-
? {
|
|
84
|
-
deferredValues: {
|
|
85
|
-
...serverProgram.deferredValues,
|
|
86
|
-
read: () => values(serverProgram.deferredValues.read())
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
|
-
: {})
|
|
90
|
-
};
|
|
91
|
-
}
|
|
92
|
-
}
|
|
93
|
-
cache.set(value, result);
|
|
94
|
-
return result;
|
|
95
|
-
};
|
|
96
|
-
return (children) => children.map((child) => map(child));
|
|
6
|
+
return createFragmentTargetProjectionWithRanges(supplied, tag, owner, (read, markerId, mayReplaceSubtree) => createChildRangeReceipt(computed(read), markerId, mayReplaceSubtree));
|
|
97
7
|
}
|
|
98
8
|
//# sourceMappingURL=fragment-target-projection.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fragment-target-projection.js","sourceRoot":"","sources":["../../src/framework/fragment-target-projection.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"fragment-target-projection.js","sourceRoot":"","sources":["../../src/framework/fragment-target-projection.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,qCAAqC,CAAC;AAC/D,OAAO,EAAE,uBAAuB,EAAE,MAAM,yCAAyC,CAAC;AAClF,OAAO,EAAE,wCAAwC,EAAE,MAAM,sCAAsC,CAAC;AAEhG,0FAA0F;AAC1F,MAAM,UAAU,8BAA8B,CAC7C,QAA+B,EAC/B,GAAW,EACX,KAA4B;IAE5B,OAAO,wCAAwC,CAC9C,QAAQ,EACR,GAAG,EACH,KAAK,EACL,CAAC,IAAI,EAAE,QAAQ,EAAE,iBAAiB,EAAE,EAAE,CACrC,uBAAuB,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,iBAAiB,CAAC,CACrE,CAAC;AACH,CAAC","sourcesContent":["import type { AnyComponentInstance, Child } from '../component/contracts.js';\nimport { computed } from '@exactjs/reactive/framework/runtime';\nimport { createChildRangeReceipt } from '../component-abi/child-range-receipt.js';\nimport { createFragmentTargetProjectionWithRanges } from './fragment-target-projection-plan.js';\n\n/** Projects fragment targets while retaining client range subscriptions and ownership. */\nexport function createFragmentTargetProjection(\n\tsupplied: Child | (() => Child),\n\ttag: string,\n\towner?: AnyComponentInstance\n): (children: readonly Child[]) => Child[] {\n\treturn createFragmentTargetProjectionWithRanges(\n\t\tsupplied,\n\t\ttag,\n\t\towner,\n\t\t(read, markerId, mayReplaceSubtree) =>\n\t\t\tcreateChildRangeReceipt(computed(read), markerId, mayReplaceSubtree)\n\t);\n}\n"]}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { AnyComponentInstance, Child } from '../component/contracts.js';
|
|
2
|
+
/** Projects one server render attempt without creating client subscriptions or effect scopes. */
|
|
3
|
+
export declare function createServerFragmentTargetProjection(supplied: Child | (() => Child), tag: string, owner?: AnyComponentInstance): (children: readonly Child[]) => Child[];
|
|
4
|
+
//# sourceMappingURL=server-fragment-target-projection.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server-fragment-target-projection.d.ts","sourceRoot":"","sources":["../../src/framework/server-fragment-target-projection.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,KAAK,EAAE,MAAM,2BAA2B,CAAC;AAI7E,iGAAiG;AACjG,wBAAgB,oCAAoC,CACnD,QAAQ,EAAE,KAAK,GAAG,CAAC,MAAM,KAAK,CAAC,EAC/B,GAAG,EAAE,MAAM,EACX,KAAK,CAAC,EAAE,oBAAoB,GAC1B,CAAC,QAAQ,EAAE,SAAS,KAAK,EAAE,KAAK,KAAK,EAAE,CAQzC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { createPreparedServerChildRange } from '../component-abi/server-child-range.js';
|
|
2
|
+
import { createFragmentTargetProjectionWithRanges } from './fragment-target-projection-plan.js';
|
|
3
|
+
/** Projects one server render attempt without creating client subscriptions or effect scopes. */
|
|
4
|
+
export function createServerFragmentTargetProjection(supplied, tag, owner) {
|
|
5
|
+
return createFragmentTargetProjectionWithRanges(supplied, tag, owner, (read, markerId, mayReplaceSubtree) => createPreparedServerChildRange(read(), markerId, mayReplaceSubtree));
|
|
6
|
+
}
|
|
7
|
+
//# sourceMappingURL=server-fragment-target-projection.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server-fragment-target-projection.js","sourceRoot":"","sources":["../../src/framework/server-fragment-target-projection.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,8BAA8B,EAAE,MAAM,wCAAwC,CAAC;AACxF,OAAO,EAAE,wCAAwC,EAAE,MAAM,sCAAsC,CAAC;AAEhG,iGAAiG;AACjG,MAAM,UAAU,oCAAoC,CACnD,QAA+B,EAC/B,GAAW,EACX,KAA4B;IAE5B,OAAO,wCAAwC,CAC9C,QAAQ,EACR,GAAG,EACH,KAAK,EACL,CAAC,IAAI,EAAE,QAAQ,EAAE,iBAAiB,EAAE,EAAE,CACrC,8BAA8B,CAAC,IAAI,EAAE,EAAE,QAAQ,EAAE,iBAAiB,CAAC,CACpE,CAAC;AACH,CAAC","sourcesContent":["import type { AnyComponentInstance, Child } from '../component/contracts.js';\nimport { createPreparedServerChildRange } from '../component-abi/server-child-range.js';\nimport { createFragmentTargetProjectionWithRanges } from './fragment-target-projection-plan.js';\n\n/** Projects one server render attempt without creating client subscriptions or effect scopes. */\nexport function createServerFragmentTargetProjection(\n\tsupplied: Child | (() => Child),\n\ttag: string,\n\towner?: AnyComponentInstance\n): (children: readonly Child[]) => Child[] {\n\treturn createFragmentTargetProjectionWithRanges(\n\t\tsupplied,\n\t\ttag,\n\t\towner,\n\t\t(read, markerId, mayReplaceSubtree) =>\n\t\t\tcreatePreparedServerChildRange(read(), markerId, mayReplaceSubtree)\n\t);\n}\n"]}
|
|
@@ -16,4 +16,5 @@ export declare function createForwardedExpression<T>(compute: () => T): T;
|
|
|
16
16
|
export declare function createDynamicChild(compute: () => RenderResult, markerId?: string, mayReplaceSubtree?: boolean): ExactPreparedServerChildRange;
|
|
17
17
|
/** Creates the eager server operation for one compiler-owned dynamic child range. */
|
|
18
18
|
export declare function createCompiledChildRangeReceipt(compute: () => RenderResult, markerId?: string, mayReplaceSubtree?: boolean): ExactPreparedServerChildRange;
|
|
19
|
+
export { createServerFragmentTargetProjection } from './server-fragment-target-projection.js';
|
|
19
20
|
//# sourceMappingURL=server-render-structure.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server-render-structure.d.ts","sourceRoot":"","sources":["../../src/framework/server-render-structure.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAEN,KAAK,6BAA6B,EAClC,MAAM,wCAAwC,CAAC;AAEhD,OAAO,EAAE,sBAAsB,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAC;AAC5F,OAAO,EAAE,2BAA2B,EAAE,4BAA4B,EAAE,MAAM,wBAAwB,CAAC;AACnG,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC1E,OAAO,EACN,2BAA2B,EAC3B,iCAAiC,EACjC,4BAA4B,EAC5B,+BAA+B,EAC/B,iBAAiB,EACjB,wBAAwB,EACxB,qBAAqB,EACrB,KAAK,kBAAkB,EACvB,KAAK,wBAAwB,EAC7B,KAAK,qBAAqB,EAC1B,KAAK,yBAAyB,EAC9B,KAAK,wBAAwB,EAC7B,KAAK,+BAA+B,EACpC,KAAK,4BAA4B,EACjC,KAAK,yBAAyB,EAC9B,KAAK,6BAA6B,EAClC,KAAK,gCAAgC,EACrC,KAAK,sBAAsB,EAC3B,KAAK,sBAAsB,EAC3B,KAAK,+BAA+B,EACpC,KAAK,2BAA2B,EAChC,KAAK,+BAA+B,EACpC,KAAK,2BAA2B,EAChC,KAAK,qBAAqB,EAC1B,KAAK,uBAAuB,EAC5B,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACN,sCAAsC,EACtC,oDAAoD,EACpD,oCAAoC,EACpC,KAAK,qCAAqC,EAC1C,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACN,4BAA4B,EAC5B,KAAK,6BAA6B,EAClC,MAAM,wCAAwC,CAAC;AAChD,OAAO,EACN,8BAA8B,EAC9B,4BAA4B,EAC5B,KAAK,6BAA6B,EAClC,MAAM,wCAAwC,CAAC;AAChD,OAAO,EACN,qBAAqB,EACrB,oBAAoB,EACpB,gBAAgB,EAChB,MAAM,+CAA+C,CAAC;AAEvD,4FAA4F;AAC5F,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,GAAG,CAAC,CAEvD;AAED,2FAA2F;AAC3F,wBAAgB,yBAAyB,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,GAAG,CAAC,CAEhE;AAED,6FAA6F;AAC7F,wBAAgB,kBAAkB,CACjC,OAAO,EAAE,MAAM,YAAY,EAC3B,QAAQ,CAAC,EAAE,MAAM,EACjB,iBAAiB,UAAO,GACtB,6BAA6B,CAE/B;AAED,qFAAqF;AACrF,wBAAgB,+BAA+B,CAC9C,OAAO,EAAE,MAAM,YAAY,EAC3B,QAAQ,CAAC,EAAE,MAAM,EACjB,iBAAiB,UAAO,GACtB,6BAA6B,CAE/B"}
|
|
1
|
+
{"version":3,"file":"server-render-structure.d.ts","sourceRoot":"","sources":["../../src/framework/server-render-structure.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAEN,KAAK,6BAA6B,EAClC,MAAM,wCAAwC,CAAC;AAEhD,OAAO,EAAE,sBAAsB,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAC;AAC5F,OAAO,EAAE,2BAA2B,EAAE,4BAA4B,EAAE,MAAM,wBAAwB,CAAC;AACnG,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC1E,OAAO,EACN,2BAA2B,EAC3B,iCAAiC,EACjC,4BAA4B,EAC5B,+BAA+B,EAC/B,iBAAiB,EACjB,wBAAwB,EACxB,qBAAqB,EACrB,KAAK,kBAAkB,EACvB,KAAK,wBAAwB,EAC7B,KAAK,qBAAqB,EAC1B,KAAK,yBAAyB,EAC9B,KAAK,wBAAwB,EAC7B,KAAK,+BAA+B,EACpC,KAAK,4BAA4B,EACjC,KAAK,yBAAyB,EAC9B,KAAK,6BAA6B,EAClC,KAAK,gCAAgC,EACrC,KAAK,sBAAsB,EAC3B,KAAK,sBAAsB,EAC3B,KAAK,+BAA+B,EACpC,KAAK,2BAA2B,EAChC,KAAK,+BAA+B,EACpC,KAAK,2BAA2B,EAChC,KAAK,qBAAqB,EAC1B,KAAK,uBAAuB,EAC5B,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACN,sCAAsC,EACtC,oDAAoD,EACpD,oCAAoC,EACpC,KAAK,qCAAqC,EAC1C,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACN,4BAA4B,EAC5B,KAAK,6BAA6B,EAClC,MAAM,wCAAwC,CAAC;AAChD,OAAO,EACN,8BAA8B,EAC9B,4BAA4B,EAC5B,KAAK,6BAA6B,EAClC,MAAM,wCAAwC,CAAC;AAChD,OAAO,EACN,qBAAqB,EACrB,oBAAoB,EACpB,gBAAgB,EAChB,MAAM,+CAA+C,CAAC;AAEvD,4FAA4F;AAC5F,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,GAAG,CAAC,CAEvD;AAED,2FAA2F;AAC3F,wBAAgB,yBAAyB,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,GAAG,CAAC,CAEhE;AAED,6FAA6F;AAC7F,wBAAgB,kBAAkB,CACjC,OAAO,EAAE,MAAM,YAAY,EAC3B,QAAQ,CAAC,EAAE,MAAM,EACjB,iBAAiB,UAAO,GACtB,6BAA6B,CAE/B;AAED,qFAAqF;AACrF,wBAAgB,+BAA+B,CAC9C,OAAO,EAAE,MAAM,YAAY,EAC3B,QAAQ,CAAC,EAAE,MAAM,EACjB,iBAAiB,UAAO,GACtB,6BAA6B,CAE/B;AAED,OAAO,EAAE,oCAAoC,EAAE,MAAM,wCAAwC,CAAC"}
|
|
@@ -23,4 +23,5 @@ export function createDynamicChild(compute, markerId, mayReplaceSubtree = true)
|
|
|
23
23
|
export function createCompiledChildRangeReceipt(compute, markerId, mayReplaceSubtree = true) {
|
|
24
24
|
return createPreparedServerChildRange(compute(), markerId, mayReplaceSubtree);
|
|
25
25
|
}
|
|
26
|
+
export { createServerFragmentTargetProjection } from './server-fragment-target-projection.js';
|
|
26
27
|
//# sourceMappingURL=server-render-structure.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server-render-structure.js","sourceRoot":"","sources":["../../src/framework/server-render-structure.ts"],"names":[],"mappings":"AACA,OAAO,EACN,8BAA8B,EAE9B,MAAM,wCAAwC,CAAC;AAEhD,OAAO,EAAE,sBAAsB,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAC;AAC5F,OAAO,EAAE,2BAA2B,EAAE,4BAA4B,EAAE,MAAM,wBAAwB,CAAC;AACnG,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC1E,OAAO,EACN,2BAA2B,EAC3B,iCAAiC,EACjC,4BAA4B,EAC5B,+BAA+B,EAC/B,iBAAiB,EACjB,wBAAwB,EACxB,qBAAqB,EAmBrB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACN,sCAAsC,EACtC,oDAAoD,EACpD,oCAAoC,EAEpC,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACN,4BAA4B,EAE5B,MAAM,wCAAwC,CAAC;AAChD,OAAO,EACN,8BAA8B,EAC9B,4BAA4B,EAE5B,MAAM,wCAAwC,CAAC;AAChD,OAAO,EACN,qBAAqB,EACrB,oBAAoB,EACpB,gBAAgB,EAChB,MAAM,+CAA+C,CAAC;AAEvD,4FAA4F;AAC5F,MAAM,UAAU,gBAAgB,CAAI,OAAgB;IACnD,OAAO,OAAO,EAAE,CAAC;AAClB,CAAC;AAED,2FAA2F;AAC3F,MAAM,UAAU,yBAAyB,CAAI,OAAgB;IAC5D,OAAO,OAAO,EAAE,CAAC;AAClB,CAAC;AAED,6FAA6F;AAC7F,MAAM,UAAU,kBAAkB,CACjC,OAA2B,EAC3B,QAAiB,EACjB,iBAAiB,GAAG,IAAI;IAExB,OAAO,8BAA8B,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,iBAAiB,CAAC,CAAC;AAC/E,CAAC;AAED,qFAAqF;AACrF,MAAM,UAAU,+BAA+B,CAC9C,OAA2B,EAC3B,QAAiB,EACjB,iBAAiB,GAAG,IAAI;IAExB,OAAO,8BAA8B,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,iBAAiB,CAAC,CAAC;AAC/E,CAAC","sourcesContent":["import type { RenderResult } from '../component/contracts.js';\nimport {\n\tcreatePreparedServerChildRange,\n\ttype ExactPreparedServerChildRange\n} from '../component-abi/server-child-range.js';\n\nexport { isFiniteClientBoundary, markFiniteClientBoundary } from '../hydration-boundary.js';\nexport { hasIndependentAsyncSiblings, markIndependentAsyncSiblings } from '../ssr-independence.js';\nexport { RenderProgram, ServerBoundary, ServerSlot } from '../symbols.js';\nexport {\n\tcreatePreparedRenderProgram,\n\tcreatePreparedServerRenderProgram,\n\tprepareCompiledRenderProgram,\n\treadPreparedServerRenderProgram,\n\treadRenderProgram,\n\treadRenderProgramReceipt,\n\treadRenderProgramSlot,\n\ttype ExactRenderProgram,\n\ttype ExactDirectRenderProgram,\n\ttype ExactDomRenderProgram,\n\ttype ExactRenderProgramBinding,\n\ttype ExactRenderProgramBinder,\n\ttype ExactRenderProgramBindingTarget,\n\ttype ExactRenderProgramInvocation,\n\ttype ExactRenderProgramReceipt,\n\ttype ExactRenderProgramReceiptData,\n\ttype ExactPreparedServerRenderProgram,\n\ttype ExactRenderProgramNode,\n\ttype ExactRenderProgramSlot,\n\ttype ExactRenderProgramSsrOperations,\n\ttype ExactRenderProgramSsrOutput,\n\ttype ExactRenderProgramSsrInvocation,\n\ttype ExactRenderProgramSsrWriter,\n\ttype ExactSsrRenderProgram,\n\ttype ExactTableRenderProgram\n} from '../render-program.js';\nexport {\n\tcreatePreparedServerComponentReference,\n\tcreatePreparedServerComponentReferenceFromPlainProps,\n\treadPreparedServerComponentReference,\n\ttype ExactPreparedServerComponentReference\n} from '../component-abi/receipt.js';\nexport {\n\treadPreparedServerChildRange,\n\ttype ExactPreparedServerChildRange\n} from '../component-abi/server-child-range.js';\nexport {\n\tcreatePreparedServerKeyedChild,\n\treadPreparedServerKeyedChild,\n\ttype ExactPreparedServerKeyedChild\n} from '../component-abi/server-keyed-child.js';\nexport {\n\tcreateKeyedServerSlot,\n\tcreateServerBoundary,\n\tcreateServerSlot\n} from '../component-abi/server-structure-receipts.js';\n\n/** Evaluates a compiler-known expression directly in a compiler-closed server component. */\nexport function createExpression<T>(compute: () => T): T {\n\treturn compute();\n}\n\n/** Evaluates a compiler-forwarded input directly in a compiler-closed server component. */\nexport function createForwardedExpression<T>(compute: () => T): T {\n\treturn compute();\n}\n\n/** Creates an eager focused child range for a direct server render or its local fallback. */\nexport function createDynamicChild(\n\tcompute: () => RenderResult,\n\tmarkerId?: string,\n\tmayReplaceSubtree = true\n): ExactPreparedServerChildRange {\n\treturn createPreparedServerChildRange(compute(), markerId, mayReplaceSubtree);\n}\n\n/** Creates the eager server operation for one compiler-owned dynamic child range. */\nexport function createCompiledChildRangeReceipt(\n\tcompute: () => RenderResult,\n\tmarkerId?: string,\n\tmayReplaceSubtree = true\n): ExactPreparedServerChildRange {\n\treturn createPreparedServerChildRange(compute(), markerId, mayReplaceSubtree);\n}\n"]}
|
|
1
|
+
{"version":3,"file":"server-render-structure.js","sourceRoot":"","sources":["../../src/framework/server-render-structure.ts"],"names":[],"mappings":"AACA,OAAO,EACN,8BAA8B,EAE9B,MAAM,wCAAwC,CAAC;AAEhD,OAAO,EAAE,sBAAsB,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAC;AAC5F,OAAO,EAAE,2BAA2B,EAAE,4BAA4B,EAAE,MAAM,wBAAwB,CAAC;AACnG,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC1E,OAAO,EACN,2BAA2B,EAC3B,iCAAiC,EACjC,4BAA4B,EAC5B,+BAA+B,EAC/B,iBAAiB,EACjB,wBAAwB,EACxB,qBAAqB,EAmBrB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACN,sCAAsC,EACtC,oDAAoD,EACpD,oCAAoC,EAEpC,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACN,4BAA4B,EAE5B,MAAM,wCAAwC,CAAC;AAChD,OAAO,EACN,8BAA8B,EAC9B,4BAA4B,EAE5B,MAAM,wCAAwC,CAAC;AAChD,OAAO,EACN,qBAAqB,EACrB,oBAAoB,EACpB,gBAAgB,EAChB,MAAM,+CAA+C,CAAC;AAEvD,4FAA4F;AAC5F,MAAM,UAAU,gBAAgB,CAAI,OAAgB;IACnD,OAAO,OAAO,EAAE,CAAC;AAClB,CAAC;AAED,2FAA2F;AAC3F,MAAM,UAAU,yBAAyB,CAAI,OAAgB;IAC5D,OAAO,OAAO,EAAE,CAAC;AAClB,CAAC;AAED,6FAA6F;AAC7F,MAAM,UAAU,kBAAkB,CACjC,OAA2B,EAC3B,QAAiB,EACjB,iBAAiB,GAAG,IAAI;IAExB,OAAO,8BAA8B,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,iBAAiB,CAAC,CAAC;AAC/E,CAAC;AAED,qFAAqF;AACrF,MAAM,UAAU,+BAA+B,CAC9C,OAA2B,EAC3B,QAAiB,EACjB,iBAAiB,GAAG,IAAI;IAExB,OAAO,8BAA8B,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,iBAAiB,CAAC,CAAC;AAC/E,CAAC;AAED,OAAO,EAAE,oCAAoC,EAAE,MAAM,wCAAwC,CAAC","sourcesContent":["import type { RenderResult } from '../component/contracts.js';\nimport {\n\tcreatePreparedServerChildRange,\n\ttype ExactPreparedServerChildRange\n} from '../component-abi/server-child-range.js';\n\nexport { isFiniteClientBoundary, markFiniteClientBoundary } from '../hydration-boundary.js';\nexport { hasIndependentAsyncSiblings, markIndependentAsyncSiblings } from '../ssr-independence.js';\nexport { RenderProgram, ServerBoundary, ServerSlot } from '../symbols.js';\nexport {\n\tcreatePreparedRenderProgram,\n\tcreatePreparedServerRenderProgram,\n\tprepareCompiledRenderProgram,\n\treadPreparedServerRenderProgram,\n\treadRenderProgram,\n\treadRenderProgramReceipt,\n\treadRenderProgramSlot,\n\ttype ExactRenderProgram,\n\ttype ExactDirectRenderProgram,\n\ttype ExactDomRenderProgram,\n\ttype ExactRenderProgramBinding,\n\ttype ExactRenderProgramBinder,\n\ttype ExactRenderProgramBindingTarget,\n\ttype ExactRenderProgramInvocation,\n\ttype ExactRenderProgramReceipt,\n\ttype ExactRenderProgramReceiptData,\n\ttype ExactPreparedServerRenderProgram,\n\ttype ExactRenderProgramNode,\n\ttype ExactRenderProgramSlot,\n\ttype ExactRenderProgramSsrOperations,\n\ttype ExactRenderProgramSsrOutput,\n\ttype ExactRenderProgramSsrInvocation,\n\ttype ExactRenderProgramSsrWriter,\n\ttype ExactSsrRenderProgram,\n\ttype ExactTableRenderProgram\n} from '../render-program.js';\nexport {\n\tcreatePreparedServerComponentReference,\n\tcreatePreparedServerComponentReferenceFromPlainProps,\n\treadPreparedServerComponentReference,\n\ttype ExactPreparedServerComponentReference\n} from '../component-abi/receipt.js';\nexport {\n\treadPreparedServerChildRange,\n\ttype ExactPreparedServerChildRange\n} from '../component-abi/server-child-range.js';\nexport {\n\tcreatePreparedServerKeyedChild,\n\treadPreparedServerKeyedChild,\n\ttype ExactPreparedServerKeyedChild\n} from '../component-abi/server-keyed-child.js';\nexport {\n\tcreateKeyedServerSlot,\n\tcreateServerBoundary,\n\tcreateServerSlot\n} from '../component-abi/server-structure-receipts.js';\n\n/** Evaluates a compiler-known expression directly in a compiler-closed server component. */\nexport function createExpression<T>(compute: () => T): T {\n\treturn compute();\n}\n\n/** Evaluates a compiler-forwarded input directly in a compiler-closed server component. */\nexport function createForwardedExpression<T>(compute: () => T): T {\n\treturn compute();\n}\n\n/** Creates an eager focused child range for a direct server render or its local fallback. */\nexport function createDynamicChild(\n\tcompute: () => RenderResult,\n\tmarkerId?: string,\n\tmayReplaceSubtree = true\n): ExactPreparedServerChildRange {\n\treturn createPreparedServerChildRange(compute(), markerId, mayReplaceSubtree);\n}\n\n/** Creates the eager server operation for one compiler-owned dynamic child range. */\nexport function createCompiledChildRangeReceipt(\n\tcompute: () => RenderResult,\n\tmarkerId?: string,\n\tmayReplaceSubtree = true\n): ExactPreparedServerChildRange {\n\treturn createPreparedServerChildRange(compute(), markerId, mayReplaceSubtree);\n}\n\nexport { createServerFragmentTargetProjection } from './server-fragment-target-projection.js';\n"]}
|
|
@@ -32,7 +32,11 @@ function writePath(target, path, value) {
|
|
|
32
32
|
cursor = created;
|
|
33
33
|
}
|
|
34
34
|
}
|
|
35
|
-
|
|
35
|
+
const key = segments.at(-1);
|
|
36
|
+
// A captured collection already restores derived reads such as Map/Set.size.
|
|
37
|
+
// Reassigning that identical read would attempt to write a native getter-only property.
|
|
38
|
+
if (!Object.is(cursor[key], value))
|
|
39
|
+
cursor[key] = value;
|
|
36
40
|
}
|
|
37
41
|
/** Rejects prototype-bearing path segments before touching reactive state. */
|
|
38
42
|
function safeSegment(segment) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resumption.js","sourceRoot":"","sources":["../../../src/component/resumption.ts"],"names":[],"mappings":"AAKA,4FAA4F;AAC5F,MAAM,UAAU,wBAAwB,CACvC,KAAwC,EACxC,UAAqC;IAErC,MAAM,MAAM,GAAG,aAAa,IAAI,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IACvF,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QAC3B,KAAK,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,MAAsD,EAAE,CAAC;YACrF,IAAI,OAAO,KAAK,KAAK,QAAQ;gBAC5B,MAAM,IAAI,KAAK,CACd,iDAAiD,aAAa,IAAI,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CACvH,CAAC;YACH,SAAS,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;QAChC,CAAC;QACD,OAAO;IACR,CAAC;IACD,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC;QAAE,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;AACnF,CAAC;AAED,wFAAwF;AACxF,SAAS,SAAS,CAAC,MAA+B,EAAE,IAAY,EAAE,KAAc;IAC/E,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACjC,IAAI,CAAC,QAAQ,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,CAAC;QACtD,MAAM,IAAI,KAAK,CAAC,mDAAmD,IAAI,EAAE,CAAC,CAAC;IAC5E,CAAC;IACD,IAAI,MAAM,GAAG,MAAM,CAAC;IACpB,KAAK,MAAM,OAAO,IAAI,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7C,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;QAChC,yEAAyE;QACzE,+EAA+E;QAC/E,IAAI,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;YAC5C,MAAM,GAAG,OAAkC,CAAC;QAC7C,CAAC;aAAM,CAAC;YACP,MAAM,OAAO,GAA4B,EAAE,CAAC;YAC5C,MAAM,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC;YAC1B,MAAM,GAAG,OAAO,CAAC;QAClB,CAAC;IACF,CAAC;IACD,MAAM,
|
|
1
|
+
{"version":3,"file":"resumption.js","sourceRoot":"","sources":["../../../src/component/resumption.ts"],"names":[],"mappings":"AAKA,4FAA4F;AAC5F,MAAM,UAAU,wBAAwB,CACvC,KAAwC,EACxC,UAAqC;IAErC,MAAM,MAAM,GAAG,aAAa,IAAI,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IACvF,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QAC3B,KAAK,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,MAAsD,EAAE,CAAC;YACrF,IAAI,OAAO,KAAK,KAAK,QAAQ;gBAC5B,MAAM,IAAI,KAAK,CACd,iDAAiD,aAAa,IAAI,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CACvH,CAAC;YACH,SAAS,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;QAChC,CAAC;QACD,OAAO;IACR,CAAC;IACD,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC;QAAE,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;AACnF,CAAC;AAED,wFAAwF;AACxF,SAAS,SAAS,CAAC,MAA+B,EAAE,IAAY,EAAE,KAAc;IAC/E,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACjC,IAAI,CAAC,QAAQ,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,CAAC;QACtD,MAAM,IAAI,KAAK,CAAC,mDAAmD,IAAI,EAAE,CAAC,CAAC;IAC5E,CAAC;IACD,IAAI,MAAM,GAAG,MAAM,CAAC;IACpB,KAAK,MAAM,OAAO,IAAI,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7C,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;QAChC,yEAAyE;QACzE,+EAA+E;QAC/E,IAAI,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;YAC5C,MAAM,GAAG,OAAkC,CAAC;QAC7C,CAAC;aAAM,CAAC;YACP,MAAM,OAAO,GAA4B,EAAE,CAAC;YAC5C,MAAM,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC;YAC1B,MAAM,GAAG,OAAO,CAAC;QAClB,CAAC;IACF,CAAC;IACD,MAAM,GAAG,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,CAAE,CAAC;IAC7B,6EAA6E;IAC7E,wFAAwF;IACxF,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC;QAAE,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;AACzD,CAAC;AAED,8EAA8E;AAC9E,SAAS,WAAW,CAAC,OAAe;IACnC,OAAO,CACN,OAAO,CAAC,MAAM,GAAG,CAAC;QAClB,OAAO,KAAK,WAAW;QACvB,OAAO,KAAK,WAAW;QACvB,OAAO,KAAK,aAAa,CACzB,CAAC;AACH,CAAC","sourcesContent":["import type { Reactive } from '@exactjs/reactive/framework/runtime';\nimport type { ComponentResumptionSource } from './contracts.js';\n\ntype IndexedResumptionField = readonly [field: number | string, value: unknown];\n\n/** Applies compiler-selected SSR state paths without replacing client-local setup state. */\nexport function applyComponentResumption(\n\tstate: Reactive<Record<string, unknown>>,\n\tresumption: ComponentResumptionSource\n): void {\n\tconst values = 'componentId' in resumption ? resumption.values : (resumption[1] ?? []);\n\tif (Array.isArray(values)) {\n\t\tfor (const [field, value] of values as unknown as readonly IndexedResumptionField[]) {\n\t\t\tif (typeof field !== 'string')\n\t\t\t\tthrow new Error(\n\t\t\t\t\t`eXact indexed resumption was not prepared for ${'componentId' in resumption ? resumption.componentId : resumption[0]}`\n\t\t\t\t);\n\t\t\twritePath(state, field, value);\n\t\t}\n\t\treturn;\n\t}\n\tfor (const [path, value] of Object.entries(values)) writePath(state, path, value);\n}\n\n/** Materializes one validated dotted state path into the live reactive state object. */\nfunction writePath(target: Record<string, unknown>, path: string, value: unknown): void {\n\tconst segments = path.split('.');\n\tif (!segments.length || !segments.every(safeSegment)) {\n\t\tthrow new Error(`Malformed eXact component resumption state path ${path}`);\n\t}\n\tlet cursor = target;\n\tfor (const segment of segments.slice(0, -1)) {\n\t\tconst current = cursor[segment];\n\t\t// A child path can accompany its captured parent or a setup-owned array.\n\t\t// Traversing `.length` or an indexed item must preserve that array's identity.\n\t\tif (current && typeof current === 'object') {\n\t\t\tcursor = current as Record<string, unknown>;\n\t\t} else {\n\t\t\tconst created: Record<string, unknown> = {};\n\t\t\tcursor[segment] = created;\n\t\t\tcursor = created;\n\t\t}\n\t}\n\tconst key = segments.at(-1)!;\n\t// A captured collection already restores derived reads such as Map/Set.size.\n\t// Reassigning that identical read would attempt to write a native getter-only property.\n\tif (!Object.is(cursor[key], value)) cursor[key] = value;\n}\n\n/** Rejects prototype-bearing path segments before touching reactive state. */\nfunction safeSegment(segment: string): boolean {\n\treturn (\n\t\tsegment.length > 0 &&\n\t\tsegment !== '__proto__' &&\n\t\tsegment !== 'prototype' &&\n\t\tsegment !== 'constructor'\n\t);\n}\n"]}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { AnyComponentInstance, Child } from '../component/contracts.js';
|
|
2
|
+
/**
|
|
3
|
+
* Projects only one enhancement owner's supplied placement, preserving its authored structure.
|
|
4
|
+
* Nested component implementations stay opaque. Each owner is a host-coalescing barrier; transparent
|
|
5
|
+
* consecutive owners are grouped before this path. The caller supplies range evaluation: clients
|
|
6
|
+
* retain invalidation, while servers resolve the current render attempt without subscriptions.
|
|
7
|
+
*/
|
|
8
|
+
export declare function createFragmentTargetProjectionWithRanges(supplied: Child | (() => Child), tag: string, owner: AnyComponentInstance | undefined, projectRange: (read: () => Child, markerId?: string, mayReplaceSubtree?: boolean) => Child): (children: readonly Child[]) => Child[];
|
|
9
|
+
//# sourceMappingURL=fragment-target-projection-plan.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fragment-target-projection-plan.d.ts","sourceRoot":"","sources":["../../../src/framework/fragment-target-projection-plan.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,KAAK,EAAE,MAAM,2BAA2B,CAAC;AA6B7E;;;;;GAKG;AACH,wBAAgB,wCAAwC,CACvD,QAAQ,EAAE,KAAK,GAAG,CAAC,MAAM,KAAK,CAAC,EAC/B,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,oBAAoB,GAAG,SAAS,EACvC,YAAY,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,iBAAiB,CAAC,EAAE,OAAO,KAAK,KAAK,GACxF,CAAC,QAAQ,EAAE,SAAS,KAAK,EAAE,KAAK,KAAK,EAAE,CAmGzC"}
|