@sixb/core 0.1.19 → 0.1.21
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/dist/actions/execution.d.ts.map +1 -1
- package/dist/actions/index.js +54 -47
- package/dist/actions/index.js.map +1 -1
- package/dist/actions/request.d.ts.map +1 -1
- package/dist/actions/run-authorization.d.ts +9 -0
- package/dist/actions/run-authorization.d.ts.map +1 -1
- package/dist/activity/connection.d.ts +62 -0
- package/dist/activity/connection.d.ts.map +1 -0
- package/dist/activity/device.d.ts +8 -0
- package/dist/activity/device.d.ts.map +1 -0
- package/dist/activity/execution.d.ts +48 -0
- package/dist/activity/execution.d.ts.map +1 -0
- package/dist/activity/service.d.ts +79 -0
- package/dist/activity/service.d.ts.map +1 -0
- package/dist/activity/shares.d.ts +24 -0
- package/dist/activity/shares.d.ts.map +1 -0
- package/dist/activity/timeline.d.ts +96 -0
- package/dist/activity/timeline.d.ts.map +1 -0
- package/dist/agents/index.d.ts +2 -1
- package/dist/agents/index.d.ts.map +1 -1
- package/dist/agents/index.js +63 -50
- package/dist/agents/index.js.map +1 -1
- package/dist/agents/request.d.ts.map +1 -1
- package/dist/agents/skills.d.ts.map +1 -1
- package/dist/agents/streams/index.js +3 -3
- package/dist/agents/streams/internal.js +3 -3
- package/dist/agents/types.d.ts +8 -8
- package/dist/agents/types.d.ts.map +1 -1
- package/dist/agents/validation.d.ts +1 -1
- package/dist/agents/validation.d.ts.map +1 -1
- package/dist/artifacts/address.d.ts +48 -0
- package/dist/artifacts/address.d.ts.map +1 -0
- package/dist/artifacts/csv.d.ts +22 -0
- package/dist/artifacts/csv.d.ts.map +1 -0
- package/dist/artifacts/errors.d.ts +11 -0
- package/dist/artifacts/errors.d.ts.map +1 -0
- package/dist/artifacts/execution.d.ts +43 -0
- package/dist/artifacts/execution.d.ts.map +1 -0
- package/dist/artifacts/frames/assets.d.ts +28 -0
- package/dist/artifacts/frames/assets.d.ts.map +1 -0
- package/dist/artifacts/frames/grants.d.ts +37 -0
- package/dist/artifacts/frames/grants.d.ts.map +1 -0
- package/dist/artifacts/frames/index.d.ts +10 -0
- package/dist/artifacts/frames/index.d.ts.map +1 -0
- package/dist/artifacts/frames/index.js +892 -0
- package/dist/artifacts/frames/index.js.map +14 -0
- package/dist/artifacts/frames/kit.d.ts +66 -0
- package/dist/artifacts/frames/kit.d.ts.map +1 -0
- package/dist/artifacts/frames/probe.d.ts +41 -0
- package/dist/artifacts/frames/probe.d.ts.map +1 -0
- package/dist/artifacts/frames/protocol.d.ts +98 -0
- package/dist/artifacts/frames/protocol.d.ts.map +1 -0
- package/dist/artifacts/frames/runtime.d.ts +13 -0
- package/dist/artifacts/frames/runtime.d.ts.map +1 -0
- package/dist/artifacts/html.d.ts +6 -0
- package/dist/artifacts/html.d.ts.map +1 -0
- package/dist/artifacts/ids.d.ts +5 -0
- package/dist/artifacts/ids.d.ts.map +1 -0
- package/dist/artifacts/index.d.ts +16 -0
- package/dist/artifacts/index.d.ts.map +1 -0
- package/dist/artifacts/index.js +125 -0
- package/dist/artifacts/index.js.map +10 -0
- package/dist/artifacts/kinds.d.ts +5 -0
- package/dist/artifacts/kinds.d.ts.map +1 -0
- package/dist/artifacts/limits.d.ts +28 -0
- package/dist/artifacts/limits.d.ts.map +1 -0
- package/dist/artifacts/outline.d.ts +44 -0
- package/dist/artifacts/outline.d.ts.map +1 -0
- package/dist/artifacts/publish/files.d.ts +15 -0
- package/dist/artifacts/publish/files.d.ts.map +1 -0
- package/dist/artifacts/publish/index.d.ts +5 -0
- package/dist/artifacts/publish/index.d.ts.map +1 -0
- package/dist/artifacts/publish/index.js +36 -0
- package/dist/artifacts/publish/index.js.map +9 -0
- package/dist/artifacts/publish/publish.d.ts +52 -0
- package/dist/artifacts/publish/publish.d.ts.map +1 -0
- package/dist/artifacts/publish/references.d.ts +27 -0
- package/dist/artifacts/publish/references.d.ts.map +1 -0
- package/dist/artifacts/publish/validate/document.d.ts +17 -0
- package/dist/artifacts/publish/validate/document.d.ts.map +1 -0
- package/dist/artifacts/publish/validate/file.d.ts +8 -0
- package/dist/artifacts/publish/validate/file.d.ts.map +1 -0
- package/dist/artifacts/publish/validate/sheet.d.ts +15 -0
- package/dist/artifacts/publish/validate/sheet.d.ts.map +1 -0
- package/dist/artifacts/publish/validate/slides.d.ts +21 -0
- package/dist/artifacts/publish/validate/slides.d.ts.map +1 -0
- package/dist/artifacts/references.d.ts +12 -0
- package/dist/artifacts/references.d.ts.map +1 -0
- package/dist/artifacts/resolve.d.ts +41 -0
- package/dist/artifacts/resolve.d.ts.map +1 -0
- package/dist/artifacts/theme.d.ts +19 -0
- package/dist/artifacts/theme.d.ts.map +1 -0
- package/dist/artifacts/warnings.d.ts +11 -0
- package/dist/artifacts/warnings.d.ts.map +1 -0
- package/dist/artifacts/workbook.d.ts +64 -0
- package/dist/artifacts/workbook.d.ts.map +1 -0
- package/dist/auth/cookies.d.ts +2 -4
- package/dist/auth/cookies.d.ts.map +1 -1
- package/dist/auth/index.d.ts +0 -2
- package/dist/auth/index.d.ts.map +1 -1
- package/dist/auth/index.js +14 -20
- package/dist/auth/index.js.map +1 -1
- package/dist/auth/runtime.d.ts +8 -10
- package/dist/auth/runtime.d.ts.map +1 -1
- package/dist/auth/session-cache.d.ts +1 -5
- package/dist/auth/session-cache.d.ts.map +1 -1
- package/dist/auth/strategy.js +1 -1
- package/dist/auth/types.d.ts +4 -8
- package/dist/auth/types.d.ts.map +1 -1
- package/dist/auth/validation.d.ts +0 -1
- package/dist/auth/validation.d.ts.map +1 -1
- package/dist/authorization/decision.d.ts +2 -4
- package/dist/authorization/decision.d.ts.map +1 -1
- package/dist/authorization/grant-kinds.d.ts +6 -8
- package/dist/authorization/grant-kinds.d.ts.map +1 -1
- package/dist/authorization/index.d.ts +0 -1
- package/dist/authorization/index.d.ts.map +1 -1
- package/dist/authorization/index.js +7 -11
- package/dist/authorization/index.js.map +1 -1
- package/dist/authorization/resolve.d.ts +1 -1
- package/dist/authorization/resolve.d.ts.map +1 -1
- package/dist/blob-storage/browser.js +1 -1
- package/dist/blob-storage/index.js +2 -2
- package/dist/blob-storage/internal.d.ts +1 -1
- package/dist/blob-storage/internal.d.ts.map +1 -1
- package/dist/blob-storage/internal.js +11 -5
- package/dist/blob-storage/internal.js.map +1 -1
- package/dist/blob-storage/media-type.d.ts +12 -0
- package/dist/blob-storage/media-type.d.ts.map +1 -1
- package/dist/bootstrap/index.js +54 -48
- package/dist/bootstrap/index.js.map +2 -2
- package/dist/{chunk-t6vq7bff.js → chunk-0bphap9y.js} +5 -5
- package/dist/{chunk-7mbzgd9m.js → chunk-1cc1xaf3.js} +3 -3
- package/dist/chunk-3jms7je7.js +14 -0
- package/dist/chunk-3jms7je7.js.map +10 -0
- package/dist/{chunk-s54c868q.js → chunk-3qct2mdc.js} +3 -13
- package/dist/chunk-3qct2mdc.js.map +12 -0
- package/dist/{chunk-6gmfggss.js → chunk-431pyp2c.js} +3 -3
- package/dist/{chunk-c85m1hyj.js → chunk-447a5c0p.js} +2 -2
- package/dist/chunk-48qjhh6v.js +185 -0
- package/dist/chunk-48qjhh6v.js.map +13 -0
- package/dist/{chunk-80mc0971.js → chunk-561r0yc9.js} +8 -8
- package/dist/{chunk-5e43w60z.js → chunk-5948n82c.js} +2 -2
- package/dist/{chunk-yzwja0mj.js → chunk-5hx48dnn.js} +2 -2
- package/dist/{chunk-tjb1mk5t.js → chunk-5vems3nx.js} +5 -6
- package/dist/{chunk-tjb1mk5t.js.map → chunk-5vems3nx.js.map} +3 -3
- package/dist/{chunk-aff7cyea.js → chunk-61y5xs4p.js} +563 -167
- package/dist/{chunk-aff7cyea.js.map → chunk-61y5xs4p.js.map} +12 -9
- package/dist/chunk-65abf64x.js +13 -0
- package/dist/chunk-65abf64x.js.map +10 -0
- package/dist/{chunk-z3y5kg1x.js → chunk-6eqsgvxk.js} +3 -3
- package/dist/{chunk-z3y5kg1x.js.map → chunk-6eqsgvxk.js.map} +2 -2
- package/dist/chunk-6rqgmkde.js +2028 -0
- package/dist/chunk-6rqgmkde.js.map +29 -0
- package/dist/{chunk-y7rqfrgg.js → chunk-6vb4st8k.js} +29 -38
- package/dist/chunk-6vb4st8k.js.map +23 -0
- package/dist/chunk-7q8t23v4.js +467 -0
- package/dist/chunk-7q8t23v4.js.map +14 -0
- package/dist/{chunk-kyzq4wy9.js → chunk-858emn8m.js} +17 -17
- package/dist/chunk-858emn8m.js.map +18 -0
- package/dist/{chunk-hvsb78a1.js → chunk-8frc8a4j.js} +26 -26
- package/dist/{chunk-hvsb78a1.js.map → chunk-8frc8a4j.js.map} +2 -2
- package/dist/{chunk-3zxk45er.js → chunk-8ncg20rd.js} +3 -68
- package/dist/{chunk-3zxk45er.js.map → chunk-8ncg20rd.js.map} +4 -5
- package/dist/{chunk-j2bp5ryw.js → chunk-918wwnaa.js} +495 -28
- package/dist/{chunk-j2bp5ryw.js.map → chunk-918wwnaa.js.map} +14 -12
- package/dist/{chunk-1f7wpmyp.js → chunk-9j4jw7as.js} +103 -110
- package/dist/chunk-9j4jw7as.js.map +14 -0
- package/dist/chunk-9kgkfg6v.js +502 -0
- package/dist/chunk-9kgkfg6v.js.map +14 -0
- package/dist/chunk-a3faa34j.js +74 -0
- package/dist/chunk-a3faa34j.js.map +10 -0
- package/dist/{chunk-ey3pyej1.js → chunk-akzryx9h.js} +347 -1174
- package/dist/{chunk-ey3pyej1.js.map → chunk-akzryx9h.js.map} +19 -25
- package/dist/chunk-arns890k.js +10 -0
- package/dist/chunk-arns890k.js.map +10 -0
- package/dist/{chunk-zrmy8zvw.js → chunk-bk9svbcq.js} +11 -11
- package/dist/{chunk-zrmy8zvw.js.map → chunk-bk9svbcq.js.map} +2 -2
- package/dist/{chunk-hkc3jct7.js → chunk-c06hmxyy.js} +2 -10
- package/dist/chunk-c06hmxyy.js.map +10 -0
- package/dist/{chunk-q1vkr2ys.js → chunk-c1rxbz5y.js} +3 -3
- package/dist/chunk-cfj9dfbb.js +288 -0
- package/dist/chunk-cfj9dfbb.js.map +12 -0
- package/dist/{chunk-4tcx876c.js → chunk-cn0fwwhy.js} +19 -19
- package/dist/{chunk-4tcx876c.js.map → chunk-cn0fwwhy.js.map} +1 -1
- package/dist/{chunk-gc4ntf7d.js → chunk-cwdzcv37.js} +1 -1
- package/dist/{chunk-fa02jy15.js → chunk-cy4mbddw.js} +1 -1
- package/dist/{chunk-7kg3k1m9.js → chunk-d09e3rax.js} +1 -1
- package/dist/chunk-d5rjr8c0.js +176 -0
- package/dist/chunk-d5rjr8c0.js.map +12 -0
- package/dist/{chunk-rhg02hxq.js → chunk-d7dnxdep.js} +3 -3
- package/dist/{chunk-b38szspf.js → chunk-dhcv7yxc.js} +1 -1
- package/dist/{chunk-b38szspf.js.map → chunk-dhcv7yxc.js.map} +1 -1
- package/dist/{chunk-enpsx8k5.js → chunk-dhdha526.js} +23 -21
- package/dist/chunk-dhdha526.js.map +10 -0
- package/dist/{chunk-8mx7qw3y.js → chunk-dvd2fp9q.js} +2 -2
- package/dist/{chunk-8mx7qw3y.js.map → chunk-dvd2fp9q.js.map} +3 -3
- package/dist/{chunk-bwjcehza.js → chunk-e17zdm62.js} +6 -12
- package/dist/{chunk-bwjcehza.js.map → chunk-e17zdm62.js.map} +3 -4
- package/dist/{chunk-tpn40322.js → chunk-e6k4thh5.js} +11 -10
- package/dist/{chunk-tpn40322.js.map → chunk-e6k4thh5.js.map} +3 -3
- package/dist/{chunk-tw03bsmb.js → chunk-eptrvnby.js} +224 -3
- package/dist/chunk-eptrvnby.js.map +12 -0
- package/dist/{chunk-xt1zt7gv.js → chunk-f4pamkt9.js} +30 -23
- package/dist/chunk-f4pamkt9.js.map +12 -0
- package/dist/chunk-ff5xkv0p.js +211 -0
- package/dist/chunk-ff5xkv0p.js.map +10 -0
- package/dist/{chunk-bpgy64fw.js → chunk-g257jwnc.js} +10 -4
- package/dist/{chunk-bpgy64fw.js.map → chunk-g257jwnc.js.map} +3 -3
- package/dist/chunk-g5bvzyyr.js +32 -0
- package/dist/chunk-g5bvzyyr.js.map +10 -0
- package/dist/{chunk-2jntasmh.js → chunk-hcbyfxbe.js} +25 -49
- package/dist/chunk-hcbyfxbe.js.map +12 -0
- package/dist/chunk-hke9aeen.js +9 -0
- package/dist/chunk-hke9aeen.js.map +10 -0
- package/dist/{chunk-1sr8ryzk.js → chunk-hwksyjks.js} +122 -1
- package/dist/{chunk-1sr8ryzk.js.map → chunk-hwksyjks.js.map} +3 -3
- package/dist/chunk-jcfw4h7m.js +9 -0
- package/dist/chunk-jcfw4h7m.js.map +10 -0
- package/dist/{chunk-85yvv5n0.js → chunk-k43ct2ke.js} +20 -11
- package/dist/chunk-k43ct2ke.js.map +12 -0
- package/dist/{chunk-dnmadg9k.js → chunk-kge7k6ey.js} +40 -8
- package/dist/chunk-kge7k6ey.js.map +15 -0
- package/dist/{chunk-wz0xs816.js → chunk-ky3j490c.js} +2 -2
- package/dist/chunk-mjddfa7k.js +129 -0
- package/dist/chunk-mjddfa7k.js.map +12 -0
- package/dist/{chunk-3gnrh4ve.js → chunk-nn5xnx3s.js} +86 -111
- package/dist/chunk-nn5xnx3s.js.map +40 -0
- package/dist/{chunk-rz53yb4v.js → chunk-q5e5tv4b.js} +35 -7
- package/dist/{chunk-rz53yb4v.js.map → chunk-q5e5tv4b.js.map} +3 -3
- package/dist/{chunk-vyf9kfqf.js → chunk-q7gn29y3.js} +1 -1
- package/dist/{chunk-d2ync1v3.js → chunk-rmakanzx.js} +10 -12
- package/dist/{chunk-d2ync1v3.js.map → chunk-rmakanzx.js.map} +3 -4
- package/dist/{chunk-v9xd5wzd.js → chunk-s7jg7pmn.js} +1 -1
- package/dist/chunk-tbc1ngpd.js +642 -0
- package/dist/chunk-tbc1ngpd.js.map +18 -0
- package/dist/chunk-twe4dx8p.js +676 -0
- package/dist/chunk-twe4dx8p.js.map +15 -0
- package/dist/{chunk-nre82s12.js → chunk-vf57cr4t.js} +2 -2
- package/dist/{chunk-9ybhtmg4.js → chunk-vvxtn22d.js} +1 -1
- package/dist/{chunk-jhm3zsa7.js → chunk-wkv3h3q7.js} +64 -2
- package/dist/{chunk-jhm3zsa7.js.map → chunk-wkv3h3q7.js.map} +3 -3
- package/dist/chunk-x0v3jd47.js +124 -0
- package/dist/chunk-x0v3jd47.js.map +10 -0
- package/dist/{chunk-7t429e3f.js → chunk-xvsc5m8n.js} +1 -1
- package/dist/{chunk-kg5j6fct.js → chunk-y5tah2kf.js} +1 -1
- package/dist/{chunk-52bk93x8.js → chunk-z58tm0hm.js} +2 -2
- package/dist/datasets/builders.d.ts +15 -2
- package/dist/datasets/builders.d.ts.map +1 -1
- package/dist/datasets/column-index.d.ts +7 -0
- package/dist/datasets/column-index.d.ts.map +1 -0
- package/dist/datasets/execution.d.ts +3 -2
- package/dist/datasets/execution.d.ts.map +1 -1
- package/dist/datasets/write.js +8 -8
- package/dist/deploy/internal.js +4 -3
- package/dist/deploy/internal.js.map +4 -4
- package/dist/deploy/services.d.ts.map +1 -1
- package/dist/deploy/types.d.ts +1 -2
- package/dist/deploy/types.d.ts.map +1 -1
- package/dist/error-reporting/internal.js +4 -4
- package/dist/errors/internal.d.ts +1 -0
- package/dist/errors/internal.d.ts.map +1 -1
- package/dist/errors/internal.js +7 -4
- package/dist/errors/internal.js.map +1 -1
- package/dist/events/execution.d.ts +12 -2
- package/dist/events/execution.d.ts.map +1 -1
- package/dist/events/index.js +4 -4
- package/dist/execution/agent.js +56 -49
- package/dist/execution/agent.js.map +1 -1
- package/dist/execution/authorization.d.ts.map +1 -1
- package/dist/execution/authorized-object-reader.d.ts +52 -11
- package/dist/execution/authorized-object-reader.d.ts.map +1 -1
- package/dist/execution/object-reader-clearance.d.ts +41 -0
- package/dist/execution/object-reader-clearance.d.ts.map +1 -0
- package/dist/execution/object-reader-ontology.d.ts +12 -0
- package/dist/execution/object-reader-ontology.d.ts.map +1 -0
- package/dist/execution/object-reader-security.d.ts +45 -0
- package/dist/execution/object-reader-security.d.ts.map +1 -0
- package/dist/execution/primitive.js +54 -47
- package/dist/execution/primitive.js.map +1 -1
- package/dist/execution/request.js +49 -42
- package/dist/execution/request.js.map +2 -2
- package/dist/http/api-routes.d.ts.map +1 -1
- package/dist/http/index.js +1 -1
- package/dist/index.d.ts +23 -7
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +111 -109
- package/dist/index.js.map +1 -1
- package/dist/lake-storage/in-memory.d.ts +1 -0
- package/dist/lake-storage/in-memory.d.ts.map +1 -1
- package/dist/lake-storage/index.d.ts +6 -3
- package/dist/lake-storage/index.d.ts.map +1 -1
- package/dist/lake-storage/index.js +21 -13
- package/dist/lake-storage/index.js.map +1 -1
- package/dist/lake-storage/lineage.d.ts +94 -0
- package/dist/lake-storage/lineage.d.ts.map +1 -0
- package/dist/lake-storage/sql-transforms.d.ts +45 -0
- package/dist/lake-storage/sql-transforms.d.ts.map +1 -1
- package/dist/lake-storage/types.d.ts +55 -1
- package/dist/lake-storage/types.d.ts.map +1 -1
- package/dist/lake-storage/version-inputs.d.ts +14 -3
- package/dist/lake-storage/version-inputs.d.ts.map +1 -1
- package/dist/maintenance/ontology-maintenance.d.ts.map +1 -1
- package/dist/materializer/index.js +31 -30
- package/dist/materializer/index.js.map +1 -1
- package/dist/models/execution/index.js +26 -25
- package/dist/models/execution/index.js.map +1 -1
- package/dist/objects/clearance-redaction.d.ts +27 -0
- package/dist/objects/clearance-redaction.d.ts.map +1 -0
- package/dist/objects/index.js +54 -47
- package/dist/objects/index.js.map +1 -1
- package/dist/objects/link/authorization.d.ts +8 -5
- package/dist/objects/link/authorization.d.ts.map +1 -1
- package/dist/objects/link/upsert-batch.d.ts.map +1 -1
- package/dist/objects/object/delete.d.ts.map +1 -1
- package/dist/objects/object/upsert-batch.d.ts.map +1 -1
- package/dist/objects/object/upsert.d.ts.map +1 -1
- package/dist/objects/property-clearance.d.ts +47 -24
- package/dist/objects/property-clearance.d.ts.map +1 -1
- package/dist/objects/query/clearance-admission.d.ts +10 -0
- package/dist/objects/query/clearance-admission.d.ts.map +1 -0
- package/dist/objects/query/index.js +29 -28
- package/dist/objects/query/index.js.map +1 -1
- package/dist/objects/query/link-query-clearance.d.ts +21 -0
- package/dist/objects/query/link-query-clearance.d.ts.map +1 -0
- package/dist/objects/vectors/handle.d.ts.map +1 -1
- package/dist/objects/vectors/profile.d.ts +5 -0
- package/dist/objects/vectors/profile.d.ts.map +1 -1
- package/dist/ontology/builders.d.ts.map +1 -1
- package/dist/ontology/docs-markdown.d.ts +1 -1
- package/dist/ontology/docs-markdown.d.ts.map +1 -1
- package/dist/ontology/index.js +7 -7
- package/dist/ontology/internal.js +4 -4
- package/dist/ontology/internal.js.map +1 -1
- package/dist/pipelines/index.d.ts +2 -0
- package/dist/pipelines/index.d.ts.map +1 -1
- package/dist/pipelines/index.js +47 -35
- package/dist/pipelines/index.js.map +1 -1
- package/dist/pipelines/lineage.d.ts +17 -0
- package/dist/pipelines/lineage.d.ts.map +1 -0
- package/dist/projections/internal.d.ts +2 -2
- package/dist/projections/internal.js +30 -29
- package/dist/projections/internal.js.map +1 -1
- package/dist/runtime/create.d.ts +3 -0
- package/dist/runtime/create.d.ts.map +1 -1
- package/dist/runtime/host.d.ts +6 -0
- package/dist/runtime/host.d.ts.map +1 -1
- package/dist/runtime/internal.d.ts +2 -0
- package/dist/runtime/internal.d.ts.map +1 -1
- package/dist/runtime/internal.js +46 -42
- package/dist/runtime/internal.js.map +1 -1
- package/dist/runtime/ontology-mutations.d.ts +2 -0
- package/dist/runtime/ontology-mutations.d.ts.map +1 -1
- package/dist/runtime/resolve-definitions.d.ts.map +1 -1
- package/dist/runtime/sixb.d.ts +8 -0
- package/dist/runtime/sixb.d.ts.map +1 -1
- package/dist/sandboxes/auth.d.ts +16 -0
- package/dist/sandboxes/auth.d.ts.map +1 -1
- package/dist/sandboxes/config.d.ts.map +1 -1
- package/dist/sandboxes/configuration.d.ts +26 -0
- package/dist/sandboxes/configuration.d.ts.map +1 -1
- package/dist/sandboxes/index.d.ts +1 -1
- package/dist/sandboxes/index.d.ts.map +1 -1
- package/dist/sandboxes/index.js +14 -13
- package/dist/sandboxes/index.js.map +1 -1
- package/dist/sandboxes/sandbox.d.ts +28 -5
- package/dist/sandboxes/sandbox.d.ts.map +1 -1
- package/dist/security/applied-markings-contribution.d.ts +58 -0
- package/dist/security/applied-markings-contribution.d.ts.map +1 -0
- package/dist/security/applied-markings-host.d.ts +10 -0
- package/dist/security/applied-markings-host.d.ts.map +1 -0
- package/dist/security/applied-markings-snapshot.d.ts +67 -0
- package/dist/security/applied-markings-snapshot.d.ts.map +1 -0
- package/dist/security/applied-markings.d.ts +73 -0
- package/dist/security/applied-markings.d.ts.map +1 -0
- package/dist/security/builders.d.ts.map +1 -1
- package/dist/security/dataset-version-markings.d.ts +47 -0
- package/dist/security/dataset-version-markings.d.ts.map +1 -0
- package/dist/security/every.d.ts +1 -4
- package/dist/security/every.d.ts.map +1 -1
- package/dist/security/grants.d.ts +4 -5
- package/dist/security/grants.d.ts.map +1 -1
- package/dist/security/index.d.ts +2 -2
- package/dist/security/index.d.ts.map +1 -1
- package/dist/security/internal.d.ts +15 -0
- package/dist/security/internal.d.ts.map +1 -0
- package/dist/security/internal.js +135 -0
- package/dist/security/internal.js.map +10 -0
- package/dist/security/marking-propagation.d.ts +62 -0
- package/dist/security/marking-propagation.d.ts.map +1 -0
- package/dist/security/marking-sets.d.ts +14 -0
- package/dist/security/marking-sets.d.ts.map +1 -0
- package/dist/security/markings.d.ts +6 -3
- package/dist/security/markings.d.ts.map +1 -1
- package/dist/security/membership-policies.d.ts.map +1 -1
- package/dist/security/pipeline-markings.d.ts +20 -0
- package/dist/security/pipeline-markings.d.ts.map +1 -0
- package/dist/security/project.d.ts +4 -0
- package/dist/security/project.d.ts.map +1 -0
- package/dist/security/projection-markings.d.ts +71 -0
- package/dist/security/projection-markings.d.ts.map +1 -0
- package/dist/security/public.d.ts +10 -0
- package/dist/security/public.d.ts.map +1 -0
- package/dist/security/public.js +10 -0
- package/dist/security/public.js.map +9 -0
- package/dist/security/redactions.d.ts +4 -1
- package/dist/security/redactions.d.ts.map +1 -1
- package/dist/security/registry.d.ts +0 -1
- package/dist/security/registry.d.ts.map +1 -1
- package/dist/security/types.d.ts +34 -19
- package/dist/security/types.d.ts.map +1 -1
- package/dist/security/validation.d.ts +0 -6
- package/dist/security/validation.d.ts.map +1 -1
- package/dist/shares/internal.js +25 -24
- package/dist/shares/internal.js.map +2 -2
- package/dist/storage/action-runs/failure.js +3 -3
- package/dist/storage/action-runs/in-memory.d.ts +4 -0
- package/dist/storage/action-runs/in-memory.d.ts.map +1 -1
- package/dist/storage/action-runs/types.d.ts +8 -0
- package/dist/storage/action-runs/types.d.ts.map +1 -1
- package/dist/storage/activity/in-memory.d.ts +55 -0
- package/dist/storage/activity/in-memory.d.ts.map +1 -0
- package/dist/storage/activity/index.d.ts +3 -0
- package/dist/storage/activity/index.d.ts.map +1 -0
- package/dist/storage/activity/policy.d.ts +96 -0
- package/dist/storage/activity/policy.d.ts.map +1 -0
- package/dist/storage/activity/types.d.ts +191 -0
- package/dist/storage/activity/types.d.ts.map +1 -0
- package/dist/storage/agents/in-memory.d.ts +4 -0
- package/dist/storage/agents/in-memory.d.ts.map +1 -1
- package/dist/storage/agents/provider.d.ts.map +1 -1
- package/dist/storage/agents/provider.js +2 -5
- package/dist/storage/agents/provider.js.map +1 -1
- package/dist/storage/agents/types.d.ts +10 -9
- package/dist/storage/agents/types.d.ts.map +1 -1
- package/dist/storage/ai-limits/enforcement.js +3 -3
- package/dist/storage/artifacts/errors.d.ts +8 -0
- package/dist/storage/artifacts/errors.d.ts.map +1 -0
- package/dist/storage/artifacts/in-memory.d.ts +34 -0
- package/dist/storage/artifacts/in-memory.d.ts.map +1 -0
- package/dist/storage/artifacts/index.d.ts +5 -0
- package/dist/storage/artifacts/index.d.ts.map +1 -0
- package/dist/storage/artifacts/record.d.ts +17 -0
- package/dist/storage/artifacts/record.d.ts.map +1 -0
- package/dist/storage/artifacts/types.d.ts +184 -0
- package/dist/storage/artifacts/types.d.ts.map +1 -0
- package/dist/storage/auth/in-memory/auth-storage.d.ts.map +1 -1
- package/dist/storage/auth/in-memory/magic-links.d.ts.map +1 -1
- package/dist/storage/auth/in-memory/oidc-attempts.d.ts.map +1 -1
- package/dist/storage/auth/in-memory/sessions.d.ts +2 -11
- package/dist/storage/auth/in-memory/sessions.d.ts.map +1 -1
- package/dist/storage/auth/in-memory/shared.d.ts +1 -2
- package/dist/storage/auth/in-memory/shared.d.ts.map +1 -1
- package/dist/storage/auth/index.d.ts +1 -1
- package/dist/storage/auth/index.d.ts.map +1 -1
- package/dist/storage/auth/types.d.ts +20 -17
- package/dist/storage/auth/types.d.ts.map +1 -1
- package/dist/storage/connector-connections/provider.js +2 -2
- package/dist/storage/executions/in-memory.d.ts +2 -1
- package/dist/storage/executions/in-memory.d.ts.map +1 -1
- package/dist/storage/executions/index.d.ts +1 -1
- package/dist/storage/executions/index.d.ts.map +1 -1
- package/dist/storage/executions/provider.d.ts +2 -0
- package/dist/storage/executions/provider.d.ts.map +1 -1
- package/dist/storage/executions/provider.js +9 -223
- package/dist/storage/executions/provider.js.map +3 -4
- package/dist/storage/executions/types.d.ts +31 -0
- package/dist/storage/executions/types.d.ts.map +1 -1
- package/dist/storage/file-upload-sessions/provider.js +12 -12
- package/dist/storage/in-memory/index.d.ts +8 -0
- package/dist/storage/in-memory/index.d.ts.map +1 -1
- package/dist/storage/index.d.ts +6 -4
- package/dist/storage/index.d.ts.map +1 -1
- package/dist/storage/index.js +47 -46
- package/dist/storage/index.js.map +1 -1
- package/dist/storage/internal.d.ts +3 -0
- package/dist/storage/internal.d.ts.map +1 -1
- package/dist/storage/internal.js +66 -16
- package/dist/storage/internal.js.map +1 -1
- package/dist/storage/ontology/in-memory/sources.d.ts +2 -1
- package/dist/storage/ontology/in-memory/sources.d.ts.map +1 -1
- package/dist/storage/ontology/index.d.ts +1 -1
- package/dist/storage/ontology/index.d.ts.map +1 -1
- package/dist/storage/ontology/sources.d.ts +15 -0
- package/dist/storage/ontology/sources.d.ts.map +1 -1
- package/dist/storage/projection-runs/provider.js +3 -3
- package/dist/storage/share-grants/in-memory.d.ts +2 -1
- package/dist/storage/share-grants/in-memory.d.ts.map +1 -1
- package/dist/storage/share-grants/index.d.ts +1 -1
- package/dist/storage/share-grants/index.d.ts.map +1 -1
- package/dist/storage/share-grants/types.d.ts +6 -0
- package/dist/storage/share-grants/types.d.ts.map +1 -1
- package/dist/storage/types.d.ts +4 -0
- package/dist/storage/types.d.ts.map +1 -1
- package/dist/storage/workflow-runs/in-memory.d.ts +4 -0
- package/dist/storage/workflow-runs/in-memory.d.ts.map +1 -1
- package/dist/storage/workflow-runs/provider.js +14 -13
- package/dist/storage/workflow-runs/provider.js.map +1 -1
- package/dist/storage/workflow-runs/types.d.ts +5 -0
- package/dist/storage/workflow-runs/types.d.ts.map +1 -1
- package/dist/syncs/index.js +35 -34
- package/dist/syncs/index.js.map +1 -1
- package/dist/testing/action-run-storage-contract.d.ts.map +1 -1
- package/dist/testing/activity-storage-contract.d.ts +14 -0
- package/dist/testing/activity-storage-contract.d.ts.map +1 -0
- package/dist/testing/agent-storage-contract.d.ts.map +1 -1
- package/dist/testing/artifact-storage-contract.d.ts +13 -0
- package/dist/testing/artifact-storage-contract.d.ts.map +1 -0
- package/dist/testing/auth-storage-contract.d.ts.map +1 -1
- package/dist/testing/execution-storage-contract.d.ts.map +1 -1
- package/dist/testing/index.d.ts +2 -0
- package/dist/testing/index.d.ts.map +1 -1
- package/dist/testing/index.js +4493 -3225
- package/dist/testing/index.js.map +14 -12
- package/dist/testing/lake-merge-storage-contract.d.ts.map +1 -1
- package/dist/testing/lake-storage-contract.d.ts +2 -0
- package/dist/testing/lake-storage-contract.d.ts.map +1 -1
- package/dist/testing/ontology-storage-contract.d.ts.map +1 -1
- package/dist/testing/share-grant-storage-contract.d.ts.map +1 -1
- package/dist/webhooks/internal.js +28 -27
- package/dist/webhooks/internal.js.map +2 -2
- package/dist/workers/index.js +2 -2
- package/dist/workflows/builders.d.ts.map +1 -1
- package/dist/workflows/index.js +57 -51
- package/dist/workflows/index.js.map +1 -1
- package/dist/workflows/types.d.ts +9 -0
- package/dist/workflows/types.d.ts.map +1 -1
- package/dist/workflows/validation.d.ts +7 -0
- package/dist/workflows/validation.d.ts.map +1 -1
- package/package.json +32 -2
- package/src/actions/execution.ts +18 -13
- package/src/actions/request.ts +18 -3
- package/src/actions/run-authorization.ts +23 -0
- package/src/activity/README.md +155 -0
- package/src/activity/connection.ts +217 -0
- package/src/activity/device.ts +41 -0
- package/src/activity/execution.ts +210 -0
- package/src/activity/service.ts +274 -0
- package/src/activity/shares.ts +62 -0
- package/src/activity/timeline.ts +424 -0
- package/src/agents/index.ts +8 -3
- package/src/agents/request.ts +5 -0
- package/src/agents/skills.ts +6 -0
- package/src/agents/types.ts +8 -8
- package/src/agents/validation.ts +2 -0
- package/src/artifacts/address.ts +132 -0
- package/src/artifacts/csv.ts +108 -0
- package/src/artifacts/errors.ts +21 -0
- package/src/artifacts/execution.ts +153 -0
- package/src/artifacts/frames/assets.ts +88 -0
- package/src/artifacts/frames/grants.ts +124 -0
- package/src/artifacts/frames/index.ts +15 -0
- package/src/artifacts/frames/kit.ts +392 -0
- package/src/artifacts/frames/probe.ts +309 -0
- package/src/artifacts/frames/protocol.ts +174 -0
- package/src/artifacts/frames/runtime.ts +213 -0
- package/src/artifacts/html.ts +25 -0
- package/src/artifacts/ids.ts +18 -0
- package/src/artifacts/index.ts +61 -0
- package/src/artifacts/kinds.ts +8 -0
- package/src/artifacts/limits.ts +27 -0
- package/src/artifacts/outline.ts +62 -0
- package/src/artifacts/publish/files.ts +87 -0
- package/src/artifacts/publish/index.ts +12 -0
- package/src/artifacts/publish/publish.ts +250 -0
- package/src/artifacts/publish/references.ts +130 -0
- package/src/artifacts/publish/validate/document.ts +114 -0
- package/src/artifacts/publish/validate/file.ts +19 -0
- package/src/artifacts/publish/validate/sheet.ts +251 -0
- package/src/artifacts/publish/validate/slides.ts +134 -0
- package/src/artifacts/references.ts +11 -0
- package/src/artifacts/resolve.ts +97 -0
- package/src/artifacts/theme.ts +116 -0
- package/src/artifacts/warnings.ts +10 -0
- package/src/artifacts/workbook.ts +315 -0
- package/src/auth/cookies.ts +3 -20
- package/src/auth/index.ts +0 -6
- package/src/auth/runtime.ts +59 -76
- package/src/auth/session-cache.ts +2 -9
- package/src/auth/types.ts +4 -8
- package/src/auth/validation.ts +0 -2
- package/src/authorization/decision.ts +13 -23
- package/src/authorization/grant-kinds.ts +33 -28
- package/src/authorization/index.ts +0 -1
- package/src/authorization/resolve.ts +10 -6
- package/src/blob-storage/internal.ts +1 -1
- package/src/blob-storage/media-type.ts +69 -0
- package/src/datasets/builders.ts +66 -2
- package/src/datasets/column-index.ts +19 -0
- package/src/datasets/execution.ts +23 -9
- package/src/deploy/services.ts +0 -1
- package/src/deploy/types.ts +1 -2
- package/src/deploy/validation.ts +3 -1
- package/src/errors/internal.ts +1 -0
- package/src/events/execution.ts +134 -21
- package/src/execution/authorization.ts +11 -5
- package/src/execution/authorized-object-reader.ts +270 -256
- package/src/execution/object-reader-clearance.ts +91 -0
- package/src/execution/object-reader-ontology.ts +63 -0
- package/src/execution/object-reader-security.ts +146 -0
- package/src/http/api-routes.ts +125 -0
- package/src/index.ts +72 -17
- package/src/lake-storage/in-memory.ts +26 -3
- package/src/lake-storage/index.ts +13 -1
- package/src/lake-storage/lineage.ts +385 -0
- package/src/lake-storage/sql-transforms.ts +45 -0
- package/src/lake-storage/types.ts +59 -1
- package/src/lake-storage/version-inputs.ts +35 -6
- package/src/maintenance/ontology-maintenance.ts +15 -0
- package/src/models/execution/embedding.ts +6 -6
- package/src/objects/clearance-redaction.ts +138 -0
- package/src/objects/link/authorization.ts +27 -7
- package/src/objects/link/remove.ts +2 -2
- package/src/objects/link/upsert-batch.ts +7 -5
- package/src/objects/link/upsert.ts +2 -2
- package/src/objects/object/delete.ts +2 -0
- package/src/objects/object/upsert-batch.ts +2 -4
- package/src/objects/object/upsert.ts +2 -3
- package/src/objects/property-clearance.ts +171 -152
- package/src/objects/query/clearance-admission.ts +112 -0
- package/src/objects/query/link-query-clearance.ts +73 -0
- package/src/objects/vectors/README.md +4 -0
- package/src/objects/vectors/handle.ts +11 -2
- package/src/objects/vectors/indexing-generate.ts +2 -2
- package/src/objects/vectors/profile.ts +5 -0
- package/src/ontology/builders.ts +12 -1
- package/src/ontology/docs-markdown.ts +1 -1
- package/src/pipelines/index.ts +2 -0
- package/src/pipelines/lineage.ts +45 -0
- package/src/projections/internal.ts +2 -2
- package/src/runtime/create.ts +4 -0
- package/src/runtime/host.ts +55 -0
- package/src/runtime/internal.ts +2 -0
- package/src/runtime/ontology-mutations.ts +19 -4
- package/src/runtime/resolve-definitions.ts +66 -3
- package/src/runtime/sixb.ts +18 -1
- package/src/sandboxes/README.md +29 -7
- package/src/sandboxes/auth.ts +16 -0
- package/src/sandboxes/config.ts +2 -7
- package/src/sandboxes/configuration.ts +61 -7
- package/src/sandboxes/index.ts +1 -0
- package/src/sandboxes/sandbox.ts +27 -5
- package/src/security/applied-markings-contribution.ts +277 -0
- package/src/security/applied-markings-host.ts +41 -0
- package/src/security/applied-markings-snapshot.ts +235 -0
- package/src/security/applied-markings.ts +405 -0
- package/src/security/builders.ts +7 -2
- package/src/security/dataset-version-markings.ts +163 -0
- package/src/security/every.ts +0 -4
- package/src/security/grants.ts +42 -27
- package/src/security/index.ts +3 -3
- package/src/security/internal.ts +18 -0
- package/src/security/marking-propagation.ts +255 -0
- package/src/security/marking-sets.ts +42 -0
- package/src/security/markings.ts +29 -178
- package/src/security/membership-policies.ts +3 -1
- package/src/security/pipeline-markings.ts +175 -0
- package/src/security/project.ts +8 -0
- package/src/security/projection-markings.ts +421 -0
- package/src/security/public.ts +10 -0
- package/src/security/redactions.ts +7 -2
- package/src/security/registry.ts +0 -8
- package/src/security/types.ts +38 -26
- package/src/security/validation.ts +28 -19
- package/src/storage/action-runs/in-memory.ts +18 -0
- package/src/storage/action-runs/types.ts +8 -0
- package/src/storage/activity/in-memory.ts +374 -0
- package/src/storage/activity/index.ts +27 -0
- package/src/storage/activity/policy.ts +430 -0
- package/src/storage/activity/types.ts +211 -0
- package/src/storage/agents/in-memory.ts +10 -0
- package/src/storage/agents/provider.ts +2 -13
- package/src/storage/agents/types.ts +10 -17
- package/src/storage/artifacts/errors.ts +16 -0
- package/src/storage/artifacts/in-memory.ts +240 -0
- package/src/storage/artifacts/index.ts +30 -0
- package/src/storage/artifacts/record.ts +200 -0
- package/src/storage/artifacts/types.ts +209 -0
- package/src/storage/auth/in-memory/auth-storage.ts +0 -18
- package/src/storage/auth/in-memory/magic-links.ts +0 -3
- package/src/storage/auth/in-memory/oidc-attempts.ts +0 -3
- package/src/storage/auth/in-memory/sessions.ts +22 -25
- package/src/storage/auth/in-memory/shared.ts +1 -10
- package/src/storage/auth/index.ts +2 -0
- package/src/storage/auth/types.ts +20 -18
- package/src/storage/executions/in-memory.ts +61 -1
- package/src/storage/executions/index.ts +3 -0
- package/src/storage/executions/provider.ts +12 -0
- package/src/storage/executions/types.ts +30 -0
- package/src/storage/in-memory/index.ts +16 -0
- package/src/storage/index.ts +63 -0
- package/src/storage/internal.ts +30 -0
- package/src/storage/ontology/in-memory/sources.ts +23 -0
- package/src/storage/ontology/index.ts +2 -0
- package/src/storage/ontology/sources.ts +17 -0
- package/src/storage/share-grants/in-memory.ts +8 -0
- package/src/storage/share-grants/index.ts +1 -0
- package/src/storage/share-grants/types.ts +8 -0
- package/src/storage/types.ts +4 -0
- package/src/storage/workflow-runs/in-memory.ts +16 -0
- package/src/storage/workflow-runs/types.ts +5 -0
- package/src/testing/action-run-storage-contract.ts +25 -0
- package/src/testing/activity-storage-contract.ts +840 -0
- package/src/testing/agent-storage-contract.ts +22 -21
- package/src/testing/artifact-storage-contract.ts +517 -0
- package/src/testing/auth-storage-contract.ts +61 -107
- package/src/testing/execution-storage-contract.ts +147 -3
- package/src/testing/index.ts +9 -0
- package/src/testing/lake-merge-storage-contract.ts +38 -0
- package/src/testing/lake-storage-contract.ts +247 -2
- package/src/testing/materializer-storage-contract.ts +1 -0
- package/src/testing/ontology-storage-contract.ts +57 -2
- package/src/testing/share-grant-storage-contract.ts +15 -0
- package/src/workflows/builders.ts +14 -0
- package/src/workflows/types.ts +9 -0
- package/src/workflows/validation.ts +72 -0
- package/dist/auth/audience.d.ts +0 -8
- package/dist/auth/audience.d.ts.map +0 -1
- package/dist/authorization/application-access.d.ts +0 -18
- package/dist/authorization/application-access.d.ts.map +0 -1
- package/dist/chunk-1f7wpmyp.js.map +0 -14
- package/dist/chunk-1k89ecfr.js +0 -85
- package/dist/chunk-1k89ecfr.js.map +0 -10
- package/dist/chunk-2jntasmh.js.map +0 -13
- package/dist/chunk-3gnrh4ve.js.map +0 -40
- package/dist/chunk-85yvv5n0.js.map +0 -12
- package/dist/chunk-9gyp8hg1.js +0 -363
- package/dist/chunk-9gyp8hg1.js.map +0 -14
- package/dist/chunk-dnmadg9k.js.map +0 -15
- package/dist/chunk-enpsx8k5.js.map +0 -10
- package/dist/chunk-hkc3jct7.js.map +0 -10
- package/dist/chunk-kyzq4wy9.js.map +0 -18
- package/dist/chunk-s16apyk9.js +0 -256
- package/dist/chunk-s16apyk9.js.map +0 -16
- package/dist/chunk-s54c868q.js.map +0 -12
- package/dist/chunk-tw03bsmb.js.map +0 -11
- package/dist/chunk-wwdfe68s.js +0 -128
- package/dist/chunk-wwdfe68s.js.map +0 -11
- package/dist/chunk-xt1zt7gv.js.map +0 -13
- package/dist/chunk-y7rqfrgg.js.map +0 -24
- package/dist/security/applications.d.ts +0 -15
- package/dist/security/applications.d.ts.map +0 -1
- package/src/auth/audience.ts +0 -28
- package/src/authorization/application-access.ts +0 -34
- package/src/security/applications.ts +0 -11
- /package/dist/{chunk-t6vq7bff.js.map → chunk-0bphap9y.js.map} +0 -0
- /package/dist/{chunk-7mbzgd9m.js.map → chunk-1cc1xaf3.js.map} +0 -0
- /package/dist/{chunk-6gmfggss.js.map → chunk-431pyp2c.js.map} +0 -0
- /package/dist/{chunk-c85m1hyj.js.map → chunk-447a5c0p.js.map} +0 -0
- /package/dist/{chunk-80mc0971.js.map → chunk-561r0yc9.js.map} +0 -0
- /package/dist/{chunk-5e43w60z.js.map → chunk-5948n82c.js.map} +0 -0
- /package/dist/{chunk-yzwja0mj.js.map → chunk-5hx48dnn.js.map} +0 -0
- /package/dist/{chunk-q1vkr2ys.js.map → chunk-c1rxbz5y.js.map} +0 -0
- /package/dist/{chunk-gc4ntf7d.js.map → chunk-cwdzcv37.js.map} +0 -0
- /package/dist/{chunk-fa02jy15.js.map → chunk-cy4mbddw.js.map} +0 -0
- /package/dist/{chunk-7kg3k1m9.js.map → chunk-d09e3rax.js.map} +0 -0
- /package/dist/{chunk-rhg02hxq.js.map → chunk-d7dnxdep.js.map} +0 -0
- /package/dist/{chunk-wz0xs816.js.map → chunk-ky3j490c.js.map} +0 -0
- /package/dist/{chunk-vyf9kfqf.js.map → chunk-q7gn29y3.js.map} +0 -0
- /package/dist/{chunk-v9xd5wzd.js.map → chunk-s7jg7pmn.js.map} +0 -0
- /package/dist/{chunk-nre82s12.js.map → chunk-vf57cr4t.js.map} +0 -0
- /package/dist/{chunk-9ybhtmg4.js.map → chunk-vvxtn22d.js.map} +0 -0
- /package/dist/{chunk-7t429e3f.js.map → chunk-xvsc5m8n.js.map} +0 -0
- /package/dist/{chunk-kg5j6fct.js.map → chunk-y5tah2kf.js.map} +0 -0
- /package/dist/{chunk-52bk93x8.js.map → chunk-z58tm0hm.js.map} +0 -0
|
@@ -0,0 +1,185 @@
|
|
|
1
|
+
// @bun
|
|
2
|
+
import {
|
|
3
|
+
ARTIFACT_LIMITS2,
|
|
4
|
+
isArtifactAddress2,
|
|
5
|
+
parseArtifactAddress2
|
|
6
|
+
} from "./chunk-mjddfa7k.js";
|
|
7
|
+
import {
|
|
8
|
+
isValidFileRef
|
|
9
|
+
} from "./chunk-wkv3h3q7.js";
|
|
10
|
+
import {
|
|
11
|
+
statFileRef2
|
|
12
|
+
} from "./chunk-a3faa34j.js";
|
|
13
|
+
|
|
14
|
+
// src/artifacts/errors.ts
|
|
15
|
+
class ArtifactRequestError2 extends Error {
|
|
16
|
+
code;
|
|
17
|
+
name = "ArtifactRequestError";
|
|
18
|
+
constructor(code, message) {
|
|
19
|
+
super(message);
|
|
20
|
+
this.code = code;
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
// src/artifacts/html.ts
|
|
25
|
+
var NAMED_ENTITIES = {
|
|
26
|
+
amp: "&",
|
|
27
|
+
lt: "<",
|
|
28
|
+
gt: ">",
|
|
29
|
+
quot: '"',
|
|
30
|
+
apos: "'",
|
|
31
|
+
nbsp: String.fromCharCode(160)
|
|
32
|
+
};
|
|
33
|
+
function decodeHtmlEntities(value) {
|
|
34
|
+
return value.replace(/&(#x[\da-f]+|#\d+|[a-z]+);/gi, (match, entity) => {
|
|
35
|
+
if (entity[0] !== "#")
|
|
36
|
+
return NAMED_ENTITIES[entity.toLowerCase()] ?? match;
|
|
37
|
+
const codePoint = entity[1]?.toLowerCase() === "x" ? Number.parseInt(entity.slice(2), 16) : Number(entity.slice(1));
|
|
38
|
+
return Number.isInteger(codePoint) && codePoint >= 0 && codePoint <= 1114111 ? String.fromCodePoint(codePoint) : match;
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
// src/artifacts/publish/files.ts
|
|
43
|
+
async function checkArtifactFiles(blobStorage, files) {
|
|
44
|
+
if (files.length === 0)
|
|
45
|
+
throw invalidArtifact("A version needs at least one file.");
|
|
46
|
+
if (files.length > ARTIFACT_LIMITS2.maxFiles) {
|
|
47
|
+
throw invalidArtifact(`A version holds at most ${ARTIFACT_LIMITS2.maxFiles} files; this one has ${files.length}.`);
|
|
48
|
+
}
|
|
49
|
+
const paths = new Set;
|
|
50
|
+
let totalBytes = 0;
|
|
51
|
+
for (const entry of files) {
|
|
52
|
+
if (!isArtifactPath(entry.path)) {
|
|
53
|
+
throw invalidArtifact(`'${entry.path}' is not a usable file path: use a relative path with / separators, no . or .. segments, and at most ${ARTIFACT_LIMITS2.maxPathLength} characters.`);
|
|
54
|
+
}
|
|
55
|
+
if (paths.has(entry.path))
|
|
56
|
+
throw invalidArtifact(`'${entry.path}' appears twice.`);
|
|
57
|
+
paths.add(entry.path);
|
|
58
|
+
if (!isValidFileRef(entry.file)) {
|
|
59
|
+
throw invalidArtifact(`'${entry.path}' does not have a valid file reference.`);
|
|
60
|
+
}
|
|
61
|
+
if (entry.file.sizeBytes > ARTIFACT_LIMITS2.maxFileBytes) {
|
|
62
|
+
throw invalidArtifact(`'${entry.path}' is ${entry.file.sizeBytes} bytes; a file may be at most ${ARTIFACT_LIMITS2.maxFileBytes}.`);
|
|
63
|
+
}
|
|
64
|
+
totalBytes += entry.file.sizeBytes;
|
|
65
|
+
}
|
|
66
|
+
if (totalBytes > ARTIFACT_LIMITS2.maxVersionBytes) {
|
|
67
|
+
throw invalidArtifact(`The files total ${totalBytes} bytes; a version may hold at most ${ARTIFACT_LIMITS2.maxVersionBytes}.`);
|
|
68
|
+
}
|
|
69
|
+
const stored = await Promise.all(files.map((entry) => statFileRef2(blobStorage, entry.file)));
|
|
70
|
+
const missing = files.find((_, index) => !stored[index]);
|
|
71
|
+
if (missing)
|
|
72
|
+
throw invalidArtifact(`'${missing.path}' refers to a file that is not stored.`);
|
|
73
|
+
}
|
|
74
|
+
async function readArtifactText(blobStorage, file, maxBytes) {
|
|
75
|
+
if (file.file.sizeBytes > maxBytes) {
|
|
76
|
+
throw invalidArtifact(`'${file.path}' is ${file.file.sizeBytes} bytes; it may be at most ${maxBytes}.`);
|
|
77
|
+
}
|
|
78
|
+
const text = await new Response(await blobStorage.open(file.file.blobId)).text();
|
|
79
|
+
return text.charCodeAt(0) === 65279 ? text.slice(1) : text;
|
|
80
|
+
}
|
|
81
|
+
function isArtifactPath(path) {
|
|
82
|
+
return typeof path === "string" && path.length > 0 && path.length <= ARTIFACT_LIMITS2.maxPathLength && !path.startsWith("/") && !path.includes("\\") && !/[\u0000-\u001f\u007f]/.test(path) && path.split("/").every((segment) => segment.length > 0 && segment !== "." && segment !== "..");
|
|
83
|
+
}
|
|
84
|
+
function invalidArtifact(message) {
|
|
85
|
+
return new ArtifactRequestError2("invalid_artifact", `[Sixb] ${message}`);
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
// src/artifacts/publish/validate/slides.ts
|
|
89
|
+
var SLIDES_ENTRY2 = "index.html";
|
|
90
|
+
var FRAME_ASSET_PREFIX = "__sixb/";
|
|
91
|
+
async function validateSlides(blobStorage, files) {
|
|
92
|
+
const entry = files.find((file) => file.path === SLIDES_ENTRY2);
|
|
93
|
+
if (!entry) {
|
|
94
|
+
throw invalidArtifact(`A deck needs '${SLIDES_ENTRY2}' with one <section class="slide"> per slide.`);
|
|
95
|
+
}
|
|
96
|
+
const reserved = files.find((file) => file.path.startsWith(FRAME_ASSET_PREFIX));
|
|
97
|
+
if (reserved) {
|
|
98
|
+
throw invalidArtifact(`'${reserved.path}' is under ${FRAME_ASSET_PREFIX}, where Sixb serves the deck's kit and runtime: move it.`);
|
|
99
|
+
}
|
|
100
|
+
const html = await readArtifactText(blobStorage, entry, ARTIFACT_LIMITS2.maxDeckBytes);
|
|
101
|
+
const slides = [];
|
|
102
|
+
const references = [];
|
|
103
|
+
let refused;
|
|
104
|
+
const at = () => String(Math.max(1, slides.length));
|
|
105
|
+
let reading = null;
|
|
106
|
+
new HTMLRewriter().on("section", {
|
|
107
|
+
element(element) {
|
|
108
|
+
const classes = (element.getAttribute("class") ?? "").split(/\s+/);
|
|
109
|
+
if (classes.includes("slide"))
|
|
110
|
+
slides.push({ title: "", heading: false });
|
|
111
|
+
}
|
|
112
|
+
}).on("h1, h2, h3", {
|
|
113
|
+
element(element) {
|
|
114
|
+
const slide = slides.at(-1);
|
|
115
|
+
if (!slide || slide.heading)
|
|
116
|
+
return;
|
|
117
|
+
slide.heading = true;
|
|
118
|
+
reading = slide;
|
|
119
|
+
element.onEndTag(() => {
|
|
120
|
+
reading = null;
|
|
121
|
+
});
|
|
122
|
+
},
|
|
123
|
+
text(chunk) {
|
|
124
|
+
if (reading)
|
|
125
|
+
reading.title += chunk.text;
|
|
126
|
+
}
|
|
127
|
+
}).on("a[href]", {
|
|
128
|
+
element(element) {
|
|
129
|
+
const href = decodeHtmlEntities(element.getAttribute("href") ?? "");
|
|
130
|
+
if (isArtifactAddress2(href)) {
|
|
131
|
+
references.push({ address: href.trim(), as: "link", at: at() });
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
}).on("img[src]", {
|
|
135
|
+
element(element) {
|
|
136
|
+
const source = decodeHtmlEntities(element.getAttribute("src") ?? "").trim();
|
|
137
|
+
if (!isArtifactAddress2(source))
|
|
138
|
+
return;
|
|
139
|
+
if (!parseArtifactAddress2(source)?.path) {
|
|
140
|
+
refused ??= `An <img> shows a file from another artifact, and '${source}' names none: show a chart, a range, a section, or a slide with <sixb-embed src="${source}"></sixb-embed>.`;
|
|
141
|
+
return;
|
|
142
|
+
}
|
|
143
|
+
references.push({ address: source, as: "embed", at: at() });
|
|
144
|
+
}
|
|
145
|
+
}).on("sixb-embed", {
|
|
146
|
+
element(element) {
|
|
147
|
+
const source = decodeHtmlEntities(element.getAttribute("src") ?? "").trim();
|
|
148
|
+
if (!isArtifactAddress2(source)) {
|
|
149
|
+
refused ??= `<sixb-embed> shows another artifact: give it src="artifact:\u2026", such as artifact:art_k3m9q2x7tp#chart=revenue.`;
|
|
150
|
+
return;
|
|
151
|
+
}
|
|
152
|
+
references.push({ address: source, as: "embed", at: at() });
|
|
153
|
+
}
|
|
154
|
+
}).on("iframe[src], object[data], embed[src]", {
|
|
155
|
+
element(element) {
|
|
156
|
+
const source = decodeHtmlEntities(element.getAttribute("src") ?? element.getAttribute("data") ?? "").trim();
|
|
157
|
+
if (isArtifactAddress2(source)) {
|
|
158
|
+
refused ??= `${SLIDES_ENTRY2} frames '${source}': show another artifact with <sixb-embed src="${source}"></sixb-embed>, or a file of one with <img>.`;
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
}).transform(html);
|
|
162
|
+
if (refused)
|
|
163
|
+
throw invalidArtifact(refused);
|
|
164
|
+
if (slides.length === 0) {
|
|
165
|
+
throw invalidArtifact(`${SLIDES_ENTRY2} has no slides: put each slide in a <section class="slide">.`);
|
|
166
|
+
}
|
|
167
|
+
if (slides.length > ARTIFACT_LIMITS2.maxSlides) {
|
|
168
|
+
throw invalidArtifact(`A deck holds at most ${ARTIFACT_LIMITS2.maxSlides} slides; this one has ${slides.length}.`);
|
|
169
|
+
}
|
|
170
|
+
return {
|
|
171
|
+
entry: SLIDES_ENTRY2,
|
|
172
|
+
outline: {
|
|
173
|
+
kind: "slides",
|
|
174
|
+
slides: slides.map(({ title }) => {
|
|
175
|
+
const plain = decodeHtmlEntities(title).replace(/\s+/g, " ").trim();
|
|
176
|
+
return plain ? { title: plain } : {};
|
|
177
|
+
})
|
|
178
|
+
},
|
|
179
|
+
references
|
|
180
|
+
};
|
|
181
|
+
}
|
|
182
|
+
|
|
183
|
+
export { ArtifactRequestError2, checkArtifactFiles, readArtifactText, invalidArtifact, decodeHtmlEntities, SLIDES_ENTRY2, FRAME_ASSET_PREFIX, validateSlides };
|
|
184
|
+
|
|
185
|
+
//# debugId=ED695A8232578D1464756E2164756E21
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../src/artifacts/errors.ts", "../src/artifacts/html.ts", "../src/artifacts/publish/files.ts", "../src/artifacts/publish/validate/slides.ts"],
|
|
4
|
+
"sourcesContent": [
|
|
5
|
+
"export type ArtifactRequestErrorCode =\n | \"artifact_not_found\"\n | \"artifact_kind_mismatch\"\n | \"invalid_artifact\"\n | \"not_allowed\"\n | \"storage_unavailable\"\n\n/**\n * Error for an artifact request the caller can correct or must be told about. Callers branch on\n * `code`; the message says what to change.\n */\nexport class ArtifactRequestError extends Error {\n readonly name = \"ArtifactRequestError\"\n\n constructor(\n readonly code: ArtifactRequestErrorCode,\n message: string\n ) {\n super(message)\n }\n}\n",
|
|
6
|
+
"const NAMED_ENTITIES: Readonly<Record<string, string>> = {\n amp: \"&\",\n lt: \"<\",\n gt: \">\",\n quot: '\"',\n apos: \"'\",\n nbsp: String.fromCharCode(0xa0),\n}\n\n/**\n * Text or an attribute as the browser reads it. HTMLRewriter hands both over as written in the\n * HTML, entities included, so `artifact:…#Q3%20&%20Q4` must read `&` before it is resolved.\n */\nexport function decodeHtmlEntities(value: string): string {\n return value.replace(/&(#x[\\da-f]+|#\\d+|[a-z]+);/gi, (match, entity: string) => {\n if (entity[0] !== \"#\") return NAMED_ENTITIES[entity.toLowerCase()] ?? match\n const codePoint =\n entity[1]?.toLowerCase() === \"x\"\n ? Number.parseInt(entity.slice(2), 16)\n : Number(entity.slice(1))\n return Number.isInteger(codePoint) && codePoint >= 0 && codePoint <= 0x10ffff\n ? String.fromCodePoint(codePoint)\n : match\n })\n}\n",
|
|
7
|
+
"import { statFileRef } from \"../../blob-storage/file-content\"\nimport type { BlobStorage } from \"../../blob-storage/types\"\nimport { isValidFileRef } from \"../../blob-storage/validation\"\nimport type { ArtifactFile } from \"../../storage/artifacts/types\"\nimport { ArtifactRequestError } from \"../errors\"\nimport { ARTIFACT_LIMITS } from \"../limits\"\n\nexport type ArtifactBlobStorage = Pick<BlobStorage, \"stat\" | \"open\">\n\n/**\n * Checks a version's files before anything reads them: safe unique paths, the per-version limits,\n * and stored bytes that match each reference.\n */\nexport async function checkArtifactFiles(\n blobStorage: ArtifactBlobStorage,\n files: readonly ArtifactFile[]\n): Promise<void> {\n if (files.length === 0) throw invalidArtifact(\"A version needs at least one file.\")\n if (files.length > ARTIFACT_LIMITS.maxFiles) {\n throw invalidArtifact(\n `A version holds at most ${ARTIFACT_LIMITS.maxFiles} files; this one has ${files.length}.`\n )\n }\n\n const paths = new Set<string>()\n let totalBytes = 0\n for (const entry of files) {\n if (!isArtifactPath(entry.path)) {\n throw invalidArtifact(\n `'${entry.path}' is not a usable file path: use a relative path with / separators, no . or .. segments, and at most ${ARTIFACT_LIMITS.maxPathLength} characters.`\n )\n }\n if (paths.has(entry.path)) throw invalidArtifact(`'${entry.path}' appears twice.`)\n paths.add(entry.path)\n if (!isValidFileRef(entry.file)) {\n throw invalidArtifact(`'${entry.path}' does not have a valid file reference.`)\n }\n if (entry.file.sizeBytes > ARTIFACT_LIMITS.maxFileBytes) {\n throw invalidArtifact(\n `'${entry.path}' is ${entry.file.sizeBytes} bytes; a file may be at most ${ARTIFACT_LIMITS.maxFileBytes}.`\n )\n }\n totalBytes += entry.file.sizeBytes\n }\n if (totalBytes > ARTIFACT_LIMITS.maxVersionBytes) {\n throw invalidArtifact(\n `The files total ${totalBytes} bytes; a version may hold at most ${ARTIFACT_LIMITS.maxVersionBytes}.`\n )\n }\n\n const stored = await Promise.all(files.map((entry) => statFileRef(blobStorage, entry.file)))\n const missing = files.find((_, index) => !stored[index])\n if (missing) throw invalidArtifact(`'${missing.path}' refers to a file that is not stored.`)\n}\n\n/** The file at `path`, read as UTF-8 text when it is no larger than `maxBytes`. */\nexport async function readArtifactText(\n blobStorage: ArtifactBlobStorage,\n file: ArtifactFile,\n maxBytes: number\n): Promise<string> {\n if (file.file.sizeBytes > maxBytes) {\n throw invalidArtifact(\n `'${file.path}' is ${file.file.sizeBytes} bytes; it may be at most ${maxBytes}.`\n )\n }\n const text = await new Response(await blobStorage.open(file.file.blobId)).text()\n // A byte-order mark is not part of the text.\n return text.charCodeAt(0) === 0xfeff ? text.slice(1) : text\n}\n\n/** Relative, `/`-separated, no empty, `.`, or `..` segment, no backslash or control character. */\nexport function isArtifactPath(path: string): boolean {\n return (\n typeof path === \"string\" &&\n path.length > 0 &&\n path.length <= ARTIFACT_LIMITS.maxPathLength &&\n !path.startsWith(\"/\") &&\n !path.includes(\"\\\\\") &&\n !/[\\u0000-\\u001f\\u007f]/.test(path) &&\n path.split(\"/\").every((segment) => segment.length > 0 && segment !== \".\" && segment !== \"..\")\n )\n}\n\nexport function invalidArtifact(message: string): ArtifactRequestError {\n return new ArtifactRequestError(\"invalid_artifact\", `[Sixb] ${message}`)\n}\n",
|
|
8
|
+
"import type { ArtifactFile } from \"../../../storage/artifacts/types\"\nimport { isArtifactAddress, parseArtifactAddress } from \"../../address\"\nimport { decodeHtmlEntities } from \"../../html\"\nimport { ARTIFACT_LIMITS } from \"../../limits\"\nimport type { SlidesOutline } from \"../../outline\"\nimport { type ArtifactBlobStorage, invalidArtifact, readArtifactText } from \"../files\"\nimport type { FoundReference } from \"../references\"\n\n/** The file a deck renders from. */\nexport const SLIDES_ENTRY = \"index.html\"\n\n/** Where the frame serves the kit and the runtime, beside a deck's own files. */\nexport const FRAME_ASSET_PREFIX = \"__sixb/\"\n\n/**\n * Reads a deck: `index.html` with one `<section class=\"slide\">` per 1280×720 slide, and the files\n * it loads beside it. Each slide's first heading becomes its title in the outline. The `artifact:`\n * addresses it uses are returned with the slide each is on, to resolve: links (`<a href>`), files\n * it shows from other artifacts (`<img src>`), and anything else it shows (`<sixb-embed src>`), a\n * chart, a range, a section, or a slide, which the app draws over the frame.\n */\nexport async function validateSlides(\n blobStorage: ArtifactBlobStorage,\n files: readonly ArtifactFile[]\n): Promise<{\n readonly entry: string\n readonly outline: SlidesOutline\n readonly references: readonly FoundReference[]\n}> {\n const entry = files.find((file) => file.path === SLIDES_ENTRY)\n if (!entry) {\n throw invalidArtifact(\n `A deck needs '${SLIDES_ENTRY}' with one <section class=\"slide\"> per slide.`\n )\n }\n const reserved = files.find((file) => file.path.startsWith(FRAME_ASSET_PREFIX))\n if (reserved) {\n throw invalidArtifact(\n `'${reserved.path}' is under ${FRAME_ASSET_PREFIX}, where Sixb serves the deck's kit and runtime: move it.`\n )\n }\n const html = await readArtifactText(blobStorage, entry, ARTIFACT_LIMITS.maxDeckBytes)\n\n const slides: { title: string; heading: boolean }[] = []\n const references: FoundReference[] = []\n let refused: string | undefined\n const at = () => String(Math.max(1, slides.length))\n // The heading being read, if it is the first of the current slide.\n let reading: { title: string; heading: boolean } | null = null\n new HTMLRewriter()\n .on(\"section\", {\n element(element) {\n const classes = (element.getAttribute(\"class\") ?? \"\").split(/\\s+/)\n if (classes.includes(\"slide\")) slides.push({ title: \"\", heading: false })\n },\n })\n .on(\"h1, h2, h3\", {\n element(element) {\n const slide = slides.at(-1)\n if (!slide || slide.heading) return\n slide.heading = true\n reading = slide\n element.onEndTag(() => {\n reading = null\n })\n },\n text(chunk) {\n if (reading) reading.title += chunk.text\n },\n })\n .on(\"a[href]\", {\n element(element) {\n const href = decodeHtmlEntities(element.getAttribute(\"href\") ?? \"\")\n if (isArtifactAddress(href)) {\n references.push({ address: href.trim(), as: \"link\", at: at() })\n }\n },\n })\n .on(\"img[src]\", {\n element(element) {\n const source = decodeHtmlEntities(element.getAttribute(\"src\") ?? \"\").trim()\n if (!isArtifactAddress(source)) return\n if (!parseArtifactAddress(source)?.path) {\n refused ??= `An <img> shows a file from another artifact, and '${source}' names none: show a chart, a range, a section, or a slide with <sixb-embed src=\"${source}\"></sixb-embed>.`\n return\n }\n references.push({ address: source, as: \"embed\", at: at() })\n },\n })\n .on(\"sixb-embed\", {\n element(element) {\n const source = decodeHtmlEntities(element.getAttribute(\"src\") ?? \"\").trim()\n if (!isArtifactAddress(source)) {\n refused ??= `<sixb-embed> shows another artifact: give it src=\"artifact:…\", such as artifact:art_k3m9q2x7tp#chart=revenue.`\n return\n }\n references.push({ address: source, as: \"embed\", at: at() })\n },\n })\n .on(\"iframe[src], object[data], embed[src]\", {\n element(element) {\n const source = decodeHtmlEntities(\n element.getAttribute(\"src\") ?? element.getAttribute(\"data\") ?? \"\"\n ).trim()\n if (isArtifactAddress(source)) {\n refused ??= `${SLIDES_ENTRY} frames '${source}': show another artifact with <sixb-embed src=\"${source}\"></sixb-embed>, or a file of one with <img>.`\n }\n },\n })\n .transform(html)\n\n if (refused) throw invalidArtifact(refused)\n if (slides.length === 0) {\n throw invalidArtifact(\n `${SLIDES_ENTRY} has no slides: put each slide in a <section class=\"slide\">.`\n )\n }\n if (slides.length > ARTIFACT_LIMITS.maxSlides) {\n throw invalidArtifact(\n `A deck holds at most ${ARTIFACT_LIMITS.maxSlides} slides; this one has ${slides.length}.`\n )\n }\n return {\n entry: SLIDES_ENTRY,\n outline: {\n kind: \"slides\",\n slides: slides.map(({ title }) => {\n const plain = decodeHtmlEntities(title).replace(/\\s+/g, \" \").trim()\n return plain ? { title: plain } : {}\n }),\n },\n references,\n }\n}\n"
|
|
9
|
+
],
|
|
10
|
+
"mappings": "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",
|
|
11
|
+
"debugId": "ED695A8232578D1464756E2164756E21",
|
|
12
|
+
"names": []
|
|
13
|
+
}
|
|
@@ -13,31 +13,31 @@ import {
|
|
|
13
13
|
ShareDefinitionError2,
|
|
14
14
|
isShareDefinition,
|
|
15
15
|
snapshotShareDefinition
|
|
16
|
-
} from "./chunk-
|
|
16
|
+
} from "./chunk-nn5xnx3s.js";
|
|
17
17
|
import {
|
|
18
18
|
isProjectionDefinition2
|
|
19
|
-
} from "./chunk-
|
|
19
|
+
} from "./chunk-6vb4st8k.js";
|
|
20
20
|
import {
|
|
21
21
|
isMarkingDefinition,
|
|
22
22
|
isGroupDefinition,
|
|
23
23
|
isMembershipPolicyDefinition,
|
|
24
24
|
isRoleDefinition
|
|
25
|
-
} from "./chunk-
|
|
25
|
+
} from "./chunk-f4pamkt9.js";
|
|
26
26
|
import {
|
|
27
27
|
isWorkflowDefinition2
|
|
28
|
-
} from "./chunk-
|
|
28
|
+
} from "./chunk-akzryx9h.js";
|
|
29
29
|
import {
|
|
30
30
|
isDatasetDefinition2
|
|
31
|
-
} from "./chunk-
|
|
31
|
+
} from "./chunk-q5e5tv4b.js";
|
|
32
32
|
import {
|
|
33
33
|
isPipelineDefinition2
|
|
34
|
-
} from "./chunk-
|
|
34
|
+
} from "./chunk-5vems3nx.js";
|
|
35
35
|
import {
|
|
36
36
|
isSyncDefinition2
|
|
37
|
-
} from "./chunk-
|
|
37
|
+
} from "./chunk-d7dnxdep.js";
|
|
38
38
|
import {
|
|
39
39
|
compileShareAccessPlan
|
|
40
|
-
} from "./chunk-
|
|
40
|
+
} from "./chunk-z58tm0hm.js";
|
|
41
41
|
import {
|
|
42
42
|
RuntimeError2
|
|
43
43
|
} from "./chunk-m4ehq95f.js";
|
|
@@ -3,14 +3,14 @@ import {
|
|
|
3
3
|
createSixbError2,
|
|
4
4
|
toSixbFailure2,
|
|
5
5
|
serializeSixbFailure2
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-dvd2fp9q.js";
|
|
7
7
|
import {
|
|
8
8
|
ONTOLOGY_OUTBOX_FAILURE_CODES2
|
|
9
9
|
} from "./chunk-d62kjtbg.js";
|
|
10
10
|
import {
|
|
11
11
|
SixbErrorReporter2,
|
|
12
12
|
reportEventDeliveryFailure3
|
|
13
|
-
} from "./chunk-
|
|
13
|
+
} from "./chunk-xvsc5m8n.js";
|
|
14
14
|
import {
|
|
15
15
|
getInvalidJsonValueReason2
|
|
16
16
|
} from "./chunk-wy0qdqfm.js";
|
|
@@ -1,15 +1,14 @@
|
|
|
1
1
|
// @bun
|
|
2
|
+
import {
|
|
3
|
+
isDatasetDefinition2
|
|
4
|
+
} from "./chunk-q5e5tv4b.js";
|
|
2
5
|
import {
|
|
3
6
|
isScheduleReference2,
|
|
4
7
|
isScheduleDefinition2
|
|
5
8
|
} from "./chunk-nq6gpjt7.js";
|
|
6
|
-
import {
|
|
7
|
-
isDatasetDefinition2
|
|
8
|
-
} from "./chunk-rz53yb4v.js";
|
|
9
9
|
import {
|
|
10
10
|
PipelineError2
|
|
11
|
-
} from "./chunk-
|
|
12
|
-
|
|
11
|
+
} from "./chunk-hke9aeen.js";
|
|
13
12
|
// src/lake-storage/sql-transforms.ts
|
|
14
13
|
var SQL_DIALECT = {
|
|
15
14
|
duckdb: "duckdb"
|
|
@@ -161,4 +160,4 @@ function isRecord(value) {
|
|
|
161
160
|
}
|
|
162
161
|
export { definePipelineStep2, definePipeline2, isPipelineDefinition2, isPipelineStepDefinition2 };
|
|
163
162
|
|
|
164
|
-
//# debugId=
|
|
163
|
+
//# debugId=483E90D721E5117C64756E2164756E21
|
|
@@ -2,11 +2,11 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../src/lake-storage/sql-transforms.ts", "../src/pipelines/builders.ts", "../src/pipelines/types.ts"],
|
|
4
4
|
"sourcesContent": [
|
|
5
|
-
"import type { DatasetDefinition } from \"../datasets\"\nimport type {\n DatasetProducer,\n DatasetRow,\n DatasetWriteCommitResult,\n DatasetWriteMode,\n LakeStorage,\n} from \"./types\"\n\nexport const SQL_DIALECT = {\n duckdb: \"duckdb\",\n} as const\n\nexport const SQL_DIALECTS = Object.values(SQL_DIALECT)\nexport type SqlDialect = (typeof SQL_DIALECT)[keyof typeof SQL_DIALECT]\n\nexport interface LakeStorageWithSql<TSqlDialect extends SqlDialect = SqlDialect>\n extends LakeStorage {\n readonly sql: LakeSqlExecutor<TSqlDialect>\n}\n\nexport interface LakeSqlExecutor<TSqlDialect extends SqlDialect = SqlDialect> {\n readonly dialect: TSqlDialect\n readonly capabilities: LakeSqlTransformCapabilities\n\n preview(input: PreviewSqlTransformInput<TSqlDialect>): AsyncIterable<DatasetRow>\n execute(input: ExecuteSqlTransformInput<TSqlDialect>): Promise<DatasetWriteCommitResult>\n}\n\nexport interface LakeSqlTransformCapabilities {\n readonly preview: boolean\n readonly supportsAppend: boolean\n readonly supportsSnapshot: boolean\n}\n\nexport interface ExecuteSqlTransformInput<TSqlDialect extends SqlDialect = SqlDialect> {\n readonly sources: Readonly<Record<string, SqlTransformSource>>\n readonly sql: SqlTransformBody<TSqlDialect>\n readonly target: DatasetDefinition\n readonly mode: DatasetWriteMode\n readonly producer?: DatasetProducer\n /** Atomic target version guard; null requires that no version exists. */\n readonly expectedLatestVersionId?: string | null\n readonly commitMessage?: string\n}\n\nexport interface PreviewSqlTransformInput<TSqlDialect extends SqlDialect = SqlDialect> {\n readonly sources: Readonly<Record<string, SqlTransformSource>>\n readonly sql: SqlTransformBody<TSqlDialect>\n readonly limit?: number\n}\n\nexport interface SqlTransformSource {\n readonly dataset: DatasetDefinition\n readonly versionId?: string\n}\n\nexport interface SqlTransformRelation {\n toString(): string\n}\n\nexport type SqlTransformBody<_TSqlDialect extends SqlDialect = SqlDialect> = (\n relations: Readonly<Record<string, SqlTransformRelation>>\n) => string\n\nexport function isSqlDialect(value: unknown): value is SqlDialect {\n return typeof value === \"string\" && SQL_DIALECTS.includes(value as SqlDialect)\n}\n",
|
|
5
|
+
"import type { DatasetDefinition } from \"../datasets\"\nimport type {\n DatasetProducer,\n DatasetRow,\n DatasetWriteCommitResult,\n DatasetWriteMode,\n LakeStorage,\n} from \"./types\"\n\nexport const SQL_DIALECT = {\n duckdb: \"duckdb\",\n} as const\n\nexport const SQL_DIALECTS = Object.values(SQL_DIALECT)\nexport type SqlDialect = (typeof SQL_DIALECT)[keyof typeof SQL_DIALECT]\n\nexport interface LakeStorageWithSql<TSqlDialect extends SqlDialect = SqlDialect>\n extends LakeStorage {\n readonly sql: LakeSqlExecutor<TSqlDialect>\n}\n\nexport interface LakeSqlExecutor<TSqlDialect extends SqlDialect = SqlDialect> {\n readonly dialect: TSqlDialect\n readonly capabilities: LakeSqlTransformCapabilities\n\n preview(input: PreviewSqlTransformInput<TSqlDialect>): AsyncIterable<DatasetRow>\n /**\n * Records the resolved lineage of the executed SQL on the committed version, as the writer of a\n * run step passes `BeginDatasetWriteInput.lineage`: the provider analyzes the SQL it executes\n * (as `analyze`), maps that lineage through the source versions it read with\n * `resolveStepLineage`, and stores what `lineageAtCommit` returns for it, which merges in what an\n * append keeps of its parent. SQL it cannot analyze exactly but that reads only its sources\n * depends on every column it reads, as a run step does. Otherwise it passes no lineage, and the\n * version is classified with every marking.\n */\n execute(input: ExecuteSqlTransformInput<TSqlDialect>): Promise<DatasetWriteCommitResult>\n /**\n * Column lineage of a transform, bound against the sources' column schemas without reading any\n * data. A provider without it cannot run SQL over marked columns.\n */\n analyze?(input: AnalyzeSqlTransformInput<TSqlDialect>): Promise<SqlTransformAnalysis>\n}\n\nexport interface LakeSqlTransformCapabilities {\n readonly preview: boolean\n readonly supportsAppend: boolean\n readonly supportsSnapshot: boolean\n}\n\nexport interface ExecuteSqlTransformInput<TSqlDialect extends SqlDialect = SqlDialect> {\n /** The source versions read. The lineage the provider records is resolved through them. */\n readonly sources: Readonly<Record<string, SqlTransformSource>>\n readonly sql: SqlTransformBody<TSqlDialect>\n readonly target: DatasetDefinition\n readonly mode: DatasetWriteMode\n readonly producer?: DatasetProducer\n /** Atomic target version guard; null requires that no version exists. */\n readonly expectedLatestVersionId?: string | null\n readonly commitMessage?: string\n}\n\nexport interface PreviewSqlTransformInput<TSqlDialect extends SqlDialect = SqlDialect> {\n readonly sources: Readonly<Record<string, SqlTransformSource>>\n readonly sql: SqlTransformBody<TSqlDialect>\n readonly limit?: number\n}\n\nexport interface SqlTransformSource {\n readonly dataset: DatasetDefinition\n readonly versionId?: string\n /** Columns the transform may read, in order. Every column of the dataset when omitted. */\n readonly columns?: readonly string[]\n}\n\nexport interface AnalyzeSqlTransformInput<TSqlDialect extends SqlDialect = SqlDialect> {\n readonly sources: Readonly<Record<string, AnalyzeSqlTransformSource>>\n readonly sql: SqlTransformBody<TSqlDialect>\n}\n\nexport interface AnalyzeSqlTransformSource {\n readonly dataset: DatasetDefinition\n /** Columns the transform may read, in order. Every column of the dataset when omitted. */\n readonly columns?: readonly string[]\n}\n\nexport type SqlTransformAnalysis =\n | { readonly supported: true; readonly lineage: SqlTransformLineage }\n /** The provider could not analyze this SQL exactly; `reason` names the construct. */\n | { readonly supported: false; readonly reason: string }\n\n/** Lineage of one transform, by source name. Same semantics as `DatasetColumnLineage`. */\nexport interface SqlTransformLineage {\n readonly rows: readonly SqlTransformColumnRef[]\n readonly columns: Readonly<Record<string, readonly SqlTransformColumnRef[]>>\n}\n\nexport interface SqlTransformColumnRef {\n /** Source name, as passed in `sources`. */\n readonly source: string\n readonly column: string\n}\n\nexport interface SqlTransformRelation {\n toString(): string\n}\n\nexport type SqlTransformBody<_TSqlDialect extends SqlDialect = SqlDialect> = (\n relations: Readonly<Record<string, SqlTransformRelation>>\n) => string\n\nexport function isSqlDialect(value: unknown): value is SqlDialect {\n return typeof value === \"string\" && SQL_DIALECTS.includes(value as SqlDialect)\n}\n",
|
|
6
6
|
"import type { DatasetDefinition } from \"../datasets\"\nimport type { DatasetWriteMode } from \"../lake-storage\"\nimport { SQL_DIALECT } from \"../lake-storage/sql-transforms\"\nimport type { ScheduleDefinition, ScheduleReference } from \"../schedules\"\nimport { isScheduleDefinition } from \"../schedules\"\nimport { PipelineError } from \"./errors\"\nimport type {\n PipelineBuilder,\n PipelineDefinition,\n PipelineGraph,\n PipelineStepDefinition,\n PipelineStepExecutorBuilder,\n PipelineStepInputBuilder,\n PipelineStepOutputBuilder,\n PipelineStepOutputOptions,\n PipelineStepRunHandler,\n} from \"./types\"\n\nfunction assertNonEmpty(value: string, field: string): void {\n if (!value.trim()) {\n throw new PipelineError(`Pipeline ${field} must not be empty.`)\n }\n}\n\nfunction assertDataset(dataset: DatasetDefinition, field: string): void {\n assertNonEmpty(dataset.id, field)\n}\n\nfunction assertDatasetWriteMode(mode: DatasetWriteMode): void {\n if (mode !== \"snapshot\" && mode !== \"append\") {\n throw new PipelineError(`Pipeline step output mode '${mode}' is not supported.`)\n }\n}\n\nfunction assertInputs(inputs: Readonly<Record<string, DatasetDefinition>>): void {\n const entries = Object.entries(inputs)\n if (entries.length === 0) {\n throw new PipelineError(\"Pipeline step input dataset must contain at least one entry.\")\n }\n\n for (const [name, dataset] of entries) {\n assertNonEmpty(name, \"step input name\")\n assertDataset(dataset, \"step input dataset\")\n }\n}\n\nfunction scheduleReference(schedule: ScheduleDefinition): ScheduleReference {\n if (!isScheduleDefinition(schedule)) {\n throw new PipelineError(\"Pipeline .when(...) only accepts schedules.\")\n }\n return { type: \"schedule\", scheduleId: schedule.id }\n}\n\nfunction createPipelineBuilder<TId extends string>(\n definition: PipelineDefinition<TId>\n): PipelineBuilder<TId> {\n return {\n ...definition,\n when(schedule: ScheduleDefinition): PipelineBuilder<TId> {\n return createPipelineBuilder({\n ...definition,\n triggers: [...definition.triggers, scheduleReference(schedule)],\n })\n },\n // biome-ignore lint/suspicious/noThenProperty: Pipeline composition intentionally uses `.then(step)`.\n then(step: PipelineStepDefinition): PipelineBuilder<TId> {\n const graph: PipelineGraph = {\n kind: \"sequence\",\n nodes: [...definition.graph.nodes, { kind: \"step\", step }],\n }\n\n return createPipelineBuilder({\n ...definition,\n graph,\n })\n },\n }\n}\n\n/**\n * Define one dataset transform step.\n *\n * The returned definition is inert until referenced by a pipeline definition.\n */\nexport function definePipelineStep<TId extends string>(id: TId): PipelineStepInputBuilder<TId> {\n assertNonEmpty(id, \"step id\")\n\n return {\n inputs<TInputs extends Record<string, DatasetDefinition>>(\n inputs: TInputs\n ): PipelineStepOutputBuilder<TId, TInputs> {\n assertInputs(inputs)\n\n return {\n output(\n dataset: DatasetDefinition,\n options: PipelineStepOutputOptions = {}\n ): PipelineStepExecutorBuilder<TId, TInputs> {\n assertDataset(dataset, \"step output dataset\")\n const mode = options.mode ?? \"snapshot\"\n assertDatasetWriteMode(mode)\n\n return {\n run(handler): PipelineStepDefinition<TId, TInputs> {\n return {\n kind: \"pipeline.step\",\n id,\n inputs,\n output: dataset,\n mode,\n executor: {\n kind: \"run\",\n handler: handler as unknown as PipelineStepRunHandler,\n },\n }\n },\n sql(sql): PipelineStepDefinition<TId, TInputs> {\n return {\n kind: \"pipeline.step\",\n id,\n inputs,\n output: dataset,\n mode,\n executor: {\n kind: \"sql\",\n dialect: SQL_DIALECT.duckdb,\n sql,\n },\n }\n },\n }\n },\n }\n },\n }\n}\n\n/**\n * Define a sequential pipeline that composes dataset transform steps.\n *\n * The returned definition is inert and safe to export from `pipelines/` modules.\n */\nexport function definePipeline<TId extends string>(id: TId): PipelineBuilder<TId> {\n assertNonEmpty(id, \"id\")\n\n return createPipelineBuilder({\n kind: \"pipeline\",\n id,\n triggers: [],\n graph: {\n kind: \"sequence\",\n nodes: [],\n },\n })\n}\n",
|
|
7
7
|
"import type { DatasetDefinition } from \"../datasets\"\nimport { isDatasetDefinition } from \"../datasets\"\nimport type {\n DatasetRow,\n DatasetVersion,\n DatasetWriteMode,\n ReadDatasetRowsInput,\n} from \"../lake-storage\"\nimport {\n isSqlDialect,\n type SqlDialect,\n type SqlTransformBody,\n} from \"../lake-storage/sql-transforms\"\nimport type { Logger } from \"../logging\"\nimport type { ScheduleDefinition, ScheduleReference } from \"../schedules\"\nimport { isScheduleReference } from \"../schedules\"\n\n// ── Step execution ─────────────────────────────────────────\n\nexport type PipelineStepExecutor =\n | {\n readonly kind: \"sql\"\n readonly dialect: SqlDialect\n readonly sql: SqlTransformBody<SqlDialect>\n }\n | {\n readonly kind: \"run\"\n readonly handler: PipelineStepRunHandler\n }\n\nexport interface PipelineStepInput {\n readonly dataset: DatasetDefinition\n readonly version: DatasetVersion\n readRows(input?: Omit<ReadDatasetRowsInput, \"datasetId\" | \"versionId\">): AsyncIterable<DatasetRow>\n}\n\nexport interface PipelineStepOutput {\n writeRows(rows: Iterable<DatasetRow> | AsyncIterable<DatasetRow>): Promise<void>\n}\n\nexport interface PipelineStepRunContext<\n TInputs extends Record<string, DatasetDefinition> = Record<string, DatasetDefinition>,\n> {\n readonly projectId: string\n readonly pipelineId: string\n readonly stepId: string\n readonly runId: string\n readonly signal: AbortSignal\n readonly inputs: { readonly [K in keyof TInputs]: PipelineStepInput }\n readonly output: PipelineStepOutput\n readonly logger: Logger\n}\n\nexport type PipelineStepRunHandler<\n TInputs extends Record<string, DatasetDefinition> = Record<string, DatasetDefinition>,\n> = (ctx: PipelineStepRunContext<TInputs>) => Promise<void> | void\n\n// ── Step definition ────────────────────────────────────────\n\nexport interface PipelineStepDefinition<\n TId extends string = string,\n TInputs extends Record<string, DatasetDefinition> = Record<string, DatasetDefinition>,\n> {\n readonly kind: \"pipeline.step\"\n readonly id: TId\n readonly inputs: Readonly<TInputs>\n readonly output: DatasetDefinition\n readonly mode: DatasetWriteMode\n readonly executor: PipelineStepExecutor\n}\n\n// ── Pipeline definition ────────────────────────────────────\n\nexport interface PipelineStepNode {\n readonly kind: \"step\"\n readonly step: PipelineStepDefinition\n}\n\nexport interface PipelineSequenceGraph {\n readonly kind: \"sequence\"\n readonly nodes: readonly PipelineStepNode[]\n}\n\nexport type PipelineGraph = PipelineSequenceGraph\n\n/**\n * Inert pipeline definition registered with Sixb.\n *\n * V1 executes a single sequential graph. The graph shape leaves room for\n * parallel nodes later without changing step definitions.\n */\nexport interface PipelineDefinition<TId extends string = string> {\n readonly kind: \"pipeline\"\n readonly id: TId\n readonly triggers: readonly ScheduleReference[]\n readonly graph: PipelineGraph\n}\n\n// ── Builder interfaces ─────────────────────────────────────\n\nexport interface PipelineStepInputBuilder<TId extends string = string> {\n inputs<TInputs extends Record<string, DatasetDefinition>>(\n inputs: TInputs\n ): PipelineStepOutputBuilder<TId, TInputs>\n}\n\nexport interface PipelineStepOutputBuilder<\n TId extends string = string,\n TInputs extends Record<string, DatasetDefinition> = Record<string, DatasetDefinition>,\n> {\n output(\n dataset: DatasetDefinition,\n options?: PipelineStepOutputOptions\n ): PipelineStepExecutorBuilder<TId, TInputs>\n}\n\nexport interface PipelineStepExecutorBuilder<\n TId extends string = string,\n TInputs extends Record<string, DatasetDefinition> = Record<string, DatasetDefinition>,\n> {\n run(handler: PipelineStepRunHandler<TInputs>): PipelineStepDefinition<TId, TInputs>\n sql(sql: SqlTransformBody<SqlDialect>): PipelineStepDefinition<TId, TInputs>\n}\n\nexport interface PipelineStepOutputOptions {\n readonly mode?: DatasetWriteMode\n}\n\nexport interface PipelineBuilder<TId extends string = string> extends PipelineDefinition<TId> {\n when(schedule: ScheduleDefinition): PipelineBuilder<TId>\n then(step: PipelineStepDefinition): PipelineBuilder<TId>\n}\n\n// ── Type guards ────────────────────────────────────────────\n\n/** Runtime type guard for values discovered from `pipelines/` modules. */\nexport function isPipelineDefinition(value: unknown): value is PipelineDefinition {\n if (!isRecord(value)) return false\n return (\n value.kind === \"pipeline\" &&\n typeof value.id === \"string\" &&\n Array.isArray(value.triggers) &&\n value.triggers.every(isScheduleReference) &&\n isPipelineGraph(value.graph)\n )\n}\n\nexport function isPipelineStepDefinition(value: unknown): value is PipelineStepDefinition {\n return (\n isRecord(value) &&\n value.kind === \"pipeline.step\" &&\n typeof value.id === \"string\" &&\n isInputsRecord(value.inputs) &&\n isDatasetDefinition(value.output) &&\n isDatasetWriteMode(value.mode) &&\n isPipelineStepExecutor(value.executor)\n )\n}\n\nfunction isPipelineGraph(value: unknown): value is PipelineGraph {\n return (\n isRecord(value) &&\n value.kind === \"sequence\" &&\n Array.isArray(value.nodes) &&\n value.nodes.every(\n (node) => isRecord(node) && node.kind === \"step\" && isPipelineStepDefinition(node.step)\n )\n )\n}\n\nfunction isPipelineStepExecutor(value: unknown): value is PipelineStepExecutor {\n if (!isRecord(value)) return false\n\n switch (value.kind) {\n case \"sql\":\n return isSqlDialect(value.dialect) && typeof value.sql === \"function\"\n case \"run\":\n return typeof value.handler === \"function\"\n default:\n return false\n }\n}\n\nfunction isInputsRecord(value: unknown): value is Readonly<Record<string, DatasetDefinition>> {\n return (\n isRecord(value) &&\n Object.entries(value).every(\n ([key, dataset]) => key.trim().length > 0 && isDatasetDefinition(dataset)\n )\n )\n}\n\nfunction isDatasetWriteMode(value: unknown): value is DatasetWriteMode {\n return value === \"snapshot\" || value === \"append\"\n}\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n return typeof value === \"object\" && value !== null && !Array.isArray(value)\n}\n"
|
|
8
8
|
],
|
|
9
|
-
"mappings": "
|
|
10
|
-
"debugId": "
|
|
9
|
+
"mappings": "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",
|
|
10
|
+
"debugId": "483E90D721E5117C64756E2164756E21",
|
|
11
11
|
"names": []
|
|
12
12
|
}
|