@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,114 +1,388 @@
|
|
|
1
1
|
import { A_Fragment } from "@adaas/a-concept";
|
|
2
2
|
import { A_Frame } from "@adaas/a-frame";
|
|
3
|
-
import { AreSyntaxInitOptions } from "./AreSyntax.types";
|
|
3
|
+
import { AreSyntaxCompiledExpression, AreSyntaxInitOptions, AreSyntaxTokenRules } from "./AreSyntax.types";
|
|
4
|
+
import { AreStore } from "@adaas/are/store/AreStore.context";
|
|
4
5
|
|
|
5
6
|
@A_Frame.Fragment({
|
|
6
7
|
namespace: 'A-ARE',
|
|
7
8
|
name: 'AreSyntaxContext',
|
|
8
9
|
description: 'Context that defines the syntax rules and structures for the A-Concept Rendering Engine (ARE). It provides mechanisms for parsing and interpreting templates, attributes, directives, interpolations, and event listeners, enabling dynamic and interactive UI rendering within the ARE framework.'
|
|
9
10
|
})
|
|
10
|
-
export class
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
constructor(
|
|
14
|
-
/**
|
|
15
|
-
* Initialization options for configuring the AreSyntax context.
|
|
16
|
-
*/
|
|
17
|
-
protected readonly config: Partial<AreSyntaxInitOptions> = {}
|
|
18
|
-
) {
|
|
19
|
-
super({ name: 'AreSyntaxContext' });
|
|
20
|
-
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
|
|
11
|
+
export class AreSyntax extends A_Fragment {
|
|
24
12
|
/**
|
|
25
|
-
*
|
|
26
|
-
*
|
|
27
|
-
* @return {string} The root tag identifier.
|
|
13
|
+
* Max allowed length of an expression string to prevent excessively long inputs that could lead to performance issues or abuse.
|
|
28
14
|
*/
|
|
29
|
-
|
|
30
|
-
return this.config.rootTag || 'are-root';
|
|
31
|
-
}
|
|
15
|
+
private readonly MAX_LENGTH = 500
|
|
32
16
|
/**
|
|
33
|
-
*
|
|
34
|
-
* [!] This is a set of tags that can be ignored when determining if a node is a custom component.
|
|
35
|
-
*
|
|
36
|
-
* @return {Set<string>} A set of standard HTML tag names.
|
|
17
|
+
* Max allowed nesting depth of parentheses, brackets, and braces in expressions to prevent excessively complex inputs that could lead to performance issues or abuse. Default is 5 levels of nesting.
|
|
37
18
|
*/
|
|
38
|
-
|
|
39
|
-
return new Set(this.config.standardTags || [])
|
|
40
|
-
};
|
|
19
|
+
private readonly MAX_DEPTH = 5
|
|
41
20
|
/**
|
|
42
|
-
*
|
|
43
|
-
* When enabled, additional debug information will be logged during parsing.
|
|
44
|
-
*
|
|
45
|
-
* @return {boolean} True if debug mode is enabled, false otherwise.
|
|
21
|
+
* List of regex patterns that are blocked in expressions to prevent access to unsafe or sensitive features. This includes patterns for global objects, functions, and syntax that could be used for malicious purposes (e.g. "eval", "Function", "fetch", "XMLHttpRequest", "import", "require", "document", "window", "globalThis", "global", "process", "__proto__", "constructor", "prototype"). Expressions containing any of these patterns will be rejected during validation.
|
|
46
22
|
*/
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
23
|
+
private readonly BLOCKED_PATTERNS: RegExp[] = [
|
|
24
|
+
/\beval\b/,
|
|
25
|
+
/\bFunction\b/,
|
|
26
|
+
/\bfetch\b/,
|
|
27
|
+
/\bXMLHttpRequest\b/,
|
|
28
|
+
/\bimport\b/,
|
|
29
|
+
/\brequire\b/,
|
|
30
|
+
/\bdocument\b/,
|
|
31
|
+
/\bwindow\b/,
|
|
32
|
+
/\bglobalThis\b/,
|
|
33
|
+
/\bglobal\b/,
|
|
34
|
+
/\bprocess\b/,
|
|
35
|
+
/\b__proto__\b/,
|
|
36
|
+
/\bprototype\b/,
|
|
37
|
+
/\bconstructor\b/,
|
|
38
|
+
/\bObject\s*\.\s*assign\b/,
|
|
39
|
+
/\bObject\s*\.\s*defineProperty\b/,
|
|
40
|
+
/\bsetTimeout\b/,
|
|
41
|
+
/\bsetInterval\b/,
|
|
42
|
+
/\blocalStorage\b/,
|
|
43
|
+
/\bsessionStorage\b/,
|
|
44
|
+
/\bcookie\b/,
|
|
45
|
+
/\bWebSocket\b/,
|
|
46
|
+
/\bWorker\b/,
|
|
47
|
+
]
|
|
50
48
|
/**
|
|
51
|
-
*
|
|
52
|
-
* Default is ['{{', '}}'].
|
|
53
|
-
*
|
|
54
|
-
* @return {[string, string]} The opening and closing interpolation delimiters.
|
|
49
|
+
* Set of global identifiers that are blocked in expressions to prevent access to unsafe or sensitive features. This includes global objects and functions that could be used for malicious purposes (e.g. "eval", "Function", "fetch", "XMLHttpRequest", "document", "window", "globalThis", "global", "process", "setTimeout", "setInterval", "localStorage", "sessionStorage", "indexedDB", "WebSocket", "Worker"). Accessing any of these identifiers in an expression will be rejected during validation.
|
|
55
50
|
*/
|
|
56
|
-
|
|
57
|
-
|
|
51
|
+
private readonly BLOCKED_GLOBALS = new Set([
|
|
52
|
+
'eval', 'Function', 'fetch', 'XMLHttpRequest',
|
|
53
|
+
'document', 'window', 'globalThis', 'global', 'process',
|
|
54
|
+
'setTimeout', 'setInterval', 'clearTimeout', 'clearInterval',
|
|
55
|
+
'localStorage', 'sessionStorage', 'indexedDB',
|
|
56
|
+
'WebSocket', 'Worker', 'Blob', 'File',
|
|
57
|
+
'require', 'module', 'exports',
|
|
58
|
+
'alert', 'confirm', 'prompt',
|
|
59
|
+
])
|
|
60
|
+
/**
|
|
61
|
+
* Regex pattern that defines the allowed characters in expressions. This pattern allows letters, digits, whitespace, and common operators and punctuation used in JavaScript expressions. Expressions containing characters that do not match this pattern will be rejected during validation to prevent injection of potentially harmful code.
|
|
62
|
+
*/
|
|
63
|
+
private readonly ALLOWED_CHARS = /^[\w\s\d\.\[\]()=><|&!+\-*/%?:,'"`;~^$]+$/
|
|
64
|
+
/**
|
|
65
|
+
* Simple dot-path identifier pattern (e.g. "name", "user.name", "user.profile.name").
|
|
66
|
+
* Matches strings that consist solely of identifier characters separated by dots.
|
|
67
|
+
*/
|
|
68
|
+
private readonly SIMPLE_PATH = /^[a-zA-Z_$][\w$]*(?:\.[a-zA-Z_$][\w$]*)*$/
|
|
69
|
+
/**
|
|
70
|
+
* Compiled expression — a pre-parsed function ready for repeated execution.
|
|
71
|
+
* Created once via compile(), reused on every apply/click.
|
|
72
|
+
*/
|
|
73
|
+
|
|
74
|
+
private readonly _rules: AreSyntaxTokenRules[]
|
|
75
|
+
private readonly _trimWhitespace: boolean
|
|
76
|
+
private readonly _strictMode: boolean
|
|
77
|
+
|
|
78
|
+
constructor(config?: Partial<AreSyntaxInitOptions>) {
|
|
79
|
+
super({ name: 'AreSyntax' })
|
|
80
|
+
|
|
81
|
+
this._trimWhitespace = config?.trimWhitespace !== false
|
|
82
|
+
this._strictMode = config?.strictMode !== false
|
|
83
|
+
this._rules = [...(config?.rules ?? [])].sort((a, b) =>
|
|
84
|
+
(b.priority ?? 0) - (a.priority ?? 0)
|
|
85
|
+
)
|
|
58
86
|
}
|
|
59
87
|
/**
|
|
60
|
-
*
|
|
61
|
-
* Default is ':'.
|
|
62
|
-
* @return {string} The binding delimiter.
|
|
88
|
+
* Get the array of token rules that define the syntax for parsing templates. Each rule specifies how to identify and process a particular type of token (e.g. interpolation, directive, comment) within templates. The rules are checked in order of priority, allowing for flexible and customizable parsing behavior.
|
|
63
89
|
*/
|
|
64
|
-
get
|
|
65
|
-
return this.
|
|
90
|
+
get rules() {
|
|
91
|
+
return this._rules
|
|
66
92
|
}
|
|
67
93
|
/**
|
|
68
|
-
*
|
|
69
|
-
* Default is '@'.
|
|
70
|
-
*
|
|
71
|
-
* @return {string} The listener delimiter.
|
|
94
|
+
* Indicates whether leading and trailing whitespace should be trimmed from token content. When enabled, any whitespace at the start or end of the content captured by a token will be removed before further processing. This can help prevent issues with unintended spaces affecting rendering or logic, especially in cases like interpolations or directives where extra whitespace may be common. Default is true.
|
|
72
95
|
*/
|
|
73
|
-
get
|
|
74
|
-
return this.
|
|
96
|
+
get trimWhitespace() {
|
|
97
|
+
return this._trimWhitespace
|
|
75
98
|
}
|
|
76
99
|
/**
|
|
77
|
-
*
|
|
78
|
-
* When enabled, the parser will throw errors for any syntax violations.
|
|
79
|
-
* Default is true.
|
|
80
|
-
*
|
|
81
|
-
* @return {boolean} True if strict mode is enabled, false otherwise.
|
|
100
|
+
* Indicates whether the parser should throw an error when it encounters unclosed tokens. When enabled, if the parser finds an opening delimiter without a corresponding closing delimiter (e.g. an unclosed interpolation or directive), it will throw an error instead of silently ignoring it. This can help catch syntax errors and ensure that templates are well-formed. Default is true.
|
|
82
101
|
*/
|
|
83
|
-
get strictMode()
|
|
84
|
-
return this.
|
|
102
|
+
get strictMode() {
|
|
103
|
+
return this._strictMode
|
|
85
104
|
}
|
|
105
|
+
|
|
106
|
+
|
|
107
|
+
|
|
86
108
|
/**
|
|
87
|
-
*
|
|
88
|
-
*
|
|
89
|
-
*
|
|
90
|
-
*
|
|
91
|
-
*
|
|
109
|
+
* Compiles an expression string into a reusable executor.
|
|
110
|
+
* Performs validation and Function construction once.
|
|
111
|
+
* Use when the same expression will be evaluated multiple times
|
|
112
|
+
* e.g. event handlers, instructions that re-apply on store changes.
|
|
113
|
+
*
|
|
114
|
+
* @example
|
|
115
|
+
* // compile once at apply() time
|
|
116
|
+
* const compiled = AreCommonHelper.compile('(e) => !!pageTitle ? $testHandler(e, item) : null')
|
|
117
|
+
*
|
|
118
|
+
* // execute on every click — no re-parsing, no re-validation
|
|
119
|
+
* element.addEventListener('click', (e) => {
|
|
120
|
+
* const fn = compiled.execute(store, { $testHandler: handler, item })
|
|
121
|
+
* if (typeof fn === 'function') fn(e)
|
|
122
|
+
* })
|
|
92
123
|
*/
|
|
93
|
-
|
|
94
|
-
|
|
124
|
+
compile(expr: string): AreSyntaxCompiledExpression {
|
|
125
|
+
const trimmed = expr.trim()
|
|
126
|
+
|
|
127
|
+
// validate once — throws if expression is unsafe or malformed
|
|
128
|
+
this.validate(trimmed)
|
|
129
|
+
|
|
130
|
+
const isCallable = this.isCallableExpression(trimmed)
|
|
131
|
+
const isSimplePath = this.SIMPLE_PATH.test(trimmed)
|
|
132
|
+
|
|
133
|
+
// pre-build the Function once — most expensive part
|
|
134
|
+
let compiled: Function | null = null
|
|
135
|
+
|
|
136
|
+
if (!isSimplePath) {
|
|
137
|
+
try {
|
|
138
|
+
compiled = new Function('scope', `"use strict"; with(scope) { return (${trimmed}) }`)
|
|
139
|
+
} catch (e) {
|
|
140
|
+
throw new Error(`Expression syntax error in "${trimmed}": ${(e as Error).message}`)
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
const createSandboxFn = this.createSandbox.bind(this)
|
|
145
|
+
|
|
146
|
+
return {
|
|
147
|
+
isCallable,
|
|
148
|
+
|
|
149
|
+
execute(store: AreStore, scope?: Record<string, any>): any {
|
|
150
|
+
// fast path — simple property path, no sandbox needed
|
|
151
|
+
if (isSimplePath) {
|
|
152
|
+
if (scope && trimmed in scope) return scope[trimmed]
|
|
153
|
+
const value = store.get(trimmed)
|
|
154
|
+
if (value !== undefined) return value
|
|
155
|
+
// fall through to sandbox if store didn't resolve it
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
const sandbox = createSandboxFn(store, scope)
|
|
159
|
+
|
|
160
|
+
let result: any
|
|
161
|
+
try {
|
|
162
|
+
result = compiled
|
|
163
|
+
? compiled(sandbox)
|
|
164
|
+
: new Function('scope', `"use strict"; with(scope) { return (${trimmed}) }`)(sandbox)
|
|
165
|
+
} catch (e) {
|
|
166
|
+
throw new Error(`Expression evaluation error in "${trimmed}": ${(e as Error).message}`)
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
if (isCallable && typeof result !== 'function') {
|
|
170
|
+
throw new Error(
|
|
171
|
+
`Expression "${trimmed}" was expected to be callable — got ${result === null ? 'null' : typeof result}`
|
|
172
|
+
)
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
return result
|
|
176
|
+
}
|
|
177
|
+
}
|
|
95
178
|
}
|
|
96
179
|
/**
|
|
97
|
-
*
|
|
98
|
-
*
|
|
99
|
-
*
|
|
100
|
-
*
|
|
180
|
+
* Evaluates an expression string against the provided store.
|
|
181
|
+
* Automatically determines whether the result should be callable
|
|
182
|
+
* based on the shape of the expression.
|
|
183
|
+
*
|
|
184
|
+
* Returns the raw value for plain expressions (interpolations, bindings).
|
|
185
|
+
* Returns a bound function for callable expressions (event handlers).
|
|
186
|
+
*
|
|
187
|
+
* @param expr Expression string to evaluate.
|
|
188
|
+
* @param store AreStore used for identifier resolution.
|
|
189
|
+
* @param scope Optional extra bindings checked **before** the store.
|
|
190
|
+
* Useful for injecting event-specific values (`$event`, `element`)
|
|
191
|
+
* or emit wrappers (`$handleClick`).
|
|
192
|
+
*
|
|
193
|
+
* @example
|
|
194
|
+
* // simple value
|
|
195
|
+
* evaluate('user.name', store)
|
|
196
|
+
*
|
|
197
|
+
* // with emit wrapper
|
|
198
|
+
* evaluate('$handleClick($event, user.name)', store, {
|
|
199
|
+
* $event: domEvent,
|
|
200
|
+
* $handleClick: (...args) => node.emit(new AreEvent('handleClick', args)),
|
|
201
|
+
* })
|
|
202
|
+
*
|
|
203
|
+
* // arrow with conditional
|
|
204
|
+
* evaluate('(e) => isValid(user.name) ? $handleClick(e) : null', store, {
|
|
205
|
+
* $handleClick: (...args) => node.emit(new AreEvent('handleClick', args)),
|
|
206
|
+
* })
|
|
101
207
|
*/
|
|
102
|
-
|
|
103
|
-
|
|
208
|
+
evaluate(expr: string, store: AreStore, scope?: Record<string, any>): any {
|
|
209
|
+
const trimmed = expr.trim()
|
|
210
|
+
|
|
211
|
+
this.validate(trimmed)
|
|
212
|
+
|
|
213
|
+
/**
|
|
214
|
+
* Fast path: if the expression is a simple property path (e.g. "name", "user.name"),
|
|
215
|
+
* resolve it directly — first from scope, then from the store — without going
|
|
216
|
+
* through the sandbox/Function constructor.
|
|
217
|
+
*/
|
|
218
|
+
if (this.SIMPLE_PATH.test(trimmed)) {
|
|
219
|
+
if (scope && trimmed in scope) return scope[trimmed]
|
|
220
|
+
|
|
221
|
+
const value = store.get(trimmed)
|
|
222
|
+
if (value !== undefined) return value
|
|
223
|
+
|
|
224
|
+
/**
|
|
225
|
+
* If the full dot-path didn't resolve, fall back to the sandbox approach
|
|
226
|
+
* in case the store holds a nested object under the first key.
|
|
227
|
+
*/
|
|
228
|
+
}
|
|
229
|
+
|
|
230
|
+
const sandbox = this.createSandbox(store, scope)
|
|
231
|
+
const result = this.execute(trimmed, sandbox)
|
|
232
|
+
|
|
233
|
+
if (this.isCallableExpression(trimmed)) {
|
|
234
|
+
if (typeof result !== 'function') {
|
|
235
|
+
throw new Error(
|
|
236
|
+
`Expression "${trimmed}" was expected to be callable — got ${result === null ? 'null' : typeof result}`
|
|
237
|
+
)
|
|
238
|
+
}
|
|
239
|
+
}
|
|
240
|
+
|
|
241
|
+
return result
|
|
104
242
|
}
|
|
105
243
|
|
|
106
|
-
|
|
107
|
-
*
|
|
108
|
-
*
|
|
109
|
-
*
|
|
244
|
+
/**
|
|
245
|
+
* Extracts $-prefixed handler names from an expression.
|
|
246
|
+
* These represent event emission targets, not store references.
|
|
247
|
+
*
|
|
248
|
+
* Examples:
|
|
249
|
+
* "$handleClick" → Set(["handleClick"])
|
|
250
|
+
* "$handleClick(user.name)" → Set(["handleClick"])
|
|
251
|
+
* "(e) => isValid(user.name) ? $handleClick(e) : null" → Set(["handleClick"])
|
|
110
252
|
*/
|
|
111
|
-
|
|
112
|
-
|
|
253
|
+
extractEmitHandlers(expr: string): Set<string> {
|
|
254
|
+
const stripped = expr.trim().replace(/'[^']*'|"[^"]*"|`[^`]*`/g, '""')
|
|
255
|
+
const handlers = new Set<string>()
|
|
256
|
+
const pattern = /\$([a-zA-Z_][\w$]*)/g
|
|
257
|
+
let match: RegExpExecArray | null
|
|
258
|
+
|
|
259
|
+
while ((match = pattern.exec(stripped)) !== null) {
|
|
260
|
+
handlers.add(match[1])
|
|
261
|
+
}
|
|
262
|
+
|
|
263
|
+
return handlers
|
|
264
|
+
}
|
|
265
|
+
|
|
266
|
+
// ── Classification ────────────────────────────────────────────────────────
|
|
267
|
+
|
|
268
|
+
private isCallableExpression(expr: string): boolean {
|
|
269
|
+
// arrow function: () => ... or x => ...
|
|
270
|
+
if (/^\(?[\w\s,]*\)?\s*=>/.test(expr)) return true
|
|
271
|
+
|
|
272
|
+
// function keyword: function(...) { }
|
|
273
|
+
if (/^function\s*\(/.test(expr)) return true
|
|
274
|
+
|
|
275
|
+
// plain identifier with no operators — could be a function ref
|
|
276
|
+
// but only if it resolves to a function — we let the guard handle it
|
|
277
|
+
// so we don't classify this as callable upfront
|
|
278
|
+
return false
|
|
279
|
+
}
|
|
280
|
+
|
|
281
|
+
// ── Validation ────────────────────────────────────────────────────────────
|
|
282
|
+
|
|
283
|
+
private validate(expr: string): void {
|
|
284
|
+
if (expr.length > this.MAX_LENGTH) {
|
|
285
|
+
throw new Error(
|
|
286
|
+
`Expression exceeds maximum length of ${this.MAX_LENGTH} characters`
|
|
287
|
+
)
|
|
288
|
+
}
|
|
289
|
+
|
|
290
|
+
for (const pattern of this.BLOCKED_PATTERNS) {
|
|
291
|
+
if (pattern.test(expr)) {
|
|
292
|
+
throw new Error(`Expression contains blocked pattern: ${pattern.source}`)
|
|
293
|
+
}
|
|
294
|
+
}
|
|
295
|
+
|
|
296
|
+
if (!this.ALLOWED_CHARS.test(expr)) {
|
|
297
|
+
throw new Error(`Expression contains disallowed characters`)
|
|
298
|
+
}
|
|
299
|
+
|
|
300
|
+
this.checkDepth(expr)
|
|
301
|
+
}
|
|
302
|
+
|
|
303
|
+
private checkDepth(expr: string): void {
|
|
304
|
+
let depth = 0
|
|
305
|
+
let max = 0
|
|
306
|
+
for (const ch of expr) {
|
|
307
|
+
if (ch === '(' || ch === '[' || ch === '{') { depth++; max = Math.max(max, depth) }
|
|
308
|
+
if (ch === ')' || ch === ']' || ch === '}') depth--
|
|
309
|
+
}
|
|
310
|
+
if (max > this.MAX_DEPTH) {
|
|
311
|
+
throw new Error(`Expression exceeds maximum nesting depth of ${this.MAX_DEPTH}`)
|
|
312
|
+
}
|
|
313
|
+
}
|
|
314
|
+
|
|
315
|
+
// ── Sandbox ───────────────────────────────────────────────────────────────
|
|
316
|
+
|
|
317
|
+
private createSandbox(store: AreStore, scope?: Record<string, any>): object {
|
|
318
|
+
return new Proxy({}, {
|
|
319
|
+
has: (_, key) => {
|
|
320
|
+
if (typeof key === 'string' && this.BLOCKED_GLOBALS.has(key)) return false
|
|
321
|
+
return true
|
|
322
|
+
},
|
|
323
|
+
get: (_, key) => {
|
|
324
|
+
if (typeof key !== 'string') return undefined
|
|
325
|
+
|
|
326
|
+
// Scope bindings take priority over the store
|
|
327
|
+
if (scope && key in scope) return scope[key]
|
|
328
|
+
|
|
329
|
+
this.assertSafeKey(key)
|
|
330
|
+
|
|
331
|
+
const value = store.get(key)
|
|
332
|
+
if (typeof value === 'function') return value.bind(store)
|
|
333
|
+
if (value !== null && typeof value === 'object' && value !== undefined) {
|
|
334
|
+
return new Proxy(value as object, this.nestedHandler(key, store))
|
|
335
|
+
}
|
|
336
|
+
return value
|
|
337
|
+
},
|
|
338
|
+
set: () => { throw new Error('Expression scope is read-only') },
|
|
339
|
+
})
|
|
340
|
+
}
|
|
341
|
+
|
|
342
|
+
private nestedHandler(prefix: string, store: AreStore): ProxyHandler<object> {
|
|
343
|
+
return {
|
|
344
|
+
has: () => true,
|
|
345
|
+
get: (target, key) => {
|
|
346
|
+
if (typeof key !== 'string') return undefined
|
|
347
|
+
this.assertSafeKey(key)
|
|
348
|
+
|
|
349
|
+
const fullKey = `${prefix}.${key}`
|
|
350
|
+
const value = store.get(fullKey)
|
|
351
|
+
|
|
352
|
+
if (value === undefined) return (target as any)[key]
|
|
353
|
+
if (typeof value === 'function') return value.bind(store)
|
|
354
|
+
if (value !== null && typeof value === 'object') {
|
|
355
|
+
return new Proxy(value as object, this.nestedHandler(fullKey, store))
|
|
356
|
+
}
|
|
357
|
+
return value
|
|
358
|
+
},
|
|
359
|
+
set: () => { throw new Error('Expression scope is read-only') },
|
|
360
|
+
}
|
|
361
|
+
}
|
|
362
|
+
|
|
363
|
+
private assertSafeKey(key: string): void {
|
|
364
|
+
if (key === '__proto__' || key === 'constructor' || key === 'prototype') {
|
|
365
|
+
throw new Error(`Access to "${key}" is not allowed in expressions`)
|
|
366
|
+
}
|
|
367
|
+
if (this.BLOCKED_GLOBALS.has(key)) {
|
|
368
|
+
throw new Error(`Access to "${key}" is not allowed in expressions`)
|
|
369
|
+
}
|
|
370
|
+
}
|
|
371
|
+
|
|
372
|
+
// ── Execution ─────────────────────────────────────────────────────────────
|
|
373
|
+
|
|
374
|
+
private execute(expr: string, sandbox: object): any {
|
|
375
|
+
let fn: Function
|
|
376
|
+
try {
|
|
377
|
+
fn = new Function('scope', `with(scope) { return (${expr}) }`)
|
|
378
|
+
} catch (e) {
|
|
379
|
+
throw new Error(`Expression syntax error in "${expr}": ${(e as Error).message}`)
|
|
380
|
+
}
|
|
381
|
+
|
|
382
|
+
try {
|
|
383
|
+
return fn(sandbox)
|
|
384
|
+
} catch (e) {
|
|
385
|
+
throw new Error(`Expression evaluation error in "${expr}": ${(e as Error).message}`)
|
|
386
|
+
}
|
|
113
387
|
}
|
|
114
388
|
}
|