@almadar/std 17.0.3 → 17.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/behaviors/lolo/auth/atoms/std-dev-personas.lolo +27 -2
- package/behaviors/lolo/cli/atoms/std-orb-goldens.lolo +6 -3
- package/behaviors/lolo/cli/atoms/std-orb-lint-mem-handles.lolo +54 -34
- package/behaviors/lolo/cli/atoms/std-orb-lint-os-grants.lolo +4 -4
- package/behaviors/lolo/cli/atoms/std-orb-mcp.lolo +16 -21
- package/behaviors/lolo/cli/atoms/std-orb-serve.lolo +24 -4
- package/behaviors/lolo/codec/atoms/std-lolo-kotlin.lolo +26 -3
- package/behaviors/lolo/codec/atoms/std-lolo-python.lolo +15 -2
- package/behaviors/lolo/codec/atoms/std-lolo-rust.lolo +27 -2
- package/behaviors/lolo/codec/atoms/std-lolo-source.lolo +251 -60
- package/behaviors/lolo/codec/atoms/std-lolo-swift.lolo +24 -1
- package/behaviors/lolo/codec/atoms/std-lolo-typescript.lolo +24 -3
- package/behaviors/lolo/connect/atoms/std-meta-ads.lolo +4 -4
- package/behaviors/lolo/connect/atoms/std-stdio-lines.lolo +7 -4
- package/behaviors/lolo/connect/atoms/std-youtube.lolo +9 -9
- package/behaviors/lolo/dev/atoms/std-guest-session.lolo +122 -10
- package/behaviors/lolo/dev/atoms/std-mock-seed-marks.lolo +66 -0
- package/behaviors/lolo/dev/organisms/std-behavior-playground.lolo +5 -2
- package/behaviors/lolo/dev/organisms/std-launchpad.lolo +4 -3
- package/behaviors/lolo/gpu/atoms/std-gpu-compute.lolo +329 -0
- package/behaviors/lolo/net/atoms/std-http-client.lolo +4 -4
- package/behaviors/lolo/net/atoms/std-http-fetch.lolo +6 -6
- package/behaviors/lolo/net/atoms/std-npm-lookup.lolo +1 -1
- package/behaviors/lolo/net/atoms/std-npm-registry.lolo +2 -2
- package/behaviors/lolo/spec/auth/dev-personas.replay.goldens.json +263 -2
- package/behaviors/lolo/spec/cli/lint-all.lolo +1 -0
- package/behaviors/lolo/spec/cli/lint-item-action-event.replay.goldens.json +9 -9
- package/behaviors/lolo/spec/cli/lint-mem-handles.replay.goldens.json +3021 -1
- package/behaviors/lolo/spec/cli/lint-os-grants.replay.goldens.json +284 -12
- package/behaviors/lolo/spec/cli/mcp-server.replay.goldens.json +51 -55
- package/behaviors/lolo/spec/cli/orb-compile.replay.goldens.json +10 -4
- package/behaviors/lolo/spec/codec/lolo-kotlin.replay.goldens.json +7496 -7497
- package/behaviors/lolo/spec/codec/lolo-python.replay.goldens.json +341 -3
- package/behaviors/lolo/spec/codec/lolo-rust.replay.goldens.json +18931 -6142
- package/behaviors/lolo/spec/codec/lolo-source.fixtures/compose-pair.lolo +44 -0
- package/behaviors/lolo/spec/codec/lolo-source.fixtures/config-read.lolo +2 -1
- package/behaviors/lolo/spec/codec/lolo-source.fixtures/divide-default.lolo +2 -1
- package/behaviors/lolo/spec/codec/lolo-source.fixtures/divide-plain.lolo +2 -1
- package/behaviors/lolo/spec/codec/lolo-source.fixtures/get-past-end.lolo +2 -1
- package/behaviors/lolo/spec/codec/lolo-source.fixtures/list-call.lolo +2 -1
- package/behaviors/lolo/spec/codec/lolo-source.fixtures/list-plain.lolo +2 -1
- package/behaviors/lolo/spec/codec/lolo-source.fixtures/minus-binary.lolo +2 -1
- package/behaviors/lolo/spec/codec/lolo-source.fixtures/minus-unary.lolo +2 -1
- package/behaviors/lolo/spec/codec/lolo-source.fixtures/nested-let.lolo +2 -1
- package/behaviors/lolo/spec/codec/lolo-source.fixtures/no-machine.lolo +2 -1
- package/behaviors/lolo/spec/codec/lolo-source.fixtures/no-template.lolo +2 -1
- package/behaviors/lolo/spec/codec/lolo-source.fixtures/nth-past-end.lolo +2 -1
- package/behaviors/lolo/spec/codec/lolo-source.fixtures/nth-raw.lolo +2 -1
- package/behaviors/lolo/spec/codec/lolo-source.fixtures/ports-call.lolo +2 -1
- package/behaviors/lolo/spec/codec/lolo-source.fixtures/range-one.lolo +2 -1
- package/behaviors/lolo/spec/codec/lolo-source.fixtures/range-two.lolo +2 -1
- package/behaviors/lolo/spec/codec/lolo-source.fixtures/router-trio.lolo +88 -0
- package/behaviors/lolo/spec/codec/lolo-source.fixtures/store-pair.lolo +62 -0
- package/behaviors/lolo/spec/codec/lolo-source.fixtures/string-literal.lolo +2 -1
- package/behaviors/lolo/spec/codec/lolo-source.gen/knobs.py +27 -1
- package/behaviors/lolo/spec/codec/lolo-source.gen/src_assemble.in +54 -2
- package/behaviors/lolo/spec/codec/lolo-source.gen/src_finish.in +1 -1
- package/behaviors/lolo/spec/codec/lolo-source.gen/src_fold.in +24 -4
- package/behaviors/lolo/spec/codec/lolo-source.gen/src_head.in +8 -3
- package/behaviors/lolo/spec/codec/lolo-source.gen/src_prepare.in +6 -2
- package/behaviors/lolo/spec/codec/lolo-source.gen/src_trait.in +12 -2
- package/behaviors/lolo/spec/codec/lolo-source.parity/agent-step.lolo +2 -1
- package/behaviors/lolo/spec/codec/lolo-source.parity/agent-step.server.lolo +1 -0
- package/behaviors/lolo/spec/codec/lolo-source.parity/chunk.lolo +2 -1
- package/behaviors/lolo/spec/codec/lolo-source.parity/chunk.server.lolo +1 -0
- package/behaviors/lolo/spec/codec/lolo-source.parity/compose-pair.events.json +36 -0
- package/behaviors/lolo/spec/codec/lolo-source.parity/compose-pair.replay.goldens.json +91 -0
- package/behaviors/lolo/spec/codec/lolo-source.parity/cosine.lolo +2 -1
- package/behaviors/lolo/spec/codec/lolo-source.parity/cosine.server.lolo +1 -0
- package/behaviors/lolo/spec/codec/lolo-source.parity/drivers/kotlin/compose-pair.kt +31 -0
- package/behaviors/lolo/spec/codec/lolo-source.parity/drivers/kotlin/router-trio.kt +31 -0
- package/behaviors/lolo/spec/codec/lolo-source.parity/drivers/kotlin/store-pair.kt +31 -0
- package/behaviors/lolo/spec/codec/lolo-source.parity/drivers/python/compose-pair.py +18 -0
- package/behaviors/lolo/spec/codec/lolo-source.parity/drivers/python/router-trio.py +18 -0
- package/behaviors/lolo/spec/codec/lolo-source.parity/drivers/python/store-pair.py +17 -0
- package/behaviors/lolo/spec/codec/lolo-source.parity/drivers/rust/compose-pair.rs +37 -0
- package/behaviors/lolo/spec/codec/lolo-source.parity/drivers/rust/router-trio.rs +37 -0
- package/behaviors/lolo/spec/codec/lolo-source.parity/drivers/rust/store-pair.rs +36 -0
- package/behaviors/lolo/spec/codec/lolo-source.parity/drivers/swift/compose-pair.swift +24 -0
- package/behaviors/lolo/spec/codec/lolo-source.parity/drivers/swift/router-trio.swift +24 -0
- package/behaviors/lolo/spec/codec/lolo-source.parity/drivers/swift/store-pair.swift +23 -0
- package/behaviors/lolo/spec/codec/lolo-source.parity/drivers/typescript/compose-pair.mts +24 -0
- package/behaviors/lolo/spec/codec/lolo-source.parity/drivers/typescript/router-trio.mts +24 -0
- package/behaviors/lolo/spec/codec/lolo-source.parity/drivers/typescript/store-pair.mts +22 -0
- package/behaviors/lolo/spec/codec/lolo-source.parity/recall-at-k.lolo +2 -1
- package/behaviors/lolo/spec/codec/lolo-source.parity/recall-at-k.server.lolo +1 -0
- package/behaviors/lolo/spec/codec/lolo-source.parity/router-trio.events.json +18 -0
- package/behaviors/lolo/spec/codec/lolo-source.parity/router-trio.replay.goldens.json +87 -0
- package/behaviors/lolo/spec/codec/lolo-source.parity/store-pair.events.json +58 -0
- package/behaviors/lolo/spec/codec/lolo-source.parity/store-pair.replay.goldens.json +238 -0
- package/behaviors/lolo/spec/codec/lolo-swift.replay.goldens.json +15599 -2204
- package/behaviors/lolo/spec/codec/lolo-typescript.replay.goldens.json +28930 -28929
- package/behaviors/lolo/spec/connect/bearer-api.replay.goldens.json +1 -1
- package/behaviors/lolo/spec/connect/esign.replay.goldens.json +3 -3
- package/behaviors/lolo/spec/connect/github.replay.goldens.json +13 -13
- package/behaviors/lolo/spec/connect/google-calendar.replay.goldens.json +2 -2
- package/behaviors/lolo/spec/connect/image.replay.goldens.json +1 -1
- package/behaviors/lolo/spec/connect/meta-ads.replay.goldens.json +2 -2
- package/behaviors/lolo/spec/connect/stdio-lines.replay.goldens.json +90 -0
- package/behaviors/lolo/spec/connect/twilio.replay.goldens.json +2 -2
- package/behaviors/lolo/spec/connect/youtube.replay.goldens.json +1 -1
- package/behaviors/lolo/spec/dev/guest-session.replay.goldens.json +824 -0
- package/behaviors/lolo/spec/dev/mock-seed-marks.replay.goldens.json +365 -0
- package/behaviors/lolo/spec/dev/verify-walk.replay.goldens.json +2 -1
- package/behaviors/lolo/spec/gpu/gpu-compute.replay.goldens.json +784 -0
- package/behaviors/lolo/spec/mem/mem-buffer.replay.goldens.json +97 -1
- package/behaviors/lolo/spec/ml/vector-write.goldens.json +1 -1
- package/behaviors/lolo/spec/ml/vector-write.replay.goldens.json +2 -2
- package/behaviors/lolo/spec/net/http-client-call-host.replay.goldens.json +3 -3
- package/behaviors/lolo/spec/net/http-client-env-host.replay.goldens.json +3 -3
- package/behaviors/lolo/spec/net/http-client.replay.goldens.json +56 -56
- package/behaviors/lolo/spec/net/http-fetch.replay.goldens.json +2 -2
- package/behaviors/lolo/spec/net/npm-lookup.replay.goldens.json +1 -1
- package/behaviors/lolo/spec/net/npm-registry.replay.goldens.json +2 -2
- package/behaviors/lolo/spec/net/server-declared-traits.replay.goldens.json +6 -3
- package/behaviors/lolo/spec/net/server-external-inputs.replay.goldens.json +16 -8
- package/behaviors/lolo/spec/net/server-retargeted-leg.replay.goldens.json +4 -2
- package/behaviors/lolo/spec/net/server-untargeted-discovery.replay.goldens.json +50 -45
- package/behaviors/lolo/spec/ops/llm-spend-board.replay.goldens.json +112 -16
- package/behaviors/lolo/spec/store/firestore-twin.replay.goldens.json +1 -1
- package/behaviors/lolo/spec/store/row-store-postgres.gen/record_real_sql.py +1 -1
- package/behaviors/lolo/spec/ui/game/fx-particles.replay.goldens.json +37 -0
- package/behaviors/lolo/ui/avl/atoms/std-avl-cosmic-zoom.lolo +2 -2
- package/behaviors/lolo/ui/game/atoms/std-fx-particles.lolo +10 -1
- package/behaviors/lolo/ui/game/atoms/ui-draw-fx-layer.lolo +4 -4
- package/behaviors/lolo/ui/game/organisms/std-arcade-board-3d.lolo +9 -9
- package/behaviors/lolo/ui/game/organisms/std-crew-board-2d.lolo +4 -4
- package/behaviors/lolo/ui/game/organisms/std-dungeon-board-2d.lolo +5 -5
- package/behaviors/lolo/ui/game/organisms/std-market-board-3d.lolo +9 -9
- package/behaviors/lolo/ui/game/organisms/std-objective-board-3d.lolo +9 -9
- package/behaviors/lolo/ui/game/organisms/std-platformer-board-2d.lolo +5 -5
- package/behaviors/lolo/ui/game/organisms/std-platformer-puzzle.lolo +4 -4
- package/behaviors/lolo/ui/game/organisms/std-survival-board-3d.lolo +9 -9
- package/behaviors/lolo/ui/game/organisms/std-tactics-board-2d.lolo +5 -5
- package/behaviors/lolo/ui/game/organisms/std-tactics-board-3d.lolo +9 -9
- package/behaviors/registry/auth/atoms/std-dev-personas.orb +1 -1
- package/behaviors/registry/cli/atoms/std-orb-goldens.orb +1 -1
- package/behaviors/registry/cli/atoms/std-orb-lint-mem-handles.orb +1 -1
- package/behaviors/registry/cli/atoms/std-orb-lint-os-grants.orb +1 -1
- package/behaviors/registry/cli/atoms/std-orb-mcp.orb +1 -1
- package/behaviors/registry/cli/atoms/std-orb-serve.orb +1 -1
- package/behaviors/registry/codec/atoms/std-lolo-kotlin.orb +1 -1
- package/behaviors/registry/codec/atoms/std-lolo-python.orb +1 -1
- package/behaviors/registry/codec/atoms/std-lolo-rust.orb +1 -1
- package/behaviors/registry/codec/atoms/std-lolo-source.orb +1 -1
- package/behaviors/registry/codec/atoms/std-lolo-swift.orb +1 -1
- package/behaviors/registry/codec/atoms/std-lolo-typescript.orb +1 -1
- package/behaviors/registry/connect/atoms/std-meta-ads.orb +1 -1
- package/behaviors/registry/connect/atoms/std-stdio-lines.orb +1 -1
- package/behaviors/registry/connect/atoms/std-youtube.orb +1 -1
- package/behaviors/registry/dev/atoms/std-guest-session.orb +1 -1
- package/behaviors/registry/dev/atoms/std-mock-seed-marks.orb +1 -0
- package/behaviors/registry/dev/organisms/std-behavior-playground.orb +37 -0
- package/behaviors/registry/dev/organisms/std-launchpad.orb +25 -0
- package/behaviors/registry/gpu/atoms/std-gpu-compute.orb +1 -0
- package/behaviors/registry/net/atoms/std-http-client.orb +1 -1
- package/behaviors/registry/net/atoms/std-http-fetch.orb +1 -1
- package/behaviors/registry/net/atoms/std-npm-lookup.orb +1 -1
- package/behaviors/registry/net/atoms/std-npm-registry.orb +1 -1
- package/behaviors/registry/spec/cli/lint-all.orb +1 -1
- package/behaviors/registry/spec/codec/lolo-source.fixtures/compose-pair.orb +1 -0
- package/behaviors/registry/spec/codec/lolo-source.fixtures/config-read.orb +1 -1
- package/behaviors/registry/spec/codec/lolo-source.fixtures/divide-default.orb +1 -1
- package/behaviors/registry/spec/codec/lolo-source.fixtures/divide-plain.orb +1 -1
- package/behaviors/registry/spec/codec/lolo-source.fixtures/get-past-end.orb +1 -1
- package/behaviors/registry/spec/codec/lolo-source.fixtures/list-call.orb +1 -1
- package/behaviors/registry/spec/codec/lolo-source.fixtures/list-plain.orb +1 -1
- package/behaviors/registry/spec/codec/lolo-source.fixtures/minus-binary.orb +1 -1
- package/behaviors/registry/spec/codec/lolo-source.fixtures/minus-unary.orb +1 -1
- package/behaviors/registry/spec/codec/lolo-source.fixtures/nested-let.orb +1 -1
- package/behaviors/registry/spec/codec/lolo-source.fixtures/no-machine.orb +1 -1
- package/behaviors/registry/spec/codec/lolo-source.fixtures/no-template.orb +1 -1
- package/behaviors/registry/spec/codec/lolo-source.fixtures/nth-past-end.orb +1 -1
- package/behaviors/registry/spec/codec/lolo-source.fixtures/nth-raw.orb +1 -1
- package/behaviors/registry/spec/codec/lolo-source.fixtures/ports-call.orb +1 -1
- package/behaviors/registry/spec/codec/lolo-source.fixtures/range-one.orb +1 -1
- package/behaviors/registry/spec/codec/lolo-source.fixtures/range-two.orb +1 -1
- package/behaviors/registry/spec/codec/lolo-source.fixtures/router-trio.orb +1 -0
- package/behaviors/registry/spec/codec/lolo-source.fixtures/store-pair.orb +1 -0
- package/behaviors/registry/spec/codec/lolo-source.fixtures/string-literal.orb +1 -1
- package/behaviors/registry/spec/codec/lolo-source.parity/agent-step.orb +1 -1
- package/behaviors/registry/spec/codec/lolo-source.parity/agent-step.server.orb +1 -1
- package/behaviors/registry/spec/codec/lolo-source.parity/chunk.orb +1 -1
- package/behaviors/registry/spec/codec/lolo-source.parity/chunk.server.orb +1 -1
- package/behaviors/registry/spec/codec/lolo-source.parity/cosine.orb +1 -1
- package/behaviors/registry/spec/codec/lolo-source.parity/cosine.server.orb +1 -1
- package/behaviors/registry/spec/codec/lolo-source.parity/recall-at-k.orb +1 -1
- package/behaviors/registry/spec/codec/lolo-source.parity/recall-at-k.server.orb +1 -1
- package/behaviors/registry/ui/avl/atoms/std-avl-cosmic-zoom.orb +1 -1
- package/behaviors/registry/ui/game/atoms/std-fx-particles.orb +1 -1
- package/behaviors/registry/ui/game/atoms/ui-draw-fx-layer.orb +1 -1
- package/behaviors/registry/ui/game/organisms/std-arcade-board-3d.orb +20 -13
- package/behaviors/registry/ui/game/organisms/std-crew-board-2d.orb +9 -5
- package/behaviors/registry/ui/game/organisms/std-dungeon-board-2d.orb +17 -7
- package/behaviors/registry/ui/game/organisms/std-market-board-3d.orb +19 -15
- package/behaviors/registry/ui/game/organisms/std-objective-board-3d.orb +15 -12
- package/behaviors/registry/ui/game/organisms/std-platformer-board-2d.orb +17 -7
- package/behaviors/registry/ui/game/organisms/std-platformer-puzzle.orb +4 -0
- package/behaviors/registry/ui/game/organisms/std-survival-board-3d.orb +15 -12
- package/behaviors/registry/ui/game/organisms/std-tactics-board-2d.orb +13 -6
- package/behaviors/registry/ui/game/organisms/std-tactics-board-3d.orb +14 -12
- package/canonical-operators.json +1426 -103
- package/dist/{chunk-EK22WRB6.js → chunk-2UGHBVU2.js} +2 -2
- package/dist/{chunk-GDMH5T4J.js → chunk-3DK7GI2C.js} +2 -2
- package/dist/chunk-3MDASC5C.js +26 -0
- package/dist/{chunk-K5ZI27PB.js → chunk-3PHO4RRF.js} +1 -1
- package/dist/{chunk-7IEMMYM6.js → chunk-4MJCLAZW.js} +1 -1
- package/dist/{chunk-W4IEV4BY.js → chunk-55JPIL7A.js} +2 -2
- package/dist/{chunk-RUGBZTV3.js → chunk-66BLZLFI.js} +1 -1
- package/dist/{chunk-YWFISV7L.js → chunk-66RAJFOD.js} +1 -1
- package/dist/{chunk-JWOWWGNZ.js → chunk-6ED4SUC6.js} +1 -1
- package/dist/{chunk-LL7P6EII.js → chunk-6KFCHNE2.js} +2 -2
- package/dist/{chunk-GFBL2TW6.js → chunk-A4QB3Y6L.js} +1 -1
- package/dist/chunk-BVWMLS32.js +123 -0
- package/dist/{chunk-5KQCGSNC.js → chunk-CRKVDCY7.js} +1 -1
- package/dist/{chunk-WHQDLLC3.js → chunk-EKWEY4OJ.js} +1 -1
- package/dist/{chunk-Y3BRVNYK.js → chunk-EU22GCGV.js} +2 -2
- package/dist/{chunk-XQPYTDZ4.js → chunk-FB6PKNRS.js} +1 -1
- package/dist/{chunk-UX3MDFX6.js → chunk-FSVOJQLP.js} +1 -1
- package/dist/{chunk-LDBD2FBQ.js → chunk-GAKLBWBR.js} +1 -1
- package/dist/{chunk-C3IEMPRZ.js → chunk-GO3FKBV2.js} +2 -2
- package/dist/{chunk-LZSPEHSM.js → chunk-GPDTJHYY.js} +1 -1
- package/dist/{chunk-W5ABMOXU.js → chunk-JQBWLH5V.js} +1 -1
- package/dist/{chunk-63X6RNY6.js → chunk-KKW3JHTC.js} +1 -1
- package/dist/{chunk-5PLJE42Q.js → chunk-LF2EZVAM.js} +1 -1
- package/dist/{chunk-RXWBYWQB.js → chunk-LGCKOZP3.js} +2 -2
- package/dist/{chunk-JJEADYP7.js → chunk-LMZ6XJFB.js} +2 -2
- package/dist/{chunk-CWYSQZJU.js → chunk-M2YQNSAZ.js} +2 -2
- package/dist/{chunk-GNCKJV3P.js → chunk-MKWHYBIS.js} +1 -1
- package/dist/{chunk-ZB2CLGEG.js → chunk-MXBGYTYF.js} +1 -1
- package/dist/{chunk-UN76TRSK.js → chunk-NH6MXHZR.js} +41 -41
- package/dist/{chunk-II2VW7T6.js → chunk-ODBIX4DB.js} +1 -1
- package/dist/{chunk-3F3CNWOG.js → chunk-OYDQR6DT.js} +2 -2
- package/dist/{chunk-FVL6BT6L.js → chunk-PD6POR44.js} +1 -1
- package/dist/{chunk-U6USXZ5M.js → chunk-PHFT3QNS.js} +2 -2
- package/dist/{chunk-RJYKIZMS.js → chunk-PQZ6PVKG.js} +2 -2
- package/dist/{chunk-TQPQXCSZ.js → chunk-Q6NHXIOZ.js} +2 -2
- package/dist/{chunk-KYGWVCTM.js → chunk-QMDVYTB7.js} +1 -1
- package/dist/{chunk-XKTATY45.js → chunk-RW2KMSG5.js} +4 -4
- package/dist/{chunk-UHNSPTFT.js → chunk-SA2ZS24W.js} +1 -1
- package/dist/{chunk-6YPUQK36.js → chunk-SFWP4UMK.js} +2 -2
- package/dist/{chunk-ZZYLFHBU.js → chunk-TLNEQA4D.js} +1 -1
- package/dist/{chunk-RGTBRWWA.js → chunk-TOODE5AD.js} +2 -2
- package/dist/{chunk-QGWAHOFR.js → chunk-U57GY7SM.js} +2 -2
- package/dist/{chunk-FDJZKB7J.js → chunk-UIDQQJSX.js} +1 -1
- package/dist/{chunk-LLH3WXM3.js → chunk-UVFP2B7I.js} +1 -1
- package/dist/{chunk-4OF7727E.js → chunk-VEGZPCTZ.js} +2 -2
- package/dist/{chunk-73YUPNIT.js → chunk-VXN4V7LC.js} +1 -1
- package/dist/{chunk-4D3W6AAE.js → chunk-YHQVZWPG.js} +1 -1
- package/dist/{chunk-XXYBHYLM.js → chunk-YQO3TO66.js} +2 -2
- package/dist/{chunk-YZAYFR5A.js → chunk-ZSJ3GEOJ.js} +1 -1
- package/dist/index.d.ts +3 -3
- package/dist/index.js +50 -50
- package/dist/modules/anim.js +2 -2
- package/dist/modules/array.js +2 -2
- package/dist/modules/auth.js +3 -3
- package/dist/modules/behavior.js +2 -2
- package/dist/modules/bit.js +2 -2
- package/dist/modules/browser.js +2 -2
- package/dist/modules/bytes.js +2 -2
- package/dist/modules/codec.js +3 -3
- package/dist/modules/composition.js +2 -2
- package/dist/modules/core.js +2 -2
- package/dist/modules/csv.js +2 -2
- package/dist/modules/ffi.js +3 -3
- package/dist/modules/format.js +2 -2
- package/dist/modules/geo.js +2 -2
- package/dist/modules/gpu.d.ts +12 -0
- package/dist/modules/gpu.js +3 -0
- package/dist/modules/grid.js +2 -2
- package/dist/modules/i18n.js +2 -2
- package/dist/modules/index.d.ts +1 -2
- package/dist/modules/index.js +45 -46
- package/dist/modules/json.js +2 -2
- package/dist/modules/kernel.js +3 -3
- package/dist/modules/kv.js +3 -3
- package/dist/modules/llm.js +2 -2
- package/dist/modules/math.js +2 -2
- package/dist/modules/mem.js +3 -3
- package/dist/modules/object.js +2 -2
- package/dist/modules/os-common.d.ts +1 -1
- package/dist/modules/os-common.js +2 -2
- package/dist/modules/os-desktop.js +3 -3
- package/dist/modules/os-dev.js +3 -3
- package/dist/modules/os-dir.js +3 -3
- package/dist/modules/os-env-stdio.js +3 -3
- package/dist/modules/os-fs.js +3 -3
- package/dist/modules/os-net.js +3 -3
- package/dist/modules/os-path.js +3 -3
- package/dist/modules/os-process.js +3 -3
- package/dist/modules/os-sys.js +3 -3
- package/dist/modules/os-time-users.js +3 -3
- package/dist/modules/os.js +13 -13
- package/dist/modules/path.js +2 -2
- package/dist/modules/prob.js +2 -2
- package/dist/modules/program.js +2 -2
- package/dist/modules/session.js +2 -2
- package/dist/modules/str.js +2 -2
- package/dist/modules/time.js +2 -2
- package/dist/modules/validate.js +2 -2
- package/dist/modules/vector.js +2 -2
- package/dist/modules/workspace.js +2 -2
- package/dist/modules/xml.js +2 -2
- package/dist/modules/yaml.js +2 -2
- package/dist/registry.d.ts +2 -2
- package/dist/registry.js +49 -49
- package/dist/{types-BA4LkhNJ.d.ts → types-CgiGhK6t.d.ts} +17 -3
- package/package.json +5 -5
- package/dist/chunk-F5TP25JA.js +0 -26
- package/dist/chunk-NE4WSTN7.js +0 -26
- package/dist/modules/trace.d.ts +0 -15
- package/dist/modules/trace.js +0 -2
- /package/dist/{chunk-SHSBTDDX.js → chunk-QUQ33UXH.js} +0 -0
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
app compose-pair [
|
|
2
|
+
version: "1.0.0",
|
|
3
|
+
description: "Fixture for the native renderers' composed mode: a local trait whose emit feeds a composed std atom (std-score's ScoreKeeper) with call-site config, so the native program must carry the composed traits the kernel runs."
|
|
4
|
+
]
|
|
5
|
+
|
|
6
|
+
orbital ArenaOrbital {
|
|
7
|
+
uses S from "std/behaviors/std-score"
|
|
8
|
+
|
|
9
|
+
entity Match [runtime] {
|
|
10
|
+
id : string!
|
|
11
|
+
enemies : number = 3
|
|
12
|
+
score : number = 0
|
|
13
|
+
scoreBaseline : number = 0
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
trait Arena -> Match [client] {
|
|
17
|
+
initial: idle
|
|
18
|
+
|
|
19
|
+
state idle {
|
|
20
|
+
INIT -> idle
|
|
21
|
+
HIT -> idle
|
|
22
|
+
(set @entity.enemies (- @entity.enemies ?n))
|
|
23
|
+
(emit WAVE { enemiesAlive: @entity.enemies, playersAlive: 1 })
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
emits {
|
|
27
|
+
WAVE -> external { enemiesAlive : number!, playersAlive : number! }
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
listens {
|
|
31
|
+
HIT { n : number! }
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
trait Score = S.traits.ScoreKeeper -> Match {
|
|
36
|
+
config { running: true, pointsPerKill: 5, startScore: 0, initialEnemies: 3 }
|
|
37
|
+
listens {
|
|
38
|
+
Arena.WAVE -> UNITS_CHANGED
|
|
39
|
+
UNITS_CHANGED { playersAlive : number, enemiesAlive : number }
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
page boot as ArenaStart -> Arena, Score
|
|
44
|
+
}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
app no-machine [
|
|
2
|
-
version: "1.0.0"
|
|
2
|
+
version: "1.0.0",
|
|
3
|
+
description: "Fixture for the native source renderers: a trait with no states beyond its initial one and only an emit declaration, so the renderer handles an empty machine."
|
|
3
4
|
]
|
|
4
5
|
orbital Fx {
|
|
5
6
|
entity Rec [runtime] {
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
app ports-call [
|
|
2
|
-
version: "1.0.0"
|
|
2
|
+
version: "1.0.0",
|
|
3
|
+
description: "Fixture for the native source renderers: a server trait that upserts a row, sets scalar fields, adds one to a counter and maps a payload list with a lambda."
|
|
3
4
|
]
|
|
4
5
|
orbital Fx {
|
|
5
6
|
entity Rec [runtime] {
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
app router-trio [
|
|
2
|
+
version: "1.0.0",
|
|
3
|
+
description: "Fixture for the native renderers' generated router: three traits whose emits exercise the dispatch queue rules (own emits first, listeners after in registration order, a listen guard on the raw payload, and a with mapping)."
|
|
4
|
+
]
|
|
5
|
+
|
|
6
|
+
orbital TrioOrbital {
|
|
7
|
+
entity Tally [runtime] {
|
|
8
|
+
id : string!
|
|
9
|
+
hits : number = 0
|
|
10
|
+
log : [string] = []
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
trait Lead -> Tally [client] {
|
|
14
|
+
initial: idle
|
|
15
|
+
|
|
16
|
+
state idle {
|
|
17
|
+
INIT -> idle
|
|
18
|
+
GO -> busy
|
|
19
|
+
(set @entity.hits (+ @entity.hits 1))
|
|
20
|
+
(emit PING { n: ?n })
|
|
21
|
+
(emit NOTE { text: "go" })
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
state busy {
|
|
25
|
+
INIT -> idle
|
|
26
|
+
PING -> idle
|
|
27
|
+
(set @entity.hits (+ @entity.hits 10))
|
|
28
|
+
(emit PONG { n: ?n })
|
|
29
|
+
GO -> busy
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
emits {
|
|
33
|
+
PING -> internal { n : number! }
|
|
34
|
+
NOTE -> external { text : string! }
|
|
35
|
+
PONG -> external { n : number! }
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
listens {
|
|
39
|
+
GO { n : number! }
|
|
40
|
+
PING { n : number! }
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
trait Echo -> Tally [client] {
|
|
45
|
+
initial: idle
|
|
46
|
+
|
|
47
|
+
state idle {
|
|
48
|
+
INIT -> idle
|
|
49
|
+
HEARD -> idle
|
|
50
|
+
(set @entity.log (array/append @entity.log (str/concat "echo " ?label)))
|
|
51
|
+
(emit ECHOED { label: ?label })
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
emits {
|
|
55
|
+
ECHOED -> external { label : string! }
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
listens {
|
|
59
|
+
Lead.PING -> HEARD with { label: (str/concat "n=" ?n) } when (> ?n 0)
|
|
60
|
+
HEARD { label : string! }
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
trait Tail -> Tally [client] {
|
|
65
|
+
initial: idle
|
|
66
|
+
|
|
67
|
+
state idle {
|
|
68
|
+
INIT -> idle
|
|
69
|
+
NOTED -> idle
|
|
70
|
+
(set @entity.log (array/append @entity.log (str/concat "note " ?text)))
|
|
71
|
+
PONGED -> idle
|
|
72
|
+
(set @entity.log (array/append @entity.log "pong"))
|
|
73
|
+
SEEN -> idle
|
|
74
|
+
(set @entity.log (array/append @entity.log (str/concat "seen " ?label)))
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
listens {
|
|
78
|
+
Lead.NOTE -> NOTED
|
|
79
|
+
Lead.PONG -> PONGED
|
|
80
|
+
Echo.ECHOED -> SEEN
|
|
81
|
+
NOTED { text : string! }
|
|
82
|
+
PONGED { n : number! }
|
|
83
|
+
SEEN { label : string! }
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
page boot as TrioStart -> Lead, Echo, Tail
|
|
88
|
+
}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
app store-pair [
|
|
2
|
+
version: "1.0.0",
|
|
3
|
+
description: "Fixture for the native renderers' typed ports: a trait that persists a row and fetches rows back through their success and failure routes, so a native store must answer what the kernel's store answers."
|
|
4
|
+
]
|
|
5
|
+
|
|
6
|
+
orbital StoreOrbital {
|
|
7
|
+
entity Note [runtime] {
|
|
8
|
+
id : string!
|
|
9
|
+
text : string = ""
|
|
10
|
+
kind : string = ""
|
|
11
|
+
seen : number = 0
|
|
12
|
+
last : string = ""
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
trait Notes -> Note {
|
|
16
|
+
initial: idle
|
|
17
|
+
|
|
18
|
+
state idle {
|
|
19
|
+
INIT -> idle
|
|
20
|
+
ADD -> idle
|
|
21
|
+
(persist create Note { text: ?text, kind: ?kind } { emit: { success: ADDED, failure: ADD_FAILED } })
|
|
22
|
+
ADDED -> idle
|
|
23
|
+
(set @entity.last ?text)
|
|
24
|
+
(fetch Note { filter: (= (object/get @entity "kind") "todo"), emit: { success: LOADED, failure: LOAD_FAILED } })
|
|
25
|
+
LOADED -> idle
|
|
26
|
+
(set @entity.seen (array/len ?data))
|
|
27
|
+
ADD_FAILED -> idle
|
|
28
|
+
(set @entity.last "failed")
|
|
29
|
+
LOAD_FAILED -> idle
|
|
30
|
+
(set @entity.last "load failed")
|
|
31
|
+
EDIT -> idle
|
|
32
|
+
(persist update Note { id: ?id, text: ?text } { emit: { success: EDITED, failure: EDIT_FAILED } })
|
|
33
|
+
EDITED -> idle
|
|
34
|
+
(set @entity.last (str/concat "edited " ?text))
|
|
35
|
+
EDIT_FAILED -> idle
|
|
36
|
+
(set @entity.last (str/concat "edit failed " ?error))
|
|
37
|
+
DROP -> idle
|
|
38
|
+
(persist delete Note ?id { emit: { success: DROPPED, failure: DROP_FAILED } })
|
|
39
|
+
DROPPED -> idle
|
|
40
|
+
(set @entity.last (str/concat "dropped " ?id))
|
|
41
|
+
(fetch Note { emit: { success: LOADED, failure: LOAD_FAILED } })
|
|
42
|
+
DROP_FAILED -> idle
|
|
43
|
+
(set @entity.last (str/concat "drop failed " ?error))
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
listens {
|
|
47
|
+
ADD { text : string!, kind : string! }
|
|
48
|
+
ADDED { id : string!, text : string!, kind : string! }
|
|
49
|
+
LOADED { data : [Note]!, totalCount : number! }
|
|
50
|
+
ADD_FAILED { error : string! }
|
|
51
|
+
LOAD_FAILED { error : string! }
|
|
52
|
+
EDIT { id : string!, text : string! }
|
|
53
|
+
EDITED { id : string!, text : string!, kind : string! }
|
|
54
|
+
EDIT_FAILED { error : string!, code : string }
|
|
55
|
+
DROP { id : string! }
|
|
56
|
+
DROPPED { id : string!, deleted : boolean! }
|
|
57
|
+
DROP_FAILED { error : string!, code : string }
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
page boot as StoreStart -> Notes
|
|
62
|
+
}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
app string-literal [
|
|
2
|
-
version: "1.0.0"
|
|
2
|
+
version: "1.0.0",
|
|
3
|
+
description: "Fixture for the native source renderers: string and object literals containing braces, quotes, a backslash, a non-ASCII character and a newline, plus a key that needs quoting."
|
|
3
4
|
]
|
|
4
5
|
orbital Fx {
|
|
5
6
|
entity Rec [runtime] {
|
|
@@ -20,6 +20,12 @@ KNOBS = [
|
|
|
20
20
|
("portEffects", "[string]", [], "domain", "Port effects", "Effects outside the native core, called on the ports object the caller injects"),
|
|
21
21
|
("portCall", "string", "", "domain", "Port call", "How a port effect is called: {{name}} and {{*}}"),
|
|
22
22
|
("portCase", "string", "keep", "domain", "Port name case", "keep, lower, upper, camel or pascal (each word lowercased first), or split-camel or split-pascal (the shell models' identifier spelling: split on _ and -, each word's tail kept), or lower-camel (split-pascal with its first letter lowered)"),
|
|
23
|
+
("routedEffects", "Map string string", {}, "domain", "Routed effects", "Template per port effect answered through its emit routes, which the trait completes in the same dispatch: {{args}} its arguments without the options object ({{0}}, {{1}}, {{2}} one by one), {{entity}} the quoted entity name, {{model}} the entity's model name, {{filter}} the fetch filter as a lambda over one row (fetchAll when the fetch has none), {{success}} and {{failure}} the quoted route events (nullLit when absent). Its helpers and imports are under the token store"),
|
|
24
|
+
("rowLocal", "string", "fetchRow", "domain", "Fetch row local", "The parameter of a fetch filter's lambda, in localCase: the filter's @entity reads the candidate row through it"),
|
|
25
|
+
("fetchAll", "string", "", "domain", "Fetch all", "The filter written for a fetch with none"),
|
|
26
|
+
("routeForm", "string", "{{route}}", "domain", "Route form", "A routed effect's present route event ({{route}} the quoted event); an absent route is nullLit"),
|
|
27
|
+
("filterForm", "string", "{{lambda}}", "domain", "Filter form", "A fetch filter that is present, {{lambda}} the filter as a lambda over one row"),
|
|
28
|
+
("completeMethod", "[string]", [], "domain", "Complete method", "Lines of the method a trait with a routed effect completes it by: it records the answer's route (success or failure) as a completion emit, and nothing when that route is absent"),
|
|
23
29
|
("portWarn", "string", "{{op}} is called on the ports object", "domain", "Port warning", "The warning written for each port effect"),
|
|
24
30
|
("attributeRoots", "Map string string", {}, "domain", "Attribute roots", "Target expression per sigil whose path reads as attributes (@entity.x)"),
|
|
25
31
|
("itemRoots", "Map string string", {}, "domain", "Item roots", "Target expression per sigil whose path reads as items (@config.x)"),
|
|
@@ -51,6 +57,26 @@ KNOBS = [
|
|
|
51
57
|
("unionArmCase", "string", "keep", "domain", "Union arm case", "The case of {{arm}} in unionArmForm: keep, lower, upper, camel, pascal, split-camel, split-pascal or lower-camel"),
|
|
52
58
|
("enumForm", "string", "", "domain", "Enum member", "A string literal the checker names an enum for: {{enum}} the enum model, {{member}} the member (enumMemberCase); empty keeps every string literal a string"),
|
|
53
59
|
("enumMemberCase", "string", "split-pascal", "domain", "Enum member case", "keep, lower, upper, camel, pascal, split-camel or split-pascal"),
|
|
60
|
+
("programOpen", "[string]", [], "domain", "Program open", "Lines that open the generated router of a program whose traits listen to each other ({{i}} indent, {{entities}} the programEntity entries); empty renders no router"),
|
|
61
|
+
("programTrait", "string", "", "domain", "Program trait", "One trait instance of the router: {{key}} the orbital-qualified trait, {{class}}, {{entity}}, {{n}} its position"),
|
|
62
|
+
("programStoreParam", "string", "", "domain", "Program store parameter", "programOpen's {{store}} when a trait of the program has a routed effect (the store the Program hands those traits); empty otherwise"),
|
|
63
|
+
("programTraitStore", "string", "", "domain", "Program store trait", "The programTrait line for a trait with a routed effect, which also hands it the store ({{key}}, {{class}}, {{entity}}, {{n}}); empty writes programTrait"),
|
|
64
|
+
("programEntity", "string", "", "domain", "Program entity", "One entry of programOpen's {{entities}}, the row each trait starts from: {{key}}, {{entity}}, {{n}} the trait's position"),
|
|
65
|
+
("programEntitySep", "string", ", ", "domain", "Program entity separator", "Between the entries of {{entities}}"),
|
|
66
|
+
("programHandles", "string", "", "domain", "Program handles", "The events a trait handles per state: {{key}}, {{table}} (a map literal of state to event list)"),
|
|
67
|
+
("programRow", "string", "", "domain", "Program row", "One listen route in registration order: {{source}}, {{event}}, {{target}}, {{trigger}}, {{guard}} and {{map}} (a function name, or the null literal)"),
|
|
68
|
+
("deliverOpen", "[string]", [], "domain", "Deliver open", "Lines that open the router's typed delivery to a trait method"),
|
|
69
|
+
("deliverCase", "string", "", "domain", "Deliver case", "One delivery of an event with a payload: {{target}}, {{class}} (the trait's class), {{event}}, {{method}}, {{arg}} (the decoded payload)"),
|
|
70
|
+
("deliverCasePlain", "string", "", "domain", "Deliver case (no payload)", "One delivery of an event with no payload: {{target}}, {{class}}, {{event}}, {{method}}"),
|
|
71
|
+
("deliverClose", "[string]", [], "domain", "Deliver close", "Lines that close the delivery"),
|
|
72
|
+
("programClose", "[string]", [], "domain", "Program close", "Lines that close the router"),
|
|
73
|
+
("payloadDecode", "string", "", "domain", "Payload decode", "A payload model read from a router value: {{type}}, {{value}}"),
|
|
74
|
+
("guardForm", "[string]", [], "domain", "Listen guard", "A listen guard as a function of the raw source payload: {{name}}, {{decode}}, {{expr}}"),
|
|
75
|
+
("mapForm", "[string]", [], "domain", "Listen mapping", "A listen's with mapping as a function of the source payload: {{name}}, {{decode}}, {{expr}}"),
|
|
76
|
+
("guardName", "string", "_guard_{{n}}", "domain", "Guard name", "The function of listen route {{n}}'s guard"),
|
|
77
|
+
("mapName", "string", "_map_{{n}}", "domain", "Mapping name", "The function of listen route {{n}}'s mapping"),
|
|
78
|
+
("guardRef", "string", "{{name}}", "domain", "Guard reference", "A route's guard as programRow passes it: {{name}} the function (a route with no guard passes the null literal)"),
|
|
79
|
+
("mapRef", "string", "{{name}}", "domain", "Mapping reference", "A route's mapping as programRow passes it: {{name}} the function (a route with no mapping passes the null literal)"),
|
|
54
80
|
("fieldNames", "Map string string", {}, "domain", "Field names", "Model field spellings that differ from fieldCase (a target keyword the shell renames): .lolo field name to model field name"),
|
|
55
81
|
("letStmt", "string", "{{name}} = {{value}}", "domain", "Let statement", "A binding in statement position: {{name}}, {{value}}, {{type}}"),
|
|
56
82
|
("letExpr", "string", "{{body}}", "domain", "Let expression", "A binding in expression position, one per name, nested: {{name}}, {{value}}, {{body}}, {{type}}"),
|
|
@@ -86,7 +112,7 @@ KNOBS = [
|
|
|
86
112
|
("classOpen", "string", "class {{class}} {", "domain", "Class open", "Head of a trait class"),
|
|
87
113
|
("classClose", "string", "}", "domain", "Class close", "Foot of a trait class; empty when none"),
|
|
88
114
|
("classEmpty", "string", "", "domain", "Class empty", "Body of a trait class that has no state machine (pass); empty when none is needed"),
|
|
89
|
-
("constructor", "[string]", [], "domain", "Constructor", "Lines of the constructor and fields: {{i}} indent, {{class}}, {{entity}}, {{initial}} quoted, {{config}} the config map literal, {{configType}} the trait's config type (configType)"),
|
|
115
|
+
("constructor", "[string]", [], "domain", "Constructor", "Lines of the constructor and fields: {{i}} indent, {{class}}, {{entity}}, {{initial}} quoted, {{config}} the config map literal, {{configType}} the trait's config type (configType); a line starting {{withStore}} is written only for a trait with a routed effect and one starting {{noStore}} only for one without"),
|
|
90
116
|
("emitMethod", "[string]", [], "domain", "Emit method", "Lines of the method that records an emit"),
|
|
91
117
|
("methodOpen", "string", "{{i}}fun {{method}}(payload: {{payloadType}}) {", "domain", "Method open", "Head of an event method that has a payload: {{i}}, {{method}}, {{payloadType}}"),
|
|
92
118
|
("methodOpenPlain", "string", "{{i}}fun {{method}}() {", "domain", "Method open (no payload)", "Head of an event method with no payload"),
|
|
@@ -46,7 +46,7 @@
|
|
|
46
46
|
(if (!= @config.modelClassClose "") [@config.modelClassClose] [])))))))
|
|
47
47
|
[])
|
|
48
48
|
(array/map (array/range 0 (array/len @entity.traits)) (fn ti
|
|
49
|
-
(let ((t (default (array/nth @entity.traits @ti) { name: "", path: "", entity: "", initial: "", hasMachine: false, knobs: [], transitions: [], events: [], listenTypes: {}, emitTypes: {}, emitVoid: [], configType: "" }))
|
|
49
|
+
(let ((t (default (array/nth @entity.traits @ti) { name: "", path: "", entity: "", initial: "", hasMachine: false, knobs: [], transitions: [], events: [], listenTypes: {}, emitTypes: {}, emitVoid: [], configType: "", orbital: "", listenRows: [] }))
|
|
50
50
|
(rs (default (array/nth @entity.renders (+ @nC @ti)) []))
|
|
51
51
|
(cn : string CASE{(default (object/get (default (array/nth @entity.traits @ti) { name: "" }) "name") "") ## @config.classCase}))
|
|
52
52
|
(if (not (object/get @t "hasMachine"))
|
|
@@ -60,9 +60,10 @@
|
|
|
60
60
|
@config.mapClose))))
|
|
61
61
|
(array/concat
|
|
62
62
|
[FILL{@config.classOpen ## class => @cn ## i => @ind}]
|
|
63
|
-
(array/map (array/filter @config.constructor (fn l (if (= (object/get @t "configType") "") (not (or (str/includes @l "{{configType}}") (str/includes @l "{{withConfig}}"))) (not (str/includes @l "{{noConfig}}"))))) (fn l FILL{@l ## i => @ind ## class => @cn ## entity => ENT{(object/get @t "entity")} ## initial => STR{(object/get @t "initial")} ## config => @cfgLit ## configType => (object/get @t "configType") ## noConfig => "" ## withConfig => ""}))
|
|
63
|
+
(array/map (array/filter @config.constructor (fn l (and (if (= (object/get @t "configType") "") (not (or (str/includes @l "{{configType}}") (str/includes @l "{{withConfig}}"))) (not (str/includes @l "{{noConfig}}"))) (if (array/some @rs (fn sr (array/includes (object/get @sr "uses") "store"))) (not (str/includes @l "{{noStore}}")) (not (str/includes @l "{{withStore}}")))))) (fn l FILL{@l ## i => @ind ## class => @cn ## entity => ENT{(object/get @t "entity")} ## initial => STR{(object/get @t "initial")} ## config => @cfgLit ## configType => (object/get @t "configType") ## noConfig => "" ## withConfig => "" ## noStore => "" ## withStore => ""}))
|
|
64
64
|
[""]
|
|
65
65
|
(array/map @config.emitMethod (fn l FILL{@l ## i => @ind}))
|
|
66
|
+
(if (array/some @rs (fn sr (array/includes (object/get @sr "uses") "store"))) (array/map @config.completeMethod (fn l FILL{@l ## i => @ind})) [])
|
|
66
67
|
(array/flatten (array/map (object/get @t "events") (fn ev
|
|
67
68
|
(let ((mine (array/filter (array/range 0 (array/len @trs)) (fn mi (= (object/get (default (array/nth @trs @mi) { from: "", to: "", event: "" }) "event") @ev))))
|
|
68
69
|
(ptype LOOKUP{(object/get @t "listenTypes") ## @ev})
|
|
@@ -86,9 +87,60 @@
|
|
|
86
87
|
(if (!= @config.branchClose "") [FILL{@config.branchClose ## i => @ind}] [])
|
|
87
88
|
(if (!= @config.methodClose "") [FILL{@config.methodClose ## i => @ind}] []))))))
|
|
88
89
|
(if (!= @config.classClose "") [FILL{@config.classClose ## i => @ind}] []))))))))))
|
|
90
|
+
(set @entity.blocks (let ((nC (if @config.renderModels (array/len @entity.containers) 0))
|
|
91
|
+
(ind : string @config.indent)
|
|
92
|
+
(nullR : SrcRender RECL{ expr => @config.nullLit ## stmt => [@config.nullLit] ## body => @config.nullLit }))
|
|
93
|
+
(let ((storeUsed (array/some (array/flatten @entity.renders) (fn sr (array/includes (object/get @sr "uses") "store"))))
|
|
94
|
+
(rows (array/flatten (array/map (array/range 0 (array/len @entity.traits)) (fn ti
|
|
95
|
+
(array/map (array/range 0 (array/len (object/get (default (array/nth @entity.traits @ti) { name: "", path: "", entity: "", initial: "", hasMachine: false, knobs: [], transitions: [], events: [], listenTypes: {}, emitTypes: {}, emitVoid: [], configType: "", orbital: "", listenRows: [] }) "listenRows"))) (fn li { ti: @ti, li: @li })))))))
|
|
96
|
+
(if (or (= (array/len @config.programOpen) 0) (and (= (array/len @rows) 0) (not @storeUsed)))
|
|
97
|
+
@entity.blocks
|
|
98
|
+
(array/concat @entity.blocks [(array/concat
|
|
99
|
+
(array/map @config.programOpen (fn l FILL{@l ## i => @ind ## store => (if @storeUsed @config.programStoreParam "") ## entities => (str/join (array/map (array/range 0 (array/len @entity.traits)) (fn pei (let ((t (default (array/nth @entity.traits @pei) { name: "", path: "", entity: "", initial: "", hasMachine: false, knobs: [], transitions: [], events: [], listenTypes: {}, emitTypes: {}, emitVoid: [], configType: "", orbital: "", listenRows: [] }))) FILL{@config.programEntity ## n => (str/concat "" @pei) ## key => STR{(str/concat (object/get @t "orbital") "." (object/get @t "name"))} ## entity => ENT{(object/get @t "entity")}}))) @config.programEntitySep)}))
|
|
100
|
+
(array/map (array/range 0 (array/len @entity.traits)) (fn pti (let ((t (default (array/nth @entity.traits @pti) { name: "", path: "", entity: "", initial: "", hasMachine: false, knobs: [], transitions: [], events: [], listenTypes: {}, emitTypes: {}, emitVoid: [], configType: "", orbital: "", listenRows: [] })))
|
|
101
|
+
FILL{(if (and (!= @config.programTraitStore "") (array/some (default (array/nth @entity.renders (+ @nC @pti)) []) (fn sr (array/includes (object/get @sr "uses") "store")))) @config.programTraitStore @config.programTrait) ## i => @ind ## n => (str/concat "" @pti) ## key => STR{(str/concat (object/get @t "orbital") "." (object/get @t "name"))} ## class => CASE{(object/get @t "name") ## @config.classCase} ## entity => ENT{(object/get @t "entity")}})))
|
|
102
|
+
(array/map @entity.traits (fn t
|
|
103
|
+
(let ((trs : [SrcTransition] (object/get @t "transitions")))
|
|
104
|
+
(let ((sts (array/unique (array/map @trs (fn tr (object/get @tr "from"))))))
|
|
105
|
+
FILL{@config.programHandles ## i => @ind ## key => STR{(str/concat (object/get @t "orbital") "." (object/get @t "name"))}
|
|
106
|
+
## table => (str/concat @config.mapOpen (str/join (array/map @sts (fn st FILL{@config.mapPair ## key => STR{@st} ## value => FILL{@config.listForm ## "*" => (str/join (array/map (array/unique (array/map (array/filter @trs (fn tr (= (object/get @tr "from") @st))) (fn tr (object/get @tr "event")))) (fn ev STR{@ev})) ", ")}})) @config.mapSep) @config.mapClose)}))))
|
|
107
|
+
(array/map (array/range 0 (array/len @rows)) (fn ri
|
|
108
|
+
(let ((r (default (array/nth @rows @ri) { ti: 0, li: 0 })))
|
|
109
|
+
(let ((t (default (array/nth @entity.traits (object/get @r "ti")) { name: "", path: "", entity: "", initial: "", hasMachine: false, knobs: [], transitions: [], events: [], listenTypes: {}, emitTypes: {}, emitVoid: [], configType: "", orbital: "", listenRows: [] })))
|
|
110
|
+
(let ((lr (default (array/nth (object/get @t "listenRows") (object/get @r "li")) { source: "", event: "", trigger: "" })))
|
|
111
|
+
FILL{@config.programRow ## i => @ind ## source => STR{(str/concat (object/get @t "orbital") "." (object/get @lr "source"))} ## event => STR{(object/get @lr "event")}
|
|
112
|
+
## target => STR{(str/concat (object/get @t "orbital") "." (object/get @t "name"))} ## trigger => STR{(object/get @lr "trigger")}
|
|
113
|
+
## guard => (if (= (object/get @lr "guard" null) null) @config.nullLit FILL{@config.guardRef ## name => FILL{@config.guardName ## n => (str/concat "" @ri)}})
|
|
114
|
+
## map => (if (= (object/get @lr "map" null) null) @config.nullLit FILL{@config.mapRef ## name => FILL{@config.mapName ## n => (str/concat "" @ri)}})})))))
|
|
115
|
+
(array/map @config.deliverOpen (fn l FILL{@l ## i => @ind}))
|
|
116
|
+
(array/flatten (array/map @entity.traits (fn t
|
|
117
|
+
(array/map (object/get @t "events") (fn ev
|
|
118
|
+
(let ((pt LOOKUP{(object/get @t "listenTypes") ## @ev})
|
|
119
|
+
(mn FILL{@config.methodName ## event => CASE{@ev ## @config.methodCase}})
|
|
120
|
+
(tk STR{(str/concat (object/get @t "orbital") "." (object/get @t "name"))}))
|
|
121
|
+
(if (= @pt "")
|
|
122
|
+
FILL{@config.deliverCasePlain ## i => @ind ## target => @tk ## event => STR{@ev} ## method => @mn ## class => CASE{(object/get @t "name") ## @config.classCase}}
|
|
123
|
+
FILL{@config.deliverCase ## i => @ind ## target => @tk ## event => STR{@ev} ## method => @mn ## class => CASE{(object/get @t "name") ## @config.classCase} ## arg => FILL{@config.payloadDecode ## type => @pt ## value => "payload"}})))))))
|
|
124
|
+
(array/map @config.deliverClose (fn l FILL{@l ## i => @ind}))
|
|
125
|
+
(array/map @config.programClose (fn l FILL{@l ## i => @ind}))
|
|
126
|
+
(array/flatten (array/map (array/range 0 (array/len @rows)) (fn ri
|
|
127
|
+
(let ((r (default (array/nth @rows @ri) { ti: 0, li: 0 })))
|
|
128
|
+
(let ((t (default (array/nth @entity.traits (object/get @r "ti")) { name: "", path: "", entity: "", initial: "", hasMachine: false, knobs: [], transitions: [], events: [], listenTypes: {}, emitTypes: {}, emitVoid: [], configType: "", orbital: "", listenRows: [] }))
|
|
129
|
+
(job (default (array/nth (default (array/nth @entity.renders (+ @nC (object/get @r "ti"))) []) (+ (+ 1 (array/len (object/get (default (array/nth @entity.traits (object/get @r "ti")) { name: "", path: "", entity: "", initial: "", hasMachine: false, knobs: [], transitions: [], events: [], listenTypes: {}, emitTypes: {}, emitVoid: [], configType: "", orbital: "", listenRows: [] }) "transitions"))) (object/get @r "li"))) @nullR)))
|
|
130
|
+
(let ((lr (default (array/nth (object/get @t "listenRows") (object/get @r "li")) { source: "", event: "", trigger: "" }))
|
|
131
|
+
(base (str/concat (object/get @t "path") ".listens[" (object/get @r "li") "]")))
|
|
132
|
+
(let ((st LOOKUP{(object/get (default (array/find @entity.traits (fn s (and (= (object/get @s "name") (object/get @lr "source")) (= (object/get @s "orbital") (object/get @t "orbital"))))) { name: "", path: "", entity: "", initial: "", hasMachine: false, knobs: [], transitions: [], events: [], listenTypes: {}, emitTypes: {}, emitVoid: [], configType: "", orbital: "", listenRows: [] }) "emitTypes") ## (object/get @lr "event")}))
|
|
133
|
+
(let ((dec (if (= @st "") @config.nullLit FILL{@config.payloadDecode ## type => @st ## value => "payload_json"})))
|
|
134
|
+
(array/concat
|
|
135
|
+
(if (= (object/get @lr "guard" null) null) []
|
|
136
|
+
(array/map @config.guardForm (fn l FILL{@l ## i => @ind ## name => FILL{@config.guardName ## n => (str/concat "" @ri)} ## decode => @dec ## expr => RESOLVE{(default (array/nth (object/get @job "items") 1) @config.trueLit) ## @base}})))
|
|
137
|
+
(if (= (object/get @lr "map" null) null) []
|
|
138
|
+
(array/map @config.mapForm (fn l FILL{@l ## i => @ind ## name => FILL{@config.mapName ## n => (str/concat "" @ri)} ## decode => @dec ## expr => RESOLVE{(default (array/nth (object/get @job "items") 2) @config.nullLit) ## @base}}))))))))))))
|
|
139
|
+
)])))))
|
|
89
140
|
(set @entity.tokens (array/concat
|
|
90
141
|
(array/flatten (array/flatten (array/map @entity.renders (fn g (array/map @g (fn r (object/get @r "uses")))))))
|
|
91
142
|
(array/flatten (array/flatten (array/map @entity.typeRenders (fn g (array/map @g (fn r (object/get @r "uses")))))))
|
|
92
143
|
(if (and @config.renderModels (array/some @entity.containers (fn c (not (object/get @c "alias"))))) ["dataclass"] [])
|
|
93
144
|
(if (and @config.renderModels (array/some @entity.containers (fn c (array/some (object/get @c "fields") (fn f (and (!= (object/get @f "default" null) null) (or (validate/array (object/get @f "default" null)) (validate/object (object/get @f "default" null))))))))) ["field"] [])))
|
|
145
|
+
(set @entity.tokens (array/concat @entity.tokens (if (and (> (array/len @config.programOpen) 0) (or (array/some @entity.traits (fn t (> (array/len (object/get @t "listenRows")) 0))) (array/includes @entity.tokens "store"))) ["router"] [])))
|
|
94
146
|
(set @entity.helperTexts (array/sort (array/unique (array/flatten (array/map (array/unique @entity.tokens) (fn tk (object/get @config.helpers @tk [])))))))
|
|
@@ -9,4 +9,4 @@
|
|
|
9
9
|
[(str/join @entity.helperTexts @config.helperGap)]
|
|
10
10
|
(array/map @entity.blocks (fn b (str/join @b "\n"))))
|
|
11
11
|
(fn s (!= @s "")))))
|
|
12
|
-
(str/concat (str/join @sections @config.sectionGap) "\n")))))
|
|
12
|
+
(str/replaceAll (str/replaceAll (str/concat (str/join @sections @config.sectionGap) "\n") "\ue00d" "") "\ue00e" "")))))
|
|
@@ -103,10 +103,30 @@
|
|
|
103
103
|
(if (and (= @ptype "") (not @void) (> (array/len @n) 2)) [(str/concat "emit " @ev " carries a payload the trait does not declare")]
|
|
104
104
|
(if (and (!= @ptype "") (> (array/len @n) 2) (not @isObj)) [(str/concat "emit " @ev " passes a payload that is not an object literal, so it is not built as " @ptype)] [])))))
|
|
105
105
|
(let ((call FILL{@config.emitForm ## event => (default (array/nth @ex 1) "") ## payload => @pld}))
|
|
106
|
-
REC{ expr => @call ## stmt => [(str/concat @call @term)] ## warns => (array/concat @ws @warn) ## uses => @us })))))
|
|
106
|
+
REC{ expr => @call ## stmt => [(str/concat @call @term)] ## warns => (array/concat @ws @warn) ## uses => (if (and (!= @ptype "") @isObj) (array/concat @us ["payload"]) @us) })))))
|
|
107
107
|
(if (= @hd "render-ui")
|
|
108
108
|
(let ((kind : string (let ((pr (if (> @argc 1) (array/nth @n 2) null))) (if (validate/object @pr) (let ((tv (object/get @pr "type" "ui"))) (if (validate/string @tv) @tv "ui")) "ui"))))
|
|
109
109
|
REC{ expr => @config.nullLit ## stmt => [FILL{@config.commentForm ## text => (str/concat "render: " @kind)}] ## warns => @ws ## uses => @us })
|
|
110
|
+
(if (object/has @config.routedEffects @hd)
|
|
111
|
+
(let ((oi (if (= @hd "fetch") 2 4))
|
|
112
|
+
(ei (if (= @hd "fetch") 1 2)))
|
|
113
|
+
(let ((rawO (array/nth @n @oi))
|
|
114
|
+
(orR : SrcRender (default (array/nth @rs @oi) @nullR))
|
|
115
|
+
(ename : string (let ((ev (array/nth @n @ei))) (if (validate/string @ev) @ev ""))))
|
|
116
|
+
(let ((opts : SrcMap (if (validate/object @rawO) (let ((om : SrcMap @rawO)) @om) {}))
|
|
117
|
+
(okeys : [string] (object/get @orR "keys")))
|
|
118
|
+
(let ((routes : SrcMap (let ((em (object/get @opts "emit" null))) (if (validate/object @em) (let ((emm : SrcMap @em)) @emm) {})))
|
|
119
|
+
(fi (array/indexOf @okeys "filter")))
|
|
120
|
+
(let ((okT (let ((rv (object/get @routes "success" null))) (if (validate/string @rv) (let ((rvs : string @rv)) FILL{@config.routeForm ## route => STR{@rvs}}) @config.nullLit)))
|
|
121
|
+
(errT (let ((rv (object/get @routes "failure" null))) (if (validate/string @rv) (let ((rvs : string @rv)) FILL{@config.routeForm ## route => STR{@rvs}}) @config.nullLit)))
|
|
122
|
+
(filterT (if (< @fi 0) @config.fetchAll FILL{@config.filterForm ## lambda => FILL{@config.lambdaForm ## params => CASE{@config.rowLocal ## @config.localCase} ## body => (str/replaceAll (default (array/nth (object/get @orR "items") @fi) @config.nullLit) (str/concat "\ue00d" (object/get @config.attributeRoots "entity" "") "\ue00e") CASE{@config.rowLocal ## @config.localCase})}}))
|
|
123
|
+
(extra (array/filter @okeys (fn ok (not (array/includes (if (= @hd "fetch") ["emit", "filter"] ["emit"]) @ok))))))
|
|
124
|
+
(let ((txt FILL{(object/get @config.routedEffects @hd "") ## args => (str/join (array/slice @ex 1 (if (< @argc @oi) (+ @argc 1) @oi)) ", ") ## "0" => (default (array/nth @ex 1) "") ## "1" => (default (array/nth @ex 2) "") ## "2" => (default (array/nth @ex 3) "") ## entity => STR{@ename} ## model => ENT{@ename} ## filter => @filterT ## success => @okT ## failure => @errT})
|
|
125
|
+
(warn (array/concat
|
|
126
|
+
(if (validate/object @rawO) [] [(str/concat @hd " has no options object with emit routes, so its answer reaches no event")])
|
|
127
|
+
(if (and (= @hd "persist") (not (let ((pop (array/nth @n 1))) (if (validate/string @pop) (let ((pops : string @pop)) (array/includes ["create", "update", "delete"] @pops)) false)))) ["persist has an operation the native store does not answer (create, update and delete are rendered)"] [])
|
|
128
|
+
(array/map @extra (fn ok (str/concat @hd " option " @ok " is not rendered natively"))))))
|
|
129
|
+
REC{ expr => @txt ## stmt => [(str/concat @txt @term)] ## items => @ex ## warns => (array/concat @ws @warn) ## uses => (array/concat @us ["store"]) }))))))
|
|
110
130
|
(if (array/includes @config.portEffects @hd)
|
|
111
131
|
(let ((args (array/drop @ex 1)))
|
|
112
132
|
(let ((txt FILL{@config.portCall ## name => CASE{@hd ## @config.portCase} ## "*" => (str/join @args ", ")}))
|
|
@@ -136,13 +156,13 @@
|
|
|
136
156
|
(if (= @mode "callee") FILL{@config.calleeForm ## callee => @callee ## "*" => @joined}
|
|
137
157
|
FILL{@config.unsupportedForm ## op => STR{@hd}})))))
|
|
138
158
|
(warn (if (= @mode "none") [FILL{@config.unsupportedWarn ## language => @config.language ## op => @hd}] [])))
|
|
139
|
-
REC{ expr => @txt ## stmt => [(str/concat @txt @term)] ## items => @ex ## warns => (array/concat @ws @warn) ## uses => (array/concat @us [@hd] (if (= @mode "none") ["unsupported"] [])) }))))))))))))))))))
|
|
159
|
+
REC{ expr => @txt ## stmt => [(str/concat @txt @term)] ## items => @ex ## warns => (array/concat @ws @warn) ## uses => (array/concat @us [@hd] (if (= @mode "none") ["unsupported"] [])) })))))))))))))))))))
|
|
140
160
|
(if (validate/object @n)
|
|
141
161
|
(let ((es (object/entries @k)))
|
|
142
162
|
(let ((typedEs (if @typed (array/map @es (fn e (let ((rr (default (array/nth @e 1) @nullR)) (m (str/concat "." (default (array/nth @e 0) "")))) [(array/nth @e 0) REC{ expr => (str/replaceAll (object/get @rr "expr") "" @m) ## stmt => (object/get @rr "stmt") ## params => (object/get @rr "params") ## body => (object/get @rr "body") ## items => (object/get @rr "items") ## keys => (object/get @rr "keys") ## stmts => (object/get @rr "stmts") ## pairVals => (object/get @rr "pairVals") ## warns => (object/get @rr "warns") ## uses => (object/get @rr "uses") }]))) @es)))
|
|
143
163
|
(let ((pairsText (str/join (array/map @typedEs (fn e FILL{@config.mapPair ## key => STR{(array/nth @e 0)} ## value => (object/get (default (array/nth @e 1) @nullR) "expr")})) @config.mapSep)))
|
|
144
164
|
(let ((txt (if (and @typed (!= @config.recordForm "") (> (array/len @typedEs) 0))
|
|
145
|
-
(str/concat "" (str/join (array/map @typedEs (fn e (str/concat "" (default (array/nth @e 0) "") "" (object/get (default (array/nth @e 1) @nullR) "expr") ""))) "") "")
|
|
165
|
+
(str/concat "" (str/join (array/map (if (= @config.payloadFieldOrder "sorted") (array/map (array/sort (array/map @typedEs (fn se (default (array/nth @se 0) "")))) (fn sk (default (array/find @typedEs (fn se (= (array/nth @se 0) @sk))) [@sk @nullR]))) @typedEs) (fn e (str/concat "" (default (array/nth @e 0) "") "" (object/get (default (array/nth @e 1) @nullR) "expr") ""))) "") "")
|
|
146
166
|
(if (and (!= @config.mapEmpty "") (= (array/len @typedEs) 0)) @config.mapEmpty (str/concat @config.mapOpen @pairsText @config.mapClose)))))
|
|
147
167
|
REC{ expr => @txt ## stmt => [(str/concat @txt @term)]
|
|
148
168
|
## items => (array/map @typedEs (fn e (object/get (default (array/nth @e 1) @nullR) "expr")))
|
|
@@ -156,7 +176,7 @@
|
|
|
156
176
|
(let ((root (default (array/nth @path 0) "")) (rest (array/drop @path 1)))
|
|
157
177
|
(let ((attrBase (object/get @config.attributeRoots @root "")) (itemBase (object/get @config.itemRoots @root "")))
|
|
158
178
|
(let ((kind (if (!= @attrBase "") "attr" (if (!= @itemBase "") "item" @config.localAccess)))
|
|
159
|
-
(base (if (!= @attrBase "") @attrBase (if (!= @itemBase "") @itemBase CASE{@root ## @config.localCase}))))
|
|
179
|
+
(base (if (!= @attrBase "") (if (= @root "entity") (str/concat "\ue00d" @attrBase "\ue00e") @attrBase) (if (!= @itemBase "") @itemBase CASE{@root ## @config.localCase}))))
|
|
160
180
|
(let ((tail (str/join (array/map @rest (fn x (if (and (> (str/len @x) 0) (= (str/replace-pattern @x "[0-9]" "") "")) FILL{@config.indexAccess ## "0" => @x} (if (= @kind "attr") FILL{@config.attrAccess ## name => CASE{@x ## @config.fieldCase}} FILL{@config.itemAccess ## key => STR{@x}})))) "")))
|
|
161
181
|
(let ((plain (str/concat @base @tail))
|
|
162
182
|
(dtext (if (and (= @root "entity") (= (array/len @rest) 1)) LOOKUP{@ctx.defaults ## (default (array/nth @rest 0) "")} "")))
|
|
@@ -9,6 +9,7 @@ uses Spec from "almadar-std/lolo-source"
|
|
|
9
9
|
type SrcExpr = string | number | boolean | [SrcExpr?] | Map string SrcExpr?
|
|
10
10
|
type SrcJob = [SrcExpr?]
|
|
11
11
|
type SrcList = [SrcExpr]
|
|
12
|
+
type SrcMap = Map string SrcExpr?
|
|
12
13
|
type SrcLists = [SrcList]
|
|
13
14
|
type SrcVars = Map string string
|
|
14
15
|
type SrcRef = { type : string! }
|
|
@@ -19,14 +20,18 @@ type SrcTransition = { from : string!, to : string!, event : string!, guard : Sr
|
|
|
19
20
|
type SrcEvent = { key : string!, payloadSchema : [SrcField]? }
|
|
20
21
|
type SrcMachine = { states : [SrcState]!, transitions : [SrcTransition]!, events : [SrcEvent]? }
|
|
21
22
|
type SrcEmitDecl = { event : string!, payloadSchema : [SrcField]? }
|
|
22
|
-
type
|
|
23
|
+
type SrcListenSource = { kind : string!, trait : string?, orbital : string? }
|
|
24
|
+
type SrcListenDecl = { event : string!, triggers : string?, source : SrcListenSource?, guard : SrcExpr?, payloadMapping : SrcExpr? }
|
|
25
|
+
type SrcTraitDecl = { name : string!, ref : string?, linkedEntity : string?, config : Map string SrcKnobDecl?, emits : [SrcEmitDecl]?, stateMachine : SrcMachine?, listens : [SrcListenDecl]? }
|
|
26
|
+
type SrcListenRow = { source : string!, event : string!, trigger : string!, guard : SrcExpr?, map : SrcExpr? }
|
|
23
27
|
type SrcEntityDecl = { name : string!, fields : [SrcField]! }
|
|
24
28
|
type SrcOrbital = { name : string!, entity : SrcEntityDecl?, traits : [SrcTraitDecl]! }
|
|
25
29
|
type SrcProgram = { types : Map string [SrcField]?, orbitals : [SrcOrbital]! }
|
|
26
|
-
type
|
|
30
|
+
type SrcResolved = { program : SrcProgram! }
|
|
31
|
+
type SrcInspect = { program : SrcProgram!, authoredProgram : SrcProgram!, types : Map string string!, expected : Map string string!, models : Map string [string]! }
|
|
27
32
|
type SrcContainer = { name : string!, alias : boolean!, fields : [SrcField]! }
|
|
28
33
|
type SrcKnob = { key : string!, default : SrcExpr? }
|
|
29
|
-
type SrcTraitInfo = { name : string!, path : string!, entity : string!, initial : string!, hasMachine : boolean!, knobs : [SrcKnob]!, transitions : [SrcTransition]!, events : [string]!, listenTypes : Map string string!, emitTypes : Map string string!, emitVoid : [string]!, configType : string! }
|
|
34
|
+
type SrcTraitInfo = { name : string!, path : string!, entity : string!, initial : string!, hasMachine : boolean!, knobs : [SrcKnob]!, transitions : [SrcTransition]!, events : [string]!, listenTypes : Map string string!, emitTypes : Map string string!, emitVoid : [string]!, configType : string!, orbital : string!, listenRows : [SrcListenRow]! }
|
|
30
35
|
type SrcCtx = { emitTypes : Map string string!, emitVoid : [string]!, defaults : Map string string! }
|
|
31
36
|
type SrcRender = { expr : string!, stmt : [string]!, params : [string]!, body : string!, items : [string]!, keys : [string]!, stmts : [[string]]!, pairVals : [string]!, warns : [string]!, uses : [string]! }
|
|
32
37
|
type SrcTypeRender = { text : string!, uses : [string]! }
|