@almadar/std 17.0.2 → 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-packages.lolo +26 -16
- 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/cli/orb-packages.lolo +1 -1
- 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-packages.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/cli/orb-packages.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
|
@@ -1 +1 @@
|
|
|
1
|
-
{"typeContractVersion":1,"types":{"HttpHeader":[{"nullable":false,"name":"name","type":"string","required":true},{"nullable":false,"name":"value","type":"string","required":true}],"YoutubeErrorBody":[{"nullable":false,"name":"error","type":"union","properties":[{"nullable":false,"name":"string","type":"string"},{"nullable":false,"name":"YoutubeErrorObject","type":"object","properties":[{"nullable":false,"name":"message","type":"string"},{"nullable":false,"name":"errors","type":"[object]","properties":[{"nullable":false,"name":"message","type":"string"}],"items":{"nullable":false,"name":"","type":"YoutubeErrorDetail","projectedFrom":{"type":"YoutubeErrorDetail"}}}],"projectedFrom":{"type":"YoutubeErrorObject"}}]}],"YoutubeErrorDetail":[{"nullable":false,"name":"message","type":"string"}],"YoutubeErrorObject":[{"nullable":false,"name":"message","type":"string"},{"nullable":false,"name":"errors","type":"[object]","properties":[{"nullable":false,"name":"message","type":"string"}],"items":{"nullable":false,"name":"","type":"YoutubeErrorDetail","projectedFrom":{"type":"YoutubeErrorDetail"}}}],"YoutubeJob":[{"nullable":false,"name":"kind","type":"string","required":true},{"nullable":false,"name":"attempt","type":"number","required":true},{"nullable":false,"name":"query","type":"string","required":true},{"nullable":false,"name":"maxResults","type":"number","required":true},{"nullable":false,"name":"type","type":"string","required":true},{"nullable":false,"name":"id","type":"string","required":true}],"YoutubeKv":[{"nullable":false,"name":"k","type":"string","required":true},{"nullable":true,"name":"v","type":"string"}],"YoutubePending":[{"nullable":false,"name":"key","type":"string","required":true},{"nullable":false,"name":"job","type":"object","required":true,"properties":[{"nullable":false,"name":"kind","type":"string","required":true},{"nullable":false,"name":"attempt","type":"number","required":true},{"nullable":false,"name":"query","type":"string","required":true},{"nullable":false,"name":"maxResults","type":"number","required":true},{"nullable":false,"name":"type","type":"string","required":true},{"nullable":false,"name":"id","type":"string","required":true}],"projectedFrom":{"type":"YoutubeJob"}}],"YoutubeResource":[{"nullable":false,"name":"snippet","type":"object","properties":[{"nullable":false,"name":"title","type":"string"},{"nullable":false,"name":"description","type":"string"},{"nullable":false,"name":"thumbnails","type":"object","properties":[{"nullable":false,"name":"default","type":"object","properties":[{"nullable":false,"name":"url","type":"string"}],"projectedFrom":{"type":"YoutubeThumbnail"}}],"projectedFrom":{"type":"YoutubeThumbnails"}}],"projectedFrom":{"type":"YoutubeSnippet"}},{"nullable":false,"name":"statistics","type":"object","properties":[{"nullable":false,"name":"viewCount","type":"string"},{"nullable":false,"name":"likeCount","type":"string"},{"nullable":false,"name":"subscriberCount","type":"string"}],"projectedFrom":{"type":"YoutubeStatistics"}}],"YoutubeResourceReply":[{"nullable":false,"name":"items","type":"[object]","required":true,"properties":[{"nullable":false,"name":"snippet","type":"object","properties":[{"nullable":false,"name":"title","type":"string"},{"nullable":false,"name":"description","type":"string"},{"nullable":false,"name":"thumbnails","type":"object","properties":[{"nullable":false,"name":"default","type":"object","properties":[{"nullable":false,"name":"url","type":"string"}],"projectedFrom":{"type":"YoutubeThumbnail"}}],"projectedFrom":{"type":"YoutubeThumbnails"}}],"projectedFrom":{"type":"YoutubeSnippet"}},{"nullable":false,"name":"statistics","type":"object","properties":[{"nullable":false,"name":"viewCount","type":"string"},{"nullable":false,"name":"likeCount","type":"string"},{"nullable":false,"name":"subscriberCount","type":"string"}],"projectedFrom":{"type":"YoutubeStatistics"}}],"items":{"nullable":false,"name":"","type":"YoutubeResource","projectedFrom":{"type":"YoutubeResource"}}}],"YoutubeSearchId":[{"nullable":false,"name":"videoId","type":"string"}],"YoutubeSearchItem":[{"nullable":false,"name":"id","type":"object","properties":[{"nullable":false,"name":"videoId","type":"string"}],"projectedFrom":{"type":"YoutubeSearchId"}},{"nullable":false,"name":"snippet","type":"object","properties":[{"nullable":false,"name":"title","type":"string"},{"nullable":false,"name":"description","type":"string"},{"nullable":false,"name":"thumbnails","type":"object","properties":[{"nullable":false,"name":"default","type":"object","properties":[{"nullable":false,"name":"url","type":"string"}],"projectedFrom":{"type":"YoutubeThumbnail"}}],"projectedFrom":{"type":"YoutubeThumbnails"}}],"projectedFrom":{"type":"YoutubeSnippet"}}],"YoutubeSearchReply":[{"nullable":false,"name":"items","type":"[object]","required":true,"properties":[{"nullable":false,"name":"id","type":"object","properties":[{"nullable":false,"name":"videoId","type":"string"}],"projectedFrom":{"type":"YoutubeSearchId"}},{"nullable":false,"name":"snippet","type":"object","properties":[{"nullable":false,"name":"title","type":"string"},{"nullable":false,"name":"description","type":"string"},{"nullable":false,"name":"thumbnails","type":"object","properties":[{"nullable":false,"name":"default","type":"object","properties":[{"nullable":false,"name":"url","type":"string"}],"projectedFrom":{"type":"YoutubeThumbnail"}}],"projectedFrom":{"type":"YoutubeThumbnails"}}],"projectedFrom":{"type":"YoutubeSnippet"}}],"items":{"nullable":false,"name":"","type":"YoutubeSearchItem","projectedFrom":{"type":"YoutubeSearchItem"}}}],"YoutubeSnippet":[{"nullable":false,"name":"title","type":"string"},{"nullable":false,"name":"description","type":"string"},{"nullable":false,"name":"thumbnails","type":"object","properties":[{"nullable":false,"name":"default","type":"object","properties":[{"nullable":false,"name":"url","type":"string"}],"projectedFrom":{"type":"YoutubeThumbnail"}}],"projectedFrom":{"type":"YoutubeThumbnails"}}],"YoutubeStatistics":[{"nullable":false,"name":"viewCount","type":"string"},{"nullable":false,"name":"likeCount","type":"string"},{"nullable":false,"name":"subscriberCount","type":"string"}],"YoutubeThumbnail":[{"nullable":false,"name":"url","type":"string"}],"YoutubeThumbnails":[{"nullable":false,"name":"default","type":"object","properties":[{"nullable":false,"name":"url","type":"string"}],"projectedFrom":{"type":"YoutubeThumbnail"}}]},"name":"std-youtube","version":"1.0.0","description":"std-youtube — YouTube Data API v3 search, video and channel lookups. YOUTUBE_SEARCH lists matching video snippets, YOUTUBE_GET_VIDEO and YOUTUBE_GET_CHANNEL fetch snippet and statistics. The API key is the credential of the composed std-http-client trait YoutubeHttp, written by the host as the key query parameter; server errors, rate limiting and dead connections are retried as the googleapis SDK does.","orbitals":[{"name":"YoutubeOrbital","id":"orb_YT07P419JHMS8Q0X402SEHKA7F","uses":[{"from":"std/behaviors/std-http-client","as":"Http"},{"from":"std/behaviors/std-timeout","as":"Timeout"}],"entity":{"name":"YoutubeLookup","id":"ent_6D11Z6SCSAPCN5XD6DKZJKYCZ8","persistence":"runtime","fields":[{"nullable":false,"name":"id","type":"string","required":true},{"nullable":false,"name":"pending","type":"array","default":[],"items":{"nullable":false,"type":"object","properties":{"key":{"nullable":false,"name":"key","type":"string","required":true},"job":{"nullable":false,"name":"job","type":"object","required":true,"properties":{"kind":{"nullable":false,"name":"kind","type":"string","required":true},"attempt":{"nullable":false,"name":"attempt","type":"number","required":true},"query":{"nullable":false,"name":"query","type":"string","required":true},"maxResults":{"nullable":false,"name":"maxResults","type":"number","required":true},"type":{"nullable":false,"name":"type","type":"string","required":true},"id":{"nullable":false,"name":"id","type":"string","required":true}},"projectedFrom":{"type":"YoutubeJob"}}},"projectedFrom":{"type":"YoutubePending"}}},{"nullable":false,"name":"seq","type":"number","default":0}]},"traits":[{"ref":"Http.traits.HttpClient","id":"trt_DE4QP8VAP7NB3KQH5G7SHP1ERC","name":"YoutubeHttp","config":{"host":{"type":"unknown","default":"youtube.googleapis.com","wired":true},"port":{"type":"unknown","default":443,"wired":true},"tls":{"type":"unknown","default":true,"wired":true},"serverName":{"type":"unknown","default":"youtube.googleapis.com","wired":true},"credential":{"type":"unknown","default":"YOUTUBE_API_KEY","wired":true},"credentialIn":{"type":"unknown","default":"query","wired":true},"credentialName":{"type":"unknown","default":"key","wired":true}},"listens":[{"event":"YOUTUBE_HTTP_SEND","triggers":"HTTP_SEND","source":{"kind":"trait","trait":"YoutubeClient"}},{"event":"TIMED_OUT","triggers":"HTTP_CANCEL","payloadMapping":{"key":"@payload.key"},"source":{"kind":"trait","trait":"YoutubeTimeout"}}]},{"ref":"Timeout.traits.Timeout","id":"trt_CDYZ8GJYK2F9HCJTJYNYZJB31A","name":"YoutubeTimeout","config":{"timeoutMs":{"type":"unknown","default":30000,"wired":true},"cancelOnDeadline":{"type":"unknown","default":false,"wired":true}},"listens":[{"event":"YOUTUBE_HTTP_SEND","triggers":"START","payloadMapping":{"key":["as","@payload.key","CallKey"]},"source":{"kind":"trait","trait":"YoutubeClient"}},{"event":"HTTP_REPLIED","triggers":"SUCCEEDED","payloadMapping":{"key":["as","@payload.key","CallKey"]},"source":{"kind":"trait","trait":"YoutubeHttp"}},{"event":"HTTP_FAILED","triggers":"FAILED","payloadMapping":{"key":["as","@payload.key","CallKey"],"error":"@payload.error"},"source":{"kind":"trait","trait":"YoutubeHttp"}}]},{"name":"YoutubeClient","id":"trt_3VMZW1WYQZFBZHZKA2JVWAMPXP","effectRow":[{"kind":"emit","resource":"YOUTUBE_CHANNEL_FAILED"},{"kind":"emit","resource":"YOUTUBE_CHANNEL_RESULT"},{"kind":"emit","resource":"YOUTUBE_HTTP_SEND"},{"kind":"emit","resource":"YOUTUBE_REJECTED"},{"kind":"emit","resource":"YOUTUBE_REQUEST"},{"kind":"emit","resource":"YOUTUBE_SEARCH_FAILED"},{"kind":"emit","resource":"YOUTUBE_SEARCH_RESULT"},{"kind":"emit","resource":"YOUTUBE_VIDEO_FAILED"},{"kind":"emit","resource":"YOUTUBE_VIDEO_RESULT"},{"kind":"set","resource":"@entity.pending"},{"kind":"set","resource":"@entity.seq"}],"linkedEntity":"YoutubeLookup","linkedEntityId":"ent_6D11Z6SCSAPCN5XD6DKZJKYCZ8","entityRefIds":{"YoutubeLookup":"ent_6D11Z6SCSAPCN5XD6DKZJKYCZ8"},"emits":[{"event":"YOUTUBE_SEARCH_RESULT","eventId":"evt_D97A25AP6NB3AZ6ED3TKWQA1WW","description":"Matching search results, each with whichever of videoId, title, thumbnail and description the API returned.","synonyms":"youtube search results, video search, matching videos","tier":"primary","scope":"external","payloadSchema":[{"nullable":false,"name":"items","type":"[Map<string,string>]","required":true,"items":{"nullable":false,"name":"","type":"Map<string,string>","items":{"nullable":false,"name":"","type":"string"}}}]},{"event":"YOUTUBE_VIDEO_RESULT","eventId":"evt_7Y60BM1CHMP8T6XC7D9MD3YGQ4","description":"A video's title, description and view and like counts; a field the API omitted is absent.","synonyms":"video details, video statistics, youtube video","tier":"primary","scope":"external","payloadSchema":[{"nullable":false,"name":"title","type":"string"},{"nullable":false,"name":"description","type":"string"},{"nullable":false,"name":"viewCount","type":"string"},{"nullable":false,"name":"likeCount","type":"string"}]},{"event":"YOUTUBE_CHANNEL_RESULT","eventId":"evt_733PNNYPKJB9S259578TM4GMM4","description":"A channel's name, description and subscriber count; a field the API omitted (hidden subscribers) is absent.","synonyms":"channel details, channel statistics, youtube channel","tier":"primary","scope":"external","payloadSchema":[{"nullable":false,"name":"name","type":"string"},{"nullable":false,"name":"description","type":"string"},{"nullable":false,"name":"subscriberCount","type":"string"}]},{"event":"YOUTUBE_SEARCH_FAILED","eventId":"evt_PMANPPYJX19EGYZGQWQ39XN1AA","description":"The search failed: the API rejected it, the key is not configured, or the API stayed unreachable after retries.","synonyms":"search error, youtube search failed","tier":"primary","scope":"external","payloadSchema":[{"nullable":false,"name":"code","type":"string"},{"nullable":false,"name":"message","type":"string","required":true}]},{"event":"YOUTUBE_VIDEO_FAILED","eventId":"evt_3F4P4DD0CXG6EYBNZVJWJKNY8K","description":"The video lookup failed or the video does not exist.","synonyms":"video error, video not found","tier":"primary","scope":"external","payloadSchema":[{"nullable":false,"name":"code","type":"string"},{"nullable":false,"name":"message","type":"string","required":true}]},{"event":"YOUTUBE_CHANNEL_FAILED","eventId":"evt_4CDFFK4XSAEWN0XNMZGCBHTEJA","description":"The channel lookup failed or the channel does not exist.","synonyms":"channel error, channel not found","tier":"primary","scope":"external","payloadSchema":[{"nullable":false,"name":"code","type":"string"},{"nullable":false,"name":"message","type":"string","required":true}]},{"event":"YOUTUBE_REQUEST","eventId":"evt_HFY9N0PJEH978RBHBTWVGVW390","description":"Internal: one attempt at a Data API call.","tier":"secondary","payloadSchema":[{"nullable":false,"name":"kind","type":"string","required":true},{"nullable":false,"name":"attempt","type":"number","required":true},{"nullable":false,"name":"query","type":"string","required":true},{"nullable":false,"name":"maxResults","type":"number","required":true},{"nullable":false,"name":"type","type":"string","required":true},{"nullable":false,"name":"id","type":"string","required":true}]},{"event":"YOUTUBE_HTTP_SEND","eventId":"evt_QMHQSHEM9WA4YACXHAMHC8PCT3","description":"Internal: one Data API request, for the HTTP client.","tier":"secondary","payloadSchema":[{"nullable":false,"name":"key","type":"string","required":true},{"nullable":false,"name":"method","type":"string","required":true},{"nullable":false,"name":"target","type":"string","required":true},{"nullable":false,"name":"headers","type":"[object]","required":true,"properties":[{"nullable":false,"name":"name","type":"string","required":true},{"nullable":false,"name":"value","type":"string","required":true}],"items":{"nullable":false,"name":"","type":"HttpHeader","projectedFrom":{"type":"HttpHeader"}}},{"nullable":false,"name":"body","type":"bytes","required":true},{"nullable":false,"name":"stream","type":"string","required":true}]},{"event":"YOUTUBE_REJECTED","eventId":"evt_DC5BTDDBH1NRGXH5BG5D6KPVYQ","description":"Internal: a call ended in failure with this message.","tier":"secondary","payloadSchema":[{"nullable":false,"name":"kind","type":"string","required":true},{"nullable":false,"name":"message","type":"string","required":true}]}],"listens":[{"event":"HTTP_REPLIED","triggers":"YOUTUBE_REPLIED","triggersId":"evt_8K5BY4XYW2ZE1A2N16NRSGZQP9","payloadMapping":{"status":"@payload.status","headers":"@payload.headers","body":["default",["bytes/to-string","@payload.body"],""],"key":"@payload.key"},"source":{"kind":"trait","trait":"YoutubeHttp","traitId":"trt_DE4QP8VAP7NB3KQH5G7SHP1ERC"}},{"event":"HTTP_FAILED","triggers":"YOUTUBE_UNREACHED","triggersId":"evt_NWVQ445DWTPYD50WZ13Z2HQNJD","payloadMapping":{"error":"@payload.error","kind":"@payload.kind","key":"@payload.key"},"source":{"kind":"trait","trait":"YoutubeHttp","traitId":"trt_DE4QP8VAP7NB3KQH5G7SHP1ERC"}},{"event":"TIMED_OUT","triggers":"YOUTUBE_UNREACHED","triggersId":"evt_NWVQ445DWTPYD50WZ13Z2HQNJD","payloadMapping":{"error":["str/concat","timeout of ","@payload.timeoutMs","ms exceeded"],"kind":"timeout","key":"@payload.key"},"source":{"kind":"trait","trait":"YoutubeTimeout","traitId":"trt_CDYZ8GJYK2F9HCJTJYNYZJB31A"}}],"stateMachine":{"states":[{"name":"idle","isInitial":true}],"events":[{"key":"INIT","id":"evt_3QWKMVQV6FXK7JGKR71QJGQ448","name":"Initialize"},{"key":"YOUTUBE_SEARCH","id":"evt_KZJP8M2NKXASYX4960VJ3JM6V8","name":"Youtube Search","description":"Search YouTube for videos matching a query; maxResults defaults to 10, type filters the resource kind (video, channel, playlist).","synonyms":"search youtube, find videos, video search","payloadSchema":[{"nullable":false,"name":"query","type":"string","required":true},{"nullable":true,"name":"maxResults","type":"number"},{"nullable":true,"name":"type","type":"string"}],"input":true,"listened":true},{"key":"YOUTUBE_GET_VIDEO","id":"evt_Y7NMFT3TZKXFSVZHM5CGAWNDYJ","name":"Youtube Get Video","description":"Fetch a video's snippet and statistics.","synonyms":"get video, video details, youtube video info","payloadSchema":[{"nullable":false,"name":"videoId","type":"string","required":true}],"input":true,"listened":true},{"key":"YOUTUBE_GET_CHANNEL","id":"evt_7EGF1XAQTTBXDCV4VQQZ3EBWG4","name":"Youtube Get Channel","description":"Fetch a channel's snippet and statistics.","synonyms":"get channel, channel details, youtube channel info","payloadSchema":[{"nullable":false,"name":"channelId","type":"string","required":true}],"input":true,"listened":true},{"key":"YOUTUBE_REQUEST","id":"evt_HFY9N0PJEH978RBHBTWVGVW390","name":"Youtube Request","description":"Internal: one attempt at a Data API call.","tier":"secondary","payloadSchema":[{"nullable":false,"name":"kind","type":"string","required":true},{"nullable":false,"name":"attempt","type":"number","required":true},{"nullable":false,"name":"query","type":"string","required":true},{"nullable":false,"name":"maxResults","type":"number","required":true},{"nullable":false,"name":"type","type":"string","required":true},{"nullable":false,"name":"id","type":"string","required":true}],"listened":true},{"key":"YOUTUBE_REPLIED","id":"evt_8K5BY4XYW2ZE1A2N16NRSGZQP9","name":"Youtube Replied","payloadSchema":[{"nullable":false,"name":"status","type":"number","required":true},{"nullable":false,"name":"headers","type":"Map<string,string>","items":{"nullable":false,"name":"","type":"string"}},{"nullable":false,"name":"body","type":"string","required":true},{"nullable":false,"name":"key","type":"string","required":true}],"listened":true},{"key":"YOUTUBE_UNREACHED","id":"evt_NWVQ445DWTPYD50WZ13Z2HQNJD","name":"Youtube Unreached","payloadSchema":[{"nullable":false,"name":"error","type":"string","required":true},{"nullable":false,"name":"kind","type":"string","required":true},{"nullable":false,"name":"key","type":"string","required":true}],"listened":true},{"key":"YOUTUBE_REJECTED","id":"evt_DC5BTDDBH1NRGXH5BG5D6KPVYQ","name":"Youtube Rejected","description":"Internal: a call ended in failure with this message.","tier":"secondary","payloadSchema":[{"nullable":false,"name":"kind","type":"string","required":true},{"nullable":false,"name":"message","type":"string","required":true}],"listened":true},{"key":"YOUTUBE_SEARCH_RESULT","id":"evt_D97A25AP6NB3AZ6ED3TKWQA1WW","name":"Youtube Search Result","description":"Matching search results, each with whichever of videoId, title, thumbnail and description the API returned.","synonyms":"youtube search results, video search, matching videos","tier":"primary","payloadSchema":[{"nullable":false,"name":"items","type":"[Map<string,string>]","required":true,"items":{"nullable":false,"name":"","type":"Map<string,string>","items":{"nullable":false,"name":"","type":"string"}}}]},{"key":"YOUTUBE_VIDEO_RESULT","id":"evt_7Y60BM1CHMP8T6XC7D9MD3YGQ4","name":"Youtube Video Result","description":"A video's title, description and view and like counts; a field the API omitted is absent.","synonyms":"video details, video statistics, youtube video","tier":"primary","payloadSchema":[{"nullable":false,"name":"title","type":"string"},{"nullable":false,"name":"description","type":"string"},{"nullable":false,"name":"viewCount","type":"string"},{"nullable":false,"name":"likeCount","type":"string"}]},{"key":"YOUTUBE_CHANNEL_RESULT","id":"evt_733PNNYPKJB9S259578TM4GMM4","name":"Youtube Channel Result","description":"A channel's name, description and subscriber count; a field the API omitted (hidden subscribers) is absent.","synonyms":"channel details, channel statistics, youtube channel","tier":"primary","payloadSchema":[{"nullable":false,"name":"name","type":"string"},{"nullable":false,"name":"description","type":"string"},{"nullable":false,"name":"subscriberCount","type":"string"}]},{"key":"YOUTUBE_SEARCH_FAILED","id":"evt_PMANPPYJX19EGYZGQWQ39XN1AA","name":"Youtube Search Failed","description":"The search failed: the API rejected it, the key is not configured, or the API stayed unreachable after retries.","synonyms":"search error, youtube search failed","tier":"primary","payloadSchema":[{"nullable":false,"name":"code","type":"string"},{"nullable":false,"name":"message","type":"string","required":true}]},{"key":"YOUTUBE_VIDEO_FAILED","id":"evt_3F4P4DD0CXG6EYBNZVJWJKNY8K","name":"Youtube Video Failed","description":"The video lookup failed or the video does not exist.","synonyms":"video error, video not found","tier":"primary","payloadSchema":[{"nullable":false,"name":"code","type":"string"},{"nullable":false,"name":"message","type":"string","required":true}]},{"key":"YOUTUBE_CHANNEL_FAILED","id":"evt_4CDFFK4XSAEWN0XNMZGCBHTEJA","name":"Youtube Channel Failed","description":"The channel lookup failed or the channel does not exist.","synonyms":"channel error, channel not found","tier":"primary","payloadSchema":[{"nullable":false,"name":"code","type":"string"},{"nullable":false,"name":"message","type":"string","required":true}]},{"key":"YOUTUBE_HTTP_SEND","id":"evt_QMHQSHEM9WA4YACXHAMHC8PCT3","name":"Youtube Http Send","description":"Internal: one Data API request, for the HTTP client.","tier":"secondary","payloadSchema":[{"nullable":false,"name":"key","type":"string","required":true},{"nullable":false,"name":"method","type":"string","required":true},{"nullable":false,"name":"target","type":"string","required":true},{"nullable":false,"name":"headers","type":"[object]","required":true,"properties":[{"nullable":false,"name":"name","type":"string","required":true},{"nullable":false,"name":"value","type":"string","required":true}],"items":{"nullable":false,"name":"","type":"HttpHeader","projectedFrom":{"type":"HttpHeader"}}},{"nullable":false,"name":"body","type":"bytes","required":true},{"nullable":false,"name":"stream","type":"string","required":true}]}],"transitions":[{"from":"idle","to":"idle","event":"INIT","eventId":"evt_3QWKMVQV6FXK7JGKR71QJGQ448"},{"from":"idle","to":"idle","event":"YOUTUBE_SEARCH","eventId":"evt_KZJP8M2NKXASYX4960VJ3JM6V8","effects":[["emit","YOUTUBE_REQUEST",{"kind":"search","attempt":0,"query":"@payload.query","maxResults":["default","@payload.maxResults",10],"type":["default","@payload.type",""],"id":""}]]},{"from":"idle","to":"idle","event":"YOUTUBE_GET_VIDEO","eventId":"evt_Y7NMFT3TZKXFSVZHM5CGAWNDYJ","effects":[["emit","YOUTUBE_REQUEST",{"kind":"video","attempt":0,"query":"","maxResults":0,"type":"","id":"@payload.videoId"}]]},{"from":"idle","to":"idle","event":"YOUTUBE_GET_CHANNEL","eventId":"evt_7EGF1XAQTTBXDCV4VQQZ3EBWG4","effects":[["emit","YOUTUBE_REQUEST",{"kind":"channel","attempt":0,"query":"","maxResults":0,"type":"","id":"@payload.channelId"}]]},{"from":"idle","to":"idle","event":"YOUTUBE_REQUEST","eventId":"evt_HFY9N0PJEH978RBHBTWVGVW390","guard":["and",["=","@payload.kind","search"],["!=","@payload.type",""]],"effects":[["let",[["k",["str/concat","youtube-","@entity.seq"]]],["do",["set","@entity.pending",["array/append","@entity.pending",{"key":"@k","job":{"kind":"@payload.kind","attempt":"@payload.attempt","query":"@payload.query","maxResults":"@payload.maxResults","type":"@payload.type","id":"@payload.id"}}]],["set","@entity.seq",["+","@entity.seq",1]],["emit","YOUTUBE_HTTP_SEND",{"key":"@k","method":"GET","target":["str/concat","/youtube/v3/search?part=snippet&q=",["str/replaceAll",["str/replaceAll",["str/replaceAll",["str/replaceAll",["str/replaceAll",["str/encode-uri-component","@payload.query"],"!","%21"],"'","%27"],"(","%28"],")","%29"],"*","%2A"],"&maxResults=","@payload.maxResults","&type=",["str/replaceAll",["str/replaceAll",["str/replaceAll",["str/replaceAll",["str/replaceAll",["str/encode-uri-component","@payload.type"],"!","%21"],"'","%27"],"(","%28"],")","%29"],"*","%2A"]],"headers":[{"name":"accept","value":"*/*"}],"body":["bytes/from-string",""],"stream":"none"}]]]]},{"from":"idle","to":"idle","event":"YOUTUBE_REQUEST","eventId":"evt_HFY9N0PJEH978RBHBTWVGVW390","guard":["and",["=","@payload.kind","search"],["=","@payload.type",""]],"effects":[["let",[["k",["str/concat","youtube-","@entity.seq"]]],["do",["set","@entity.pending",["array/append","@entity.pending",{"key":"@k","job":{"kind":"@payload.kind","attempt":"@payload.attempt","query":"@payload.query","maxResults":"@payload.maxResults","type":"@payload.type","id":"@payload.id"}}]],["set","@entity.seq",["+","@entity.seq",1]],["emit","YOUTUBE_HTTP_SEND",{"key":"@k","method":"GET","target":["str/concat","/youtube/v3/search?part=snippet&q=",["str/replaceAll",["str/replaceAll",["str/replaceAll",["str/replaceAll",["str/replaceAll",["str/encode-uri-component","@payload.query"],"!","%21"],"'","%27"],"(","%28"],")","%29"],"*","%2A"],"&maxResults=","@payload.maxResults"],"headers":[{"name":"accept","value":"*/*"}],"body":["bytes/from-string",""],"stream":"none"}]]]]},{"from":"idle","to":"idle","event":"YOUTUBE_REQUEST","eventId":"evt_HFY9N0PJEH978RBHBTWVGVW390","guard":["=","@payload.kind","video"],"effects":[["let",[["k",["str/concat","youtube-","@entity.seq"]]],["do",["set","@entity.pending",["array/append","@entity.pending",{"key":"@k","job":{"kind":"@payload.kind","attempt":"@payload.attempt","query":"@payload.query","maxResults":"@payload.maxResults","type":"@payload.type","id":"@payload.id"}}]],["set","@entity.seq",["+","@entity.seq",1]],["emit","YOUTUBE_HTTP_SEND",{"key":"@k","method":"GET","target":["str/concat","/youtube/v3/videos?part=snippet&part=statistics&id=",["str/replaceAll",["str/replaceAll",["str/replaceAll",["str/replaceAll",["str/replaceAll",["str/encode-uri-component","@payload.id"],"!","%21"],"'","%27"],"(","%28"],")","%29"],"*","%2A"]],"headers":[{"name":"accept","value":"*/*"}],"body":["bytes/from-string",""],"stream":"none"}]]]]},{"from":"idle","to":"idle","event":"YOUTUBE_REQUEST","eventId":"evt_HFY9N0PJEH978RBHBTWVGVW390","guard":["=","@payload.kind","channel"],"effects":[["let",[["k",["str/concat","youtube-","@entity.seq"]]],["do",["set","@entity.pending",["array/append","@entity.pending",{"key":"@k","job":{"kind":"@payload.kind","attempt":"@payload.attempt","query":"@payload.query","maxResults":"@payload.maxResults","type":"@payload.type","id":"@payload.id"}}]],["set","@entity.seq",["+","@entity.seq",1]],["emit","YOUTUBE_HTTP_SEND",{"key":"@k","method":"GET","target":["str/concat","/youtube/v3/channels?part=snippet&part=statistics&id=",["str/replaceAll",["str/replaceAll",["str/replaceAll",["str/replaceAll",["str/replaceAll",["str/encode-uri-component","@payload.id"],"!","%21"],"'","%27"],"(","%28"],")","%29"],"*","%2A"]],"headers":[{"name":"accept","value":"*/*"}],"body":["bytes/from-string",""],"stream":"none"}]]]]},{"from":"idle","to":"idle","event":"YOUTUBE_REPLIED","eventId":"evt_8K5BY4XYW2ZE1A2N16NRSGZQP9","guard":["and",["or",["and",[">=","@payload.status",200],["<","@payload.status",300]],["=","@payload.status",304]],["array/some","@entity.pending",["fn","p",["and",["=","@p.key","@payload.key"],["=","@p.job.kind","search"]]]]],"effects":[["let",[["r",["json/parse","@payload.body","YoutubeSearchReply"]]],["do",["set","@entity.pending",["array/filter","@entity.pending",["fn","p",["!=","@p.key","@payload.key"]]]],["if",["not",["json/valid","@payload.body"]],["emit","YOUTUBE_SEARCH_FAILED",{"code":"MALFORMED_REPLY","message":"YouTube API replied with a body that is not valid JSON"}],["if",["=","@r",null],["emit","YOUTUBE_SEARCH_FAILED",{"code":"MALFORMED_REPLY","message":"YouTube API replied with a body that is not a search reply"}],["emit","YOUTUBE_SEARCH_RESULT",{"items":["array/map","@r.items",["fn","it",["let",[["kvs",[{"k":"videoId","v":["object/get","@it","id.videoId",null]},{"k":"title","v":["object/get","@it","snippet.title",null]},{"k":"thumbnail","v":["object/get","@it","snippet.thumbnails.default.url",null]},{"k":"description","v":["object/get","@it","snippet.description",null]}],"{\"version\":1,\"type\":{\"kind\":\"array\",\"inner\":{\"kind\":\"typeref\",\"name\":\"YoutubeKv\"}},\"named\":{\"YoutubeKv\":{\"kind\":\"struct\",\"fields\":[{\"name\":\"k\",\"fieldType\":{\"kind\":\"string\"},\"required\":true,\"constraints\":[]},{\"name\":\"v\",\"fieldType\":{\"kind\":\"optional\",\"inner\":{\"kind\":\"string\"}},\"required\":false,\"constraints\":[]}]}}}"]],["default",["object/fromEntries",["array/map",["array/filter","@kvs",["fn","x",["!=","@x.v",null]]],["fn","x",["@x.k",["default","@x.v",""]]]]],{}]]]]}]]]]]]},{"from":"idle","to":"idle","event":"YOUTUBE_REPLIED","eventId":"evt_8K5BY4XYW2ZE1A2N16NRSGZQP9","guard":["and",["not",["or",["and",[">=","@payload.status",200],["<","@payload.status",300]],["=","@payload.status",304]]],["or",["<","@payload.status",200],["=","@payload.status",408],["=","@payload.status",429],[">=","@payload.status",500]],["array/some","@entity.pending",["fn","p",["and",["=","@p.key","@payload.key"],["=","@p.job.kind","search"],["<","@p.job.attempt",3]]]]],"effects":[["let",[["e",["array/find","@entity.pending",["fn","p",["=","@p.key","@payload.key"]]]]],["do",["set","@entity.pending",["array/filter","@entity.pending",["fn","p",["!=","@p.key","@payload.key"]]]],["if",["=","@e",null],["emit","YOUTUBE_SEARCH_FAILED",{"message":"YouTube replied for a request that is no longer pending"}],["emit","YOUTUBE_REQUEST",{"kind":"@e.job.kind","attempt":["+","@e.job.attempt",1],"query":"@e.job.query","maxResults":"@e.job.maxResults","type":"@e.job.type","id":"@e.job.id"}]]]]]},{"from":"idle","to":"idle","event":"YOUTUBE_REPLIED","eventId":"evt_8K5BY4XYW2ZE1A2N16NRSGZQP9","guard":["and",["not",["or",["and",[">=","@payload.status",200],["<","@payload.status",300]],["=","@payload.status",304]]],["or",["and",[">=","@payload.status",200],["<","@payload.status",500],["!=","@payload.status",408],["!=","@payload.status",429]],["array/some","@entity.pending",["fn","p",["and",["=","@p.key","@payload.key"],[">=","@p.job.attempt",3]]]]],["array/some","@entity.pending",["fn","p",["and",["=","@p.key","@payload.key"],["=","@p.job.kind","search"]]]]],"effects":[["let",[["b",["json/parse","@payload.body","YoutubeErrorBody"]]],["let",[["error",["if",["=","@b",null],null,["object/get","@b","error",null]]]],["do",["set","@entity.pending",["array/filter","@entity.pending",["fn","p",["!=","@p.key","@payload.key"]]]],["emit","YOUTUBE_REJECTED",{"kind":"search","message":["if",["validate/string","@error"],["if",["!=","@error",""],"@error",["if",[">=","@payload.status",400],"@payload.body",["str/concat","Request failed with status code ","@payload.status"]]],["if",["!=","@error",null],["if",["!=",["object/get","@error","errors",null],null],["str/join",["array/map",["object/get","@error","errors",[]],["fn","detail",["default",["object/get","@detail","message",null],""]]],"\n"],["default",["object/get","@error","message",null],""]],["if",[">=","@payload.status",400],"@payload.body",["str/concat","Request failed with status code ","@payload.status"]]]]}]]]]]},{"from":"idle","to":"idle","event":"YOUTUBE_REPLIED","eventId":"evt_8K5BY4XYW2ZE1A2N16NRSGZQP9","guard":["and",["or",["and",[">=","@payload.status",200],["<","@payload.status",300]],["=","@payload.status",304]],["array/some","@entity.pending",["fn","p",["and",["=","@p.key","@payload.key"],["=","@p.job.kind","video"]]]]],"effects":[["let",[["r",["json/parse","@payload.body","YoutubeResourceReply"]],["e",["array/find","@entity.pending",["fn","p",["=","@p.key","@payload.key"]]]]],["do",["set","@entity.pending",["array/filter","@entity.pending",["fn","p",["!=","@p.key","@payload.key"]]]],["if",["not",["json/valid","@payload.body"]],["emit","YOUTUBE_VIDEO_FAILED",{"code":"MALFORMED_REPLY","message":"YouTube API replied with a body that is not valid JSON"}],["if",["=","@r",null],["emit","YOUTUBE_VIDEO_FAILED",{"code":"MALFORMED_REPLY","message":"YouTube API replied with a body that is not a video reply"}],["let",[["it",["array/first","@r.items"]]],["if",["=","@it",null],["if",["=","@e",null],["emit","YOUTUBE_VIDEO_FAILED",{"message":"YouTube replied for a request that is no longer pending"}],["emit","YOUTUBE_REJECTED",{"kind":"video","message":["str/concat","Video not found: ","@e.job.id"]}]],["let",[["kvs",[{"k":"title","v":["object/get","@it","snippet.title",null]},{"k":"description","v":["object/get","@it","snippet.description",null]},{"k":"viewCount","v":["object/get","@it","statistics.viewCount",null]},{"k":"likeCount","v":["object/get","@it","statistics.likeCount",null]}],"{\"version\":1,\"type\":{\"kind\":\"array\",\"inner\":{\"kind\":\"typeref\",\"name\":\"YoutubeKv\"}},\"named\":{\"YoutubeKv\":{\"kind\":\"struct\",\"fields\":[{\"name\":\"k\",\"fieldType\":{\"kind\":\"string\"},\"required\":true,\"constraints\":[]},{\"name\":\"v\",\"fieldType\":{\"kind\":\"optional\",\"inner\":{\"kind\":\"string\"}},\"required\":false,\"constraints\":[]}]}}}"]],["emit","YOUTUBE_VIDEO_RESULT",["object/fromEntries",["array/map",["array/filter","@kvs",["fn","x",["!=","@x.v",null]]],["fn","x",["@x.k",["default","@x.v",""]]]]]]]]]]]]]]},{"from":"idle","to":"idle","event":"YOUTUBE_REPLIED","eventId":"evt_8K5BY4XYW2ZE1A2N16NRSGZQP9","guard":["and",["not",["or",["and",[">=","@payload.status",200],["<","@payload.status",300]],["=","@payload.status",304]]],["or",["<","@payload.status",200],["=","@payload.status",408],["=","@payload.status",429],[">=","@payload.status",500]],["array/some","@entity.pending",["fn","p",["and",["=","@p.key","@payload.key"],["=","@p.job.kind","video"],["<","@p.job.attempt",3]]]]],"effects":[["let",[["e",["array/find","@entity.pending",["fn","p",["=","@p.key","@payload.key"]]]]],["do",["set","@entity.pending",["array/filter","@entity.pending",["fn","p",["!=","@p.key","@payload.key"]]]],["if",["=","@e",null],["emit","YOUTUBE_VIDEO_FAILED",{"message":"YouTube replied for a request that is no longer pending"}],["emit","YOUTUBE_REQUEST",{"kind":"@e.job.kind","attempt":["+","@e.job.attempt",1],"query":"@e.job.query","maxResults":"@e.job.maxResults","type":"@e.job.type","id":"@e.job.id"}]]]]]},{"from":"idle","to":"idle","event":"YOUTUBE_REPLIED","eventId":"evt_8K5BY4XYW2ZE1A2N16NRSGZQP9","guard":["and",["not",["or",["and",[">=","@payload.status",200],["<","@payload.status",300]],["=","@payload.status",304]]],["or",["and",[">=","@payload.status",200],["<","@payload.status",500],["!=","@payload.status",408],["!=","@payload.status",429]],["array/some","@entity.pending",["fn","p",["and",["=","@p.key","@payload.key"],[">=","@p.job.attempt",3]]]]],["array/some","@entity.pending",["fn","p",["and",["=","@p.key","@payload.key"],["=","@p.job.kind","video"]]]]],"effects":[["let",[["b",["json/parse","@payload.body","YoutubeErrorBody"]]],["let",[["error",["if",["=","@b",null],null,["object/get","@b","error",null]]]],["do",["set","@entity.pending",["array/filter","@entity.pending",["fn","p",["!=","@p.key","@payload.key"]]]],["emit","YOUTUBE_REJECTED",{"kind":"video","message":["if",["validate/string","@error"],["if",["!=","@error",""],"@error",["if",[">=","@payload.status",400],"@payload.body",["str/concat","Request failed with status code ","@payload.status"]]],["if",["!=","@error",null],["if",["!=",["object/get","@error","errors",null],null],["str/join",["array/map",["object/get","@error","errors",[]],["fn","detail",["default",["object/get","@detail","message",null],""]]],"\n"],["default",["object/get","@error","message",null],""]],["if",[">=","@payload.status",400],"@payload.body",["str/concat","Request failed with status code ","@payload.status"]]]]}]]]]]},{"from":"idle","to":"idle","event":"YOUTUBE_REPLIED","eventId":"evt_8K5BY4XYW2ZE1A2N16NRSGZQP9","guard":["and",["or",["and",[">=","@payload.status",200],["<","@payload.status",300]],["=","@payload.status",304]],["array/some","@entity.pending",["fn","p",["and",["=","@p.key","@payload.key"],["=","@p.job.kind","channel"]]]]],"effects":[["let",[["r",["json/parse","@payload.body","YoutubeResourceReply"]],["e",["array/find","@entity.pending",["fn","p",["=","@p.key","@payload.key"]]]]],["do",["set","@entity.pending",["array/filter","@entity.pending",["fn","p",["!=","@p.key","@payload.key"]]]],["if",["not",["json/valid","@payload.body"]],["emit","YOUTUBE_CHANNEL_FAILED",{"code":"MALFORMED_REPLY","message":"YouTube API replied with a body that is not valid JSON"}],["if",["=","@r",null],["emit","YOUTUBE_CHANNEL_FAILED",{"code":"MALFORMED_REPLY","message":"YouTube API replied with a body that is not a channel reply"}],["let",[["it",["array/first","@r.items"]]],["if",["=","@it",null],["if",["=","@e",null],["emit","YOUTUBE_CHANNEL_FAILED",{"message":"YouTube replied for a request that is no longer pending"}],["emit","YOUTUBE_REJECTED",{"kind":"channel","message":["str/concat","Channel not found: ","@e.job.id"]}]],["let",[["kvs",[{"k":"name","v":["object/get","@it","snippet.title",null]},{"k":"description","v":["object/get","@it","snippet.description",null]},{"k":"subscriberCount","v":["object/get","@it","statistics.subscriberCount",null]}],"{\"version\":1,\"type\":{\"kind\":\"array\",\"inner\":{\"kind\":\"typeref\",\"name\":\"YoutubeKv\"}},\"named\":{\"YoutubeKv\":{\"kind\":\"struct\",\"fields\":[{\"name\":\"k\",\"fieldType\":{\"kind\":\"string\"},\"required\":true,\"constraints\":[]},{\"name\":\"v\",\"fieldType\":{\"kind\":\"optional\",\"inner\":{\"kind\":\"string\"}},\"required\":false,\"constraints\":[]}]}}}"]],["emit","YOUTUBE_CHANNEL_RESULT",["object/fromEntries",["array/map",["array/filter","@kvs",["fn","x",["!=","@x.v",null]]],["fn","x",["@x.k",["default","@x.v",""]]]]]]]]]]]]]]},{"from":"idle","to":"idle","event":"YOUTUBE_REPLIED","eventId":"evt_8K5BY4XYW2ZE1A2N16NRSGZQP9","guard":["and",["not",["or",["and",[">=","@payload.status",200],["<","@payload.status",300]],["=","@payload.status",304]]],["or",["<","@payload.status",200],["=","@payload.status",408],["=","@payload.status",429],[">=","@payload.status",500]],["array/some","@entity.pending",["fn","p",["and",["=","@p.key","@payload.key"],["=","@p.job.kind","channel"],["<","@p.job.attempt",3]]]]],"effects":[["let",[["e",["array/find","@entity.pending",["fn","p",["=","@p.key","@payload.key"]]]]],["do",["set","@entity.pending",["array/filter","@entity.pending",["fn","p",["!=","@p.key","@payload.key"]]]],["if",["=","@e",null],["emit","YOUTUBE_CHANNEL_FAILED",{"message":"YouTube replied for a request that is no longer pending"}],["emit","YOUTUBE_REQUEST",{"kind":"@e.job.kind","attempt":["+","@e.job.attempt",1],"query":"@e.job.query","maxResults":"@e.job.maxResults","type":"@e.job.type","id":"@e.job.id"}]]]]]},{"from":"idle","to":"idle","event":"YOUTUBE_REPLIED","eventId":"evt_8K5BY4XYW2ZE1A2N16NRSGZQP9","guard":["and",["not",["or",["and",[">=","@payload.status",200],["<","@payload.status",300]],["=","@payload.status",304]]],["or",["and",[">=","@payload.status",200],["<","@payload.status",500],["!=","@payload.status",408],["!=","@payload.status",429]],["array/some","@entity.pending",["fn","p",["and",["=","@p.key","@payload.key"],[">=","@p.job.attempt",3]]]]],["array/some","@entity.pending",["fn","p",["and",["=","@p.key","@payload.key"],["=","@p.job.kind","channel"]]]]],"effects":[["let",[["b",["json/parse","@payload.body","YoutubeErrorBody"]]],["let",[["error",["if",["=","@b",null],null,["object/get","@b","error",null]]]],["do",["set","@entity.pending",["array/filter","@entity.pending",["fn","p",["!=","@p.key","@payload.key"]]]],["emit","YOUTUBE_REJECTED",{"kind":"channel","message":["if",["validate/string","@error"],["if",["!=","@error",""],"@error",["if",[">=","@payload.status",400],"@payload.body",["str/concat","Request failed with status code ","@payload.status"]]],["if",["!=","@error",null],["if",["!=",["object/get","@error","errors",null],null],["str/join",["array/map",["object/get","@error","errors",[]],["fn","detail",["default",["object/get","@detail","message",null],""]]],"\n"],["default",["object/get","@error","message",null],""]],["if",[">=","@payload.status",400],"@payload.body",["str/concat","Request failed with status code ","@payload.status"]]]]}]]]]]},{"from":"idle","to":"idle","event":"YOUTUBE_UNREACHED","eventId":"evt_NWVQ445DWTPYD50WZ13Z2HQNJD","guard":["and",["!=","@payload.kind","refused"],["!=","@payload.kind","denied"],["array/some","@entity.pending",["fn","p",["and",["=","@p.key","@payload.key"],["=","@p.job.kind","search"],["<","@p.job.attempt",2]]]]],"effects":[["let",[["e",["array/find","@entity.pending",["fn","p",["=","@p.key","@payload.key"]]]]],["do",["set","@entity.pending",["array/filter","@entity.pending",["fn","p",["!=","@p.key","@payload.key"]]]],["if",["=","@e",null],["emit","YOUTUBE_SEARCH_FAILED",{"message":"YouTube replied for a request that is no longer pending"}],["emit","YOUTUBE_REQUEST",{"kind":"@e.job.kind","attempt":["+","@e.job.attempt",1],"query":"@e.job.query","maxResults":"@e.job.maxResults","type":"@e.job.type","id":"@e.job.id"}]]]]]},{"from":"idle","to":"idle","event":"YOUTUBE_UNREACHED","eventId":"evt_NWVQ445DWTPYD50WZ13Z2HQNJD","guard":["and",["!=","@payload.kind","denied"],["or",["=","@payload.kind","refused"],["array/some","@entity.pending",["fn","p",["and",["=","@p.key","@payload.key"],[">=","@p.job.attempt",2]]]]],["array/some","@entity.pending",["fn","p",["and",["=","@p.key","@payload.key"],["=","@p.job.kind","search"]]]]],"effects":[["do",["set","@entity.pending",["array/filter","@entity.pending",["fn","p",["!=","@p.key","@payload.key"]]]],["emit","YOUTUBE_REJECTED",{"kind":"search","message":"@payload.error"}]]]},{"from":"idle","to":"idle","event":"YOUTUBE_UNREACHED","eventId":"evt_NWVQ445DWTPYD50WZ13Z2HQNJD","guard":["and",["=","@payload.kind","denied"],["array/some","@entity.pending",["fn","p",["and",["=","@p.key","@payload.key"],["=","@p.job.kind","search"]]]]],"effects":[["do",["set","@entity.pending",["array/filter","@entity.pending",["fn","p",["!=","@p.key","@payload.key"]]]],["emit","YOUTUBE_REJECTED",{"kind":"search","message":"@payload.error"}]]]},{"from":"idle","to":"idle","event":"YOUTUBE_UNREACHED","eventId":"evt_NWVQ445DWTPYD50WZ13Z2HQNJD","guard":["and",["!=","@payload.kind","refused"],["!=","@payload.kind","denied"],["array/some","@entity.pending",["fn","p",["and",["=","@p.key","@payload.key"],["=","@p.job.kind","video"],["<","@p.job.attempt",2]]]]],"effects":[["let",[["e",["array/find","@entity.pending",["fn","p",["=","@p.key","@payload.key"]]]]],["do",["set","@entity.pending",["array/filter","@entity.pending",["fn","p",["!=","@p.key","@payload.key"]]]],["if",["=","@e",null],["emit","YOUTUBE_VIDEO_FAILED",{"message":"YouTube replied for a request that is no longer pending"}],["emit","YOUTUBE_REQUEST",{"kind":"@e.job.kind","attempt":["+","@e.job.attempt",1],"query":"@e.job.query","maxResults":"@e.job.maxResults","type":"@e.job.type","id":"@e.job.id"}]]]]]},{"from":"idle","to":"idle","event":"YOUTUBE_UNREACHED","eventId":"evt_NWVQ445DWTPYD50WZ13Z2HQNJD","guard":["and",["!=","@payload.kind","denied"],["or",["=","@payload.kind","refused"],["array/some","@entity.pending",["fn","p",["and",["=","@p.key","@payload.key"],[">=","@p.job.attempt",2]]]]],["array/some","@entity.pending",["fn","p",["and",["=","@p.key","@payload.key"],["=","@p.job.kind","video"]]]]],"effects":[["do",["set","@entity.pending",["array/filter","@entity.pending",["fn","p",["!=","@p.key","@payload.key"]]]],["emit","YOUTUBE_REJECTED",{"kind":"video","message":"@payload.error"}]]]},{"from":"idle","to":"idle","event":"YOUTUBE_UNREACHED","eventId":"evt_NWVQ445DWTPYD50WZ13Z2HQNJD","guard":["and",["=","@payload.kind","denied"],["array/some","@entity.pending",["fn","p",["and",["=","@p.key","@payload.key"],["=","@p.job.kind","video"]]]]],"effects":[["do",["set","@entity.pending",["array/filter","@entity.pending",["fn","p",["!=","@p.key","@payload.key"]]]],["emit","YOUTUBE_REJECTED",{"kind":"video","message":"@payload.error"}]]]},{"from":"idle","to":"idle","event":"YOUTUBE_UNREACHED","eventId":"evt_NWVQ445DWTPYD50WZ13Z2HQNJD","guard":["and",["!=","@payload.kind","refused"],["!=","@payload.kind","denied"],["array/some","@entity.pending",["fn","p",["and",["=","@p.key","@payload.key"],["=","@p.job.kind","channel"],["<","@p.job.attempt",2]]]]],"effects":[["let",[["e",["array/find","@entity.pending",["fn","p",["=","@p.key","@payload.key"]]]]],["do",["set","@entity.pending",["array/filter","@entity.pending",["fn","p",["!=","@p.key","@payload.key"]]]],["if",["=","@e",null],["emit","YOUTUBE_CHANNEL_FAILED",{"message":"YouTube replied for a request that is no longer pending"}],["emit","YOUTUBE_REQUEST",{"kind":"@e.job.kind","attempt":["+","@e.job.attempt",1],"query":"@e.job.query","maxResults":"@e.job.maxResults","type":"@e.job.type","id":"@e.job.id"}]]]]]},{"from":"idle","to":"idle","event":"YOUTUBE_UNREACHED","eventId":"evt_NWVQ445DWTPYD50WZ13Z2HQNJD","guard":["and",["!=","@payload.kind","denied"],["or",["=","@payload.kind","refused"],["array/some","@entity.pending",["fn","p",["and",["=","@p.key","@payload.key"],[">=","@p.job.attempt",2]]]]],["array/some","@entity.pending",["fn","p",["and",["=","@p.key","@payload.key"],["=","@p.job.kind","channel"]]]]],"effects":[["do",["set","@entity.pending",["array/filter","@entity.pending",["fn","p",["!=","@p.key","@payload.key"]]]],["emit","YOUTUBE_REJECTED",{"kind":"channel","message":"@payload.error"}]]]},{"from":"idle","to":"idle","event":"YOUTUBE_UNREACHED","eventId":"evt_NWVQ445DWTPYD50WZ13Z2HQNJD","guard":["and",["=","@payload.kind","denied"],["array/some","@entity.pending",["fn","p",["and",["=","@p.key","@payload.key"],["=","@p.job.kind","channel"]]]]],"effects":[["do",["set","@entity.pending",["array/filter","@entity.pending",["fn","p",["!=","@p.key","@payload.key"]]]],["emit","YOUTUBE_REJECTED",{"kind":"channel","message":"@payload.error"}]]]},{"from":"idle","to":"idle","event":"YOUTUBE_REJECTED","eventId":"evt_DC5BTDDBH1NRGXH5BG5D6KPVYQ","guard":["=","@payload.kind","search"],"effects":[["emit","YOUTUBE_SEARCH_FAILED",{"message":"@payload.message"}]]},{"from":"idle","to":"idle","event":"YOUTUBE_REJECTED","eventId":"evt_DC5BTDDBH1NRGXH5BG5D6KPVYQ","guard":["=","@payload.kind","video"],"effects":[["emit","YOUTUBE_VIDEO_FAILED",{"message":"@payload.message"}]]},{"from":"idle","to":"idle","event":"YOUTUBE_REJECTED","eventId":"evt_DC5BTDDBH1NRGXH5BG5D6KPVYQ","guard":["=","@payload.kind","channel"],"effects":[["emit","YOUTUBE_CHANNEL_FAILED",{"message":"@payload.message"}]]}]},"dispatch":"optimistic","sourceDeclaration":{"traitId":"trt_3VMZW1WYQZFBZHZKA2JVWAMPXP","fingerprint":"3c3bc90f85421027aa62bf014ce346ad2ff57ed923750d535da568a4036ecf30"}}],"pages":[{"name":"YoutubePage","id":"pag_SF4AYJ1E96Q4K8XV9WSBBR76RX","path":"","protocol":"boot","traits":[{"ref":"YoutubeClient","refId":"trt_3VMZW1WYQZFBZHZKA2JVWAMPXP"},{"ref":"YoutubeHttp","refId":"trt_DE4QP8VAP7NB3KQH5G7SHP1ERC"},{"ref":"YoutubeTimeout","refId":"trt_CDYZ8GJYK2F9HCJTJYNYZJB31A"}]}],"types":{"HttpHeader":[{"nullable":false,"name":"name","type":"string","required":true},{"nullable":false,"name":"value","type":"string","required":true}],"YoutubeErrorBody":[{"nullable":false,"name":"error","type":"union","properties":[{"nullable":false,"name":"string","type":"string"},{"nullable":false,"name":"YoutubeErrorObject","type":"object","properties":[{"nullable":false,"name":"message","type":"string"},{"nullable":false,"name":"errors","type":"[object]","properties":[{"nullable":false,"name":"message","type":"string"}],"items":{"nullable":false,"name":"","type":"YoutubeErrorDetail","projectedFrom":{"type":"YoutubeErrorDetail"}}}],"projectedFrom":{"type":"YoutubeErrorObject"}}]}],"YoutubeErrorDetail":[{"nullable":false,"name":"message","type":"string"}],"YoutubeErrorObject":[{"nullable":false,"name":"message","type":"string"},{"nullable":false,"name":"errors","type":"[object]","properties":[{"nullable":false,"name":"message","type":"string"}],"items":{"nullable":false,"name":"","type":"YoutubeErrorDetail","projectedFrom":{"type":"YoutubeErrorDetail"}}}],"YoutubeJob":[{"nullable":false,"name":"kind","type":"string","required":true},{"nullable":false,"name":"attempt","type":"number","required":true},{"nullable":false,"name":"query","type":"string","required":true},{"nullable":false,"name":"maxResults","type":"number","required":true},{"nullable":false,"name":"type","type":"string","required":true},{"nullable":false,"name":"id","type":"string","required":true}],"YoutubeKv":[{"nullable":false,"name":"k","type":"string","required":true},{"nullable":true,"name":"v","type":"string"}],"YoutubePending":[{"nullable":false,"name":"key","type":"string","required":true},{"nullable":false,"name":"job","type":"object","required":true,"properties":[{"nullable":false,"name":"kind","type":"string","required":true},{"nullable":false,"name":"attempt","type":"number","required":true},{"nullable":false,"name":"query","type":"string","required":true},{"nullable":false,"name":"maxResults","type":"number","required":true},{"nullable":false,"name":"type","type":"string","required":true},{"nullable":false,"name":"id","type":"string","required":true}],"projectedFrom":{"type":"YoutubeJob"}}],"YoutubeResource":[{"nullable":false,"name":"snippet","type":"object","properties":[{"nullable":false,"name":"title","type":"string"},{"nullable":false,"name":"description","type":"string"},{"nullable":false,"name":"thumbnails","type":"object","properties":[{"nullable":false,"name":"default","type":"object","properties":[{"nullable":false,"name":"url","type":"string"}],"projectedFrom":{"type":"YoutubeThumbnail"}}],"projectedFrom":{"type":"YoutubeThumbnails"}}],"projectedFrom":{"type":"YoutubeSnippet"}},{"nullable":false,"name":"statistics","type":"object","properties":[{"nullable":false,"name":"viewCount","type":"string"},{"nullable":false,"name":"likeCount","type":"string"},{"nullable":false,"name":"subscriberCount","type":"string"}],"projectedFrom":{"type":"YoutubeStatistics"}}],"YoutubeResourceReply":[{"nullable":false,"name":"items","type":"[object]","required":true,"properties":[{"nullable":false,"name":"snippet","type":"object","properties":[{"nullable":false,"name":"title","type":"string"},{"nullable":false,"name":"description","type":"string"},{"nullable":false,"name":"thumbnails","type":"object","properties":[{"nullable":false,"name":"default","type":"object","properties":[{"nullable":false,"name":"url","type":"string"}],"projectedFrom":{"type":"YoutubeThumbnail"}}],"projectedFrom":{"type":"YoutubeThumbnails"}}],"projectedFrom":{"type":"YoutubeSnippet"}},{"nullable":false,"name":"statistics","type":"object","properties":[{"nullable":false,"name":"viewCount","type":"string"},{"nullable":false,"name":"likeCount","type":"string"},{"nullable":false,"name":"subscriberCount","type":"string"}],"projectedFrom":{"type":"YoutubeStatistics"}}],"items":{"nullable":false,"name":"","type":"YoutubeResource","projectedFrom":{"type":"YoutubeResource"}}}],"YoutubeSearchId":[{"nullable":false,"name":"videoId","type":"string"}],"YoutubeSearchItem":[{"nullable":false,"name":"id","type":"object","properties":[{"nullable":false,"name":"videoId","type":"string"}],"projectedFrom":{"type":"YoutubeSearchId"}},{"nullable":false,"name":"snippet","type":"object","properties":[{"nullable":false,"name":"title","type":"string"},{"nullable":false,"name":"description","type":"string"},{"nullable":false,"name":"thumbnails","type":"object","properties":[{"nullable":false,"name":"default","type":"object","properties":[{"nullable":false,"name":"url","type":"string"}],"projectedFrom":{"type":"YoutubeThumbnail"}}],"projectedFrom":{"type":"YoutubeThumbnails"}}],"projectedFrom":{"type":"YoutubeSnippet"}}],"YoutubeSearchReply":[{"nullable":false,"name":"items","type":"[object]","required":true,"properties":[{"nullable":false,"name":"id","type":"object","properties":[{"nullable":false,"name":"videoId","type":"string"}],"projectedFrom":{"type":"YoutubeSearchId"}},{"nullable":false,"name":"snippet","type":"object","properties":[{"nullable":false,"name":"title","type":"string"},{"nullable":false,"name":"description","type":"string"},{"nullable":false,"name":"thumbnails","type":"object","properties":[{"nullable":false,"name":"default","type":"object","properties":[{"nullable":false,"name":"url","type":"string"}],"projectedFrom":{"type":"YoutubeThumbnail"}}],"projectedFrom":{"type":"YoutubeThumbnails"}}],"projectedFrom":{"type":"YoutubeSnippet"}}],"items":{"nullable":false,"name":"","type":"YoutubeSearchItem","projectedFrom":{"type":"YoutubeSearchItem"}}}],"YoutubeSnippet":[{"nullable":false,"name":"title","type":"string"},{"nullable":false,"name":"description","type":"string"},{"nullable":false,"name":"thumbnails","type":"object","properties":[{"nullable":false,"name":"default","type":"object","properties":[{"nullable":false,"name":"url","type":"string"}],"projectedFrom":{"type":"YoutubeThumbnail"}}],"projectedFrom":{"type":"YoutubeThumbnails"}}],"YoutubeStatistics":[{"nullable":false,"name":"viewCount","type":"string"},{"nullable":false,"name":"likeCount","type":"string"},{"nullable":false,"name":"subscriberCount","type":"string"}],"YoutubeThumbnail":[{"nullable":false,"name":"url","type":"string"}],"YoutubeThumbnails":[{"nullable":false,"name":"default","type":"object","properties":[{"nullable":false,"name":"url","type":"string"}],"projectedFrom":{"type":"YoutubeThumbnail"}}]}}],"osGrants":{"fs":[],"exec":[],"net":[{"target":"youtube.googleapis.com:443","kinds":["tcp"]}],"env":[],"stdio":[],"sys":[],"desktop":[]},"schemaVersion":1,"ledger":{"schemaVersion":1,"entries":{"ent_6D11Z6SCSAPCN5XD6DKZJKYCZ8":{"id":"ent_6D11Z6SCSAPCN5XD6DKZJKYCZ8","kind":"entity","bakedName":"YoutubeLookup","curName":"YoutubeLookup","renames":[],"owner":"workspace"},"evt_3F4P4DD0CXG6EYBNZVJWJKNY8K":{"id":"evt_3F4P4DD0CXG6EYBNZVJWJKNY8K","kind":"event","bakedName":"YOUTUBE_VIDEO_FAILED","curName":"YOUTUBE_VIDEO_FAILED","renames":[],"owner":"workspace","parent":"trt_3VMZW1WYQZFBZHZKA2JVWAMPXP"},"evt_3QWKMVQV6FXK7JGKR71QJGQ448":{"id":"evt_3QWKMVQV6FXK7JGKR71QJGQ448","kind":"event","bakedName":"INIT","curName":"INIT","renames":[],"owner":"workspace","parent":"trt_3VMZW1WYQZFBZHZKA2JVWAMPXP"},"evt_4CDFFK4XSAEWN0XNMZGCBHTEJA":{"id":"evt_4CDFFK4XSAEWN0XNMZGCBHTEJA","kind":"event","bakedName":"YOUTUBE_CHANNEL_FAILED","curName":"YOUTUBE_CHANNEL_FAILED","renames":[],"owner":"workspace","parent":"trt_3VMZW1WYQZFBZHZKA2JVWAMPXP"},"evt_733PNNYPKJB9S259578TM4GMM4":{"id":"evt_733PNNYPKJB9S259578TM4GMM4","kind":"event","bakedName":"YOUTUBE_CHANNEL_RESULT","curName":"YOUTUBE_CHANNEL_RESULT","renames":[],"owner":"workspace","parent":"trt_3VMZW1WYQZFBZHZKA2JVWAMPXP"},"evt_7EGF1XAQTTBXDCV4VQQZ3EBWG4":{"id":"evt_7EGF1XAQTTBXDCV4VQQZ3EBWG4","kind":"event","bakedName":"YOUTUBE_GET_CHANNEL","curName":"YOUTUBE_GET_CHANNEL","renames":[],"owner":"workspace","parent":"trt_3VMZW1WYQZFBZHZKA2JVWAMPXP"},"evt_7Y60BM1CHMP8T6XC7D9MD3YGQ4":{"id":"evt_7Y60BM1CHMP8T6XC7D9MD3YGQ4","kind":"event","bakedName":"YOUTUBE_VIDEO_RESULT","curName":"YOUTUBE_VIDEO_RESULT","renames":[],"owner":"workspace","parent":"trt_3VMZW1WYQZFBZHZKA2JVWAMPXP"},"evt_8K5BY4XYW2ZE1A2N16NRSGZQP9":{"id":"evt_8K5BY4XYW2ZE1A2N16NRSGZQP9","kind":"event","bakedName":"YOUTUBE_REPLIED","curName":"YOUTUBE_REPLIED","renames":[],"owner":"workspace","parent":"trt_3VMZW1WYQZFBZHZKA2JVWAMPXP"},"evt_D97A25AP6NB3AZ6ED3TKWQA1WW":{"id":"evt_D97A25AP6NB3AZ6ED3TKWQA1WW","kind":"event","bakedName":"YOUTUBE_SEARCH_RESULT","curName":"YOUTUBE_SEARCH_RESULT","renames":[],"owner":"workspace","parent":"trt_3VMZW1WYQZFBZHZKA2JVWAMPXP"},"evt_DC5BTDDBH1NRGXH5BG5D6KPVYQ":{"id":"evt_DC5BTDDBH1NRGXH5BG5D6KPVYQ","kind":"event","bakedName":"YOUTUBE_REJECTED","curName":"YOUTUBE_REJECTED","renames":[],"owner":"workspace","parent":"trt_3VMZW1WYQZFBZHZKA2JVWAMPXP"},"evt_HFY9N0PJEH978RBHBTWVGVW390":{"id":"evt_HFY9N0PJEH978RBHBTWVGVW390","kind":"event","bakedName":"YOUTUBE_REQUEST","curName":"YOUTUBE_REQUEST","renames":[],"owner":"workspace","parent":"trt_3VMZW1WYQZFBZHZKA2JVWAMPXP"},"evt_KZJP8M2NKXASYX4960VJ3JM6V8":{"id":"evt_KZJP8M2NKXASYX4960VJ3JM6V8","kind":"event","bakedName":"YOUTUBE_SEARCH","curName":"YOUTUBE_SEARCH","renames":[],"owner":"workspace","parent":"trt_3VMZW1WYQZFBZHZKA2JVWAMPXP"},"evt_NWVQ445DWTPYD50WZ13Z2HQNJD":{"id":"evt_NWVQ445DWTPYD50WZ13Z2HQNJD","kind":"event","bakedName":"YOUTUBE_UNREACHED","curName":"YOUTUBE_UNREACHED","renames":[],"owner":"workspace","parent":"trt_3VMZW1WYQZFBZHZKA2JVWAMPXP"},"evt_PMANPPYJX19EGYZGQWQ39XN1AA":{"id":"evt_PMANPPYJX19EGYZGQWQ39XN1AA","kind":"event","bakedName":"YOUTUBE_SEARCH_FAILED","curName":"YOUTUBE_SEARCH_FAILED","renames":[],"owner":"workspace","parent":"trt_3VMZW1WYQZFBZHZKA2JVWAMPXP"},"evt_QMHQSHEM9WA4YACXHAMHC8PCT3":{"id":"evt_QMHQSHEM9WA4YACXHAMHC8PCT3","kind":"event","bakedName":"YOUTUBE_HTTP_SEND","curName":"YOUTUBE_HTTP_SEND","renames":[],"owner":"workspace","parent":"trt_3VMZW1WYQZFBZHZKA2JVWAMPXP"},"evt_Y7NMFT3TZKXFSVZHM5CGAWNDYJ":{"id":"evt_Y7NMFT3TZKXFSVZHM5CGAWNDYJ","kind":"event","bakedName":"YOUTUBE_GET_VIDEO","curName":"YOUTUBE_GET_VIDEO","renames":[],"owner":"workspace","parent":"trt_3VMZW1WYQZFBZHZKA2JVWAMPXP"},"orb_YT07P419JHMS8Q0X402SEHKA7F":{"id":"orb_YT07P419JHMS8Q0X402SEHKA7F","kind":"orbital","bakedName":"YoutubeOrbital","curName":"YoutubeOrbital","renames":[],"owner":"workspace"},"pag_SF4AYJ1E96Q4K8XV9WSBBR76RX":{"id":"pag_SF4AYJ1E96Q4K8XV9WSBBR76RX","kind":"page","bakedName":"YoutubePage","curName":"YoutubePage","renames":[],"owner":"workspace"},"trt_3VMZW1WYQZFBZHZKA2JVWAMPXP":{"id":"trt_3VMZW1WYQZFBZHZKA2JVWAMPXP","kind":"trait","bakedName":"YoutubeClient","curName":"YoutubeClient","renames":[],"owner":"workspace"},"trt_CDYZ8GJYK2F9HCJTJYNYZJB31A":{"id":"trt_CDYZ8GJYK2F9HCJTJYNYZJB31A","kind":"trait","bakedName":"YoutubeTimeout","curName":"YoutubeTimeout","renames":[],"owner":"workspace"},"trt_DE4QP8VAP7NB3KQH5G7SHP1ERC":{"id":"trt_DE4QP8VAP7NB3KQH5G7SHP1ERC","kind":"trait","bakedName":"YoutubeHttp","curName":"YoutubeHttp","renames":[],"owner":"workspace"}}}}
|
|
1
|
+
{"typeContractVersion":1,"types":{"HttpHeader":[{"nullable":false,"name":"name","type":"string","required":true},{"nullable":false,"name":"value","type":"string","required":true}],"YoutubeErrorBody":[{"nullable":false,"name":"error","type":"union","properties":[{"nullable":false,"name":"string","type":"string"},{"nullable":false,"name":"YoutubeErrorObject","type":"object","properties":[{"nullable":false,"name":"message","type":"string"},{"nullable":false,"name":"errors","type":"[object]","properties":[{"nullable":false,"name":"message","type":"string"}],"items":{"nullable":false,"name":"","type":"YoutubeErrorDetail","projectedFrom":{"type":"YoutubeErrorDetail"}}}],"projectedFrom":{"type":"YoutubeErrorObject"}}]}],"YoutubeErrorDetail":[{"nullable":false,"name":"message","type":"string"}],"YoutubeErrorObject":[{"nullable":false,"name":"message","type":"string"},{"nullable":false,"name":"errors","type":"[object]","properties":[{"nullable":false,"name":"message","type":"string"}],"items":{"nullable":false,"name":"","type":"YoutubeErrorDetail","projectedFrom":{"type":"YoutubeErrorDetail"}}}],"YoutubeJob":[{"nullable":false,"name":"kind","type":"string","required":true},{"nullable":false,"name":"attempt","type":"number","required":true},{"nullable":false,"name":"query","type":"string","required":true},{"nullable":false,"name":"maxResults","type":"number","required":true},{"nullable":false,"name":"type","type":"string","required":true},{"nullable":false,"name":"id","type":"string","required":true}],"YoutubeKv":[{"nullable":false,"name":"k","type":"string","required":true},{"nullable":true,"name":"v","type":"string"}],"YoutubePending":[{"nullable":false,"name":"key","type":"string","required":true},{"nullable":false,"name":"job","type":"object","required":true,"properties":[{"nullable":false,"name":"kind","type":"string","required":true},{"nullable":false,"name":"attempt","type":"number","required":true},{"nullable":false,"name":"query","type":"string","required":true},{"nullable":false,"name":"maxResults","type":"number","required":true},{"nullable":false,"name":"type","type":"string","required":true},{"nullable":false,"name":"id","type":"string","required":true}],"projectedFrom":{"type":"YoutubeJob"}}],"YoutubeResource":[{"nullable":false,"name":"snippet","type":"object","properties":[{"nullable":false,"name":"title","type":"string"},{"nullable":false,"name":"description","type":"string"},{"nullable":false,"name":"thumbnails","type":"object","properties":[{"nullable":false,"name":"default","type":"object","properties":[{"nullable":false,"name":"url","type":"string"}],"projectedFrom":{"type":"YoutubeThumbnail"}}],"projectedFrom":{"type":"YoutubeThumbnails"}}],"projectedFrom":{"type":"YoutubeSnippet"}},{"nullable":false,"name":"statistics","type":"object","properties":[{"nullable":false,"name":"viewCount","type":"string"},{"nullable":false,"name":"likeCount","type":"string"},{"nullable":false,"name":"subscriberCount","type":"string"}],"projectedFrom":{"type":"YoutubeStatistics"}}],"YoutubeResourceReply":[{"nullable":false,"name":"items","type":"[object]","required":true,"properties":[{"nullable":false,"name":"snippet","type":"object","properties":[{"nullable":false,"name":"title","type":"string"},{"nullable":false,"name":"description","type":"string"},{"nullable":false,"name":"thumbnails","type":"object","properties":[{"nullable":false,"name":"default","type":"object","properties":[{"nullable":false,"name":"url","type":"string"}],"projectedFrom":{"type":"YoutubeThumbnail"}}],"projectedFrom":{"type":"YoutubeThumbnails"}}],"projectedFrom":{"type":"YoutubeSnippet"}},{"nullable":false,"name":"statistics","type":"object","properties":[{"nullable":false,"name":"viewCount","type":"string"},{"nullable":false,"name":"likeCount","type":"string"},{"nullable":false,"name":"subscriberCount","type":"string"}],"projectedFrom":{"type":"YoutubeStatistics"}}],"items":{"nullable":false,"name":"","type":"YoutubeResource","projectedFrom":{"type":"YoutubeResource"}}}],"YoutubeSearchId":[{"nullable":false,"name":"videoId","type":"string"}],"YoutubeSearchItem":[{"nullable":false,"name":"id","type":"object","properties":[{"nullable":false,"name":"videoId","type":"string"}],"projectedFrom":{"type":"YoutubeSearchId"}},{"nullable":false,"name":"snippet","type":"object","properties":[{"nullable":false,"name":"title","type":"string"},{"nullable":false,"name":"description","type":"string"},{"nullable":false,"name":"thumbnails","type":"object","properties":[{"nullable":false,"name":"default","type":"object","properties":[{"nullable":false,"name":"url","type":"string"}],"projectedFrom":{"type":"YoutubeThumbnail"}}],"projectedFrom":{"type":"YoutubeThumbnails"}}],"projectedFrom":{"type":"YoutubeSnippet"}}],"YoutubeSearchReply":[{"nullable":false,"name":"items","type":"[object]","required":true,"properties":[{"nullable":false,"name":"id","type":"object","properties":[{"nullable":false,"name":"videoId","type":"string"}],"projectedFrom":{"type":"YoutubeSearchId"}},{"nullable":false,"name":"snippet","type":"object","properties":[{"nullable":false,"name":"title","type":"string"},{"nullable":false,"name":"description","type":"string"},{"nullable":false,"name":"thumbnails","type":"object","properties":[{"nullable":false,"name":"default","type":"object","properties":[{"nullable":false,"name":"url","type":"string"}],"projectedFrom":{"type":"YoutubeThumbnail"}}],"projectedFrom":{"type":"YoutubeThumbnails"}}],"projectedFrom":{"type":"YoutubeSnippet"}}],"items":{"nullable":false,"name":"","type":"YoutubeSearchItem","projectedFrom":{"type":"YoutubeSearchItem"}}}],"YoutubeSnippet":[{"nullable":false,"name":"title","type":"string"},{"nullable":false,"name":"description","type":"string"},{"nullable":false,"name":"thumbnails","type":"object","properties":[{"nullable":false,"name":"default","type":"object","properties":[{"nullable":false,"name":"url","type":"string"}],"projectedFrom":{"type":"YoutubeThumbnail"}}],"projectedFrom":{"type":"YoutubeThumbnails"}}],"YoutubeStatistics":[{"nullable":false,"name":"viewCount","type":"string"},{"nullable":false,"name":"likeCount","type":"string"},{"nullable":false,"name":"subscriberCount","type":"string"}],"YoutubeThumbnail":[{"nullable":false,"name":"url","type":"string"}],"YoutubeThumbnails":[{"nullable":false,"name":"default","type":"object","properties":[{"nullable":false,"name":"url","type":"string"}],"projectedFrom":{"type":"YoutubeThumbnail"}}]},"name":"std-youtube","version":"1.0.0","description":"std-youtube — YouTube Data API v3 search, video and channel lookups. YOUTUBE_SEARCH lists matching video snippets, YOUTUBE_GET_VIDEO and YOUTUBE_GET_CHANNEL fetch snippet and statistics. The API key is the credential of the composed std-http-client trait YoutubeHttp, written by the host as the key query parameter; server errors, rate limiting and dead connections are retried as the googleapis SDK does.","orbitals":[{"name":"YoutubeOrbital","id":"orb_YT07P419JHMS8Q0X402SEHKA7F","uses":[{"from":"std/behaviors/std-http-client","as":"Http"},{"from":"std/behaviors/std-timeout","as":"Timeout"}],"entity":{"name":"YoutubeLookup","id":"ent_6D11Z6SCSAPCN5XD6DKZJKYCZ8","persistence":"runtime","fields":[{"nullable":false,"name":"id","type":"string","required":true},{"nullable":false,"name":"pending","type":"array","default":[],"items":{"nullable":false,"type":"object","properties":{"key":{"nullable":false,"name":"key","type":"string","required":true},"job":{"nullable":false,"name":"job","type":"object","required":true,"properties":{"kind":{"nullable":false,"name":"kind","type":"string","required":true},"attempt":{"nullable":false,"name":"attempt","type":"number","required":true},"query":{"nullable":false,"name":"query","type":"string","required":true},"maxResults":{"nullable":false,"name":"maxResults","type":"number","required":true},"type":{"nullable":false,"name":"type","type":"string","required":true},"id":{"nullable":false,"name":"id","type":"string","required":true}},"projectedFrom":{"type":"YoutubeJob"}}},"projectedFrom":{"type":"YoutubePending"}}},{"nullable":false,"name":"seq","type":"number","default":0}]},"traits":[{"ref":"Http.traits.HttpClient","id":"trt_DE4QP8VAP7NB3KQH5G7SHP1ERC","name":"YoutubeHttp","config":{"host":{"type":"unknown","default":"youtube.googleapis.com","wired":true},"port":{"type":"unknown","default":443,"wired":true},"tls":{"type":"unknown","default":true,"wired":true},"serverName":{"type":"unknown","default":"youtube.googleapis.com","wired":true},"credential":{"type":"unknown","default":"YOUTUBE_API_KEY","wired":true},"credentialIn":{"type":"unknown","default":"query","wired":true},"credentialName":{"type":"unknown","default":"key","wired":true}},"listens":[{"event":"YOUTUBE_HTTP_SEND","triggers":"HTTP_SEND","source":{"kind":"trait","trait":"YoutubeClient"}},{"event":"TIMED_OUT","triggers":"HTTP_CANCEL","payloadMapping":{"key":"@payload.key"},"source":{"kind":"trait","trait":"YoutubeTimeout"}}]},{"ref":"Timeout.traits.Timeout","id":"trt_CDYZ8GJYK2F9HCJTJYNYZJB31A","name":"YoutubeTimeout","config":{"timeoutMs":{"type":"unknown","default":30000,"wired":true},"cancelOnDeadline":{"type":"unknown","default":false,"wired":true}},"listens":[{"event":"YOUTUBE_HTTP_SEND","triggers":"START","payloadMapping":{"key":["as","@payload.key","CallKey"]},"source":{"kind":"trait","trait":"YoutubeClient"}},{"event":"HTTP_REPLIED","triggers":"SUCCEEDED","payloadMapping":{"key":["as","@payload.key","CallKey"]},"source":{"kind":"trait","trait":"YoutubeHttp"}},{"event":"HTTP_FAILED","triggers":"FAILED","payloadMapping":{"key":["as","@payload.key","CallKey"],"error":"@payload.error"},"source":{"kind":"trait","trait":"YoutubeHttp"}}]},{"name":"YoutubeClient","id":"trt_3VMZW1WYQZFBZHZKA2JVWAMPXP","effectRow":[{"kind":"emit","resource":"YOUTUBE_CHANNEL_FAILED"},{"kind":"emit","resource":"YOUTUBE_CHANNEL_RESULT"},{"kind":"emit","resource":"YOUTUBE_HTTP_SEND"},{"kind":"emit","resource":"YOUTUBE_REJECTED"},{"kind":"emit","resource":"YOUTUBE_REQUEST"},{"kind":"emit","resource":"YOUTUBE_SEARCH_FAILED"},{"kind":"emit","resource":"YOUTUBE_SEARCH_RESULT"},{"kind":"emit","resource":"YOUTUBE_VIDEO_FAILED"},{"kind":"emit","resource":"YOUTUBE_VIDEO_RESULT"},{"kind":"set","resource":"@entity.pending"},{"kind":"set","resource":"@entity.seq"}],"linkedEntity":"YoutubeLookup","linkedEntityId":"ent_6D11Z6SCSAPCN5XD6DKZJKYCZ8","entityRefIds":{"YoutubeLookup":"ent_6D11Z6SCSAPCN5XD6DKZJKYCZ8"},"emits":[{"event":"YOUTUBE_SEARCH_RESULT","eventId":"evt_D97A25AP6NB3AZ6ED3TKWQA1WW","description":"Matching search results, each with whichever of videoId, title, thumbnail and description the API returned.","synonyms":"youtube search results, video search, matching videos","tier":"primary","scope":"external","payloadSchema":[{"nullable":false,"name":"items","type":"[Map<string,string>]","required":true,"items":{"nullable":false,"name":"","type":"Map<string,string>","items":{"nullable":false,"name":"","type":"string"}}}]},{"event":"YOUTUBE_VIDEO_RESULT","eventId":"evt_7Y60BM1CHMP8T6XC7D9MD3YGQ4","description":"A video's title, description and view and like counts; a field the API omitted is absent.","synonyms":"video details, video statistics, youtube video","tier":"primary","scope":"external","payloadSchema":[{"nullable":false,"name":"title","type":"string"},{"nullable":false,"name":"description","type":"string"},{"nullable":false,"name":"viewCount","type":"string"},{"nullable":false,"name":"likeCount","type":"string"}]},{"event":"YOUTUBE_CHANNEL_RESULT","eventId":"evt_733PNNYPKJB9S259578TM4GMM4","description":"A channel's name, description and subscriber count; a field the API omitted (hidden subscribers) is absent.","synonyms":"channel details, channel statistics, youtube channel","tier":"primary","scope":"external","payloadSchema":[{"nullable":false,"name":"name","type":"string"},{"nullable":false,"name":"description","type":"string"},{"nullable":false,"name":"subscriberCount","type":"string"}]},{"event":"YOUTUBE_SEARCH_FAILED","eventId":"evt_PMANPPYJX19EGYZGQWQ39XN1AA","description":"The search failed: the API rejected it, the key is not configured, or the API stayed unreachable after retries.","synonyms":"search error, youtube search failed","tier":"primary","scope":"external","payloadSchema":[{"nullable":false,"name":"code","type":"string"},{"nullable":false,"name":"message","type":"string","required":true}]},{"event":"YOUTUBE_VIDEO_FAILED","eventId":"evt_3F4P4DD0CXG6EYBNZVJWJKNY8K","description":"The video lookup failed or the video does not exist.","synonyms":"video error, video not found","tier":"primary","scope":"external","payloadSchema":[{"nullable":false,"name":"code","type":"string"},{"nullable":false,"name":"message","type":"string","required":true}]},{"event":"YOUTUBE_CHANNEL_FAILED","eventId":"evt_4CDFFK4XSAEWN0XNMZGCBHTEJA","description":"The channel lookup failed or the channel does not exist.","synonyms":"channel error, channel not found","tier":"primary","scope":"external","payloadSchema":[{"nullable":false,"name":"code","type":"string"},{"nullable":false,"name":"message","type":"string","required":true}]},{"event":"YOUTUBE_REQUEST","eventId":"evt_HFY9N0PJEH978RBHBTWVGVW390","description":"Internal: one attempt at a Data API call.","tier":"secondary","payloadSchema":[{"nullable":false,"name":"kind","type":"string","required":true},{"nullable":false,"name":"attempt","type":"number","required":true},{"nullable":false,"name":"query","type":"string","required":true},{"nullable":false,"name":"maxResults","type":"number","required":true},{"nullable":false,"name":"type","type":"string","required":true},{"nullable":false,"name":"id","type":"string","required":true}]},{"event":"YOUTUBE_HTTP_SEND","eventId":"evt_QMHQSHEM9WA4YACXHAMHC8PCT3","description":"Internal: one Data API request, for the HTTP client.","tier":"secondary","payloadSchema":[{"nullable":false,"name":"key","type":"string","required":true},{"nullable":false,"name":"method","type":"string","required":true},{"nullable":false,"name":"target","type":"string","required":true},{"nullable":false,"name":"headers","type":"[object]","required":true,"properties":[{"nullable":false,"name":"name","type":"string","required":true},{"nullable":false,"name":"value","type":"string","required":true}],"items":{"nullable":false,"name":"","type":"HttpHeader","projectedFrom":{"type":"HttpHeader"}}},{"nullable":false,"name":"body","type":"bytes","required":true},{"nullable":false,"name":"stream","type":"string","required":true}]},{"event":"YOUTUBE_REJECTED","eventId":"evt_DC5BTDDBH1NRGXH5BG5D6KPVYQ","description":"Internal: a call ended in failure with this message.","tier":"secondary","payloadSchema":[{"nullable":false,"name":"kind","type":"string","required":true},{"nullable":false,"name":"message","type":"string","required":true}]}],"listens":[{"event":"HTTP_REPLIED","triggers":"YOUTUBE_REPLIED","triggersId":"evt_8K5BY4XYW2ZE1A2N16NRSGZQP9","payloadMapping":{"status":"@payload.status","headers":"@payload.headers","body":["default",["bytes/to-string","@payload.body"],""],"key":"@payload.key"},"source":{"kind":"trait","trait":"YoutubeHttp","traitId":"trt_DE4QP8VAP7NB3KQH5G7SHP1ERC"}},{"event":"HTTP_FAILED","triggers":"YOUTUBE_UNREACHED","triggersId":"evt_NWVQ445DWTPYD50WZ13Z2HQNJD","payloadMapping":{"error":"@payload.error","kind":"@payload.kind","key":"@payload.key"},"source":{"kind":"trait","trait":"YoutubeHttp","traitId":"trt_DE4QP8VAP7NB3KQH5G7SHP1ERC"}},{"event":"TIMED_OUT","triggers":"YOUTUBE_UNREACHED","triggersId":"evt_NWVQ445DWTPYD50WZ13Z2HQNJD","payloadMapping":{"error":["str/concat","timeout of ","@payload.timeoutMs","ms exceeded"],"kind":"timeout","key":"@payload.key"},"source":{"kind":"trait","trait":"YoutubeTimeout","traitId":"trt_CDYZ8GJYK2F9HCJTJYNYZJB31A"}}],"stateMachine":{"states":[{"name":"idle","isInitial":true}],"events":[{"key":"INIT","id":"evt_3QWKMVQV6FXK7JGKR71QJGQ448","name":"Initialize"},{"key":"YOUTUBE_SEARCH","id":"evt_KZJP8M2NKXASYX4960VJ3JM6V8","name":"Youtube Search","description":"Search YouTube for videos matching a query; maxResults defaults to 10, type filters the resource kind (video, channel, playlist).","synonyms":"search youtube, find videos, video search","payloadSchema":[{"nullable":false,"name":"query","type":"string","required":true},{"nullable":true,"name":"maxResults","type":"number"},{"nullable":true,"name":"type","type":"string"}],"input":true,"listened":true},{"key":"YOUTUBE_GET_VIDEO","id":"evt_Y7NMFT3TZKXFSVZHM5CGAWNDYJ","name":"Youtube Get Video","description":"Fetch a video's snippet and statistics.","synonyms":"get video, video details, youtube video info","payloadSchema":[{"nullable":false,"name":"videoId","type":"string","required":true}],"input":true,"listened":true},{"key":"YOUTUBE_GET_CHANNEL","id":"evt_7EGF1XAQTTBXDCV4VQQZ3EBWG4","name":"Youtube Get Channel","description":"Fetch a channel's snippet and statistics.","synonyms":"get channel, channel details, youtube channel info","payloadSchema":[{"nullable":false,"name":"channelId","type":"string","required":true}],"input":true,"listened":true},{"key":"YOUTUBE_REQUEST","id":"evt_HFY9N0PJEH978RBHBTWVGVW390","name":"Youtube Request","description":"Internal: one attempt at a Data API call.","tier":"secondary","payloadSchema":[{"nullable":false,"name":"kind","type":"string","required":true},{"nullable":false,"name":"attempt","type":"number","required":true},{"nullable":false,"name":"query","type":"string","required":true},{"nullable":false,"name":"maxResults","type":"number","required":true},{"nullable":false,"name":"type","type":"string","required":true},{"nullable":false,"name":"id","type":"string","required":true}],"listened":true},{"key":"YOUTUBE_REPLIED","id":"evt_8K5BY4XYW2ZE1A2N16NRSGZQP9","name":"Youtube Replied","payloadSchema":[{"nullable":false,"name":"status","type":"number","required":true},{"nullable":false,"name":"headers","type":"Map<string,string>","items":{"nullable":false,"name":"","type":"string"}},{"nullable":false,"name":"body","type":"string","required":true},{"nullable":false,"name":"key","type":"string","required":true}],"listened":true},{"key":"YOUTUBE_UNREACHED","id":"evt_NWVQ445DWTPYD50WZ13Z2HQNJD","name":"Youtube Unreached","payloadSchema":[{"nullable":false,"name":"error","type":"string","required":true},{"nullable":false,"name":"kind","type":"string","required":true},{"nullable":false,"name":"key","type":"string","required":true}],"listened":true},{"key":"YOUTUBE_REJECTED","id":"evt_DC5BTDDBH1NRGXH5BG5D6KPVYQ","name":"Youtube Rejected","description":"Internal: a call ended in failure with this message.","tier":"secondary","payloadSchema":[{"nullable":false,"name":"kind","type":"string","required":true},{"nullable":false,"name":"message","type":"string","required":true}],"listened":true},{"key":"YOUTUBE_SEARCH_RESULT","id":"evt_D97A25AP6NB3AZ6ED3TKWQA1WW","name":"Youtube Search Result","description":"Matching search results, each with whichever of videoId, title, thumbnail and description the API returned.","synonyms":"youtube search results, video search, matching videos","tier":"primary","payloadSchema":[{"nullable":false,"name":"items","type":"[Map<string,string>]","required":true,"items":{"nullable":false,"name":"","type":"Map<string,string>","items":{"nullable":false,"name":"","type":"string"}}}]},{"key":"YOUTUBE_VIDEO_RESULT","id":"evt_7Y60BM1CHMP8T6XC7D9MD3YGQ4","name":"Youtube Video Result","description":"A video's title, description and view and like counts; a field the API omitted is absent.","synonyms":"video details, video statistics, youtube video","tier":"primary","payloadSchema":[{"nullable":false,"name":"title","type":"string"},{"nullable":false,"name":"description","type":"string"},{"nullable":false,"name":"viewCount","type":"string"},{"nullable":false,"name":"likeCount","type":"string"}]},{"key":"YOUTUBE_CHANNEL_RESULT","id":"evt_733PNNYPKJB9S259578TM4GMM4","name":"Youtube Channel Result","description":"A channel's name, description and subscriber count; a field the API omitted (hidden subscribers) is absent.","synonyms":"channel details, channel statistics, youtube channel","tier":"primary","payloadSchema":[{"nullable":false,"name":"name","type":"string"},{"nullable":false,"name":"description","type":"string"},{"nullable":false,"name":"subscriberCount","type":"string"}]},{"key":"YOUTUBE_SEARCH_FAILED","id":"evt_PMANPPYJX19EGYZGQWQ39XN1AA","name":"Youtube Search Failed","description":"The search failed: the API rejected it, the key is not configured, or the API stayed unreachable after retries.","synonyms":"search error, youtube search failed","tier":"primary","payloadSchema":[{"nullable":false,"name":"code","type":"string"},{"nullable":false,"name":"message","type":"string","required":true}]},{"key":"YOUTUBE_VIDEO_FAILED","id":"evt_3F4P4DD0CXG6EYBNZVJWJKNY8K","name":"Youtube Video Failed","description":"The video lookup failed or the video does not exist.","synonyms":"video error, video not found","tier":"primary","payloadSchema":[{"nullable":false,"name":"code","type":"string"},{"nullable":false,"name":"message","type":"string","required":true}]},{"key":"YOUTUBE_CHANNEL_FAILED","id":"evt_4CDFFK4XSAEWN0XNMZGCBHTEJA","name":"Youtube Channel Failed","description":"The channel lookup failed or the channel does not exist.","synonyms":"channel error, channel not found","tier":"primary","payloadSchema":[{"nullable":false,"name":"code","type":"string"},{"nullable":false,"name":"message","type":"string","required":true}]},{"key":"YOUTUBE_HTTP_SEND","id":"evt_QMHQSHEM9WA4YACXHAMHC8PCT3","name":"Youtube Http Send","description":"Internal: one Data API request, for the HTTP client.","tier":"secondary","payloadSchema":[{"nullable":false,"name":"key","type":"string","required":true},{"nullable":false,"name":"method","type":"string","required":true},{"nullable":false,"name":"target","type":"string","required":true},{"nullable":false,"name":"headers","type":"[object]","required":true,"properties":[{"nullable":false,"name":"name","type":"string","required":true},{"nullable":false,"name":"value","type":"string","required":true}],"items":{"nullable":false,"name":"","type":"HttpHeader","projectedFrom":{"type":"HttpHeader"}}},{"nullable":false,"name":"body","type":"bytes","required":true},{"nullable":false,"name":"stream","type":"string","required":true}]}],"transitions":[{"from":"idle","to":"idle","event":"INIT","eventId":"evt_3QWKMVQV6FXK7JGKR71QJGQ448"},{"from":"idle","to":"idle","event":"YOUTUBE_SEARCH","eventId":"evt_KZJP8M2NKXASYX4960VJ3JM6V8","effects":[["emit","YOUTUBE_REQUEST",{"kind":"search","attempt":0,"query":"@payload.query","maxResults":["default","@payload.maxResults",10],"type":["default","@payload.type",""],"id":""}]]},{"from":"idle","to":"idle","event":"YOUTUBE_GET_VIDEO","eventId":"evt_Y7NMFT3TZKXFSVZHM5CGAWNDYJ","effects":[["emit","YOUTUBE_REQUEST",{"kind":"video","attempt":0,"query":"","maxResults":0,"type":"","id":"@payload.videoId"}]]},{"from":"idle","to":"idle","event":"YOUTUBE_GET_CHANNEL","eventId":"evt_7EGF1XAQTTBXDCV4VQQZ3EBWG4","effects":[["emit","YOUTUBE_REQUEST",{"kind":"channel","attempt":0,"query":"","maxResults":0,"type":"","id":"@payload.channelId"}]]},{"from":"idle","to":"idle","event":"YOUTUBE_REQUEST","eventId":"evt_HFY9N0PJEH978RBHBTWVGVW390","guard":["and",["=","@payload.kind","search"],["!=","@payload.type",""]],"effects":[["let",[["k",["str/concat","youtube-","@entity.seq"]]],["do",["set","@entity.pending",["array/append","@entity.pending",{"key":"@k","job":{"kind":"@payload.kind","attempt":"@payload.attempt","query":"@payload.query","maxResults":"@payload.maxResults","type":"@payload.type","id":"@payload.id"}}]],["set","@entity.seq",["+","@entity.seq",1]],["emit","YOUTUBE_HTTP_SEND",{"key":"@k","method":"GET","target":["str/concat","/youtube/v3/search?part=snippet&q=",["str/replaceAll",["str/replaceAll",["str/replaceAll",["str/replaceAll",["str/replaceAll",["str/encode-uri-component","@payload.query"],"!","%21"],"'","%27"],"(","%28"],")","%29"],"*","%2A"],"&maxResults=","@payload.maxResults","&type=",["str/replaceAll",["str/replaceAll",["str/replaceAll",["str/replaceAll",["str/replaceAll",["str/encode-uri-component","@payload.type"],"!","%21"],"'","%27"],"(","%28"],")","%29"],"*","%2A"]],"headers":[{"name":"accept","value":"*/*"}],"body":["bytes/from-string",""],"stream":"none"}]]]]},{"from":"idle","to":"idle","event":"YOUTUBE_REQUEST","eventId":"evt_HFY9N0PJEH978RBHBTWVGVW390","guard":["and",["=","@payload.kind","search"],["=","@payload.type",""]],"effects":[["let",[["k",["str/concat","youtube-","@entity.seq"]]],["do",["set","@entity.pending",["array/append","@entity.pending",{"key":"@k","job":{"kind":"@payload.kind","attempt":"@payload.attempt","query":"@payload.query","maxResults":"@payload.maxResults","type":"@payload.type","id":"@payload.id"}}]],["set","@entity.seq",["+","@entity.seq",1]],["emit","YOUTUBE_HTTP_SEND",{"key":"@k","method":"GET","target":["str/concat","/youtube/v3/search?part=snippet&q=",["str/replaceAll",["str/replaceAll",["str/replaceAll",["str/replaceAll",["str/replaceAll",["str/encode-uri-component","@payload.query"],"!","%21"],"'","%27"],"(","%28"],")","%29"],"*","%2A"],"&maxResults=","@payload.maxResults"],"headers":[{"name":"accept","value":"*/*"}],"body":["bytes/from-string",""],"stream":"none"}]]]]},{"from":"idle","to":"idle","event":"YOUTUBE_REQUEST","eventId":"evt_HFY9N0PJEH978RBHBTWVGVW390","guard":["=","@payload.kind","video"],"effects":[["let",[["k",["str/concat","youtube-","@entity.seq"]]],["do",["set","@entity.pending",["array/append","@entity.pending",{"key":"@k","job":{"kind":"@payload.kind","attempt":"@payload.attempt","query":"@payload.query","maxResults":"@payload.maxResults","type":"@payload.type","id":"@payload.id"}}]],["set","@entity.seq",["+","@entity.seq",1]],["emit","YOUTUBE_HTTP_SEND",{"key":"@k","method":"GET","target":["str/concat","/youtube/v3/videos?part=snippet&part=statistics&id=",["str/replaceAll",["str/replaceAll",["str/replaceAll",["str/replaceAll",["str/replaceAll",["str/encode-uri-component","@payload.id"],"!","%21"],"'","%27"],"(","%28"],")","%29"],"*","%2A"]],"headers":[{"name":"accept","value":"*/*"}],"body":["bytes/from-string",""],"stream":"none"}]]]]},{"from":"idle","to":"idle","event":"YOUTUBE_REQUEST","eventId":"evt_HFY9N0PJEH978RBHBTWVGVW390","guard":["=","@payload.kind","channel"],"effects":[["let",[["k",["str/concat","youtube-","@entity.seq"]]],["do",["set","@entity.pending",["array/append","@entity.pending",{"key":"@k","job":{"kind":"@payload.kind","attempt":"@payload.attempt","query":"@payload.query","maxResults":"@payload.maxResults","type":"@payload.type","id":"@payload.id"}}]],["set","@entity.seq",["+","@entity.seq",1]],["emit","YOUTUBE_HTTP_SEND",{"key":"@k","method":"GET","target":["str/concat","/youtube/v3/channels?part=snippet&part=statistics&id=",["str/replaceAll",["str/replaceAll",["str/replaceAll",["str/replaceAll",["str/replaceAll",["str/encode-uri-component","@payload.id"],"!","%21"],"'","%27"],"(","%28"],")","%29"],"*","%2A"]],"headers":[{"name":"accept","value":"*/*"}],"body":["bytes/from-string",""],"stream":"none"}]]]]},{"from":"idle","to":"idle","event":"YOUTUBE_REPLIED","eventId":"evt_8K5BY4XYW2ZE1A2N16NRSGZQP9","guard":["and",["or",["and",[">=","@payload.status",200],["<","@payload.status",300]],["=","@payload.status",304]],["array/some","@entity.pending",["fn","p",["and",["=","@p.key","@payload.key"],["=","@p.job.kind","search"]]]]],"effects":[["let",[["r",["json/parse","@payload.body","YoutubeSearchReply"]]],["do",["set","@entity.pending",["array/filter","@entity.pending",["fn","p",["!=","@p.key","@payload.key"]]]],["if",["not",["json/valid","@payload.body"]],["emit","YOUTUBE_SEARCH_FAILED",{"code":"MALFORMED_REPLY","message":"YouTube API replied with a body that is not valid JSON"}],["if",["=","@r",null],["emit","YOUTUBE_SEARCH_FAILED",{"code":"MALFORMED_REPLY","message":"YouTube API replied with a body that is not a search reply"}],["emit","YOUTUBE_SEARCH_RESULT",{"items":["array/map","@r.items",["fn","it",["let",[["kvs",[{"k":"videoId","v":["object/get","@it","id.videoId",null]},{"k":"title","v":["object/get","@it","snippet.title",null]},{"k":"thumbnail","v":["object/get","@it","snippet.thumbnails.default.url",null]},{"k":"description","v":["object/get","@it","snippet.description",null]}],"{\"version\":1,\"type\":{\"kind\":\"array\",\"inner\":{\"kind\":\"typeref\",\"name\":\"YoutubeKv\"}},\"named\":{\"YoutubeKv\":{\"kind\":\"struct\",\"fields\":[{\"name\":\"k\",\"fieldType\":{\"kind\":\"string\"},\"required\":true,\"constraints\":[]},{\"name\":\"v\",\"fieldType\":{\"kind\":\"optional\",\"inner\":{\"kind\":\"string\"}},\"required\":false,\"constraints\":[]}]}}}"]],["default",["object/fromEntries",["array/map",["array/filter","@kvs",["fn","x",["!=","@x.v",null]]],["fn","x",["@x.k",["default","@x.v",""]]]]],{}]]]]}]]]]]]},{"from":"idle","to":"idle","event":"YOUTUBE_REPLIED","eventId":"evt_8K5BY4XYW2ZE1A2N16NRSGZQP9","guard":["and",["not",["or",["and",[">=","@payload.status",200],["<","@payload.status",300]],["=","@payload.status",304]]],["or",["<","@payload.status",200],["=","@payload.status",408],["=","@payload.status",429],[">=","@payload.status",500]],["array/some","@entity.pending",["fn","p",["and",["=","@p.key","@payload.key"],["=","@p.job.kind","search"],["<","@p.job.attempt",3]]]]],"effects":[["let",[["e",["array/find","@entity.pending",["fn","p",["=","@p.key","@payload.key"]]]]],["do",["set","@entity.pending",["array/filter","@entity.pending",["fn","p",["!=","@p.key","@payload.key"]]]],["if",["=","@e",null],["emit","YOUTUBE_SEARCH_FAILED",{"message":"YouTube replied for a request that is no longer pending"}],["emit","YOUTUBE_REQUEST",{"kind":"@e.job.kind","attempt":["+","@e.job.attempt",1],"query":"@e.job.query","maxResults":"@e.job.maxResults","type":"@e.job.type","id":"@e.job.id"}]]]]]},{"from":"idle","to":"idle","event":"YOUTUBE_REPLIED","eventId":"evt_8K5BY4XYW2ZE1A2N16NRSGZQP9","guard":["and",["not",["or",["and",[">=","@payload.status",200],["<","@payload.status",300]],["=","@payload.status",304]]],["or",["and",[">=","@payload.status",200],["<","@payload.status",500],["!=","@payload.status",408],["!=","@payload.status",429]],["array/some","@entity.pending",["fn","p",["and",["=","@p.key","@payload.key"],[">=","@p.job.attempt",3]]]]],["array/some","@entity.pending",["fn","p",["and",["=","@p.key","@payload.key"],["=","@p.job.kind","search"]]]]],"effects":[["let",[["b",["json/parse","@payload.body","YoutubeErrorBody"]]],["let",[["error",["if",["=","@b",null],null,["object/get","@b","error",null]]]],["do",["set","@entity.pending",["array/filter","@entity.pending",["fn","p",["!=","@p.key","@payload.key"]]]],["emit","YOUTUBE_REJECTED",{"kind":"search","message":["if",["validate/string","@error"],["if",["!=","@error",""],"@error",["if",[">=","@payload.status",400],"@payload.body",["str/concat","Request failed with status code ","@payload.status"]]],["if",["!=","@error",null],["if",["!=",["object/get","@error","errors",null],null],["str/join",["array/map",["object/get","@error","errors",[]],["fn","detail",["default",["object/get","@detail","message",null],""]]],"\n"],["default",["object/get","@error","message",null],""]],["if",[">=","@payload.status",400],"@payload.body",["str/concat","Request failed with status code ","@payload.status"]]]]}]]]]]},{"from":"idle","to":"idle","event":"YOUTUBE_REPLIED","eventId":"evt_8K5BY4XYW2ZE1A2N16NRSGZQP9","guard":["and",["or",["and",[">=","@payload.status",200],["<","@payload.status",300]],["=","@payload.status",304]],["array/some","@entity.pending",["fn","p",["and",["=","@p.key","@payload.key"],["=","@p.job.kind","video"]]]]],"effects":[["let",[["r",["json/parse","@payload.body","YoutubeResourceReply"]],["e",["array/find","@entity.pending",["fn","p",["=","@p.key","@payload.key"]]]]],["do",["set","@entity.pending",["array/filter","@entity.pending",["fn","p",["!=","@p.key","@payload.key"]]]],["if",["not",["json/valid","@payload.body"]],["emit","YOUTUBE_VIDEO_FAILED",{"code":"MALFORMED_REPLY","message":"YouTube API replied with a body that is not valid JSON"}],["if",["=","@r",null],["emit","YOUTUBE_VIDEO_FAILED",{"code":"MALFORMED_REPLY","message":"YouTube API replied with a body that is not a video reply"}],["let",[["it",["array/first","@r.items"]]],["if",["=","@it",null],["if",["=","@e",null],["emit","YOUTUBE_VIDEO_FAILED",{"message":"YouTube replied for a request that is no longer pending"}],["emit","YOUTUBE_REJECTED",{"kind":"video","message":["str/concat","Video not found: ","@e.job.id"]}]],["let",[["kvs",[{"k":"title","v":["object/get","@it","snippet.title",null]},{"k":"description","v":["object/get","@it","snippet.description",null]},{"k":"viewCount","v":["object/get","@it","statistics.viewCount",null]},{"k":"likeCount","v":["object/get","@it","statistics.likeCount",null]}],"{\"version\":1,\"type\":{\"kind\":\"array\",\"inner\":{\"kind\":\"typeref\",\"name\":\"YoutubeKv\"}},\"named\":{\"YoutubeKv\":{\"kind\":\"struct\",\"fields\":[{\"name\":\"k\",\"fieldType\":{\"kind\":\"string\"},\"required\":true,\"constraints\":[]},{\"name\":\"v\",\"fieldType\":{\"kind\":\"optional\",\"inner\":{\"kind\":\"string\"}},\"required\":false,\"constraints\":[]}]}}}"]],["emit","YOUTUBE_VIDEO_RESULT",["object/fromEntries",["array/map",["array/filter","@kvs",["fn","x",["!=","@x.v",null]]],["fn","x",["@x.k",["default","@x.v",""]]]]]]]]]]]]]]},{"from":"idle","to":"idle","event":"YOUTUBE_REPLIED","eventId":"evt_8K5BY4XYW2ZE1A2N16NRSGZQP9","guard":["and",["not",["or",["and",[">=","@payload.status",200],["<","@payload.status",300]],["=","@payload.status",304]]],["or",["<","@payload.status",200],["=","@payload.status",408],["=","@payload.status",429],[">=","@payload.status",500]],["array/some","@entity.pending",["fn","p",["and",["=","@p.key","@payload.key"],["=","@p.job.kind","video"],["<","@p.job.attempt",3]]]]],"effects":[["let",[["e",["array/find","@entity.pending",["fn","p",["=","@p.key","@payload.key"]]]]],["do",["set","@entity.pending",["array/filter","@entity.pending",["fn","p",["!=","@p.key","@payload.key"]]]],["if",["=","@e",null],["emit","YOUTUBE_VIDEO_FAILED",{"message":"YouTube replied for a request that is no longer pending"}],["emit","YOUTUBE_REQUEST",{"kind":"@e.job.kind","attempt":["+","@e.job.attempt",1],"query":"@e.job.query","maxResults":"@e.job.maxResults","type":"@e.job.type","id":"@e.job.id"}]]]]]},{"from":"idle","to":"idle","event":"YOUTUBE_REPLIED","eventId":"evt_8K5BY4XYW2ZE1A2N16NRSGZQP9","guard":["and",["not",["or",["and",[">=","@payload.status",200],["<","@payload.status",300]],["=","@payload.status",304]]],["or",["and",[">=","@payload.status",200],["<","@payload.status",500],["!=","@payload.status",408],["!=","@payload.status",429]],["array/some","@entity.pending",["fn","p",["and",["=","@p.key","@payload.key"],[">=","@p.job.attempt",3]]]]],["array/some","@entity.pending",["fn","p",["and",["=","@p.key","@payload.key"],["=","@p.job.kind","video"]]]]],"effects":[["let",[["b",["json/parse","@payload.body","YoutubeErrorBody"]]],["let",[["error",["if",["=","@b",null],null,["object/get","@b","error",null]]]],["do",["set","@entity.pending",["array/filter","@entity.pending",["fn","p",["!=","@p.key","@payload.key"]]]],["emit","YOUTUBE_REJECTED",{"kind":"video","message":["if",["validate/string","@error"],["if",["!=","@error",""],"@error",["if",[">=","@payload.status",400],"@payload.body",["str/concat","Request failed with status code ","@payload.status"]]],["if",["!=","@error",null],["if",["!=",["object/get","@error","errors",null],null],["str/join",["array/map",["object/get","@error","errors",[]],["fn","detail",["default",["object/get","@detail","message",null],""]]],"\n"],["default",["object/get","@error","message",null],""]],["if",[">=","@payload.status",400],"@payload.body",["str/concat","Request failed with status code ","@payload.status"]]]]}]]]]]},{"from":"idle","to":"idle","event":"YOUTUBE_REPLIED","eventId":"evt_8K5BY4XYW2ZE1A2N16NRSGZQP9","guard":["and",["or",["and",[">=","@payload.status",200],["<","@payload.status",300]],["=","@payload.status",304]],["array/some","@entity.pending",["fn","p",["and",["=","@p.key","@payload.key"],["=","@p.job.kind","channel"]]]]],"effects":[["let",[["r",["json/parse","@payload.body","YoutubeResourceReply"]],["e",["array/find","@entity.pending",["fn","p",["=","@p.key","@payload.key"]]]]],["do",["set","@entity.pending",["array/filter","@entity.pending",["fn","p",["!=","@p.key","@payload.key"]]]],["if",["not",["json/valid","@payload.body"]],["emit","YOUTUBE_CHANNEL_FAILED",{"code":"MALFORMED_REPLY","message":"YouTube API replied with a body that is not valid JSON"}],["if",["=","@r",null],["emit","YOUTUBE_CHANNEL_FAILED",{"code":"MALFORMED_REPLY","message":"YouTube API replied with a body that is not a channel reply"}],["let",[["it",["array/first","@r.items"]]],["if",["=","@it",null],["if",["=","@e",null],["emit","YOUTUBE_CHANNEL_FAILED",{"message":"YouTube replied for a request that is no longer pending"}],["emit","YOUTUBE_REJECTED",{"kind":"channel","message":["str/concat","Channel not found: ","@e.job.id"]}]],["let",[["kvs",[{"k":"name","v":["object/get","@it","snippet.title",null]},{"k":"description","v":["object/get","@it","snippet.description",null]},{"k":"subscriberCount","v":["object/get","@it","statistics.subscriberCount",null]}],"{\"version\":1,\"type\":{\"kind\":\"array\",\"inner\":{\"kind\":\"typeref\",\"name\":\"YoutubeKv\"}},\"named\":{\"YoutubeKv\":{\"kind\":\"struct\",\"fields\":[{\"name\":\"k\",\"fieldType\":{\"kind\":\"string\"},\"required\":true,\"constraints\":[]},{\"name\":\"v\",\"fieldType\":{\"kind\":\"optional\",\"inner\":{\"kind\":\"string\"}},\"required\":false,\"constraints\":[]}]}}}"]],["emit","YOUTUBE_CHANNEL_RESULT",["object/fromEntries",["array/map",["array/filter","@kvs",["fn","x",["!=","@x.v",null]]],["fn","x",["@x.k",["default","@x.v",""]]]]]]]]]]]]]]},{"from":"idle","to":"idle","event":"YOUTUBE_REPLIED","eventId":"evt_8K5BY4XYW2ZE1A2N16NRSGZQP9","guard":["and",["not",["or",["and",[">=","@payload.status",200],["<","@payload.status",300]],["=","@payload.status",304]]],["or",["<","@payload.status",200],["=","@payload.status",408],["=","@payload.status",429],[">=","@payload.status",500]],["array/some","@entity.pending",["fn","p",["and",["=","@p.key","@payload.key"],["=","@p.job.kind","channel"],["<","@p.job.attempt",3]]]]],"effects":[["let",[["e",["array/find","@entity.pending",["fn","p",["=","@p.key","@payload.key"]]]]],["do",["set","@entity.pending",["array/filter","@entity.pending",["fn","p",["!=","@p.key","@payload.key"]]]],["if",["=","@e",null],["emit","YOUTUBE_CHANNEL_FAILED",{"message":"YouTube replied for a request that is no longer pending"}],["emit","YOUTUBE_REQUEST",{"kind":"@e.job.kind","attempt":["+","@e.job.attempt",1],"query":"@e.job.query","maxResults":"@e.job.maxResults","type":"@e.job.type","id":"@e.job.id"}]]]]]},{"from":"idle","to":"idle","event":"YOUTUBE_REPLIED","eventId":"evt_8K5BY4XYW2ZE1A2N16NRSGZQP9","guard":["and",["not",["or",["and",[">=","@payload.status",200],["<","@payload.status",300]],["=","@payload.status",304]]],["or",["and",[">=","@payload.status",200],["<","@payload.status",500],["!=","@payload.status",408],["!=","@payload.status",429]],["array/some","@entity.pending",["fn","p",["and",["=","@p.key","@payload.key"],[">=","@p.job.attempt",3]]]]],["array/some","@entity.pending",["fn","p",["and",["=","@p.key","@payload.key"],["=","@p.job.kind","channel"]]]]],"effects":[["let",[["b",["json/parse","@payload.body","YoutubeErrorBody"]]],["let",[["error",["if",["=","@b",null],null,["object/get","@b","error",null]]]],["do",["set","@entity.pending",["array/filter","@entity.pending",["fn","p",["!=","@p.key","@payload.key"]]]],["emit","YOUTUBE_REJECTED",{"kind":"channel","message":["if",["validate/string","@error"],["if",["!=","@error",""],"@error",["if",[">=","@payload.status",400],"@payload.body",["str/concat","Request failed with status code ","@payload.status"]]],["if",["!=","@error",null],["if",["!=",["object/get","@error","errors",null],null],["str/join",["array/map",["object/get","@error","errors",[]],["fn","detail",["default",["object/get","@detail","message",null],""]]],"\n"],["default",["object/get","@error","message",null],""]],["if",[">=","@payload.status",400],"@payload.body",["str/concat","Request failed with status code ","@payload.status"]]]]}]]]]]},{"from":"idle","to":"idle","event":"YOUTUBE_UNREACHED","eventId":"evt_NWVQ445DWTPYD50WZ13Z2HQNJD","guard":["and",["!=","@payload.kind","refused"],["!=","@payload.kind","denied"],["!=","@payload.kind","unsupported"],["array/some","@entity.pending",["fn","p",["and",["=","@p.key","@payload.key"],["=","@p.job.kind","search"],["<","@p.job.attempt",2]]]]],"effects":[["let",[["e",["array/find","@entity.pending",["fn","p",["=","@p.key","@payload.key"]]]]],["do",["set","@entity.pending",["array/filter","@entity.pending",["fn","p",["!=","@p.key","@payload.key"]]]],["if",["=","@e",null],["emit","YOUTUBE_SEARCH_FAILED",{"message":"YouTube replied for a request that is no longer pending"}],["emit","YOUTUBE_REQUEST",{"kind":"@e.job.kind","attempt":["+","@e.job.attempt",1],"query":"@e.job.query","maxResults":"@e.job.maxResults","type":"@e.job.type","id":"@e.job.id"}]]]]]},{"from":"idle","to":"idle","event":"YOUTUBE_UNREACHED","eventId":"evt_NWVQ445DWTPYD50WZ13Z2HQNJD","guard":["and",["!=","@payload.kind","denied"],["!=","@payload.kind","unsupported"],["or",["=","@payload.kind","refused"],["array/some","@entity.pending",["fn","p",["and",["=","@p.key","@payload.key"],[">=","@p.job.attempt",2]]]]],["array/some","@entity.pending",["fn","p",["and",["=","@p.key","@payload.key"],["=","@p.job.kind","search"]]]]],"effects":[["do",["set","@entity.pending",["array/filter","@entity.pending",["fn","p",["!=","@p.key","@payload.key"]]]],["emit","YOUTUBE_REJECTED",{"kind":"search","message":"@payload.error"}]]]},{"from":"idle","to":"idle","event":"YOUTUBE_UNREACHED","eventId":"evt_NWVQ445DWTPYD50WZ13Z2HQNJD","guard":["and",["array/includes",["denied","unsupported"],"@payload.kind"],["array/some","@entity.pending",["fn","p",["and",["=","@p.key","@payload.key"],["=","@p.job.kind","search"]]]]],"effects":[["do",["set","@entity.pending",["array/filter","@entity.pending",["fn","p",["!=","@p.key","@payload.key"]]]],["emit","YOUTUBE_REJECTED",{"kind":"search","message":"@payload.error"}]]]},{"from":"idle","to":"idle","event":"YOUTUBE_UNREACHED","eventId":"evt_NWVQ445DWTPYD50WZ13Z2HQNJD","guard":["and",["!=","@payload.kind","refused"],["!=","@payload.kind","denied"],["!=","@payload.kind","unsupported"],["array/some","@entity.pending",["fn","p",["and",["=","@p.key","@payload.key"],["=","@p.job.kind","video"],["<","@p.job.attempt",2]]]]],"effects":[["let",[["e",["array/find","@entity.pending",["fn","p",["=","@p.key","@payload.key"]]]]],["do",["set","@entity.pending",["array/filter","@entity.pending",["fn","p",["!=","@p.key","@payload.key"]]]],["if",["=","@e",null],["emit","YOUTUBE_VIDEO_FAILED",{"message":"YouTube replied for a request that is no longer pending"}],["emit","YOUTUBE_REQUEST",{"kind":"@e.job.kind","attempt":["+","@e.job.attempt",1],"query":"@e.job.query","maxResults":"@e.job.maxResults","type":"@e.job.type","id":"@e.job.id"}]]]]]},{"from":"idle","to":"idle","event":"YOUTUBE_UNREACHED","eventId":"evt_NWVQ445DWTPYD50WZ13Z2HQNJD","guard":["and",["!=","@payload.kind","denied"],["!=","@payload.kind","unsupported"],["or",["=","@payload.kind","refused"],["array/some","@entity.pending",["fn","p",["and",["=","@p.key","@payload.key"],[">=","@p.job.attempt",2]]]]],["array/some","@entity.pending",["fn","p",["and",["=","@p.key","@payload.key"],["=","@p.job.kind","video"]]]]],"effects":[["do",["set","@entity.pending",["array/filter","@entity.pending",["fn","p",["!=","@p.key","@payload.key"]]]],["emit","YOUTUBE_REJECTED",{"kind":"video","message":"@payload.error"}]]]},{"from":"idle","to":"idle","event":"YOUTUBE_UNREACHED","eventId":"evt_NWVQ445DWTPYD50WZ13Z2HQNJD","guard":["and",["array/includes",["denied","unsupported"],"@payload.kind"],["array/some","@entity.pending",["fn","p",["and",["=","@p.key","@payload.key"],["=","@p.job.kind","video"]]]]],"effects":[["do",["set","@entity.pending",["array/filter","@entity.pending",["fn","p",["!=","@p.key","@payload.key"]]]],["emit","YOUTUBE_REJECTED",{"kind":"video","message":"@payload.error"}]]]},{"from":"idle","to":"idle","event":"YOUTUBE_UNREACHED","eventId":"evt_NWVQ445DWTPYD50WZ13Z2HQNJD","guard":["and",["!=","@payload.kind","refused"],["!=","@payload.kind","denied"],["!=","@payload.kind","unsupported"],["array/some","@entity.pending",["fn","p",["and",["=","@p.key","@payload.key"],["=","@p.job.kind","channel"],["<","@p.job.attempt",2]]]]],"effects":[["let",[["e",["array/find","@entity.pending",["fn","p",["=","@p.key","@payload.key"]]]]],["do",["set","@entity.pending",["array/filter","@entity.pending",["fn","p",["!=","@p.key","@payload.key"]]]],["if",["=","@e",null],["emit","YOUTUBE_CHANNEL_FAILED",{"message":"YouTube replied for a request that is no longer pending"}],["emit","YOUTUBE_REQUEST",{"kind":"@e.job.kind","attempt":["+","@e.job.attempt",1],"query":"@e.job.query","maxResults":"@e.job.maxResults","type":"@e.job.type","id":"@e.job.id"}]]]]]},{"from":"idle","to":"idle","event":"YOUTUBE_UNREACHED","eventId":"evt_NWVQ445DWTPYD50WZ13Z2HQNJD","guard":["and",["!=","@payload.kind","denied"],["!=","@payload.kind","unsupported"],["or",["=","@payload.kind","refused"],["array/some","@entity.pending",["fn","p",["and",["=","@p.key","@payload.key"],[">=","@p.job.attempt",2]]]]],["array/some","@entity.pending",["fn","p",["and",["=","@p.key","@payload.key"],["=","@p.job.kind","channel"]]]]],"effects":[["do",["set","@entity.pending",["array/filter","@entity.pending",["fn","p",["!=","@p.key","@payload.key"]]]],["emit","YOUTUBE_REJECTED",{"kind":"channel","message":"@payload.error"}]]]},{"from":"idle","to":"idle","event":"YOUTUBE_UNREACHED","eventId":"evt_NWVQ445DWTPYD50WZ13Z2HQNJD","guard":["and",["array/includes",["denied","unsupported"],"@payload.kind"],["array/some","@entity.pending",["fn","p",["and",["=","@p.key","@payload.key"],["=","@p.job.kind","channel"]]]]],"effects":[["do",["set","@entity.pending",["array/filter","@entity.pending",["fn","p",["!=","@p.key","@payload.key"]]]],["emit","YOUTUBE_REJECTED",{"kind":"channel","message":"@payload.error"}]]]},{"from":"idle","to":"idle","event":"YOUTUBE_REJECTED","eventId":"evt_DC5BTDDBH1NRGXH5BG5D6KPVYQ","guard":["=","@payload.kind","search"],"effects":[["emit","YOUTUBE_SEARCH_FAILED",{"message":"@payload.message"}]]},{"from":"idle","to":"idle","event":"YOUTUBE_REJECTED","eventId":"evt_DC5BTDDBH1NRGXH5BG5D6KPVYQ","guard":["=","@payload.kind","video"],"effects":[["emit","YOUTUBE_VIDEO_FAILED",{"message":"@payload.message"}]]},{"from":"idle","to":"idle","event":"YOUTUBE_REJECTED","eventId":"evt_DC5BTDDBH1NRGXH5BG5D6KPVYQ","guard":["=","@payload.kind","channel"],"effects":[["emit","YOUTUBE_CHANNEL_FAILED",{"message":"@payload.message"}]]}]},"dispatch":"optimistic","sourceDeclaration":{"traitId":"trt_3VMZW1WYQZFBZHZKA2JVWAMPXP","fingerprint":"55e524d042f43563163a837a79111f577c8aa72f37a60beb82643dad94ab4eb4"}}],"pages":[{"name":"YoutubePage","id":"pag_SF4AYJ1E96Q4K8XV9WSBBR76RX","path":"","protocol":"boot","traits":[{"ref":"YoutubeClient","refId":"trt_3VMZW1WYQZFBZHZKA2JVWAMPXP"},{"ref":"YoutubeHttp","refId":"trt_DE4QP8VAP7NB3KQH5G7SHP1ERC"},{"ref":"YoutubeTimeout","refId":"trt_CDYZ8GJYK2F9HCJTJYNYZJB31A"}]}],"types":{"HttpHeader":[{"nullable":false,"name":"name","type":"string","required":true},{"nullable":false,"name":"value","type":"string","required":true}],"YoutubeErrorBody":[{"nullable":false,"name":"error","type":"union","properties":[{"nullable":false,"name":"string","type":"string"},{"nullable":false,"name":"YoutubeErrorObject","type":"object","properties":[{"nullable":false,"name":"message","type":"string"},{"nullable":false,"name":"errors","type":"[object]","properties":[{"nullable":false,"name":"message","type":"string"}],"items":{"nullable":false,"name":"","type":"YoutubeErrorDetail","projectedFrom":{"type":"YoutubeErrorDetail"}}}],"projectedFrom":{"type":"YoutubeErrorObject"}}]}],"YoutubeErrorDetail":[{"nullable":false,"name":"message","type":"string"}],"YoutubeErrorObject":[{"nullable":false,"name":"message","type":"string"},{"nullable":false,"name":"errors","type":"[object]","properties":[{"nullable":false,"name":"message","type":"string"}],"items":{"nullable":false,"name":"","type":"YoutubeErrorDetail","projectedFrom":{"type":"YoutubeErrorDetail"}}}],"YoutubeJob":[{"nullable":false,"name":"kind","type":"string","required":true},{"nullable":false,"name":"attempt","type":"number","required":true},{"nullable":false,"name":"query","type":"string","required":true},{"nullable":false,"name":"maxResults","type":"number","required":true},{"nullable":false,"name":"type","type":"string","required":true},{"nullable":false,"name":"id","type":"string","required":true}],"YoutubeKv":[{"nullable":false,"name":"k","type":"string","required":true},{"nullable":true,"name":"v","type":"string"}],"YoutubePending":[{"nullable":false,"name":"key","type":"string","required":true},{"nullable":false,"name":"job","type":"object","required":true,"properties":[{"nullable":false,"name":"kind","type":"string","required":true},{"nullable":false,"name":"attempt","type":"number","required":true},{"nullable":false,"name":"query","type":"string","required":true},{"nullable":false,"name":"maxResults","type":"number","required":true},{"nullable":false,"name":"type","type":"string","required":true},{"nullable":false,"name":"id","type":"string","required":true}],"projectedFrom":{"type":"YoutubeJob"}}],"YoutubeResource":[{"nullable":false,"name":"snippet","type":"object","properties":[{"nullable":false,"name":"title","type":"string"},{"nullable":false,"name":"description","type":"string"},{"nullable":false,"name":"thumbnails","type":"object","properties":[{"nullable":false,"name":"default","type":"object","properties":[{"nullable":false,"name":"url","type":"string"}],"projectedFrom":{"type":"YoutubeThumbnail"}}],"projectedFrom":{"type":"YoutubeThumbnails"}}],"projectedFrom":{"type":"YoutubeSnippet"}},{"nullable":false,"name":"statistics","type":"object","properties":[{"nullable":false,"name":"viewCount","type":"string"},{"nullable":false,"name":"likeCount","type":"string"},{"nullable":false,"name":"subscriberCount","type":"string"}],"projectedFrom":{"type":"YoutubeStatistics"}}],"YoutubeResourceReply":[{"nullable":false,"name":"items","type":"[object]","required":true,"properties":[{"nullable":false,"name":"snippet","type":"object","properties":[{"nullable":false,"name":"title","type":"string"},{"nullable":false,"name":"description","type":"string"},{"nullable":false,"name":"thumbnails","type":"object","properties":[{"nullable":false,"name":"default","type":"object","properties":[{"nullable":false,"name":"url","type":"string"}],"projectedFrom":{"type":"YoutubeThumbnail"}}],"projectedFrom":{"type":"YoutubeThumbnails"}}],"projectedFrom":{"type":"YoutubeSnippet"}},{"nullable":false,"name":"statistics","type":"object","properties":[{"nullable":false,"name":"viewCount","type":"string"},{"nullable":false,"name":"likeCount","type":"string"},{"nullable":false,"name":"subscriberCount","type":"string"}],"projectedFrom":{"type":"YoutubeStatistics"}}],"items":{"nullable":false,"name":"","type":"YoutubeResource","projectedFrom":{"type":"YoutubeResource"}}}],"YoutubeSearchId":[{"nullable":false,"name":"videoId","type":"string"}],"YoutubeSearchItem":[{"nullable":false,"name":"id","type":"object","properties":[{"nullable":false,"name":"videoId","type":"string"}],"projectedFrom":{"type":"YoutubeSearchId"}},{"nullable":false,"name":"snippet","type":"object","properties":[{"nullable":false,"name":"title","type":"string"},{"nullable":false,"name":"description","type":"string"},{"nullable":false,"name":"thumbnails","type":"object","properties":[{"nullable":false,"name":"default","type":"object","properties":[{"nullable":false,"name":"url","type":"string"}],"projectedFrom":{"type":"YoutubeThumbnail"}}],"projectedFrom":{"type":"YoutubeThumbnails"}}],"projectedFrom":{"type":"YoutubeSnippet"}}],"YoutubeSearchReply":[{"nullable":false,"name":"items","type":"[object]","required":true,"properties":[{"nullable":false,"name":"id","type":"object","properties":[{"nullable":false,"name":"videoId","type":"string"}],"projectedFrom":{"type":"YoutubeSearchId"}},{"nullable":false,"name":"snippet","type":"object","properties":[{"nullable":false,"name":"title","type":"string"},{"nullable":false,"name":"description","type":"string"},{"nullable":false,"name":"thumbnails","type":"object","properties":[{"nullable":false,"name":"default","type":"object","properties":[{"nullable":false,"name":"url","type":"string"}],"projectedFrom":{"type":"YoutubeThumbnail"}}],"projectedFrom":{"type":"YoutubeThumbnails"}}],"projectedFrom":{"type":"YoutubeSnippet"}}],"items":{"nullable":false,"name":"","type":"YoutubeSearchItem","projectedFrom":{"type":"YoutubeSearchItem"}}}],"YoutubeSnippet":[{"nullable":false,"name":"title","type":"string"},{"nullable":false,"name":"description","type":"string"},{"nullable":false,"name":"thumbnails","type":"object","properties":[{"nullable":false,"name":"default","type":"object","properties":[{"nullable":false,"name":"url","type":"string"}],"projectedFrom":{"type":"YoutubeThumbnail"}}],"projectedFrom":{"type":"YoutubeThumbnails"}}],"YoutubeStatistics":[{"nullable":false,"name":"viewCount","type":"string"},{"nullable":false,"name":"likeCount","type":"string"},{"nullable":false,"name":"subscriberCount","type":"string"}],"YoutubeThumbnail":[{"nullable":false,"name":"url","type":"string"}],"YoutubeThumbnails":[{"nullable":false,"name":"default","type":"object","properties":[{"nullable":false,"name":"url","type":"string"}],"projectedFrom":{"type":"YoutubeThumbnail"}}]}}],"osGrants":{"fs":[],"exec":[],"net":[{"target":"youtube.googleapis.com:443","kinds":["tcp"]}],"env":[],"stdio":[],"sys":[],"desktop":[]},"schemaVersion":1,"ledger":{"schemaVersion":1,"entries":{"ent_6D11Z6SCSAPCN5XD6DKZJKYCZ8":{"id":"ent_6D11Z6SCSAPCN5XD6DKZJKYCZ8","kind":"entity","bakedName":"YoutubeLookup","curName":"YoutubeLookup","renames":[],"owner":"workspace"},"evt_3F4P4DD0CXG6EYBNZVJWJKNY8K":{"id":"evt_3F4P4DD0CXG6EYBNZVJWJKNY8K","kind":"event","bakedName":"YOUTUBE_VIDEO_FAILED","curName":"YOUTUBE_VIDEO_FAILED","renames":[],"owner":"workspace","parent":"trt_3VMZW1WYQZFBZHZKA2JVWAMPXP"},"evt_3QWKMVQV6FXK7JGKR71QJGQ448":{"id":"evt_3QWKMVQV6FXK7JGKR71QJGQ448","kind":"event","bakedName":"INIT","curName":"INIT","renames":[],"owner":"workspace","parent":"trt_3VMZW1WYQZFBZHZKA2JVWAMPXP"},"evt_4CDFFK4XSAEWN0XNMZGCBHTEJA":{"id":"evt_4CDFFK4XSAEWN0XNMZGCBHTEJA","kind":"event","bakedName":"YOUTUBE_CHANNEL_FAILED","curName":"YOUTUBE_CHANNEL_FAILED","renames":[],"owner":"workspace","parent":"trt_3VMZW1WYQZFBZHZKA2JVWAMPXP"},"evt_733PNNYPKJB9S259578TM4GMM4":{"id":"evt_733PNNYPKJB9S259578TM4GMM4","kind":"event","bakedName":"YOUTUBE_CHANNEL_RESULT","curName":"YOUTUBE_CHANNEL_RESULT","renames":[],"owner":"workspace","parent":"trt_3VMZW1WYQZFBZHZKA2JVWAMPXP"},"evt_7EGF1XAQTTBXDCV4VQQZ3EBWG4":{"id":"evt_7EGF1XAQTTBXDCV4VQQZ3EBWG4","kind":"event","bakedName":"YOUTUBE_GET_CHANNEL","curName":"YOUTUBE_GET_CHANNEL","renames":[],"owner":"workspace","parent":"trt_3VMZW1WYQZFBZHZKA2JVWAMPXP"},"evt_7Y60BM1CHMP8T6XC7D9MD3YGQ4":{"id":"evt_7Y60BM1CHMP8T6XC7D9MD3YGQ4","kind":"event","bakedName":"YOUTUBE_VIDEO_RESULT","curName":"YOUTUBE_VIDEO_RESULT","renames":[],"owner":"workspace","parent":"trt_3VMZW1WYQZFBZHZKA2JVWAMPXP"},"evt_8K5BY4XYW2ZE1A2N16NRSGZQP9":{"id":"evt_8K5BY4XYW2ZE1A2N16NRSGZQP9","kind":"event","bakedName":"YOUTUBE_REPLIED","curName":"YOUTUBE_REPLIED","renames":[],"owner":"workspace","parent":"trt_3VMZW1WYQZFBZHZKA2JVWAMPXP"},"evt_D97A25AP6NB3AZ6ED3TKWQA1WW":{"id":"evt_D97A25AP6NB3AZ6ED3TKWQA1WW","kind":"event","bakedName":"YOUTUBE_SEARCH_RESULT","curName":"YOUTUBE_SEARCH_RESULT","renames":[],"owner":"workspace","parent":"trt_3VMZW1WYQZFBZHZKA2JVWAMPXP"},"evt_DC5BTDDBH1NRGXH5BG5D6KPVYQ":{"id":"evt_DC5BTDDBH1NRGXH5BG5D6KPVYQ","kind":"event","bakedName":"YOUTUBE_REJECTED","curName":"YOUTUBE_REJECTED","renames":[],"owner":"workspace","parent":"trt_3VMZW1WYQZFBZHZKA2JVWAMPXP"},"evt_HFY9N0PJEH978RBHBTWVGVW390":{"id":"evt_HFY9N0PJEH978RBHBTWVGVW390","kind":"event","bakedName":"YOUTUBE_REQUEST","curName":"YOUTUBE_REQUEST","renames":[],"owner":"workspace","parent":"trt_3VMZW1WYQZFBZHZKA2JVWAMPXP"},"evt_KZJP8M2NKXASYX4960VJ3JM6V8":{"id":"evt_KZJP8M2NKXASYX4960VJ3JM6V8","kind":"event","bakedName":"YOUTUBE_SEARCH","curName":"YOUTUBE_SEARCH","renames":[],"owner":"workspace","parent":"trt_3VMZW1WYQZFBZHZKA2JVWAMPXP"},"evt_NWVQ445DWTPYD50WZ13Z2HQNJD":{"id":"evt_NWVQ445DWTPYD50WZ13Z2HQNJD","kind":"event","bakedName":"YOUTUBE_UNREACHED","curName":"YOUTUBE_UNREACHED","renames":[],"owner":"workspace","parent":"trt_3VMZW1WYQZFBZHZKA2JVWAMPXP"},"evt_PMANPPYJX19EGYZGQWQ39XN1AA":{"id":"evt_PMANPPYJX19EGYZGQWQ39XN1AA","kind":"event","bakedName":"YOUTUBE_SEARCH_FAILED","curName":"YOUTUBE_SEARCH_FAILED","renames":[],"owner":"workspace","parent":"trt_3VMZW1WYQZFBZHZKA2JVWAMPXP"},"evt_QMHQSHEM9WA4YACXHAMHC8PCT3":{"id":"evt_QMHQSHEM9WA4YACXHAMHC8PCT3","kind":"event","bakedName":"YOUTUBE_HTTP_SEND","curName":"YOUTUBE_HTTP_SEND","renames":[],"owner":"workspace","parent":"trt_3VMZW1WYQZFBZHZKA2JVWAMPXP"},"evt_Y7NMFT3TZKXFSVZHM5CGAWNDYJ":{"id":"evt_Y7NMFT3TZKXFSVZHM5CGAWNDYJ","kind":"event","bakedName":"YOUTUBE_GET_VIDEO","curName":"YOUTUBE_GET_VIDEO","renames":[],"owner":"workspace","parent":"trt_3VMZW1WYQZFBZHZKA2JVWAMPXP"},"orb_YT07P419JHMS8Q0X402SEHKA7F":{"id":"orb_YT07P419JHMS8Q0X402SEHKA7F","kind":"orbital","bakedName":"YoutubeOrbital","curName":"YoutubeOrbital","renames":[],"owner":"workspace"},"pag_SF4AYJ1E96Q4K8XV9WSBBR76RX":{"id":"pag_SF4AYJ1E96Q4K8XV9WSBBR76RX","kind":"page","bakedName":"YoutubePage","curName":"YoutubePage","renames":[],"owner":"workspace"},"trt_3VMZW1WYQZFBZHZKA2JVWAMPXP":{"id":"trt_3VMZW1WYQZFBZHZKA2JVWAMPXP","kind":"trait","bakedName":"YoutubeClient","curName":"YoutubeClient","renames":[],"owner":"workspace"},"trt_CDYZ8GJYK2F9HCJTJYNYZJB31A":{"id":"trt_CDYZ8GJYK2F9HCJTJYNYZJB31A","kind":"trait","bakedName":"YoutubeTimeout","curName":"YoutubeTimeout","renames":[],"owner":"workspace"},"trt_DE4QP8VAP7NB3KQH5G7SHP1ERC":{"id":"trt_DE4QP8VAP7NB3KQH5G7SHP1ERC","kind":"trait","bakedName":"YoutubeHttp","curName":"YoutubeHttp","renames":[],"owner":"workspace"}}}}
|