@carbonenginejs/runtime-resource 0.13.0 → 0.15.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/LICENSE +21 -21
- package/NOTICE +32 -32
- package/README.md +129 -129
- package/dist/CjsMotherLode.js +1271 -1271
- package/dist/CjsResMan.js +3858 -3858
- package/dist/CjsResManFetchProvider.js +94 -94
- package/dist/CjsResManWorkQueue.js +301 -301
- package/dist/_virtual/_rollupPluginBabelHelpers.js +150 -150
- package/dist/format/CjsBlueReader.js +358 -358
- package/dist/format/CjsByteReader.js +310 -310
- package/dist/format/CjsByteWriter.js +242 -242
- package/dist/format/CjsFormat.js +223 -223
- package/dist/format/CjsFormatError.js +41 -41
- package/dist/format/CjsReader.js +22 -22
- package/dist/format/CjsResourceProbe.js +279 -279
- package/dist/format/CjsStringTable.js +268 -268
- package/dist/format/carbonEffect/CjsCarbonEffectReader.js +265 -265
- package/dist/format/carbonEffect/CjsCarbonEffectWriter.js +373 -373
- package/dist/format/carbonEffect/buildCarbonEffectContainer.js +182 -182
- package/dist/format/carbonEffect/carbonEffectBackendBlock.js +321 -321
- package/dist/format/carbonEffect/carbonEffectRecords.js +1147 -1147
- package/dist/format/carbonEffect/carbonEffectResourceTransform.js +197 -197
- package/dist/format/compareUtf8.js +36 -36
- package/dist/format/effect/effectBodyInventory.js +146 -146
- package/dist/format/effect/effectPermutationGraph.js +257 -257
- package/dist/format/effect/sha256.js +114 -114
- package/dist/format/index.js +11 -11
- package/dist/format/payloadContract.js +193 -193
- package/dist/formats/black/CjsBlackFormat.js +310 -310
- package/dist/formats/black/core/CjsBlackBinaryReader.js +260 -260
- package/dist/formats/black/core/CjsBlackPropertyReaders.js +448 -448
- package/dist/formats/black/core/CjsBlackReader.js +764 -764
- package/dist/formats/black/core/CjsBlackSchemaRegistry.js +540 -540
- package/dist/formats/black/core/black-schema-v1-2026-07-23.json.js +4 -4
- package/dist/formats/black/core/blackConstants.js +7 -7
- package/dist/formats/black/core/blackDefinitions.js +10 -10
- package/dist/formats/black/core/blackEnums.js +6 -6
- package/dist/formats/black/core/blackSchema.js +3 -3
- package/dist/formats/black/core/blackVersion.js +22 -22
- package/dist/formats/black/core/helpers.js +199 -199
- package/dist/formats/black/core/schema.js +4 -4
- package/dist/formats/black/index.js +2 -2
- package/dist/formats/bnk/CjsBnkFormat.js +175 -175
- package/dist/formats/bnk/core/busNodes.js +252 -252
- package/dist/formats/bnk/core/effectNodes.js +147 -147
- package/dist/formats/bnk/core/eventAction.js +416 -416
- package/dist/formats/bnk/core/globalSettings.js +215 -215
- package/dist/formats/bnk/core/graph.js +137 -137
- package/dist/formats/bnk/core/helpers.js +512 -512
- package/dist/formats/bnk/core/musicNodes.js +540 -540
- package/dist/formats/bnk/core/nodeBase.js +553 -553
- package/dist/formats/bnk/core/sfxNodes.js +632 -632
- package/dist/formats/bnk/core/soundbanksInfo.js +209 -209
- package/dist/formats/bnk/index.js +2 -2
- package/dist/formats/cmf/CjsCmfFormat.js +497 -497
- package/dist/formats/cmf/core/binary.js +194 -194
- package/dist/formats/cmf/core/buffers.js +237 -237
- package/dist/formats/cmf/core/constants.js +47 -47
- package/dist/formats/cmf/core/gr2Anim.js +453 -453
- package/dist/formats/cmf/core/helpers.js +318 -318
- package/dist/formats/cmf/core/pack.js +276 -276
- package/dist/formats/cmf/core/schema.js +374 -374
- package/dist/formats/cmf/core/shared.js +277 -277
- package/dist/formats/cmf/core/writer.js +571 -571
- package/dist/formats/cmf/index.js +2 -2
- package/dist/formats/dds/CjsDdsFormat.js +200 -200
- package/dist/formats/dds/core/bc6h.js +298 -298
- package/dist/formats/dds/core/bc7.js +272 -272
- package/dist/formats/dds/core/helpers.js +901 -862
- package/dist/formats/dds/core/helpers.js.map +1 -1
- package/dist/formats/dds/index.js +2 -2
- package/dist/formats/dxbc/CjsDxbcFormat.js +187 -142
- package/dist/formats/dxbc/CjsDxbcFormat.js.map +1 -1
- package/dist/formats/dxbc/core/DxbcReader.js +266 -266
- package/dist/formats/dxbc/core/container.js +169 -169
- package/dist/formats/dxbc/core/decoder.js +789 -789
- package/dist/formats/dxbc/core/disassemble.js +240 -0
- package/dist/formats/dxbc/core/disassemble.js.map +1 -0
- package/dist/formats/dxbc/core/errors.js +19 -19
- package/dist/formats/dxbc/core/helpers.js +220 -220
- package/dist/formats/dxbc/core/opcodes.js +45 -45
- package/dist/formats/dxbc/core/program.js +91 -91
- package/dist/formats/dxbc/core/signature.js +172 -172
- package/dist/formats/dxbc/index.js +2 -2
- package/dist/formats/fbx/CjsFbxFormat.js +266 -266
- package/dist/formats/fbx/core/helpers.js +3932 -3932
- package/dist/formats/fbx/index.js +2 -2
- package/dist/formats/flac/CjsFlacFormat.js +142 -142
- package/dist/formats/flac/core/helpers.js +315 -315
- package/dist/formats/flac/index.js +2 -2
- package/dist/formats/gif/CjsGifFormat.js +141 -141
- package/dist/formats/gif/core/helpers.js +380 -380
- package/dist/formats/gif/index.js +2 -2
- package/dist/formats/gltf/CjsGltfFormat.js +252 -290
- package/dist/formats/gltf/CjsGltfFormat.js.map +1 -1
- package/dist/formats/gltf/core/helpers.js +287 -307
- package/dist/formats/gltf/core/helpers.js.map +1 -1
- package/dist/formats/gltf/core/json.js +79 -79
- package/dist/formats/gltf/core/parser.js +679 -679
- package/dist/formats/gltf/core/targets.js +173 -173
- package/dist/formats/gltf/index.js +2 -2
- package/dist/formats/gr2/CjsGr2Format.js +289 -289
- package/dist/formats/gr2/core/bitknit2.js +282 -282
- package/dist/formats/gr2/core/curves.js +1047 -1047
- package/dist/formats/gr2/core/gsf.js +72 -72
- package/dist/formats/gr2/core/helpers.js +352 -352
- package/dist/formats/gr2/core/json.js +622 -622
- package/dist/formats/gr2/core/oodle1.js +388 -388
- package/dist/formats/gr2/core/tangents.js +48 -48
- package/dist/formats/gr2/core/targets.js +361 -361
- package/dist/formats/gr2/index.js +2 -2
- package/dist/formats/hlsl/CjsHlslFormat.js +233 -254
- package/dist/formats/hlsl/CjsHlslFormat.js.map +1 -1
- package/dist/formats/hlsl/core/HlslBinaryUtils.js +15 -15
- package/dist/formats/hlsl/core/HlslEffectReadError.js +19 -19
- package/dist/formats/hlsl/core/HlslEffectStateManager.js +130 -130
- package/dist/formats/hlsl/core/HlslRenderStateSetup.js +37 -37
- package/dist/formats/hlsl/core/HlslResourceSetDescription.js +94 -94
- package/dist/formats/hlsl/core/HlslShaderBytecode.js +44 -44
- package/dist/formats/hlsl/core/analysis.js +51 -51
- package/dist/formats/hlsl/core/carbonDescriptionToRuntime.js +850 -850
- package/dist/formats/hlsl/core/detailMapFamily.js +128 -128
- package/dist/formats/hlsl/core/helpers.js +270 -270
- package/dist/formats/hlsl/core/json.js +284 -284
- package/dist/formats/hlsl/core/localLightFamily.js +133 -133
- package/dist/formats/hlsl/core/metadata.js +327 -327
- package/dist/formats/hlsl/core/render-states.js +280 -280
- package/dist/formats/hlsl/core/tr2/HlslRenderContextEnum.js +43 -43
- package/dist/formats/hlsl/core/tr2/resources/HlslEffectRes.js +320 -320
- package/dist/formats/hlsl/core/tr2/resources/HlslShaderPermutation.js +33 -33
- package/dist/formats/hlsl/core/tr2/shader/HlslEffectBindingManifest.js +423 -416
- package/dist/formats/hlsl/core/tr2/shader/HlslEffectBindingManifest.js.map +1 -1
- package/dist/formats/hlsl/core/tr2/shader/HlslEffectConstant.js +40 -40
- package/dist/formats/hlsl/core/tr2/shader/HlslEffectDescription.js +62 -62
- package/dist/formats/hlsl/core/tr2/shader/HlslEffectLibrary.js +52 -52
- package/dist/formats/hlsl/core/tr2/shader/HlslEffectParameterAnnotation.js +38 -38
- package/dist/formats/hlsl/core/tr2/shader/HlslEffectResource.js +50 -50
- package/dist/formats/hlsl/core/tr2/shader/HlslEffectStageInput.js +86 -86
- package/dist/formats/hlsl/core/tr2/shader/HlslEffectTechnique.js +31 -31
- package/dist/formats/hlsl/core/tr2/shader/HlslPass.js +42 -42
- package/dist/formats/hlsl/core/tr2/shader/HlslSamplerDescription.js +55 -55
- package/dist/formats/hlsl/core/tr2/shader/HlslSamplerSetup.js +29 -29
- package/dist/formats/hlsl/core/tr2/shader/HlslShader.js +220 -220
- package/dist/formats/hlsl/core/tr2/shader/HlslShaderOption.js +30 -30
- package/dist/formats/hlsl/index.js +3 -3
- package/dist/formats/index.js +33 -33
- package/dist/formats/jpeg/CjsJpegFormat.js +212 -212
- package/dist/formats/jpeg/core/helpers.js +402 -402
- package/dist/formats/jpeg/core/jpeg.js +480 -480
- package/dist/formats/jpeg/index.js +2 -2
- package/dist/formats/mp3/CjsMp3Format.js +197 -197
- package/dist/formats/mp3/core/helpers.js +375 -375
- package/dist/formats/mp3/index.js +2 -2
- package/dist/formats/mp4/CjsMp4Format.js +197 -197
- package/dist/formats/mp4/core/helpers.js +484 -484
- package/dist/formats/mp4/index.js +2 -2
- package/dist/formats/obj/CjsObjFormat.js +232 -253
- package/dist/formats/obj/CjsObjFormat.js.map +1 -1
- package/dist/formats/obj/core/helpers.js +553 -573
- package/dist/formats/obj/core/helpers.js.map +1 -1
- package/dist/formats/obj/core/json.js +64 -64
- package/dist/formats/obj/core/parser.js +321 -321
- package/dist/formats/obj/index.js +2 -2
- package/dist/formats/ogg/CjsOggFormat.js +143 -143
- package/dist/formats/ogg/core/helpers.js +410 -410
- package/dist/formats/ogg/core/imdct.js +178 -178
- package/dist/formats/ogg/core/vorbis.js +1017 -1017
- package/dist/formats/ogg/index.js +2 -2
- package/dist/formats/pickle/CjsPickleFormat.js +214 -214
- package/dist/formats/pickle/core/CjsPickleProtocol0Reader.js +551 -551
- package/dist/formats/pickle/index.js +2 -2
- package/dist/formats/png/CjsPngFormat.js +201 -201
- package/dist/formats/png/core/helpers.js +635 -635
- package/dist/formats/png/index.js +2 -2
- package/dist/formats/red/CjsRedFormat.js +263 -263
- package/dist/formats/red/core/CjsRedReader.js +246 -246
- package/dist/formats/red/core/blackDefinitions.js +3 -3
- package/dist/formats/red/core/helpers.js +158 -158
- package/dist/formats/red/core/redGraph.js +71 -71
- package/dist/formats/red/core/schema.js +4 -4
- package/dist/formats/red/index.js +2 -2
- package/dist/formats/stl/CjsStlFormat.js +320 -365
- package/dist/formats/stl/CjsStlFormat.js.map +1 -1
- package/dist/formats/stl/core/helpers.js +241 -261
- package/dist/formats/stl/core/helpers.js.map +1 -1
- package/dist/formats/stl/core/json.js +51 -51
- package/dist/formats/stl/core/stl.js +642 -642
- package/dist/formats/stl/core/targets.js +173 -173
- package/dist/formats/stl/index.js +2 -2
- package/dist/formats/tga/CjsTgaFormat.js +197 -197
- package/dist/formats/tga/core/helpers.js +493 -493
- package/dist/formats/tga/index.js +2 -2
- package/dist/formats/wav/CjsWavFormat.js +198 -198
- package/dist/formats/wav/core/helpers.js +365 -365
- package/dist/formats/wav/index.js +2 -2
- package/dist/formats/webgl/CjsWebglFormat.js +199 -199
- package/dist/formats/webgl/core/buildGlslEffectContainer.js +70 -70
- package/dist/formats/webgl/core/effectPackage.js +900 -900
- package/dist/formats/webgl/core/errors.js +27 -27
- package/dist/formats/webgl/core/glsl/DxbcGlslEmitter.js +2820 -2820
- package/dist/formats/webgl/core/glsl/DxbcGlslHelpers.js +89 -89
- package/dist/formats/webgl/core/glsl/DxbcGlslOperandFormatter.js +486 -486
- package/dist/formats/webgl/core/glsl/packedLightFixups.js +98 -98
- package/dist/formats/webgl/core/glslBackendBlock.js +552 -552
- package/dist/formats/webgl/core/glslBackendBodySet.js +243 -243
- package/dist/formats/webgl/core/glslEffectCompleteness.js +85 -85
- package/dist/formats/webgl/core/glslEffectCompleteness.js.map +1 -1
- package/dist/formats/webgl/core/helpers.js +167 -167
- package/dist/formats/webgl/core/inspectGlslEffectContainer.js +122 -122
- package/dist/formats/webgl/core/readGlslEffectContainer.js +202 -256
- package/dist/formats/webgl/core/readGlslEffectContainer.js.map +1 -1
- package/dist/formats/webgl/index.js +2 -2
- package/dist/formats/webgpu/CjsWebgpuFormat.js +357 -357
- package/dist/formats/webgpu/core/buildCarbonEffectContainer.js +89 -89
- package/dist/formats/webgpu/core/carbonWebgpu/CarbonWebgpuContainer.js +354 -354
- package/dist/formats/webgpu/core/carbonWebgpu/containerViews.js +355 -355
- package/dist/formats/webgpu/core/carbonWebgpu/validateContainer.js +90 -90
- package/dist/formats/webgpu/core/effectAnalysis.js +82 -82
- package/dist/formats/webgpu/core/effectBackendBodySet.js +306 -306
- package/dist/formats/webgpu/core/errors.js +20 -20
- package/dist/formats/webgpu/core/helpers.js +443 -443
- package/dist/formats/webgpu/core/ir/analyzeRegisterValues.js +212 -212
- package/dist/formats/webgpu/core/ir/buildControlFlow.js +220 -220
- package/dist/formats/webgpu/core/ir/indexableTemps.js +137 -137
- package/dist/formats/webgpu/core/ir/inferValueTypes.js +449 -449
- package/dist/formats/webgpu/core/ir/lowerDxbcToIr.js +494 -494
- package/dist/formats/webgpu/core/ir/resolveRegisterFlow.js +177 -177
- package/dist/formats/webgpu/core/ir/sourceLanes.js +61 -61
- package/dist/formats/webgpu/core/packageEffect.js +381 -381
- package/dist/formats/webgpu/core/packageEffectSelection.js +164 -164
- package/dist/formats/webgpu/core/packageMetadata.js +17 -17
- package/dist/formats/webgpu/core/schema.js +4 -4
- package/dist/formats/webgpu/core/wgsl/buildResourceTransformPlan.js +263 -263
- package/dist/formats/webgpu/core/wgsl/buildWgslBindingPlan.js +172 -172
- package/dist/formats/webgpu/core/wgsl/buildWgslSet.js +325 -325
- package/dist/formats/webgpu/core/wgsl/emitWgsl.js +356 -356
- package/dist/formats/webgpu/core/wgsl/hoistEscapingValues.js +77 -77
- package/dist/formats/webgpu/core/wgsl/lowerBindingLayout.js +451 -451
- package/dist/formats/webgpu/core/wgsl/lowerComputeProgram.js +735 -735
- package/dist/formats/webgpu/core/wgsl/lowerCreateHistogramsComputeProgram.js +457 -457
- package/dist/formats/webgpu/core/wgsl/lowerFragmentProgram.js +1572 -1572
- package/dist/formats/webgpu/core/wgsl/lowerMergeHistogramsComputeProgram.js +659 -659
- package/dist/formats/webgpu/core/wgsl/lowerParticleClearComputePrograms.js +734 -734
- package/dist/formats/webgpu/core/wgsl/lowerParticleEmitComputeProgram.js +583 -583
- package/dist/formats/webgpu/core/wgsl/lowerSkinVerticesComputeProgram.js +621 -621
- package/dist/formats/webgpu/core/wgsl/lowerSortComputeProgram.js +824 -824
- package/dist/formats/webgpu/core/wgsl/lowerSortInnerComputeProgram.js +697 -697
- package/dist/formats/webgpu/core/wgsl/lowerSortStepComputeProgram.js +559 -559
- package/dist/formats/webgpu/core/wgsl/lowerVertexProgram.js +1328 -1328
- package/dist/formats/webgpu/core/wgsl/particleEmitSemanticDigest.js +110 -110
- package/dist/formats/webgpu/core/wgsl/precisionControls.js +55 -55
- package/dist/formats/webgpu/core/wgsl/selectionPlans.js +717 -717
- package/dist/formats/webgpu/core/wgsl/uniformity.js +78 -78
- package/dist/formats/webgpu/core/wgsl/validateExactComputeIr.js +196 -196
- package/dist/formats/webgpu/core/wgsl/validateHandleOperand.js +37 -37
- package/dist/formats/webgpu/index.js +2 -2
- package/dist/formats/webm/CjsWebmFormat.js +197 -197
- package/dist/formats/webm/core/helpers.js +572 -572
- package/dist/formats/webm/index.js +2 -2
- package/dist/formats/webp/CjsWebpFormat.js +140 -140
- package/dist/formats/webp/core/helpers.js +237 -237
- package/dist/formats/webp/index.js +2 -2
- package/dist/formats/wem/CjsWemFormat.js +250 -250
- package/dist/formats/wem/core/bitStream.js +261 -261
- package/dist/formats/wem/core/codebookLibrary.js +164 -164
- package/dist/formats/wem/core/helpers.js +437 -437
- package/dist/formats/wem/core/packedCodebooksAotuv603.js +30 -30
- package/dist/formats/wem/core/ptadpcm.js +77 -77
- package/dist/formats/wem/core/resolve.js +121 -121
- package/dist/formats/wem/core/wemToOgg.js +485 -485
- package/dist/formats/wem/index.js +2 -2
- package/dist/formats/yaml/CjsYamlFormat.js +134 -134
- package/dist/formats/yaml/core/CjsYamlReader.js +400 -400
- package/dist/formats/yaml/core/helpers.js +196 -196
- package/dist/formats/yaml/index.js +2 -2
- package/dist/index.js +64 -64
- package/dist/resource/CjsLoadingObject.js +19 -19
- package/dist/resource/CjsResource.js +801 -801
- package/dist/resource/ResourceHandlerMode.js +14 -14
- package/dist/resource/Tr2LightProfileRes.js +32 -32
- package/dist/resource/audio/AudioGeometryResData.js +47 -47
- package/dist/resource/audio/CjsAudioBufferRes.js +86 -86
- package/dist/resource/audio/CjsAudioRes.js +213 -213
- package/dist/resource/audio/index.js +4 -4
- package/dist/resource/geometry/MeshDecalData.js +37 -37
- package/dist/resource/geometry/MeshDecalLodData.js +34 -34
- package/dist/resource/geometry/TriGeometryRes.js +570 -467
- package/dist/resource/geometry/TriGeometryRes.js.map +1 -1
- package/dist/resource/geometry/TriGeometryResAreaData.js +59 -59
- package/dist/resource/geometry/TriGeometryResJointData.js +38 -38
- package/dist/resource/geometry/TriGeometryResLodData.js +88 -88
- package/dist/resource/geometry/TriGeometryResMeshData.js +63 -63
- package/dist/resource/geometry/TriGeometryResSkeletonData.js +34 -34
- package/dist/resource/geometry/TriJointBinding.js +38 -38
- package/dist/resource/geometry/TriMorphTargetGeometryConstants.js +46 -46
- package/dist/resource/geometry/TriRtGeometryConstants.js +88 -88
- package/dist/resource/geometry/granny/GStateBindingCallbackData.js +31 -31
- package/dist/resource/geometry/granny/Tr2GrannyIntersectionResult.js +60 -60
- package/dist/resource/geometry/granny/Tr2GrannyStateRes.js +36 -36
- package/dist/resource/geometry/granny/TriGrannyRes.js +35 -35
- package/dist/resource/geometry/granny/enums.js +10 -10
- package/dist/resource/geometry/granny/index.js +6 -6
- package/dist/resource/geometry/index.js +17 -17
- package/dist/resource/index.js +54 -54
- package/dist/resource/resourceBoundary.js +64 -64
- package/dist/resource/shader/Tr2EffectRes.js +336 -336
- package/dist/resource/shader/Tr2MaterialArea.js +31 -31
- package/dist/resource/shader/Tr2MaterialMesh.js +27 -27
- package/dist/resource/shader/Tr2MaterialRes.js +31 -31
- package/dist/resource/shader/Tr2Shader.js +283 -283
- package/dist/resource/shader/Tr2ShaderPermutation.js +43 -43
- package/dist/resource/shader/index.js +17 -17
- package/dist/resource/shader/reflection/Tr2EffectConstant.js +143 -143
- package/dist/resource/shader/reflection/Tr2EffectDefine.js +30 -30
- package/dist/resource/shader/reflection/Tr2EffectDescription.js +114 -114
- package/dist/resource/shader/reflection/Tr2EffectLibrary.js +168 -168
- package/dist/resource/shader/reflection/Tr2EffectParameterAnnotation.js +125 -125
- package/dist/resource/shader/reflection/Tr2EffectResource.js +120 -120
- package/dist/resource/shader/reflection/Tr2EffectStageInput.js +372 -372
- package/dist/resource/shader/reflection/Tr2EffectTechnique.js +78 -78
- package/dist/resource/shader/reflection/Tr2Pass.js +168 -168
- package/dist/resource/shader/reflection/carbonRecordFields.js +159 -159
- package/dist/resource/shader/reflection/shaderStage.js +22 -22
- package/dist/resource/shader/sampler/Tr2SamplerSetup.js +135 -135
- package/dist/resource/texture/CjsTextureArrayRes.js +472 -472
- package/dist/resource/texture/CjsTextureArrayResParameterProxy.js +179 -179
- package/dist/resource/texture/Tr2ImageRes.js +120 -120
- package/dist/resource/texture/Tr2TextureLodManager.js +82 -82
- package/dist/resource/texture/Tr2TextureLodUpdateRequest.js +37 -37
- package/dist/resource/texture/Tr2TexturePackChannel.js +37 -37
- package/dist/resource/texture/Tr2TexturePipeline.js +54 -54
- package/dist/resource/texture/Tr2TexturePipelineParams.js +34 -34
- package/dist/resource/texture/Tr2TexturePipelineStepCompress.js +40 -40
- package/dist/resource/texture/Tr2TexturePipelineStepGenerateMips.js +22 -22
- package/dist/resource/texture/Tr2TexturePipelineStepLimitSize.js +34 -34
- package/dist/resource/texture/Tr2TexturePipelineStepLoad.js +31 -31
- package/dist/resource/texture/Tr2TexturePipelineStepPack.js +43 -43
- package/dist/resource/texture/TriTextureRes.js +359 -359
- package/dist/resource/texture/index.js +15 -15
- package/dist/resource/texture/texturePipelineBehavior.js +308 -308
- package/dist/worker/CjsResManMainThreadLoader.js +89 -89
- package/dist/worker/CjsResManWorker.js +218 -218
- package/dist/worker/CjsResManWorkerLoader.js +437 -437
- package/dist/worker/protocol.js +12 -12
- package/docs/README.md +98 -98
- package/docs/architecture.md +118 -118
- package/docs/concepts/resource-lifecycle.md +226 -226
- package/docs/concepts/shader-resource-model.md +111 -111
- package/docs/concepts/writing-an-engine-adapter.md +115 -115
- package/docs/formats/README.md +138 -138
- package/docs/formats/carbon-effect-container.md +553 -553
- package/docs/formats/dxbc/README.md +68 -68
- package/docs/formats/dxbc/architecture.md +80 -80
- package/docs/formats/dxbc/reference/api.md +105 -77
- package/docs/formats/dxbc/reference/classes/README.md +9 -9
- package/docs/formats/dxbc/reference/decoded-output.md +122 -122
- package/docs/formats/gr2.md +160 -160
- package/docs/formats/hlsl/README.md +54 -54
- package/docs/formats/hlsl/architecture.md +66 -65
- package/docs/formats/hlsl/guides/hydrating-json-output.md +60 -60
- package/docs/formats/hlsl/guides/reading-effects.md +68 -64
- package/docs/formats/hlsl/reference/advanced-analysis.md +61 -61
- package/docs/formats/hlsl/reference/api.md +91 -92
- package/docs/formats/hlsl/reference/classes/README.md +11 -11
- package/docs/formats/hlsl/reference/json-graph.md +97 -97
- package/docs/formats/pickle.md +82 -82
- package/docs/formats/provenance.md +196 -196
- package/docs/formats/stl.md +37 -37
- package/docs/formats/webgl/README.md +115 -115
- package/docs/formats/webgl/architecture.md +69 -69
- package/docs/formats/webgl/carbon-constant-layouts.md +326 -326
- package/docs/formats/webgl/decl-io.md +1234 -1234
- package/docs/formats/webgl/memory-structured.md +890 -890
- package/docs/formats/webgl/reference/classes/README.md +9 -9
- package/docs/formats/webgl/texture-sample.md +964 -964
- package/docs/formats/webgpu/README.md +84 -84
- package/docs/formats/webgpu/architecture.md +95 -95
- package/docs/formats/webgpu/formats/carbon-webgpu.md +215 -215
- package/docs/formats/webgpu/guides/effect-packaging.md +189 -189
- package/docs/formats/webgpu/reference/api.md +196 -196
- package/docs/formats/webgpu/reference/classes/README.md +9 -9
- package/docs/formats/webgpu/reference/wgsl-compatibility.md +1546 -1546
- package/docs/formats/wwise.md +146 -146
- package/docs/reference/classes/README.md +35 -35
- package/docs/reference/classes/audio.md +30 -30
- package/docs/reference/classes/core.md +216 -216
- package/docs/reference/classes/dropped.md +46 -46
- package/docs/reference/classes/formats.md +944 -944
- package/docs/reference/classes/resources.md +456 -456
- package/docs/reference/classes/texture.md +26 -26
- package/docs/reference/events.md +117 -117
- package/docs/reference/motherlode-cache.md +275 -275
- package/docs/reference/queues.md +194 -194
- package/docs/reference/reload.md +107 -107
- package/docs/reference/texture-arrays.md +113 -113
- package/docs/reference/texture-pipeline.md +53 -53
- package/docs/reference/workers.md +142 -142
- package/docs/roadmap.md +150 -150
- package/format-notices/black/LICENSE +21 -21
- package/format-notices/black/NOTICE +47 -47
- package/format-notices/bnk/LICENSE +21 -21
- package/format-notices/bnk/NOTICE +21 -21
- package/format-notices/cmf/LICENSE +21 -21
- package/format-notices/cmf/NOTICE +36 -36
- package/format-notices/dds/LICENSE +21 -21
- package/format-notices/dds/NOTICE +14 -14
- package/format-notices/dxbc/LICENSE +21 -21
- package/format-notices/dxbc/NOTICE +20 -20
- package/format-notices/fbx/LICENSE +21 -21
- package/format-notices/fbx/NOTICE +14 -14
- package/format-notices/flac/LICENSE +21 -21
- package/format-notices/flac/NOTICE +14 -14
- package/format-notices/gif/LICENSE +21 -21
- package/format-notices/gif/NOTICE +14 -14
- package/format-notices/gltf/LICENSE +21 -21
- package/format-notices/gltf/NOTICE +27 -27
- package/format-notices/gr2/LICENSE +21 -21
- package/format-notices/gr2/NOTICE +60 -60
- package/format-notices/gr2/THIRD-PARTY-NOTICES.md +93 -93
- package/format-notices/hlsl/LICENSE +21 -21
- package/format-notices/hlsl/NOTICE +25 -25
- package/format-notices/jpeg/LICENSE +21 -21
- package/format-notices/jpeg/NOTICE +14 -14
- package/format-notices/mp3/LICENSE +21 -21
- package/format-notices/mp3/NOTICE +14 -14
- package/format-notices/mp4/LICENSE +21 -21
- package/format-notices/mp4/NOTICE +14 -14
- package/format-notices/obj/LICENSE +21 -21
- package/format-notices/obj/NOTICE +26 -26
- package/format-notices/ogg/LICENSE +21 -21
- package/format-notices/ogg/NOTICE +28 -28
- package/format-notices/png/LICENSE +21 -21
- package/format-notices/png/NOTICE +14 -14
- package/format-notices/red/LICENSE +21 -21
- package/format-notices/red/NOTICE +31 -31
- package/format-notices/stl/LICENSE +21 -21
- package/format-notices/stl/NOTICE +21 -21
- package/format-notices/tga/LICENSE +21 -21
- package/format-notices/tga/NOTICE +14 -14
- package/format-notices/wav/LICENSE +21 -21
- package/format-notices/wav/NOTICE +14 -14
- package/format-notices/webgl/LICENSE +21 -21
- package/format-notices/webgl/NOTICE +35 -35
- package/format-notices/webgpu/LICENSE +21 -21
- package/format-notices/webgpu/NOTICE +31 -31
- package/format-notices/webm/LICENSE +21 -21
- package/format-notices/webm/NOTICE +14 -14
- package/format-notices/webp/LICENSE +21 -21
- package/format-notices/webp/NOTICE +14 -14
- package/format-notices/wem/LICENSE +57 -57
- package/format-notices/wem/NOTICE +33 -33
- package/format-notices/yaml/LICENSE +21 -21
- package/format-notices/yaml/NOTICE +44 -44
- package/package.json +63 -63
|
@@ -1,26 +1,26 @@
|
|
|
1
|
-
# Texture class catalog
|
|
2
|
-
|
|
3
|
-
Status: Evolving
|
|
4
|
-
Scope: `@carbonenginejs/runtime-resource` classes under `src/resource/texture`
|
|
5
|
-
Audience: Users, maintainers, and automated readers
|
|
6
|
-
Summary: Provides one-sentence purpose descriptors for the texture-array aggregation classes in src/resource/texture.
|
|
7
|
-
|
|
8
|
-
<!-- class:CjsTextureArrayRes -->
|
|
9
|
-
## `CjsTextureArrayRes`
|
|
10
|
-
|
|
11
|
-
Mutable runtime aggregate resource for an ordered texture-array request that coalesces per-layer path changes and invalidations so a resource manager or engine scheduler can prepare the corresponding immutable texture-array payload on a later frame.
|
|
12
|
-
|
|
13
|
-
- Export: `@carbonenginejs/runtime-resource`
|
|
14
|
-
- Source: `src/resource/texture/CjsTextureArrayRes.js`
|
|
15
|
-
- Visibility: Public
|
|
16
|
-
- Kind: Original CarbonEngineJS class
|
|
17
|
-
|
|
18
|
-
<!-- class:CjsTextureArrayResParameterProxy -->
|
|
19
|
-
## `CjsTextureArrayResParameterProxy`
|
|
20
|
-
|
|
21
|
-
`CjsTextureArrayRes`-owned parameter facade for one array layer that mirrors the public path API while delegating storage, invalidation, readiness, and adapter ownership to its parent, carrying no shader metadata or backend objects itself.
|
|
22
|
-
|
|
23
|
-
- Export: `@carbonenginejs/runtime-resource`
|
|
24
|
-
- Source: `src/resource/texture/CjsTextureArrayResParameterProxy.js`
|
|
25
|
-
- Visibility: Public
|
|
26
|
-
- Kind: Original CarbonEngineJS class
|
|
1
|
+
# Texture class catalog
|
|
2
|
+
|
|
3
|
+
Status: Evolving
|
|
4
|
+
Scope: `@carbonenginejs/runtime-resource` classes under `src/resource/texture`
|
|
5
|
+
Audience: Users, maintainers, and automated readers
|
|
6
|
+
Summary: Provides one-sentence purpose descriptors for the texture-array aggregation classes in src/resource/texture.
|
|
7
|
+
|
|
8
|
+
<!-- class:CjsTextureArrayRes -->
|
|
9
|
+
## `CjsTextureArrayRes`
|
|
10
|
+
|
|
11
|
+
Mutable runtime aggregate resource for an ordered texture-array request that coalesces per-layer path changes and invalidations so a resource manager or engine scheduler can prepare the corresponding immutable texture-array payload on a later frame.
|
|
12
|
+
|
|
13
|
+
- Export: `@carbonenginejs/runtime-resource`
|
|
14
|
+
- Source: `src/resource/texture/CjsTextureArrayRes.js`
|
|
15
|
+
- Visibility: Public
|
|
16
|
+
- Kind: Original CarbonEngineJS class
|
|
17
|
+
|
|
18
|
+
<!-- class:CjsTextureArrayResParameterProxy -->
|
|
19
|
+
## `CjsTextureArrayResParameterProxy`
|
|
20
|
+
|
|
21
|
+
`CjsTextureArrayRes`-owned parameter facade for one array layer that mirrors the public path API while delegating storage, invalidation, readiness, and adapter ownership to its parent, carrying no shader metadata or backend objects itself.
|
|
22
|
+
|
|
23
|
+
- Export: `@carbonenginejs/runtime-resource`
|
|
24
|
+
- Source: `src/resource/texture/CjsTextureArrayResParameterProxy.js`
|
|
25
|
+
- Visibility: Public
|
|
26
|
+
- Kind: Original CarbonEngineJS class
|
package/docs/reference/events.md
CHANGED
|
@@ -1,117 +1,117 @@
|
|
|
1
|
-
# Event emitter contract
|
|
2
|
-
|
|
3
|
-
Status: Evolving
|
|
4
|
-
Scope: `@carbonenginejs/runtime-resource`
|
|
5
|
-
Audience: Users and integrators
|
|
6
|
-
Summary: Defines the `CjsEventEmitter` API surface used by resource managers and the memory rules that keep listeners from leaking graphs.
|
|
7
|
-
|
|
8
|
-
## Purpose
|
|
9
|
-
|
|
10
|
-
`CjsEventEmitter` (from `runtime-utils/model`) is a separate base class so
|
|
11
|
-
non-model runtime services can emit events without extending `CjsModel`;
|
|
12
|
-
`CjsResMan` uses that path. CarbonEngineJS exposes one small event-emitter API
|
|
13
|
-
and avoids short generic names such as `On`, `Once`, `Off`, and `Emit` on
|
|
14
|
-
Carbon-shaped classes. There is no separate resource notification/callback
|
|
15
|
-
compatibility layer beside events, and no listener scopes, subscription
|
|
16
|
-
handles, or owner-side `ListenTo()` helpers.
|
|
17
|
-
|
|
18
|
-
## API
|
|
19
|
-
|
|
20
|
-
- `AddEvents(events)`
|
|
21
|
-
- `OnEvent(eventName, listener, source?)`
|
|
22
|
-
- `OnceEvent(eventName, listener, source?)`
|
|
23
|
-
- `OffEvent(eventName = "*", listener?, source?)`
|
|
24
|
-
- `EmitEvent(eventName, ...args)`
|
|
25
|
-
- `HasEvent(eventName = "*", listener?, source?)`
|
|
26
|
-
- `ClearEvent(eventName = "*")`
|
|
27
|
-
- `GetEventNames()` and `GetEventListenerCount(eventName = "*")`
|
|
28
|
-
|
|
29
|
-
The optional `source` is the callback's `this` value and an explicit matching
|
|
30
|
-
identity for removal. Mutating event methods return the emitter for chaining.
|
|
31
|
-
Event names are normalized to lowercase and dispatched by exact match.
|
|
32
|
-
Wildcard names are accepted only by lookup and cleanup methods; there is no
|
|
33
|
-
wildcard listener dispatch, no `family.event` or ancestor routing, and no
|
|
34
|
-
event payload history. Resource classes may emit their own state or domain
|
|
35
|
-
events, but the emitter does not invent a resource lifecycle contract.
|
|
36
|
-
|
|
37
|
-
## Resource lifecycle events
|
|
38
|
-
|
|
39
|
-
`CjsResource.SetState()` supplies the resource-specific lifecycle contract. A
|
|
40
|
-
state transition emits, in order:
|
|
41
|
-
|
|
42
|
-
1. the lowercase state name with `(resource, ...details)`;
|
|
43
|
-
2. `statechange` with `(resource, nextState, previousState)`; and
|
|
44
|
-
3. `completed` with `(resource, ...details)` when the new state is
|
|
45
|
-
`prepared` or `failed`.
|
|
46
|
-
|
|
47
|
-
`purged` is deliberately not completion. A purged handle may re-register and
|
|
48
|
-
reload itself into the same identity, and listeners are not cleared by purge.
|
|
49
|
-
A listener that remains registered for `completed` can therefore observe the
|
|
50
|
-
initial outcome and a later purge/reload outcome.
|
|
51
|
-
|
|
52
|
-
Raw `OnEvent()` and `OnceEvent()` never replay event history. The one
|
|
53
|
-
state-aware registration helper is `CjsResource.OnCompleted(listener,
|
|
54
|
-
source?)`: it calls the listener synchronously and stores nothing when the
|
|
55
|
-
resource is already complete; otherwise it registers a persistent
|
|
56
|
-
`completed` listener. This is the canonical check-then-subscribe operation for
|
|
57
|
-
late consumers. A listener satisfied synchronously will not observe a later
|
|
58
|
-
reload unless it explicitly subscribes again. Use `Ready()`/`GetObject()` when
|
|
59
|
-
the caller needs a promise for the current load operation rather than a
|
|
60
|
-
re-enterable lifecycle observer.
|
|
61
|
-
|
|
62
|
-
## Memory rules
|
|
63
|
-
|
|
64
|
-
Event storage is the optional `events` member of the emitter's non-enumerable
|
|
65
|
-
`__state` object:
|
|
66
|
-
|
|
67
|
-
```text
|
|
68
|
-
emitter.__state (non-enumerable, allocated only when some subsystem needs it)
|
|
69
|
-
events -> eventName -> Set<listenerRecord>
|
|
70
|
-
|
|
71
|
-
listenerRecord
|
|
72
|
-
emitter
|
|
73
|
-
eventName
|
|
74
|
-
listener
|
|
75
|
-
source
|
|
76
|
-
once
|
|
77
|
-
```
|
|
78
|
-
|
|
79
|
-
The event map is created only when the first listener is registered and
|
|
80
|
-
deleted when the last record is removed. That does not make listeners weak:
|
|
81
|
-
as long as an emitter is reachable, its event map strongly references
|
|
82
|
-
listener functions and sources, and those listeners can keep whole
|
|
83
|
-
scene/resource graphs alive. The contract is therefore:
|
|
84
|
-
|
|
85
|
-
- `OnceEvent()` removes the listener on first dispatch, even if the callback
|
|
86
|
-
throws.
|
|
87
|
-
- `OffEvent(eventName, listener, source)` removes the exact listener/source
|
|
88
|
-
entry; `target.OffEvent("*", null, source)` removes all of a source's
|
|
89
|
-
records. An external party that no longer observes a target must call
|
|
90
|
-
`OffEvent()`.
|
|
91
|
-
- `Unload()` and `Purge()` are resource state/cache operations, not an
|
|
92
|
-
implied listener-destruction lifecycle.
|
|
93
|
-
- `OnEvent()` returns the emitter; it does not return unsubscribe closures,
|
|
94
|
-
because those closures create another reference path.
|
|
95
|
-
- Deterministic cleanup is the contract; `WeakRef`/`FinalizationRegistry` may
|
|
96
|
-
help diagnostics but are not a lifecycle mechanism.
|
|
97
|
-
|
|
98
|
-
Multiple listeners on the same event are allowed because each event bucket is
|
|
99
|
-
a set of records. A raw `CjsEventEmitter` does not gain model-owned `dirty`
|
|
100
|
-
or `rebuild` state. The target is "easy to debug, hard to leak": clear
|
|
101
|
-
ownership of who subscribed, who unsubscribes, and which cleanup phase clears
|
|
102
|
-
remaining listeners.
|
|
103
|
-
|
|
104
|
-
## Relationship to model dirty state
|
|
105
|
-
|
|
106
|
-
`CjsModel` has dirty-state helpers (`MarkDirty`, `ClearDirty`, `ConsumeDirty`,
|
|
107
|
-
`GetDirtyNotifications`) for model invalidation. `SetValues()` compares
|
|
108
|
-
incoming values with the current field values and only marks dirty when a
|
|
109
|
-
value actually changes. A plain `MarkDirty()` means broad dirty invalidation;
|
|
110
|
-
it does not request a rebuild, and deferred rebuild reasons belong to the
|
|
111
|
-
independent `model.__state.rebuild` set. That model machinery is not a
|
|
112
|
-
resource lifecycle event system; resource lifecycle events remain a
|
|
113
|
-
resource/resman concern.
|
|
114
|
-
|
|
115
|
-
## Related documentation
|
|
116
|
-
|
|
117
|
-
- [MotherLode identity, cache, and retention](motherlode-cache.md)
|
|
1
|
+
# Event emitter contract
|
|
2
|
+
|
|
3
|
+
Status: Evolving
|
|
4
|
+
Scope: `@carbonenginejs/runtime-resource`
|
|
5
|
+
Audience: Users and integrators
|
|
6
|
+
Summary: Defines the `CjsEventEmitter` API surface used by resource managers and the memory rules that keep listeners from leaking graphs.
|
|
7
|
+
|
|
8
|
+
## Purpose
|
|
9
|
+
|
|
10
|
+
`CjsEventEmitter` (from `runtime-utils/model`) is a separate base class so
|
|
11
|
+
non-model runtime services can emit events without extending `CjsModel`;
|
|
12
|
+
`CjsResMan` uses that path. CarbonEngineJS exposes one small event-emitter API
|
|
13
|
+
and avoids short generic names such as `On`, `Once`, `Off`, and `Emit` on
|
|
14
|
+
Carbon-shaped classes. There is no separate resource notification/callback
|
|
15
|
+
compatibility layer beside events, and no listener scopes, subscription
|
|
16
|
+
handles, or owner-side `ListenTo()` helpers.
|
|
17
|
+
|
|
18
|
+
## API
|
|
19
|
+
|
|
20
|
+
- `AddEvents(events)`
|
|
21
|
+
- `OnEvent(eventName, listener, source?)`
|
|
22
|
+
- `OnceEvent(eventName, listener, source?)`
|
|
23
|
+
- `OffEvent(eventName = "*", listener?, source?)`
|
|
24
|
+
- `EmitEvent(eventName, ...args)`
|
|
25
|
+
- `HasEvent(eventName = "*", listener?, source?)`
|
|
26
|
+
- `ClearEvent(eventName = "*")`
|
|
27
|
+
- `GetEventNames()` and `GetEventListenerCount(eventName = "*")`
|
|
28
|
+
|
|
29
|
+
The optional `source` is the callback's `this` value and an explicit matching
|
|
30
|
+
identity for removal. Mutating event methods return the emitter for chaining.
|
|
31
|
+
Event names are normalized to lowercase and dispatched by exact match.
|
|
32
|
+
Wildcard names are accepted only by lookup and cleanup methods; there is no
|
|
33
|
+
wildcard listener dispatch, no `family.event` or ancestor routing, and no
|
|
34
|
+
event payload history. Resource classes may emit their own state or domain
|
|
35
|
+
events, but the emitter does not invent a resource lifecycle contract.
|
|
36
|
+
|
|
37
|
+
## Resource lifecycle events
|
|
38
|
+
|
|
39
|
+
`CjsResource.SetState()` supplies the resource-specific lifecycle contract. A
|
|
40
|
+
state transition emits, in order:
|
|
41
|
+
|
|
42
|
+
1. the lowercase state name with `(resource, ...details)`;
|
|
43
|
+
2. `statechange` with `(resource, nextState, previousState)`; and
|
|
44
|
+
3. `completed` with `(resource, ...details)` when the new state is
|
|
45
|
+
`prepared` or `failed`.
|
|
46
|
+
|
|
47
|
+
`purged` is deliberately not completion. A purged handle may re-register and
|
|
48
|
+
reload itself into the same identity, and listeners are not cleared by purge.
|
|
49
|
+
A listener that remains registered for `completed` can therefore observe the
|
|
50
|
+
initial outcome and a later purge/reload outcome.
|
|
51
|
+
|
|
52
|
+
Raw `OnEvent()` and `OnceEvent()` never replay event history. The one
|
|
53
|
+
state-aware registration helper is `CjsResource.OnCompleted(listener,
|
|
54
|
+
source?)`: it calls the listener synchronously and stores nothing when the
|
|
55
|
+
resource is already complete; otherwise it registers a persistent
|
|
56
|
+
`completed` listener. This is the canonical check-then-subscribe operation for
|
|
57
|
+
late consumers. A listener satisfied synchronously will not observe a later
|
|
58
|
+
reload unless it explicitly subscribes again. Use `Ready()`/`GetObject()` when
|
|
59
|
+
the caller needs a promise for the current load operation rather than a
|
|
60
|
+
re-enterable lifecycle observer.
|
|
61
|
+
|
|
62
|
+
## Memory rules
|
|
63
|
+
|
|
64
|
+
Event storage is the optional `events` member of the emitter's non-enumerable
|
|
65
|
+
`__state` object:
|
|
66
|
+
|
|
67
|
+
```text
|
|
68
|
+
emitter.__state (non-enumerable, allocated only when some subsystem needs it)
|
|
69
|
+
events -> eventName -> Set<listenerRecord>
|
|
70
|
+
|
|
71
|
+
listenerRecord
|
|
72
|
+
emitter
|
|
73
|
+
eventName
|
|
74
|
+
listener
|
|
75
|
+
source
|
|
76
|
+
once
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
The event map is created only when the first listener is registered and
|
|
80
|
+
deleted when the last record is removed. That does not make listeners weak:
|
|
81
|
+
as long as an emitter is reachable, its event map strongly references
|
|
82
|
+
listener functions and sources, and those listeners can keep whole
|
|
83
|
+
scene/resource graphs alive. The contract is therefore:
|
|
84
|
+
|
|
85
|
+
- `OnceEvent()` removes the listener on first dispatch, even if the callback
|
|
86
|
+
throws.
|
|
87
|
+
- `OffEvent(eventName, listener, source)` removes the exact listener/source
|
|
88
|
+
entry; `target.OffEvent("*", null, source)` removes all of a source's
|
|
89
|
+
records. An external party that no longer observes a target must call
|
|
90
|
+
`OffEvent()`.
|
|
91
|
+
- `Unload()` and `Purge()` are resource state/cache operations, not an
|
|
92
|
+
implied listener-destruction lifecycle.
|
|
93
|
+
- `OnEvent()` returns the emitter; it does not return unsubscribe closures,
|
|
94
|
+
because those closures create another reference path.
|
|
95
|
+
- Deterministic cleanup is the contract; `WeakRef`/`FinalizationRegistry` may
|
|
96
|
+
help diagnostics but are not a lifecycle mechanism.
|
|
97
|
+
|
|
98
|
+
Multiple listeners on the same event are allowed because each event bucket is
|
|
99
|
+
a set of records. A raw `CjsEventEmitter` does not gain model-owned `dirty`
|
|
100
|
+
or `rebuild` state. The target is "easy to debug, hard to leak": clear
|
|
101
|
+
ownership of who subscribed, who unsubscribes, and which cleanup phase clears
|
|
102
|
+
remaining listeners.
|
|
103
|
+
|
|
104
|
+
## Relationship to model dirty state
|
|
105
|
+
|
|
106
|
+
`CjsModel` has dirty-state helpers (`MarkDirty`, `ClearDirty`, `ConsumeDirty`,
|
|
107
|
+
`GetDirtyNotifications`) for model invalidation. `SetValues()` compares
|
|
108
|
+
incoming values with the current field values and only marks dirty when a
|
|
109
|
+
value actually changes. A plain `MarkDirty()` means broad dirty invalidation;
|
|
110
|
+
it does not request a rebuild, and deferred rebuild reasons belong to the
|
|
111
|
+
independent `model.__state.rebuild` set. That model machinery is not a
|
|
112
|
+
resource lifecycle event system; resource lifecycle events remain a
|
|
113
|
+
resource/resman concern.
|
|
114
|
+
|
|
115
|
+
## Related documentation
|
|
116
|
+
|
|
117
|
+
- [MotherLode identity, cache, and retention](motherlode-cache.md)
|