@carbonenginejs/runtime-resource 0.12.2 → 0.14.0
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 +21 -0
- package/dist/CjsResMan.js +393 -29
- package/dist/CjsResMan.js.map +1 -1
- package/dist/format/carbonEffect/CjsCarbonEffectReader.js +165 -118
- package/dist/format/carbonEffect/CjsCarbonEffectReader.js.map +1 -1
- package/dist/format/carbonEffect/buildCarbonEffectContainer.js +182 -0
- package/dist/format/carbonEffect/buildCarbonEffectContainer.js.map +1 -0
- package/dist/format/carbonEffect/carbonEffectBackendBlock.js +7 -113
- package/dist/format/carbonEffect/carbonEffectBackendBlock.js.map +1 -1
- package/dist/format/carbonEffect/carbonEffectRecords.js +258 -66
- package/dist/format/carbonEffect/carbonEffectRecords.js.map +1 -1
- package/dist/format/carbonEffect/carbonEffectResourceTransform.js +197 -0
- package/dist/format/carbonEffect/carbonEffectResourceTransform.js.map +1 -0
- package/dist/format/effect/effectBodyInventory.js +146 -0
- package/dist/format/effect/effectBodyInventory.js.map +1 -0
- package/dist/format/effect/effectPermutationGraph.js +13 -13
- package/dist/format/effect/effectPermutationGraph.js.map +1 -1
- package/dist/format/index.js +4 -4
- package/dist/formats/black/CjsBlackFormat.js +19 -1
- package/dist/formats/black/CjsBlackFormat.js.map +1 -1
- package/dist/formats/bnk/CjsBnkFormat.js +28 -9
- package/dist/formats/bnk/CjsBnkFormat.js.map +1 -1
- package/dist/formats/bnk/core/busNodes.js +252 -0
- package/dist/formats/bnk/core/busNodes.js.map +1 -0
- package/dist/formats/bnk/core/effectNodes.js +147 -0
- package/dist/formats/bnk/core/effectNodes.js.map +1 -0
- package/dist/formats/bnk/core/eventAction.js +135 -24
- package/dist/formats/bnk/core/eventAction.js.map +1 -1
- package/dist/formats/bnk/core/globalSettings.js +215 -0
- package/dist/formats/bnk/core/globalSettings.js.map +1 -0
- package/dist/formats/bnk/core/helpers.js +37 -5
- package/dist/formats/bnk/core/helpers.js.map +1 -1
- package/dist/formats/bnk/core/musicNodes.js +43 -19
- package/dist/formats/bnk/core/musicNodes.js.map +1 -1
- package/dist/formats/bnk/core/nodeBase.js +28 -7
- package/dist/formats/bnk/core/nodeBase.js.map +1 -1
- package/dist/formats/dds/core/helpers.js +40 -1
- package/dist/formats/dds/core/helpers.js.map +1 -1
- package/dist/formats/dxbc/CjsDxbcFormat.js +45 -0
- package/dist/formats/dxbc/CjsDxbcFormat.js.map +1 -1
- package/dist/formats/dxbc/core/disassemble.js +240 -0
- package/dist/formats/dxbc/core/disassemble.js.map +1 -0
- package/dist/formats/gltf/CjsGltfFormat.js +1 -39
- package/dist/formats/gltf/CjsGltfFormat.js.map +1 -1
- package/dist/formats/gltf/core/helpers.js +1 -21
- package/dist/formats/gltf/core/helpers.js.map +1 -1
- package/dist/formats/hlsl/CjsHlslFormat.js +0 -21
- package/dist/formats/hlsl/CjsHlslFormat.js.map +1 -1
- package/dist/formats/hlsl/core/carbonDescriptionToRuntime.js +118 -49
- package/dist/formats/hlsl/core/carbonDescriptionToRuntime.js.map +1 -1
- package/dist/formats/hlsl/core/detailMapFamily.js +128 -0
- package/dist/formats/hlsl/core/detailMapFamily.js.map +1 -0
- package/dist/formats/hlsl/core/localLightFamily.js +133 -0
- package/dist/formats/hlsl/core/localLightFamily.js.map +1 -0
- package/dist/formats/hlsl/core/tr2/resources/HlslEffectRes.js +79 -73
- package/dist/formats/hlsl/core/tr2/resources/HlslEffectRes.js.map +1 -1
- package/dist/formats/hlsl/core/tr2/shader/HlslEffectBindingManifest.js +8 -1
- package/dist/formats/hlsl/core/tr2/shader/HlslEffectBindingManifest.js.map +1 -1
- package/dist/formats/hlsl/core/tr2/shader/HlslEffectDescription.js +11 -691
- package/dist/formats/hlsl/core/tr2/shader/HlslEffectDescription.js.map +1 -1
- package/dist/formats/index.js +4 -2
- package/dist/formats/index.js.map +1 -1
- package/dist/formats/obj/CjsObjFormat.js +1 -22
- package/dist/formats/obj/CjsObjFormat.js.map +1 -1
- package/dist/formats/obj/core/helpers.js +1 -21
- package/dist/formats/obj/core/helpers.js.map +1 -1
- package/dist/formats/pickle/CjsPickleFormat.js +214 -0
- package/dist/formats/pickle/CjsPickleFormat.js.map +1 -0
- package/dist/formats/pickle/core/CjsPickleProtocol0Reader.js +551 -0
- package/dist/formats/pickle/core/CjsPickleProtocol0Reader.js.map +1 -0
- package/dist/formats/pickle/index.js +2 -0
- package/dist/formats/pickle/index.js.map +1 -0
- package/dist/formats/red/core/redGraph.js +11 -8
- package/dist/formats/red/core/redGraph.js.map +1 -1
- package/dist/formats/stl/CjsStlFormat.js +1 -46
- package/dist/formats/stl/CjsStlFormat.js.map +1 -1
- package/dist/formats/stl/core/helpers.js +1 -21
- package/dist/formats/stl/core/helpers.js.map +1 -1
- package/dist/formats/webgl/CjsWebglFormat.js +33 -55
- package/dist/formats/webgl/CjsWebglFormat.js.map +1 -1
- package/dist/formats/webgl/core/buildGlslEffectContainer.js +70 -0
- package/dist/formats/webgl/core/buildGlslEffectContainer.js.map +1 -0
- package/dist/formats/webgl/core/effectPackage.js +216 -108
- package/dist/formats/webgl/core/effectPackage.js.map +1 -1
- package/dist/formats/webgl/core/errors.js +1 -1
- package/dist/formats/webgl/core/errors.js.map +1 -1
- package/dist/formats/webgl/core/glsl/DxbcGlslEmitter.js +166 -24
- package/dist/formats/webgl/core/glsl/DxbcGlslEmitter.js.map +1 -1
- package/dist/formats/webgl/core/glsl/DxbcGlslOperandFormatter.js +63 -5
- package/dist/formats/webgl/core/glsl/DxbcGlslOperandFormatter.js.map +1 -1
- package/dist/formats/webgl/core/glsl/packedLightFixups.js +98 -0
- package/dist/formats/webgl/core/glsl/packedLightFixups.js.map +1 -0
- package/dist/formats/webgl/core/glslBackendBlock.js +552 -0
- package/dist/formats/webgl/core/glslBackendBlock.js.map +1 -0
- package/dist/formats/webgl/core/glslBackendBodySet.js +243 -0
- package/dist/formats/webgl/core/glslBackendBodySet.js.map +1 -0
- package/dist/formats/webgl/core/{cewgCompleteness.js → glslEffectCompleteness.js} +12 -8
- package/dist/formats/webgl/core/glslEffectCompleteness.js.map +1 -0
- package/dist/formats/webgl/core/helpers.js +33 -172
- package/dist/formats/webgl/core/helpers.js.map +1 -1
- package/dist/formats/webgl/core/inspectGlslEffectContainer.js +122 -0
- package/dist/formats/webgl/core/inspectGlslEffectContainer.js.map +1 -0
- package/dist/formats/webgl/core/readGlslEffectContainer.js +249 -0
- package/dist/formats/webgl/core/readGlslEffectContainer.js.map +1 -0
- package/dist/formats/webgpu/CjsWebgpuFormat.js +15 -15
- package/dist/formats/webgpu/CjsWebgpuFormat.js.map +1 -1
- package/dist/formats/webgpu/core/buildCarbonEffectContainer.js +37 -145
- package/dist/formats/webgpu/core/buildCarbonEffectContainer.js.map +1 -1
- package/dist/formats/webgpu/core/{cewgpu/CewgpuContainer.js → carbonWebgpu/CarbonWebgpuContainer.js} +13 -27
- package/dist/formats/webgpu/core/carbonWebgpu/CarbonWebgpuContainer.js.map +1 -0
- package/dist/formats/webgpu/core/{cewgpu → carbonWebgpu}/containerViews.js +1 -1
- package/dist/formats/webgpu/core/carbonWebgpu/containerViews.js.map +1 -0
- package/dist/formats/webgpu/core/{cewgpu → carbonWebgpu}/validateContainer.js +4 -4
- package/dist/formats/webgpu/core/carbonWebgpu/validateContainer.js.map +1 -0
- package/dist/formats/webgpu/core/effectBackendBodySet.js +18 -18
- package/dist/formats/webgpu/core/effectBackendBodySet.js.map +1 -1
- package/dist/formats/webgpu/core/errors.js +1 -1
- package/dist/formats/webgpu/core/errors.js.map +1 -1
- package/dist/formats/webgpu/core/helpers.js +22 -22
- package/dist/formats/webgpu/core/helpers.js.map +1 -1
- package/dist/formats/webgpu/core/packageEffect.js +11 -15
- package/dist/formats/webgpu/core/packageEffect.js.map +1 -1
- package/dist/formats/webgpu/core/packageEffectSelection.js +1 -1
- package/dist/formats/webgpu/core/packageEffectSelection.js.map +1 -1
- package/dist/formats/webgpu/core/wgsl/buildResourceTransformPlan.js +23 -23
- package/dist/formats/webgpu/core/wgsl/buildResourceTransformPlan.js.map +1 -1
- package/dist/formats/webgpu/core/wgsl/buildWgslSet.js +6 -6
- package/dist/formats/webgpu/core/wgsl/buildWgslSet.js.map +1 -1
- package/dist/formats/yaml/CjsYamlFormat.js +3 -3
- package/dist/formats/yaml/CjsYamlFormat.js.map +1 -1
- package/dist/formats/yaml/core/CjsYamlReader.js +4 -6
- package/dist/formats/yaml/core/CjsYamlReader.js.map +1 -1
- package/dist/formats/yaml/core/helpers.js +27 -1
- package/dist/formats/yaml/core/helpers.js.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/resource/CjsLoadingObject.js +19 -0
- package/dist/resource/CjsLoadingObject.js.map +1 -0
- package/dist/resource/CjsResource.js +4 -0
- package/dist/resource/CjsResource.js.map +1 -1
- package/dist/resource/ResourceHandlerMode.js +14 -0
- package/dist/resource/ResourceHandlerMode.js.map +1 -0
- package/dist/resource/index.js +2 -0
- package/dist/resource/index.js.map +1 -1
- package/dist/resource/shader/Tr2EffectRes.js +118 -213
- package/dist/resource/shader/Tr2EffectRes.js.map +1 -1
- package/dist/resource/shader/Tr2Shader.js +37 -15
- package/dist/resource/shader/Tr2Shader.js.map +1 -1
- package/dist/resource/shader/reflection/Tr2EffectConstant.js +37 -29
- package/dist/resource/shader/reflection/Tr2EffectConstant.js.map +1 -1
- package/dist/resource/shader/reflection/Tr2EffectDescription.js +39 -34
- package/dist/resource/shader/reflection/Tr2EffectDescription.js.map +1 -1
- package/dist/resource/shader/reflection/Tr2EffectLibrary.js +51 -30
- package/dist/resource/shader/reflection/Tr2EffectLibrary.js.map +1 -1
- package/dist/resource/shader/reflection/Tr2EffectParameterAnnotation.js +45 -25
- package/dist/resource/shader/reflection/Tr2EffectParameterAnnotation.js.map +1 -1
- package/dist/resource/shader/reflection/Tr2EffectResource.js +51 -17
- package/dist/resource/shader/reflection/Tr2EffectResource.js.map +1 -1
- package/dist/resource/shader/reflection/Tr2EffectStageInput.js +219 -88
- package/dist/resource/shader/reflection/Tr2EffectStageInput.js.map +1 -1
- package/dist/resource/shader/reflection/Tr2EffectTechnique.js +28 -18
- package/dist/resource/shader/reflection/Tr2EffectTechnique.js.map +1 -1
- package/dist/resource/shader/reflection/Tr2Pass.js +96 -39
- package/dist/resource/shader/reflection/Tr2Pass.js.map +1 -1
- package/dist/resource/shader/reflection/carbonRecordFields.js +159 -0
- package/dist/resource/shader/reflection/carbonRecordFields.js.map +1 -0
- package/dist/resource/shader/reflection/shaderStage.js +22 -0
- package/dist/resource/shader/reflection/shaderStage.js.map +1 -0
- package/dist/resource/shader/sampler/Tr2SamplerSetup.js +68 -10
- package/dist/resource/shader/sampler/Tr2SamplerSetup.js.map +1 -1
- package/dist/worker/CjsResManMainThreadLoader.js +9 -7
- package/dist/worker/CjsResManMainThreadLoader.js.map +1 -1
- package/dist/worker/CjsResManWorker.js +5 -4
- package/dist/worker/CjsResManWorker.js.map +1 -1
- package/dist/worker/CjsResManWorkerLoader.js +9 -6
- package/dist/worker/CjsResManWorkerLoader.js.map +1 -1
- package/docs/README.md +2 -2
- package/docs/architecture.md +12 -3
- package/docs/concepts/resource-lifecycle.md +9 -8
- package/docs/concepts/shader-resource-model.md +14 -17
- package/docs/concepts/writing-an-engine-adapter.md +1 -1
- package/docs/formats/README.md +4 -2
- package/docs/formats/carbon-effect-container.md +127 -26
- package/docs/formats/dxbc/architecture.md +1 -1
- package/docs/formats/dxbc/reference/api.md +28 -0
- package/docs/formats/hlsl/README.md +3 -3
- package/docs/formats/hlsl/architecture.md +8 -9
- package/docs/formats/hlsl/guides/hydrating-json-output.md +3 -5
- package/docs/formats/hlsl/guides/reading-effects.md +5 -1
- package/docs/formats/hlsl/reference/advanced-analysis.md +20 -25
- package/docs/formats/hlsl/reference/api.md +0 -7
- package/docs/formats/hlsl/reference/json-graph.md +1 -4
- package/docs/formats/pickle.md +82 -0
- package/docs/formats/webgl/README.md +71 -13
- package/docs/formats/webgl/architecture.md +16 -17
- package/docs/formats/webgl/carbon-constant-layouts.md +3 -3
- package/docs/formats/webgl/decl-io.md +3 -3
- package/docs/formats/webgl/memory-structured.md +27 -8
- package/docs/formats/webgl/texture-sample.md +1 -1
- package/docs/formats/webgpu/README.md +3 -3
- package/docs/formats/webgpu/architecture.md +5 -6
- package/docs/formats/webgpu/formats/{cewgpu.md → carbon-webgpu.md} +10 -11
- package/docs/formats/webgpu/guides/effect-packaging.md +6 -8
- package/docs/formats/webgpu/reference/api.md +11 -12
- package/docs/formats/webgpu/reference/wgsl-compatibility.md +11 -8
- package/docs/formats/wwise.md +63 -2
- package/docs/reference/classes/core.md +10 -0
- package/docs/reference/classes/formats.md +40 -48
- package/docs/reference/classes/resources.md +2 -2
- package/docs/reference/queues.md +88 -4
- package/docs/reference/workers.md +7 -0
- package/package.json +61 -61
- package/dist/format/carbonEffect/carbonDescriptionFromPortable.js +0 -372
- package/dist/format/carbonEffect/carbonDescriptionFromPortable.js.map +0 -1
- package/dist/format/effect/effectReflectionPackage.js +0 -636
- package/dist/format/effect/effectReflectionPackage.js.map +0 -1
- package/dist/formats/hlsl/core/HlslReader.js +0 -16
- package/dist/formats/hlsl/core/HlslReader.js.map +0 -1
- package/dist/formats/hlsl/core/portableReflection.js +0 -848
- package/dist/formats/hlsl/core/portableReflection.js.map +0 -1
- package/dist/formats/hlsl/portable.js +0 -2
- package/dist/formats/hlsl/portable.js.map +0 -1
- package/dist/formats/webgl/core/cewg/CewgPackage.js +0 -340
- package/dist/formats/webgl/core/cewg/CewgPackage.js.map +0 -1
- package/dist/formats/webgl/core/cewg/CewgPackageBuilder.js +0 -104
- package/dist/formats/webgl/core/cewg/CewgPackageBuilder.js.map +0 -1
- package/dist/formats/webgl/core/cewg/binary.js +0 -19
- package/dist/formats/webgl/core/cewg/binary.js.map +0 -1
- package/dist/formats/webgl/core/cewgCompleteness.js.map +0 -1
- package/dist/formats/webgl/core/effectPackageValidation.js +0 -331
- package/dist/formats/webgl/core/effectPackageValidation.js.map +0 -1
- package/dist/formats/webgpu/core/cewgpu/CewgpuContainer.js.map +0 -1
- package/dist/formats/webgpu/core/cewgpu/containerViews.js.map +0 -1
- package/dist/formats/webgpu/core/cewgpu/validateContainer.js.map +0 -1
- package/dist/resource/shader/portable.js +0 -33
- package/dist/resource/shader/portable.js.map +0 -1
- package/docs/formats/hlsl/reference/portable-reflection.md +0 -141
- package/docs/formats/webgl/effect-reflection.md +0 -127
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"buildWgslSet.js","sources":["../../../../../../src/formats/webgpu/core/wgsl/buildWgslSet.js"],"sourcesContent":["import { normalizeResourceTransformPlan } from \"./buildResourceTransformPlan.js\";\r\nimport { compareUtf8 } from \"../../../../format/compareUtf8.js\";\r\n\r\nexport const WGSL_SET_VERSION = 3;\r\n\r\nconst KEY_PATTERN = /^(.*)\\.pass([0-9]+)\\.(vertex|pixel|compute)$/;\r\nconst KEY_STAGE = Object.freeze({ vertex: \"vertex\", pixel: \"fragment\", compute: \"compute\" });\r\nconst STAGE_TYPES = Object.freeze({ vertex: 0, pixel: 1, compute: 2 });\r\nconst STAGE_NAME_ORDER = Object.freeze([ \"vertex\", \"pixel\", \"compute\" ]);\r\n\r\nconst VISIBILITY_ORDER = Object.freeze([ \"vertex\", \"fragment\", \"compute\" ]);\r\n\r\nfunction clonePlain(value)\r\n{\r\n if (Array.isArray(value)) return value.map(clonePlain);\r\n if (value && typeof value === \"object\")\r\n {\r\n return Object.fromEntries(Object.entries(value).map(([ key, entry ]) => [ key, clonePlain(entry) ]));\r\n }\r\n return value;\r\n}\r\n\r\nfunction deepFreeze(value)\r\n{\r\n if (!value || typeof value !== \"object\" || Object.isFrozen(value)) return value;\r\n for (const entry of Object.values(value)) deepFreeze(entry);\r\n return Object.freeze(value);\r\n}\r\n\r\nfunction normalizeEntry(entry, index)\r\n{\r\n const shader = entry?.shader;\r\n if (shader?.format !== \"CJS_WGSL_SHADER\" || shader.formatVersion !== 1\r\n || typeof shader.code !== \"string\" || !shader.code\r\n || typeof shader.entryPoint !== \"string\" || !shader.entryPoint\r\n || !Array.isArray(shader.sourceMap)\r\n || shader.program?.format !== \"CJS_TYPED_SHADER\")\r\n {\r\n throw new TypeError(`WGSL set entry ${index} requires a CJS_WGSL_SHADER descriptor`);\r\n }\r\n const key = typeof entry.key === \"string\" ? entry.key : \"\";\r\n const match = KEY_PATTERN.exec(key);\r\n if (!match || !match[1]) throw new Error(`WGSL set entry ${index} has malformed key ${key || \"<empty>\"}`);\r\n const techniqueName = match[1];\r\n const passIndex = Number(match[2]);\r\n const stageName = match[3];\r\n if (shader.stage !== KEY_STAGE[stageName])\r\n {\r\n throw new Error(`WGSL set key ${key} does not match shader stage ${shader.stage}`);\r\n }\r\n let threadGroupSize = null;\r\n if (stageName === \"compute\")\r\n {\r\n threadGroupSize = shader.threadGroupSize;\r\n if (!Array.isArray(threadGroupSize) || threadGroupSize.length !== 3\r\n || threadGroupSize.some((value) => !Number.isSafeInteger(value) || value < 1))\r\n {\r\n throw new Error(`WGSL compute shader ${key} requires a positive three-dimensional threadGroupSize`);\r\n }\r\n }\r\n else if (shader.threadGroupSize !== undefined && shader.threadGroupSize !== null)\r\n {\r\n throw new Error(`WGSL render shader ${key} cannot declare threadGroupSize`);\r\n }\r\n return {\r\n shader,\r\n stage: shader.stage,\r\n techniqueName,\r\n passIndex,\r\n stageName,\r\n stageType: STAGE_TYPES[stageName],\r\n ...(threadGroupSize ? { threadGroupSize: clonePlain(threadGroupSize) } : {}),\r\n key\r\n };\r\n}\r\n\r\nfunction portableBinding(binding, visibility)\r\n{\r\n if (!Number.isInteger(binding.group) || binding.group < 0\r\n || !Number.isInteger(binding.binding) || binding.binding < 0\r\n || !Number.isInteger(binding.registerSpace) || binding.registerSpace < 0\r\n || !Number.isInteger(binding.registerIndex) || binding.registerIndex < 0\r\n || typeof binding.resourceKind !== \"string\" || !binding.resourceKind\r\n || typeof binding.generatedSymbol !== \"string\" || !binding.generatedSymbol\r\n || typeof binding.type !== \"string\" || !binding.type)\r\n {\r\n throw new Error(`WGSL binding ${binding.id || binding.generatedSymbol || \"unknown\"} has an invalid portable identity`);\r\n }\r\n const identity = `${binding.resourceKind}:${binding.registerSpace}:${binding.registerIndex}`;\r\n if (binding.scopeIdentity !== undefined\r\n && (typeof binding.scopeIdentity !== \"string\" || !binding.scopeIdentity))\r\n {\r\n throw new Error(`WGSL binding ${binding.generatedSymbol} has invalid scope identity ${binding.scopeIdentity || \"<empty>\"}`);\r\n }\r\n const scopeIdentity = binding.scopeIdentity === undefined\r\n ? `${identity}@${visibility}`\r\n : binding.scopeIdentity;\r\n if (binding.identity !== undefined && binding.identity !== identity)\r\n {\r\n throw new Error(`WGSL binding ${binding.generatedSymbol} has inconsistent D3D identity ${binding.identity}`);\r\n }\r\n const hasTransform = binding.transformId !== undefined\r\n || binding.arrayLayerCount !== undefined;\r\n if (hasTransform\r\n && (binding.resourceKind !== \"sampled-resource\"\r\n || typeof binding.transformId !== \"string\" || !binding.transformId\r\n || !Number.isInteger(binding.arrayLayerCount) || binding.arrayLayerCount < 2\r\n || binding.type !== \"texture_2d_array<f32>\"\r\n || binding.texture?.viewDimension !== \"2d-array\"))\r\n {\r\n throw new Error(`WGSL binding ${binding.generatedSymbol} has invalid resource transform metadata`);\r\n }\r\n if (scopeIdentity !== identity && scopeIdentity !== `${identity}@${visibility}`)\r\n {\r\n throw new Error(`WGSL binding ${binding.generatedSymbol} has invalid scope identity ${scopeIdentity}`);\r\n }\r\n const descriptorKeys = [ \"buffer\", \"texture\", \"sampler\" ].filter((key) => binding[key]);\r\n const expectedDescriptors = {\r\n \"uniform-buffer\": [ \"buffer\" ],\r\n \"sampled-resource\": [ \"buffer\", \"texture\" ],\r\n \"storage-resource\": [ \"buffer\" ],\r\n sampler: [ \"sampler\" ]\r\n }[binding.resourceKind];\r\n if (!expectedDescriptors || descriptorKeys.length !== 1 || !expectedDescriptors.includes(descriptorKeys[0]))\r\n {\r\n throw new Error(`WGSL binding ${binding.generatedSymbol} has an invalid ${binding.resourceKind} layout descriptor`);\r\n }\r\n return {\r\n identity,\r\n scopeIdentity,\r\n resourceKind: binding.resourceKind,\r\n generatedSymbol: binding.generatedSymbol,\r\n registerSpace: binding.registerSpace,\r\n registerIndex: binding.registerIndex,\r\n group: binding.group,\r\n binding: binding.binding,\r\n visibility: [ visibility ],\r\n type: binding.type,\r\n ...(hasTransform\r\n ? {\r\n transformId: binding.transformId,\r\n arrayLayerCount: binding.arrayLayerCount\r\n }\r\n : {}),\r\n ...(Number.isInteger(binding.structureStride) ? { structureStride: binding.structureStride } : {}),\r\n ...(binding.buffer ? { buffer: clonePlain(binding.buffer) } : {}),\r\n ...(binding.texture ? { texture: clonePlain(binding.texture) } : {}),\r\n ...(binding.sampler ? { sampler: clonePlain(binding.sampler) } : {})\r\n };\r\n}\r\n\r\nfunction bindingIdentity(binding)\r\n{\r\n return binding.scopeIdentity || `${binding.resourceKind}:${binding.registerSpace}:${binding.registerIndex}`;\r\n}\r\n\r\nfunction bindingFingerprint(binding)\r\n{\r\n return JSON.stringify({\r\n resourceKind: binding.resourceKind,\r\n identity: binding.identity,\r\n scopeIdentity: binding.scopeIdentity,\r\n generatedSymbol: binding.generatedSymbol,\r\n registerSpace: binding.registerSpace,\r\n registerIndex: binding.registerIndex,\r\n group: binding.group,\r\n binding: binding.binding,\r\n type: binding.type,\r\n transformId: binding.transformId ?? null,\r\n arrayLayerCount: binding.arrayLayerCount ?? null,\r\n structureStride: binding.structureStride ?? null,\r\n buffer: binding.buffer || null,\r\n texture: binding.texture || null,\r\n sampler: binding.sampler || null\r\n });\r\n}\r\n\r\nfunction buildLayouts(entries)\r\n{\r\n const passes = new Map();\r\n for (const entry of entries)\r\n {\r\n const passKey = `${entry.techniqueName}.pass${entry.passIndex}`;\r\n if (!passes.has(passKey))\r\n {\r\n passes.set(passKey, { identities: new Map(), baseScopes: new Map(), slots: new Map() });\r\n }\r\n const pass = passes.get(passKey);\r\n const symbols = new Map();\r\n const d3dIdentities = new Set();\r\n for (const source of entry.shader.program.bindings || [])\r\n {\r\n const binding = portableBinding(source, entry.stage);\r\n const identity = bindingIdentity(binding);\r\n if (d3dIdentities.has(binding.identity))\r\n {\r\n throw new Error(`WGSL shader ${entry.key} contains duplicate D3D identity ${binding.identity}`);\r\n }\r\n d3dIdentities.add(binding.identity);\r\n if (!pass.baseScopes.has(binding.identity)) pass.baseScopes.set(binding.identity, new Set());\r\n const baseScopes = pass.baseScopes.get(binding.identity);\r\n if ((identity === binding.identity && Array.from(baseScopes).some((scope) => scope !== binding.identity))\r\n || (identity !== binding.identity && baseScopes.has(binding.identity)))\r\n {\r\n throw new Error(`WGSL set ${passKey} mixes shared and stage-scoped forms for ${binding.identity}`);\r\n }\r\n baseScopes.add(identity);\r\n if (symbols.has(binding.generatedSymbol))\r\n {\r\n throw new Error(`WGSL shader ${entry.key} contains duplicate generated symbol ${binding.generatedSymbol}`);\r\n }\r\n symbols.set(binding.generatedSymbol, identity);\r\n const slot = `${binding.group}:${binding.binding}`;\r\n const existingSlot = pass.slots.get(slot);\r\n if (existingSlot && existingSlot !== identity)\r\n {\r\n throw new Error(`WGSL set ${passKey} assigns ${slot} to both ${existingSlot} and ${identity}`);\r\n }\r\n pass.slots.set(slot, identity);\r\n const existing = pass.identities.get(identity);\r\n if (!existing)\r\n {\r\n pass.identities.set(identity, binding);\r\n continue;\r\n }\r\n if (bindingFingerprint(existing) !== bindingFingerprint(binding))\r\n {\r\n throw new Error(`WGSL set ${passKey} has conflicting layouts for ${identity}`);\r\n }\r\n existing.visibility = Array.from(new Set([ ...existing.visibility, ...binding.visibility ]))\r\n .sort((left, right) => VISIBILITY_ORDER.indexOf(left) - VISIBILITY_ORDER.indexOf(right));\r\n }\r\n }\r\n return Array.from(passes, ([ key, pass ]) =>\r\n {\r\n for (const [ identity, scopes ] of pass.baseScopes)\r\n {\r\n if (scopes.has(identity) && pass.identities.get(identity)?.visibility.length < 2)\r\n {\r\n throw new Error(`WGSL set ${key} shared identity ${identity} does not cover multiple stages`);\r\n }\r\n }\r\n const groups = new Map();\r\n for (const binding of pass.identities.values())\r\n {\r\n if (!groups.has(binding.group)) groups.set(binding.group, []);\r\n groups.get(binding.group).push(binding);\r\n }\r\n return {\r\n key,\r\n techniqueName: key.slice(0, key.lastIndexOf(\".pass\")),\r\n passIndex: Number(/\\.pass([0-9]+)$/.exec(key)?.[1]),\r\n bindGroups: Array.from(groups, ([ group, bindings ]) => ({\r\n group,\r\n bindings: bindings.sort((left, right) => left.binding - right.binding)\r\n })).sort((left, right) => left.group - right.group)\r\n };\r\n }).sort((left, right) =>\r\n compareUtf8(left.techniqueName, right.techniqueName)\r\n || left.passIndex - right.passIndex);\r\n}\r\n\r\nfunction validatePassTopologies(entries)\r\n{\r\n const stagesByPass = new Map();\r\n for (const entry of entries)\r\n {\r\n const passKey = `${entry.techniqueName}.pass${entry.passIndex}`;\r\n if (!stagesByPass.has(passKey)) stagesByPass.set(passKey, []);\r\n stagesByPass.get(passKey).push(entry.stageName);\r\n }\r\n for (const [ passKey, stages ] of stagesByPass)\r\n {\r\n if (stages.includes(\"compute\") && (stages.length !== 1 || stages[0] !== \"compute\"))\r\n {\r\n throw new Error(`WGSL set ${passKey} cannot mix compute and render shader stages`);\r\n }\r\n }\r\n}\r\n\r\nfunction buildResourceTransforms(entries, layouts)\r\n{\r\n const raw = entries.flatMap((entry) => entry.shader.program.resourceTransforms || []);\r\n const transformedBindings = layouts.flatMap((layout) =>\r\n layout.bindGroups.flatMap((group) =>\r\n group.bindings.filter((binding) => binding.transformId)\r\n .map((binding) => ({ layoutKey: layout.key, binding }))));\r\n if (!raw.length)\r\n {\r\n if (transformedBindings.length)\r\n {\r\n throw new Error(\"WGSL set has transformed bindings without resource recipes\");\r\n }\r\n return [];\r\n }\r\n const plan = normalizeResourceTransformPlan({\r\n format: \"CJS_WGSL_RESOURCE_TRANSFORM_PLAN\",\r\n formatVersion: 1,\r\n resourceTransforms: raw\r\n });\r\n const ids = new Set(plan.resourceTransforms.map((transform) => transform.id));\r\n for (const { binding } of transformedBindings)\r\n {\r\n if (!ids.has(binding.transformId))\r\n {\r\n throw new Error(`WGSL binding ${binding.generatedSymbol} references missing transform ${binding.transformId}`);\r\n }\r\n }\r\n for (const transform of plan.resourceTransforms)\r\n {\r\n const stageKey = `${transform.layoutKey}.pixel`;\r\n if (!entries.some((entry) => entry.key === stageKey))\r\n {\r\n throw new Error(`WGSL resource transform ${transform.id} has no fragment shader ${stageKey}`);\r\n }\r\n const links = transformedBindings.filter(({ layoutKey, binding }) =>\r\n layoutKey === transform.layoutKey\r\n && binding.transformId === transform.id);\r\n if (links.length !== 1)\r\n {\r\n throw new Error(`WGSL resource transform ${transform.id} must link exactly one physical binding`);\r\n }\r\n const binding = links[0].binding;\r\n if (binding.identity !== transform.output.identity\r\n || binding.scopeIdentity !== transform.output.scopeIdentity\r\n || binding.texture?.viewDimension !== transform.output.viewDimension\r\n || binding.arrayLayerCount !== transform.output.layerCount)\r\n {\r\n throw new Error(`WGSL resource transform ${transform.id} does not match its physical binding`);\r\n }\r\n const transformLayout = layouts.find((layout) =>\r\n layout.key === transform.layoutKey);\r\n const physicalScopes = new Set((transformLayout?.bindGroups || []).flatMap((group) =>\r\n group.bindings.map((entry) => entry.scopeIdentity)));\r\n for (const input of transform.inputs.slice(1))\r\n {\r\n if (physicalScopes.has(input.scopeIdentity))\r\n {\r\n throw new Error(`WGSL resource transform ${transform.id} retains removed input ${input.scopeIdentity}`);\r\n }\r\n }\r\n }\r\n return plan.resourceTransforms;\r\n}\r\n\r\n/**\r\n * Builds the portable JSON document stored in a CEWGPU `WGSL` chunk.\r\n * Existing numeric bindings are validated and never reassigned.\r\n *\r\n * @param {Array<object>} input Wrapped emitted shader descriptors.\r\n * @returns {object} Frozen CJS_WGSL_SET document.\r\n */\r\nexport function buildWgslSet(input)\r\n{\r\n if (!Array.isArray(input) || !input.length) throw new TypeError(\"BuildWgslSet expects a non-empty shader entry array\");\r\n const entries = input.map(normalizeEntry);\r\n const keys = new Set();\r\n const shaders = entries.map((entry) =>\r\n {\r\n if (keys.has(entry.key)) throw new Error(`WGSL set contains duplicate shader key ${entry.key}`);\r\n keys.add(entry.key);\r\n return {\r\n key: entry.key,\r\n techniqueName: entry.techniqueName,\r\n passIndex: entry.passIndex,\r\n stageName: entry.stageName,\r\n stage: entry.stage,\r\n stageType: entry.stageType,\r\n entryPoint: entry.shader.entryPoint,\r\n code: entry.shader.code,\r\n sourceMap: clonePlain(entry.shader.sourceMap || []),\r\n ...(entry.threadGroupSize ? { threadGroupSize: clonePlain(entry.threadGroupSize) } : {})\r\n };\r\n }).sort((left, right) =>\r\n compareUtf8(left.techniqueName, right.techniqueName)\r\n || left.passIndex - right.passIndex\r\n || STAGE_NAME_ORDER.indexOf(left.stageName) - STAGE_NAME_ORDER.indexOf(right.stageName));\r\n validatePassTopologies(entries);\r\n const layouts = buildLayouts(entries);\r\n const resourceTransforms = buildResourceTransforms(entries, layouts);\r\n return deepFreeze({\r\n format: \"CJS_WGSL_SET\",\r\n formatVersion: WGSL_SET_VERSION,\r\n shaders,\r\n layouts,\r\n ...(resourceTransforms.length ? { resourceTransforms } : {})\r\n });\r\n}\r\n"],"names":["WGSL_SET_VERSION","KEY_PATTERN","KEY_STAGE","Object","freeze","vertex","pixel","compute","STAGE_TYPES","STAGE_NAME_ORDER","VISIBILITY_ORDER","clonePlain","value","Array","isArray","map","fromEntries","entries","key","entry","deepFreeze","isFrozen","values","normalizeEntry","index","shader","format","formatVersion","code","entryPoint","sourceMap","program","TypeError","match","exec","Error","techniqueName","passIndex","Number","stageName","stage","threadGroupSize","length","some","isSafeInteger","undefined","stageType","portableBinding","binding","visibility","isInteger","group","registerSpace","registerIndex","resourceKind","generatedSymbol","type","id","identity","scopeIdentity","hasTransform","transformId","arrayLayerCount","texture","viewDimension","descriptorKeys","filter","expectedDescriptors","sampler","includes","structureStride","buffer","bindingIdentity","bindingFingerprint","JSON","stringify","buildLayouts","passes","Map","passKey","has","set","identities","baseScopes","slots","pass","get","symbols","d3dIdentities","Set","source","bindings","add","from","scope","slot","existingSlot","existing","sort","left","right","indexOf","scopes","groups","push","slice","lastIndexOf","bindGroups","compareUtf8","validatePassTopologies","stagesByPass","stages","buildResourceTransforms","layouts","raw","flatMap","resourceTransforms","transformedBindings","layout","layoutKey","plan","normalizeResourceTransformPlan","ids","transform","stageKey","links","output","layerCount","transformLayout","find","physicalScopes","input","inputs","buildWgslSet","keys","shaders"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"buildWgslSet.js","sources":["../../../../../../src/formats/webgpu/core/wgsl/buildWgslSet.js"],"sourcesContent":["import { normalizeResourceTransformPlan } from \"./buildResourceTransformPlan.js\";\nimport { compareUtf8 } from \"../../../../format/compareUtf8.js\";\n\nexport const WGSL_SET_VERSION = 3;\n\nconst KEY_PATTERN = /^(.*)\\.pass([0-9]+)\\.(vertex|pixel|compute)$/;\nconst KEY_STAGE = Object.freeze({ vertex: \"vertex\", pixel: \"fragment\", compute: \"compute\" });\nconst STAGE_TYPES = Object.freeze({ vertex: 0, pixel: 1, compute: 2 });\nconst STAGE_NAME_ORDER = Object.freeze([ \"vertex\", \"pixel\", \"compute\" ]);\n\nconst VISIBILITY_ORDER = Object.freeze([ \"vertex\", \"fragment\", \"compute\" ]);\n\nfunction clonePlain(value)\n{\n if (Array.isArray(value)) return value.map(clonePlain);\n if (value && typeof value === \"object\")\n {\n return Object.fromEntries(Object.entries(value).map(([ key, entry ]) => [ key, clonePlain(entry) ]));\n }\n return value;\n}\n\nfunction deepFreeze(value)\n{\n if (!value || typeof value !== \"object\" || Object.isFrozen(value)) return value;\n for (const entry of Object.values(value)) deepFreeze(entry);\n return Object.freeze(value);\n}\n\nfunction normalizeEntry(entry, index)\n{\n const shader = entry?.shader;\n if (shader?.format !== \"CJS_WGSL_SHADER\" || shader.formatVersion !== 1\n || typeof shader.code !== \"string\" || !shader.code\n || typeof shader.entryPoint !== \"string\" || !shader.entryPoint\n || !Array.isArray(shader.sourceMap)\n || shader.program?.format !== \"CJS_TYPED_SHADER\")\n {\n throw new TypeError(`WGSL set entry ${index} requires a CJS_WGSL_SHADER descriptor`);\n }\n const key = typeof entry.key === \"string\" ? entry.key : \"\";\n const match = KEY_PATTERN.exec(key);\n if (!match || !match[1]) throw new Error(`WGSL set entry ${index} has malformed key ${key || \"<empty>\"}`);\n const techniqueName = match[1];\n const passIndex = Number(match[2]);\n const stageName = match[3];\n if (shader.stage !== KEY_STAGE[stageName])\n {\n throw new Error(`WGSL set key ${key} does not match shader stage ${shader.stage}`);\n }\n let threadGroupSize = null;\n if (stageName === \"compute\")\n {\n threadGroupSize = shader.threadGroupSize;\n if (!Array.isArray(threadGroupSize) || threadGroupSize.length !== 3\n || threadGroupSize.some((value) => !Number.isSafeInteger(value) || value < 1))\n {\n throw new Error(`WGSL compute shader ${key} requires a positive three-dimensional threadGroupSize`);\n }\n }\n else if (shader.threadGroupSize !== undefined && shader.threadGroupSize !== null)\n {\n throw new Error(`WGSL render shader ${key} cannot declare threadGroupSize`);\n }\n return {\n shader,\n stage: shader.stage,\n techniqueName,\n passIndex,\n stageName,\n stageType: STAGE_TYPES[stageName],\n ...(threadGroupSize ? { threadGroupSize: clonePlain(threadGroupSize) } : {}),\n key\n };\n}\n\nfunction portableBinding(binding, visibility)\n{\n if (!Number.isInteger(binding.group) || binding.group < 0\n || !Number.isInteger(binding.binding) || binding.binding < 0\n || !Number.isInteger(binding.registerSpace) || binding.registerSpace < 0\n || !Number.isInteger(binding.registerIndex) || binding.registerIndex < 0\n || typeof binding.resourceKind !== \"string\" || !binding.resourceKind\n || typeof binding.generatedSymbol !== \"string\" || !binding.generatedSymbol\n || typeof binding.type !== \"string\" || !binding.type)\n {\n throw new Error(`WGSL binding ${binding.id || binding.generatedSymbol || \"unknown\"} has an invalid portable identity`);\n }\n const identity = `${binding.resourceKind}:${binding.registerSpace}:${binding.registerIndex}`;\n if (binding.scopeIdentity !== undefined\n && (typeof binding.scopeIdentity !== \"string\" || !binding.scopeIdentity))\n {\n throw new Error(`WGSL binding ${binding.generatedSymbol} has invalid scope identity ${binding.scopeIdentity || \"<empty>\"}`);\n }\n const scopeIdentity = binding.scopeIdentity === undefined\n ? `${identity}@${visibility}`\n : binding.scopeIdentity;\n if (binding.identity !== undefined && binding.identity !== identity)\n {\n throw new Error(`WGSL binding ${binding.generatedSymbol} has inconsistent D3D identity ${binding.identity}`);\n }\n const hasTransform = binding.transformId !== undefined\n || binding.arrayLayerCount !== undefined;\n if (hasTransform\n && (binding.resourceKind !== \"sampled-resource\"\n || typeof binding.transformId !== \"string\" || !binding.transformId\n || !Number.isInteger(binding.arrayLayerCount) || binding.arrayLayerCount < 2\n || binding.type !== \"texture_2d_array<f32>\"\n || binding.texture?.viewDimension !== \"2d-array\"))\n {\n throw new Error(`WGSL binding ${binding.generatedSymbol} has invalid resource transform metadata`);\n }\n if (scopeIdentity !== identity && scopeIdentity !== `${identity}@${visibility}`)\n {\n throw new Error(`WGSL binding ${binding.generatedSymbol} has invalid scope identity ${scopeIdentity}`);\n }\n const descriptorKeys = [ \"buffer\", \"texture\", \"sampler\" ].filter((key) => binding[key]);\n const expectedDescriptors = {\n \"uniform-buffer\": [ \"buffer\" ],\n \"sampled-resource\": [ \"buffer\", \"texture\" ],\n \"storage-resource\": [ \"buffer\" ],\n sampler: [ \"sampler\" ]\n }[binding.resourceKind];\n if (!expectedDescriptors || descriptorKeys.length !== 1 || !expectedDescriptors.includes(descriptorKeys[0]))\n {\n throw new Error(`WGSL binding ${binding.generatedSymbol} has an invalid ${binding.resourceKind} layout descriptor`);\n }\n return {\n identity,\n scopeIdentity,\n resourceKind: binding.resourceKind,\n generatedSymbol: binding.generatedSymbol,\n registerSpace: binding.registerSpace,\n registerIndex: binding.registerIndex,\n group: binding.group,\n binding: binding.binding,\n visibility: [ visibility ],\n type: binding.type,\n ...(hasTransform\n ? {\n transformId: binding.transformId,\n arrayLayerCount: binding.arrayLayerCount\n }\n : {}),\n ...(Number.isInteger(binding.structureStride) ? { structureStride: binding.structureStride } : {}),\n ...(binding.buffer ? { buffer: clonePlain(binding.buffer) } : {}),\n ...(binding.texture ? { texture: clonePlain(binding.texture) } : {}),\n ...(binding.sampler ? { sampler: clonePlain(binding.sampler) } : {})\n };\n}\n\nfunction bindingIdentity(binding)\n{\n return binding.scopeIdentity || `${binding.resourceKind}:${binding.registerSpace}:${binding.registerIndex}`;\n}\n\nfunction bindingFingerprint(binding)\n{\n return JSON.stringify({\n resourceKind: binding.resourceKind,\n identity: binding.identity,\n scopeIdentity: binding.scopeIdentity,\n generatedSymbol: binding.generatedSymbol,\n registerSpace: binding.registerSpace,\n registerIndex: binding.registerIndex,\n group: binding.group,\n binding: binding.binding,\n type: binding.type,\n transformId: binding.transformId ?? null,\n arrayLayerCount: binding.arrayLayerCount ?? null,\n structureStride: binding.structureStride ?? null,\n buffer: binding.buffer || null,\n texture: binding.texture || null,\n sampler: binding.sampler || null\n });\n}\n\nfunction buildLayouts(entries)\n{\n const passes = new Map();\n for (const entry of entries)\n {\n const passKey = `${entry.techniqueName}.pass${entry.passIndex}`;\n if (!passes.has(passKey))\n {\n passes.set(passKey, { identities: new Map(), baseScopes: new Map(), slots: new Map() });\n }\n const pass = passes.get(passKey);\n const symbols = new Map();\n const d3dIdentities = new Set();\n for (const source of entry.shader.program.bindings || [])\n {\n const binding = portableBinding(source, entry.stage);\n const identity = bindingIdentity(binding);\n if (d3dIdentities.has(binding.identity))\n {\n throw new Error(`WGSL shader ${entry.key} contains duplicate D3D identity ${binding.identity}`);\n }\n d3dIdentities.add(binding.identity);\n if (!pass.baseScopes.has(binding.identity)) pass.baseScopes.set(binding.identity, new Set());\n const baseScopes = pass.baseScopes.get(binding.identity);\n if ((identity === binding.identity && Array.from(baseScopes).some((scope) => scope !== binding.identity))\n || (identity !== binding.identity && baseScopes.has(binding.identity)))\n {\n throw new Error(`WGSL set ${passKey} mixes shared and stage-scoped forms for ${binding.identity}`);\n }\n baseScopes.add(identity);\n if (symbols.has(binding.generatedSymbol))\n {\n throw new Error(`WGSL shader ${entry.key} contains duplicate generated symbol ${binding.generatedSymbol}`);\n }\n symbols.set(binding.generatedSymbol, identity);\n const slot = `${binding.group}:${binding.binding}`;\n const existingSlot = pass.slots.get(slot);\n if (existingSlot && existingSlot !== identity)\n {\n throw new Error(`WGSL set ${passKey} assigns ${slot} to both ${existingSlot} and ${identity}`);\n }\n pass.slots.set(slot, identity);\n const existing = pass.identities.get(identity);\n if (!existing)\n {\n pass.identities.set(identity, binding);\n continue;\n }\n if (bindingFingerprint(existing) !== bindingFingerprint(binding))\n {\n throw new Error(`WGSL set ${passKey} has conflicting layouts for ${identity}`);\n }\n existing.visibility = Array.from(new Set([ ...existing.visibility, ...binding.visibility ]))\n .sort((left, right) => VISIBILITY_ORDER.indexOf(left) - VISIBILITY_ORDER.indexOf(right));\n }\n }\n return Array.from(passes, ([ key, pass ]) =>\n {\n for (const [ identity, scopes ] of pass.baseScopes)\n {\n if (scopes.has(identity) && pass.identities.get(identity)?.visibility.length < 2)\n {\n throw new Error(`WGSL set ${key} shared identity ${identity} does not cover multiple stages`);\n }\n }\n const groups = new Map();\n for (const binding of pass.identities.values())\n {\n if (!groups.has(binding.group)) groups.set(binding.group, []);\n groups.get(binding.group).push(binding);\n }\n return {\n key,\n techniqueName: key.slice(0, key.lastIndexOf(\".pass\")),\n passIndex: Number(/\\.pass([0-9]+)$/.exec(key)?.[1]),\n bindGroups: Array.from(groups, ([ group, bindings ]) => ({\n group,\n bindings: bindings.sort((left, right) => left.binding - right.binding)\n })).sort((left, right) => left.group - right.group)\n };\n }).sort((left, right) =>\n compareUtf8(left.techniqueName, right.techniqueName)\n || left.passIndex - right.passIndex);\n}\n\nfunction validatePassTopologies(entries)\n{\n const stagesByPass = new Map();\n for (const entry of entries)\n {\n const passKey = `${entry.techniqueName}.pass${entry.passIndex}`;\n if (!stagesByPass.has(passKey)) stagesByPass.set(passKey, []);\n stagesByPass.get(passKey).push(entry.stageName);\n }\n for (const [ passKey, stages ] of stagesByPass)\n {\n if (stages.includes(\"compute\") && (stages.length !== 1 || stages[0] !== \"compute\"))\n {\n throw new Error(`WGSL set ${passKey} cannot mix compute and render shader stages`);\n }\n }\n}\n\nfunction buildResourceTransforms(entries, layouts)\n{\n const raw = entries.flatMap((entry) => entry.shader.program.resourceTransforms || []);\n const transformedBindings = layouts.flatMap((layout) =>\n layout.bindGroups.flatMap((group) =>\n group.bindings.filter((binding) => binding.transformId)\n .map((binding) => ({ layoutKey: layout.key, binding }))));\n if (!raw.length)\n {\n if (transformedBindings.length)\n {\n throw new Error(\"WGSL set has transformed bindings without resource recipes\");\n }\n return [];\n }\n const plan = normalizeResourceTransformPlan({\n format: \"CJS_WGSL_RESOURCE_TRANSFORM_PLAN\",\n formatVersion: 1,\n resourceTransforms: raw\n });\n const ids = new Set(plan.resourceTransforms.map((transform) => transform.id));\n for (const { binding } of transformedBindings)\n {\n if (!ids.has(binding.transformId))\n {\n throw new Error(`WGSL binding ${binding.generatedSymbol} references missing transform ${binding.transformId}`);\n }\n }\n for (const transform of plan.resourceTransforms)\n {\n const stageKey = `${transform.layoutKey}.pixel`;\n if (!entries.some((entry) => entry.key === stageKey))\n {\n throw new Error(`WGSL resource transform ${transform.id} has no fragment shader ${stageKey}`);\n }\n const links = transformedBindings.filter(({ layoutKey, binding }) =>\n layoutKey === transform.layoutKey\n && binding.transformId === transform.id);\n if (links.length !== 1)\n {\n throw new Error(`WGSL resource transform ${transform.id} must link exactly one physical binding`);\n }\n const binding = links[0].binding;\n if (binding.identity !== transform.output.identity\n || binding.scopeIdentity !== transform.output.scopeIdentity\n || binding.texture?.viewDimension !== transform.output.viewDimension\n || binding.arrayLayerCount !== transform.output.layerCount)\n {\n throw new Error(`WGSL resource transform ${transform.id} does not match its physical binding`);\n }\n const transformLayout = layouts.find((layout) =>\n layout.key === transform.layoutKey);\n const physicalScopes = new Set((transformLayout?.bindGroups || []).flatMap((group) =>\n group.bindings.map((entry) => entry.scopeIdentity)));\n for (const input of transform.inputs.slice(1))\n {\n if (physicalScopes.has(input.scopeIdentity))\n {\n throw new Error(`WGSL resource transform ${transform.id} retains removed input ${input.scopeIdentity}`);\n }\n }\n }\n return plan.resourceTransforms;\n}\n\n/**\n * Builds the portable JSON document stored in a Carbon WebGPU `WGSL` chunk.\n * Existing numeric bindings are validated and never reassigned.\n *\n * @param {Array<object>} input Wrapped emitted shader descriptors.\n * @returns {object} Frozen CJS_WGSL_SET document.\n */\nexport function buildWgslSet(input)\n{\n if (!Array.isArray(input) || !input.length) throw new TypeError(\"BuildWgslSet expects a non-empty shader entry array\");\n const entries = input.map(normalizeEntry);\n const keys = new Set();\n const shaders = entries.map((entry) =>\n {\n if (keys.has(entry.key)) throw new Error(`WGSL set contains duplicate shader key ${entry.key}`);\n keys.add(entry.key);\n return {\n key: entry.key,\n techniqueName: entry.techniqueName,\n passIndex: entry.passIndex,\n stageName: entry.stageName,\n stage: entry.stage,\n stageType: entry.stageType,\n entryPoint: entry.shader.entryPoint,\n code: entry.shader.code,\n sourceMap: clonePlain(entry.shader.sourceMap || []),\n ...(entry.threadGroupSize ? { threadGroupSize: clonePlain(entry.threadGroupSize) } : {})\n };\n }).sort((left, right) =>\n compareUtf8(left.techniqueName, right.techniqueName)\n || left.passIndex - right.passIndex\n || STAGE_NAME_ORDER.indexOf(left.stageName) - STAGE_NAME_ORDER.indexOf(right.stageName));\n validatePassTopologies(entries);\n const layouts = buildLayouts(entries);\n const resourceTransforms = buildResourceTransforms(entries, layouts);\n return deepFreeze({\n format: \"CJS_WGSL_SET\",\n formatVersion: WGSL_SET_VERSION,\n shaders,\n layouts,\n ...(resourceTransforms.length ? { resourceTransforms } : {})\n });\n}\n"],"names":["WGSL_SET_VERSION","KEY_PATTERN","KEY_STAGE","Object","freeze","vertex","pixel","compute","STAGE_TYPES","STAGE_NAME_ORDER","VISIBILITY_ORDER","clonePlain","value","Array","isArray","map","fromEntries","entries","key","entry","deepFreeze","isFrozen","values","normalizeEntry","index","shader","format","formatVersion","code","entryPoint","sourceMap","program","TypeError","match","exec","Error","techniqueName","passIndex","Number","stageName","stage","threadGroupSize","length","some","isSafeInteger","undefined","stageType","portableBinding","binding","visibility","isInteger","group","registerSpace","registerIndex","resourceKind","generatedSymbol","type","id","identity","scopeIdentity","hasTransform","transformId","arrayLayerCount","texture","viewDimension","descriptorKeys","filter","expectedDescriptors","sampler","includes","structureStride","buffer","bindingIdentity","bindingFingerprint","JSON","stringify","buildLayouts","passes","Map","passKey","has","set","identities","baseScopes","slots","pass","get","symbols","d3dIdentities","Set","source","bindings","add","from","scope","slot","existingSlot","existing","sort","left","right","indexOf","scopes","groups","push","slice","lastIndexOf","bindGroups","compareUtf8","validatePassTopologies","stagesByPass","stages","buildResourceTransforms","layouts","raw","flatMap","resourceTransforms","transformedBindings","layout","layoutKey","plan","normalizeResourceTransformPlan","ids","transform","stageKey","links","output","layerCount","transformLayout","find","physicalScopes","input","inputs","buildWgslSet","keys","shaders"],"mappings":"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"}
|
|
@@ -4,9 +4,9 @@ import { DEFAULT_VALUES, normalizeValues, toJsonGraph, OUTPUT_RAW, OUTPUT_DOCUME
|
|
|
4
4
|
const FORMAT_NAME = "CjsYamlFormat";
|
|
5
5
|
|
|
6
6
|
/**
|
|
7
|
-
* YAML format profile that parses YAML text
|
|
8
|
-
* or document output with configurable tag policies, alias
|
|
9
|
-
* identity/reference markers.
|
|
7
|
+
* YAML format profile that parses YAML text or strict UTF-8 bytes into payload,
|
|
8
|
+
* JSON-graph, raw, or document output with configurable tag policies, alias
|
|
9
|
+
* limits, and identity/reference markers.
|
|
10
10
|
*/
|
|
11
11
|
class CjsYamlFormat {
|
|
12
12
|
#values = DEFAULT_VALUES;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CjsYamlFormat.js","sources":["../../../../src/formats/yaml/CjsYamlFormat.js"],"sourcesContent":["import { CjsYamlReader } from \"./core/CjsYamlReader.js\";\nimport {\n DEFAULT_VALUES,\n OUTPUT_DOCUMENT,\n OUTPUT_JSON,\n OUTPUT_PAYLOAD,\n OUTPUT_RAW,\n TAG_HANDLE,\n TAG_PRESERVE,\n TAG_REJECT,\n normalizeValues,\n toJsonGraph\n} from \"./core/helpers.js\";\n\nconst FORMAT_NAME = \"CjsYamlFormat\";\n\n/**\n * YAML format profile that parses YAML text into payload
|
|
1
|
+
{"version":3,"file":"CjsYamlFormat.js","sources":["../../../../src/formats/yaml/CjsYamlFormat.js"],"sourcesContent":["import { CjsYamlReader } from \"./core/CjsYamlReader.js\";\nimport {\n DEFAULT_VALUES,\n OUTPUT_DOCUMENT,\n OUTPUT_JSON,\n OUTPUT_PAYLOAD,\n OUTPUT_RAW,\n TAG_HANDLE,\n TAG_PRESERVE,\n TAG_REJECT,\n normalizeValues,\n toJsonGraph\n} from \"./core/helpers.js\";\n\nconst FORMAT_NAME = \"CjsYamlFormat\";\n\n/**\n * YAML format profile that parses YAML text or strict UTF-8 bytes into payload,\n * JSON-graph, raw, or document output with configurable tag policies, alias\n * limits, and identity/reference markers.\n */\nexport class CjsYamlFormat\n{\n #values = DEFAULT_VALUES;\n\n /** Creates a CjsYamlFormat with caller-provided reader configuration. */\n constructor(options = {})\n {\n this.SetValues(options);\n }\n\n /**\n * Applies caller-provided options after normalizing supported fields for the\n * YAML document reader.\n */\n SetValues(options = {})\n {\n this.#values = normalizeValues(this.#values, options, FORMAT_NAME);\n return this;\n }\n\n /**\n * Returns a snapshot of the normalized reader options for the YAML document\n * reader.\n */\n GetValues(options = {})\n {\n return normalizeValues(this.#values, options, FORMAT_NAME);\n }\n\n /**\n * Reads the primary public payload representation from the supplied input\n * for the YAML document reader.\n */\n Read(input, options = {})\n {\n return CjsYamlFormat.read(input, this.GetValues(options));\n }\n\n /** Reads payload from the current YAML document reader. */\n ReadPayload(input, options = {})\n {\n return CjsYamlFormat.readPayload(input, this.GetValues(options));\n }\n\n /** Reads raw from the current YAML document reader. */\n ReadRaw(input, options = {})\n {\n return CjsYamlFormat.readRaw(input, this.GetValues(options));\n }\n\n /** Reads document from the current YAML document reader. */\n ReadDocument(input, options = {})\n {\n return CjsYamlFormat.readDocument(input, this.GetValues(options));\n }\n\n /**\n * Returns structural metadata without materializing the decoded payload for\n * the YAML document reader.\n */\n Inspect(input, options = {})\n {\n return CjsYamlFormat.inspect(input, this.GetValues(options));\n }\n\n /**\n * Converts the current decoded payload into a JSON-safe representation for\n * the YAML document reader.\n */\n ToJSON(value, options = {})\n {\n return toJsonGraph(value, this.GetValues(options));\n }\n\n /** Provides the one-shot YAML payload reader entry point. */\n static read(input, options = {})\n {\n const values = normalizeValues(DEFAULT_VALUES, options, FORMAT_NAME);\n if (values.emit === OUTPUT_RAW) return new CjsYamlReader(input, values).ReadRaw();\n if (values.emit === OUTPUT_DOCUMENT) return new CjsYamlReader(input, values).ReadDocument();\n return new CjsYamlReader(input, values).ReadPayload();\n }\n\n /** Provides the one-shot YAML normalized-payload reader entry point. */\n static readPayload(input, options = {})\n {\n const values = normalizeValues(DEFAULT_VALUES, options, FORMAT_NAME);\n return new CjsYamlReader(input, values).ReadPayload();\n }\n\n /** Provides the one-shot YAML raw-value reader entry point. */\n static readRaw(input, options = {})\n {\n const values = normalizeValues(DEFAULT_VALUES, options, FORMAT_NAME);\n return new CjsYamlReader(input, values).ReadRaw();\n }\n\n /** Provides the one-shot YAML document reader entry point. */\n static readDocument(input, options = {})\n {\n const values = normalizeValues(DEFAULT_VALUES, options, FORMAT_NAME);\n return new CjsYamlReader(input, values).ReadDocument();\n }\n\n /** Provides the one-shot YAML metadata inspection entry point. */\n static inspect(input, options = {})\n {\n const values = normalizeValues(DEFAULT_VALUES, options, FORMAT_NAME);\n return new CjsYamlReader(input, values).Inspect();\n }\n\n /** Provides the one-shot YAML JSON conversion entry point. */\n static toJSON(value, options = {})\n {\n return toJsonGraph(value, normalizeValues(DEFAULT_VALUES, options, FORMAT_NAME));\n }\n\n /**\n * Emit targets for this format (canonical frozen enum).\n */\n static Output = Object.freeze({\n JSON: OUTPUT_JSON,\n PAYLOAD: OUTPUT_PAYLOAD,\n RAW: OUTPUT_RAW,\n DOCUMENT: OUTPUT_DOCUMENT\n });\n static TAG_PRESERVE = TAG_PRESERVE;\n static TAG_REJECT = TAG_REJECT;\n static TAG_HANDLE = TAG_HANDLE;\n static id = \"yaml\";\n static extensions = Object.freeze([ \".yaml\", \".yml\" ]);\n static type = Object.freeze([ \"data\" ]);\n static mediaTypes = Object.freeze([ \"data\" ]);\n static inputTypes = Object.freeze([ \"yaml\" ]);\n static outputTypes = Object.freeze([ OUTPUT_JSON, OUTPUT_PAYLOAD ]);\n static debugOutputTypes = Object.freeze([ OUTPUT_RAW, OUTPUT_DOCUMENT ]);\n}\n\nexport default CjsYamlFormat;\n"],"names":["FORMAT_NAME","CjsYamlFormat","DEFAULT_VALUES","constructor","options","SetValues","normalizeValues","GetValues","Read","input","read","ReadPayload","readPayload","ReadRaw","readRaw","ReadDocument","readDocument","Inspect","inspect","ToJSON","value","toJsonGraph","values","emit","OUTPUT_RAW","CjsYamlReader","OUTPUT_DOCUMENT","toJSON","Output","Object","freeze","JSON","OUTPUT_JSON","PAYLOAD","OUTPUT_PAYLOAD","RAW","DOCUMENT","TAG_PRESERVE","TAG_REJECT","TAG_HANDLE","id","extensions","type","mediaTypes","inputTypes","outputTypes","debugOutputTypes"],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { LineCounter, parseDocument, isMap, isSeq, isScalar, isAlias, visit } from 'yaml';
|
|
2
2
|
import { CjsReader } from '../../../format/CjsReader.js';
|
|
3
|
-
import { toJsonGraph, TAG_REJECT, TAG_HANDLE, TAG_PRESERVE } from './helpers.js';
|
|
3
|
+
import { toYamlSourceText, toJsonGraph, TAG_REJECT, TAG_HANDLE, TAG_PRESERVE } from './helpers.js';
|
|
4
4
|
|
|
5
5
|
const TAG_PREFIX = "tag:yaml.org,2002:";
|
|
6
6
|
const PYTHON_TUPLE = `${TAG_PREFIX}python/tuple`;
|
|
@@ -37,12 +37,10 @@ class CjsYamlReader extends CjsReader {
|
|
|
37
37
|
*/
|
|
38
38
|
constructor(input, options = {}) {
|
|
39
39
|
super(options);
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
}
|
|
43
|
-
this.source = input;
|
|
40
|
+
const source = toYamlSourceText(input, "CjsYamlFormat");
|
|
41
|
+
this.source = source;
|
|
44
42
|
this.lineCounter = new LineCounter();
|
|
45
|
-
this.document = parseDocument(
|
|
43
|
+
this.document = parseDocument(source, {
|
|
46
44
|
keepSourceTokens: true,
|
|
47
45
|
lineCounter: this.lineCounter,
|
|
48
46
|
prettyErrors: true,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CjsYamlReader.js","sources":["../../../../../src/formats/yaml/core/CjsYamlReader.js"],"sourcesContent":["import {\n LineCounter,\n isAlias,\n isMap,\n isScalar,\n isSeq,\n parseDocument,\n visit\n} from \"yaml\";\n\nimport { CjsReader } from \"../../../format/CjsReader.js\";\nimport { TAG_HANDLE, TAG_PRESERVE, TAG_REJECT, toJsonGraph } from \"./helpers.js\";\n\nconst TAG_PREFIX = \"tag:yaml.org,2002:\";\nconst PYTHON_TUPLE = `${TAG_PREFIX}python/tuple`;\nconst PYTHON_UNICODE = `${TAG_PREFIX}python/unicode`;\nconst PYTHON_PROJECTED_DECAL = `${TAG_PREFIX}python/object:paperDoll.ProjectedDecal`;\nconst PYTHON_PART_METADATA = `${TAG_PREFIX}python/object:paperDoll.AvatarPartMetaData`;\n\nconst STANDARD_TAGS = new Set([\n \"binary\", \"bool\", \"float\", \"int\", \"map\", \"merge\", \"null\", \"omap\",\n \"pairs\", \"seq\", \"set\", \"str\", \"timestamp\"\n].map(name => `${TAG_PREFIX}${name}`));\n\nfunction canonicalTag(tag)\n{\n if (typeof tag !== \"string\") return tag;\n if (tag.startsWith(\"!!\")) return `${TAG_PREFIX}${tag.slice(2)}`;\n return tag;\n}\n\nfunction displayMessage(error)\n{\n return String(error && error.message ? error.message : error).trim();\n}\n\nfunction defineMappingValue(target, key, value)\n{\n Object.defineProperty(target, key, {\n value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n}\n\n/**\n * Construction-bound reader that parses one YAML source with the `yaml`\n * library and produces the format's payload, raw, or document graphs while\n * enforcing tag policy and alias limits.\n */\nexport class CjsYamlReader extends CjsReader\n{\n /**\n * Creates a CjsYamlReader over caller-provided YAML bytes and reader\n * options.\n */\n constructor(input, options = {})\n {\n super(options);\n\n if (typeof input !== \"string\")\n {\n throw new TypeError(\"CjsYamlFormat input must be a YAML string\");\n }\n\n this.source = input;\n this.lineCounter = new LineCounter();\n this.document = parseDocument(input, {\n keepSourceTokens: true,\n lineCounter: this.lineCounter,\n prettyErrors: true,\n strict: true,\n uniqueKeys: this.options.uniqueKeys\n });\n this.inventory = this.BuildInventory();\n }\n\n /**\n * Reads the primary public payload representation from the supplied input\n * for the YAML document reader.\n */\n Read()\n {\n return this.ReadPayload();\n }\n\n /** Reads payload from the current YAML document reader. */\n ReadPayload()\n {\n return toJsonGraph(this.ReadRaw(), this.options);\n }\n\n /** Reads raw from the current YAML document reader. */\n ReadRaw()\n {\n this.AssertSyntax();\n this.AssertAliasLimit();\n return this.Convert(this.document.contents, new Map());\n }\n\n /** Reads document from the current YAML document reader. */\n ReadDocument()\n {\n let value = null;\n const errors = this.inventory.errors.slice();\n\n if (!errors.length)\n {\n try\n {\n this.AssertAliasLimit();\n value = this.Convert(this.document.contents, new Map());\n }\n catch (error)\n {\n errors.push(this.DescribeError(error));\n }\n }\n\n return {\n format: { id: \"yaml\" },\n source: { name: this.options.sourceName, length: this.source.length },\n root: { kind: this.RootKind() },\n value,\n tags: this.inventory.tags,\n anchors: this.inventory.anchors,\n aliases: this.inventory.aliases,\n warnings: this.inventory.warnings,\n errors\n };\n }\n\n /**\n * Returns structural metadata without materializing the decoded payload for\n * the YAML document reader.\n */\n Inspect()\n {\n return {\n format: { id: \"yaml\" },\n source: { name: this.options.sourceName, length: this.source.length },\n root: { kind: this.RootKind() },\n tags: this.inventory.tags,\n anchors: this.inventory.anchors,\n aliases: this.inventory.aliases,\n warnings: this.inventory.warnings,\n errors: this.inventory.errors\n };\n }\n\n /**\n * Classifies the root YAML node before conversion for the YAML document\n * reader.\n */\n RootKind()\n {\n const node = this.document.contents;\n if (node === null) return \"null\";\n if (isMap(node)) return \"mapping\";\n if (isSeq(node)) return \"sequence\";\n if (isScalar(node)) return \"scalar\";\n if (isAlias(node)) return \"alias\";\n return \"unknown\";\n }\n\n /**\n * Validates syntax against YAML document reader constraints and throws on\n * failure.\n */\n AssertSyntax()\n {\n if (!this.document.errors.length) return;\n const first = this.document.errors[0];\n const source = this.options.sourceName ? ` in ${this.options.sourceName}` : \"\";\n throw new SyntaxError(`CjsYamlFormat${source}: ${displayMessage(first)}`);\n }\n\n /**\n * Validates alias limit against YAML document reader constraints and throws\n * on failure.\n */\n AssertAliasLimit()\n {\n if (this.inventory.aliases.length <= this.options.maxAliasCount) return;\n const source = this.options.sourceName ? ` in ${this.options.sourceName}` : \"\";\n throw new RangeError(`CjsYamlFormat${source}: alias count ${this.inventory.aliases.length} exceeds maxAliasCount ${this.options.maxAliasCount}`);\n }\n\n /**\n * Converts the current value into the normalized YAML document reader\n * representation.\n */\n Convert(node, memo)\n {\n if (node === null || node === undefined) return null;\n\n if (isAlias(node))\n {\n const source = node.resolve(this.document);\n if (!source) throw this.NodeError(node, `unresolved alias \"${node.source}\"`);\n return this.Convert(source, memo);\n }\n\n if (memo.has(node)) return memo.get(node);\n\n const tag = this.CustomTag(node);\n if (tag)\n {\n this.AssertTagAllowed(tag, node);\n const handler = this.FindTagHandler(tag);\n\n if (handler)\n {\n const value = this.ConvertBase(node, memo, true);\n const handled = handler(value, this.TagContext(tag, node));\n memo.set(node, handled);\n return handled;\n }\n\n if (tag === PYTHON_TUPLE)\n {\n if (!isSeq(node)) throw this.NodeError(node, `${tag} must decorate a sequence`);\n return this.ConvertBase(node, memo, true);\n }\n\n if (tag === PYTHON_UNICODE)\n {\n if (!isScalar(node) || typeof node.value !== \"string\")\n {\n throw this.NodeError(node, `${tag} must decorate a string scalar`);\n }\n return node.value;\n }\n\n if (this.options.tagPolicy === TAG_REJECT)\n {\n throw this.NodeError(node, `custom tag \"${tag}\" is rejected by tagPolicy`);\n }\n\n if (this.options.tagPolicy === TAG_HANDLE)\n {\n throw this.NodeError(node, `custom tag \"${tag}\" has no explicit handler`);\n }\n\n if (this.options.tagPolicy === TAG_PRESERVE || tag === PYTHON_PROJECTED_DECAL || tag === PYTHON_PART_METADATA)\n {\n const wrapper = { [this.options.tagField]: tag };\n memo.set(node, wrapper);\n wrapper[this.options.valueField] = this.ConvertBase(node, memo, false);\n return wrapper;\n }\n }\n\n return this.ConvertBase(node, memo, true);\n }\n\n /** Converts base into the normalized YAML document reader representation. */\n ConvertBase(node, memo, memoize)\n {\n if (isScalar(node)) return node.value;\n\n if (isSeq(node))\n {\n const out = [];\n if (memoize) memo.set(node, out);\n for (const item of node.items) out.push(this.Convert(item, memo));\n return out;\n }\n\n if (isMap(node))\n {\n const out = {};\n if (memoize) memo.set(node, out);\n for (const pair of node.items)\n {\n const key = this.MapKey(pair.key);\n if (this.options.uniqueKeys && Object.prototype.hasOwnProperty.call(out, key))\n {\n throw this.NodeError(pair.key, `duplicate mapping key \"${key}\"`);\n }\n // Defining the property prevents keys such as \"__proto__\" from\n // mutating the result object's prototype.\n defineMappingValue(out, key, this.Convert(pair.value, memo));\n }\n return out;\n }\n\n throw this.NodeError(node, \"unsupported YAML node\");\n }\n\n /**\n * Converts a YAML mapping key into its JavaScript property representation\n * for the YAML document reader.\n */\n MapKey(node)\n {\n if (!isScalar(node)) throw this.NodeError(node, \"mapping keys must be scalar values\");\n return String(node.value);\n }\n\n /**\n * Converts a YAML custom-tag node through its registered handler for the\n * YAML document reader.\n */\n CustomTag(node)\n {\n const tag = canonicalTag(node.tag);\n return tag && !STANDARD_TAGS.has(tag) ? tag : null;\n }\n\n /**\n * Validates tag allowed against YAML document reader constraints and throws\n * on failure.\n */\n AssertTagAllowed(tag, node)\n {\n if (!this.options.allowedTags) return;\n const allowed = new Set(this.options.allowedTags.map(canonicalTag));\n if (!allowed.has(tag)) throw this.NodeError(node, `custom tag \"${tag}\" is not in allowedTags`);\n }\n\n /** Finds tag handler in the current YAML document reader. */\n FindTagHandler(tag)\n {\n const handlers = this.options.tagHandlers;\n const short = tag.startsWith(TAG_PREFIX) ? `!!${tag.slice(TAG_PREFIX.length)}` : tag;\n if (handlers instanceof Map) return handlers.get(tag) || handlers.get(short) || null;\n return handlers[tag] || handlers[short] || null;\n }\n\n /**\n * Builds the context passed to a YAML custom-tag handler for the YAML\n * document reader.\n */\n TagContext(tag, node)\n {\n return {\n tag,\n sourceName: this.options.sourceName,\n location: this.TagLocation(node)\n };\n }\n\n /**\n * Creates a YAML conversion error annotated with node location for the YAML\n * document reader.\n */\n NodeError(node, message)\n {\n const at = node && node.tag ? this.TagLocation(node) : this.Location(node);\n const source = this.options.sourceName ? `${this.options.sourceName}:` : \"\";\n const where = at ? `${source}${at.line}:${at.column}` : (this.options.sourceName || \"YAML input\");\n const error = new Error(`CjsYamlFormat ${where}: ${message}`);\n error.code = \"YAML_TAG_POLICY\";\n error.location = at;\n return error;\n }\n\n /**\n * Returns normalized source-location metadata for a YAML node for the YAML\n * document reader.\n */\n Location(node)\n {\n if (!node || !Array.isArray(node.range)) return null;\n const pos = this.lineCounter.linePos(node.range[0]);\n return { offset: node.range[0], line: pos.line, column: pos.col };\n }\n\n /**\n * Returns normalized source-location metadata for a YAML tag for the YAML\n * document reader.\n */\n TagLocation(node)\n {\n const fallback = this.Location(node);\n if (!fallback || !node.tag) return fallback;\n\n const lineStart = this.source.lastIndexOf(\"\\n\", node.range[0] - 1) + 1;\n const prefix = this.source.slice(lineStart, node.range[0]);\n const tags = [ ...prefix.matchAll(/!<[^>]+>|!!?[^\\s[\\]{},]+/g) ];\n const match = tags[tags.length - 1];\n if (!match) return fallback;\n\n const offset = lineStart + match.index;\n const pos = this.lineCounter.linePos(offset);\n return { offset, line: pos.line, column: pos.col };\n }\n\n /**\n * Builds a public description of error from the current YAML document\n * reader.\n */\n DescribeError(error)\n {\n const linePos = error && error.linePos && error.linePos[0];\n return {\n code: error && error.code ? error.code : \"YAML_ERROR\",\n message: displayMessage(error),\n location: error && error.location ? error.location : (linePos ? {\n line: linePos.line,\n column: linePos.col\n } : null)\n };\n }\n\n /** Builds inventory for the current YAML document reader. */\n BuildInventory()\n {\n const tags = [];\n const anchors = [];\n const aliases = [];\n\n visit(this.document, (_key, node) =>\n {\n if (!node || typeof node !== \"object\") return;\n const tag = this.CustomTag(node);\n const location = tag ? this.TagLocation(node) : this.Location(node);\n if (tag) tags.push({ tag, kind: this.NodeKind(node), location });\n if (node.anchor) anchors.push({ name: node.anchor, kind: this.NodeKind(node), location });\n if (isAlias(node)) aliases.push({ name: node.source, location });\n });\n\n return {\n tags,\n anchors,\n aliases,\n warnings: this.document.warnings.map(error => this.DescribeError(error)),\n errors: this.document.errors.map(error => this.DescribeError(error))\n };\n }\n\n /**\n * Returns the public kind label for a YAML node for the YAML document\n * reader.\n */\n NodeKind(node)\n {\n if (isMap(node)) return \"mapping\";\n if (isSeq(node)) return \"sequence\";\n if (isScalar(node)) return \"scalar\";\n if (isAlias(node)) return \"alias\";\n return \"unknown\";\n }\n}\n\nexport default CjsYamlReader;\n"],"names":["TAG_PREFIX","PYTHON_TUPLE","PYTHON_UNICODE","PYTHON_PROJECTED_DECAL","PYTHON_PART_METADATA","STANDARD_TAGS","Set","map","name","canonicalTag","tag","startsWith","slice","displayMessage","error","String","message","trim","defineMappingValue","target","key","value","Object","defineProperty","enumerable","configurable","writable","CjsYamlReader","CjsReader","constructor","input","options","TypeError","source","lineCounter","LineCounter","document","parseDocument","keepSourceTokens","prettyErrors","strict","uniqueKeys","inventory","BuildInventory","Read","ReadPayload","toJsonGraph","ReadRaw","AssertSyntax","AssertAliasLimit","Convert","contents","Map","ReadDocument","errors","length","push","DescribeError","format","id","sourceName","root","kind","RootKind","tags","anchors","aliases","warnings","Inspect","node","isMap","isSeq","isScalar","isAlias","first","SyntaxError","maxAliasCount","RangeError","memo","undefined","resolve","NodeError","has","get","CustomTag","AssertTagAllowed","handler","FindTagHandler","ConvertBase","handled","TagContext","set","tagPolicy","TAG_REJECT","TAG_HANDLE","TAG_PRESERVE","wrapper","tagField","valueField","memoize","out","item","items","pair","MapKey","prototype","hasOwnProperty","call","allowedTags","allowed","handlers","tagHandlers","short","location","TagLocation","at","Location","where","line","column","Error","code","Array","isArray","range","pos","linePos","offset","col","fallback","lineStart","lastIndexOf","prefix","matchAll","match","index","visit","_key","NodeKind","anchor"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"CjsYamlReader.js","sources":["../../../../../src/formats/yaml/core/CjsYamlReader.js"],"sourcesContent":["import {\n LineCounter,\n isAlias,\n isMap,\n isScalar,\n isSeq,\n parseDocument,\n visit\n} from \"yaml\";\n\nimport { CjsReader } from \"../../../format/CjsReader.js\";\nimport {\n TAG_HANDLE,\n TAG_PRESERVE,\n TAG_REJECT,\n toJsonGraph,\n toYamlSourceText\n} from \"./helpers.js\";\n\nconst TAG_PREFIX = \"tag:yaml.org,2002:\";\nconst PYTHON_TUPLE = `${TAG_PREFIX}python/tuple`;\nconst PYTHON_UNICODE = `${TAG_PREFIX}python/unicode`;\nconst PYTHON_PROJECTED_DECAL = `${TAG_PREFIX}python/object:paperDoll.ProjectedDecal`;\nconst PYTHON_PART_METADATA = `${TAG_PREFIX}python/object:paperDoll.AvatarPartMetaData`;\n\nconst STANDARD_TAGS = new Set([\n \"binary\", \"bool\", \"float\", \"int\", \"map\", \"merge\", \"null\", \"omap\",\n \"pairs\", \"seq\", \"set\", \"str\", \"timestamp\"\n].map(name => `${TAG_PREFIX}${name}`));\n\nfunction canonicalTag(tag)\n{\n if (typeof tag !== \"string\") return tag;\n if (tag.startsWith(\"!!\")) return `${TAG_PREFIX}${tag.slice(2)}`;\n return tag;\n}\n\nfunction displayMessage(error)\n{\n return String(error && error.message ? error.message : error).trim();\n}\n\nfunction defineMappingValue(target, key, value)\n{\n Object.defineProperty(target, key, {\n value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n}\n\n/**\n * Construction-bound reader that parses one YAML source with the `yaml`\n * library and produces the format's payload, raw, or document graphs while\n * enforcing tag policy and alias limits.\n */\nexport class CjsYamlReader extends CjsReader\n{\n /**\n * Creates a CjsYamlReader over caller-provided YAML bytes and reader\n * options.\n */\n constructor(input, options = {})\n {\n super(options);\n\n const source = toYamlSourceText(input, \"CjsYamlFormat\");\n this.source = source;\n this.lineCounter = new LineCounter();\n this.document = parseDocument(source, {\n keepSourceTokens: true,\n lineCounter: this.lineCounter,\n prettyErrors: true,\n strict: true,\n uniqueKeys: this.options.uniqueKeys\n });\n this.inventory = this.BuildInventory();\n }\n\n /**\n * Reads the primary public payload representation from the supplied input\n * for the YAML document reader.\n */\n Read()\n {\n return this.ReadPayload();\n }\n\n /** Reads payload from the current YAML document reader. */\n ReadPayload()\n {\n return toJsonGraph(this.ReadRaw(), this.options);\n }\n\n /** Reads raw from the current YAML document reader. */\n ReadRaw()\n {\n this.AssertSyntax();\n this.AssertAliasLimit();\n return this.Convert(this.document.contents, new Map());\n }\n\n /** Reads document from the current YAML document reader. */\n ReadDocument()\n {\n let value = null;\n const errors = this.inventory.errors.slice();\n\n if (!errors.length)\n {\n try\n {\n this.AssertAliasLimit();\n value = this.Convert(this.document.contents, new Map());\n }\n catch (error)\n {\n errors.push(this.DescribeError(error));\n }\n }\n\n return {\n format: { id: \"yaml\" },\n source: { name: this.options.sourceName, length: this.source.length },\n root: { kind: this.RootKind() },\n value,\n tags: this.inventory.tags,\n anchors: this.inventory.anchors,\n aliases: this.inventory.aliases,\n warnings: this.inventory.warnings,\n errors\n };\n }\n\n /**\n * Returns structural metadata without materializing the decoded payload for\n * the YAML document reader.\n */\n Inspect()\n {\n return {\n format: { id: \"yaml\" },\n source: { name: this.options.sourceName, length: this.source.length },\n root: { kind: this.RootKind() },\n tags: this.inventory.tags,\n anchors: this.inventory.anchors,\n aliases: this.inventory.aliases,\n warnings: this.inventory.warnings,\n errors: this.inventory.errors\n };\n }\n\n /**\n * Classifies the root YAML node before conversion for the YAML document\n * reader.\n */\n RootKind()\n {\n const node = this.document.contents;\n if (node === null) return \"null\";\n if (isMap(node)) return \"mapping\";\n if (isSeq(node)) return \"sequence\";\n if (isScalar(node)) return \"scalar\";\n if (isAlias(node)) return \"alias\";\n return \"unknown\";\n }\n\n /**\n * Validates syntax against YAML document reader constraints and throws on\n * failure.\n */\n AssertSyntax()\n {\n if (!this.document.errors.length) return;\n const first = this.document.errors[0];\n const source = this.options.sourceName ? ` in ${this.options.sourceName}` : \"\";\n throw new SyntaxError(`CjsYamlFormat${source}: ${displayMessage(first)}`);\n }\n\n /**\n * Validates alias limit against YAML document reader constraints and throws\n * on failure.\n */\n AssertAliasLimit()\n {\n if (this.inventory.aliases.length <= this.options.maxAliasCount) return;\n const source = this.options.sourceName ? ` in ${this.options.sourceName}` : \"\";\n throw new RangeError(`CjsYamlFormat${source}: alias count ${this.inventory.aliases.length} exceeds maxAliasCount ${this.options.maxAliasCount}`);\n }\n\n /**\n * Converts the current value into the normalized YAML document reader\n * representation.\n */\n Convert(node, memo)\n {\n if (node === null || node === undefined) return null;\n\n if (isAlias(node))\n {\n const source = node.resolve(this.document);\n if (!source) throw this.NodeError(node, `unresolved alias \"${node.source}\"`);\n return this.Convert(source, memo);\n }\n\n if (memo.has(node)) return memo.get(node);\n\n const tag = this.CustomTag(node);\n if (tag)\n {\n this.AssertTagAllowed(tag, node);\n const handler = this.FindTagHandler(tag);\n\n if (handler)\n {\n const value = this.ConvertBase(node, memo, true);\n const handled = handler(value, this.TagContext(tag, node));\n memo.set(node, handled);\n return handled;\n }\n\n if (tag === PYTHON_TUPLE)\n {\n if (!isSeq(node)) throw this.NodeError(node, `${tag} must decorate a sequence`);\n return this.ConvertBase(node, memo, true);\n }\n\n if (tag === PYTHON_UNICODE)\n {\n if (!isScalar(node) || typeof node.value !== \"string\")\n {\n throw this.NodeError(node, `${tag} must decorate a string scalar`);\n }\n return node.value;\n }\n\n if (this.options.tagPolicy === TAG_REJECT)\n {\n throw this.NodeError(node, `custom tag \"${tag}\" is rejected by tagPolicy`);\n }\n\n if (this.options.tagPolicy === TAG_HANDLE)\n {\n throw this.NodeError(node, `custom tag \"${tag}\" has no explicit handler`);\n }\n\n if (this.options.tagPolicy === TAG_PRESERVE || tag === PYTHON_PROJECTED_DECAL || tag === PYTHON_PART_METADATA)\n {\n const wrapper = { [this.options.tagField]: tag };\n memo.set(node, wrapper);\n wrapper[this.options.valueField] = this.ConvertBase(node, memo, false);\n return wrapper;\n }\n }\n\n return this.ConvertBase(node, memo, true);\n }\n\n /** Converts base into the normalized YAML document reader representation. */\n ConvertBase(node, memo, memoize)\n {\n if (isScalar(node)) return node.value;\n\n if (isSeq(node))\n {\n const out = [];\n if (memoize) memo.set(node, out);\n for (const item of node.items) out.push(this.Convert(item, memo));\n return out;\n }\n\n if (isMap(node))\n {\n const out = {};\n if (memoize) memo.set(node, out);\n for (const pair of node.items)\n {\n const key = this.MapKey(pair.key);\n if (this.options.uniqueKeys && Object.prototype.hasOwnProperty.call(out, key))\n {\n throw this.NodeError(pair.key, `duplicate mapping key \"${key}\"`);\n }\n // Defining the property prevents keys such as \"__proto__\" from\n // mutating the result object's prototype.\n defineMappingValue(out, key, this.Convert(pair.value, memo));\n }\n return out;\n }\n\n throw this.NodeError(node, \"unsupported YAML node\");\n }\n\n /**\n * Converts a YAML mapping key into its JavaScript property representation\n * for the YAML document reader.\n */\n MapKey(node)\n {\n if (!isScalar(node)) throw this.NodeError(node, \"mapping keys must be scalar values\");\n return String(node.value);\n }\n\n /**\n * Converts a YAML custom-tag node through its registered handler for the\n * YAML document reader.\n */\n CustomTag(node)\n {\n const tag = canonicalTag(node.tag);\n return tag && !STANDARD_TAGS.has(tag) ? tag : null;\n }\n\n /**\n * Validates tag allowed against YAML document reader constraints and throws\n * on failure.\n */\n AssertTagAllowed(tag, node)\n {\n if (!this.options.allowedTags) return;\n const allowed = new Set(this.options.allowedTags.map(canonicalTag));\n if (!allowed.has(tag)) throw this.NodeError(node, `custom tag \"${tag}\" is not in allowedTags`);\n }\n\n /** Finds tag handler in the current YAML document reader. */\n FindTagHandler(tag)\n {\n const handlers = this.options.tagHandlers;\n const short = tag.startsWith(TAG_PREFIX) ? `!!${tag.slice(TAG_PREFIX.length)}` : tag;\n if (handlers instanceof Map) return handlers.get(tag) || handlers.get(short) || null;\n return handlers[tag] || handlers[short] || null;\n }\n\n /**\n * Builds the context passed to a YAML custom-tag handler for the YAML\n * document reader.\n */\n TagContext(tag, node)\n {\n return {\n tag,\n sourceName: this.options.sourceName,\n location: this.TagLocation(node)\n };\n }\n\n /**\n * Creates a YAML conversion error annotated with node location for the YAML\n * document reader.\n */\n NodeError(node, message)\n {\n const at = node && node.tag ? this.TagLocation(node) : this.Location(node);\n const source = this.options.sourceName ? `${this.options.sourceName}:` : \"\";\n const where = at ? `${source}${at.line}:${at.column}` : (this.options.sourceName || \"YAML input\");\n const error = new Error(`CjsYamlFormat ${where}: ${message}`);\n error.code = \"YAML_TAG_POLICY\";\n error.location = at;\n return error;\n }\n\n /**\n * Returns normalized source-location metadata for a YAML node for the YAML\n * document reader.\n */\n Location(node)\n {\n if (!node || !Array.isArray(node.range)) return null;\n const pos = this.lineCounter.linePos(node.range[0]);\n return { offset: node.range[0], line: pos.line, column: pos.col };\n }\n\n /**\n * Returns normalized source-location metadata for a YAML tag for the YAML\n * document reader.\n */\n TagLocation(node)\n {\n const fallback = this.Location(node);\n if (!fallback || !node.tag) return fallback;\n\n const lineStart = this.source.lastIndexOf(\"\\n\", node.range[0] - 1) + 1;\n const prefix = this.source.slice(lineStart, node.range[0]);\n const tags = [ ...prefix.matchAll(/!<[^>]+>|!!?[^\\s[\\]{},]+/g) ];\n const match = tags[tags.length - 1];\n if (!match) return fallback;\n\n const offset = lineStart + match.index;\n const pos = this.lineCounter.linePos(offset);\n return { offset, line: pos.line, column: pos.col };\n }\n\n /**\n * Builds a public description of error from the current YAML document\n * reader.\n */\n DescribeError(error)\n {\n const linePos = error && error.linePos && error.linePos[0];\n return {\n code: error && error.code ? error.code : \"YAML_ERROR\",\n message: displayMessage(error),\n location: error && error.location ? error.location : (linePos ? {\n line: linePos.line,\n column: linePos.col\n } : null)\n };\n }\n\n /** Builds inventory for the current YAML document reader. */\n BuildInventory()\n {\n const tags = [];\n const anchors = [];\n const aliases = [];\n\n visit(this.document, (_key, node) =>\n {\n if (!node || typeof node !== \"object\") return;\n const tag = this.CustomTag(node);\n const location = tag ? this.TagLocation(node) : this.Location(node);\n if (tag) tags.push({ tag, kind: this.NodeKind(node), location });\n if (node.anchor) anchors.push({ name: node.anchor, kind: this.NodeKind(node), location });\n if (isAlias(node)) aliases.push({ name: node.source, location });\n });\n\n return {\n tags,\n anchors,\n aliases,\n warnings: this.document.warnings.map(error => this.DescribeError(error)),\n errors: this.document.errors.map(error => this.DescribeError(error))\n };\n }\n\n /**\n * Returns the public kind label for a YAML node for the YAML document\n * reader.\n */\n NodeKind(node)\n {\n if (isMap(node)) return \"mapping\";\n if (isSeq(node)) return \"sequence\";\n if (isScalar(node)) return \"scalar\";\n if (isAlias(node)) return \"alias\";\n return \"unknown\";\n }\n}\n\nexport default CjsYamlReader;\n"],"names":["TAG_PREFIX","PYTHON_TUPLE","PYTHON_UNICODE","PYTHON_PROJECTED_DECAL","PYTHON_PART_METADATA","STANDARD_TAGS","Set","map","name","canonicalTag","tag","startsWith","slice","displayMessage","error","String","message","trim","defineMappingValue","target","key","value","Object","defineProperty","enumerable","configurable","writable","CjsYamlReader","CjsReader","constructor","input","options","source","toYamlSourceText","lineCounter","LineCounter","document","parseDocument","keepSourceTokens","prettyErrors","strict","uniqueKeys","inventory","BuildInventory","Read","ReadPayload","toJsonGraph","ReadRaw","AssertSyntax","AssertAliasLimit","Convert","contents","Map","ReadDocument","errors","length","push","DescribeError","format","id","sourceName","root","kind","RootKind","tags","anchors","aliases","warnings","Inspect","node","isMap","isSeq","isScalar","isAlias","first","SyntaxError","maxAliasCount","RangeError","memo","undefined","resolve","NodeError","has","get","CustomTag","AssertTagAllowed","handler","FindTagHandler","ConvertBase","handled","TagContext","set","tagPolicy","TAG_REJECT","TAG_HANDLE","TAG_PRESERVE","wrapper","tagField","valueField","memoize","out","item","items","pair","MapKey","prototype","hasOwnProperty","call","allowedTags","allowed","handlers","tagHandlers","short","location","TagLocation","at","Location","where","line","column","Error","code","Array","isArray","range","pos","linePos","offset","col","fallback","lineStart","lastIndexOf","prefix","matchAll","match","index","visit","_key","NodeKind","anchor"],"mappings":"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"}
|
|
@@ -20,6 +20,32 @@ const DEFAULT_VALUES = Object.freeze({
|
|
|
20
20
|
valueField: "$yamlValue"
|
|
21
21
|
});
|
|
22
22
|
const OPTION_KEYS = new Set(Object.keys(DEFAULT_VALUES));
|
|
23
|
+
|
|
24
|
+
/** Returns true when a value can be decoded as YAML source text. */
|
|
25
|
+
function isYamlSourceInput(value) {
|
|
26
|
+
return typeof value === "string" || value instanceof ArrayBuffer || ArrayBuffer.isView(value);
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
/**
|
|
30
|
+
* Converts string or byte input into strict UTF-8 YAML source text while
|
|
31
|
+
* respecting typed-array/DataView bounds.
|
|
32
|
+
*/
|
|
33
|
+
function toYamlSourceText(value, readerName = "CjsYamlFormat") {
|
|
34
|
+
if (typeof value === "string") return value;
|
|
35
|
+
if (!isYamlSourceInput(value)) {
|
|
36
|
+
throw new TypeError(`${readerName} input must be a YAML string or byte buffer`);
|
|
37
|
+
}
|
|
38
|
+
const bytes = value instanceof ArrayBuffer ? new Uint8Array(value) : new Uint8Array(value.buffer, value.byteOffset, value.byteLength);
|
|
39
|
+
try {
|
|
40
|
+
return new TextDecoder("utf-8", {
|
|
41
|
+
fatal: true
|
|
42
|
+
}).decode(bytes);
|
|
43
|
+
} catch (error) {
|
|
44
|
+
throw new TypeError(`${readerName} input must contain valid UTF-8 YAML`, {
|
|
45
|
+
cause: error
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
}
|
|
23
49
|
function hasOwn(value, key) {
|
|
24
50
|
return Object.prototype.hasOwnProperty.call(value, key);
|
|
25
51
|
}
|
|
@@ -166,5 +192,5 @@ function toJsonGraph(value, options) {
|
|
|
166
192
|
return encode(value);
|
|
167
193
|
}
|
|
168
194
|
|
|
169
|
-
export { DEFAULT_VALUES, OUTPUT_DOCUMENT, OUTPUT_JSON, OUTPUT_PAYLOAD, OUTPUT_RAW, TAG_HANDLE, TAG_PRESERVE, TAG_REJECT, normalizeValues, toJsonGraph };
|
|
195
|
+
export { DEFAULT_VALUES, OUTPUT_DOCUMENT, OUTPUT_JSON, OUTPUT_PAYLOAD, OUTPUT_RAW, TAG_HANDLE, TAG_PRESERVE, TAG_REJECT, isYamlSourceInput, normalizeValues, toJsonGraph, toYamlSourceText };
|
|
170
196
|
//# sourceMappingURL=helpers.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helpers.js","sources":["../../../../../src/formats/yaml/core/helpers.js"],"sourcesContent":["export const OUTPUT_JSON = \"json\";\nexport const OUTPUT_PAYLOAD = \"payload\";\nexport const OUTPUT_RAW = \"raw\";\nexport const OUTPUT_DOCUMENT = \"document\";\n\nexport const TAG_PRESERVE = \"preserve\";\nexport const TAG_REJECT = \"reject\";\nexport const TAG_HANDLE = \"handle\";\n\nexport const DEFAULT_VALUES = Object.freeze({\n emit: OUTPUT_PAYLOAD,\n tagPolicy: TAG_PRESERVE,\n allowedTags: null,\n tagHandlers: Object.freeze({}),\n sourceName: null,\n maxAliasCount: 100,\n uniqueKeys: true,\n idField: \"$yamlId\",\n refField: \"$yamlRef\",\n valuesField: \"$yamlValues\",\n tagField: \"$yamlTag\",\n valueField: \"$yamlValue\"\n});\n\nconst OPTION_KEYS = new Set(Object.keys(DEFAULT_VALUES));\n\nfunction hasOwn(value, key)\n{\n return Object.prototype.hasOwnProperty.call(value, key);\n}\n\nfunction defineMappingValue(target, key, value)\n{\n Object.defineProperty(target, key, {\n value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n}\n\nfunction normalizeEmit(value, readerName)\n{\n if (value === OUTPUT_JSON || value === OUTPUT_PAYLOAD) return value;\n if (value === OUTPUT_RAW || value === OUTPUT_DOCUMENT) return value;\n throw new TypeError(`${readerName} unknown emit value \"${value}\"`);\n}\n\nfunction normalizeTagPolicy(value, readerName)\n{\n if (value === TAG_PRESERVE || value === TAG_REJECT || value === TAG_HANDLE) return value;\n throw new TypeError(`${readerName} unknown tagPolicy value \"${value}\"`);\n}\n\nfunction normalizeAllowedTags(value, readerName)\n{\n if (value === null || value === undefined) return null;\n if (!Array.isArray(value) && !(value instanceof Set))\n {\n throw new TypeError(`${readerName} allowedTags must be an array, Set, or null`);\n }\n return [ ...value ];\n}\n\nfunction normalizeTagHandlers(value, readerName)\n{\n if (value instanceof Map)\n {\n for (const [ tag, handler ] of value)\n {\n if (typeof handler !== \"function\")\n {\n throw new TypeError(`${readerName} tag handler \"${tag}\" must be a function`);\n }\n }\n return new Map(value);\n }\n if (!value || typeof value !== \"object\" || Array.isArray(value))\n {\n throw new TypeError(`${readerName} tagHandlers must be an object or Map`);\n }\n for (const [ tag, handler ] of Object.entries(value))\n {\n if (typeof handler !== \"function\")\n {\n throw new TypeError(`${readerName} tag handler \"${tag}\" must be a function`);\n }\n }\n return { ...value };\n}\n\nfunction normalizeField(value, name, readerName)\n{\n if (typeof value !== \"string\" || !value)\n {\n throw new TypeError(`${readerName} ${name} must be a non-empty string`);\n }\n return value;\n}\n\nfunction normalizeBoolean(value, name, readerName)\n{\n if (typeof value !== \"boolean\") throw new TypeError(`${readerName} ${name} must be a boolean`);\n return value;\n}\n\n/**\n * Normalizes reader options against their supported defaults for the YAML\n * document reader.\n */\nexport function normalizeValues(base, options = {}, readerName = \"CjsYamlFormat\")\n{\n if (!options || typeof options !== \"object\" || Array.isArray(options))\n {\n throw new TypeError(`${readerName} options must be an object`);\n }\n\n for (const key of Object.keys(options))\n {\n if (!OPTION_KEYS.has(key)) throw new TypeError(`${readerName} unknown option \"${key}\"`);\n }\n\n const values = {\n ...base,\n allowedTags: base.allowedTags ? [ ...base.allowedTags ] : null,\n tagHandlers: base.tagHandlers instanceof Map ? new Map(base.tagHandlers) : { ...base.tagHandlers }\n };\n\n if (hasOwn(options, \"emit\")) values.emit = normalizeEmit(options.emit, readerName);\n if (hasOwn(options, \"tagPolicy\")) values.tagPolicy = normalizeTagPolicy(options.tagPolicy, readerName);\n if (hasOwn(options, \"allowedTags\")) values.allowedTags = normalizeAllowedTags(options.allowedTags, readerName);\n if (hasOwn(options, \"tagHandlers\")) values.tagHandlers = normalizeTagHandlers(options.tagHandlers, readerName);\n if (hasOwn(options, \"sourceName\")) values.sourceName = options.sourceName == null ? null : String(options.sourceName);\n if (hasOwn(options, \"maxAliasCount\"))\n {\n if (!Number.isInteger(options.maxAliasCount) || options.maxAliasCount < 0)\n {\n throw new TypeError(`${readerName} maxAliasCount must be a non-negative integer`);\n }\n values.maxAliasCount = options.maxAliasCount;\n }\n if (hasOwn(options, \"uniqueKeys\"))\n {\n values.uniqueKeys = normalizeBoolean(options.uniqueKeys, \"uniqueKeys\", readerName);\n }\n\n for (const name of [ \"idField\", \"refField\", \"valuesField\", \"tagField\", \"valueField\" ])\n {\n if (hasOwn(options, name)) values[name] = normalizeField(options[name], name, readerName);\n }\n\n return values;\n}\n\n/**\n * Converts a YAML node graph into JSON-safe values while preserving references\n * for the YAML document reader.\n */\nexport function toJsonGraph(value, options)\n{\n const counts = new WeakMap();\n const traversed = new WeakSet();\n\n const count = (node) =>\n {\n if (!node || typeof node !== \"object\") return;\n counts.set(node, (counts.get(node) || 0) + 1);\n if (traversed.has(node)) return;\n traversed.add(node);\n if (Array.isArray(node)) node.forEach(count);\n else Object.keys(node).forEach(key => count(node[key]));\n };\n count(value);\n\n const ids = new WeakMap();\n let nextId = 1;\n\n const encode = (node) =>\n {\n if (node === null || typeof node !== \"object\") return node;\n if (ArrayBuffer.isView(node)) return Array.from(node, encode);\n if (node instanceof Date) return node.toISOString();\n\n const repeated = (counts.get(node) || 0) > 1;\n if (ids.has(node)) return { [options.refField]: ids.get(node) };\n\n let id = null;\n if (repeated)\n {\n id = nextId++;\n ids.set(node, id);\n }\n\n if (Array.isArray(node))\n {\n const values = node.map(encode);\n return repeated ? { [options.idField]: id, [options.valuesField]: values } : values;\n }\n\n if (repeated && Object.prototype.hasOwnProperty.call(node, options.idField))\n {\n throw new TypeError(`CjsYamlFormat cannot encode repeated mapping: reserved field \"${options.idField}\" already exists`);\n }\n\n const out = repeated ? { [options.idField]: id } : {};\n for (const key of Object.keys(node)) defineMappingValue(out, key, encode(node[key]));\n return out;\n };\n\n return encode(value);\n}\n"],"names":["OUTPUT_JSON","OUTPUT_PAYLOAD","OUTPUT_RAW","OUTPUT_DOCUMENT","TAG_PRESERVE","TAG_REJECT","TAG_HANDLE","DEFAULT_VALUES","Object","freeze","emit","tagPolicy","allowedTags","tagHandlers","sourceName","maxAliasCount","uniqueKeys","idField","refField","valuesField","tagField","valueField","OPTION_KEYS","Set","keys","hasOwn","value","key","prototype","hasOwnProperty","call","defineMappingValue","target","defineProperty","enumerable","configurable","writable","normalizeEmit","readerName","TypeError","normalizeTagPolicy","normalizeAllowedTags","undefined","Array","isArray","normalizeTagHandlers","Map","tag","handler","entries","normalizeField","name","normalizeBoolean","normalizeValues","base","options","has","values","String","Number","isInteger","toJsonGraph","counts","WeakMap","traversed","WeakSet","count","node","set","get","add","forEach","ids","nextId","encode","ArrayBuffer","isView","from","Date","toISOString","repeated","id","map","out"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"helpers.js","sources":["../../../../../src/formats/yaml/core/helpers.js"],"sourcesContent":["export const OUTPUT_JSON = \"json\";\nexport const OUTPUT_PAYLOAD = \"payload\";\nexport const OUTPUT_RAW = \"raw\";\nexport const OUTPUT_DOCUMENT = \"document\";\n\nexport const TAG_PRESERVE = \"preserve\";\nexport const TAG_REJECT = \"reject\";\nexport const TAG_HANDLE = \"handle\";\n\nexport const DEFAULT_VALUES = Object.freeze({\n emit: OUTPUT_PAYLOAD,\n tagPolicy: TAG_PRESERVE,\n allowedTags: null,\n tagHandlers: Object.freeze({}),\n sourceName: null,\n maxAliasCount: 100,\n uniqueKeys: true,\n idField: \"$yamlId\",\n refField: \"$yamlRef\",\n valuesField: \"$yamlValues\",\n tagField: \"$yamlTag\",\n valueField: \"$yamlValue\"\n});\n\nconst OPTION_KEYS = new Set(Object.keys(DEFAULT_VALUES));\n\n/** Returns true when a value can be decoded as YAML source text. */\nexport function isYamlSourceInput(value)\n{\n return typeof value === \"string\"\n || value instanceof ArrayBuffer\n || ArrayBuffer.isView(value);\n}\n\n/**\n * Converts string or byte input into strict UTF-8 YAML source text while\n * respecting typed-array/DataView bounds.\n */\nexport function toYamlSourceText(value, readerName = \"CjsYamlFormat\")\n{\n if (typeof value === \"string\") return value;\n if (!isYamlSourceInput(value))\n {\n throw new TypeError(`${readerName} input must be a YAML string or byte buffer`);\n }\n const bytes = value instanceof ArrayBuffer\n ? new Uint8Array(value)\n : new Uint8Array(value.buffer, value.byteOffset, value.byteLength);\n try\n {\n return new TextDecoder(\"utf-8\", { fatal: true }).decode(bytes);\n }\n catch (error)\n {\n throw new TypeError(`${readerName} input must contain valid UTF-8 YAML`, { cause: error });\n }\n}\n\nfunction hasOwn(value, key)\n{\n return Object.prototype.hasOwnProperty.call(value, key);\n}\n\nfunction defineMappingValue(target, key, value)\n{\n Object.defineProperty(target, key, {\n value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n}\n\nfunction normalizeEmit(value, readerName)\n{\n if (value === OUTPUT_JSON || value === OUTPUT_PAYLOAD) return value;\n if (value === OUTPUT_RAW || value === OUTPUT_DOCUMENT) return value;\n throw new TypeError(`${readerName} unknown emit value \"${value}\"`);\n}\n\nfunction normalizeTagPolicy(value, readerName)\n{\n if (value === TAG_PRESERVE || value === TAG_REJECT || value === TAG_HANDLE) return value;\n throw new TypeError(`${readerName} unknown tagPolicy value \"${value}\"`);\n}\n\nfunction normalizeAllowedTags(value, readerName)\n{\n if (value === null || value === undefined) return null;\n if (!Array.isArray(value) && !(value instanceof Set))\n {\n throw new TypeError(`${readerName} allowedTags must be an array, Set, or null`);\n }\n return [ ...value ];\n}\n\nfunction normalizeTagHandlers(value, readerName)\n{\n if (value instanceof Map)\n {\n for (const [ tag, handler ] of value)\n {\n if (typeof handler !== \"function\")\n {\n throw new TypeError(`${readerName} tag handler \"${tag}\" must be a function`);\n }\n }\n return new Map(value);\n }\n if (!value || typeof value !== \"object\" || Array.isArray(value))\n {\n throw new TypeError(`${readerName} tagHandlers must be an object or Map`);\n }\n for (const [ tag, handler ] of Object.entries(value))\n {\n if (typeof handler !== \"function\")\n {\n throw new TypeError(`${readerName} tag handler \"${tag}\" must be a function`);\n }\n }\n return { ...value };\n}\n\nfunction normalizeField(value, name, readerName)\n{\n if (typeof value !== \"string\" || !value)\n {\n throw new TypeError(`${readerName} ${name} must be a non-empty string`);\n }\n return value;\n}\n\nfunction normalizeBoolean(value, name, readerName)\n{\n if (typeof value !== \"boolean\") throw new TypeError(`${readerName} ${name} must be a boolean`);\n return value;\n}\n\n/**\n * Normalizes reader options against their supported defaults for the YAML\n * document reader.\n */\nexport function normalizeValues(base, options = {}, readerName = \"CjsYamlFormat\")\n{\n if (!options || typeof options !== \"object\" || Array.isArray(options))\n {\n throw new TypeError(`${readerName} options must be an object`);\n }\n\n for (const key of Object.keys(options))\n {\n if (!OPTION_KEYS.has(key)) throw new TypeError(`${readerName} unknown option \"${key}\"`);\n }\n\n const values = {\n ...base,\n allowedTags: base.allowedTags ? [ ...base.allowedTags ] : null,\n tagHandlers: base.tagHandlers instanceof Map ? new Map(base.tagHandlers) : { ...base.tagHandlers }\n };\n\n if (hasOwn(options, \"emit\")) values.emit = normalizeEmit(options.emit, readerName);\n if (hasOwn(options, \"tagPolicy\")) values.tagPolicy = normalizeTagPolicy(options.tagPolicy, readerName);\n if (hasOwn(options, \"allowedTags\")) values.allowedTags = normalizeAllowedTags(options.allowedTags, readerName);\n if (hasOwn(options, \"tagHandlers\")) values.tagHandlers = normalizeTagHandlers(options.tagHandlers, readerName);\n if (hasOwn(options, \"sourceName\")) values.sourceName = options.sourceName == null ? null : String(options.sourceName);\n if (hasOwn(options, \"maxAliasCount\"))\n {\n if (!Number.isInteger(options.maxAliasCount) || options.maxAliasCount < 0)\n {\n throw new TypeError(`${readerName} maxAliasCount must be a non-negative integer`);\n }\n values.maxAliasCount = options.maxAliasCount;\n }\n if (hasOwn(options, \"uniqueKeys\"))\n {\n values.uniqueKeys = normalizeBoolean(options.uniqueKeys, \"uniqueKeys\", readerName);\n }\n\n for (const name of [ \"idField\", \"refField\", \"valuesField\", \"tagField\", \"valueField\" ])\n {\n if (hasOwn(options, name)) values[name] = normalizeField(options[name], name, readerName);\n }\n\n return values;\n}\n\n/**\n * Converts a YAML node graph into JSON-safe values while preserving references\n * for the YAML document reader.\n */\nexport function toJsonGraph(value, options)\n{\n const counts = new WeakMap();\n const traversed = new WeakSet();\n\n const count = (node) =>\n {\n if (!node || typeof node !== \"object\") return;\n counts.set(node, (counts.get(node) || 0) + 1);\n if (traversed.has(node)) return;\n traversed.add(node);\n if (Array.isArray(node)) node.forEach(count);\n else Object.keys(node).forEach(key => count(node[key]));\n };\n count(value);\n\n const ids = new WeakMap();\n let nextId = 1;\n\n const encode = (node) =>\n {\n if (node === null || typeof node !== \"object\") return node;\n if (ArrayBuffer.isView(node)) return Array.from(node, encode);\n if (node instanceof Date) return node.toISOString();\n\n const repeated = (counts.get(node) || 0) > 1;\n if (ids.has(node)) return { [options.refField]: ids.get(node) };\n\n let id = null;\n if (repeated)\n {\n id = nextId++;\n ids.set(node, id);\n }\n\n if (Array.isArray(node))\n {\n const values = node.map(encode);\n return repeated ? { [options.idField]: id, [options.valuesField]: values } : values;\n }\n\n if (repeated && Object.prototype.hasOwnProperty.call(node, options.idField))\n {\n throw new TypeError(`CjsYamlFormat cannot encode repeated mapping: reserved field \"${options.idField}\" already exists`);\n }\n\n const out = repeated ? { [options.idField]: id } : {};\n for (const key of Object.keys(node)) defineMappingValue(out, key, encode(node[key]));\n return out;\n };\n\n return encode(value);\n}\n"],"names":["OUTPUT_JSON","OUTPUT_PAYLOAD","OUTPUT_RAW","OUTPUT_DOCUMENT","TAG_PRESERVE","TAG_REJECT","TAG_HANDLE","DEFAULT_VALUES","Object","freeze","emit","tagPolicy","allowedTags","tagHandlers","sourceName","maxAliasCount","uniqueKeys","idField","refField","valuesField","tagField","valueField","OPTION_KEYS","Set","keys","isYamlSourceInput","value","ArrayBuffer","isView","toYamlSourceText","readerName","TypeError","bytes","Uint8Array","buffer","byteOffset","byteLength","TextDecoder","fatal","decode","error","cause","hasOwn","key","prototype","hasOwnProperty","call","defineMappingValue","target","defineProperty","enumerable","configurable","writable","normalizeEmit","normalizeTagPolicy","normalizeAllowedTags","undefined","Array","isArray","normalizeTagHandlers","Map","tag","handler","entries","normalizeField","name","normalizeBoolean","normalizeValues","base","options","has","values","String","Number","isInteger","toJsonGraph","counts","WeakMap","traversed","WeakSet","count","node","set","get","add","forEach","ids","nextId","encode","from","Date","toISOString","repeated","id","map","out"],"mappings":"AAAO,MAAMA,WAAW,GAAG;AACpB,MAAMC,cAAc,GAAG;AACvB,MAAMC,UAAU,GAAG;AACnB,MAAMC,eAAe,GAAG;AAExB,MAAMC,YAAY,GAAG;AACrB,MAAMC,UAAU,GAAG;AACnB,MAAMC,UAAU,GAAG;MAEbC,cAAc,GAAGC,MAAM,CAACC,MAAM,CAAC;AACxCC,EAAAA,IAAI,EAAET,cAAc;AACpBU,EAAAA,SAAS,EAAEP,YAAY;AACvBQ,EAAAA,WAAW,EAAE,IAAI;AACjBC,EAAAA,WAAW,EAAEL,MAAM,CAACC,MAAM,CAAC,EAAE,CAAC;AAC9BK,EAAAA,UAAU,EAAE,IAAI;AAChBC,EAAAA,aAAa,EAAE,GAAG;AAClBC,EAAAA,UAAU,EAAE,IAAI;AAChBC,EAAAA,OAAO,EAAE,SAAS;AAClBC,EAAAA,QAAQ,EAAE,UAAU;AACpBC,EAAAA,WAAW,EAAE,aAAa;AAC1BC,EAAAA,QAAQ,EAAE,UAAU;AACpBC,EAAAA,UAAU,EAAE;AAChB,CAAC;AAED,MAAMC,WAAW,GAAG,IAAIC,GAAG,CAACf,MAAM,CAACgB,IAAI,CAACjB,cAAc,CAAC,CAAC;;AAExD;AACO,SAASkB,iBAAiBA,CAACC,KAAK,EACvC;AACI,EAAA,OAAO,OAAOA,KAAK,KAAK,QAAQ,IACzBA,KAAK,YAAYC,WAAW,IAC5BA,WAAW,CAACC,MAAM,CAACF,KAAK,CAAC;AACpC;;AAEA;AACA;AACA;AACA;AACO,SAASG,gBAAgBA,CAACH,KAAK,EAAEI,UAAU,GAAG,eAAe,EACpE;AACI,EAAA,IAAI,OAAOJ,KAAK,KAAK,QAAQ,EAAE,OAAOA,KAAK;AAC3C,EAAA,IAAI,CAACD,iBAAiB,CAACC,KAAK,CAAC,EAC7B;AACI,IAAA,MAAM,IAAIK,SAAS,CAAC,CAAA,EAAGD,UAAU,6CAA6C,CAAC;AACnF,EAAA;EACA,MAAME,KAAK,GAAGN,KAAK,YAAYC,WAAW,GACpC,IAAIM,UAAU,CAACP,KAAK,CAAC,GACrB,IAAIO,UAAU,CAACP,KAAK,CAACQ,MAAM,EAAER,KAAK,CAACS,UAAU,EAAET,KAAK,CAACU,UAAU,CAAC;EACtE,IACA;AACI,IAAA,OAAO,IAAIC,WAAW,CAAC,OAAO,EAAE;AAAEC,MAAAA,KAAK,EAAE;AAAK,KAAC,CAAC,CAACC,MAAM,CAACP,KAAK,CAAC;EAClE,CAAC,CACD,OAAOQ,KAAK,EACZ;AACI,IAAA,MAAM,IAAIT,SAAS,CAAC,CAAA,EAAGD,UAAU,sCAAsC,EAAE;AAAEW,MAAAA,KAAK,EAAED;AAAM,KAAC,CAAC;AAC9F,EAAA;AACJ;AAEA,SAASE,MAAMA,CAAChB,KAAK,EAAEiB,GAAG,EAC1B;EACI,OAAOnC,MAAM,CAACoC,SAAS,CAACC,cAAc,CAACC,IAAI,CAACpB,KAAK,EAAEiB,GAAG,CAAC;AAC3D;AAEA,SAASI,kBAAkBA,CAACC,MAAM,EAAEL,GAAG,EAAEjB,KAAK,EAC9C;AACIlB,EAAAA,MAAM,CAACyC,cAAc,CAACD,MAAM,EAAEL,GAAG,EAAE;IAC/BjB,KAAK;AACLwB,IAAAA,UAAU,EAAE,IAAI;AAChBC,IAAAA,YAAY,EAAE,IAAI;AAClBC,IAAAA,QAAQ,EAAE;AACd,GAAC,CAAC;AACN;AAEA,SAASC,aAAaA,CAAC3B,KAAK,EAAEI,UAAU,EACxC;EACI,IAAIJ,KAAK,KAAK1B,WAAW,IAAI0B,KAAK,KAAKzB,cAAc,EAAE,OAAOyB,KAAK;EACnE,IAAIA,KAAK,KAAKxB,UAAU,IAAIwB,KAAK,KAAKvB,eAAe,EAAE,OAAOuB,KAAK;EACnE,MAAM,IAAIK,SAAS,CAAC,CAAA,EAAGD,UAAU,CAAA,qBAAA,EAAwBJ,KAAK,GAAG,CAAC;AACtE;AAEA,SAAS4B,kBAAkBA,CAAC5B,KAAK,EAAEI,UAAU,EAC7C;AACI,EAAA,IAAIJ,KAAK,KAAKtB,YAAY,IAAIsB,KAAK,KAAKrB,UAAU,IAAIqB,KAAK,KAAKpB,UAAU,EAAE,OAAOoB,KAAK;EACxF,MAAM,IAAIK,SAAS,CAAC,CAAA,EAAGD,UAAU,CAAA,0BAAA,EAA6BJ,KAAK,GAAG,CAAC;AAC3E;AAEA,SAAS6B,oBAAoBA,CAAC7B,KAAK,EAAEI,UAAU,EAC/C;EACI,IAAIJ,KAAK,KAAK,IAAI,IAAIA,KAAK,KAAK8B,SAAS,EAAE,OAAO,IAAI;AACtD,EAAA,IAAI,CAACC,KAAK,CAACC,OAAO,CAAChC,KAAK,CAAC,IAAI,EAAEA,KAAK,YAAYH,GAAG,CAAC,EACpD;AACI,IAAA,MAAM,IAAIQ,SAAS,CAAC,CAAA,EAAGD,UAAU,6CAA6C,CAAC;AACnF,EAAA;EACA,OAAO,CAAE,GAAGJ,KAAK,CAAE;AACvB;AAEA,SAASiC,oBAAoBA,CAACjC,KAAK,EAAEI,UAAU,EAC/C;EACI,IAAIJ,KAAK,YAAYkC,GAAG,EACxB;IACI,KAAK,MAAM,CAAEC,GAAG,EAAEC,OAAO,CAAE,IAAIpC,KAAK,EACpC;AACI,MAAA,IAAI,OAAOoC,OAAO,KAAK,UAAU,EACjC;QACI,MAAM,IAAI/B,SAAS,CAAC,CAAA,EAAGD,UAAU,CAAA,cAAA,EAAiB+B,GAAG,sBAAsB,CAAC;AAChF,MAAA;AACJ,IAAA;AACA,IAAA,OAAO,IAAID,GAAG,CAAClC,KAAK,CAAC;AACzB,EAAA;AACA,EAAA,IAAI,CAACA,KAAK,IAAI,OAAOA,KAAK,KAAK,QAAQ,IAAI+B,KAAK,CAACC,OAAO,CAAChC,KAAK,CAAC,EAC/D;AACI,IAAA,MAAM,IAAIK,SAAS,CAAC,CAAA,EAAGD,UAAU,uCAAuC,CAAC;AAC7E,EAAA;AACA,EAAA,KAAK,MAAM,CAAE+B,GAAG,EAAEC,OAAO,CAAE,IAAItD,MAAM,CAACuD,OAAO,CAACrC,KAAK,CAAC,EACpD;AACI,IAAA,IAAI,OAAOoC,OAAO,KAAK,UAAU,EACjC;MACI,MAAM,IAAI/B,SAAS,CAAC,CAAA,EAAGD,UAAU,CAAA,cAAA,EAAiB+B,GAAG,sBAAsB,CAAC;AAChF,IAAA;AACJ,EAAA;EACA,OAAO;IAAE,GAAGnC;GAAO;AACvB;AAEA,SAASsC,cAAcA,CAACtC,KAAK,EAAEuC,IAAI,EAAEnC,UAAU,EAC/C;AACI,EAAA,IAAI,OAAOJ,KAAK,KAAK,QAAQ,IAAI,CAACA,KAAK,EACvC;IACI,MAAM,IAAIK,SAAS,CAAC,CAAA,EAAGD,UAAU,CAAA,CAAA,EAAImC,IAAI,6BAA6B,CAAC;AAC3E,EAAA;AACA,EAAA,OAAOvC,KAAK;AAChB;AAEA,SAASwC,gBAAgBA,CAACxC,KAAK,EAAEuC,IAAI,EAAEnC,UAAU,EACjD;AACI,EAAA,IAAI,OAAOJ,KAAK,KAAK,SAAS,EAAE,MAAM,IAAIK,SAAS,CAAC,CAAA,EAAGD,UAAU,CAAA,CAAA,EAAImC,IAAI,oBAAoB,CAAC;AAC9F,EAAA,OAAOvC,KAAK;AAChB;;AAEA;AACA;AACA;AACA;AACO,SAASyC,eAAeA,CAACC,IAAI,EAAEC,OAAO,GAAG,EAAE,EAAEvC,UAAU,GAAG,eAAe,EAChF;AACI,EAAA,IAAI,CAACuC,OAAO,IAAI,OAAOA,OAAO,KAAK,QAAQ,IAAIZ,KAAK,CAACC,OAAO,CAACW,OAAO,CAAC,EACrE;AACI,IAAA,MAAM,IAAItC,SAAS,CAAC,CAAA,EAAGD,UAAU,4BAA4B,CAAC;AAClE,EAAA;EAEA,KAAK,MAAMa,GAAG,IAAInC,MAAM,CAACgB,IAAI,CAAC6C,OAAO,CAAC,EACtC;AACI,IAAA,IAAI,CAAC/C,WAAW,CAACgD,GAAG,CAAC3B,GAAG,CAAC,EAAE,MAAM,IAAIZ,SAAS,CAAC,CAAA,EAAGD,UAAU,CAAA,iBAAA,EAAoBa,GAAG,GAAG,CAAC;AAC3F,EAAA;AAEA,EAAA,MAAM4B,MAAM,GAAG;AACX,IAAA,GAAGH,IAAI;AACPxD,IAAAA,WAAW,EAAEwD,IAAI,CAACxD,WAAW,GAAG,CAAE,GAAGwD,IAAI,CAACxD,WAAW,CAAE,GAAG,IAAI;AAC9DC,IAAAA,WAAW,EAAEuD,IAAI,CAACvD,WAAW,YAAY+C,GAAG,GAAG,IAAIA,GAAG,CAACQ,IAAI,CAACvD,WAAW,CAAC,GAAG;AAAE,MAAA,GAAGuD,IAAI,CAACvD;AAAY;GACpG;AAED,EAAA,IAAI6B,MAAM,CAAC2B,OAAO,EAAE,MAAM,CAAC,EAAEE,MAAM,CAAC7D,IAAI,GAAG2C,aAAa,CAACgB,OAAO,CAAC3D,IAAI,EAAEoB,UAAU,CAAC;AAClF,EAAA,IAAIY,MAAM,CAAC2B,OAAO,EAAE,WAAW,CAAC,EAAEE,MAAM,CAAC5D,SAAS,GAAG2C,kBAAkB,CAACe,OAAO,CAAC1D,SAAS,EAAEmB,UAAU,CAAC;AACtG,EAAA,IAAIY,MAAM,CAAC2B,OAAO,EAAE,aAAa,CAAC,EAAEE,MAAM,CAAC3D,WAAW,GAAG2C,oBAAoB,CAACc,OAAO,CAACzD,WAAW,EAAEkB,UAAU,CAAC;AAC9G,EAAA,IAAIY,MAAM,CAAC2B,OAAO,EAAE,aAAa,CAAC,EAAEE,MAAM,CAAC1D,WAAW,GAAG8C,oBAAoB,CAACU,OAAO,CAACxD,WAAW,EAAEiB,UAAU,CAAC;EAC9G,IAAIY,MAAM,CAAC2B,OAAO,EAAE,YAAY,CAAC,EAAEE,MAAM,CAACzD,UAAU,GAAGuD,OAAO,CAACvD,UAAU,IAAI,IAAI,GAAG,IAAI,GAAG0D,MAAM,CAACH,OAAO,CAACvD,UAAU,CAAC;AACrH,EAAA,IAAI4B,MAAM,CAAC2B,OAAO,EAAE,eAAe,CAAC,EACpC;AACI,IAAA,IAAI,CAACI,MAAM,CAACC,SAAS,CAACL,OAAO,CAACtD,aAAa,CAAC,IAAIsD,OAAO,CAACtD,aAAa,GAAG,CAAC,EACzE;AACI,MAAA,MAAM,IAAIgB,SAAS,CAAC,CAAA,EAAGD,UAAU,+CAA+C,CAAC;AACrF,IAAA;AACAyC,IAAAA,MAAM,CAACxD,aAAa,GAAGsD,OAAO,CAACtD,aAAa;AAChD,EAAA;AACA,EAAA,IAAI2B,MAAM,CAAC2B,OAAO,EAAE,YAAY,CAAC,EACjC;AACIE,IAAAA,MAAM,CAACvD,UAAU,GAAGkD,gBAAgB,CAACG,OAAO,CAACrD,UAAU,EAAE,YAAY,EAAEc,UAAU,CAAC;AACtF,EAAA;AAEA,EAAA,KAAK,MAAMmC,IAAI,IAAI,CAAE,SAAS,EAAE,UAAU,EAAE,aAAa,EAAE,UAAU,EAAE,YAAY,CAAE,EACrF;IACI,IAAIvB,MAAM,CAAC2B,OAAO,EAAEJ,IAAI,CAAC,EAAEM,MAAM,CAACN,IAAI,CAAC,GAAGD,cAAc,CAACK,OAAO,CAACJ,IAAI,CAAC,EAAEA,IAAI,EAAEnC,UAAU,CAAC;AAC7F,EAAA;AAEA,EAAA,OAAOyC,MAAM;AACjB;;AAEA;AACA;AACA;AACA;AACO,SAASI,WAAWA,CAACjD,KAAK,EAAE2C,OAAO,EAC1C;AACI,EAAA,MAAMO,MAAM,GAAG,IAAIC,OAAO,EAAE;AAC5B,EAAA,MAAMC,SAAS,GAAG,IAAIC,OAAO,EAAE;EAE/B,MAAMC,KAAK,GAAIC,IAAI,IACnB;AACI,IAAA,IAAI,CAACA,IAAI,IAAI,OAAOA,IAAI,KAAK,QAAQ,EAAE;AACvCL,IAAAA,MAAM,CAACM,GAAG,CAACD,IAAI,EAAE,CAACL,MAAM,CAACO,GAAG,CAACF,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC7C,IAAA,IAAIH,SAAS,CAACR,GAAG,CAACW,IAAI,CAAC,EAAE;AACzBH,IAAAA,SAAS,CAACM,GAAG,CAACH,IAAI,CAAC;AACnB,IAAA,IAAIxB,KAAK,CAACC,OAAO,CAACuB,IAAI,CAAC,EAAEA,IAAI,CAACI,OAAO,CAACL,KAAK,CAAC,CAAC,KACxCxE,MAAM,CAACgB,IAAI,CAACyD,IAAI,CAAC,CAACI,OAAO,CAAC1C,GAAG,IAAIqC,KAAK,CAACC,IAAI,CAACtC,GAAG,CAAC,CAAC,CAAC;EAC3D,CAAC;EACDqC,KAAK,CAACtD,KAAK,CAAC;AAEZ,EAAA,MAAM4D,GAAG,GAAG,IAAIT,OAAO,EAAE;EACzB,IAAIU,MAAM,GAAG,CAAC;EAEd,MAAMC,MAAM,GAAIP,IAAI,IACpB;IACI,IAAIA,IAAI,KAAK,IAAI,IAAI,OAAOA,IAAI,KAAK,QAAQ,EAAE,OAAOA,IAAI;AAC1D,IAAA,IAAItD,WAAW,CAACC,MAAM,CAACqD,IAAI,CAAC,EAAE,OAAOxB,KAAK,CAACgC,IAAI,CAACR,IAAI,EAAEO,MAAM,CAAC;IAC7D,IAAIP,IAAI,YAAYS,IAAI,EAAE,OAAOT,IAAI,CAACU,WAAW,EAAE;AAEnD,IAAA,MAAMC,QAAQ,GAAG,CAAChB,MAAM,CAACO,GAAG,CAACF,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;AAC5C,IAAA,IAAIK,GAAG,CAAChB,GAAG,CAACW,IAAI,CAAC,EAAE,OAAO;MAAE,CAACZ,OAAO,CAACnD,QAAQ,GAAGoE,GAAG,CAACH,GAAG,CAACF,IAAI;KAAG;IAE/D,IAAIY,EAAE,GAAG,IAAI;AACb,IAAA,IAAID,QAAQ,EACZ;MACIC,EAAE,GAAGN,MAAM,EAAE;AACbD,MAAAA,GAAG,CAACJ,GAAG,CAACD,IAAI,EAAEY,EAAE,CAAC;AACrB,IAAA;AAEA,IAAA,IAAIpC,KAAK,CAACC,OAAO,CAACuB,IAAI,CAAC,EACvB;AACI,MAAA,MAAMV,MAAM,GAAGU,IAAI,CAACa,GAAG,CAACN,MAAM,CAAC;AAC/B,MAAA,OAAOI,QAAQ,GAAG;AAAE,QAAA,CAACvB,OAAO,CAACpD,OAAO,GAAG4E,EAAE;QAAE,CAACxB,OAAO,CAAClD,WAAW,GAAGoD;AAAO,OAAC,GAAGA,MAAM;AACvF,IAAA;AAEA,IAAA,IAAIqB,QAAQ,IAAIpF,MAAM,CAACoC,SAAS,CAACC,cAAc,CAACC,IAAI,CAACmC,IAAI,EAAEZ,OAAO,CAACpD,OAAO,CAAC,EAC3E;MACI,MAAM,IAAIc,SAAS,CAAC,CAAA,8DAAA,EAAiEsC,OAAO,CAACpD,OAAO,kBAAkB,CAAC;AAC3H,IAAA;IAEA,MAAM8E,GAAG,GAAGH,QAAQ,GAAG;MAAE,CAACvB,OAAO,CAACpD,OAAO,GAAG4E;KAAI,GAAG,EAAE;IACrD,KAAK,MAAMlD,GAAG,IAAInC,MAAM,CAACgB,IAAI,CAACyD,IAAI,CAAC,EAAElC,kBAAkB,CAACgD,GAAG,EAAEpD,GAAG,EAAE6C,MAAM,CAACP,IAAI,CAACtC,GAAG,CAAC,CAAC,CAAC;AACpF,IAAA,OAAOoD,GAAG;EACd,CAAC;EAED,OAAOP,MAAM,CAAC9D,KAAK,CAAC;AACxB;;;;"}
|
package/dist/index.js
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
export { CjsResource } from './resource/CjsResource.js';
|
|
2
|
+
export { CjsLoadingObject } from './resource/CjsLoadingObject.js';
|
|
3
|
+
export { ResourceHandlerMode } from './resource/ResourceHandlerMode.js';
|
|
2
4
|
export { Tr2LightProfileRes } from './resource/Tr2LightProfileRes.js';
|
|
3
5
|
export { AudioGeometryResData } from './resource/audio/AudioGeometryResData.js';
|
|
4
6
|
export { CjsAudioBufferRes } from './resource/audio/CjsAudioBufferRes.js';
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { CjsResource } from './CjsResource.js';
|
|
2
|
+
import { ResourceHandlerMode } from './ResourceHandlerMode.js';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Resource-compatible handler whose public loading result is the constructed
|
|
6
|
+
* object produced by an extension route.
|
|
7
|
+
*
|
|
8
|
+
* The handler reuses CjsResource lifecycle, queue, reload, and payload
|
|
9
|
+
* retention mechanics. CjsResMan keeps the handler internal to its canonical
|
|
10
|
+
* cache while `GetObject()` and path-only `Fetch()` expose its payload.
|
|
11
|
+
*/
|
|
12
|
+
class CjsLoadingObject extends CjsResource {
|
|
13
|
+
/** The handler borrows resource mechanics but is not itself a domain resource. */
|
|
14
|
+
static isResource = false;
|
|
15
|
+
static handlerMode = ResourceHandlerMode.OBJECT;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
export { CjsLoadingObject };
|
|
19
|
+
//# sourceMappingURL=CjsLoadingObject.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CjsLoadingObject.js","sources":["../../../src/resource/CjsLoadingObject.js"],"sourcesContent":["import { CjsResource } from \"./CjsResource.js\";\nimport { ResourceHandlerMode } from \"./ResourceHandlerMode.js\";\n\n/**\n * Resource-compatible handler whose public loading result is the constructed\n * object produced by an extension route.\n *\n * The handler reuses CjsResource lifecycle, queue, reload, and payload\n * retention mechanics. CjsResMan keeps the handler internal to its canonical\n * cache while `GetObject()` and path-only `Fetch()` expose its payload.\n */\nexport class CjsLoadingObject extends CjsResource\n{\n /** The handler borrows resource mechanics but is not itself a domain resource. */\n static isResource = false;\n\n static handlerMode = ResourceHandlerMode.OBJECT;\n}\n\nexport default CjsLoadingObject;\n"],"names":["CjsLoadingObject","CjsResource","isResource","handlerMode","ResourceHandlerMode","OBJECT"],"mappings":";;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMA,gBAAgB,SAASC,WAAW,CACjD;AACE;EACA,OAAOC,UAAU,GAAG,KAAK;AAEzB,EAAA,OAAOC,WAAW,GAAGC,mBAAmB,CAACC,MAAM;AACjD;;;;"}
|