@sixb/core 0.1.20 → 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/index.js +10 -10
- package/dist/authorization/decision.d.ts +2 -0
- package/dist/authorization/decision.d.ts.map +1 -1
- package/dist/authorization/grant-kinds.d.ts +2 -2
- package/dist/authorization/grant-kinds.d.ts.map +1 -1
- package/dist/authorization/index.js +6 -6
- 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 +53 -47
- package/dist/bootstrap/index.js.map +2 -2
- package/dist/{chunk-xfs8x8m9.js → chunk-0bphap9y.js} +5 -5
- package/dist/{chunk-1zq2p6g0.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-t7x8dmn0.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-ren4kg2j.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-x6m907x7.js → chunk-5vems3nx.js} +5 -6
- package/dist/{chunk-x6m907x7.js.map → chunk-5vems3nx.js.map} +3 -3
- package/dist/{chunk-0rbyz4qy.js → chunk-61y5xs4p.js} +560 -164
- package/dist/{chunk-0rbyz4qy.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-d0bqz29d.js → chunk-6vb4st8k.js} +8 -4
- package/dist/{chunk-d0bqz29d.js.map → chunk-6vb4st8k.js.map} +3 -3
- package/dist/chunk-7q8t23v4.js +467 -0
- package/dist/chunk-7q8t23v4.js.map +14 -0
- package/dist/{chunk-5j58wjct.js → chunk-858emn8m.js} +6 -6
- 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-n33z5bjw.js → chunk-918wwnaa.js} +490 -24
- package/dist/{chunk-n33z5bjw.js.map → chunk-918wwnaa.js.map} +13 -11
- package/dist/{chunk-rrzt8jdy.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-6c6sn0bh.js → chunk-akzryx9h.js} +335 -1167
- package/dist/{chunk-6c6sn0bh.js.map → chunk-akzryx9h.js.map} +18 -24
- package/dist/chunk-arns890k.js +10 -0
- package/dist/chunk-arns890k.js.map +10 -0
- package/dist/{chunk-hjzdd750.js → chunk-bk9svbcq.js} +11 -11
- package/dist/{chunk-hjzdd750.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-6p49a5cq.js → chunk-c1rxbz5y.js} +3 -3
- package/dist/chunk-cfj9dfbb.js +288 -0
- package/dist/chunk-cfj9dfbb.js.map +12 -0
- package/dist/{chunk-bx9q3cwv.js → chunk-cn0fwwhy.js} +7 -7
- package/dist/{chunk-bx9q3cwv.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-9w055r5b.js → chunk-d09e3rax.js} +1 -1
- package/dist/chunk-d5rjr8c0.js +176 -0
- package/dist/chunk-d5rjr8c0.js.map +12 -0
- package/dist/{chunk-dk8tkk5f.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-gsjm1wms.js → chunk-dhdha526.js} +8 -2
- 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-way52z4h.js → chunk-e17zdm62.js} +6 -12
- package/dist/{chunk-way52z4h.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-es1gxsbf.js → chunk-f4pamkt9.js} +8 -10
- 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-d09tj99x.js → chunk-g257jwnc.js} +10 -4
- package/dist/{chunk-d09tj99x.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-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-k6q3n2sc.js → chunk-k43ct2ke.js} +20 -11
- package/dist/chunk-k43ct2ke.js.map +12 -0
- package/dist/{chunk-3t2hgbgd.js → chunk-kge7k6ey.js} +40 -8
- package/dist/chunk-kge7k6ey.js.map +15 -0
- package/dist/{chunk-tg2cw67r.js → chunk-ky3j490c.js} +2 -2
- package/dist/chunk-mjddfa7k.js +129 -0
- package/dist/chunk-mjddfa7k.js.map +12 -0
- package/dist/{chunk-vpq4shxz.js → chunk-nn5xnx3s.js} +45 -10
- package/dist/{chunk-vpq4shxz.js.map → chunk-nn5xnx3s.js.map} +7 -6
- package/dist/{chunk-0yh890a4.js → chunk-q5e5tv4b.js} +35 -7
- package/dist/{chunk-0yh890a4.js.map → chunk-q5e5tv4b.js.map} +3 -3
- package/dist/{chunk-vyf9kfqf.js → chunk-q7gn29y3.js} +1 -1
- package/dist/{chunk-yevzdx4y.js → chunk-rmakanzx.js} +10 -12
- package/dist/{chunk-yevzdx4y.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-9dmt152s.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-z4m0yz8c.js → chunk-y5tah2kf.js} +1 -1
- package/dist/{chunk-fkgc1wt8.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/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/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 +48 -41
- 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 +20 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +112 -97
- 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 +25 -24
- 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/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/dataset-version-markings.d.ts +47 -0
- package/dist/security/dataset-version-markings.d.ts.map +1 -0
- package/dist/security/grants.d.ts +3 -2
- package/dist/security/grants.d.ts.map +1 -1
- package/dist/security/index.d.ts +2 -1
- 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/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.js +2 -2
- package/dist/security/redactions.d.ts +4 -1
- package/dist/security/redactions.d.ts.map +1 -1
- package/dist/security/types.d.ts +22 -2
- package/dist/security/types.d.ts.map +1 -1
- package/dist/security/validation.d.ts.map +1 -1
- package/dist/shares/internal.js +24 -23
- 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 +9 -8
- 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/sessions.d.ts +2 -1
- package/dist/storage/auth/in-memory/sessions.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 +19 -0
- 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 +11 -11
- 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 +54 -53
- 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 +13 -12
- 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 +4488 -3137
- 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 +27 -26
- 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 +25 -1
- 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/authorization/decision.ts +5 -0
- package/src/authorization/grant-kinds.ts +14 -2
- 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/errors/internal.ts +1 -0
- package/src/events/execution.ts +134 -21
- 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 +71 -3
- 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/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/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/dataset-version-markings.ts +163 -0
- package/src/security/grants.ts +39 -4
- package/src/security/index.ts +3 -0
- 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/pipeline-markings.ts +175 -0
- package/src/security/project.ts +8 -0
- package/src/security/projection-markings.ts +421 -0
- package/src/security/redactions.ts +7 -2
- package/src/security/types.ts +20 -2
- package/src/security/validation.ts +11 -4
- 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 +9 -16
- 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/sessions.ts +21 -0
- package/src/storage/auth/index.ts +2 -0
- package/src/storage/auth/types.ts +18 -0
- 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 +47 -0
- package/src/testing/execution-storage-contract.ts +147 -1
- 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/chunk-1k89ecfr.js +0 -85
- package/dist/chunk-1k89ecfr.js.map +0 -10
- package/dist/chunk-3t2hgbgd.js.map +0 -15
- package/dist/chunk-4vyr1j8f.js +0 -128
- package/dist/chunk-4vyr1j8f.js.map +0 -11
- package/dist/chunk-9gyp8hg1.js +0 -363
- package/dist/chunk-9gyp8hg1.js.map +0 -14
- package/dist/chunk-es1gxsbf.js.map +0 -13
- package/dist/chunk-gsjm1wms.js.map +0 -10
- package/dist/chunk-hkc3jct7.js.map +0 -10
- package/dist/chunk-k6q3n2sc.js.map +0 -12
- package/dist/chunk-rrzt8jdy.js.map +0 -14
- 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-xfs8x8m9.js.map → chunk-0bphap9y.js.map} +0 -0
- /package/dist/{chunk-1zq2p6g0.js.map → chunk-1cc1xaf3.js.map} +0 -0
- /package/dist/{chunk-t7x8dmn0.js.map → chunk-431pyp2c.js.map} +0 -0
- /package/dist/{chunk-c85m1hyj.js.map → chunk-447a5c0p.js.map} +0 -0
- /package/dist/{chunk-ren4kg2j.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-5j58wjct.js.map → chunk-858emn8m.js.map} +0 -0
- /package/dist/{chunk-6p49a5cq.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-9w055r5b.js.map → chunk-d09e3rax.js.map} +0 -0
- /package/dist/{chunk-dk8tkk5f.js.map → chunk-d7dnxdep.js.map} +0 -0
- /package/dist/{chunk-tg2cw67r.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-9dmt152s.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-z4m0yz8c.js.map → chunk-y5tah2kf.js.map} +0 -0
- /package/dist/{chunk-fkgc1wt8.js.map → chunk-z58tm0hm.js.map} +0 -0
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The one CSV reader for sheets, used when a sheet is published and when it is shown, so both read
|
|
3
|
+
* the same cells. RFC 4180: fields split on commas (or tabs); a quoted field may hold separators,
|
|
4
|
+
* line breaks, and doubled quotes; lines end in CRLF, LF, or CR; a leading byte-order mark is not
|
|
5
|
+
* part of the text; blank lines are skipped. Rows come back as they were written, some shorter or
|
|
6
|
+
* longer than the header: the reader of the table decides what that means.
|
|
7
|
+
*/
|
|
8
|
+
export interface CsvTable {
|
|
9
|
+
readonly header: readonly string[]
|
|
10
|
+
readonly rows: readonly (readonly string[])[]
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
export class CsvParseError extends Error {
|
|
14
|
+
constructor(
|
|
15
|
+
message: string,
|
|
16
|
+
/** The line, from 1, where the record that could not be read starts. */
|
|
17
|
+
readonly line: number
|
|
18
|
+
) {
|
|
19
|
+
super(message)
|
|
20
|
+
this.name = "CsvParseError"
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
export function parseCsv(
|
|
25
|
+
text: string,
|
|
26
|
+
options: { readonly delimiter?: "," | "\t" } = {}
|
|
27
|
+
): CsvTable {
|
|
28
|
+
const delimiter = options.delimiter ?? ","
|
|
29
|
+
const source = text.charCodeAt(0) === 0xfeff ? text.slice(1) : text
|
|
30
|
+
const records: string[][] = []
|
|
31
|
+
let record: string[] = []
|
|
32
|
+
let field = ""
|
|
33
|
+
// Inside a quoted field; and whether the current record had one, so `""` alone is a record.
|
|
34
|
+
let quoted = false
|
|
35
|
+
let quotedSeen = false
|
|
36
|
+
let line = 1
|
|
37
|
+
let recordLine = 1
|
|
38
|
+
let index = 0
|
|
39
|
+
|
|
40
|
+
const endField = () => {
|
|
41
|
+
record.push(field)
|
|
42
|
+
field = ""
|
|
43
|
+
}
|
|
44
|
+
const endRecord = () => {
|
|
45
|
+
endField()
|
|
46
|
+
// A line with nothing on it is not a record.
|
|
47
|
+
if (!(record.length === 1 && record[0] === "" && !quotedSeen)) records.push(record)
|
|
48
|
+
record = []
|
|
49
|
+
quotedSeen = false
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
while (index < source.length) {
|
|
53
|
+
const char = source[index]
|
|
54
|
+
if (quoted) {
|
|
55
|
+
if (char === '"') {
|
|
56
|
+
if (source[index + 1] === '"') {
|
|
57
|
+
field += '"'
|
|
58
|
+
index += 2
|
|
59
|
+
continue
|
|
60
|
+
}
|
|
61
|
+
quoted = false
|
|
62
|
+
index += 1
|
|
63
|
+
const next = source[index]
|
|
64
|
+
if (next !== undefined && next !== delimiter && next !== "\n" && next !== "\r") {
|
|
65
|
+
throw new CsvParseError(
|
|
66
|
+
`A quoted field on line ${line} goes on after its closing quote; quote the whole field and double the quotes inside it.`,
|
|
67
|
+
recordLine
|
|
68
|
+
)
|
|
69
|
+
}
|
|
70
|
+
continue
|
|
71
|
+
}
|
|
72
|
+
if (char === "\n" || (char === "\r" && source[index + 1] !== "\n")) line += 1
|
|
73
|
+
field += char
|
|
74
|
+
index += 1
|
|
75
|
+
continue
|
|
76
|
+
}
|
|
77
|
+
if (char === '"' && field === "") {
|
|
78
|
+
quoted = true
|
|
79
|
+
quotedSeen = true
|
|
80
|
+
index += 1
|
|
81
|
+
continue
|
|
82
|
+
}
|
|
83
|
+
if (char === delimiter) {
|
|
84
|
+
endField()
|
|
85
|
+
index += 1
|
|
86
|
+
continue
|
|
87
|
+
}
|
|
88
|
+
if (char === "\r" || char === "\n") {
|
|
89
|
+
endRecord()
|
|
90
|
+
index += char === "\r" && source[index + 1] === "\n" ? 2 : 1
|
|
91
|
+
line += 1
|
|
92
|
+
recordLine = line
|
|
93
|
+
continue
|
|
94
|
+
}
|
|
95
|
+
field += char
|
|
96
|
+
index += 1
|
|
97
|
+
}
|
|
98
|
+
if (quoted) {
|
|
99
|
+
throw new CsvParseError(
|
|
100
|
+
`A quoted field that starts on line ${recordLine} is never closed.`,
|
|
101
|
+
recordLine
|
|
102
|
+
)
|
|
103
|
+
}
|
|
104
|
+
if (field !== "" || record.length > 0 || quotedSeen) endRecord()
|
|
105
|
+
|
|
106
|
+
const [header, ...rows] = records
|
|
107
|
+
return { header: header ?? [], rows }
|
|
108
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
export type ArtifactRequestErrorCode =
|
|
2
|
+
| "artifact_not_found"
|
|
3
|
+
| "artifact_kind_mismatch"
|
|
4
|
+
| "invalid_artifact"
|
|
5
|
+
| "not_allowed"
|
|
6
|
+
| "storage_unavailable"
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Error for an artifact request the caller can correct or must be told about. Callers branch on
|
|
10
|
+
* `code`; the message says what to change.
|
|
11
|
+
*/
|
|
12
|
+
export class ArtifactRequestError extends Error {
|
|
13
|
+
readonly name = "ArtifactRequestError"
|
|
14
|
+
|
|
15
|
+
constructor(
|
|
16
|
+
readonly code: ArtifactRequestErrorCode,
|
|
17
|
+
message: string
|
|
18
|
+
) {
|
|
19
|
+
super(message)
|
|
20
|
+
}
|
|
21
|
+
}
|
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
import { type Principal, principalsEqual, SYSTEM_PRINCIPAL } from "../auth"
|
|
2
|
+
import type { BlobStorage } from "../blob-storage/types"
|
|
3
|
+
import { resolveRuntimeAuthorizationForProject } from "../execution/authorization"
|
|
4
|
+
import type { SixbRuntimeContext } from "../runtime/types"
|
|
5
|
+
import type {
|
|
6
|
+
ArtifactFile,
|
|
7
|
+
ArtifactRecord,
|
|
8
|
+
ArtifactStorage,
|
|
9
|
+
ArtifactVersionRecord,
|
|
10
|
+
ListArtifactsResult,
|
|
11
|
+
ListArtifactVersionsResult,
|
|
12
|
+
} from "../storage/artifacts/types"
|
|
13
|
+
import { ArtifactRequestError } from "./errors"
|
|
14
|
+
import type { ArtifactKind } from "./kinds"
|
|
15
|
+
import { type PublishedArtifact, publishArtifact } from "./publish/publish"
|
|
16
|
+
|
|
17
|
+
/** A version's content: what its kind renders from, and what it is called. */
|
|
18
|
+
export interface ArtifactContentInput {
|
|
19
|
+
readonly kind: ArtifactKind
|
|
20
|
+
readonly title: string
|
|
21
|
+
/** Files stored with `sixb.blobs.put()` or `POST /api/files`, at their paths in the artifact. */
|
|
22
|
+
readonly files: readonly ArtifactFile[]
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
export interface ListArtifactsRuntimeInput {
|
|
26
|
+
/** Only artifacts with a version the Agent published in this thread. */
|
|
27
|
+
readonly threadId?: string
|
|
28
|
+
/** Only artifacts of this kind. */
|
|
29
|
+
readonly kind?: ArtifactKind
|
|
30
|
+
readonly limit?: number
|
|
31
|
+
readonly offset?: number
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
/**
|
|
35
|
+
* Artifacts the caller owns: create one, publish its next version, read it back. A user or service
|
|
36
|
+
* account reaches only its own artifacts; system code reaches every artifact in the project.
|
|
37
|
+
*/
|
|
38
|
+
export interface ArtifactsRuntime {
|
|
39
|
+
/** Creates an artifact owned by the caller, with its first version. */
|
|
40
|
+
create(input: ArtifactContentInput): Promise<PublishedArtifact>
|
|
41
|
+
/** Publishes the next version. The kind must be the artifact's. */
|
|
42
|
+
publish(artifactId: string, input: ArtifactContentInput): Promise<PublishedArtifact>
|
|
43
|
+
get(artifactId: string): Promise<ArtifactRecord | null>
|
|
44
|
+
/** Most recently updated first. */
|
|
45
|
+
list(input?: ListArtifactsRuntimeInput): Promise<ListArtifactsResult>
|
|
46
|
+
getVersion(artifactId: string, version: number | "latest"): Promise<ArtifactVersionRecord | null>
|
|
47
|
+
/** Newest first; `null` when the artifact is not the caller's. */
|
|
48
|
+
listVersions(
|
|
49
|
+
artifactId: string,
|
|
50
|
+
input?: { readonly limit?: number; readonly offset?: number }
|
|
51
|
+
): Promise<ListArtifactVersionsResult | null>
|
|
52
|
+
/** Deletes the artifact with every version. `false` when it is not the caller's. */
|
|
53
|
+
delete(artifactId: string): Promise<boolean>
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
export function createArtifactsRuntime(
|
|
57
|
+
runtime: SixbRuntimeContext,
|
|
58
|
+
blobStorage: BlobStorage
|
|
59
|
+
): ArtifactsRuntime {
|
|
60
|
+
const authority = resolveRuntimeAuthorizationForProject(runtime)
|
|
61
|
+
// Shared-link sessions and unresolved authority reach no artifact.
|
|
62
|
+
const caller: Principal | null =
|
|
63
|
+
authority.type === "principal"
|
|
64
|
+
? authority.context.principal
|
|
65
|
+
: authority.type === "unrestricted"
|
|
66
|
+
? SYSTEM_PRINCIPAL
|
|
67
|
+
: null
|
|
68
|
+
const ownerFilter = authority.type === "principal" ? caller : null
|
|
69
|
+
|
|
70
|
+
const requireStorage = (): ArtifactStorage => {
|
|
71
|
+
const storage = runtime.storage.artifacts
|
|
72
|
+
if (!storage) {
|
|
73
|
+
throw new ArtifactRequestError(
|
|
74
|
+
"storage_unavailable",
|
|
75
|
+
"[Sixb] Artifacts need storage that supports them."
|
|
76
|
+
)
|
|
77
|
+
}
|
|
78
|
+
return storage
|
|
79
|
+
}
|
|
80
|
+
const requireCaller = (): Principal => {
|
|
81
|
+
if (!caller) {
|
|
82
|
+
throw new ArtifactRequestError("not_allowed", "[Sixb] This caller cannot publish artifacts.")
|
|
83
|
+
}
|
|
84
|
+
return caller
|
|
85
|
+
}
|
|
86
|
+
const visible = (artifact: ArtifactRecord | null): ArtifactRecord | null =>
|
|
87
|
+
artifact && caller && (!ownerFilter || principalsEqual(ownerFilter, artifact.owner))
|
|
88
|
+
? artifact
|
|
89
|
+
: null
|
|
90
|
+
const getVisible = async (artifactId: string): Promise<ArtifactRecord | null> =>
|
|
91
|
+
caller
|
|
92
|
+
? visible(await requireStorage().get({ projectId: runtime.projectId, id: artifactId }))
|
|
93
|
+
: null
|
|
94
|
+
|
|
95
|
+
return {
|
|
96
|
+
async create(input) {
|
|
97
|
+
return publishArtifact(
|
|
98
|
+
{ projectId: runtime.projectId, storage: requireStorage(), blobStorage },
|
|
99
|
+
{ ...input, author: requireCaller() }
|
|
100
|
+
)
|
|
101
|
+
},
|
|
102
|
+
|
|
103
|
+
async publish(artifactId, input) {
|
|
104
|
+
const author = requireCaller()
|
|
105
|
+
if (!(await getVisible(artifactId))) throw notFound(artifactId)
|
|
106
|
+
return publishArtifact(
|
|
107
|
+
{ projectId: runtime.projectId, storage: requireStorage(), blobStorage },
|
|
108
|
+
{ ...input, artifactId, author }
|
|
109
|
+
)
|
|
110
|
+
},
|
|
111
|
+
|
|
112
|
+
get: getVisible,
|
|
113
|
+
|
|
114
|
+
async list(input = {}) {
|
|
115
|
+
if (!caller) return { artifacts: [], hasMore: false, total: 0 }
|
|
116
|
+
return requireStorage().list({
|
|
117
|
+
projectId: runtime.projectId,
|
|
118
|
+
...(ownerFilter ? { owner: ownerFilter } : {}),
|
|
119
|
+
...(input.threadId === undefined ? {} : { originThreadId: input.threadId }),
|
|
120
|
+
...(input.kind === undefined ? {} : { kind: input.kind }),
|
|
121
|
+
...(input.limit === undefined ? {} : { limit: input.limit }),
|
|
122
|
+
...(input.offset === undefined ? {} : { offset: input.offset }),
|
|
123
|
+
})
|
|
124
|
+
},
|
|
125
|
+
|
|
126
|
+
async getVersion(artifactId, version) {
|
|
127
|
+
const artifact = await getVisible(artifactId)
|
|
128
|
+
if (!artifact) return null
|
|
129
|
+
return requireStorage().getVersion({
|
|
130
|
+
projectId: runtime.projectId,
|
|
131
|
+
artifactId,
|
|
132
|
+
version: version === "latest" ? artifact.latestVersion : version,
|
|
133
|
+
})
|
|
134
|
+
},
|
|
135
|
+
|
|
136
|
+
async listVersions(artifactId, input = {}) {
|
|
137
|
+
if (!(await getVisible(artifactId))) return null
|
|
138
|
+
return requireStorage().listVersions({ projectId: runtime.projectId, artifactId, ...input })
|
|
139
|
+
},
|
|
140
|
+
|
|
141
|
+
async delete(artifactId) {
|
|
142
|
+
if (!(await getVisible(artifactId))) return false
|
|
143
|
+
return requireStorage().delete({ projectId: runtime.projectId, id: artifactId })
|
|
144
|
+
},
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
function notFound(artifactId: string): ArtifactRequestError {
|
|
149
|
+
return new ArtifactRequestError(
|
|
150
|
+
"artifact_not_found",
|
|
151
|
+
`[Sixb] Artifact '${artifactId}' was not found.`
|
|
152
|
+
)
|
|
153
|
+
}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
import type { ArtifactFrameTarget } from "../../storage/artifacts/types"
|
|
2
|
+
import { isArtifactAddress, parseArtifactAddress } from "../address"
|
|
3
|
+
import { decodeHtmlEntities } from "../html"
|
|
4
|
+
import { FRAME_ASSET_PREFIX } from "../publish/validate/slides"
|
|
5
|
+
import { FRAME_KIT_CSS } from "./kit"
|
|
6
|
+
import { frameRuntime } from "./runtime"
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* The files a frame gets besides the version's own, under `__sixb/`, which a version may not use.
|
|
10
|
+
* The server serves them to the app's frames, and the Agent's layout check serves them to its
|
|
11
|
+
* browser, so both lay a deck out the same way.
|
|
12
|
+
*/
|
|
13
|
+
export const FRAME_ASSETS: Readonly<
|
|
14
|
+
Record<string, { readonly body: string; readonly type: string }>
|
|
15
|
+
> = {
|
|
16
|
+
[`${FRAME_ASSET_PREFIX}kit.css`]: { body: FRAME_KIT_CSS, type: "text/css; charset=utf-8" },
|
|
17
|
+
[`${FRAME_ASSET_PREFIX}runtime.js`]: {
|
|
18
|
+
body: `(${frameRuntime.toString()})()\n`,
|
|
19
|
+
type: "text/javascript; charset=utf-8",
|
|
20
|
+
},
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
const INJECTED = `<link rel="stylesheet" href="${FRAME_ASSET_PREFIX}kit.css"><script src="${FRAME_ASSET_PREFIX}runtime.js"></script>`
|
|
24
|
+
|
|
25
|
+
/**
|
|
26
|
+
* A deck's entry with the kit and the runtime first in its `<head>`, before anything of its own,
|
|
27
|
+
* so the deck's styles and scripts build on them. Exactly once, whatever the markup: in `<head>`
|
|
28
|
+
* when the page has one, else first in `<html>`, else right after the doctype, so a page without
|
|
29
|
+
* either still renders in standards mode. Each element is looked for by parsing, not by matching
|
|
30
|
+
* text, so a `<head>` inside a comment or a script's string is not one.
|
|
31
|
+
*/
|
|
32
|
+
export function injectFrameAssets(html: string): string {
|
|
33
|
+
for (const selector of ["head", "html"]) {
|
|
34
|
+
let injected = false
|
|
35
|
+
const rewritten = new HTMLRewriter()
|
|
36
|
+
.on(selector, {
|
|
37
|
+
element(element) {
|
|
38
|
+
if (injected) return
|
|
39
|
+
injected = true
|
|
40
|
+
element.prepend(INJECTED, { html: true })
|
|
41
|
+
},
|
|
42
|
+
})
|
|
43
|
+
.transform(html)
|
|
44
|
+
if (injected) return rewritten
|
|
45
|
+
}
|
|
46
|
+
const doctype = /^\s*<!doctype[^>]*>/i.exec(html)?.[0] ?? ""
|
|
47
|
+
return `${doctype}${INJECTED}${html.slice(doctype.length)}`
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
/** Where a frame serves a file another artifact lends it: `__sixb/ref/<id>@<version>/<path>`. */
|
|
51
|
+
export const FRAME_REFERENCE_PREFIX = `${FRAME_ASSET_PREFIX}ref/`
|
|
52
|
+
|
|
53
|
+
/** The path, under a frame's base, of a file one of its targets lends it. */
|
|
54
|
+
function frameReferencePath(target: ArtifactFrameTarget): string | null {
|
|
55
|
+
const file = parseArtifactAddress(target.address)?.path
|
|
56
|
+
if (!file) return null
|
|
57
|
+
const path = file.split("/").map(encodeURIComponent).join("/")
|
|
58
|
+
return `${FRAME_REFERENCE_PREFIX}${target.artifactId}@${target.version}/${path}`
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
/**
|
|
62
|
+
* Points each image a deck shows from another artifact (`<img src="artifact:…">`) at the copy its
|
|
63
|
+
* frame serves, marked `data-sixb-ref`. An image its reader cannot see, or that the frame has
|
|
64
|
+
* no target for, loses its source and is marked unavailable: the kit draws it as an empty box.
|
|
65
|
+
* Addresses are compared as publishing recorded them, with their entities decoded.
|
|
66
|
+
*/
|
|
67
|
+
export function rewriteFrameReferences(
|
|
68
|
+
html: string,
|
|
69
|
+
targets: readonly ArtifactFrameTarget[]
|
|
70
|
+
): string {
|
|
71
|
+
return new HTMLRewriter()
|
|
72
|
+
.on("img[src]", {
|
|
73
|
+
element(element) {
|
|
74
|
+
const source = decodeHtmlEntities(element.getAttribute("src") ?? "").trim()
|
|
75
|
+
if (!isArtifactAddress(source)) return
|
|
76
|
+
const target = targets.find((candidate) => candidate.address === source)
|
|
77
|
+
const path = target ? frameReferencePath(target) : null
|
|
78
|
+
if (path) {
|
|
79
|
+
element.setAttribute("src", path)
|
|
80
|
+
element.setAttribute("data-sixb-ref", "")
|
|
81
|
+
} else {
|
|
82
|
+
element.removeAttribute("src")
|
|
83
|
+
element.setAttribute("data-sixb-ref", "unavailable")
|
|
84
|
+
}
|
|
85
|
+
},
|
|
86
|
+
})
|
|
87
|
+
.transform(html)
|
|
88
|
+
}
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
import { createHash, randomBytes } from "node:crypto"
|
|
2
|
+
import type {
|
|
3
|
+
ArtifactFrameTarget,
|
|
4
|
+
ArtifactStorage,
|
|
5
|
+
ArtifactVersionRecord,
|
|
6
|
+
} from "../../storage/artifacts/types"
|
|
7
|
+
import { parseArtifactAddress } from "../address"
|
|
8
|
+
import { ArtifactRequestError } from "../errors"
|
|
9
|
+
|
|
10
|
+
/** Path prefix of the route that serves a version's files to its frame. */
|
|
11
|
+
export const ARTIFACT_FRAME_ROUTE_PREFIX = "/api/artifact-frames/"
|
|
12
|
+
|
|
13
|
+
/** A frame link lasts an hour; the app asks for a new one before it runs out. */
|
|
14
|
+
const FRAME_LIFETIME_MS = 60 * 60 * 1000
|
|
15
|
+
/** 32 random bytes in base64url. */
|
|
16
|
+
const TOKEN_PATTERN = /^[A-Za-z0-9_-]{43}$/
|
|
17
|
+
|
|
18
|
+
export interface ArtifactFrame {
|
|
19
|
+
/** The frame's base, ending in `/`: the version's files are served under it by their paths. */
|
|
20
|
+
readonly path: string
|
|
21
|
+
readonly expiresAt: Date
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
type ReadArtifactVersion = (
|
|
25
|
+
artifactId: string,
|
|
26
|
+
version: number | "latest"
|
|
27
|
+
) => Promise<ArtifactVersionRecord | null>
|
|
28
|
+
|
|
29
|
+
/**
|
|
30
|
+
* Issues a link that serves a deck's version to a sandboxed frame, with the files it embeds from
|
|
31
|
+
* other artifacts that `read` finds. The token in the link is the credential: only its hash is
|
|
32
|
+
* stored. Whoever asks must already have been allowed to read the version, and `read` reads as
|
|
33
|
+
* them. Only a deck opens in a frame, since the frame serves its entry as a page.
|
|
34
|
+
*/
|
|
35
|
+
export async function createArtifactFrame(input: {
|
|
36
|
+
readonly projectId: string
|
|
37
|
+
readonly storage: ArtifactStorage
|
|
38
|
+
readonly version: ArtifactVersionRecord
|
|
39
|
+
readonly read?: ReadArtifactVersion
|
|
40
|
+
readonly now?: Date
|
|
41
|
+
}): Promise<ArtifactFrame> {
|
|
42
|
+
const { version } = input
|
|
43
|
+
if (version.outline.kind !== "slides") {
|
|
44
|
+
throw new ArtifactRequestError(
|
|
45
|
+
"artifact_kind_mismatch",
|
|
46
|
+
`[Sixb] Only a deck opens in a frame; '${version.artifactId}' is a ${version.outline.kind}. Read its files instead.`
|
|
47
|
+
)
|
|
48
|
+
}
|
|
49
|
+
const createdAt = input.now ?? new Date()
|
|
50
|
+
const expiresAt = new Date(createdAt.getTime() + FRAME_LIFETIME_MS)
|
|
51
|
+
const token = randomBytes(32).toString("base64url")
|
|
52
|
+
await input.storage.createFrameGrant({
|
|
53
|
+
projectId: input.projectId,
|
|
54
|
+
tokenHash: hashToken(token),
|
|
55
|
+
artifactId: version.artifactId,
|
|
56
|
+
version: version.version,
|
|
57
|
+
targets: input.read ? await frameTargets(version, input.read) : [],
|
|
58
|
+
createdAt,
|
|
59
|
+
expiresAt,
|
|
60
|
+
})
|
|
61
|
+
return { path: `${ARTIFACT_FRAME_ROUTE_PREFIX}${token}/`, expiresAt }
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
/**
|
|
65
|
+
* The files from other artifacts a version's frame may show its reader: each file it embeds
|
|
66
|
+
* (`<img src="artifact:…/figure.svg">`) that `read`, as the reader, finds, at the version the
|
|
67
|
+
* address pins or the latest. A chart, range, or section is drawn by the app over the frame, under
|
|
68
|
+
* the reader's own session, and needs nothing here.
|
|
69
|
+
*/
|
|
70
|
+
async function frameTargets(
|
|
71
|
+
version: ArtifactVersionRecord,
|
|
72
|
+
read: ReadArtifactVersion
|
|
73
|
+
): Promise<ArtifactFrameTarget[]> {
|
|
74
|
+
const targets: ArtifactFrameTarget[] = []
|
|
75
|
+
for (const reference of version.references) {
|
|
76
|
+
if (
|
|
77
|
+
reference.as !== "embed" ||
|
|
78
|
+
targets.some((target) => target.address === reference.address)
|
|
79
|
+
) {
|
|
80
|
+
continue
|
|
81
|
+
}
|
|
82
|
+
const address = parseArtifactAddress(reference.address)
|
|
83
|
+
if (!address?.path) continue
|
|
84
|
+
const target = await read(address.artifactId, address.version ?? "latest").catch(() => null)
|
|
85
|
+
if (!target?.files.some((file) => file.path === address.path)) continue
|
|
86
|
+
targets.push({
|
|
87
|
+
address: reference.address,
|
|
88
|
+
artifactId: target.artifactId,
|
|
89
|
+
version: target.version,
|
|
90
|
+
})
|
|
91
|
+
}
|
|
92
|
+
return targets
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
/**
|
|
96
|
+
* What a frame link serves: its deck's version, and what it may show from other artifacts; `null`
|
|
97
|
+
* once the link is unknown, expired, or its version gone, and for a version that is not a deck.
|
|
98
|
+
*/
|
|
99
|
+
export async function resolveArtifactFrame(input: {
|
|
100
|
+
readonly projectId: string
|
|
101
|
+
readonly storage: ArtifactStorage
|
|
102
|
+
readonly token: string
|
|
103
|
+
readonly now?: Date
|
|
104
|
+
}): Promise<{
|
|
105
|
+
readonly version: ArtifactVersionRecord
|
|
106
|
+
readonly targets: readonly ArtifactFrameTarget[]
|
|
107
|
+
} | null> {
|
|
108
|
+
if (!TOKEN_PATTERN.test(input.token)) return null
|
|
109
|
+
const grant = await input.storage.findFrameGrant({
|
|
110
|
+
projectId: input.projectId,
|
|
111
|
+
tokenHash: hashToken(input.token),
|
|
112
|
+
})
|
|
113
|
+
if (!grant || grant.expiresAt <= (input.now ?? new Date())) return null
|
|
114
|
+
const version = await input.storage.getVersion({
|
|
115
|
+
projectId: input.projectId,
|
|
116
|
+
artifactId: grant.artifactId,
|
|
117
|
+
version: grant.version,
|
|
118
|
+
})
|
|
119
|
+
return version?.outline.kind === "slides" ? { version, targets: grant.targets } : null
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
function hashToken(token: string): string {
|
|
123
|
+
return createHash("sha256").update(token).digest("hex")
|
|
124
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Frames for this repo's packages: the server issues and serves them, with the kit and runtime,
|
|
3
|
+
* and the Agent's layout check lays a deck out in them.
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
export { SLIDES_ENTRY } from "../publish/validate/slides"
|
|
7
|
+
export {
|
|
8
|
+
FRAME_ASSETS,
|
|
9
|
+
FRAME_REFERENCE_PREFIX,
|
|
10
|
+
injectFrameAssets,
|
|
11
|
+
rewriteFrameReferences,
|
|
12
|
+
} from "./assets"
|
|
13
|
+
export { ARTIFACT_FRAME_ROUTE_PREFIX, createArtifactFrame, resolveArtifactFrame } from "./grants"
|
|
14
|
+
export { FRAME_DEFAULT_THEMES } from "./kit"
|
|
15
|
+
export { type LayoutProblem, layoutProbe } from "./probe"
|