@adaas/are 0.0.2 → 0.0.4
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/.conf/tsconfig.base.json +25 -32
- package/.conf/tsconfig.browser.json +24 -32
- package/.conf/tsconfig.node.json +24 -33
- package/CHANGELOG.md +39 -0
- package/LICENSE +10 -19
- package/README.md +216 -2
- package/dist/browser/index.d.mts +1375 -727
- package/dist/browser/index.mjs +2812 -2170
- package/dist/browser/index.mjs.map +1 -1
- package/dist/node/Are.context-9Ija_fdC.d.ts +846 -0
- package/dist/node/Are.context-D7w32H1G.d.mts +846 -0
- package/dist/node/index.d.mts +32 -31
- package/dist/node/index.d.ts +32 -31
- package/dist/node/index.js +371 -42
- package/dist/node/index.mjs +61 -14
- package/dist/node/lib/AreAttribute/AreAttribute.constants.d.mts +24 -0
- package/dist/node/lib/AreAttribute/AreAttribute.constants.d.ts +24 -0
- package/dist/node/lib/AreAttribute/AreAttribute.constants.js +28 -0
- package/dist/node/lib/AreAttribute/AreAttribute.constants.js.map +1 -0
- package/dist/node/lib/AreAttribute/AreAttribute.constants.mjs +28 -0
- package/dist/node/lib/AreAttribute/AreAttribute.constants.mjs.map +1 -0
- package/dist/node/lib/AreAttribute/AreAttribute.entity.d.mts +14 -0
- package/dist/node/lib/AreAttribute/AreAttribute.entity.d.ts +14 -0
- package/dist/node/lib/AreAttribute/AreAttribute.entity.js +113 -0
- package/dist/node/lib/AreAttribute/AreAttribute.entity.js.map +1 -0
- package/dist/node/lib/AreAttribute/AreAttribute.entity.mjs +104 -0
- package/dist/node/lib/AreAttribute/AreAttribute.entity.mjs.map +1 -0
- package/dist/node/lib/AreAttribute/AreAttribute.types.d.mts +47 -0
- package/dist/node/lib/AreAttribute/AreAttribute.types.d.ts +47 -0
- package/dist/node/lib/AreAttribute/AreAttribute.types.js +4 -0
- package/dist/node/lib/AreAttribute/AreAttribute.types.js.map +1 -0
- package/dist/node/lib/AreAttribute/AreAttribute.types.mjs +3 -0
- package/dist/node/lib/AreAttribute/AreAttribute.types.mjs.map +1 -0
- package/dist/node/lib/AreCompiler/AreCompiler.component.d.mts +19 -224
- package/dist/node/lib/AreCompiler/AreCompiler.component.d.ts +19 -224
- package/dist/node/lib/AreCompiler/AreCompiler.component.js +31 -607
- package/dist/node/lib/AreCompiler/AreCompiler.component.js.map +1 -1
- package/dist/node/lib/AreCompiler/AreCompiler.component.mjs +29 -605
- package/dist/node/lib/AreCompiler/AreCompiler.component.mjs.map +1 -1
- package/dist/node/lib/AreComponent/Are.component.d.mts +59 -7
- package/dist/node/lib/AreComponent/Are.component.d.ts +59 -7
- package/dist/node/lib/AreComponent/Are.component.js +84 -25
- package/dist/node/lib/AreComponent/Are.component.js.map +1 -1
- package/dist/node/lib/AreComponent/Are.component.mjs +85 -26
- package/dist/node/lib/AreComponent/Are.component.mjs.map +1 -1
- package/dist/node/lib/AreComponent/Are.constants.d.mts +46 -30
- package/dist/node/lib/AreComponent/Are.constants.d.ts +46 -30
- package/dist/node/lib/AreComponent/Are.constants.js +58 -21
- package/dist/node/lib/AreComponent/Are.constants.js.map +1 -1
- package/dist/node/lib/AreComponent/Are.constants.mjs +58 -21
- package/dist/node/lib/AreComponent/Are.constants.mjs.map +1 -1
- package/dist/node/lib/AreComponent/Are.context.d.mts +13 -21
- package/dist/node/lib/AreComponent/Are.context.d.ts +13 -21
- package/dist/node/lib/AreComponent/Are.context.js +91 -2
- package/dist/node/lib/AreComponent/Are.context.js.map +1 -1
- package/dist/node/lib/AreComponent/Are.context.mjs +92 -3
- package/dist/node/lib/AreComponent/Are.context.mjs.map +1 -1
- package/dist/node/lib/AreComponent/Are.meta.d.mts +14 -0
- package/dist/node/lib/AreComponent/Are.meta.d.ts +14 -0
- package/dist/node/lib/AreComponent/Are.meta.js +10 -0
- package/dist/node/lib/AreComponent/Are.meta.js.map +1 -0
- package/dist/node/lib/AreComponent/Are.meta.mjs +9 -0
- package/dist/node/lib/AreComponent/Are.meta.mjs.map +1 -0
- package/dist/node/lib/AreComponent/Are.types.d.mts +30 -1
- package/dist/node/lib/AreComponent/Are.types.d.ts +30 -1
- package/dist/node/lib/AreEngine/AreEngine.component.d.mts +77 -0
- package/dist/node/lib/AreEngine/AreEngine.component.d.ts +77 -0
- package/dist/node/lib/AreEngine/AreEngine.component.js +259 -0
- package/dist/node/lib/AreEngine/AreEngine.component.js.map +1 -0
- package/dist/node/lib/AreEngine/AreEngine.component.mjs +249 -0
- package/dist/node/lib/AreEngine/AreEngine.component.mjs.map +1 -0
- package/dist/node/lib/AreEngine/AreEngine.constants.d.mts +7 -0
- package/dist/node/lib/AreEngine/AreEngine.constants.d.ts +7 -0
- package/dist/node/lib/AreEngine/AreEngine.constants.js +11 -0
- package/dist/node/lib/AreEngine/AreEngine.constants.js.map +1 -0
- package/dist/node/lib/AreEngine/AreEngine.constants.mjs +11 -0
- package/dist/node/lib/AreEngine/AreEngine.constants.mjs.map +1 -0
- package/dist/node/lib/AreEngine/AreEngine.error.d.mts +7 -0
- package/dist/node/lib/AreEngine/AreEngine.error.d.ts +7 -0
- package/dist/node/lib/AreEngine/AreEngine.error.js +11 -0
- package/dist/node/lib/AreEngine/AreEngine.error.js.map +1 -0
- package/dist/node/lib/AreEngine/AreEngine.error.mjs +10 -0
- package/dist/node/lib/AreEngine/AreEngine.error.mjs.map +1 -0
- package/dist/node/lib/AreEngine/AreEngine.types.d.mts +40 -0
- package/dist/node/lib/AreEngine/AreEngine.types.d.ts +40 -0
- package/dist/node/lib/AreEngine/AreEngine.types.js +4 -0
- package/dist/node/lib/AreEngine/AreEngine.types.js.map +1 -0
- package/dist/node/lib/AreEngine/AreEngine.types.mjs +3 -0
- package/dist/node/lib/AreEngine/AreEngine.types.mjs.map +1 -0
- package/dist/node/lib/AreEvent/AreEvent.context.d.mts +6 -8
- package/dist/node/lib/AreEvent/AreEvent.context.d.ts +6 -8
- package/dist/node/lib/AreEvent/AreEvent.context.js +2 -12
- package/dist/node/lib/AreEvent/AreEvent.context.js.map +1 -1
- package/dist/node/lib/AreEvent/AreEvent.context.mjs +2 -12
- package/dist/node/lib/AreEvent/AreEvent.context.mjs.map +1 -1
- package/dist/node/lib/AreInstruction/AreInstruction.constants.d.mts +21 -0
- package/dist/node/lib/AreInstruction/AreInstruction.constants.d.ts +21 -0
- package/dist/node/lib/AreInstruction/AreInstruction.constants.js +26 -0
- package/dist/node/lib/AreInstruction/AreInstruction.constants.js.map +1 -0
- package/dist/node/lib/AreInstruction/AreInstruction.constants.mjs +25 -0
- package/dist/node/lib/AreInstruction/AreInstruction.constants.mjs.map +1 -0
- package/dist/node/lib/AreInstruction/AreInstruction.entity.d.mts +14 -0
- package/dist/node/lib/AreInstruction/AreInstruction.entity.d.ts +14 -0
- package/dist/node/lib/AreInstruction/AreInstruction.entity.js +152 -0
- package/dist/node/lib/AreInstruction/AreInstruction.entity.js.map +1 -0
- package/dist/node/lib/AreInstruction/AreInstruction.entity.mjs +145 -0
- package/dist/node/lib/AreInstruction/AreInstruction.entity.mjs.map +1 -0
- package/dist/node/lib/AreInstruction/AreInstruction.error.d.mts +6 -0
- package/dist/node/lib/AreInstruction/AreInstruction.error.d.ts +6 -0
- package/dist/node/lib/AreInstruction/AreInstruction.error.js +10 -0
- package/dist/node/lib/AreInstruction/AreInstruction.error.js.map +1 -0
- package/dist/node/lib/AreInstruction/AreInstruction.error.mjs +9 -0
- package/dist/node/lib/AreInstruction/AreInstruction.error.mjs.map +1 -0
- package/dist/node/lib/AreInstruction/AreInstruction.types.d.mts +14 -0
- package/dist/node/lib/AreInstruction/AreInstruction.types.d.ts +14 -0
- package/dist/node/lib/AreInstruction/AreInstruction.types.js +4 -0
- package/dist/node/lib/AreInstruction/AreInstruction.types.js.map +1 -0
- package/dist/node/lib/AreInstruction/AreInstruction.types.mjs +3 -0
- package/dist/node/lib/AreInstruction/AreInstruction.types.mjs.map +1 -0
- package/dist/node/lib/AreInstruction/types/AreDeclaration.instruction.d.mts +14 -0
- package/dist/node/lib/AreInstruction/types/AreDeclaration.instruction.d.ts +14 -0
- package/dist/node/lib/AreInstruction/types/AreDeclaration.instruction.js +37 -0
- package/dist/node/lib/AreInstruction/types/AreDeclaration.instruction.js.map +1 -0
- package/dist/node/lib/AreInstruction/types/AreDeclaration.instruction.mjs +30 -0
- package/dist/node/lib/AreInstruction/types/AreDeclaration.instruction.mjs.map +1 -0
- package/dist/node/lib/AreInstruction/types/AreMutation.instruction.d.mts +14 -0
- package/dist/node/lib/AreInstruction/types/AreMutation.instruction.d.ts +14 -0
- package/dist/node/lib/AreInstruction/types/AreMutation.instruction.js +52 -0
- package/dist/node/lib/AreInstruction/types/AreMutation.instruction.js.map +1 -0
- package/dist/node/lib/AreInstruction/types/AreMutation.instruction.mjs +45 -0
- package/dist/node/lib/AreInstruction/types/AreMutation.instruction.mjs.map +1 -0
- package/dist/node/lib/AreInterpreter/AreInterpreter.component.d.mts +49 -0
- package/dist/node/lib/AreInterpreter/AreInterpreter.component.d.ts +49 -0
- package/dist/node/lib/AreInterpreter/AreInterpreter.component.js +164 -0
- package/dist/node/lib/AreInterpreter/AreInterpreter.component.js.map +1 -0
- package/dist/node/lib/AreInterpreter/AreInterpreter.component.mjs +154 -0
- package/dist/node/lib/AreInterpreter/AreInterpreter.component.mjs.map +1 -0
- package/dist/node/lib/AreInterpreter/AreInterpreter.constants.js +4 -0
- package/dist/node/lib/AreInterpreter/AreInterpreter.constants.js.map +1 -0
- package/dist/node/lib/AreInterpreter/AreInterpreter.constants.mjs +3 -0
- package/dist/node/lib/AreInterpreter/AreInterpreter.constants.mjs.map +1 -0
- package/dist/node/lib/AreInterpreter/AreInterpreter.error.d.mts +6 -0
- package/dist/node/lib/AreInterpreter/AreInterpreter.error.d.ts +6 -0
- package/dist/node/lib/AreInterpreter/AreInterpreter.error.js +10 -0
- package/dist/node/lib/AreInterpreter/AreInterpreter.error.js.map +1 -0
- package/dist/node/lib/AreInterpreter/AreInterpreter.error.mjs +9 -0
- package/dist/node/lib/AreInterpreter/AreInterpreter.error.mjs.map +1 -0
- package/dist/node/lib/AreInterpreter/AreInterpreter.types.js +4 -0
- package/dist/node/lib/AreInterpreter/AreInterpreter.types.js.map +1 -0
- package/dist/node/lib/AreInterpreter/AreInterpreter.types.mjs +3 -0
- package/dist/node/lib/AreInterpreter/AreInterpreter.types.mjs.map +1 -0
- package/dist/node/lib/AreLifecycle/AreLifecycle.component.d.mts +188 -0
- package/dist/node/lib/AreLifecycle/AreLifecycle.component.d.ts +188 -0
- package/dist/node/lib/AreLifecycle/AreLifecycle.component.js +349 -0
- package/dist/node/lib/AreLifecycle/AreLifecycle.component.js.map +1 -0
- package/dist/node/lib/AreLifecycle/AreLifecycle.component.mjs +339 -0
- package/dist/node/lib/AreLifecycle/AreLifecycle.component.mjs.map +1 -0
- package/dist/node/lib/AreLifecycle/AreLifecycle.constants.d.mts +2 -0
- package/dist/node/lib/AreLifecycle/AreLifecycle.constants.d.ts +2 -0
- package/dist/node/lib/AreLifecycle/AreLifecycle.constants.js +4 -0
- package/dist/node/lib/AreLifecycle/AreLifecycle.constants.js.map +1 -0
- package/dist/node/lib/AreLifecycle/AreLifecycle.constants.mjs +3 -0
- package/dist/node/lib/AreLifecycle/AreLifecycle.constants.mjs.map +1 -0
- package/dist/node/lib/AreLifecycle/AreLifecycle.error.d.mts +7 -0
- package/dist/node/lib/AreLifecycle/AreLifecycle.error.d.ts +7 -0
- package/dist/node/lib/AreLifecycle/AreLifecycle.error.js +11 -0
- package/dist/node/lib/AreLifecycle/AreLifecycle.error.js.map +1 -0
- package/dist/node/lib/AreLifecycle/AreLifecycle.error.mjs +10 -0
- package/dist/node/lib/AreLifecycle/AreLifecycle.error.mjs.map +1 -0
- package/dist/node/lib/AreLifecycle/AreLifecycle.types.d.mts +2 -0
- package/dist/node/lib/AreLifecycle/AreLifecycle.types.d.ts +2 -0
- package/dist/node/lib/AreLifecycle/AreLifecycle.types.js +4 -0
- package/dist/node/lib/AreLifecycle/AreLifecycle.types.js.map +1 -0
- package/dist/node/lib/AreLifecycle/AreLifecycle.types.mjs +3 -0
- package/dist/node/lib/AreLifecycle/AreLifecycle.types.mjs.map +1 -0
- package/dist/node/lib/AreLoader/AreLoader.component.d.mts +31 -0
- package/dist/node/lib/AreLoader/AreLoader.component.d.ts +31 -0
- package/dist/node/lib/AreLoader/AreLoader.component.js +64 -0
- package/dist/node/lib/AreLoader/AreLoader.component.js.map +1 -0
- package/dist/node/lib/AreLoader/AreLoader.component.mjs +54 -0
- package/dist/node/lib/AreLoader/AreLoader.component.mjs.map +1 -0
- package/dist/node/lib/AreLoader/AreLoader.constants.d.mts +2 -0
- package/dist/node/lib/AreLoader/AreLoader.constants.d.ts +2 -0
- package/dist/node/lib/AreLoader/AreLoader.constants.js +4 -0
- package/dist/node/lib/AreLoader/AreLoader.constants.js.map +1 -0
- package/dist/node/lib/AreLoader/AreLoader.constants.mjs +3 -0
- package/dist/node/lib/AreLoader/AreLoader.constants.mjs.map +1 -0
- package/dist/node/lib/AreLoader/AreLoader.error.d.mts +8 -0
- package/dist/node/lib/AreLoader/AreLoader.error.d.ts +8 -0
- package/dist/node/lib/AreLoader/AreLoader.error.js +12 -0
- package/dist/node/lib/AreLoader/AreLoader.error.js.map +1 -0
- package/dist/node/lib/AreLoader/AreLoader.error.mjs +11 -0
- package/dist/node/lib/AreLoader/AreLoader.error.mjs.map +1 -0
- package/dist/node/lib/AreLoader/AreLoader.types.d.mts +2 -0
- package/dist/node/lib/AreLoader/AreLoader.types.d.ts +2 -0
- package/dist/node/lib/AreLoader/AreLoader.types.js +4 -0
- package/dist/node/lib/AreLoader/AreLoader.types.js.map +1 -0
- package/dist/node/lib/AreLoader/AreLoader.types.mjs +3 -0
- package/dist/node/lib/AreLoader/AreLoader.types.mjs.map +1 -0
- package/dist/node/lib/AreNode/AreNode.constants.d.mts +87 -17
- package/dist/node/lib/AreNode/AreNode.constants.d.ts +87 -17
- package/dist/node/lib/AreNode/AreNode.constants.js +111 -11
- package/dist/node/lib/AreNode/AreNode.constants.js.map +1 -1
- package/dist/node/lib/AreNode/AreNode.constants.mjs +111 -12
- package/dist/node/lib/AreNode/AreNode.constants.mjs.map +1 -1
- package/dist/node/lib/AreNode/AreNode.entity.d.mts +12 -6
- package/dist/node/lib/AreNode/AreNode.entity.d.ts +12 -6
- package/dist/node/lib/AreNode/AreNode.entity.js +281 -49
- package/dist/node/lib/AreNode/AreNode.entity.js.map +1 -1
- package/dist/node/lib/AreNode/AreNode.entity.mjs +282 -50
- package/dist/node/lib/AreNode/AreNode.entity.mjs.map +1 -1
- package/dist/node/lib/AreNode/AreNode.types.d.mts +14 -13
- package/dist/node/lib/AreNode/AreNode.types.d.ts +14 -13
- package/dist/node/lib/AreScene/AreScene.constants.d.mts +7 -0
- package/dist/node/lib/AreScene/AreScene.constants.d.ts +7 -0
- package/dist/node/lib/AreScene/AreScene.constants.js +11 -0
- package/dist/node/lib/AreScene/AreScene.constants.js.map +1 -0
- package/dist/node/lib/AreScene/AreScene.constants.mjs +11 -0
- package/dist/node/lib/AreScene/AreScene.constants.mjs.map +1 -0
- package/dist/node/lib/AreScene/AreScene.context.d.mts +12 -6
- package/dist/node/lib/AreScene/AreScene.context.d.ts +12 -6
- package/dist/node/lib/AreScene/AreScene.context.js +284 -186
- package/dist/node/lib/AreScene/AreScene.context.js.map +1 -1
- package/dist/node/lib/AreScene/AreScene.context.mjs +277 -185
- package/dist/node/lib/AreScene/AreScene.context.mjs.map +1 -1
- package/dist/node/lib/AreScene/AreScene.error.d.mts +4 -0
- package/dist/node/lib/AreScene/AreScene.error.d.ts +4 -0
- package/dist/node/lib/AreScene/AreScene.error.js +4 -0
- package/dist/node/lib/AreScene/AreScene.error.js.map +1 -1
- package/dist/node/lib/AreScene/AreScene.error.mjs +4 -0
- package/dist/node/lib/AreScene/AreScene.error.mjs.map +1 -1
- package/dist/node/lib/AreScene/AreScene.types.d.mts +14 -9
- package/dist/node/lib/AreScene/AreScene.types.d.ts +14 -9
- package/dist/node/lib/AreSignals/AreSignal.entity.d.mts +6 -0
- package/dist/node/lib/AreSignals/AreSignal.entity.d.ts +6 -0
- package/dist/node/lib/AreSignals/AreSignal.entity.js +24 -0
- package/dist/node/lib/AreSignals/AreSignal.entity.js.map +1 -0
- package/dist/node/lib/AreSignals/AreSignal.entity.mjs +17 -0
- package/dist/node/lib/AreSignals/AreSignal.entity.mjs.map +1 -0
- package/dist/node/lib/AreSignals/AreSignals.component.d.mts +35 -0
- package/dist/node/lib/AreSignals/AreSignals.component.d.ts +35 -0
- package/dist/node/lib/AreSignals/AreSignals.component.js +90 -0
- package/dist/node/lib/AreSignals/AreSignals.component.js.map +1 -0
- package/dist/node/lib/AreSignals/AreSignals.component.mjs +80 -0
- package/dist/node/lib/AreSignals/AreSignals.component.mjs.map +1 -0
- package/dist/node/lib/AreSignals/AreSignals.constants.d.mts +2 -0
- package/dist/node/lib/AreSignals/AreSignals.constants.d.ts +2 -0
- package/dist/node/lib/AreSignals/AreSignals.constants.js +4 -0
- package/dist/node/lib/AreSignals/AreSignals.constants.js.map +1 -0
- package/dist/node/lib/AreSignals/AreSignals.constants.mjs +3 -0
- package/dist/node/lib/AreSignals/AreSignals.constants.mjs.map +1 -0
- package/dist/node/lib/AreSignals/AreSignals.context.d.mts +86 -0
- package/dist/node/lib/AreSignals/AreSignals.context.d.ts +86 -0
- package/dist/node/lib/AreSignals/AreSignals.context.js +153 -0
- package/dist/node/lib/AreSignals/AreSignals.context.js.map +1 -0
- package/dist/node/lib/AreSignals/AreSignals.context.mjs +146 -0
- package/dist/node/lib/AreSignals/AreSignals.context.mjs.map +1 -0
- package/dist/node/lib/AreSignals/AreSignals.meta.d.mts +15 -0
- package/dist/node/lib/AreSignals/AreSignals.meta.d.ts +15 -0
- package/dist/node/lib/AreSignals/AreSignals.meta.js +48 -0
- package/dist/node/lib/AreSignals/AreSignals.meta.js.map +1 -0
- package/dist/node/lib/AreSignals/AreSignals.meta.mjs +47 -0
- package/dist/node/lib/AreSignals/AreSignals.meta.mjs.map +1 -0
- package/dist/node/lib/AreSignals/AreSignals.types.d.mts +18 -0
- package/dist/node/lib/AreSignals/AreSignals.types.d.ts +18 -0
- package/dist/node/lib/AreSignals/AreSignals.types.js +4 -0
- package/dist/node/lib/AreSignals/AreSignals.types.js.map +1 -0
- package/dist/node/lib/AreSignals/AreSignals.types.mjs +3 -0
- package/dist/node/lib/AreSignals/AreSignals.types.mjs.map +1 -0
- package/dist/node/lib/AreSignals/entities/AreInit.signal.d.mts +8 -0
- package/dist/node/lib/AreSignals/entities/AreInit.signal.d.ts +8 -0
- package/dist/node/lib/AreSignals/entities/AreInit.signal.js +13 -0
- package/dist/node/lib/AreSignals/entities/AreInit.signal.js.map +1 -0
- package/dist/node/lib/AreSignals/entities/AreInit.signal.mjs +12 -0
- package/dist/node/lib/AreSignals/entities/AreInit.signal.mjs.map +1 -0
- package/dist/node/lib/AreSignals/entities/AreRoute.signal.d.mts +12 -0
- package/dist/node/lib/AreSignals/entities/AreRoute.signal.d.ts +12 -0
- package/dist/node/lib/AreSignals/entities/AreRoute.signal.js +25 -0
- package/dist/node/lib/AreSignals/entities/AreRoute.signal.js.map +1 -0
- package/dist/node/lib/AreSignals/entities/AreRoute.signal.mjs +24 -0
- package/dist/node/lib/AreSignals/entities/AreRoute.signal.mjs.map +1 -0
- package/dist/node/lib/AreStore/AreStore.constants.d.mts +5 -0
- package/dist/node/lib/AreStore/AreStore.constants.d.ts +5 -0
- package/dist/node/lib/AreStore/AreStore.constants.js +9 -0
- package/dist/node/lib/AreStore/AreStore.constants.js.map +1 -0
- package/dist/node/lib/AreStore/AreStore.constants.mjs +9 -0
- package/dist/node/lib/AreStore/AreStore.constants.mjs.map +1 -0
- package/dist/node/lib/AreStore/AreStore.context.d.mts +14 -10
- package/dist/node/lib/AreStore/AreStore.context.d.ts +14 -10
- package/dist/node/lib/AreStore/AreStore.context.js +162 -6
- package/dist/node/lib/AreStore/AreStore.context.js.map +1 -1
- package/dist/node/lib/AreStore/AreStore.context.mjs +162 -6
- package/dist/node/lib/AreStore/AreStore.context.mjs.map +1 -1
- package/dist/node/lib/AreStore/AreStore.types.d.mts +9 -0
- package/dist/node/lib/AreStore/AreStore.types.d.ts +9 -0
- package/dist/node/lib/AreStore/AreStore.types.js +4 -0
- package/dist/node/lib/AreStore/AreStore.types.js.map +1 -0
- package/dist/node/lib/AreStore/AreStore.types.mjs +3 -0
- package/dist/node/lib/AreStore/AreStore.types.mjs.map +1 -0
- package/dist/node/lib/AreSyntax/AreSyntax.constants.d.mts +2 -0
- package/dist/node/lib/AreSyntax/AreSyntax.constants.d.ts +2 -0
- package/dist/node/lib/AreSyntax/AreSyntax.constants.js +4 -0
- package/dist/node/lib/AreSyntax/AreSyntax.constants.js.map +1 -0
- package/dist/node/lib/AreSyntax/AreSyntax.constants.mjs +3 -0
- package/dist/node/lib/AreSyntax/AreSyntax.constants.mjs.map +1 -0
- package/dist/node/lib/AreSyntax/AreSyntax.context.d.mts +99 -51
- package/dist/node/lib/AreSyntax/AreSyntax.context.d.ts +99 -51
- package/dist/node/lib/AreSyntax/AreSyntax.context.js +305 -73
- package/dist/node/lib/AreSyntax/AreSyntax.context.js.map +1 -1
- package/dist/node/lib/AreSyntax/AreSyntax.context.mjs +306 -74
- package/dist/node/lib/AreSyntax/AreSyntax.context.mjs.map +1 -1
- package/dist/node/lib/AreSyntax/AreSyntax.types.d.mts +14 -132
- package/dist/node/lib/AreSyntax/AreSyntax.types.d.ts +14 -132
- package/dist/node/lib/AreSyntax/AreSyntax.types.js.map +1 -1
- package/dist/node/lib/AreSyntax/AreSyntax.types.mjs.map +1 -1
- package/dist/node/lib/AreTokenizer/AreTokenizer.component.d.mts +43 -0
- package/dist/node/lib/AreTokenizer/AreTokenizer.component.d.ts +43 -0
- package/dist/node/lib/AreTokenizer/AreTokenizer.component.js +238 -0
- package/dist/node/lib/AreTokenizer/AreTokenizer.component.js.map +1 -0
- package/dist/node/lib/AreTokenizer/AreTokenizer.component.mjs +228 -0
- package/dist/node/lib/AreTokenizer/AreTokenizer.component.mjs.map +1 -0
- package/dist/node/lib/AreTokenizer/AreTokenizer.error.d.mts +6 -0
- package/dist/node/lib/AreTokenizer/AreTokenizer.error.d.ts +6 -0
- package/dist/node/lib/AreTokenizer/AreTokenizer.error.js +10 -0
- package/dist/node/lib/AreTokenizer/AreTokenizer.error.js.map +1 -0
- package/dist/node/lib/AreTokenizer/AreTokenizer.error.mjs +9 -0
- package/dist/node/lib/AreTokenizer/AreTokenizer.error.mjs.map +1 -0
- package/dist/node/lib/AreTransformer/AreTransformer.component.d.mts +20 -0
- package/dist/node/lib/AreTransformer/AreTransformer.component.d.ts +20 -0
- package/dist/node/lib/AreTransformer/AreTransformer.component.js +48 -0
- package/dist/node/lib/AreTransformer/AreTransformer.component.js.map +1 -0
- package/dist/node/lib/AreTransformer/AreTransformer.component.mjs +38 -0
- package/dist/node/lib/AreTransformer/AreTransformer.component.mjs.map +1 -0
- package/dist/node/lib/AreTransformer/AreTransformer.constants.d.mts +2 -0
- package/dist/node/lib/AreTransformer/AreTransformer.constants.d.ts +2 -0
- package/dist/node/lib/AreTransformer/AreTransformer.constants.js +4 -0
- package/dist/node/lib/AreTransformer/AreTransformer.constants.js.map +1 -0
- package/dist/node/lib/AreTransformer/AreTransformer.constants.mjs +3 -0
- package/dist/node/lib/AreTransformer/AreTransformer.constants.mjs.map +1 -0
- package/dist/node/lib/AreTransformer/AreTransformer.types.d.mts +2 -0
- package/dist/node/lib/AreTransformer/AreTransformer.types.d.ts +2 -0
- package/dist/node/lib/AreTransformer/AreTransformer.types.js +4 -0
- package/dist/node/lib/AreTransformer/AreTransformer.types.js.map +1 -0
- package/dist/node/lib/AreTransformer/AreTransformer.types.mjs +3 -0
- package/dist/node/lib/AreTransformer/AreTransformer.types.mjs.map +1 -0
- package/dist/node/lib/AreWatcher/AreWatcher.component.d.mts +18 -0
- package/dist/node/lib/AreWatcher/AreWatcher.component.d.ts +18 -0
- package/dist/node/lib/AreWatcher/AreWatcher.component.js +78 -0
- package/dist/node/lib/AreWatcher/AreWatcher.component.js.map +1 -0
- package/dist/node/lib/AreWatcher/AreWatcher.component.mjs +71 -0
- package/dist/node/lib/AreWatcher/AreWatcher.component.mjs.map +1 -0
- package/dist/node/lib/AreWatcher/AreWatcher.constants.d.mts +2 -0
- package/dist/node/lib/AreWatcher/AreWatcher.constants.d.ts +2 -0
- package/dist/node/lib/AreWatcher/AreWatcher.constants.js +4 -0
- package/dist/node/lib/AreWatcher/AreWatcher.constants.js.map +1 -0
- package/dist/node/lib/AreWatcher/AreWatcher.constants.mjs +3 -0
- package/dist/node/lib/AreWatcher/AreWatcher.constants.mjs.map +1 -0
- package/dist/node/lib/AreWatcher/AreWatcher.context.d.mts +2 -0
- package/dist/node/lib/AreWatcher/AreWatcher.context.d.ts +2 -0
- package/dist/node/lib/AreWatcher/AreWatcher.context.js +4 -0
- package/dist/node/lib/AreWatcher/AreWatcher.context.js.map +1 -0
- package/dist/node/lib/AreWatcher/AreWatcher.context.mjs +3 -0
- package/dist/node/lib/AreWatcher/AreWatcher.context.mjs.map +1 -0
- package/dist/node/lib/AreWatcher/AreWatcher.types.d.mts +2 -0
- package/dist/node/lib/AreWatcher/AreWatcher.types.d.ts +2 -0
- package/dist/node/lib/AreWatcher/AreWatcher.types.js +4 -0
- package/dist/node/lib/AreWatcher/AreWatcher.types.js.map +1 -0
- package/dist/node/lib/AreWatcher/AreWatcher.types.mjs +3 -0
- package/dist/node/lib/AreWatcher/AreWatcher.types.mjs.map +1 -0
- package/jest.config.ts +30 -19
- package/package.json +39 -23
- package/src/index.ts +92 -15
- package/src/lib/AreAttribute/AreAttribute.constants.ts +22 -0
- package/src/lib/AreAttribute/AreAttribute.entity.ts +136 -0
- package/src/lib/AreAttribute/AreAttribute.types.ts +51 -0
- package/src/lib/AreCompiler/AreCompiler.component.ts +48 -980
- package/src/lib/AreComponent/Are.component.ts +102 -50
- package/src/lib/AreComponent/Are.constants.ts +59 -39
- package/src/lib/AreComponent/Are.context.ts +120 -8
- package/src/lib/AreComponent/Are.meta.ts +16 -0
- package/src/lib/AreComponent/Are.types.ts +30 -0
- package/src/lib/AreEngine/AreEngine.component.ts +317 -0
- package/src/lib/AreEngine/AreEngine.constants.ts +7 -0
- package/src/lib/AreEngine/AreEngine.error.ts +9 -0
- package/src/lib/AreEngine/AreEngine.types.ts +24 -0
- package/src/lib/AreEvent/AreEvent.context.ts +3 -27
- package/src/lib/AreInstruction/AreInstruction.constants.ts +23 -0
- package/src/lib/AreInstruction/AreInstruction.entity.ts +207 -0
- package/src/lib/AreInstruction/AreInstruction.error.ts +7 -0
- package/src/lib/AreInstruction/AreInstruction.types.ts +63 -0
- package/src/lib/AreInstruction/types/AreDeclaration.instruction.ts +77 -0
- package/src/lib/AreInstruction/types/AreMutation.instruction.ts +87 -0
- package/src/lib/AreInterpreter/AreInterpreter.component.ts +208 -0
- package/src/lib/AreInterpreter/AreInterpreter.error.ts +6 -0
- package/src/lib/AreLifecycle/AreLifecycle.component.ts +638 -0
- package/src/lib/AreLifecycle/AreLifecycle.constants.ts +0 -0
- package/src/lib/AreLifecycle/AreLifecycle.error.ts +9 -0
- package/src/lib/AreLifecycle/AreLifecycle.types.ts +0 -0
- package/src/lib/AreLoader/AreLoader.component.ts +89 -0
- package/src/lib/AreLoader/AreLoader.constants.ts +0 -0
- package/src/lib/AreLoader/AreLoader.error.ts +10 -0
- package/src/lib/AreLoader/AreLoader.types.ts +0 -0
- package/src/lib/AreNode/AreNode.constants.ts +111 -16
- package/src/lib/AreNode/AreNode.entity.ts +380 -91
- package/src/lib/AreNode/AreNode.types.ts +7 -11
- package/src/lib/AreScene/AreScene.constants.ts +7 -0
- package/src/lib/AreScene/AreScene.context.ts +305 -284
- package/src/lib/AreScene/AreScene.error.ts +9 -1
- package/src/lib/AreScene/AreScene.types.ts +21 -3
- package/src/lib/AreSignals/AreSignal.entity.ts +17 -0
- package/src/lib/AreSignals/AreSignals.component.ts +98 -0
- package/src/lib/AreSignals/AreSignals.constants.ts +0 -0
- package/src/lib/AreSignals/AreSignals.context.ts +196 -0
- package/src/lib/AreSignals/AreSignals.meta.ts +75 -0
- package/src/lib/AreSignals/AreSignals.types.ts +18 -0
- package/src/lib/AreSignals/entities/AreInit.signal.ts +7 -0
- package/src/lib/AreSignals/entities/AreRoute.signal.ts +27 -0
- package/src/lib/AreStore/AreStore.constants.ts +6 -0
- package/src/lib/AreStore/AreStore.context.ts +243 -14
- package/src/lib/AreStore/AreStore.types.ts +19 -0
- package/src/lib/AreSyntax/AreSyntax.constants.ts +0 -0
- package/src/lib/AreSyntax/AreSyntax.context.ts +352 -78
- package/src/lib/AreSyntax/AreSyntax.types.ts +75 -139
- package/src/lib/AreTokenizer/AreTokenizer.component.ts +289 -0
- package/src/lib/AreTokenizer/AreTokenizer.error.ts +7 -0
- package/src/lib/AreTransformer/AreTransformer.component.ts +46 -0
- package/src/lib/AreTransformer/AreTransformer.constants.ts +0 -0
- package/src/lib/AreTransformer/AreTransformer.types.ts +0 -0
- package/src/lib/AreWatcher/AreWatcher.component.ts +84 -0
- package/src/lib/AreWatcher/AreWatcher.constants.ts +0 -0
- package/src/lib/AreWatcher/AreWatcher.context.ts +0 -0
- package/src/lib/AreWatcher/AreWatcher.types.ts +0 -0
- package/tests/AreInstruction.test.ts +73 -0
- package/tests/AreScene.test.ts +62 -0
- package/tests/AreSignals.test.ts +55 -0
- package/tests/AreTokenizer.test.ts +254 -0
- package/tests/jest.setup.ts +30 -0
- package/tsconfig.json +19 -19
- package/tsup.config.ts +6 -0
- package/dist/node/engines/html/AreHTML.compiler.d.mts +0 -114
- package/dist/node/engines/html/AreHTML.compiler.d.ts +0 -114
- package/dist/node/engines/html/AreHTML.compiler.js +0 -408
- package/dist/node/engines/html/AreHTML.compiler.js.map +0 -1
- package/dist/node/engines/html/AreHTML.compiler.mjs +0 -398
- package/dist/node/engines/html/AreHTML.compiler.mjs.map +0 -1
- package/dist/node/engines/html/AreHTML.engine.d.mts +0 -36
- package/dist/node/engines/html/AreHTML.engine.d.ts +0 -36
- package/dist/node/engines/html/AreHTML.engine.js +0 -122
- package/dist/node/engines/html/AreHTML.engine.js.map +0 -1
- package/dist/node/engines/html/AreHTML.engine.mjs +0 -112
- package/dist/node/engines/html/AreHTML.engine.mjs.map +0 -1
- package/dist/node/engines/html/index.d.mts +0 -26
- package/dist/node/engines/html/index.d.ts +0 -26
- package/dist/node/engines/html/index.js +0 -17
- package/dist/node/engines/html/index.js.map +0 -1
- package/dist/node/engines/html/index.mjs +0 -5
- package/dist/node/engines/html/index.mjs.map +0 -1
- package/dist/node/engines/json/AreJSON.compiler.d.mts +0 -21
- package/dist/node/engines/json/AreJSON.compiler.d.ts +0 -21
- package/dist/node/engines/json/AreJSON.compiler.js +0 -24
- package/dist/node/engines/json/AreJSON.compiler.js.map +0 -1
- package/dist/node/engines/json/AreJSON.compiler.mjs +0 -17
- package/dist/node/engines/json/AreJSON.compiler.mjs.map +0 -1
- package/dist/node/index-BD-6iOuR.d.ts +0 -238
- package/dist/node/index-DMXWCL7R.d.mts +0 -238
- package/dist/node/lib/AreApp/AreApp.container.d.mts +0 -22
- package/dist/node/lib/AreApp/AreApp.container.d.ts +0 -22
- package/dist/node/lib/AreApp/AreApp.container.js +0 -60
- package/dist/node/lib/AreApp/AreApp.container.js.map +0 -1
- package/dist/node/lib/AreApp/AreApp.container.mjs +0 -48
- package/dist/node/lib/AreApp/AreApp.container.mjs.map +0 -1
- package/dist/node/lib/AreApp/AreApp.env.js +0 -4
- package/dist/node/lib/AreApp/AreApp.env.js.map +0 -1
- package/dist/node/lib/AreApp/AreApp.env.mjs +0 -3
- package/dist/node/lib/AreApp/AreApp.env.mjs.map +0 -1
- package/dist/node/lib/AreApp/AreApp.error.d.mts +0 -6
- package/dist/node/lib/AreApp/AreApp.error.d.ts +0 -6
- package/dist/node/lib/AreApp/AreApp.error.js +0 -10
- package/dist/node/lib/AreApp/AreApp.error.js.map +0 -1
- package/dist/node/lib/AreApp/AreApp.error.mjs +0 -9
- package/dist/node/lib/AreApp/AreApp.error.mjs.map +0 -1
- package/dist/node/lib/AreApp/AreApp.types.js +0 -4
- package/dist/node/lib/AreApp/AreApp.types.js.map +0 -1
- package/dist/node/lib/AreApp/AreApp.types.mjs +0 -3
- package/dist/node/lib/AreApp/AreApp.types.mjs.map +0 -1
- package/dist/node/lib/AreApp/index.d.mts +0 -17
- package/dist/node/lib/AreApp/index.d.ts +0 -17
- package/dist/node/lib/AreApp/index.js +0 -24
- package/dist/node/lib/AreApp/index.js.map +0 -1
- package/dist/node/lib/AreApp/index.mjs +0 -6
- package/dist/node/lib/AreApp/index.mjs.map +0 -1
- package/dist/node/lib/AreCompiler/index.d.mts +0 -17
- package/dist/node/lib/AreCompiler/index.d.ts +0 -17
- package/dist/node/lib/AreCompiler/index.js +0 -24
- package/dist/node/lib/AreCompiler/index.js.map +0 -1
- package/dist/node/lib/AreCompiler/index.mjs +0 -6
- package/dist/node/lib/AreCompiler/index.mjs.map +0 -1
- package/dist/node/lib/AreComponent/index.d.mts +0 -11
- package/dist/node/lib/AreComponent/index.d.ts +0 -11
- package/dist/node/lib/AreComponent/index.js +0 -31
- package/dist/node/lib/AreComponent/index.js.map +0 -1
- package/dist/node/lib/AreComponent/index.mjs +0 -7
- package/dist/node/lib/AreComponent/index.mjs.map +0 -1
- package/dist/node/lib/AreEvent/index.d.mts +0 -8
- package/dist/node/lib/AreEvent/index.d.ts +0 -8
- package/dist/node/lib/AreEvent/index.js +0 -19
- package/dist/node/lib/AreEvent/index.js.map +0 -1
- package/dist/node/lib/AreEvent/index.mjs +0 -5
- package/dist/node/lib/AreEvent/index.mjs.map +0 -1
- package/dist/node/lib/AreIndex/AreIndex.context.d.mts +0 -8
- package/dist/node/lib/AreIndex/AreIndex.context.d.ts +0 -8
- package/dist/node/lib/AreIndex/AreIndex.context.js +0 -142
- package/dist/node/lib/AreIndex/AreIndex.context.js.map +0 -1
- package/dist/node/lib/AreIndex/AreIndex.context.mjs +0 -141
- package/dist/node/lib/AreIndex/AreIndex.context.mjs.map +0 -1
- package/dist/node/lib/AreIndex/index.d.mts +0 -8
- package/dist/node/lib/AreIndex/index.d.ts +0 -8
- package/dist/node/lib/AreIndex/index.js +0 -12
- package/dist/node/lib/AreIndex/index.js.map +0 -1
- package/dist/node/lib/AreIndex/index.mjs +0 -4
- package/dist/node/lib/AreIndex/index.mjs.map +0 -1
- package/dist/node/lib/AreNode/index.d.mts +0 -9
- package/dist/node/lib/AreNode/index.d.ts +0 -9
- package/dist/node/lib/AreNode/index.js +0 -26
- package/dist/node/lib/AreNode/index.js.map +0 -1
- package/dist/node/lib/AreNode/index.mjs +0 -6
- package/dist/node/lib/AreNode/index.mjs.map +0 -1
- package/dist/node/lib/AreProps/AreProps.context.d.mts +0 -9
- package/dist/node/lib/AreProps/AreProps.context.d.ts +0 -9
- package/dist/node/lib/AreProps/AreProps.context.js +0 -32
- package/dist/node/lib/AreProps/AreProps.context.js.map +0 -1
- package/dist/node/lib/AreProps/AreProps.context.mjs +0 -25
- package/dist/node/lib/AreProps/AreProps.context.mjs.map +0 -1
- package/dist/node/lib/AreProps/index.d.mts +0 -3
- package/dist/node/lib/AreProps/index.d.ts +0 -3
- package/dist/node/lib/AreProps/index.js +0 -12
- package/dist/node/lib/AreProps/index.js.map +0 -1
- package/dist/node/lib/AreProps/index.mjs +0 -4
- package/dist/node/lib/AreProps/index.mjs.map +0 -1
- package/dist/node/lib/AreRoot/AreRoot.component.d.mts +0 -18
- package/dist/node/lib/AreRoot/AreRoot.component.d.ts +0 -18
- package/dist/node/lib/AreRoot/AreRoot.component.js +0 -53
- package/dist/node/lib/AreRoot/AreRoot.component.js.map +0 -1
- package/dist/node/lib/AreRoot/AreRoot.component.mjs +0 -41
- package/dist/node/lib/AreRoot/AreRoot.component.mjs.map +0 -1
- package/dist/node/lib/AreRoot/index.d.mts +0 -11
- package/dist/node/lib/AreRoot/index.d.ts +0 -11
- package/dist/node/lib/AreRoot/index.js +0 -12
- package/dist/node/lib/AreRoot/index.js.map +0 -1
- package/dist/node/lib/AreRoot/index.mjs +0 -4
- package/dist/node/lib/AreRoot/index.mjs.map +0 -1
- package/dist/node/lib/AreRouter/AreRouter.componeent.d.mts +0 -17
- package/dist/node/lib/AreRouter/AreRouter.componeent.d.ts +0 -17
- package/dist/node/lib/AreRouter/AreRouter.componeent.js +0 -37
- package/dist/node/lib/AreRouter/AreRouter.componeent.js.map +0 -1
- package/dist/node/lib/AreRouter/AreRouter.componeent.mjs +0 -25
- package/dist/node/lib/AreRouter/AreRouter.componeent.mjs.map +0 -1
- package/dist/node/lib/AreRouter/index.d.mts +0 -12
- package/dist/node/lib/AreRouter/index.d.ts +0 -12
- package/dist/node/lib/AreRouter/index.js +0 -12
- package/dist/node/lib/AreRouter/index.js.map +0 -1
- package/dist/node/lib/AreRouter/index.mjs +0 -4
- package/dist/node/lib/AreRouter/index.mjs.map +0 -1
- package/dist/node/lib/AreScene/index.d.mts +0 -9
- package/dist/node/lib/AreScene/index.d.ts +0 -9
- package/dist/node/lib/AreScene/index.js +0 -24
- package/dist/node/lib/AreScene/index.js.map +0 -1
- package/dist/node/lib/AreScene/index.mjs +0 -6
- package/dist/node/lib/AreScene/index.mjs.map +0 -1
- package/dist/node/lib/AreSceneInstruction/AreSceneInstruction.constants.d.mts +0 -7
- package/dist/node/lib/AreSceneInstruction/AreSceneInstruction.constants.d.ts +0 -7
- package/dist/node/lib/AreSceneInstruction/AreSceneInstruction.constants.js +0 -12
- package/dist/node/lib/AreSceneInstruction/AreSceneInstruction.constants.js.map +0 -1
- package/dist/node/lib/AreSceneInstruction/AreSceneInstruction.constants.mjs +0 -12
- package/dist/node/lib/AreSceneInstruction/AreSceneInstruction.constants.mjs.map +0 -1
- package/dist/node/lib/AreSceneInstruction/AreSceneInstruction.entity.d.mts +0 -8
- package/dist/node/lib/AreSceneInstruction/AreSceneInstruction.entity.d.ts +0 -8
- package/dist/node/lib/AreSceneInstruction/AreSceneInstruction.entity.js +0 -95
- package/dist/node/lib/AreSceneInstruction/AreSceneInstruction.entity.js.map +0 -1
- package/dist/node/lib/AreSceneInstruction/AreSceneInstruction.entity.mjs +0 -94
- package/dist/node/lib/AreSceneInstruction/AreSceneInstruction.entity.mjs.map +0 -1
- package/dist/node/lib/AreSceneInstruction/AreSceneInstruction.types.d.mts +0 -8
- package/dist/node/lib/AreSceneInstruction/AreSceneInstruction.types.d.ts +0 -8
- package/dist/node/lib/AreSceneInstruction/AreSceneInstruction.types.js +0 -4
- package/dist/node/lib/AreSceneInstruction/AreSceneInstruction.types.js.map +0 -1
- package/dist/node/lib/AreSceneInstruction/AreSceneInstruction.types.mjs +0 -3
- package/dist/node/lib/AreSceneInstruction/AreSceneInstruction.types.mjs.map +0 -1
- package/dist/node/lib/AreSceneInstruction/index.d.mts +0 -19
- package/dist/node/lib/AreSceneInstruction/index.d.ts +0 -19
- package/dist/node/lib/AreSceneInstruction/index.js +0 -33
- package/dist/node/lib/AreSceneInstruction/index.js.map +0 -1
- package/dist/node/lib/AreSceneInstruction/index.mjs +0 -7
- package/dist/node/lib/AreSceneInstruction/index.mjs.map +0 -1
- package/dist/node/lib/AreSceneInstruction/types/AddAttribute.instruction.d.mts +0 -19
- package/dist/node/lib/AreSceneInstruction/types/AddAttribute.instruction.d.ts +0 -19
- package/dist/node/lib/AreSceneInstruction/types/AddAttribute.instruction.js +0 -27
- package/dist/node/lib/AreSceneInstruction/types/AddAttribute.instruction.js.map +0 -1
- package/dist/node/lib/AreSceneInstruction/types/AddAttribute.instruction.mjs +0 -26
- package/dist/node/lib/AreSceneInstruction/types/AddAttribute.instruction.mjs.map +0 -1
- package/dist/node/lib/AreSceneInstruction/types/AddDirective.instruction.d.mts +0 -20
- package/dist/node/lib/AreSceneInstruction/types/AddDirective.instruction.d.ts +0 -20
- package/dist/node/lib/AreSceneInstruction/types/AddDirective.instruction.js +0 -27
- package/dist/node/lib/AreSceneInstruction/types/AddDirective.instruction.js.map +0 -1
- package/dist/node/lib/AreSceneInstruction/types/AddDirective.instruction.mjs +0 -26
- package/dist/node/lib/AreSceneInstruction/types/AddDirective.instruction.mjs.map +0 -1
- package/dist/node/lib/AreSceneInstruction/types/AddStyle.instruction.d.mts +0 -17
- package/dist/node/lib/AreSceneInstruction/types/AddStyle.instruction.d.ts +0 -17
- package/dist/node/lib/AreSceneInstruction/types/AddStyle.instruction.js +0 -23
- package/dist/node/lib/AreSceneInstruction/types/AddStyle.instruction.js.map +0 -1
- package/dist/node/lib/AreSceneInstruction/types/AddStyle.instruction.mjs +0 -22
- package/dist/node/lib/AreSceneInstruction/types/AddStyle.instruction.mjs.map +0 -1
- package/dist/node/lib/AreSceneInstruction/types/AddStyleProperty.instruction.d.mts +0 -19
- package/dist/node/lib/AreSceneInstruction/types/AddStyleProperty.instruction.d.ts +0 -19
- package/dist/node/lib/AreSceneInstruction/types/AddStyleProperty.instruction.js +0 -27
- package/dist/node/lib/AreSceneInstruction/types/AddStyleProperty.instruction.js.map +0 -1
- package/dist/node/lib/AreSceneInstruction/types/AddStyleProperty.instruction.mjs +0 -26
- package/dist/node/lib/AreSceneInstruction/types/AddStyleProperty.instruction.mjs.map +0 -1
- package/dist/node/lib/AreSceneInstruction/types/AttachListener.instruction.d.mts +0 -23
- package/dist/node/lib/AreSceneInstruction/types/AttachListener.instruction.d.ts +0 -23
- package/dist/node/lib/AreSceneInstruction/types/AttachListener.instruction.js +0 -41
- package/dist/node/lib/AreSceneInstruction/types/AttachListener.instruction.js.map +0 -1
- package/dist/node/lib/AreSceneInstruction/types/AttachListener.instruction.mjs +0 -40
- package/dist/node/lib/AreSceneInstruction/types/AttachListener.instruction.mjs.map +0 -1
- package/dist/node/lib/AreSceneInstruction/types/AttachRootNode.instruction.d.mts +0 -15
- package/dist/node/lib/AreSceneInstruction/types/AttachRootNode.instruction.d.ts +0 -15
- package/dist/node/lib/AreSceneInstruction/types/AttachRootNode.instruction.js +0 -21
- package/dist/node/lib/AreSceneInstruction/types/AttachRootNode.instruction.js.map +0 -1
- package/dist/node/lib/AreSceneInstruction/types/AttachRootNode.instruction.mjs +0 -20
- package/dist/node/lib/AreSceneInstruction/types/AttachRootNode.instruction.mjs.map +0 -1
- package/dist/node/lib/AreSceneInstruction/types/MountNode.instruction.d.mts +0 -17
- package/dist/node/lib/AreSceneInstruction/types/MountNode.instruction.d.ts +0 -17
- package/dist/node/lib/AreSceneInstruction/types/MountNode.instruction.js +0 -23
- package/dist/node/lib/AreSceneInstruction/types/MountNode.instruction.js.map +0 -1
- package/dist/node/lib/AreSceneInstruction/types/MountNode.instruction.mjs +0 -22
- package/dist/node/lib/AreSceneInstruction/types/MountNode.instruction.mjs.map +0 -1
- package/dist/node/lib/AreSceneInstruction/types/ReplaceInterpolation.instruction.d.mts +0 -23
- package/dist/node/lib/AreSceneInstruction/types/ReplaceInterpolation.instruction.d.ts +0 -23
- package/dist/node/lib/AreSceneInstruction/types/ReplaceInterpolation.instruction.js +0 -34
- package/dist/node/lib/AreSceneInstruction/types/ReplaceInterpolation.instruction.js.map +0 -1
- package/dist/node/lib/AreSceneInstruction/types/ReplaceInterpolation.instruction.mjs +0 -33
- package/dist/node/lib/AreSceneInstruction/types/ReplaceInterpolation.instruction.mjs.map +0 -1
- package/dist/node/lib/AreSceneInstruction/types/UnmountNode.instruction.d.mts +0 -16
- package/dist/node/lib/AreSceneInstruction/types/UnmountNode.instruction.d.ts +0 -16
- package/dist/node/lib/AreSceneInstruction/types/UnmountNode.instruction.js +0 -20
- package/dist/node/lib/AreSceneInstruction/types/UnmountNode.instruction.js.map +0 -1
- package/dist/node/lib/AreSceneInstruction/types/UnmountNode.instruction.mjs +0 -19
- package/dist/node/lib/AreSceneInstruction/types/UnmountNode.instruction.mjs.map +0 -1
- package/dist/node/lib/AreSceneInstruction/types/index.d.mts +0 -18
- package/dist/node/lib/AreSceneInstruction/types/index.d.ts +0 -18
- package/dist/node/lib/AreSceneInstruction/types/index.js +0 -52
- package/dist/node/lib/AreSceneInstruction/types/index.js.map +0 -1
- package/dist/node/lib/AreSceneInstruction/types/index.mjs +0 -12
- package/dist/node/lib/AreSceneInstruction/types/index.mjs.map +0 -1
- package/dist/node/lib/AreSlot/AreSlot.component.d.mts +0 -8
- package/dist/node/lib/AreSlot/AreSlot.component.d.ts +0 -8
- package/dist/node/lib/AreSlot/AreSlot.component.js +0 -37
- package/dist/node/lib/AreSlot/AreSlot.component.js.map +0 -1
- package/dist/node/lib/AreSlot/AreSlot.component.mjs +0 -36
- package/dist/node/lib/AreSlot/AreSlot.component.mjs.map +0 -1
- package/dist/node/lib/AreStore/index.d.mts +0 -3
- package/dist/node/lib/AreStore/index.d.ts +0 -3
- package/dist/node/lib/AreStore/index.js +0 -12
- package/dist/node/lib/AreStore/index.js.map +0 -1
- package/dist/node/lib/AreStore/index.mjs +0 -4
- package/dist/node/lib/AreStore/index.mjs.map +0 -1
- package/dist/node/lib/AreSyntax/AreSyntax.component.d.mts +0 -89
- package/dist/node/lib/AreSyntax/AreSyntax.component.d.ts +0 -89
- package/dist/node/lib/AreSyntax/AreSyntax.component.js +0 -241
- package/dist/node/lib/AreSyntax/AreSyntax.component.js.map +0 -1
- package/dist/node/lib/AreSyntax/AreSyntax.component.mjs +0 -232
- package/dist/node/lib/AreSyntax/AreSyntax.component.mjs.map +0 -1
- package/dist/node/lib/AreSyntax/index.d.mts +0 -12
- package/dist/node/lib/AreSyntax/index.d.ts +0 -12
- package/dist/node/lib/AreSyntax/index.js +0 -29
- package/dist/node/lib/AreSyntax/index.js.map +0 -1
- package/dist/node/lib/AreSyntax/index.mjs +0 -7
- package/dist/node/lib/AreSyntax/index.mjs.map +0 -1
- package/dist/node/signals/AreInit.signal.d.mts +0 -7
- package/dist/node/signals/AreInit.signal.d.ts +0 -7
- package/dist/node/signals/AreInit.signal.js +0 -13
- package/dist/node/signals/AreInit.signal.js.map +0 -1
- package/dist/node/signals/AreInit.signal.mjs +0 -12
- package/dist/node/signals/AreInit.signal.mjs.map +0 -1
- package/dist/node/signals/AreRoute.signal.d.mts +0 -12
- package/dist/node/signals/AreRoute.signal.d.ts +0 -12
- package/dist/node/signals/AreRoute.signal.js +0 -24
- package/dist/node/signals/AreRoute.signal.js.map +0 -1
- package/dist/node/signals/AreRoute.signal.mjs +0 -23
- package/dist/node/signals/AreRoute.signal.mjs.map +0 -1
- package/dist/node/signals/index.d.mts +0 -4
- package/dist/node/signals/index.d.ts +0 -4
- package/dist/node/signals/index.js +0 -17
- package/dist/node/signals/index.js.map +0 -1
- package/dist/node/signals/index.mjs +0 -5
- package/dist/node/signals/index.mjs.map +0 -1
- package/examples/jumpstart/concept.ts +0 -60
- package/examples/jumpstart/containers/UI.container.ts +0 -172
- package/examples/jumpstart/dist/index.html +0 -22
- package/examples/jumpstart/dist/mls3rrlq-lofs95.js +0 -129
- package/examples/jumpstart/dist/static/css/main.css +0 -40
- package/examples/jumpstart/dist/static/img/test.png +0 -0
- package/examples/jumpstart/public/index.html +0 -22
- package/examples/jumpstart/public/static/css/main.css +0 -40
- package/examples/jumpstart/public/static/img/test.png +0 -0
- package/examples/jumpstart/src/components/A-Btn.component.ts +0 -124
- package/examples/jumpstart/src/components/A-Input.component.ts +0 -78
- package/examples/jumpstart/src/components/A-Navigation.component.ts +0 -167
- package/examples/jumpstart/src/components/SignInComponent.component.ts +0 -127
- package/examples/jumpstart/src/concept.ts +0 -92
- package/src/engines/html/AreHTML.compiler.ts +0 -657
- package/src/engines/html/AreHTML.engine.ts +0 -62
- package/src/engines/html/index.ts +0 -2
- package/src/engines/json/AreJSON.compiler.ts +0 -13
- package/src/lib/AreApp/AreApp.container.ts +0 -77
- package/src/lib/AreApp/AreApp.error.ts +0 -7
- package/src/lib/AreApp/index.ts +0 -4
- package/src/lib/AreCompiler/index.ts +0 -3
- package/src/lib/AreComponent/index.ts +0 -4
- package/src/lib/AreEvent/index.ts +0 -2
- package/src/lib/AreIndex/AreIndex.context.ts +0 -174
- package/src/lib/AreIndex/index.ts +0 -1
- package/src/lib/AreNode/index.ts +0 -4
- package/src/lib/AreProps/AreProps.context.ts +0 -26
- package/src/lib/AreProps/index.ts +0 -1
- package/src/lib/AreRoot/AreRoot.component.ts +0 -54
- package/src/lib/AreRoot/index.ts +0 -1
- package/src/lib/AreRouter/AreRouter.componeent.ts +0 -24
- package/src/lib/AreRouter/index.ts +0 -1
- package/src/lib/AreScene/index.ts +0 -3
- package/src/lib/AreSceneInstruction/AreSceneInstruction.constants.ts +0 -7
- package/src/lib/AreSceneInstruction/AreSceneInstruction.entity.ts +0 -156
- package/src/lib/AreSceneInstruction/AreSceneInstruction.types.ts +0 -8
- package/src/lib/AreSceneInstruction/index.ts +0 -4
- package/src/lib/AreSceneInstruction/types/AddAttribute.instruction.ts +0 -34
- package/src/lib/AreSceneInstruction/types/AddDirective.instruction.ts +0 -36
- package/src/lib/AreSceneInstruction/types/AddStyle.instruction.ts +0 -26
- package/src/lib/AreSceneInstruction/types/AddStyleProperty.instruction.ts +0 -32
- package/src/lib/AreSceneInstruction/types/AttachListener.instruction.ts +0 -57
- package/src/lib/AreSceneInstruction/types/AttachRootNode.instruction.ts +0 -23
- package/src/lib/AreSceneInstruction/types/MountNode.instruction.ts +0 -29
- package/src/lib/AreSceneInstruction/types/ReplaceInterpolation.instruction.ts +0 -45
- package/src/lib/AreSceneInstruction/types/UnmountNode.instruction.ts +0 -22
- package/src/lib/AreSceneInstruction/types/index.ts +0 -10
- package/src/lib/AreSlot/AreSlot.component.ts +0 -48
- package/src/lib/AreStore/index.ts +0 -1
- package/src/lib/AreSyntax/AreSyntax.component.ts +0 -378
- package/src/lib/AreSyntax/index.ts +0 -4
- package/src/signals/AreInit.signal.ts +0 -7
- package/src/signals/AreRoute.signal.ts +0 -25
- package/src/signals/index.ts +0 -2
- package/tests/A-HttpChannel.test.ts +0 -204
- package/tests/A-HttpServerError.test.ts +0 -204
- package/tests/A-Request.test.ts +0 -742
- package/tests/A-Service.test.ts +0 -18
- /package/dist/node/lib/{AreApp/AreApp.env.d.mts → AreInterpreter/AreInterpreter.constants.d.mts} +0 -0
- /package/dist/node/lib/{AreApp/AreApp.env.d.ts → AreInterpreter/AreInterpreter.constants.d.ts} +0 -0
- /package/dist/node/lib/{AreApp/AreApp.types.d.mts → AreInterpreter/AreInterpreter.types.d.mts} +0 -0
- /package/dist/node/lib/{AreApp/AreApp.types.d.ts → AreInterpreter/AreInterpreter.types.d.ts} +0 -0
- /package/src/lib/{AreApp/AreApp.env.ts → AreInterpreter/AreInterpreter.constants.ts} +0 -0
- /package/src/lib/{AreApp/AreApp.types.ts → AreInterpreter/AreInterpreter.types.ts} +0 -0
|
@@ -1,249 +1,347 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
var aConcept = require('@adaas/a-concept');
|
|
4
|
-
var
|
|
5
|
-
var
|
|
6
|
-
var
|
|
7
|
-
var
|
|
8
|
-
var
|
|
4
|
+
var aFrame = require('@adaas/a-frame');
|
|
5
|
+
var AreDeclaration_instruction = require('@adaas/are/instruction/types/AreDeclaration.instruction');
|
|
6
|
+
var AreInstruction_entity = require('@adaas/are/instruction/AreInstruction.entity');
|
|
7
|
+
var AreScene_error = require('./AreScene.error');
|
|
8
|
+
var AreMutation_instruction = require('@adaas/are/instruction/types/AreMutation.instruction');
|
|
9
|
+
var AreScene_constants = require('./AreScene.constants');
|
|
9
10
|
|
|
10
|
-
|
|
11
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
12
|
+
var __decorateClass = (decorators, target, key, kind) => {
|
|
13
|
+
var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;
|
|
14
|
+
for (var i = decorators.length - 1, decorator; i >= 0; i--)
|
|
15
|
+
if (decorator = decorators[i])
|
|
16
|
+
result = (decorator(result)) || result;
|
|
17
|
+
return result;
|
|
18
|
+
};
|
|
19
|
+
exports.AreScene = class AreScene extends aConcept.A_Fragment {
|
|
11
20
|
constructor(id) {
|
|
12
21
|
super({ name: id.toString() });
|
|
13
|
-
|
|
22
|
+
// -----------------------------------------------------------------------------------
|
|
23
|
+
// -----------------------------------Scene Index-------------------------------------
|
|
24
|
+
// -----------------------------------------------------------------------------------
|
|
25
|
+
this._groupToInstructionsMap = /* @__PURE__ */ new Map();
|
|
26
|
+
/**
|
|
27
|
+
* Plan is a queue of changes that should be applied to render the node
|
|
28
|
+
*
|
|
29
|
+
* It works as FIFO, so the first instruction that should be applied is the first one in the queue, and so on.
|
|
30
|
+
*/
|
|
31
|
+
this._plan = [];
|
|
32
|
+
/**
|
|
33
|
+
* State is a list of instructions that are currently applied to the node,
|
|
34
|
+
* so it represents the current state of the node in the scene.
|
|
35
|
+
*
|
|
36
|
+
* It always in a reverse order of the plan, so the last instruction in the state is the first one that should be reverted when we need to revert the changes, and so on.
|
|
37
|
+
*
|
|
38
|
+
* For example, if we have a node with two instructions in the plan: [Instruction A, Instruction B], and both of them are applied to the node, then the state will be [Instruction B, Instruction A], so when we need to revert the changes, we will revert Instruction B first, and then Instruction A.
|
|
39
|
+
*/
|
|
40
|
+
this._state = [];
|
|
41
|
+
/**
|
|
42
|
+
* Scene status is used to determine the current lifecycle stage of the scene, which can be 'active', 'inactive' or 'destroyed'. This status can be used to control the behavior of the scene and its instructions, for example, we can prevent applying new instructions to an inactive or destroyed scene, or we can trigger certain actions when the scene becomes active or inactive. The default status of the scene is 'inactive', which means that the scene is not yet rendered and its instructions are not applied, and it will become 'active' when it is mounted and its instructions are applied, and it will become 'destroyed' when it is unmounted and its instructions are reverted.
|
|
43
|
+
*/
|
|
44
|
+
this._status = AreScene_constants.AreSceneStatuses.Active;
|
|
14
45
|
}
|
|
46
|
+
/**
|
|
47
|
+
* Scene ID that corresponds to the root node's ID (part of ASEID)
|
|
48
|
+
*/
|
|
15
49
|
get id() {
|
|
16
50
|
return this.name;
|
|
17
51
|
}
|
|
18
52
|
/**
|
|
19
|
-
*
|
|
53
|
+
* The scope where scene is registered. This scope is owned by AreNode
|
|
20
54
|
*/
|
|
21
|
-
get root() {
|
|
22
|
-
let currentScope = this.scope;
|
|
23
|
-
let rootScene = this;
|
|
24
|
-
while (currentScope) {
|
|
25
|
-
const parentScene = currentScope.parent?.resolve(this.constructor);
|
|
26
|
-
if (parentScene) {
|
|
27
|
-
rootScene = parentScene;
|
|
28
|
-
}
|
|
29
|
-
currentScope = currentScope.parent;
|
|
30
|
-
}
|
|
31
|
-
return rootScene;
|
|
32
|
-
}
|
|
33
55
|
get scope() {
|
|
34
56
|
return aConcept.A_Context.scope(this);
|
|
35
57
|
}
|
|
36
|
-
|
|
37
|
-
|
|
58
|
+
/**
|
|
59
|
+
* The owner node of the scene, which is the node that registered the scene in its scope.
|
|
60
|
+
* This is typically the node that is responsible for rendering the scene and managing its lifecycle.
|
|
61
|
+
*/
|
|
62
|
+
get owner() {
|
|
63
|
+
return this.scope.issuer();
|
|
38
64
|
}
|
|
39
|
-
|
|
40
|
-
|
|
65
|
+
/**
|
|
66
|
+
* It's a primary declaration instruction that represents the node in the scene, so it should be registered as a host instruction for the scene, and it will be used to keep track of the node in the scene and to manage its lifecycle.
|
|
67
|
+
*/
|
|
68
|
+
get host() {
|
|
69
|
+
return this._host;
|
|
41
70
|
}
|
|
42
|
-
|
|
43
|
-
|
|
71
|
+
/**
|
|
72
|
+
* Scene status is used to determine the current lifecycle stage of the scene, which can be 'active', 'inactive' or 'destroyed'. This status can be used to control the behavior of the scene and its instructions, for example, we can prevent applying new instructions to an inactive or destroyed scene, or we can trigger certain actions when the scene becomes active or inactive. The default status of the scene is 'inactive', which means that the scene is not yet rendered and its instructions are not applied, and it will become 'active' when it is mounted and its instructions are applied, and it will become 'destroyed' when it is unmounted and its instructions are reverted.
|
|
73
|
+
*/
|
|
74
|
+
get status() {
|
|
75
|
+
return this._status;
|
|
44
76
|
}
|
|
45
|
-
get
|
|
46
|
-
|
|
47
|
-
let currentScope = this.scope;
|
|
48
|
-
while (currentScope) {
|
|
49
|
-
if (currentScope.parent && currentScope.parent.resolve(this.constructor)) {
|
|
50
|
-
depth++;
|
|
51
|
-
}
|
|
52
|
-
currentScope = currentScope.parent;
|
|
53
|
-
}
|
|
54
|
-
return depth;
|
|
77
|
+
get isActive() {
|
|
78
|
+
return this.status === AreScene_constants.AreSceneStatuses.Active;
|
|
55
79
|
}
|
|
56
|
-
get
|
|
57
|
-
return this.
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
continue;
|
|
80
|
+
get isInactive() {
|
|
81
|
+
return this.status === AreScene_constants.AreSceneStatuses.Inactive;
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Returns All declaration instructions are registered in the scene scope. Since declaration instructions are the main instructions that represent the structure of the node, we have a separate getter for them to easily access and manage them in the scene.
|
|
85
|
+
*/
|
|
86
|
+
get declarations() {
|
|
87
|
+
return this.scope.resolve(new aConcept.A_Dependency(AreDeclaration_instruction.AreDeclaration, {
|
|
88
|
+
flat: true,
|
|
89
|
+
pagination: {
|
|
90
|
+
count: -1
|
|
68
91
|
}
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
const aIndex = order.findIndex((instructionType) => a instanceof instructionType);
|
|
80
|
-
const bIndex = order.findIndex((instructionType) => b instanceof instructionType);
|
|
81
|
-
return (aIndex === -1 ? order.length : aIndex) - (bIndex === -1 ? order.length : bIndex);
|
|
82
|
-
});
|
|
83
|
-
if (filterFn) {
|
|
84
|
-
plan = plan.filter(filterFn);
|
|
85
|
-
}
|
|
86
|
-
for (const action of plan) {
|
|
87
|
-
if (action.node === node) {
|
|
88
|
-
actions.push(action);
|
|
92
|
+
})) || [];
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Returns All mutation instructions are registered in the scene scope. Mutation instructions are the instructions that represent the changes to be applied to the node, so we have a separate getter for them to easily access and manage them in the scene, especially when we want to apply or revert changes based on the mutations.
|
|
96
|
+
*/
|
|
97
|
+
get mutations() {
|
|
98
|
+
return this.scope.resolve(new aConcept.A_Dependency(AreMutation_instruction.AreMutation, {
|
|
99
|
+
flat: true,
|
|
100
|
+
pagination: {
|
|
101
|
+
count: -1
|
|
89
102
|
}
|
|
90
|
-
}
|
|
91
|
-
|
|
103
|
+
})) || [];
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* Returns All instructions are registered in the scene scope.
|
|
107
|
+
*/
|
|
108
|
+
get instructions() {
|
|
109
|
+
return this.scope.resolveFlatAll(AreInstruction_entity.AreInstruction) || [];
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* Plan is a queue of changes that should be applied to render the node
|
|
113
|
+
*
|
|
114
|
+
* It works as FIFO, so the first instruction that should be applied is the first one in the queue, and so on.
|
|
115
|
+
*/
|
|
116
|
+
get planned() {
|
|
117
|
+
return this._plan;
|
|
92
118
|
}
|
|
93
|
-
|
|
94
|
-
|
|
119
|
+
/**
|
|
120
|
+
* State is a list of instructions that are currently applied to the node,
|
|
121
|
+
* so it represents the current state of the node in the scene.
|
|
122
|
+
*
|
|
123
|
+
* It always in a reverse order of the plan, so the last instruction in the state is the first one that should be reverted when we need to revert the changes, and so on.
|
|
124
|
+
*
|
|
125
|
+
* For example, if we have a node with two instructions in the plan: [Instruction A, Instruction B], and both of them are applied to the node, then the state will be [Instruction B, Instruction A], so when we need to revert the changes, we will revert Instruction B first, and then Instruction A.
|
|
126
|
+
*/
|
|
127
|
+
get applied() {
|
|
128
|
+
return this._state.reverse();
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* Should return instructions to be reverted and to be applied.
|
|
132
|
+
* A difference between plan vs state is that plan is what should be applied to the scene,
|
|
133
|
+
* while state is what currently applied to the scene.
|
|
134
|
+
*
|
|
135
|
+
*/
|
|
136
|
+
get changes() {
|
|
137
|
+
const toApply = this.planned.filter((i) => !this.isApplied(i));
|
|
138
|
+
const toRevert = this.applied.filter((i) => !this.isInPlan(i));
|
|
139
|
+
return {
|
|
140
|
+
toApply,
|
|
141
|
+
toRevert
|
|
142
|
+
};
|
|
95
143
|
}
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
144
|
+
//===============================================================================================
|
|
145
|
+
//============================= Scene Primary Methods ===========================================
|
|
146
|
+
//===============================================================================================
|
|
147
|
+
activate() {
|
|
148
|
+
this._status = AreScene_constants.AreSceneStatuses.Active;
|
|
149
|
+
}
|
|
150
|
+
deactivate() {
|
|
151
|
+
this._status = AreScene_constants.AreSceneStatuses.Inactive;
|
|
152
|
+
}
|
|
153
|
+
/**
|
|
154
|
+
* Each scene has a primary declaration instruction that represents the node in the scene, so it should be registered as a host instruction for the scene, and it will be used to keep track of the node in the scene and to manage its lifecycle. This method allows to set the host instruction for the scene, but it will throw an error if we try to set another host instruction while there is already a host instruction set, so we can ensure that there is only one host instruction for the scene at any given time.
|
|
155
|
+
*
|
|
156
|
+
* @param instruction
|
|
157
|
+
*/
|
|
158
|
+
setHost(instruction) {
|
|
159
|
+
if (this.host) {
|
|
160
|
+
const dependentInstructions = this.scope.resolve(new aConcept.A_Dependency(AreMutation_instruction.AreMutation, {
|
|
101
161
|
flat: true,
|
|
162
|
+
pagination: {
|
|
163
|
+
count: -1
|
|
164
|
+
},
|
|
102
165
|
query: {
|
|
103
|
-
|
|
166
|
+
parent: this.host.aseid.toString()
|
|
104
167
|
}
|
|
105
|
-
}));
|
|
106
|
-
|
|
107
|
-
|
|
168
|
+
})) || [];
|
|
169
|
+
dependentInstructions.forEach((element) => {
|
|
170
|
+
element.attachTo(instruction);
|
|
171
|
+
element.groupWith(instruction);
|
|
172
|
+
});
|
|
108
173
|
}
|
|
174
|
+
this._host = instruction;
|
|
109
175
|
}
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
}
|
|
120
|
-
}
|
|
121
|
-
|
|
122
|
-
});
|
|
123
|
-
for (const path of paths) {
|
|
124
|
-
yield path;
|
|
125
|
-
}
|
|
176
|
+
/**
|
|
177
|
+
* Unsets the current host instruction from the scene.
|
|
178
|
+
*
|
|
179
|
+
* This method should be used when we want to remove the primary declaration instruction that represents the node in the scene, for example, when we want to unmount the node or when we want to replace it with another node. Unsetting the host instruction will allow us to set a new host instruction for the scene if needed.
|
|
180
|
+
*/
|
|
181
|
+
removeHost() {
|
|
182
|
+
if (this.host)
|
|
183
|
+
throw new AreScene_error.AreSceneError({
|
|
184
|
+
title: AreScene_error.AreSceneError.HostInstructionHasConnectedInstructions,
|
|
185
|
+
description: `Cannot remove host instruction (${this.host.aseid}) from scene ${this.id} because it has planned instructions in the scene. Please unPlan all instructions related to the host instruction before removing it.`
|
|
186
|
+
});
|
|
187
|
+
this._host = void 0;
|
|
126
188
|
}
|
|
189
|
+
// ------------------------------------------------------------------------------------------------------------
|
|
190
|
+
// Scene Render Plan Methods
|
|
191
|
+
// ------------------------------------------------------------------------------------------------------------
|
|
192
|
+
/**
|
|
193
|
+
* Method that should register the instruction in the plan, so it will be rendered in the next render cycle.
|
|
194
|
+
*
|
|
195
|
+
* @param instruction
|
|
196
|
+
*/
|
|
127
197
|
plan(instruction) {
|
|
128
198
|
try {
|
|
129
199
|
this.scope.register(instruction);
|
|
130
200
|
} catch (error) {
|
|
131
201
|
}
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
try {
|
|
136
|
-
if (planned)
|
|
137
|
-
this.scope.deregister(planned);
|
|
138
|
-
} catch (error) {
|
|
202
|
+
this._plan.push(instruction);
|
|
203
|
+
if (!this._groupToInstructionsMap.has(instruction.group || "default")) {
|
|
204
|
+
this._groupToInstructionsMap.set(instruction.group || "default", /* @__PURE__ */ new Set());
|
|
139
205
|
}
|
|
206
|
+
this._groupToInstructionsMap.get(instruction.group || "default").add(instruction);
|
|
140
207
|
}
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
208
|
+
planBefore(instruction, beforeInstruction) {
|
|
209
|
+
const beforeIndex = this._plan.findIndex((i) => i.aseid.toString() === beforeInstruction.aseid.toString());
|
|
210
|
+
const instructionIndex = this._plan.findIndex((i) => i.aseid.toString() === instruction.aseid.toString());
|
|
211
|
+
if (beforeIndex === -1) {
|
|
212
|
+
throw new AreScene_error.AreSceneError({
|
|
213
|
+
title: AreScene_error.AreSceneError.SceneError,
|
|
214
|
+
description: `Instruction ${beforeInstruction.aseid} is not in the plan of scene ${this.id}. Cannot plan instruction ${instruction.aseid} before it.`
|
|
215
|
+
});
|
|
216
|
+
}
|
|
217
|
+
if (instructionIndex === -1) {
|
|
218
|
+
try {
|
|
219
|
+
this.scope.register(instruction);
|
|
220
|
+
} catch (error) {
|
|
146
221
|
}
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
}
|
|
153
|
-
sceneOf(node) {
|
|
154
|
-
return node.scope.resolveFlat(AreScene);
|
|
222
|
+
this._plan.splice(beforeIndex, 0, instruction);
|
|
223
|
+
} else {
|
|
224
|
+
this._plan.splice(instructionIndex, 1);
|
|
225
|
+
this._plan.splice(beforeIndex, 0, instruction);
|
|
226
|
+
}
|
|
155
227
|
}
|
|
156
|
-
|
|
157
|
-
|
|
228
|
+
planAfter(instruction, afterInstruction) {
|
|
229
|
+
const afterIndex = this._plan.findIndex((i) => i.aseid.toString() === afterInstruction.aseid.toString());
|
|
230
|
+
const instructionIndex = this._plan.findIndex((i) => i.aseid.toString() === instruction.aseid.toString());
|
|
231
|
+
if (afterIndex === -1) {
|
|
232
|
+
throw new AreScene_error.AreSceneError({
|
|
233
|
+
title: AreScene_error.AreSceneError.SceneError,
|
|
234
|
+
description: `Instruction ${afterInstruction.aseid} is not in the plan of scene ${this.id}. Cannot plan instruction ${instruction.aseid} after it.`
|
|
235
|
+
});
|
|
236
|
+
}
|
|
237
|
+
if (instructionIndex === -1) {
|
|
238
|
+
this.scope.register(instruction);
|
|
239
|
+
this._plan.splice(afterIndex + 1, 0, instruction);
|
|
240
|
+
} else {
|
|
241
|
+
this._plan.splice(instructionIndex, 1);
|
|
242
|
+
this._plan.splice(afterIndex + 1, 0, instruction);
|
|
243
|
+
}
|
|
158
244
|
}
|
|
159
|
-
|
|
160
|
-
|
|
245
|
+
moveBefore(instruction, beforeInstruction) {
|
|
246
|
+
if (!this.isInPlan(instruction)) {
|
|
247
|
+
throw new AreScene_error.AreSceneError({
|
|
248
|
+
title: AreScene_error.AreSceneError.SceneError,
|
|
249
|
+
description: `Instruction ${instruction.aseid} is not in the plan of scene ${this.id}. Cannot move instruction before ${beforeInstruction.aseid}. Please plan the instruction before moving it.`
|
|
250
|
+
});
|
|
251
|
+
}
|
|
252
|
+
this.planBefore(instruction, beforeInstruction);
|
|
161
253
|
}
|
|
162
|
-
|
|
163
|
-
|
|
254
|
+
moveAfter(instruction, afterInstruction) {
|
|
255
|
+
if (!this.isInPlan(instruction)) {
|
|
256
|
+
throw new AreScene_error.AreSceneError({
|
|
257
|
+
title: AreScene_error.AreSceneError.SceneError,
|
|
258
|
+
description: `Instruction ${instruction.aseid} is not in the plan of scene ${this.id}. Cannot move instruction after ${afterInstruction.aseid}. Please plan the instruction before moving it.`
|
|
259
|
+
});
|
|
260
|
+
}
|
|
261
|
+
this.planAfter(instruction, afterInstruction);
|
|
164
262
|
}
|
|
165
263
|
/**
|
|
166
|
-
*
|
|
264
|
+
* Allows to remove instruction from the plan, so it will not be rendered anymore, but it will still be registered in the scene scope, so it can be planned again if needed.
|
|
167
265
|
*
|
|
168
|
-
*
|
|
266
|
+
* @param instruction
|
|
267
|
+
*/
|
|
268
|
+
unPlan(instruction) {
|
|
269
|
+
this._plan = this._plan.filter((i) => i.aseid.toString() !== instruction.aseid.toString());
|
|
270
|
+
}
|
|
271
|
+
/**
|
|
272
|
+
* Checks if the instruction is already in the plan, so it will be rendered in the next render cycle.
|
|
169
273
|
*
|
|
170
274
|
* @param instruction
|
|
171
275
|
* @returns
|
|
172
276
|
*/
|
|
173
277
|
getPlanned(instruction) {
|
|
174
|
-
const
|
|
175
|
-
|
|
176
|
-
query: {
|
|
177
|
-
aseid: instruction.aseid.toString()
|
|
178
|
-
}
|
|
179
|
-
}));
|
|
180
|
-
return planned;
|
|
278
|
+
const found = this._plan.find((i) => i.aseid.toString() === instruction.aseid.toString());
|
|
279
|
+
return found;
|
|
181
280
|
}
|
|
182
281
|
/**
|
|
183
|
-
*
|
|
184
|
-
*
|
|
185
|
-
* So only instructions presented in the plan can be moved to state
|
|
186
|
-
* State is a set of instructions that are currently applied to the scene
|
|
282
|
+
* Checks if the instruction is already in the plan, so it will be rendered in the next render cycle.
|
|
187
283
|
*
|
|
188
284
|
* @param instruction
|
|
285
|
+
* @returns
|
|
189
286
|
*/
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
if (planned) {
|
|
193
|
-
this._state.delete(planned.aseid.toString());
|
|
194
|
-
this._state.add(instruction.aseid.toString());
|
|
195
|
-
}
|
|
287
|
+
isInPlan(instruction) {
|
|
288
|
+
return !!this.getPlanned(instruction);
|
|
196
289
|
}
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
290
|
+
// -------------------------------------------------------------------------------------------------------------
|
|
291
|
+
// Scene Apply Methods
|
|
292
|
+
// -------------------------------------------------------------------------------------------------------------
|
|
293
|
+
/**
|
|
294
|
+
* Method moves the instruction to state to keep it applied and to be able to revert it later if needed. The instruction should be already registered in the scene scope and planned to be applied, otherwise it will not be applied.
|
|
295
|
+
*
|
|
296
|
+
* @param instruction
|
|
297
|
+
*/
|
|
298
|
+
apply(instruction) {
|
|
299
|
+
if (!this.isApplied(instruction)) {
|
|
300
|
+
this._state.push(instruction);
|
|
208
301
|
}
|
|
209
302
|
}
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
303
|
+
/**
|
|
304
|
+
* Method moves the instruction from state to unapply it and to be able to apply it later if needed. The instruction should be already registered in the scene scope and applied, otherwise it will not be unapplied.
|
|
305
|
+
*
|
|
306
|
+
* @param instruction
|
|
307
|
+
*/
|
|
308
|
+
unApply(instruction) {
|
|
309
|
+
this._state = this._state.filter((i) => i.aseid.toString() !== instruction.aseid.toString());
|
|
216
310
|
}
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
311
|
+
/**
|
|
312
|
+
* Checks if the instruction is already in the state, so it is currently applied to the scene.
|
|
313
|
+
*
|
|
314
|
+
* @param instruction
|
|
315
|
+
* @returns
|
|
316
|
+
*/
|
|
317
|
+
getApplied(instruction) {
|
|
318
|
+
const found = this._state.find((i) => i.aseid.toString() === instruction.aseid.toString());
|
|
319
|
+
return found;
|
|
226
320
|
}
|
|
227
|
-
|
|
228
|
-
|
|
321
|
+
/**
|
|
322
|
+
* Checks if the instruction is already in the state, so it is currently applied to the scene.
|
|
323
|
+
*
|
|
324
|
+
* @param instruction
|
|
325
|
+
* @returns
|
|
326
|
+
*/
|
|
327
|
+
isApplied(instruction) {
|
|
328
|
+
return !!this.getApplied(instruction);
|
|
229
329
|
}
|
|
330
|
+
/**
|
|
331
|
+
* Method that should reset the scene to the initial state, so it will clear the plan and state, but it will not deregister the instructions from the scene scope, so they will still be registered in the scene and can be planned and applied again if needed.
|
|
332
|
+
*
|
|
333
|
+
*/
|
|
230
334
|
reset() {
|
|
231
|
-
this.
|
|
232
|
-
this._state
|
|
335
|
+
this._plan = [];
|
|
336
|
+
this._state = [];
|
|
233
337
|
}
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
)
|
|
243
|
-
};
|
|
244
|
-
}
|
|
245
|
-
}
|
|
246
|
-
|
|
247
|
-
exports.AreScene = AreScene;
|
|
338
|
+
};
|
|
339
|
+
exports.AreScene = __decorateClass([
|
|
340
|
+
aFrame.A_Frame.Component({
|
|
341
|
+
namespace: "A-ARE",
|
|
342
|
+
name: "AreScene",
|
|
343
|
+
description: "Persistent runtime structure that owns the rendering state for a component's lifetime. Maintains two sets \u2014 applied (what is currently in the DOM) and planned (what should be). Acts as the single source of truth for all rendering decisions. The Compiler produces it once, the Interpreter reads it on every update."
|
|
344
|
+
})
|
|
345
|
+
], exports.AreScene);
|
|
248
346
|
//# sourceMappingURL=AreScene.context.js.map
|
|
249
347
|
//# sourceMappingURL=AreScene.context.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/lib/AreScene/AreScene.context.ts"],"names":["A_Fragment","A_Context","AreIndex","AreNode","AreSceneInstruction","A_Dependency","node","AreProps","AreStore"],"mappings":"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","file":"AreScene.context.js","sourcesContent":["import { A_Context, A_Dependency, A_Fragment, A_Scope, ASEID } from \"@adaas/a-concept\";\nimport { AreIndex } from \"../AreIndex/AreIndex.context\";\nimport { AreNode } from \"@adaas/are/node\";\nimport { AreSCene_Serialized } from \"./AreScene.types\";\nimport { AreProps } from \"@adaas/are/props\";\nimport { AreStore } from \"@adaas/are/store\";\nimport { AreSceneInstruction } from \"@adaas/are/scene-instruction\";\n\nexport class AreScene extends A_Fragment {\n\n protected _state: Set<string> = new Set();\n\n constructor(\n /**\n * Scene identity will be used to identify mounting point in the parent scene\n */\n id: string | ASEID,\n ) {\n super({ name: id.toString() });\n }\n\n get id(): string {\n return this.name;\n }\n\n /**\n * Get the root scene of the current scene\n */\n get root(): AreScene {\n let currentScope: A_Scope | undefined = this.scope;\n let rootScene: AreScene = this;\n\n while (currentScope) {\n const parentScene = currentScope.parent?.resolve<AreScene>(this.constructor as typeof AreScene);\n if (parentScene) {\n rootScene = parentScene;\n }\n currentScope = currentScope.parent;\n }\n\n return rootScene;\n }\n\n get scope(): A_Scope {\n return A_Context.scope(this);\n }\n\n get index(): AreIndex<string> {\n return A_Context.scope(this).resolveFlat<AreIndex<string>>(AreIndex)!;\n }\n\n get parent(): AreScene | undefined {\n return A_Context.scope(this).parent?.resolveFlat<AreScene>(AreScene);\n }\n\n get children(): Array<AreScene> {\n return this.scope.resolveFlatAll<AreNode>(AreNode)\n .map(n => n.scope.resolveFlat<AreScene>(AreScene))\n .filter(s => !!s);\n }\n\n\n get depth(): number {\n let depth = 0;\n let currentScope: A_Scope | undefined = this.scope;\n\n while (currentScope) {\n if (currentScope.parent && currentScope.parent.resolve<AreScene>(this.constructor as typeof AreScene)) {\n depth++;\n }\n currentScope = currentScope.parent;\n }\n\n return depth;\n }\n\n\n get instructions(): Array<AreSceneInstruction> {\n return this.scope.resolveFlatAll<AreSceneInstruction>(AreSceneInstruction) || [];\n }\n\n\n nodes(\n filter?: (node: AreNode) => boolean\n ): AreNode[] {\n\n const nodes: AreNode[] = [];\n\n for (const path of this.paths()) {\n\n const node = this.index.nodeOf(path);\n\n if (!node) {\n continue;\n }\n\n if (filter && !filter(node)) {\n continue;\n }\n\n nodes.push(node);\n }\n\n return nodes;\n }\n\n\n renderPlanFor(\n node: AreNode,\n filter?: {\n filter?: (instruction: AreSceneInstruction) => boolean,\n changes?: Array<new (...args: any[]) => AreSceneInstruction>,\n order?: Array<new (...args: any[]) => AreSceneInstruction>,\n }\n ) {\n\n const actions: AreSceneInstruction[] = [];\n\n const order = filter?.order || [];\n const filterFn = filter?.filter;\n\n let plan = this.instructions;\n\n plan = plan.sort((a, b) => {\n const aIndex = order.findIndex(instructionType => a instanceof instructionType);\n const bIndex = order.findIndex(instructionType => b instanceof instructionType);\n\n return (aIndex === -1 ? order.length : aIndex) - (bIndex === -1 ? order.length : bIndex);\n });\n\n if (filterFn) {\n plan = plan.filter(filterFn);\n }\n\n for (const action of plan) {\n if (action.node === node) {\n actions.push(action);\n }\n }\n return actions;\n }\n\n get debugPrefix() {\n return `${' - '.repeat(this.depth)}`\n }\n\n get path(): string {\n if (!this.parent)\n return '';\n else {\n const ownerNode = this.parent.scope.resolve<AreNode>(new A_Dependency(AreNode, {\n flat: true,\n query: {\n aseid: this.id\n }\n })) as AreNode;\n\n const NodePath = this.parent.index.pathOf(ownerNode);\n\n return this.parent.path ? (this.parent.path + '.' + NodePath) : NodePath!;\n }\n }\n\n *paths(): Iterable<string> {\n let paths = this.index.paths;\n\n // create proper tree sequence\n paths.sort((a, b) => {\n const aParsed = a.split('.').map(part => parseInt(part, 10));\n const bParsed = b.split('.').map(part => parseInt(part, 10));\n\n const len = Math.min(aParsed.length, bParsed.length);\n for (let i = 0; i < len; i++) {\n if (aParsed[i] !== bParsed[i]) {\n return aParsed[i] - bParsed[i];\n }\n }\n return aParsed.length - bParsed.length;\n });\n\n // yield paths\n for (const path of paths) {\n yield path;\n }\n }\n\n plan(instruction: AreSceneInstruction) {\n try {\n this.scope.register(instruction);\n } catch (error) {\n }\n }\n\n unPlan(\n instruction: AreSceneInstruction\n ) {\n const planned = this.getPlanned(instruction);\n\n try {\n if (planned)\n this.scope.deregister(planned);\n } catch (error) {\n\n }\n }\n\n isAttached(node: AreNode): boolean {\n return !!(this.scope.resolve<AreNode>(new A_Dependency(AreNode, {\n flat: true,\n query: {\n aseid: node.aseid\n }\n })));\n }\n\n attach(node: AreNode): void {\n this.scope.register(node);\n node.scope.inherit(this.scope)\n }\n\n sceneOf(node: AreNode): AreScene | undefined {\n return node.scope.resolveFlat<AreScene>(AreScene);\n }\n\n propsOf(node: AreNode): AreProps {\n return node.scope.resolveFlat<AreProps>(AreProps)!;\n }\n\n storeOf(node: AreNode): AreStore {\n return node.scope.resolveFlat<AreStore>(AreStore)!;\n }\n isPlanned(action: AreSceneInstruction): boolean {\n return this.getPlanned(action) !== undefined;\n }\n\n /**\n * It returns planned instruction instance from the scene\n * \n * [!] Only Planned instructions can be used for state checking\n * \n * @param instruction \n * @returns \n */\n getPlanned<T extends AreSceneInstruction>(\n /**\n * Should be instruction instance to get\n */\n instruction: T\n ): T | undefined {\n\n const planned = this.scope.resolve<AreSceneInstruction>(new A_Dependency(AreSceneInstruction, {\n flat: true,\n query: {\n aseid: instruction.aseid.toString()\n }\n })) as T | undefined;\n\n return planned;\n }\n\n /**\n * Operation Only applicable from Plan -> State\n * \n * So only instructions presented in the plan can be moved to state\n * State is a set of instructions that are currently applied to the scene\n * \n * @param instruction \n */\n setState(\n /**\n * Should be instruction instance to apply\n */\n instruction: AreSceneInstruction\n ) {\n const planned = this.getPlanned(instruction);\n\n\n\n if (planned) {\n this._state.delete(planned.aseid.toString());\n this._state.add(instruction.aseid.toString());\n }\n }\n\n\n dropState<T extends AreSceneInstruction>(\n /**\n * Should be instruction instance to drop\n */\n instruction: T\n ) {\n const planned = this.getPlanned(instruction);\n\n if (planned) {\n this._state.delete(planned.aseid.toString());\n }\n }\n\n\n resetPlan(\n node: AreNode\n ) {\n for (const instruction of this.renderPlanFor(node)) {\n if (instruction.node === node) {\n this.unPlan(instruction);\n }\n }\n }\n\n resetState(\n node: AreNode\n ) {\n for (const instruction of this.renderPlanFor(node)) {\n if (instruction.node === node) {\n\n this._state.delete(instruction.aseid.toString());\n }\n }\n }\n\n\n getState<T extends AreSceneInstruction>(\n /**\n * Should be instruction instance to get state for\n */\n instruction: T\n ): T | undefined {\n\n\n const planned = this.getPlanned(instruction);\n\n\n if (!planned) {\n return undefined;\n }\n\n if (this._state.has(planned.aseid.toString()))\n return planned as T;\n else\n return undefined;\n }\n\n revert(\n /**\n * Should be instruction instance to revert\n */\n instruction: AreSceneInstruction\n ) {\n this._state.delete(instruction!.aseid.toString());\n }\n\n\n reset() {\n this.index.clear();\n this._state.clear();\n }\n\n\n toJSON(): AreSCene_Serialized {\n return {\n ...super.toJSON(),\n children: Object.fromEntries(\n Array.from(this.children).map(child => [\n child.id.toString(),\n child.toJSON()\n ])\n )\n }\n }\n}\n\n\n\n\n\n// Just to cover the proper lifecycle\n\n/*\n1) Create Scene with template from mounting point content\n2) Do indexing of the scene \n\n*/"]}
|
|
1
|
+
{"version":3,"sources":["../../../../src/lib/AreScene/AreScene.context.ts"],"names":["AreScene","A_Fragment","AreSceneStatuses","A_Context","A_Dependency","AreDeclaration","AreMutation","AreInstruction","AreSceneError","A_Frame"],"mappings":"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","file":"AreScene.context.js","sourcesContent":["import { A_Context, A_Dependency, A_Fragment, A_Scope, ASEID } from \"@adaas/a-concept\";\nimport { A_Frame } from \"@adaas/a-frame\";\nimport type { AreNode } from \"@adaas/are/node/AreNode.entity\";\nimport { AreDeclaration } from \"@adaas/are/instruction/types/AreDeclaration.instruction\";\nimport { AreInstruction } from \"@adaas/are/instruction/AreInstruction.entity\";\nimport { AreSceneChanges, AreSceneStatusNames } from \"./AreScene.types\";\nimport { AreSceneError } from \"./AreScene.error\";\nimport { AreMutation } from \"@adaas/are/instruction/types/AreMutation.instruction\";\nimport { AreSceneStatuses } from \"./AreScene.constants\";\n\n\n\n@A_Frame.Component({\n namespace: 'A-ARE',\n name: 'AreScene',\n description: \"Persistent runtime structure that owns the rendering state for a component's lifetime. Maintains two sets — applied (what is currently in the DOM) and planned (what should be). Acts as the single source of truth for all rendering decisions. The Compiler produces it once, the Interpreter reads it on every update.\"\n})\nexport class AreScene extends A_Fragment {\n // -----------------------------------------------------------------------------------\n // -----------------------------------Scene Index-------------------------------------\n // -----------------------------------------------------------------------------------\n protected _groupToInstructionsMap: Map<string, Set<AreInstruction>> = new Map();\n\n /**\n * Plan is a queue of changes that should be applied to render the node\n * \n * It works as FIFO, so the first instruction that should be applied is the first one in the queue, and so on.\n */\n protected _plan: Array<AreInstruction> = [];\n /**\n * State is a list of instructions that are currently applied to the node, \n * so it represents the current state of the node in the scene.\n * \n * It always in a reverse order of the plan, so the last instruction in the state is the first one that should be reverted when we need to revert the changes, and so on.\n * \n * For example, if we have a node with two instructions in the plan: [Instruction A, Instruction B], and both of them are applied to the node, then the state will be [Instruction B, Instruction A], so when we need to revert the changes, we will revert Instruction B first, and then Instruction A.\n */\n protected _state: Array<AreInstruction> = [];\n\n\n protected _host: AreDeclaration | undefined;\n /**\n * Scene status is used to determine the current lifecycle stage of the scene, which can be 'active', 'inactive' or 'destroyed'. This status can be used to control the behavior of the scene and its instructions, for example, we can prevent applying new instructions to an inactive or destroyed scene, or we can trigger certain actions when the scene becomes active or inactive. The default status of the scene is 'inactive', which means that the scene is not yet rendered and its instructions are not applied, and it will become 'active' when it is mounted and its instructions are applied, and it will become 'destroyed' when it is unmounted and its instructions are reverted.\n */\n protected _status: AreSceneStatusNames = AreSceneStatuses.Active;\n\n\n constructor(\n /**\n * Scene identity will be used to identify mounting point in the parent scene\n */\n id: string | ASEID,\n ) {\n super({ name: id.toString() });\n }\n\n /**\n * Scene ID that corresponds to the root node's ID (part of ASEID) \n */\n get id(): string {\n return this.name;\n }\n /**\n * The scope where scene is registered. This scope is owned by AreNode \n */\n get scope(): A_Scope {\n return A_Context.scope(this);\n }\n /**\n * The owner node of the scene, which is the node that registered the scene in its scope. \n * This is typically the node that is responsible for rendering the scene and managing its lifecycle.\n */\n get owner(): AreNode {\n return this.scope.issuer() as AreNode;\n }\n /**\n * It's a primary declaration instruction that represents the node in the scene, so it should be registered as a host instruction for the scene, and it will be used to keep track of the node in the scene and to manage its lifecycle.\n */\n get host(): AreDeclaration | undefined {\n return this._host;\n }\n /**\n * Scene status is used to determine the current lifecycle stage of the scene, which can be 'active', 'inactive' or 'destroyed'. This status can be used to control the behavior of the scene and its instructions, for example, we can prevent applying new instructions to an inactive or destroyed scene, or we can trigger certain actions when the scene becomes active or inactive. The default status of the scene is 'inactive', which means that the scene is not yet rendered and its instructions are not applied, and it will become 'active' when it is mounted and its instructions are applied, and it will become 'destroyed' when it is unmounted and its instructions are reverted.\n */\n get status(): AreSceneStatusNames {\n return this._status;\n }\n\n get isActive(): boolean {\n return this.status === AreSceneStatuses.Active;\n }\n\n get isInactive(): boolean {\n return this.status === AreSceneStatuses.Inactive;\n }\n\n /**\n * Returns All declaration instructions are registered in the scene scope. Since declaration instructions are the main instructions that represent the structure of the node, we have a separate getter for them to easily access and manage them in the scene.\n */\n get declarations(): AreDeclaration[] {\n return this.scope.resolve<AreDeclaration>(new A_Dependency(AreDeclaration, {\n flat: true,\n pagination: {\n count: -1,\n }\n })) as AreDeclaration[] || [];\n }\n /**\n * Returns All mutation instructions are registered in the scene scope. Mutation instructions are the instructions that represent the changes to be applied to the node, so we have a separate getter for them to easily access and manage them in the scene, especially when we want to apply or revert changes based on the mutations.\n */\n get mutations(): AreMutation[] {\n return this.scope.resolve<AreMutation>(new A_Dependency(AreMutation, {\n flat: true,\n pagination: {\n count: -1,\n }\n })) as AreMutation[] || [];\n }\n /**\n * Returns All instructions are registered in the scene scope. \n */\n get instructions(): AreInstruction[] {\n return this.scope.resolveFlatAll<AreInstruction>(AreInstruction) || [];\n }\n /**\n * Plan is a queue of changes that should be applied to render the node\n * \n * It works as FIFO, so the first instruction that should be applied is the first one in the queue, and so on.\n */\n get planned(): AreInstruction[] {\n return this._plan;\n }\n /**\n * State is a list of instructions that are currently applied to the node, \n * so it represents the current state of the node in the scene.\n * \n * It always in a reverse order of the plan, so the last instruction in the state is the first one that should be reverted when we need to revert the changes, and so on.\n * \n * For example, if we have a node with two instructions in the plan: [Instruction A, Instruction B], and both of them are applied to the node, then the state will be [Instruction B, Instruction A], so when we need to revert the changes, we will revert Instruction B first, and then Instruction A.\n */\n get applied(): AreInstruction[] {\n return this._state.reverse(); // we reverse the state to have the correct order of instructions, so the first instruction in the state is the first one that should be reverted when we need to revert the changes, and so on.\n }\n\n /**\n * Should return instructions to be reverted and to be applied. \n * A difference between plan vs state is that plan is what should be applied to the scene, \n * while state is what currently applied to the scene. \n * \n */\n get changes(): AreSceneChanges {\n const toApply = this.planned.filter(i => !this.isApplied(i));\n const toRevert = this.applied.filter(i => !this.isInPlan(i));\n\n return {\n toApply,\n toRevert,\n }\n }\n\n\n //===============================================================================================\n //============================= Scene Primary Methods ===========================================\n //===============================================================================================\n activate(): void {\n this._status = AreSceneStatuses.Active;\n }\n\n deactivate(): void {\n\n this._status = AreSceneStatuses.Inactive;\n }\n /**\n * Each scene has a primary declaration instruction that represents the node in the scene, so it should be registered as a host instruction for the scene, and it will be used to keep track of the node in the scene and to manage its lifecycle. This method allows to set the host instruction for the scene, but it will throw an error if we try to set another host instruction while there is already a host instruction set, so we can ensure that there is only one host instruction for the scene at any given time.\n * \n * @param instruction \n */\n setHost(instruction: AreDeclaration): void {\n if (this.host) {\n const dependentInstructions = this.scope.resolve<AreMutation>(new A_Dependency(AreMutation, {\n flat: true,\n pagination: {\n count: -1,\n },\n query: {\n parent: this.host.aseid.toString(),\n\n }\n })) as Array<AreMutation> || [];\n\n dependentInstructions.forEach(element => {\n element.attachTo(instruction)\n element.groupWith(instruction);\n });\n }\n\n this._host = instruction;\n }\n /**\n * Unsets the current host instruction from the scene. \n * \n * This method should be used when we want to remove the primary declaration instruction that represents the node in the scene, for example, when we want to unmount the node or when we want to replace it with another node. Unsetting the host instruction will allow us to set a new host instruction for the scene if needed.\n */\n removeHost(): void {\n if (this.host)\n throw new AreSceneError({\n title: AreSceneError.HostInstructionHasConnectedInstructions,\n description: `Cannot remove host instruction (${this.host.aseid}) from scene ${this.id} because it has planned instructions in the scene. Please unPlan all instructions related to the host instruction before removing it.`,\n });\n\n this._host = undefined;\n\n }\n\n // ------------------------------------------------------------------------------------------------------------\n // Scene Render Plan Methods\n // ------------------------------------------------------------------------------------------------------------\n /**\n * Method that should register the instruction in the plan, so it will be rendered in the next render cycle.\n * \n * @param instruction \n */\n plan(instruction: AreInstruction) {\n // const registered = this.getPlanned(instruction);\n\n // if (!registered) {\n try {\n this.scope.register(instruction);\n\n } catch (error) {\n\n }\n this._plan.push(instruction);\n\n // We also add the instruction to the group map, so we can easily manage instructions by group, for example, when we want to unPlan all instructions related to a specific host instruction, we can easily find them in the group map and unPlan them.\n if (!this._groupToInstructionsMap.has(instruction.group || 'default')) {\n this._groupToInstructionsMap.set(instruction.group || 'default', new Set());\n }\n this._groupToInstructionsMap.get(instruction.group || 'default')!.add(instruction);\n // }\n }\n\n planBefore(instruction: AreInstruction, beforeInstruction: AreInstruction) {\n const beforeIndex = this._plan.findIndex(i => i.aseid.toString() === beforeInstruction.aseid.toString());\n const instructionIndex = this._plan.findIndex(i => i.aseid.toString() === instruction.aseid.toString());\n\n if (beforeIndex === -1) {\n throw new AreSceneError({\n title: AreSceneError.SceneError,\n description: `Instruction ${beforeInstruction.aseid} is not in the plan of scene ${this.id}. Cannot plan instruction ${instruction.aseid} before it.`,\n });\n }\n\n if (instructionIndex === -1) {\n\n try {\n this.scope.register(instruction);\n\n } catch (error) {\n\n }\n this._plan.splice(beforeIndex, 0, instruction);\n } else {\n // Instruction is already in the plan, we just need to move it before the beforeInstruction\n this._plan.splice(instructionIndex, 1); // remove from current position\n this._plan.splice(beforeIndex, 0, instruction); // insert before the beforeInstruction\n }\n }\n\n planAfter(instruction: AreInstruction, afterInstruction: AreInstruction) {\n const afterIndex = this._plan.findIndex(i => i.aseid.toString() === afterInstruction.aseid.toString());\n const instructionIndex = this._plan.findIndex(i => i.aseid.toString() === instruction.aseid.toString());\n\n if (afterIndex === -1) {\n throw new AreSceneError({\n title: AreSceneError.SceneError,\n description: `Instruction ${afterInstruction.aseid} is not in the plan of scene ${this.id}. Cannot plan instruction ${instruction.aseid} after it.`,\n });\n }\n\n if (instructionIndex === -1) {\n this.scope.register(instruction);\n this._plan.splice(afterIndex + 1, 0, instruction);\n } else {\n // Instruction is already in the plan, we just need to move it after the afterInstruction\n this._plan.splice(instructionIndex, 1); // remove from current position\n this._plan.splice(afterIndex + 1, 0, instruction); // insert after the afterInstruction\n }\n }\n\n\n moveBefore(instruction: AreInstruction, beforeInstruction: AreInstruction) {\n if (!this.isInPlan(instruction)) {\n throw new AreSceneError({\n title: AreSceneError.SceneError,\n description: `Instruction ${instruction.aseid} is not in the plan of scene ${this.id}. Cannot move instruction before ${beforeInstruction.aseid}. Please plan the instruction before moving it.`,\n });\n }\n\n this.planBefore(instruction, beforeInstruction);\n }\n\n moveAfter(instruction: AreInstruction, afterInstruction: AreInstruction) {\n if (!this.isInPlan(instruction)) {\n throw new AreSceneError({\n title: AreSceneError.SceneError,\n description: `Instruction ${instruction.aseid} is not in the plan of scene ${this.id}. Cannot move instruction after ${afterInstruction.aseid}. Please plan the instruction before moving it.`,\n });\n }\n\n this.planAfter(instruction, afterInstruction);\n }\n\n\n /**\n * Allows to remove instruction from the plan, so it will not be rendered anymore, but it will still be registered in the scene scope, so it can be planned again if needed.\n * \n * @param instruction \n */\n unPlan(\n instruction: AreInstruction\n ) {\n // const registered = this.getPlanned(instruction);\n\n // if (registered) {\n // this.scope.deregister(instruction);\n this._plan = this._plan.filter(i => i.aseid.toString() !== instruction.aseid.toString());\n // }\n\n }\n /**\n * Checks if the instruction is already in the plan, so it will be rendered in the next render cycle.\n * \n * @param instruction \n * @returns \n */\n getPlanned(instruction: AreInstruction): AreInstruction | undefined {\n const found = this._plan.find(i => i.aseid.toString() === instruction.aseid.toString());\n\n return found;\n }\n /**\n * Checks if the instruction is already in the plan, so it will be rendered in the next render cycle.\n * \n * @param instruction \n * @returns \n */\n isInPlan(instruction: AreInstruction): boolean {\n return !!this.getPlanned(instruction);\n }\n\n // -------------------------------------------------------------------------------------------------------------\n // Scene Apply Methods\n // -------------------------------------------------------------------------------------------------------------\n /**\n * Method moves the instruction to state to keep it applied and to be able to revert it later if needed. The instruction should be already registered in the scene scope and planned to be applied, otherwise it will not be applied.\n * \n * @param instruction \n */\n apply(instruction: AreInstruction) {\n if (!this.isApplied(instruction)) {\n this._state.push(instruction);\n }\n }\n /**\n * Method moves the instruction from state to unapply it and to be able to apply it later if needed. The instruction should be already registered in the scene scope and applied, otherwise it will not be unapplied.\n * \n * @param instruction \n */\n unApply(\n instruction: AreInstruction\n ) {\n this._state = this._state.filter(i => i.aseid.toString() !== instruction.aseid.toString());\n }\n /**\n * Checks if the instruction is already in the state, so it is currently applied to the scene.\n * \n * @param instruction \n * @returns \n */\n getApplied(instruction: AreInstruction): AreInstruction | undefined {\n const found = this._state.find(i => i.aseid.toString() === instruction.aseid.toString());\n\n return found;\n }\n /**\n * Checks if the instruction is already in the state, so it is currently applied to the scene.\n * \n * @param instruction \n * @returns \n */\n isApplied(instruction: AreInstruction): boolean {\n return !!this.getApplied(instruction);\n }\n /**\n * Method that should reset the scene to the initial state, so it will clear the plan and state, but it will not deregister the instructions from the scene scope, so they will still be registered in the scene and can be planned and applied again if needed.\n * \n */\n reset() {\n this._plan = [];\n this._state = [];\n }\n}"]}
|