@sixb/core 0.1.18 → 0.1.19
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/README.md +7 -6
- package/dist/actions/commit-edits.d.ts +7 -19
- package/dist/actions/commit-edits.d.ts.map +1 -1
- package/dist/actions/errors.d.ts +0 -3
- package/dist/actions/errors.d.ts.map +1 -1
- package/dist/actions/execution.d.ts +10 -3
- package/dist/actions/execution.d.ts.map +1 -1
- package/dist/actions/index.d.ts +6 -9
- package/dist/actions/index.d.ts.map +1 -1
- package/dist/actions/index.js +51 -50
- package/dist/actions/index.js.map +1 -1
- package/dist/actions/request.d.ts +14 -25
- package/dist/actions/request.d.ts.map +1 -1
- package/dist/actions/run/context.d.ts +40 -0
- package/dist/actions/run/context.d.ts.map +1 -0
- package/dist/actions/run/edits-commit.d.ts +31 -0
- package/dist/actions/run/edits-commit.d.ts.map +1 -0
- package/dist/actions/run/effects.d.ts +23 -0
- package/dist/actions/run/effects.d.ts.map +1 -0
- package/dist/actions/run/execute.d.ts +30 -0
- package/dist/actions/run/execute.d.ts.map +1 -0
- package/dist/actions/run/executor.d.ts +95 -0
- package/dist/actions/run/executor.d.ts.map +1 -0
- package/dist/actions/run/normalize.d.ts +36 -0
- package/dist/actions/run/normalize.d.ts.map +1 -0
- package/dist/actions/run/phase-types.d.ts +18 -0
- package/dist/actions/run/phase-types.d.ts.map +1 -0
- package/dist/actions/run/phases.d.ts +20 -0
- package/dist/actions/run/phases.d.ts.map +1 -0
- package/dist/actions/run/run-action.d.ts +25 -0
- package/dist/actions/run/run-action.d.ts.map +1 -0
- package/dist/actions/run/signals.d.ts +67 -0
- package/dist/actions/run/signals.d.ts.map +1 -0
- package/dist/actions/run/state.d.ts +47 -0
- package/dist/actions/run/state.d.ts.map +1 -0
- package/dist/actions/run/types.d.ts +54 -0
- package/dist/actions/run/types.d.ts.map +1 -0
- package/dist/actions/run/writeback.d.ts +17 -0
- package/dist/actions/run/writeback.d.ts.map +1 -0
- package/dist/actions/run-authorization.d.ts +1 -1
- package/dist/actions/run-authorization.d.ts.map +1 -1
- package/dist/actions/run-persistence.d.ts +53 -0
- package/dist/actions/run-persistence.d.ts.map +1 -0
- package/dist/actions/types/context.d.ts +10 -0
- package/dist/actions/types/context.d.ts.map +1 -1
- package/dist/agents/index.js +52 -55
- package/dist/agents/index.js.map +1 -1
- package/dist/agents/streams/index.js +2 -2
- package/dist/agents/streams/internal.js +2 -2
- package/dist/auth/index.js +11 -11
- package/dist/auth/index.js.map +1 -1
- package/dist/authorization/event-visibility.d.ts.map +1 -1
- package/dist/authorization/index.js +3 -3
- package/dist/bootstrap/index.js +46 -49
- package/dist/bootstrap/index.js.map +2 -2
- package/dist/{chunk-d0eb5yy6.js → chunk-1f7wpmyp.js} +5 -5
- package/dist/{chunk-d0eb5yy6.js.map → chunk-1f7wpmyp.js.map} +1 -1
- package/dist/{chunk-vgk3hknm.js → chunk-1k89ecfr.js} +1 -1
- package/dist/{chunk-6h5m9xjx.js → chunk-3gnrh4ve.js} +6 -10
- package/dist/{chunk-6h5m9xjx.js.map → chunk-3gnrh4ve.js.map} +4 -4
- package/dist/{chunk-htr6wjmv.js → chunk-4tcx876c.js} +15 -15
- package/dist/{chunk-htr6wjmv.js.map → chunk-4tcx876c.js.map} +1 -1
- package/dist/{chunk-za5yd58j.js → chunk-52bk93x8.js} +2 -2
- package/dist/{chunk-22v5bpz3.js → chunk-5e43w60z.js} +1 -1
- package/dist/{chunk-zxawp1n2.js → chunk-7kg3k1m9.js} +1 -1
- package/dist/{chunk-ny3xyvcn.js → chunk-7mbzgd9m.js} +3 -3
- package/dist/{chunk-b9affek3.js → chunk-7n440zgt.js} +30 -30
- package/dist/{chunk-b9affek3.js.map → chunk-7n440zgt.js.map} +4 -4
- package/dist/{chunk-kkqwzy6h.js → chunk-7t429e3f.js} +1 -1
- package/dist/{chunk-s4jhg8a3.js → chunk-80mc0971.js} +13 -13
- package/dist/{chunk-s4jhg8a3.js.map → chunk-80mc0971.js.map} +1 -1
- package/dist/{chunk-1b1f2d5f.js → chunk-85yvv5n0.js} +8 -8
- package/dist/{chunk-1b1f2d5f.js.map → chunk-85yvv5n0.js.map} +1 -1
- package/dist/{chunk-6fsr7y93.js → chunk-8mx7qw3y.js} +14 -13
- package/dist/{chunk-6fsr7y93.js.map → chunk-8mx7qw3y.js.map} +4 -4
- package/dist/{chunk-kpx7jrmn.js → chunk-91mg3nj9.js} +59 -59
- package/dist/{chunk-kpx7jrmn.js.map → chunk-91mg3nj9.js.map} +5 -5
- package/dist/{chunk-48e3cn2d.js → chunk-9gyp8hg1.js} +2 -2
- package/dist/{chunk-ewqa58h9.js → chunk-9k93ah50.js} +4 -4
- package/dist/{chunk-ewqa58h9.js.map → chunk-9k93ah50.js.map} +1 -1
- package/dist/{chunk-4wn7bxxa.js → chunk-9ybhtmg4.js} +1 -1
- package/dist/{chunk-fc5zfxy1.js → chunk-a40ad1ft.js} +5 -13
- package/dist/chunk-a40ad1ft.js.map +10 -0
- package/dist/{chunk-vz3gc1tm.js → chunk-aff7cyea.js} +62 -64
- package/dist/{chunk-vz3gc1tm.js.map → chunk-aff7cyea.js.map} +4 -4
- package/dist/{chunk-y2aq6ag9.js → chunk-b38szspf.js} +5 -14
- package/dist/chunk-b38szspf.js.map +11 -0
- package/dist/{chunk-r2y23egw.js → chunk-bkpke1sg.js} +1 -10
- package/dist/chunk-bkpke1sg.js.map +10 -0
- package/dist/{chunk-bs7sqkre.js → chunk-bpgy64fw.js} +1 -1
- package/dist/{chunk-vx2yp45y.js → chunk-c85m1hyj.js} +2 -2
- package/dist/{chunk-v6xpd60t.js → chunk-d2ync1v3.js} +5 -5
- package/dist/{chunk-fe52eczz.js → chunk-ey3pyej1.js} +6345 -2125
- package/dist/chunk-ey3pyej1.js.map +106 -0
- package/dist/{chunk-vjcd8d27.js → chunk-fa02jy15.js} +1 -1
- package/dist/{chunk-y05543x6.js → chunk-hvsb78a1.js} +4 -4
- package/dist/{chunk-y05543x6.js.map → chunk-hvsb78a1.js.map} +1 -1
- package/dist/{chunk-qq90g05n.js → chunk-j2bp5ryw.js} +53 -244
- package/dist/{chunk-qq90g05n.js.map → chunk-j2bp5ryw.js.map} +3 -3
- package/dist/{chunk-qmnnhde6.js → chunk-kg5j6fct.js} +1 -1
- package/dist/{chunk-de4z2bj6.js → chunk-kyzq4wy9.js} +6 -6
- package/dist/{chunk-wr8qp979.js → chunk-m427qgq0.js} +9 -5
- package/dist/{chunk-wr8qp979.js.map → chunk-m427qgq0.js.map} +4 -3
- package/dist/{chunk-e1c18xjx.js → chunk-nq6gpjt7.js} +4 -45
- package/dist/{chunk-e1c18xjx.js.map → chunk-nq6gpjt7.js.map} +5 -5
- package/dist/{chunk-ex496vct.js → chunk-nre82s12.js} +1 -1
- package/dist/{chunk-1hqwggsn.js → chunk-nzapm6p0.js} +1 -2
- package/dist/chunk-nzapm6p0.js.map +12 -0
- package/dist/{chunk-wt4szfec.js → chunk-pbcbn83d.js} +4 -4
- package/dist/{chunk-wt4szfec.js.map → chunk-pbcbn83d.js.map} +1 -1
- package/dist/{chunk-7hpdd6r9.js → chunk-q1vkr2ys.js} +4 -4
- package/dist/{chunk-zb77kjth.js → chunk-rhg02hxq.js} +3 -3
- package/dist/{chunk-y9jmd7e5.js → chunk-s16apyk9.js} +102 -16
- package/dist/chunk-s16apyk9.js.map +16 -0
- package/dist/{chunk-yv9czyfr.js → chunk-t6vq7bff.js} +5 -5
- package/dist/{chunk-qkvz64nd.js → chunk-tjb1mk5t.js} +2 -2
- package/dist/{chunk-p844e0rn.js → chunk-tpn40322.js} +2 -2
- package/dist/{chunk-rt9p8m9t.js → chunk-v9xd5wzd.js} +1 -1
- package/dist/{chunk-2vhg6ysa.js → chunk-vyf9kfqf.js} +1 -1
- package/dist/{chunk-k6hrnf35.js → chunk-wwdfe68s.js} +51 -4
- package/dist/chunk-wwdfe68s.js.map +11 -0
- package/dist/{chunk-f1zxad2t.js → chunk-wz0xs816.js} +6 -6
- package/dist/{chunk-f1zxad2t.js.map → chunk-wz0xs816.js.map} +1 -1
- package/dist/chunk-y0c4e6ex.js +16 -0
- package/dist/chunk-y0c4e6ex.js.map +10 -0
- package/dist/{chunk-qkbx3tf6.js → chunk-y7rqfrgg.js} +6 -13
- package/dist/{chunk-qkbx3tf6.js.map → chunk-y7rqfrgg.js.map} +4 -4
- package/dist/{chunk-dfm066qg.js → chunk-yxd3nnqt.js} +2 -29
- package/dist/chunk-yxd3nnqt.js.map +11 -0
- package/dist/{chunk-70jmg2zx.js → chunk-yzwja0mj.js} +4 -19
- package/dist/{chunk-70jmg2zx.js.map → chunk-yzwja0mj.js.map} +3 -3
- package/dist/{chunk-p0dqwj3n.js → chunk-zrmy8zvw.js} +66 -47
- package/dist/{chunk-p0dqwj3n.js.map → chunk-zrmy8zvw.js.map} +4 -4
- package/dist/deploy/index.d.ts +1 -1
- package/dist/deploy/index.d.ts.map +1 -1
- package/dist/deploy/internal.js +10 -8
- package/dist/deploy/internal.js.map +4 -4
- package/dist/deploy/services.d.ts +1 -2
- package/dist/deploy/services.d.ts.map +1 -1
- package/dist/deploy/types.d.ts +6 -5
- package/dist/deploy/types.d.ts.map +1 -1
- package/dist/deploy/validation.d.ts.map +1 -1
- package/dist/edits/index.js +3 -5
- package/dist/edits/index.js.map +1 -1
- package/dist/error-reporting/internal.js +3 -3
- package/dist/error-reporting/types.d.ts +2 -9
- package/dist/error-reporting/types.d.ts.map +1 -1
- package/dist/errors/catalog.d.ts +12 -0
- package/dist/errors/catalog.d.ts.map +1 -1
- package/dist/errors/internal.js +1 -1
- package/dist/events/definitions.d.ts +0 -5
- package/dist/events/definitions.d.ts.map +1 -1
- package/dist/events/index.d.ts +3 -3
- package/dist/events/index.d.ts.map +1 -1
- package/dist/events/index.js +6 -8
- package/dist/events/index.js.map +1 -1
- package/dist/events/scope.d.ts +0 -1
- package/dist/events/scope.d.ts.map +1 -1
- package/dist/events/scope.js +1 -1
- package/dist/events/selectors/builder.d.ts +1 -8
- package/dist/events/selectors/builder.d.ts.map +1 -1
- package/dist/events/selectors/index.d.ts +2 -2
- package/dist/events/selectors/index.d.ts.map +1 -1
- package/dist/events/selectors/index.js +2 -2
- package/dist/events/selectors/predicate.d.ts.map +1 -1
- package/dist/events/selectors/types.d.ts +2 -33
- package/dist/events/selectors/types.d.ts.map +1 -1
- package/dist/events/types/index.d.ts +1 -12
- package/dist/events/types/index.d.ts.map +1 -1
- package/dist/execution/agent.js +41 -44
- package/dist/execution/agent.js.map +1 -1
- package/dist/execution/primitive.js +57 -88
- package/dist/execution/primitive.js.map +3 -4
- package/dist/execution/request.js +35 -38
- package/dist/execution/request.js.map +2 -2
- package/dist/index.d.ts +3 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +111 -120
- package/dist/index.js.map +1 -1
- package/dist/materialization/index.js +3 -3
- package/dist/materialization/index.js.map +1 -1
- package/dist/materialization/model.d.ts +19 -6
- package/dist/materialization/model.d.ts.map +1 -1
- package/dist/materializer/index.js +31 -31
- package/dist/materializer/index.js.map +1 -1
- package/dist/materializer/shared/normalize.d.ts.map +1 -1
- package/dist/models/execution/index.js +18 -18
- package/dist/objects/action/errors.d.ts +0 -9
- package/dist/objects/action/errors.d.ts.map +1 -1
- package/dist/objects/action/index.d.ts +3 -3
- package/dist/objects/action/index.d.ts.map +1 -1
- package/dist/objects/action/request.d.ts +2 -8
- package/dist/objects/action/request.d.ts.map +1 -1
- package/dist/objects/execution.d.ts +0 -2
- package/dist/objects/execution.d.ts.map +1 -1
- package/dist/objects/index.js +44 -29
- package/dist/objects/index.js.map +1 -1
- package/dist/objects/query/index.js +29 -29
- package/dist/objects/query/index.js.map +1 -1
- package/dist/objects/sdk/object-handle.d.ts.map +1 -1
- package/dist/objects/sdk/object-set.d.ts.map +1 -1
- package/dist/objects/service/index.d.ts +0 -1
- package/dist/objects/service/index.d.ts.map +1 -1
- package/dist/ontology/index.js +5 -5
- package/dist/ontology/index.js.map +1 -1
- package/dist/ontology/internal.js +2 -2
- package/dist/pipelines/index.js +28 -28
- package/dist/projections/internal.js +22 -22
- package/dist/projections/internal.js.map +1 -1
- package/dist/query.js +2 -2
- package/dist/queues/in-memory.d.ts +1 -2
- package/dist/queues/in-memory.d.ts.map +1 -1
- package/dist/queues/index.d.ts +1 -1
- package/dist/queues/index.d.ts.map +1 -1
- package/dist/queues/index.js +1 -1
- package/dist/queues/types.d.ts +0 -7
- package/dist/queues/types.d.ts.map +1 -1
- package/dist/runtime/host.d.ts.map +1 -1
- package/dist/runtime/internal.js +24 -25
- package/dist/runtime/internal.js.map +1 -1
- package/dist/runtime/resolve-definitions.d.ts.map +1 -1
- package/dist/runtime/types.d.ts +16 -36
- package/dist/runtime/types.d.ts.map +1 -1
- package/dist/sandboxes/index.js +5 -5
- package/dist/schedules/builders.d.ts.map +1 -1
- package/dist/schedules/index.js +3 -3
- package/dist/schedules/runtime.d.ts.map +1 -1
- package/dist/schedules/validation.d.ts +0 -1
- package/dist/schedules/validation.d.ts.map +1 -1
- package/dist/security/every.d.ts +1 -1
- package/dist/shares/internal.js +17 -17
- package/dist/storage/action-runs/failure.js +2 -2
- package/dist/storage/action-runs/idempotency.d.ts +3 -4
- package/dist/storage/action-runs/idempotency.d.ts.map +1 -1
- package/dist/storage/action-runs/in-memory.d.ts +2 -9
- package/dist/storage/action-runs/in-memory.d.ts.map +1 -1
- package/dist/storage/action-runs/index.d.ts +1 -3
- package/dist/storage/action-runs/index.d.ts.map +1 -1
- package/dist/storage/action-runs/provider.js +1 -1
- package/dist/storage/action-runs/record.d.ts +20 -0
- package/dist/storage/action-runs/record.d.ts.map +1 -0
- package/dist/storage/action-runs/types.d.ts +39 -68
- package/dist/storage/action-runs/types.d.ts.map +1 -1
- package/dist/storage/ai-limits/enforcement.js +2 -2
- package/dist/storage/connector-connections/provider.js +1 -1
- package/dist/storage/file-upload-sessions/provider.js +9 -9
- package/dist/storage/index.d.ts +2 -2
- package/dist/storage/index.d.ts.map +1 -1
- package/dist/storage/index.js +30 -31
- package/dist/storage/index.js.map +1 -1
- package/dist/storage/internal.d.ts +1 -1
- package/dist/storage/internal.d.ts.map +1 -1
- package/dist/storage/internal.js +9 -12
- package/dist/storage/internal.js.map +1 -1
- package/dist/storage/objects/execution-limits.d.ts +1 -1
- package/dist/storage/objects/execution-limits.d.ts.map +1 -1
- package/dist/storage/ontology/provider.js +2 -2
- package/dist/storage/projection-runs/provider.js +2 -2
- package/dist/storage/types.d.ts +1 -1
- package/dist/storage/types.d.ts.map +1 -1
- package/dist/storage/workflow-runs/provider.js +9 -9
- package/dist/syncs/index.js +29 -29
- package/dist/testing/action-execution.d.ts +34 -4
- package/dist/testing/action-execution.d.ts.map +1 -1
- package/dist/testing/action-run-storage-contract.d.ts +11 -0
- package/dist/testing/action-run-storage-contract.d.ts.map +1 -0
- package/dist/testing/index.d.ts +2 -1
- package/dist/testing/index.d.ts.map +1 -1
- package/dist/testing/index.js +3202 -2860
- package/dist/testing/index.js.map +7 -6
- package/dist/testing/materializer-storage-contract.d.ts.map +1 -1
- package/dist/testing/queues-contract.d.ts.map +1 -1
- package/dist/webhooks/internal.js +23 -23
- package/dist/webhooks/internal.js.map +1 -1
- package/dist/workers/index.js +1 -1
- package/dist/workflows/index.js +48 -51
- package/dist/workflows/index.js.map +1 -1
- package/package.json +1 -7
- package/src/actions/commit-edits.ts +9 -37
- package/src/actions/errors.ts +0 -4
- package/src/actions/execution.ts +10 -10
- package/src/actions/index.ts +5 -24
- package/src/actions/request.ts +157 -295
- package/src/actions/run/context.ts +193 -0
- package/src/actions/run/edits-commit.ts +102 -0
- package/src/actions/run/effects.ts +105 -0
- package/src/actions/run/execute.ts +113 -0
- package/src/actions/run/executor.ts +314 -0
- package/src/actions/run/normalize.ts +142 -0
- package/src/actions/run/phase-types.ts +20 -0
- package/src/actions/run/phases.ts +150 -0
- package/src/actions/run/run-action.ts +170 -0
- package/src/actions/run/signals.ts +118 -0
- package/src/actions/run/state.ts +95 -0
- package/src/actions/run/types.ts +61 -0
- package/src/actions/run/writeback.ts +79 -0
- package/src/actions/run-authorization.ts +1 -1
- package/src/actions/run-persistence.ts +105 -0
- package/src/actions/types/context.ts +10 -0
- package/src/authorization/event-visibility.ts +0 -12
- package/src/deploy/index.ts +0 -1
- package/src/deploy/services.ts +2 -11
- package/src/deploy/types.ts +6 -6
- package/src/deploy/validation.ts +12 -6
- package/src/error-reporting/types.ts +2 -10
- package/src/errors/catalog.ts +13 -0
- package/src/events/definitions.ts +0 -17
- package/src/events/index.ts +0 -14
- package/src/events/scope.ts +0 -12
- package/src/events/selectors/builder.ts +0 -51
- package/src/events/selectors/index.ts +0 -6
- package/src/events/selectors/predicate.ts +0 -2
- package/src/events/selectors/types.ts +7 -65
- package/src/events/types/index.ts +0 -11
- package/src/index.ts +1 -19
- package/src/materialization/model.ts +26 -9
- package/src/materializer/README.md +6 -1
- package/src/materializer/edits/commit.ts +42 -32
- package/src/materializer/shared/normalize.ts +25 -14
- package/src/objects/action/errors.ts +0 -12
- package/src/objects/action/index.ts +3 -3
- package/src/objects/action/request.ts +2 -29
- package/src/objects/execution.ts +2 -2
- package/src/objects/sdk/object-handle.ts +3 -29
- package/src/objects/sdk/object-set.ts +5 -30
- package/src/objects/service/index.ts +0 -1
- package/src/queues/in-memory.ts +0 -6
- package/src/queues/index.ts +0 -2
- package/src/queues/types.ts +0 -11
- package/src/runtime/host.ts +5 -0
- package/src/runtime/resolve-definitions.ts +0 -1
- package/src/runtime/types.ts +16 -45
- package/src/schedules/builders.ts +1 -4
- package/src/schedules/runtime.ts +0 -41
- package/src/schedules/validation.ts +2 -16
- package/src/security/every.ts +1 -1
- package/src/storage/action-runs/idempotency.ts +13 -41
- package/src/storage/action-runs/in-memory.ts +20 -311
- package/src/storage/action-runs/index.ts +1 -16
- package/src/storage/action-runs/record.ts +130 -0
- package/src/storage/action-runs/types.ts +37 -92
- package/src/storage/index.ts +1 -9
- package/src/storage/internal.ts +1 -7
- package/src/storage/objects/execution-limits.ts +3 -2
- package/src/storage/types.ts +2 -4
- package/src/testing/action-execution.ts +73 -13
- package/src/testing/action-run-storage-contract.ts +335 -0
- package/src/testing/index.ts +8 -1
- package/src/testing/materializer-storage-contract.ts +174 -18
- package/src/testing/queues-contract.ts +0 -18
- package/dist/actions/run-dispatch.d.ts +0 -25
- package/dist/actions/run-dispatch.d.ts.map +0 -1
- package/dist/actions/worker.d.ts +0 -3
- package/dist/actions/worker.d.ts.map +0 -1
- package/dist/actions/worker.js +0 -325
- package/dist/actions/worker.js.map +0 -11
- package/dist/chunk-1hqwggsn.js.map +0 -12
- package/dist/chunk-85cd7e8c.js +0 -51
- package/dist/chunk-85cd7e8c.js.map +0 -10
- package/dist/chunk-dfm066qg.js.map +0 -11
- package/dist/chunk-fc5zfxy1.js.map +0 -11
- package/dist/chunk-fe52eczz.js.map +0 -49
- package/dist/chunk-fx93hd2n.js +0 -1614
- package/dist/chunk-fx93hd2n.js.map +0 -20
- package/dist/chunk-k6hrnf35.js.map +0 -10
- package/dist/chunk-qxvp5epv.js +0 -1329
- package/dist/chunk-qxvp5epv.js.map +0 -36
- package/dist/chunk-r2y23egw.js.map +0 -10
- package/dist/chunk-tffvfy6s.js +0 -593
- package/dist/chunk-tffvfy6s.js.map +0 -15
- package/dist/chunk-y2aq6ag9.js.map +0 -11
- package/dist/chunk-y9jmd7e5.js.map +0 -15
- package/dist/chunk-zvx7h87b.js +0 -12
- package/dist/chunk-zvx7h87b.js.map +0 -10
- package/dist/events/types/actions.d.ts +0 -39
- package/dist/events/types/actions.d.ts.map +0 -1
- package/dist/objects/service/action-service.d.ts +0 -13
- package/dist/objects/service/action-service.d.ts.map +0 -1
- package/src/actions/run-dispatch.ts +0 -282
- package/src/actions/worker.ts +0 -2
- package/src/events/types/actions.ts +0 -42
- package/src/objects/service/action-service.ts +0 -43
- /package/dist/{chunk-vgk3hknm.js.map → chunk-1k89ecfr.js.map} +0 -0
- /package/dist/{chunk-za5yd58j.js.map → chunk-52bk93x8.js.map} +0 -0
- /package/dist/{chunk-22v5bpz3.js.map → chunk-5e43w60z.js.map} +0 -0
- /package/dist/{chunk-zxawp1n2.js.map → chunk-7kg3k1m9.js.map} +0 -0
- /package/dist/{chunk-ny3xyvcn.js.map → chunk-7mbzgd9m.js.map} +0 -0
- /package/dist/{chunk-kkqwzy6h.js.map → chunk-7t429e3f.js.map} +0 -0
- /package/dist/{chunk-48e3cn2d.js.map → chunk-9gyp8hg1.js.map} +0 -0
- /package/dist/{chunk-4wn7bxxa.js.map → chunk-9ybhtmg4.js.map} +0 -0
- /package/dist/{chunk-bs7sqkre.js.map → chunk-bpgy64fw.js.map} +0 -0
- /package/dist/{chunk-vx2yp45y.js.map → chunk-c85m1hyj.js.map} +0 -0
- /package/dist/{chunk-v6xpd60t.js.map → chunk-d2ync1v3.js.map} +0 -0
- /package/dist/{chunk-vjcd8d27.js.map → chunk-fa02jy15.js.map} +0 -0
- /package/dist/{chunk-qmnnhde6.js.map → chunk-kg5j6fct.js.map} +0 -0
- /package/dist/{chunk-de4z2bj6.js.map → chunk-kyzq4wy9.js.map} +0 -0
- /package/dist/{chunk-ex496vct.js.map → chunk-nre82s12.js.map} +0 -0
- /package/dist/{chunk-7hpdd6r9.js.map → chunk-q1vkr2ys.js.map} +0 -0
- /package/dist/{chunk-zb77kjth.js.map → chunk-rhg02hxq.js.map} +0 -0
- /package/dist/{chunk-yv9czyfr.js.map → chunk-t6vq7bff.js.map} +0 -0
- /package/dist/{chunk-qkvz64nd.js.map → chunk-tjb1mk5t.js.map} +0 -0
- /package/dist/{chunk-p844e0rn.js.map → chunk-tpn40322.js.map} +0 -0
- /package/dist/{chunk-rt9p8m9t.js.map → chunk-v9xd5wzd.js.map} +0 -0
- /package/dist/{chunk-2vhg6ysa.js.map → chunk-vyf9kfqf.js.map} +0 -0
|
@@ -7,8 +7,8 @@
|
|
|
7
7
|
"import { randomBytes, timingSafeEqual } from \"node:crypto\"\nimport { getCookie } from \"./cookies\"\n\nexport const CSRF_HEADER_NAME = \"x-sixb-csrf\"\n\nexport function generateCsrfToken(): string {\n return randomBytes(32).toString(\"base64url\")\n}\n\nexport function isCsrfExemptMethod(method: string): boolean {\n const normalized = method.toUpperCase()\n return normalized === \"GET\" || normalized === \"HEAD\" || normalized === \"OPTIONS\"\n}\n\nexport function verifyDoubleSubmitCsrf(\n request: Request,\n options: { readonly cookieName: string }\n): boolean {\n if (isCsrfExemptMethod(request.method)) {\n return true\n }\n\n return verifyCsrfToken(request, {\n cookieName: options.cookieName,\n token: request.headers.get(CSRF_HEADER_NAME),\n })\n}\n\n/** Match a submitted CSRF token (header or form field) against the request's CSRF cookie. */\nexport function verifyCsrfToken(\n request: Request,\n options: { readonly cookieName: string; readonly token: string | null }\n): boolean {\n const cookieValue = getCookie(request, options.cookieName)\n if (!cookieValue || !options.token) {\n return false\n }\n\n return safeEqual(cookieValue, options.token)\n}\n\nfunction safeEqual(left: string, right: string): boolean {\n const leftBytes = Buffer.from(left)\n const rightBytes = Buffer.from(right)\n if (leftBytes.length !== rightBytes.length) {\n return false\n }\n\n return timingSafeEqual(leftBytes, rightBytes)\n}\n",
|
|
8
8
|
"import { randomUUID } from \"node:crypto\"\nimport {\n type AuthorizationContext,\n canAccessApplication,\n resolveAuthorizationContext,\n} from \"../authorization\"\nimport {\n canPerformMembershipOperation,\n type GroupReference,\n type MembershipOperation,\n type MembershipPolicyScope,\n missingMembershipGroupIds,\n resolveMembershipPolicyScope,\n type SecurityDefinitionCatalog,\n} from \"../security\"\nimport type { Storage } from \"../storage\"\nimport {\n type AccessTokenRecord,\n type AuthStorage,\n AuthStorageError,\n type CompleteDeviceAuthorizationInput,\n type GroupMembershipRecord,\n type InvitationRecord,\n type ServiceAccountGroupMembershipRecord,\n type ServiceAccountRecord,\n type SessionRecord,\n type UserRecord,\n} from \"../storage/auth\"\nimport { paginate } from \"../storage/pagination\"\nimport {\n createAccessTokenCredential,\n getBearerAccessTokenValue,\n hashAccessTokenSecret,\n parseAccessTokenValue,\n} from \"./access-tokens\"\nimport { type AuthSessionAudience, DEFAULT_AUTH_SESSION_AUDIENCE } from \"./audience\"\nimport { getRequestClientAddress } from \"./client-address\"\nimport {\n getCookie,\n type ResolvedAuthCookieOptions,\n resolveAuthCookieOptionsForAudience,\n} from \"./cookies\"\nimport { AuthRuntimeError } from \"./errors\"\nimport { SessionCache } from \"./session-cache\"\nimport {\n type BearerSessionTokens,\n createBearerSessionTokens,\n hashSessionSecret,\n parseBearerSessionToken,\n parseSessionCookieValue,\n SESSION_ACCESS_TOKEN_PREFIX,\n SESSION_REFRESH_TOKEN_PREFIX,\n} from \"./sessions\"\nimport type {\n AuthenticatedAuthSession,\n AuthenticatedRequestAuthSession,\n AuthenticatedUserRequestSession,\n AuthRequestResult,\n AuthSessionResolutionOptions,\n AuthSessionResult,\n AuthStrategy,\n CreateAccessTokenResult,\n CreatePersonalAccessTokenInput,\n CreateServiceAccountAccessTokenInput,\n CreateServiceAccountAccessTokenResult,\n CreateServiceAccountInput,\n CreateServiceAccountResult,\n DisableServiceAccountInput,\n DisableServiceAccountResult,\n GetInvitationOptionsResult,\n GetMembershipOptionsResult,\n InvitationDeliveryAuthStrategy,\n InvitationDestination,\n InvitationGroupOption,\n InvitationRecipientStatus,\n InviteDeliveryResult,\n InviteDeliveryStatus,\n InviteUserInput,\n InviteUserResult,\n ListInvitationsInput,\n ListInvitationsResult,\n ListMembersInput,\n ListMembersResult,\n ListPersonalAccessTokensResult,\n ListServiceAccountAccessTokensInput,\n ListServiceAccountAccessTokensResult,\n ListServiceAccountsResult,\n MemberSummary,\n MembershipCapabilities,\n ReactivateMemberInput,\n ReactivateMemberResult,\n ResolvedAuthConfig,\n RevokeAccessTokenResult,\n RevokeInvitationInput,\n RevokeInvitationResult,\n RevokePersonalAccessTokenInput,\n RevokeServiceAccountAccessTokenInput,\n RevokeServiceAccountAccessTokenResult,\n SixbAuthConfig,\n SuspendMemberInput,\n SuspendMemberResult,\n UnauthenticatedAuthSession,\n UpdateMemberGroupsInput,\n UpdateMemberGroupsResult,\n} from \"./types\"\nimport {\n assertNonEmpty,\n isInvitationDeliveryAuthStrategy,\n normalizePagination,\n resolveAuthConfig,\n resolveAuthSessionAudience,\n resolveInvitationExpiresAt,\n} from \"./validation\"\n\nexport {\n DEFAULT_AUTH_INVITATION_TTL_MS,\n DEFAULT_AUTH_SESSION_CACHE_TTL_MS,\n DEFAULT_AUTH_SESSION_IDLE_TIMEOUT_MS,\n DEFAULT_AUTH_SESSION_RENEWAL_WINDOW_MS,\n MAX_AUTH_INVITATION_TTL_MS,\n resolveAuthConfig,\n} from \"./validation\"\n\n// Throttle `lastSeenAt` writes: only refresh when the previous value is older\n// than this, so an active session does not incur a write on every request.\nconst SESSION_TOUCH_INTERVAL_MS = 60_000\nconst ACCESS_TOKEN_TOUCH_INTERVAL_MS = 60_000\n\n// A native client's access token is sent on every request, so a leaked one must stop working soon.\nconst BEARER_ACCESS_TOKEN_TTL_MS = 15 * 60_000\n// A replaced refresh token still rotates this long after its replacement, so a client whose refresh\n// response was lost can retry. Later, it means a copy is in use and the session is revoked.\nconst REFRESH_REUSE_GRACE_MS = 60_000\n\nexport interface AuthRuntimeOptions {\n readonly projectId: string\n readonly storage: Storage\n readonly security: SecurityDefinitionCatalog\n readonly config?: SixbAuthConfig\n}\n\nexport class AuthRuntime {\n private readonly projectId: string\n private readonly storage: Storage\n private readonly security: SecurityDefinitionCatalog\n private readonly config: ResolvedAuthConfig\n private readonly sessionCache: SessionCache | null\n\n constructor(options: AuthRuntimeOptions) {\n this.projectId = options.projectId\n this.storage = options.storage\n this.security = options.security\n this.config = resolveAuthConfig(options.config)\n this.sessionCache =\n this.config.session.cacheTtlMs > 0 ? new SessionCache(this.config.session.cacheTtlMs) : null\n\n if (this.isEnabled() && !this.storage.auth) {\n throw new AuthRuntimeError(\n \"auth_storage_missing\",\n \"[Sixb] Auth is enabled but storage.auth is not configured.\"\n )\n }\n }\n\n isEnabled(): boolean {\n const strategy = this.config.strategy\n return strategy !== null && strategy.kind !== \"disabled\" && strategy.disabled !== true\n }\n\n getStrategy(): AuthStrategy | null {\n return this.config.strategy\n }\n\n createSessionDeadlines(now: Date): {\n readonly expiresAt: Date\n readonly absoluteExpiresAt?: Date\n } {\n const absoluteTimeoutMs = this.config.session.absoluteTimeoutMs\n return {\n expiresAt: new Date(now.getTime() + this.config.session.idleTimeoutMs),\n ...(absoluteTimeoutMs === undefined\n ? {}\n : { absoluteExpiresAt: new Date(now.getTime() + absoluteTimeoutMs) }),\n }\n }\n\n getCookieOptions(options: AuthSessionResolutionOptions = {}): ResolvedAuthCookieOptions {\n return resolveAuthCookieOptionsForAudience(this.config.cookies, options.audience)\n }\n\n assertCanServeHttp(params: { readonly production: boolean }): void {\n const strategy = this.config.strategy\n\n if (!strategy) {\n if (params.production) {\n throw new AuthRuntimeError(\n \"production_auth_required\",\n \"[SixbServer] Auth is required in production. Configure auth or use an explicit disabled auth strategy.\"\n )\n }\n return\n }\n\n if (params.production && strategy.developmentOnly) {\n throw new AuthRuntimeError(\n \"production_auth_required\",\n `[SixbServer] Auth strategy '${strategy.id}' is development-only and cannot be used in production.`\n )\n }\n\n if (\n params.production &&\n (strategy.kind === \"disabled\" || strategy.disabled === true) &&\n strategy.allowDisabledInProduction !== true\n ) {\n throw new AuthRuntimeError(\n \"production_auth_required\",\n \"[SixbServer] Disabled auth in production requires allowDisabledInProduction: true.\"\n )\n }\n }\n\n async getSession(\n request: Request,\n options?: AuthSessionResolutionOptions & { readonly credentialSource?: \"session\" }\n ): Promise<AuthSessionResult>\n async getSession(\n request: Request,\n options: AuthSessionResolutionOptions & { readonly credentialSource: \"any\" }\n ): Promise<AuthRequestResult>\n async getSession(\n request: Request,\n options: AuthSessionResolutionOptions\n ): Promise<AuthRequestResult>\n async getSession(\n request: Request,\n options: AuthSessionResolutionOptions = {}\n ): Promise<AuthSessionResult | AuthRequestResult> {\n if (!this.isEnabled()) {\n return { authenticated: false, reason: \"auth_disabled\" }\n }\n\n const audience = resolveAuthSessionAudience(options.audience)\n\n if (options.credentialSource === \"any\") {\n const tokenValue = getBearerAccessTokenValue(request)\n if (tokenValue?.startsWith(SESSION_ACCESS_TOKEN_PREFIX)) {\n return this.resolveBearerSession(tokenValue)\n }\n if (tokenValue) {\n return this.resolveAccessTokenSession(request, tokenValue)\n }\n\n // An Authorization header that is not a usable token never falls back to the cookie.\n if (request.headers.get(\"authorization\")) {\n return { authenticated: false, reason: \"invalid_access_token\" }\n }\n }\n\n return this.resolveCookieSession(request, audience, options.sessionActivity)\n }\n\n private async resolveCookieSession(\n request: Request,\n audience: ReturnType<typeof resolveAuthSessionAudience>,\n activity: AuthSessionResolutionOptions[\"sessionActivity\"]\n ): Promise<AuthSessionResult> {\n const cookieOptions = this.getCookieOptions({ audience })\n const cookieValue = getCookie(request, cookieOptions.sessionCookieName)\n if (!cookieValue) {\n return { authenticated: false, reason: \"missing_cookie\" }\n }\n\n const parts = parseSessionCookieValue(cookieValue)\n if (!parts) {\n return { authenticated: false, reason: \"invalid_cookie\" }\n }\n\n const tokenHash = hashSessionSecret(parts.sessionSecret)\n const nowMs = Date.now()\n\n const cached = this.sessionCache?.get({\n sessionId: parts.sessionId,\n tokenHash,\n transport: \"cookie\",\n audience,\n nowMs,\n })\n if (cached) {\n if (activity !== \"foreground\" || !this.canRenewSession(cached.session, nowMs)) {\n return cached\n }\n this.sessionCache?.invalidate(parts.sessionId)\n }\n\n const storage = this.requireAuthStorage()\n const now = new Date(nowMs)\n let session = await storage.sessions.findValidByTokenHash({\n projectId: this.projectId,\n id: parts.sessionId,\n audience,\n tokenHash,\n now,\n })\n\n if (!session) {\n return { authenticated: false, reason: \"invalid_session\" }\n }\n\n let sessionRenewed = false\n if (activity === \"foreground\" && this.canRenewSession(session, nowMs)) {\n const renewed = await storage.sessions.renewIfValid({\n projectId: this.projectId,\n id: parts.sessionId,\n audience,\n tokenHash,\n now,\n expiresAt: this.getRenewedSessionExpiresAt(session, nowMs),\n })\n if (!renewed) {\n this.sessionCache?.invalidate(parts.sessionId)\n return { authenticated: false, reason: \"invalid_session\" }\n }\n session = renewed\n sessionRenewed = true\n }\n\n if (!sessionRenewed) {\n await this.touchSessionLastSeen(storage, session, now)\n }\n const result = await this.authenticateSession(storage, session, tokenHash, now)\n return result.authenticated && sessionRenewed ? { ...result, sessionRenewed: true } : result\n }\n\n private async resolveBearerSession(tokenValue: string): Promise<AuthSessionResult> {\n const parts = parseBearerSessionToken(SESSION_ACCESS_TOKEN_PREFIX, tokenValue)\n if (!parts) {\n return { authenticated: false, reason: \"invalid_access_token\" }\n }\n\n const tokenHash = hashSessionSecret(parts.sessionSecret)\n const now = new Date()\n const cached = this.sessionCache?.get({\n sessionId: parts.sessionId,\n tokenHash,\n transport: \"bearer\",\n nowMs: now.getTime(),\n })\n if (cached) {\n return cached\n }\n\n const storage = this.requireAuthStorage()\n const session = await storage.sessions.findValidByAccessTokenHash({\n projectId: this.projectId,\n id: parts.sessionId,\n tokenHash,\n now,\n })\n if (!session) {\n return { authenticated: false, reason: \"invalid_access_token\" }\n }\n\n await this.touchSessionLastSeen(storage, session, now)\n return this.authenticateSession(storage, session, tokenHash, now)\n }\n\n /** Resolve a live session's user and groups, the same way for cookies and bearer tokens. */\n private async authenticateSession(\n storage: AuthStorage,\n session: SessionRecord,\n tokenHash: string,\n now: Date\n ): Promise<AuthSessionResult> {\n const member = await this.loadActiveUser(storage, session.userId)\n if (!member.authenticated) {\n return member\n }\n\n const result: AuthenticatedAuthSession = {\n authenticated: true,\n credentialSource: \"session\",\n principal: { type: \"user\", id: member.user.id },\n user: member.user,\n session,\n groupIds: member.groupIds,\n }\n this.sessionCache?.set({\n sessionId: session.id,\n tokenHash,\n audience: session.audience,\n session: result,\n nowMs: now.getTime(),\n sessionExpiresAtMs: session.expiresAt.getTime(),\n sessionAbsoluteExpiresAtMs: session.absoluteExpiresAt?.getTime(),\n })\n return result\n }\n\n /**\n * The session a native client starts when the user approves it, and its first tokens. The caller\n * stores the session in the same transaction that consumes the approval.\n */\n prepareBearerSession(input: {\n readonly userId: string\n readonly clientName: string\n readonly now: Date\n }): {\n readonly session: CompleteDeviceAuthorizationInput[\"session\"]\n readonly tokens: BearerSessionTokens\n } {\n const sessionId = `ses_${randomUUID()}`\n const tokens = createBearerSessionTokens(sessionId)\n return {\n tokens,\n session: {\n id: sessionId,\n projectId: this.projectId,\n userId: input.userId,\n strategyId: \"device\",\n // A native session belongs to no web app. The column needs a value; nothing reads it.\n audience: DEFAULT_AUTH_SESSION_AUDIENCE,\n tokenHash: tokens.tokenHash,\n createdAt: input.now,\n ...this.createSessionDeadlines(input.now),\n bearer: {\n clientName: input.clientName,\n accessExpiresAt: new Date(input.now.getTime() + BEARER_ACCESS_TOKEN_TTL_MS),\n refreshTokenHash: tokens.refreshTokenHash,\n },\n },\n }\n }\n\n /**\n * Trade a native client's refresh token for new tokens. Returns null when the token is not\n * accepted; a replaced token presented after the grace window also revokes its session.\n */\n async refreshSession(\n refreshToken: string\n ): Promise<{ readonly tokens: BearerSessionTokens; readonly session: SessionRecord } | null> {\n const parts = parseBearerSessionToken(SESSION_REFRESH_TOKEN_PREFIX, refreshToken)\n if (!parts || !this.isEnabled()) {\n return null\n }\n\n const now = new Date()\n const tokens = createBearerSessionTokens(parts.sessionId)\n const result = await this.requireAuthStorage().sessions.rotateRefreshToken({\n projectId: this.projectId,\n id: parts.sessionId,\n refreshTokenHash: hashSessionSecret(parts.sessionSecret),\n now,\n reuseGraceMs: REFRESH_REUSE_GRACE_MS,\n next: {\n tokenHash: tokens.tokenHash,\n accessExpiresAt: new Date(now.getTime() + BEARER_ACCESS_TOKEN_TTL_MS),\n refreshTokenHash: tokens.refreshTokenHash,\n expiresAt: new Date(now.getTime() + this.config.session.idleTimeoutMs),\n },\n })\n this.sessionCache?.invalidate(parts.sessionId)\n return result.status === \"rotated\" ? { tokens, session: result.session } : null\n }\n\n private canRenewSession(session: SessionRecord, nowMs: number): boolean {\n if (session.expiresAt.getTime() - nowMs > this.config.session.renewalWindowMs) {\n return false\n }\n\n return this.getRenewedSessionExpiresAt(session, nowMs).getTime() > session.expiresAt.getTime()\n }\n\n private getRenewedSessionExpiresAt(session: SessionRecord, nowMs: number): Date {\n const idleExpiresAtMs = nowMs + this.config.session.idleTimeoutMs\n return new Date(\n session.absoluteExpiresAt\n ? Math.min(idleExpiresAtMs, session.absoluteExpiresAt.getTime())\n : idleExpiresAtMs\n )\n }\n\n private async resolveAccessTokenSession(\n request: Request,\n tokenValue: string\n ): Promise<AuthRequestResult> {\n const parts = parseAccessTokenValue(tokenValue)\n if (!parts) {\n return { authenticated: false, reason: \"invalid_access_token\" }\n }\n\n const storage = this.requireAuthStorage()\n const now = new Date()\n const accessToken = await storage.accessTokens.findValidByTokenHash({\n projectId: this.projectId,\n id: parts.tokenId,\n kind: parts.kind,\n tokenHash: hashAccessTokenSecret(parts.tokenSecret),\n now,\n })\n\n if (!accessToken) {\n return { authenticated: false, reason: \"invalid_access_token\" }\n }\n\n await this.touchAccessTokenLastUsed(storage, accessToken, request, now)\n\n if (accessToken.subject.type === \"user\") {\n const member = await this.loadActiveUser(storage, accessToken.subject.id)\n if (!member.authenticated) {\n return member\n }\n\n return {\n authenticated: true,\n credentialSource: \"accessToken\",\n principal: { type: \"user\", id: member.user.id },\n user: member.user,\n accessToken,\n groupIds: constrainTokenGroupIds(member.groupIds, accessToken),\n }\n }\n\n const serviceAccount = await storage.serviceAccounts.getById({\n projectId: this.projectId,\n id: accessToken.subject.id,\n })\n\n if (!serviceAccount) {\n return { authenticated: false, reason: \"missing_service_account\" }\n }\n\n if (serviceAccount.status === \"suspended\") {\n return { authenticated: false, reason: \"suspended_service_account\" }\n }\n\n const memberships = await storage.serviceAccountGroupMemberships.listForServiceAccount({\n projectId: this.projectId,\n serviceAccountId: serviceAccount.id,\n })\n\n return {\n authenticated: true,\n credentialSource: \"accessToken\",\n principal: { type: \"serviceAccount\", id: serviceAccount.id },\n serviceAccount,\n accessToken,\n groupIds: constrainTokenGroupIds(\n memberships.map((membership) => membership.groupId),\n accessToken\n ),\n }\n }\n\n /** Resolve a user and their current groups the same way for every credential. */\n private async loadActiveUser(\n storage: AuthStorage,\n userId: string\n ): Promise<\n | UnauthenticatedAuthSession\n | { readonly authenticated: true; readonly user: UserRecord; readonly groupIds: string[] }\n > {\n const user = await storage.users.getById({ projectId: this.projectId, id: userId })\n if (!user) {\n return { authenticated: false, reason: \"missing_user\" }\n }\n\n if (user.status === \"suspended\") {\n return { authenticated: false, reason: \"suspended_user\" }\n }\n\n const memberships = await storage.groupMemberships.listForUser({\n projectId: this.projectId,\n userId,\n })\n return {\n authenticated: true,\n user,\n groupIds: memberships.map((membership) => membership.groupId),\n }\n }\n\n // Best-effort refresh of `lastSeenAt` for the active-sessions view. Throttled,\n // and never allowed to fail an otherwise-valid request.\n private async touchSessionLastSeen(\n storage: AuthStorage,\n session: { readonly id: string; readonly lastSeenAt?: Date },\n now: Date\n ): Promise<void> {\n const lastSeen = session.lastSeenAt?.getTime() ?? 0\n if (now.getTime() - lastSeen < SESSION_TOUCH_INTERVAL_MS) {\n return\n }\n try {\n await storage.sessions.touch({ projectId: this.projectId, id: session.id, lastSeenAt: now })\n } catch {\n // Touch is non-critical; ignore failures so auth still succeeds.\n }\n }\n\n private async touchAccessTokenLastUsed(\n storage: AuthStorage,\n accessToken: AccessTokenRecord,\n request: Request,\n now: Date\n ): Promise<void> {\n const lastUsed = accessToken.lastUsedAt?.getTime() ?? 0\n if (now.getTime() - lastUsed < ACCESS_TOKEN_TOUCH_INTERVAL_MS) {\n return\n }\n\n try {\n await storage.accessTokens.touch({\n projectId: this.projectId,\n id: accessToken.id,\n lastUsedAt: now,\n userAgent: request.headers.get(\"user-agent\")?.trim() || undefined,\n ipAddress: getRequestClientAddress(request),\n })\n } catch {\n // Touch is non-critical; ignore failures so auth still succeeds.\n }\n }\n\n /**\n * Resolve a caller's authorization context. Grants resolve eagerly\n * (`groups -> roles -> grants`, subtype-expanded), so checks against it are synchronous.\n */\n contextFromSession(session: AuthenticatedRequestAuthSession): AuthorizationContext {\n return resolveAuthorizationContext({\n principal: session.principal,\n sessionId: callerSessionId(session),\n groupIds: session.groupIds,\n roles: this.security.listResolvedRoles(),\n })\n }\n\n async listPersonalAccessTokens(\n caller: AuthenticatedUserRequestSession\n ): Promise<ListPersonalAccessTokensResult> {\n const storage = this.requireAuthStorage()\n const result = await storage.accessTokens.list({\n projectId: this.projectId,\n kind: \"personal\",\n subject: { type: \"user\", id: caller.user.id },\n includeRevoked: true,\n order: \"desc\",\n limit: 100,\n })\n\n return { accessTokens: result.accessTokens }\n }\n\n async createPersonalAccessToken(\n caller: AuthenticatedUserRequestSession,\n input: CreatePersonalAccessTokenInput\n ): Promise<CreateAccessTokenResult> {\n assertSessionCaller(caller)\n const storage = this.requireAuthStorage()\n // A personal token can only carry groups the caller currently belongs to.\n const groupIds = constrainRequestedGroupIds(input.groupIds, caller.groupIds, {\n subject: \"personal access token\",\n })\n const credential = createAccessTokenCredential(\"personal\")\n const accessToken = await storage.accessTokens.create({\n id: credential.tokenId,\n projectId: this.projectId,\n name: input.name,\n kind: \"personal\",\n subject: { type: \"user\", id: caller.user.id },\n tokenHash: credential.tokenHash,\n groupIds,\n createdByPrincipal: caller.principal,\n createdBySessionId: callerSessionId(caller),\n createdAt: new Date(),\n expiresAt: input.expiresAt,\n })\n\n return { accessToken, tokenValue: credential.tokenValue }\n }\n\n async revokePersonalAccessToken(\n caller: AuthenticatedUserRequestSession,\n input: RevokePersonalAccessTokenInput\n ): Promise<RevokeAccessTokenResult> {\n const storage = this.requireAuthStorage()\n const token = await storage.accessTokens.getById({\n projectId: this.projectId,\n id: input.tokenId,\n })\n // Personal tokens are self-service only. A foreign or missing token id is\n // reported identically so callers cannot probe other principals' tokens.\n if (\n !token ||\n token.kind !== \"personal\" ||\n token.subject.type !== \"user\" ||\n token.subject.id !== caller.user.id\n ) {\n throw missingAccessTokenError(input.tokenId, this.projectId)\n }\n\n const accessToken = await storage.accessTokens.revoke({\n projectId: this.projectId,\n id: input.tokenId,\n revokedAt: new Date(),\n })\n\n return { accessToken }\n }\n\n async listServiceAccounts(\n caller: AuthenticatedUserRequestSession\n ): Promise<ListServiceAccountsResult> {\n const storage = this.requireAuthStorage()\n const result = await storage.serviceAccounts.list({\n projectId: this.projectId,\n order: \"desc\",\n limit: 100,\n })\n const withGroups = await Promise.all(\n result.serviceAccounts.map(async (serviceAccount) => ({\n serviceAccount,\n groupIds: await this.listServiceAccountGroupIds(storage, serviceAccount.id),\n }))\n )\n\n // A caller only sees the service accounts it is allowed to manage, so\n // listing never leaks the groups of more-privileged accounts.\n return {\n serviceAccounts: withGroups.filter(({ groupIds }) =>\n callerCanManageServiceAccount(caller.groupIds, groupIds)\n ),\n }\n }\n\n async createServiceAccount(\n caller: AuthenticatedUserRequestSession,\n input: CreateServiceAccountInput\n ): Promise<CreateServiceAccountResult> {\n const storage = this.requireAuthStorage()\n // A caller can only place a service account in groups it itself belongs to.\n const groupIds =\n constrainRequestedGroupIds(input.groupIds, caller.groupIds, {\n subject: \"service account\",\n }) ?? []\n const now = new Date()\n const serviceAccount = await storage.serviceAccounts.create({\n id: input.id ?? `svc_${randomUUID()}`,\n projectId: this.projectId,\n name: input.name,\n description: input.description,\n createdByPrincipal: caller.principal,\n createdBySessionId: callerSessionId(caller),\n createdAt: now,\n updatedAt: now,\n })\n const groupMemberships: ServiceAccountGroupMembershipRecord[] = []\n for (const groupId of groupIds) {\n groupMemberships.push(\n await storage.serviceAccountGroupMemberships.upsert({\n projectId: this.projectId,\n serviceAccountId: serviceAccount.id,\n groupId,\n source: \"manual\",\n createdAt: now,\n })\n )\n }\n\n return { serviceAccount, groupMemberships }\n }\n\n async disableServiceAccount(\n caller: AuthenticatedUserRequestSession,\n input: DisableServiceAccountInput\n ): Promise<DisableServiceAccountResult> {\n const storage = this.requireAuthStorage()\n const { serviceAccount, groupIds } = await this.requireManageableServiceAccount(\n storage,\n caller.groupIds,\n input.serviceAccountId\n )\n const updated = await storage.serviceAccounts.update({\n projectId: this.projectId,\n id: serviceAccount.id,\n status: \"suspended\",\n updatedAt: new Date(),\n })\n\n return { serviceAccount: updated, groupIds }\n }\n\n async listServiceAccountAccessTokens(\n caller: AuthenticatedUserRequestSession,\n input: ListServiceAccountAccessTokensInput\n ): Promise<ListServiceAccountAccessTokensResult> {\n const storage = this.requireAuthStorage()\n const { serviceAccount } = await this.requireManageableServiceAccount(\n storage,\n caller.groupIds,\n input.serviceAccountId\n )\n const result = await storage.accessTokens.list({\n projectId: this.projectId,\n kind: \"serviceAccount\",\n subject: { type: \"serviceAccount\", id: serviceAccount.id },\n includeRevoked: true,\n order: \"desc\",\n limit: 100,\n })\n\n return { serviceAccount, accessTokens: result.accessTokens }\n }\n\n async createServiceAccountAccessToken(\n caller: AuthenticatedUserRequestSession,\n input: CreateServiceAccountAccessTokenInput\n ): Promise<CreateServiceAccountAccessTokenResult> {\n assertSessionCaller(caller)\n const storage = this.requireAuthStorage()\n const { serviceAccount, groupIds: serviceAccountGroupIds } =\n await this.requireManageableServiceAccount(storage, caller.groupIds, input.serviceAccountId)\n\n if (serviceAccount.status === \"suspended\") {\n throw new AuthStorageError(\n \"suspended_service_account\",\n `[Sixb] Service account '${input.serviceAccountId}' is suspended for project '${this.projectId}'.`\n )\n }\n\n // The token can only carry groups the service account already holds; the\n // manageability check above guarantees those are a subset of the caller's\n // own groups, so the caller can never mint privileges it lacks.\n const groupIds = constrainRequestedGroupIds(input.groupIds, serviceAccountGroupIds, {\n subject: \"service account token\",\n })\n const credential = createAccessTokenCredential(\"serviceAccount\")\n const accessToken = await storage.accessTokens.create({\n id: credential.tokenId,\n projectId: this.projectId,\n name: input.name,\n kind: \"serviceAccount\",\n subject: { type: \"serviceAccount\", id: serviceAccount.id },\n tokenHash: credential.tokenHash,\n groupIds,\n createdByPrincipal: caller.principal,\n createdBySessionId: callerSessionId(caller),\n createdAt: new Date(),\n expiresAt: input.expiresAt,\n })\n\n return { accessToken, tokenValue: credential.tokenValue, serviceAccount }\n }\n\n async revokeServiceAccountAccessToken(\n caller: AuthenticatedUserRequestSession,\n input: RevokeServiceAccountAccessTokenInput\n ): Promise<RevokeServiceAccountAccessTokenResult> {\n const storage = this.requireAuthStorage()\n const { serviceAccount } = await this.requireManageableServiceAccount(\n storage,\n caller.groupIds,\n input.serviceAccountId\n )\n const token = await storage.accessTokens.getById({\n projectId: this.projectId,\n id: input.tokenId,\n })\n // The token must belong to the service account named in the request.\n if (\n !token ||\n token.kind !== \"serviceAccount\" ||\n token.subject.type !== \"serviceAccount\" ||\n token.subject.id !== serviceAccount.id\n ) {\n throw missingAccessTokenError(input.tokenId, this.projectId)\n }\n\n const accessToken = await storage.accessTokens.revoke({\n projectId: this.projectId,\n id: input.tokenId,\n revokedAt: new Date(),\n })\n\n return { serviceAccount, accessToken }\n }\n\n /**\n * Resolve a service account the caller is allowed to manage.\n *\n * A caller may manage a service account only when it belongs to every group\n * the account is in (\"you can manage what you could have created\"). This\n * confines token minting, disabling, and revocation to privileges the caller\n * already holds and prevents a service-account token from outliving the\n * caller's own access. Missing and non-manageable accounts raise the same\n * error so callers cannot probe which privileged accounts exist.\n */\n private async requireManageableServiceAccount(\n storage: AuthStorage,\n callerGroupIds: readonly string[],\n serviceAccountId: string\n ): Promise<{\n readonly serviceAccount: ServiceAccountRecord\n readonly groupIds: readonly string[]\n }> {\n const serviceAccount = await storage.serviceAccounts.getById({\n projectId: this.projectId,\n id: serviceAccountId,\n })\n const groupIds = serviceAccount\n ? await this.listServiceAccountGroupIds(storage, serviceAccountId)\n : []\n\n if (!serviceAccount || !callerCanManageServiceAccount(callerGroupIds, groupIds)) {\n throw new AuthStorageError(\n \"missing_service_account\",\n `[Sixb] Service account '${serviceAccountId}' not found for project '${this.projectId}'.`\n )\n }\n\n return { serviceAccount, groupIds }\n }\n\n private async listServiceAccountGroupIds(\n storage: AuthStorage,\n serviceAccountId: string\n ): Promise<readonly string[]> {\n const memberships = await storage.serviceAccountGroupMemberships.listForServiceAccount({\n projectId: this.projectId,\n serviceAccountId,\n })\n return memberships.map((membership) => membership.groupId)\n }\n\n async getInvitationOptions(\n caller: AuthenticatedUserRequestSession\n ): Promise<GetInvitationOptionsResult> {\n const scope = this.resolveMembershipPolicyScopeForUser(caller.groupIds)\n const inviteScope = scope.operations.invite\n const groups = this.scopedGroupOptions(inviteScope.groupIds)\n const hasInviteMembershipPolicy = inviteScope.policyIds.length > 0\n\n return {\n groups,\n canInviteWithoutGroups: hasInviteMembershipPolicy,\n capabilities: {\n createInvitation: this.resolveCreateInvitationCapability({\n canInvite: hasInviteMembershipPolicy,\n }),\n },\n }\n }\n\n /**\n * Resolve what a caller's membership policies let it do, from its groups alone.\n *\n * This is the public form of the question the member-admin routes ask internally. It takes groups\n * rather than a `Request` so project code and tests can ask it without a session — an\n * `AuthorizationContext` carries `groupIds` for exactly this. Definitions and ids are both accepted,\n * because a session hands you ids and your own code has the definition.\n */\n getMembershipCapabilities(input: {\n readonly callerGroups: readonly GroupReference[]\n }): MembershipCapabilities {\n return membershipCapabilities(\n this.resolveMembershipPolicyScopeForUser(groupIdsOf(input.callerGroups))\n )\n }\n\n async getMembershipOptions(\n caller: AuthenticatedUserRequestSession\n ): Promise<GetMembershipOptionsResult> {\n const scope = this.resolveMembershipPolicyScopeForUser(caller.groupIds)\n\n return {\n // The member-admin edit-groups dialog assigns from the `assignGroups` scope.\n groups: this.scopedGroupOptions(scope.operations.assignGroups.groupIds),\n capabilities: membershipCapabilities(scope).holds,\n }\n }\n\n async listMembers(\n caller: AuthenticatedUserRequestSession,\n input: ListMembersInput = {}\n ): Promise<ListMembersResult> {\n const storage = this.requireAuthStorage()\n const scope = this.resolveMembershipPolicyScopeForUser(caller.groupIds)\n const { limit, offset } = normalizePagination(input)\n\n // First slice loads all users, attaches groups, then filters and paginates in\n // memory. Adequate for expected member counts; revisit with indexed queries if\n // projects grow large.\n const result = await storage.users.list({ projectId: this.projectId, order: input.order })\n\n const members: MemberSummary[] = []\n for (const user of result.users) {\n const { groupIds, managedGroupIds } = memberGroups(\n await storage.groupMemberships.listForUser({ projectId: this.projectId, userId: user.id })\n )\n\n // Visibility is scope-based: a member is listed when the caller can assign\n // groups or suspend over the member's current groups. This keeps out-of-scope\n // users' emails, status, and group shape hidden.\n const canAssignGroups = canPerformMembershipOperation(scope, \"assignGroups\", groupIds)\n const canSuspendScope = canPerformMembershipOperation(scope, \"suspend\", groupIds)\n if (!canAssignGroups && !canSuspendScope) {\n continue\n }\n\n const isSelf = user.id === caller.user.id\n members.push({\n user,\n groupIds,\n managedGroupIds,\n capabilities: {\n assignGroups: canAssignGroups,\n // A caller cannot suspend themselves; reactivation only applies to a\n // suspended member and never restores sessions.\n suspend: canSuspendScope && !isSelf && user.status === \"active\",\n reactivate: canSuspendScope && user.status === \"suspended\",\n },\n })\n }\n\n const page = paginate(members, { limit, offset })\n return { members: page.page, hasMore: page.hasMore, total: page.total }\n }\n\n async updateMemberGroups(\n caller: AuthenticatedUserRequestSession,\n input: UpdateMemberGroupsInput\n ): Promise<UpdateMemberGroupsResult> {\n const storage = this.requireAuthStorage()\n const scope = this.resolveMembershipPolicyScopeForUser(caller.groupIds)\n const userId = assertNonEmpty(input.userId, \"User id\")\n\n // The target must exist and every group it currently holds must be assignable\n // by the caller. Missing and out-of-scope targets raise the same error so a\n // caller cannot probe which users exist.\n const {\n user,\n groupIds: currentGroupIds,\n managedGroupIds: currentManagedGroupIds,\n } = await this.requireManageableMember(storage, scope, \"assignGroups\", userId)\n\n const requestedGroupIds = this.resolveMemberGroupIds(input.groupIds)\n // Every requested group must fall within the caller's assign scope.\n const missing = missingMembershipGroupIds(scope, \"assignGroups\", requestedGroupIds)\n if (missing.length > 0) {\n throw new AuthRuntimeError(\n \"authorization_denied\",\n `[Sixb] The current user is not allowed to assign group(s): ${missing.join(\", \")}.`\n )\n }\n\n const current = new Set(currentGroupIds)\n const requested = new Set(requestedGroupIds)\n const additions = requestedGroupIds.filter((groupId) => !current.has(groupId))\n const removals = currentGroupIds.filter((groupId) => !requested.has(groupId))\n\n // The identity provider would restore these at the user's next sign-in.\n const managedRemovals = removals.filter((groupId) => currentManagedGroupIds.includes(groupId))\n if (managedRemovals.length > 0) {\n throw new AuthRuntimeError(\n \"invalid_auth_input\",\n `[Sixb] Group(s) ${managedRemovals.join(\", \")} are managed by the identity provider. Change them there; they sync at the user's next sign-in.`\n )\n }\n\n // Self-protection: a caller may add in-scope groups to themselves but may not\n // remove any of their own current groups, so they cannot lock themselves out.\n if (user.id === caller.user.id && removals.length > 0) {\n throw new AuthRuntimeError(\n \"authorization_denied\",\n \"[Sixb] The current user cannot remove their own groups.\"\n )\n }\n\n const now = new Date()\n for (const groupId of additions) {\n await storage.groupMemberships.upsert({\n projectId: this.projectId,\n userId: user.id,\n groupId,\n source: \"manual\",\n createdAt: now,\n })\n }\n for (const groupId of removals) {\n await storage.groupMemberships.remove({\n projectId: this.projectId,\n userId: user.id,\n groupId,\n })\n }\n\n // The user's cached session carries its old groups; drop it so the next\n // request resolves the updated membership.\n this.sessionCache?.invalidateUser(user.id)\n\n const { groupIds, managedGroupIds } = memberGroups(\n await storage.groupMemberships.listForUser({ projectId: this.projectId, userId: user.id })\n )\n\n return { user, groupIds, managedGroupIds }\n }\n\n async suspendMember(\n caller: AuthenticatedUserRequestSession,\n input: SuspendMemberInput\n ): Promise<SuspendMemberResult> {\n const storage = this.requireAuthStorage()\n const scope = this.resolveMembershipPolicyScopeForUser(caller.groupIds)\n const userId = assertNonEmpty(input.userId, \"User id\")\n const { user, groupIds, managedGroupIds } = await this.requireManageableMember(\n storage,\n scope,\n \"suspend\",\n userId\n )\n\n if (user.id === caller.user.id) {\n throw new AuthRuntimeError(\n \"authorization_denied\",\n \"[Sixb] The current user cannot suspend themselves.\"\n )\n }\n\n const suspended = await storage.suspendUserAndRevokeSessions({\n projectId: this.projectId,\n userId: user.id,\n suspendedAt: new Date(),\n })\n // Storage revoked the user's sessions; drop cached copies so the suspended\n // user stops authenticating immediately.\n this.sessionCache?.invalidateUser(user.id)\n\n return { user: suspended, groupIds, managedGroupIds }\n }\n\n async reactivateMember(\n caller: AuthenticatedUserRequestSession,\n input: ReactivateMemberInput\n ): Promise<ReactivateMemberResult> {\n const storage = this.requireAuthStorage()\n const scope = this.resolveMembershipPolicyScopeForUser(caller.groupIds)\n const userId = assertNonEmpty(input.userId, \"User id\")\n const { user, groupIds, managedGroupIds } = await this.requireManageableMember(\n storage,\n scope,\n \"suspend\",\n userId\n )\n\n // Reactivation restores access but not sessions; the user signs in again.\n const reactivated = await storage.users.updateStatus({\n projectId: this.projectId,\n id: user.id,\n status: \"active\",\n updatedAt: new Date(),\n })\n\n return { user: reactivated, groupIds, managedGroupIds }\n }\n\n /** The caller's active sessions across every audience, most recently active first. */\n async listSessions(caller: AuthenticatedUserRequestSession): Promise<readonly SessionRecord[]> {\n return this.requireAuthStorage().sessions.listActiveByUserId({\n projectId: this.projectId,\n userId: caller.user.id,\n now: new Date(),\n })\n }\n\n /**\n * End one of the caller's own sessions. Returns false for a missing session or one that belongs\n * to another user, so a caller cannot probe other accounts.\n */\n async revokeSession(\n caller: AuthenticatedUserRequestSession,\n sessionId: string\n ): Promise<boolean> {\n const storage = this.requireAuthStorage()\n const session = await storage.sessions.getById({ projectId: this.projectId, id: sessionId })\n if (!session || session.userId !== caller.user.id) {\n return false\n }\n\n await storage.sessions.revoke({\n projectId: this.projectId,\n id: sessionId,\n revokedAt: new Date(),\n })\n this.sessionCache?.invalidate(sessionId)\n return true\n }\n\n /** End every active session of the caller, across audiences. Returns how many ended. */\n async revokeAllSessions(caller: AuthenticatedUserRequestSession): Promise<number> {\n const revoked = await this.requireAuthStorage().sessions.revokeActiveForUser({\n projectId: this.projectId,\n userId: caller.user.id,\n revokedAt: new Date(),\n })\n for (const session of revoked) {\n this.sessionCache?.invalidate(session.id)\n }\n return revoked.length\n }\n\n private scopedGroupOptions(groupIds: ReadonlySet<string>): InvitationGroupOption[] {\n return this.security\n .listGroups()\n .filter((group) => groupIds.has(group.id))\n .map((group) => ({\n id: group.id,\n ...(group.label !== undefined ? { label: group.label } : {}),\n ...(group.description !== undefined ? { description: group.description } : {}),\n }))\n }\n\n /**\n * Resolve a member the caller may act on for the given operation.\n *\n * A member is manageable only when every group they currently hold is within\n * the caller's scope for that operation (a group-less member is manageable by\n * any holder of the operation). Missing and out-of-scope members raise the same\n * error so callers cannot probe which users exist or how they are grouped.\n */\n private async requireManageableMember(\n storage: AuthStorage,\n scope: MembershipPolicyScope,\n operation: MembershipOperation,\n userId: string\n ): Promise<{\n readonly user: UserRecord\n readonly groupIds: readonly string[]\n readonly managedGroupIds: readonly string[]\n }> {\n const user = await storage.users.getById({ projectId: this.projectId, id: userId })\n const { groupIds, managedGroupIds } = memberGroups(\n user ? await storage.groupMemberships.listForUser({ projectId: this.projectId, userId }) : []\n )\n\n if (!user || !canPerformMembershipOperation(scope, operation, groupIds)) {\n throw new AuthStorageError(\n \"missing_user\",\n `[Sixb] User '${userId}' not found for project '${this.projectId}'.`\n )\n }\n\n return { user, groupIds, managedGroupIds }\n }\n\n private resolveMemberGroupIds(input: readonly string[]): readonly string[] {\n const groupIds = [...new Set(input.map((groupId) => assertNonEmpty(groupId, \"Group id\")))]\n for (const groupId of groupIds) {\n if (!this.security.getGroupById(groupId)) {\n throw new AuthRuntimeError(\n \"invalid_auth_input\",\n `[Sixb] Unknown group '${groupId}'. Add it to 'security/groups/' or pass it to createSixb({ groups }).`\n )\n }\n }\n return groupIds\n }\n\n async invite(\n caller: AuthenticatedUserRequestSession,\n input: InviteUserInput,\n destination: InvitationDestination\n ): Promise<InviteUserResult> {\n const authStorage = this.requireAuthStorage()\n const now = new Date()\n const groupIds = this.resolveInviteGroupIds(input)\n this.assertCanManageInvitationGroups(caller.groupIds, groupIds)\n\n const strategy = this.getStrategy()\n if (!isInvitationDeliveryAuthStrategy(strategy)) {\n throw new AuthRuntimeError(\n \"invalid_auth_config\",\n \"[Sixb] The active auth strategy does not support invitations.\"\n )\n }\n\n await this.assertCanInviteRecipient(strategy, authStorage, input.email, now)\n this.assertInvitationApplicationAccess(groupIds, destination.audience)\n\n const invitation = await authStorage.invitations.createOrUpdateActive({\n id: `inv_${randomUUID()}`,\n projectId: this.projectId,\n email: input.email,\n groupIds,\n createdByPrincipal: caller.principal,\n createdBySessionId: callerSessionId(caller),\n createdAt: now,\n updatedAt: now,\n expiresAt: resolveInvitationExpiresAt(input.expiresAt, now),\n })\n\n let delivery: InviteDeliveryResult\n try {\n delivery = await strategy.deliverInvitation({\n projectId: this.projectId,\n authStorage,\n invitation,\n audience: destination.audience,\n returnTo: destination.returnTo,\n requestOrigin: destination.requestOrigin,\n revealLink: input.revealLink,\n now,\n })\n } catch (error) {\n await this.revokeInvitationAfterDeliveryFailure(authStorage, invitation, now)\n throw error\n }\n\n // The runtime owns the disclosure boundary even for third-party strategies. A strategy that\n // accidentally returns a link must not expose it unless the caller opted in explicitly.\n delivery = {\n status: delivery.status,\n ...(input.revealLink && delivery.link ? { link: delivery.link } : {}),\n }\n\n if (delivery.status === \"not_supported\") {\n return { invitation, delivery }\n }\n\n if (delivery.status !== \"sent\") {\n await this.revokeInvitationAfterDeliveryFailure(authStorage, invitation, now)\n throw this.createInvitationDeliveryError(delivery.status)\n }\n\n return { invitation, delivery }\n }\n\n async listInvitations(\n caller: AuthenticatedUserRequestSession,\n input: ListInvitationsInput = {}\n ): Promise<ListInvitationsResult> {\n const authStorage = this.requireAuthStorage()\n const { limit, offset } = normalizePagination(input)\n const result = await authStorage.invitations.list({\n projectId: this.projectId,\n email: input.email,\n statuses: input.statuses,\n order: input.order,\n })\n const scope = this.resolveMembershipPolicyScopeForUser(caller.groupIds)\n const manageable = result.invitations.filter((invitation) =>\n canPerformMembershipOperation(scope, \"invite\", invitation.groupIds)\n )\n const page = paginate(manageable, { limit, offset })\n\n return {\n invitations: page.page,\n hasMore: page.hasMore,\n total: page.total,\n }\n }\n\n async revokeInvitation(\n caller: AuthenticatedUserRequestSession,\n input: RevokeInvitationInput\n ): Promise<RevokeInvitationResult> {\n const authStorage = this.requireAuthStorage()\n const invitationId = assertNonEmpty(input.invitationId, \"Invitation id\")\n const invitation = await authStorage.invitations.getById({\n projectId: this.projectId,\n id: invitationId,\n })\n\n if (!invitation) {\n throw new AuthStorageError(\n \"missing_invitation\",\n `[Sixb] Invitation '${invitationId}' not found for project '${this.projectId}'.`\n )\n }\n\n this.assertCanManageInvitationGroups(caller.groupIds, invitation.groupIds)\n\n if (invitation.status !== \"pending\") {\n throw new AuthRuntimeError(\n \"invalid_auth_input\",\n `[Sixb] Invitation '${invitationId}' is already ${invitation.status} and cannot be revoked.`\n )\n }\n\n return {\n invitation: await authStorage.invitations.revoke({\n projectId: this.projectId,\n id: invitation.id,\n revokedAt: new Date(),\n }),\n }\n }\n\n private requireAuthStorage() {\n if (!this.storage.auth) {\n throw new AuthRuntimeError(\n \"auth_storage_missing\",\n \"[Sixb] Auth is enabled but storage.auth is not configured.\"\n )\n }\n\n return this.storage.auth\n }\n\n private resolveInviteGroupIds(input: InviteUserInput): readonly string[] {\n if (input.groups && input.groupIds) {\n throw new AuthRuntimeError(\n \"invalid_auth_input\",\n \"[Sixb] Invitation input cannot provide both groups and groupIds.\"\n )\n }\n\n const rawGroupIds =\n input.groupIds ?? input.groups?.map((group) => assertNonEmpty(group.id, \"Group id\")) ?? []\n const groupIds = [...new Set(rawGroupIds.map((groupId) => assertNonEmpty(groupId, \"Group id\")))]\n\n for (const groupId of groupIds) {\n if (!this.security.getGroupById(groupId)) {\n throw new AuthRuntimeError(\n \"invalid_auth_input\",\n `[Sixb] Unknown invitation group '${groupId}'. Add it to 'security/groups/' or pass it to createSixb({ groups }).`\n )\n }\n }\n\n return groupIds\n }\n\n private resolveMembershipPolicyScopeForUser(callerGroupIds: readonly string[]) {\n return resolveMembershipPolicyScope({\n membershipPolicies: this.security.listMembershipPolicies(),\n callerGroupIds,\n })\n }\n\n private resolveCreateInvitationCapability(input: {\n readonly canInvite: boolean\n }): GetInvitationOptionsResult[\"capabilities\"][\"createInvitation\"] {\n if (!isInvitationDeliveryAuthStrategy(this.getStrategy())) {\n return { state: \"disabled\", reason: \"invitation_delivery_not_supported\" }\n }\n\n if (!input.canInvite) {\n return { state: \"disabled\", reason: \"missing_membership_policy\" }\n }\n\n return { state: \"enabled\" }\n }\n\n private assertInvitationApplicationAccess(\n groupIds: readonly string[],\n audience: AuthSessionAudience\n ): void {\n // Check only the groups this invitation assigns. Existing memberships may\n // be outside the caller's policy scope and must not affect this response.\n const roles = this.security.listResolvedRoles()\n const authorization = resolveAuthorizationContext({\n principal: { type: \"user\", id: \"invited-user\" },\n groupIds,\n roles,\n })\n\n if (canAccessApplication(authorization, roles, audience)) return\n\n throw new AuthRuntimeError(\n \"authorization_denied\",\n `[Sixb] Invitation groups do not grant access to application '${audience}'.`\n )\n }\n\n private async assertCanInviteRecipient(\n strategy: InvitationDeliveryAuthStrategy,\n authStorage: AuthStorage,\n email: string,\n now: Date\n ): Promise<void> {\n if (!strategy.validateInvitationRecipient) {\n return\n }\n\n const result = await strategy.validateInvitationRecipient({\n projectId: this.projectId,\n authStorage,\n email,\n now,\n })\n\n if (result.status === \"allowed\") {\n return\n }\n\n throw createInvitationRecipientError(result.status, result.email ?? email)\n }\n\n private async revokeInvitationAfterDeliveryFailure(\n authStorage: AuthStorage,\n invitation: InvitationRecord,\n failedAt: Date\n ): Promise<void> {\n await authStorage.invitations.revoke({\n projectId: this.projectId,\n id: invitation.id,\n revokedAt: failedAt,\n })\n }\n\n private createInvitationDeliveryError(\n status: Exclude<InviteDeliveryStatus, \"sent\" | \"not_supported\">\n ) {\n if (status === \"rate_limited\") {\n return new AuthRuntimeError(\n \"rate_limited\",\n \"[Sixb] Invitation delivery is rate limited. Try again later.\"\n )\n }\n\n return new AuthRuntimeError(\n \"invalid_auth_input\",\n \"[Sixb] Invitation delivery was skipped by the active auth strategy.\"\n )\n }\n\n private assertCanManageInvitationGroups(\n callerGroupIds: readonly string[],\n groupIds: readonly string[]\n ): void {\n const scope = this.resolveMembershipPolicyScopeForUser(callerGroupIds)\n\n if (canPerformMembershipOperation(scope, \"invite\", groupIds)) {\n return\n }\n\n if (groupIds.length === 0) {\n throw new AuthRuntimeError(\n \"authorization_denied\",\n \"[Sixb] The current user is not allowed to create or manage invitations without groups.\"\n )\n }\n\n const missing = missingMembershipGroupIds(scope, \"invite\", groupIds)\n throw new AuthRuntimeError(\n \"authorization_denied\",\n `[Sixb] The current user is not allowed to create or manage invitations for group(s): ${missing.join(\", \")}.`\n )\n }\n}\n\nfunction memberGroups(memberships: readonly GroupMembershipRecord[]): {\n readonly groupIds: readonly string[]\n readonly managedGroupIds: readonly string[]\n} {\n return {\n groupIds: memberships.map((membership) => membership.groupId),\n managedGroupIds: memberships\n .filter((membership) => membership.source === \"directory\")\n .map((membership) => membership.groupId),\n }\n}\n\n/** The interactive session a caller authenticated with, when it used one. */\nfunction callerSessionId(caller: AuthenticatedRequestAuthSession): string | undefined {\n return caller.credentialSource === \"session\" ? caller.session.id : undefined\n}\n\n// Access tokens are created only by a signed-in person, never by another access token. A token\n// minting one could hand out more groups or a later expiry than it carries, and what it minted\n// would outlive its own revocation.\nfunction assertSessionCaller(caller: AuthenticatedUserRequestSession): void {\n if (caller.credentialSource !== \"session\") {\n throw new AuthRuntimeError(\n \"authorization_denied\",\n \"[Sixb] Access tokens can only be created from a signed-in session, not with another access token.\"\n )\n }\n}\n\nfunction constrainTokenGroupIds(\n principalGroupIds: readonly string[],\n accessToken: AccessTokenRecord\n): readonly string[] {\n if (accessToken.groupIds === undefined) {\n return principalGroupIds\n }\n\n const allowed = new Set(accessToken.groupIds)\n return principalGroupIds.filter((groupId) => allowed.has(groupId))\n}\n\n// A caller may manage a service account only when it belongs to every group the\n// account is in, so managing it can never grant more than the caller already\n// has. An account with no groups is powerless and therefore freely manageable.\nfunction callerCanManageServiceAccount(\n callerGroupIds: readonly string[],\n serviceAccountGroupIds: readonly string[]\n): boolean {\n const callerGroups = new Set(callerGroupIds)\n return serviceAccountGroupIds.every((groupId) => callerGroups.has(groupId))\n}\n\nfunction missingAccessTokenError(tokenId: string, projectId: string): AuthStorageError {\n return new AuthStorageError(\n \"missing_access_token\",\n `[Sixb] Access token '${tokenId}' not found for project '${projectId}'.`\n )\n}\n\n/**\n * Restrict the groups requested for a credential to a set the caller is allowed\n * to grant. Returns undefined when no groups were requested (an unconstrained\n * credential) and throws when a requested group falls outside the allowed set.\n */\nfunction constrainRequestedGroupIds(\n input: readonly string[] | undefined,\n allowedGroupIds: readonly string[],\n options: { readonly subject: string }\n): readonly string[] | undefined {\n const groupIds = normalizeRequestedGroupIds(input)\n if (!groupIds) {\n return undefined\n }\n\n const allowed = new Set(allowedGroupIds)\n for (const groupId of groupIds) {\n if (!allowed.has(groupId)) {\n throw new AuthRuntimeError(\n \"authorization_denied\",\n `[Sixb] Group '${groupId}' cannot be assigned to this ${options.subject}.`\n )\n }\n }\n\n return groupIds\n}\n\nfunction normalizeRequestedGroupIds(\n input: readonly string[] | undefined\n): readonly string[] | null {\n if (input === undefined) {\n return null\n }\n\n const groupIds: string[] = []\n for (const raw of input) {\n const groupId = raw.trim()\n if (!groupId) {\n throw new AuthRuntimeError(\n \"invalid_auth_input\",\n \"[Sixb] Group ids cannot be empty when creating auth credentials.\"\n )\n }\n if (!groupIds.includes(groupId)) {\n groupIds.push(groupId)\n }\n }\n\n return groupIds\n}\n\nfunction createInvitationRecipientError(\n status: Exclude<InvitationRecipientStatus, \"allowed\">,\n email: string\n): AuthRuntimeError {\n if (status === \"rate_limited\") {\n return new AuthRuntimeError(\n \"rate_limited\",\n \"[Sixb] Invitation delivery is rate limited. Try again later.\"\n )\n }\n\n if (status === \"invalid_email\") {\n return new AuthRuntimeError(\"invalid_auth_input\", \"[Sixb] Invitation email is invalid.\")\n }\n\n if (status === \"disallowed_domain\") {\n return new AuthRuntimeError(\n \"invalid_auth_input\",\n `[Sixb] Invitation email '${email}' is not allowed by the active auth strategy.`\n )\n }\n\n return new AuthRuntimeError(\n \"invalid_auth_input\",\n `[Sixb] Invitation email '${email}' belongs to a suspended user.`\n )\n}\n\n/**\n * The public shape of a resolved membership policy scope.\n *\n * `holds` answers \"does any policy grant this at all\", which is what a UI needs to enable a control;\n * `covers` answers the scoped question for one member. Neither is the authorization decision — the\n * runtime methods add rules on top, which is why the third is named for coverage and not for permission.\n */\nfunction membershipCapabilities(scope: MembershipPolicyScope): MembershipCapabilities {\n return {\n holds: {\n invite: scope.operations.invite.policyIds.length > 0,\n assignGroups: scope.operations.assignGroups.policyIds.length > 0,\n suspend: scope.operations.suspend.policyIds.length > 0,\n },\n assignableGroupIds: [...scope.operations.assignGroups.groupIds],\n covers: (operation, memberGroups) =>\n canPerformMembershipOperation(scope, operation, groupIdsOf(memberGroups)),\n }\n}\n\n/**\n * Normalize the two ways a caller can name a group.\n *\n * Ids come from sessions and stored memberships, definitions come from code. Every entry point that\n * takes `GroupReference` funnels through here, so nothing downstream ever sees a definition where an\n * id belongs.\n */\nfunction groupIdsOf(groups: readonly GroupReference[]): readonly string[] {\n return groups.map((group) => (typeof group === \"string\" ? group : group.id))\n}\n",
|
|
9
9
|
"import type { ApplicationDefinition } from \"./types\"\n\n/** Browser applications that can be protected by role grants. */\nexport const applications = {\n atlas: { kind: \"application\", id: \"atlas\", label: \"Atlas\" },\n app: { kind: \"application\", id: \"app\", label: \"Custom app\" },\n} as const satisfies Readonly<Record<string, ApplicationDefinition>>\n\nexport const APPLICATION_IDS: ReadonlySet<string> = new Set(\n Object.values(applications).map((application) => application.id)\n)\n",
|
|
10
|
-
"/**\n * Breadth selectors for role grants.\n *\n * `every.object()`, `every.action()`, and friends select a capability's whole registered universe;\n * `.except([...])` removes specific definitions. They are plain data carrying no enforcement logic —\n * `can.view/apply/run/access` turn them into grants, and the authorization engine expands them to\n * concrete id sets at startup (after applying `except`).\n *\n * They live under one `every` namespace on purpose. Spending seven of the best identifiers in\n * `@sixb/core` — `actions`, `workflows`, `syncs`, … — on an auxiliary subsystem collided with the\n * primitives themselves and with
|
|
11
|
-
"export class ActionDefinitionError extends Error {\n readonly name = \"ActionDefinitionError\"\n}\n\nexport
|
|
10
|
+
"/**\n * Breadth selectors for role grants.\n *\n * `every.object()`, `every.action()`, and friends select a capability's whole registered universe;\n * `.except([...])` removes specific definitions. They are plain data carrying no enforcement logic —\n * `can.view/apply/run/access` turn them into grants, and the authorization engine expands them to\n * concrete id sets at startup (after applying `except`).\n *\n * They live under one `every` namespace on purpose. Spending seven of the best identifiers in\n * `@sixb/core` — `actions`, `workflows`, `syncs`, … — on an auxiliary subsystem collided with the\n * primitives themselves and with client builders such as `logs.actions()`.\n */\n\nimport type { ActionDefinition } from \"../actions/types\"\nimport type { ConnectorDefinition } from \"../connectors\"\nimport type { DatasetDefinition } from \"../datasets\"\nimport type { ObjectType } from \"../ontology\"\nimport type { PipelineDefinition } from \"../pipelines\"\nimport type { ShareDefinition } from \"../shares\"\nimport type { SyncDefinition } from \"../syncs\"\nimport type { WorkflowDefinition } from \"../workflows/types\"\nimport { SecurityValidationError } from \"./errors\"\nimport type { ApplicationDefinition } from \"./types\"\n\n/** Capability targets a breadth selector can range over. */\nexport const BREADTH_TARGETS = [\n \"object\",\n \"dataset\",\n \"action\",\n \"workflow\",\n \"sync\",\n \"pipeline\",\n \"application\",\n \"connector\",\n \"share\",\n] as const\n\nexport type BreadthTarget = (typeof BREADTH_TARGETS)[number]\n\ninterface BreadthTargetInput {\n object: ObjectType\n dataset: DatasetDefinition\n action: ActionDefinition\n workflow: WorkflowDefinition\n sync: SyncDefinition\n pipeline: PipelineDefinition\n application: ApplicationDefinition\n connector: ConnectorDefinition\n share: ShareDefinition\n}\n\n/**\n * An \"all except\" selection over a capability target. Branded by `target` so\n * `can.view(every.action())` fails to typecheck.\n */\nexport interface BreadthSelector<TTarget extends BreadthTarget = BreadthTarget> {\n readonly target: TTarget\n readonly selection: { readonly all: true; readonly except: readonly string[] }\n /** Exclude specific definitions from an otherwise-complete selection. */\n except(items: readonly BreadthTargetInput[TTarget][]): BreadthSelector<TTarget>\n}\n\nexport function isBreadthSelector(value: unknown): value is BreadthSelector {\n if (typeof value !== \"object\" || value === null) return false\n const candidate = value as { target?: unknown; selection?: { all?: unknown } }\n return (\n typeof candidate.target === \"string\" &&\n (BREADTH_TARGETS as readonly string[]).includes(candidate.target) &&\n candidate.selection?.all === true\n )\n}\n\nexport function definitionIdOf(item: { readonly id?: unknown }, label: string): string {\n if (typeof item?.id !== \"string\" || !item.id.trim()) {\n throw new SecurityValidationError(`[Sixb] ${label} requires definitions with a non-empty id.`)\n }\n return item.id\n}\n\nfunction all<TTarget extends BreadthTarget>(\n target: TTarget,\n except: readonly string[] = []\n): BreadthSelector<TTarget> {\n return {\n target,\n selection: { all: true, except },\n except(items) {\n return all(target, [\n ...except,\n ...items.map((item) => definitionIdOf(item, `every.${target}() except`)),\n ])\n },\n }\n}\n\n/**\n * The whole registered universe of one capability target.\n *\n * Singular by design: `every.action()` reads as a breadth, where `every.actions()` would just echo\n * the primitive's plural name back.\n */\nexport const every = {\n object: (): BreadthSelector<\"object\"> => all(\"object\"),\n dataset: (): BreadthSelector<\"dataset\"> => all(\"dataset\"),\n action: (): BreadthSelector<\"action\"> => all(\"action\"),\n workflow: (): BreadthSelector<\"workflow\"> => all(\"workflow\"),\n sync: (): BreadthSelector<\"sync\"> => all(\"sync\"),\n pipeline: (): BreadthSelector<\"pipeline\"> => all(\"pipeline\"),\n application: (): BreadthSelector<\"application\"> => all(\"application\"),\n connector: (): BreadthSelector<\"connector\"> => all(\"connector\"),\n share: (): BreadthSelector<\"share\"> => all(\"share\"),\n}\n",
|
|
11
|
+
"export class ActionDefinitionError extends Error {\n readonly name = \"ActionDefinitionError\"\n}\n\nexport function missingActionMutationMessage(actionId: string): string {\n return `Action \"${actionId}\" must declare .writeback(...) or .edits(...).`\n}\n\nexport function effectsWithoutEditsMessage(actionId: string): string {\n return `Action \"${actionId}\" cannot declare .effects(...) without .edits(...).`\n}\n",
|
|
12
12
|
"import type { ValueType } from \"../ontology\"\nimport { OntologyValidationError } from \"../ontology/errors\"\nimport type { ObjectTypeWithPropertyTokens } from \"../ontology/tokens\"\nimport { assertValidFileRefs } from \"../ontology/validation\"\nimport { coerceParamsToTyped, normalizeParams } from \"../shared/params/validation\"\nimport type { ActionRunParams } from \"../storage/action-runs\"\nimport { ActionDefinitionError } from \"./errors\"\nimport type {\n ActionDefinition,\n ActionParamsConfig,\n ActionSubject,\n GlobalActionDefinition,\n ObjectActionDefinition,\n} from \"./types\"\n\ninterface ActionValidationRuntime {\n readonly ontology: {\n getValueTypesById(): ReadonlyMap<string, ValueType>\n resolveObjectType(objectTypeId: string): ObjectTypeWithPropertyTokens\n }\n readonly actionRegistry: {\n listForType(objectType: ObjectTypeWithPropertyTokens): readonly ObjectActionDefinition[]\n }\n}\n\nexport function assertNonEmpty(value: string, field: string): void {\n if (!value.trim()) {\n throw new ActionDefinitionError(`Action ${field} must not be empty.`)\n }\n}\n\nexport function isActionDefinition(value: unknown): value is ActionDefinition {\n const binding = (value as { binding?: { kind?: unknown } } | null)?.binding\n return (\n typeof value === \"object\" &&\n value !== null &&\n (value as { kind?: unknown }).kind === \"action\" &&\n (binding?.kind === \"global\" || binding?.kind === \"object\")\n )\n}\n\nexport function isGlobalActionDefinition(value: ActionDefinition): value is GlobalActionDefinition {\n return value.binding.kind === \"global\"\n}\n\nexport function isObjectActionDefinition(value: ActionDefinition): value is ObjectActionDefinition {\n return value.binding.kind === \"object\"\n}\n\nexport function normalizeActionParams(\n runtime: Pick<ActionValidationRuntime, \"ontology\">,\n paramsConfig: ActionParamsConfig,\n params: Record<string, unknown>,\n pathPrefix: string\n): ActionRunParams {\n const normalized = normalizeParams(runtime.ontology.getValueTypesById(), paramsConfig, params, {\n kind: \"action\",\n id: pathPrefix,\n })\n assertValidFileRefs(normalized, pathPrefix)\n return normalized\n}\n\n/**\n * Re-hydrate stored action params for the handler-facing surface. Params are\n * normalized to JSON (e.g. `date`/`timestamp` -> ISO string) for storage; action\n * handler types promise `Date` for those, so this converts them back before the\n * handler runs. `objectRef` params pass through unchanged.\n */\nexport function coerceActionParamsToTyped(\n paramsConfig: ActionParamsConfig,\n params: Record<string, unknown>,\n valueTypesById: ReadonlyMap<string, ValueType>\n): Record<string, unknown> {\n return coerceParamsToTyped(paramsConfig, params, valueTypesById)\n}\n\nexport function validateActionSubject(action: ActionDefinition, subject: ActionSubject): void {\n if (isGlobalActionDefinition(action) && subject.kind !== \"none\") {\n throw new OntologyValidationError(`Action '${action.id}' does not accept an object subject.`)\n }\n}\n\nexport function resolveObjectActionSubject(params: {\n readonly runtime: ActionValidationRuntime\n readonly action: ObjectActionDefinition\n readonly subject: ActionSubject\n}): ObjectTypeWithPropertyTokens {\n const { runtime, action, subject } = params\n\n if (subject.kind !== \"object\") {\n throw new OntologyValidationError(`Action '${action.id}' requires an object subject.`)\n }\n\n const objectType = runtime.ontology.resolveObjectType(subject.objectTypeId)\n if (!actionAppliesToObjectType(runtime, action, objectType)) {\n throw new OntologyValidationError(\n `Action '${action.id}' is not valid for object type '${objectType.id}'.`\n )\n }\n\n return objectType\n}\n\nfunction actionAppliesToObjectType(\n runtime: Pick<ActionValidationRuntime, \"actionRegistry\">,\n action: ObjectActionDefinition,\n objectType: ObjectTypeWithPropertyTokens\n): boolean {\n return runtime.actionRegistry\n .listForType(objectType)\n .some((candidate) => candidate.id === action.id)\n}\n",
|
|
13
13
|
"export class ShareDefinitionError extends Error {\n readonly name = \"ShareDefinitionError\"\n}\n",
|
|
14
14
|
"import type { ObjectActionDefinition } from \"../actions\"\nimport type { ObjectTypeWithPropertyTokens } from \"../ontology\"\nimport {\n type LinkPathSelection,\n type LinkPathSelectionInput,\n type LinkPathSelectionMode,\n snapshotLinkPathSelection,\n} from \"../ontology/link-path-selection\"\nimport { ShareDefinitionError } from \"./errors\"\nimport type {\n DefineShareOptions,\n ShareActionGrant,\n ShareDefinition,\n ShareScopeGrant,\n ShareTarget,\n ShareViewGrant,\n ShareViewGrantBuilder,\n} from \"./types\"\n\nconst shareTargets = new WeakSet<object>()\n\nexport function defineShare<\n const TId extends string,\n const TTarget extends ObjectTypeWithPropertyTokens,\n const TGrants extends readonly ShareScopeGrant[],\n>(id: TId, options: DefineShareOptions<TTarget, TGrants>): ShareDefinition<TId, TTarget[\"id\"]> {\n assertNonEmpty(id, \"Share id\")\n if (!isObjectType(options.target)) {\n throw invalid(`Share '${id}' target must be an object type.`)\n }\n if (typeof options.grants !== \"function\") {\n throw invalid(`Share '${id}' grants must be a function.`)\n }\n if (options.description !== undefined && typeof options.description !== \"string\") {\n throw invalid(`Share '${id}' description must be a string.`)\n }\n\n const target = createShareTarget(options.target.id)\n let authoredGrants: readonly unknown[]\n try {\n authoredGrants = options.grants({ target })\n } catch (error) {\n if (error instanceof ShareDefinitionError) throw error\n const reason = error instanceof Error ? error.message.replace(/^\\[Sixb\\] /, \"\") : String(error)\n throw invalid(`Share '${id}' grants are invalid: ${reason}`)\n }\n if (!Array.isArray(authoredGrants) || authoredGrants.length === 0) {\n throw invalid(`Share '${id}' must declare at least one grant.`)\n }\n const grants = snapshotShareGrants(id, options.target.id, authoredGrants)\n\n return Object.freeze({\n kind: \"share\" as const,\n id,\n target: Object.freeze({ kind: \"object\" as const, objectTypeId: options.target.id }),\n grants,\n ...(options.description === undefined ? {} : { description: options.description }),\n })\n}\n\nexport function isShareDefinition(value: unknown): value is ShareDefinition {\n if (!isRecord(value) || value.kind !== \"share\" || !isNonEmpty(value.id)) return false\n if (\n !isRecord(value.target) ||\n value.target.kind !== \"object\" ||\n !isNonEmpty(value.target.objectTypeId)\n ) {\n return false\n }\n return Array.isArray(value.grants)\n}\n\n/** @internal Validate, canonicalize, and detach a definition before runtime registration/use. */\nexport function snapshotShareDefinition(value: unknown): ShareDefinition {\n try {\n if (!isRecord(value)) {\n throw invalid(\"Share definition kind must be 'share'.\")\n }\n const kind = value.kind\n const authoredId = value.id\n const target = value.target\n const authoredGrants = value.grants\n const description = value.description\n if (kind !== \"share\") {\n throw invalid(\"Share definition kind must be 'share'.\")\n }\n const id = nonEmpty(authoredId, \"Share id\")\n if (!isRecord(target)) {\n throw invalid(`Share '${id}' target must be an object type.`)\n }\n const targetKind = target.kind\n const authoredObjectTypeId = target.objectTypeId\n if (targetKind !== \"object\" || !isNonEmpty(authoredObjectTypeId)) {\n throw invalid(`Share '${id}' target must be an object type.`)\n }\n if (!Array.isArray(authoredGrants) || authoredGrants.length === 0) {\n throw invalid(`Share '${id}' must declare grants.`)\n }\n if (description !== undefined && typeof description !== \"string\") {\n throw invalid(`Share '${id}' description must be a string.`)\n }\n\n const objectTypeId = authoredObjectTypeId\n return Object.freeze({\n kind: \"share\" as const,\n id,\n target: Object.freeze({ kind: \"object\" as const, objectTypeId }),\n grants: snapshotShareGrants(id, objectTypeId, authoredGrants),\n ...(description === undefined ? {} : { description }),\n })\n } catch (error) {\n if (error instanceof ShareDefinitionError) throw error\n const reason = error instanceof Error ? error.message.replace(/^\\[Sixb\\] /, \"\") : String(error)\n throw invalid(`Share definition is invalid: ${reason}`)\n }\n}\n\n/** @internal Contextual overload used by `can.view(target)`. */\nexport function isShareTarget(value: unknown): value is ShareTarget {\n return typeof value === \"object\" && value !== null && shareTargets.has(value)\n}\n\n/** @internal Contextual overload used by `can.view(target)`. */\nexport function createShareViewGrant<TObjectTypeId extends string>(\n target: ShareTarget<TObjectTypeId>\n): ShareViewGrantBuilder<TObjectTypeId> {\n assertShareTarget(target)\n return createShareViewGrantWithLinks(target.objectTypeId, Object.freeze({ kind: \"none\" }))\n}\n\n/** @internal Contextual overload used by `can.apply(action).on(target)`. */\nexport function createShareActionGrant<TAction extends ObjectActionDefinition>(\n action: TAction,\n target: ShareTarget<TAction[\"binding\"][\"objectType\"][\"id\"]>\n): ShareActionGrant<TAction[\"id\"], TAction[\"binding\"][\"objectType\"][\"id\"]> {\n assertShareTarget(target)\n const objectTypeId = action.binding.objectType.id\n if (target.objectTypeId !== objectTypeId) {\n throw invalid(\n `Action '${action.id}' is defined on '${objectTypeId}', not Share target '${target.objectTypeId}'. Shared Actions are exact-type only in V1.`\n )\n }\n return Object.freeze({\n kind: \"action.apply\" as const,\n actionId: action.id,\n subjectObjectTypeId: target.objectTypeId,\n })\n}\n\nfunction createShareTarget<TObjectTypeId extends string>(\n objectTypeId: TObjectTypeId\n): ShareTarget<TObjectTypeId> {\n const target = { objectTypeId } as ShareTarget<TObjectTypeId>\n shareTargets.add(target)\n return Object.freeze(target)\n}\n\nfunction createShareViewGrantWithLinks<TObjectTypeId extends string>(\n targetObjectTypeId: TObjectTypeId,\n links: LinkPathSelectionMode\n): ShareViewGrantBuilder<TObjectTypeId> {\n const grant = {\n kind: \"object.view\" as const,\n targetObjectTypeId,\n links,\n } as ShareViewGrantBuilder<TObjectTypeId>\n Object.defineProperty(grant, \"withLinks\", {\n configurable: false,\n enumerable: false,\n writable: false,\n value: (...args: [links?: readonly LinkPathSelectionInput<TObjectTypeId>[]]) => {\n if (args.length === 0) {\n return freezeViewGrant(targetObjectTypeId, Object.freeze({ kind: \"all\" }))\n }\n const selected = args[0]\n if (!Array.isArray(selected)) {\n throw invalid(\"withLinks(...) expects an array, or no argument for every direct link.\")\n }\n return freezeViewGrant(\n targetObjectTypeId,\n Object.freeze({\n kind: \"selected\" as const,\n links: Object.freeze(selected.map(snapshotLinkPathSelection)),\n })\n )\n },\n })\n return Object.freeze(grant)\n}\n\nfunction freezeViewGrant<TObjectTypeId extends string>(\n targetObjectTypeId: TObjectTypeId,\n links: LinkPathSelectionMode\n): ShareViewGrant<TObjectTypeId> {\n return Object.freeze({ kind: \"object.view\" as const, targetObjectTypeId, links })\n}\n\nfunction snapshotShareGrants(\n shareId: string,\n targetObjectTypeId: string,\n authored: readonly unknown[]\n): readonly ShareScopeGrant[] {\n const grants: ShareScopeGrant[] = []\n const actionIds = new Set<string>()\n let viewCount = 0\n\n for (let index = 0; index < authored.length; index += 1) {\n const grant = authored[index]\n if (!isRecord(grant)) {\n throw invalid(`Share '${shareId}' grant ${index} must come from 'can'.`)\n }\n const kind = grant.kind\n if (kind === \"object.view\") {\n const authoredTargetObjectTypeId = grant.targetObjectTypeId\n const links = grant.links\n if (authoredTargetObjectTypeId !== targetObjectTypeId) {\n throw invalid(`Share '${shareId}' view grant must use its contextual target.`)\n }\n viewCount += 1\n if (viewCount > 1) {\n throw invalid(`Share '${shareId}' must declare exactly one view grant.`)\n }\n grants.push(\n Object.freeze({\n kind: \"object.view\" as const,\n targetObjectTypeId,\n links: snapshotLinkMode(links),\n })\n )\n continue\n }\n if (kind === \"action.apply\") {\n const actionId = grant.actionId\n const subjectObjectTypeId = grant.subjectObjectTypeId\n if (!isNonEmpty(actionId) || subjectObjectTypeId !== targetObjectTypeId) {\n throw invalid(`Share '${shareId}' action grant must apply to its contextual target.`)\n }\n if (actionIds.has(actionId)) {\n throw invalid(`Share '${shareId}' contains duplicate action '${actionId}'.`)\n }\n actionIds.add(actionId)\n grants.push(\n Object.freeze({\n kind: \"action.apply\" as const,\n actionId,\n subjectObjectTypeId: targetObjectTypeId,\n })\n )\n continue\n }\n throw invalid(`Share '${shareId}' grant ${index} must come from 'can'.`)\n }\n\n if (viewCount !== 1) {\n throw invalid(`Share '${shareId}' must declare exactly one can.view(target) grant.`)\n }\n return Object.freeze(grants)\n}\n\nfunction snapshotLinkMode(value: unknown): LinkPathSelectionMode {\n if (!isRecord(value)) throw invalid(\"Share link selection must be an object.\")\n const kind = value.kind\n const links = value.links\n if (kind === \"none\" || kind === \"all\") {\n return Object.freeze({ kind })\n }\n if (kind !== \"selected\" || !Array.isArray(links)) {\n throw invalid(\"Share link selection must be none, all, or selected links.\")\n }\n if (links.length === 0) {\n throw invalid(\"withLinks([]) is empty; omit withLinks() when no links should be shared.\")\n }\n try {\n return Object.freeze({\n kind: \"selected\" as const,\n links: snapshotLinkPaths(links),\n })\n } catch (error) {\n if (error instanceof ShareDefinitionError) throw error\n const reason = error instanceof Error ? error.message.replace(/^\\[Sixb\\] /, \"\") : String(error)\n throw invalid(`Share link selection is invalid: ${reason}`)\n }\n}\n\nfunction snapshotLinkPaths(values: readonly unknown[]): readonly LinkPathSelection[] {\n const byKey = new Map<string, LinkPathSelection>()\n for (const value of values) {\n const captured = canonicalizeLinkPath(\n snapshotLinkPathSelection(value as LinkPathSelectionInput)\n )\n const key = JSON.stringify([captured.sourceObjectTypeId, captured.linkId])\n const current = byKey.get(key)\n if (!current) {\n byKey.set(key, captured)\n continue\n }\n if (!sameLinkTargets(current.targetObjectTypeId, captured.targetObjectTypeId)) {\n throw invalid(\n `Link '${captured.sourceObjectTypeId}.${captured.linkId}' declares inconsistent targets.`\n )\n }\n byKey.set(\n key,\n Object.freeze({\n ...current,\n selection: mergeLinkModes(current.selection, captured.selection),\n })\n )\n }\n return Object.freeze([...byKey.values()])\n}\n\nfunction canonicalizeLinkPath(value: LinkPathSelection): LinkPathSelection {\n return Object.freeze({\n ...value,\n selection:\n value.selection.kind === \"selected\"\n ? Object.freeze({\n kind: \"selected\" as const,\n links: snapshotLinkPaths(value.selection.links),\n })\n : value.selection,\n })\n}\n\nfunction mergeLinkModes(\n left: LinkPathSelectionMode,\n right: LinkPathSelectionMode\n): LinkPathSelectionMode {\n if (left.kind === \"all\" || right.kind === \"all\") return Object.freeze({ kind: \"all\" })\n if (left.kind === \"none\") return right\n if (right.kind === \"none\") return left\n return Object.freeze({\n kind: \"selected\" as const,\n links: snapshotLinkPaths([...left.links, ...right.links]),\n })\n}\n\nfunction sameLinkTargets(\n left: string | readonly string[],\n right: string | readonly string[]\n): boolean {\n if (typeof left === \"string\" || typeof right === \"string\") return left === right\n return left.length === right.length && left.every((value, index) => value === right[index])\n}\n\nfunction assertShareTarget(value: unknown): asserts value is ShareTarget {\n if (!isShareTarget(value)) {\n throw invalid(\"Shared grants must use the target provided by defineShare(...).\")\n }\n}\n\nfunction isObjectType(value: unknown): value is ObjectTypeWithPropertyTokens {\n return (\n isRecord(value) &&\n isNonEmpty(value.id) &&\n Array.isArray(value.properties) &&\n Array.isArray(value.links)\n )\n}\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n return typeof value === \"object\" && value !== null && !Array.isArray(value)\n}\n\nfunction isNonEmpty(value: unknown): value is string {\n return typeof value === \"string\" && value.trim().length > 0\n}\n\nfunction assertNonEmpty(value: unknown, field: string): asserts value is string {\n if (!isNonEmpty(value)) throw invalid(`${field} must not be empty.`)\n}\n\nfunction nonEmpty(value: unknown, field: string): string {\n assertNonEmpty(value, field)\n return value\n}\n\nfunction invalid(message: string): ShareDefinitionError {\n return new ShareDefinitionError(`[Sixb] ${message}`)\n}\n",
|
|
@@ -34,7 +34,7 @@
|
|
|
34
34
|
"import { createHash, randomBytes, randomUUID } from \"node:crypto\"\n\nexport interface SessionCookieParts {\n readonly sessionId: string\n readonly sessionSecret: string\n}\n\nexport interface SessionCredential {\n readonly sessionId: string\n readonly sessionSecret: string\n readonly tokenHash: string\n readonly cookieValue: string\n}\n\nexport function generateSessionSecret(): string {\n return randomBytes(32).toString(\"base64url\")\n}\n\nexport function hashSessionSecret(secret: string): string {\n return createHash(\"sha256\").update(secret).digest(\"hex\")\n}\n\nexport function formatSessionCookieValue(sessionId: string, sessionSecret: string): string {\n if (!sessionId || !sessionSecret || sessionId.includes(\".\") || sessionSecret.includes(\".\")) {\n throw new Error(\"[Sixb] Session cookie values must be non-empty and must not contain '.'.\")\n }\n\n return `${sessionId}.${sessionSecret}`\n}\n\nexport function parseSessionCookieValue(value: string | undefined): SessionCookieParts | null {\n if (!value) {\n return null\n }\n\n const firstDot = value.indexOf(\".\")\n if (firstDot <= 0 || firstDot !== value.lastIndexOf(\".\") || firstDot === value.length - 1) {\n return null\n }\n\n return {\n sessionId: value.slice(0, firstDot),\n sessionSecret: value.slice(firstDot + 1),\n }\n}\n\nexport function createSessionCredential(sessionId = `ses_${randomUUID()}`): SessionCredential {\n const sessionSecret = generateSessionSecret()\n return {\n sessionId,\n sessionSecret,\n tokenHash: hashSessionSecret(sessionSecret),\n cookieValue: formatSessionCookieValue(sessionId, sessionSecret),\n }\n}\n\nexport const SESSION_ACCESS_TOKEN_PREFIX = \"sixb_at_\"\nexport const SESSION_REFRESH_TOKEN_PREFIX = \"sixb_rt_\"\n\nexport interface BearerSessionTokens {\n readonly accessToken: string\n readonly refreshToken: string\n readonly tokenHash: string\n readonly refreshTokenHash: string\n}\n\n/** Fresh access and refresh tokens for a native client's session. Only their hashes are stored. */\nexport function createBearerSessionTokens(sessionId: string): BearerSessionTokens {\n const accessSecret = generateSessionSecret()\n const refreshSecret = generateSessionSecret()\n return {\n accessToken: `${SESSION_ACCESS_TOKEN_PREFIX}${formatSessionCookieValue(sessionId, accessSecret)}`,\n refreshToken: `${SESSION_REFRESH_TOKEN_PREFIX}${formatSessionCookieValue(sessionId, refreshSecret)}`,\n tokenHash: hashSessionSecret(accessSecret),\n refreshTokenHash: hashSessionSecret(refreshSecret),\n }\n}\n\n/** The session id and secret in a bearer session token, or null when it is not one. */\nexport function parseBearerSessionToken(\n prefix: typeof SESSION_ACCESS_TOKEN_PREFIX | typeof SESSION_REFRESH_TOKEN_PREFIX,\n value: string\n): SessionCookieParts | null {\n return value.startsWith(prefix) ? parseSessionCookieValue(value.slice(prefix.length)) : null\n}\n",
|
|
35
35
|
"import type { GroupDefinition, GroupReference, MembershipOperation } from \"../security\"\nimport type {\n AccessTokenRecord,\n AuthStorage,\n CompleteAuthSessionInput,\n CompleteSignInResult,\n InvitationRecord,\n InvitationStatus,\n ServiceAccountGroupMembershipRecord,\n ServiceAccountRecord,\n SessionRecord,\n UserRecord,\n} from \"../storage/auth\"\nimport type { AuthSessionAudience, AuthSessionAudienceOptions } from \"./audience\"\n\nexport type Principal =\n | { readonly type: \"user\"; readonly id: string }\n | { readonly type: \"serviceAccount\"; readonly id: string }\n | { readonly type: \"system\"; readonly id: string }\n\n/**\n * The canonical principal for system-originated writes (runs triggered without a caller,\n * worker fallbacks, decode-time defaults). Import this everywhere instead of inlining a\n * `{ type: \"system\", id: \"system\" }` literal so the system identity never forks.\n */\nexport const SYSTEM_PRINCIPAL: Principal = { type: \"system\", id: \"system\" }\n\n/** Structural equality for principals (same type and id). */\nexport function principalsEqual(left: Principal, right: Principal): boolean {\n return left.type === right.type && left.id === right.id\n}\n\nexport type AuthStrategyKind = \"magicLink\" | \"oidc\" | \"dev\" | \"disabled\"\n\nexport interface AuthStrategy {\n readonly id: string\n readonly kind: AuthStrategyKind\n readonly developmentOnly?: boolean\n readonly disabled?: boolean\n readonly allowDisabledInProduction?: boolean\n}\n\nexport interface InvitationRecipientInput {\n readonly projectId: string\n readonly authStorage: AuthStorage\n readonly email: string\n readonly now?: Date\n}\n\nexport type InvitationRecipientStatus =\n | \"allowed\"\n | \"invalid_email\"\n | \"disallowed_domain\"\n | \"suspended_user\"\n | \"rate_limited\"\n\nexport interface InvitationRecipientResult {\n readonly status: InvitationRecipientStatus\n readonly email?: string\n}\n\nexport interface InvitationDeliveryInput {\n readonly projectId: string\n readonly authStorage: AuthStorage\n readonly invitation: InvitationRecord\n readonly audience: AuthSessionAudience\n readonly returnTo: string\n readonly requestOrigin: string\n /** Return the delivered link once so the inviter can copy it through an approved channel. */\n readonly revealLink?: boolean\n readonly now?: Date\n}\n\nexport type AuthEmailDeliveryStatus = \"sent\" | \"skipped\" | \"rate_limited\"\n\nexport type InviteDeliveryStatus = AuthEmailDeliveryStatus | \"not_supported\"\n\nexport interface RevealedInvitationLink {\n readonly url: string\n readonly expiresAt?: Date\n}\n\nexport interface InviteDeliveryResult {\n readonly status: InviteDeliveryStatus\n /**\n * Present only when the caller explicitly requests `revealLink`. Treat this as a credential:\n * never persist it or include it in list responses, logs, or analytics.\n */\n readonly link?: RevealedInvitationLink\n}\n\nexport interface InvitationDeliveryAuthStrategy extends AuthStrategy {\n validateInvitationRecipient?(input: InvitationRecipientInput): Promise<InvitationRecipientResult>\n deliverInvitation(input: InvitationDeliveryInput): Promise<InviteDeliveryResult>\n}\n\nexport interface MagicLinkRequestInput {\n readonly projectId: string\n readonly authStorage: AuthStorage\n readonly email: string\n readonly audience: AuthSessionAudience\n readonly returnTo: string\n readonly requestOrigin: string\n /**\n * Opaque hash the strategy appends to the callback URL as the `requester`\n * query param. The server keeps the preimage in a cookie on the requesting\n * browser so the callback can sign that same browser in without the extra\n * confirmation click. Omitted for deliveries with no requesting browser\n * (invitations).\n */\n readonly requesterHash?: string\n readonly now?: Date\n}\n\nexport type MagicLinkRequestStatus = AuthEmailDeliveryStatus\n\nexport interface MagicLinkRequestResult {\n readonly status: MagicLinkRequestStatus\n}\n\nexport type AuthInvitationRecipientInput = InvitationRecipientInput\n\nexport type AuthInvitationRecipientStatus = InvitationRecipientStatus\n\nexport type AuthInvitationRecipientResult = InvitationRecipientResult\n\nexport type MagicLinkInvitationRecipientInput = InvitationRecipientInput\n\nexport type MagicLinkInvitationRecipientStatus = InvitationRecipientStatus\n\nexport type MagicLinkInvitationRecipientResult = InvitationRecipientResult\n\nexport interface MagicLinkCallbackInput {\n readonly projectId: string\n readonly authStorage: AuthStorage\n readonly magicLinkId: string\n readonly token: string\n readonly session: CompleteAuthSessionInput\n readonly now?: Date\n}\n\nexport interface MagicLinkCallbackResult extends CompleteSignInResult {\n readonly audience: AuthSessionAudience\n readonly returnTo: string\n}\n\nexport interface MagicLinkPeekInput {\n readonly projectId: string\n readonly authStorage: AuthStorage\n readonly magicLinkId: string\n readonly token: string\n readonly now?: Date\n}\n\nexport interface MagicLinkPeekResult {\n readonly email: string\n}\n\nexport interface MagicLinkAuthStrategy extends InvitationDeliveryAuthStrategy {\n readonly kind: \"magicLink\"\n readonly bootstrapGroupIds?: readonly string[]\n /**\n * How long issued links stay valid (ms). Lets the server align dependent\n * lifetimes (e.g. the same-device pending cookie) with the configured TTL.\n */\n readonly magicLinkTtlMs?: number\n validateInvitationRecipient?(\n input: MagicLinkInvitationRecipientInput\n ): Promise<MagicLinkInvitationRecipientResult>\n requestMagicLink(input: MagicLinkRequestInput): Promise<MagicLinkRequestResult>\n /**\n * Read-only validity check for a link the user has not confirmed yet. Must\n * never consume the token, and must apply the same rules that would make\n * {@link completeMagicLinkSignIn} fail (including token verification), so a\n * link that peeks as valid only fails to complete when raced. Returns null\n * for links that cannot complete sign-in.\n */\n peekMagicLink?(input: MagicLinkPeekInput): Promise<MagicLinkPeekResult | null>\n completeMagicLinkSignIn(input: MagicLinkCallbackInput): Promise<MagicLinkCallbackResult>\n}\n\nexport interface OidcStartSignInInput {\n readonly projectId: string\n readonly authStorage: AuthStorage\n readonly audience: AuthSessionAudience\n readonly returnTo: string\n readonly requestOrigin: string\n readonly now?: Date\n}\n\nexport interface OidcStartSignInResult {\n readonly redirectTo: string\n /**\n * The `state` sent to the provider. The server keeps it in a cookie until `expiresAt` and\n * completes the callback only in the browser that holds it.\n */\n readonly state: string\n readonly expiresAt: Date\n}\n\nexport interface OidcCallbackInput {\n readonly projectId: string\n readonly authStorage: AuthStorage\n readonly requestUrl: string\n readonly requestOrigin: string\n readonly session: CompleteAuthSessionInput\n readonly now?: Date\n}\n\nexport interface OidcCallbackResult extends CompleteSignInResult {\n readonly audience: AuthSessionAudience\n readonly returnTo: string\n}\n\nexport interface OidcAuthStrategy extends InvitationDeliveryAuthStrategy {\n readonly kind: \"oidc\"\n readonly bootstrapGroupIds?: readonly string[]\n startOidcSignIn(input: OidcStartSignInInput): Promise<OidcStartSignInResult>\n completeOidcSignIn(input: OidcCallbackInput): Promise<OidcCallbackResult>\n}\n\nexport interface InviteUserInput {\n readonly email: string\n readonly groups?: readonly GroupDefinition[]\n readonly groupIds?: readonly string[]\n readonly expiresAt?: Date\n /** Reveal the delivered link once in the result. Defaults to false. */\n readonly revealLink?: boolean\n}\n\nexport interface InviteUserResult {\n readonly invitation: InvitationRecord\n readonly delivery: InviteDeliveryResult\n}\n\nexport interface ListInvitationsInput {\n readonly email?: string\n readonly statuses?: readonly InvitationStatus[]\n readonly limit?: number\n readonly offset?: number\n readonly order?: \"asc\" | \"desc\"\n}\n\nexport interface ListInvitationsResult {\n readonly invitations: readonly InvitationRecord[]\n readonly hasMore: boolean\n readonly total: number\n}\n\nexport interface InvitationGroupOption {\n readonly id: string\n readonly label?: string\n readonly description?: string\n}\n\nexport type CreateInvitationCapability =\n | { readonly state: \"enabled\" }\n | {\n readonly state: \"disabled\"\n readonly reason: \"missing_membership_policy\" | \"invitation_delivery_not_supported\"\n }\n\nexport interface GetInvitationOptionsResult {\n readonly groups: readonly InvitationGroupOption[]\n readonly canInviteWithoutGroups: boolean\n readonly capabilities: {\n readonly createInvitation: CreateInvitationCapability\n }\n}\n\n/**\n * Which membership operations the caller holds at least one policy for. Coarse,\n * caller-wide capabilities used to gate top-level UI affordances; per-target\n * checks (scope over a member's current groups, self-protection) are finer.\n */\nexport interface MembershipOperationCapabilities {\n readonly invite: boolean\n readonly assignGroups: boolean\n readonly suspend: boolean\n}\n\nexport interface GetMembershipOptionsResult {\n /** Groups the caller may assign to a member (the `assignGroups` scope). */\n readonly groups: readonly InvitationGroupOption[]\n readonly capabilities: MembershipOperationCapabilities\n}\n\n/**\n * What a caller's membership policies let it do — the answer to \"may this principal invite?\".\n *\n * Resolved from group ids alone, with no HTTP request involved, so project code and tests can ask the\n * question the same way the member-admin routes do.\n */\nexport interface MembershipCapabilities {\n /** True when at least one policy grants the operation, ignoring which groups it covers. */\n readonly holds: MembershipOperationCapabilities\n /** Group ids the caller may assign to a member. */\n readonly assignableGroupIds: readonly string[]\n /**\n * Whether the caller's policy scope reaches a member currently holding exactly `memberGroups`.\n *\n * Pass definitions when your code knows the groups (`covers(\"suspend\", [teamMembers])`) and ids when\n * they came from a session or a member's stored memberships. An empty list asks the group-less case —\n * inviting someone who joins no group — which any holder of the operation may do.\n *\n * Coverage is not authorization. It is the group boundary the membership policies draw, which is what\n * a UI needs to decide whether to offer a control for a given member. The operation itself applies\n * rules this question cannot see: `suspendMember` refuses the current user, `assignGroups` also checks\n * the groups being assigned against `assignableGroupIds`, and a member's status can rule it out. Ask\n * the runtime method for the decision; ask this for the boundary.\n */\n covers(operation: MembershipOperation, memberGroups: readonly GroupReference[]): boolean\n}\n\nexport interface ListMembersInput {\n readonly limit?: number\n readonly offset?: number\n readonly order?: \"asc\" | \"desc\"\n}\n\n/** Per-target actions the caller may take on a member, after self-protection. */\nexport interface MemberCapabilities {\n readonly assignGroups: boolean\n readonly suspend: boolean\n readonly reactivate: boolean\n}\n\nexport interface MemberSummary {\n readonly user: UserRecord\n readonly groupIds: readonly string[]\n /**\n * The groups among `groupIds` that the identity provider manages. They sync at the user's next\n * sign-in, so they cannot be removed here.\n */\n readonly managedGroupIds: readonly string[]\n readonly capabilities: MemberCapabilities\n}\n\nexport interface ListMembersResult {\n readonly members: readonly MemberSummary[]\n readonly hasMore: boolean\n readonly total: number\n}\n\nexport interface UpdateMemberGroupsInput {\n readonly userId: string\n /** The desired full set of groups; additions and removals are derived from it. */\n readonly groupIds: readonly string[]\n}\n\nexport interface UpdateMemberGroupsResult {\n readonly user: UserRecord\n readonly groupIds: readonly string[]\n readonly managedGroupIds: readonly string[]\n}\n\nexport interface SuspendMemberInput {\n readonly userId: string\n}\n\nexport interface SuspendMemberResult {\n readonly user: UserRecord\n readonly groupIds: readonly string[]\n readonly managedGroupIds: readonly string[]\n}\n\nexport interface ReactivateMemberInput {\n readonly userId: string\n}\n\nexport interface ReactivateMemberResult {\n readonly user: UserRecord\n readonly groupIds: readonly string[]\n readonly managedGroupIds: readonly string[]\n}\n\n/** `\"session\"` reads only the cookie; `\"any\"` reads a bearer access token, else the cookie. */\nexport type AuthCredentialSource = \"session\" | \"any\"\n\nexport interface AuthSessionResolutionOptions extends AuthSessionAudienceOptions {\n readonly credentialSource?: AuthCredentialSource\n /** Marks this request as eligible to renew a near-expiry browser session. */\n readonly sessionActivity?: \"foreground\"\n}\n\n/** Where an invitation link sends its recipient. */\nexport interface InvitationDestination {\n readonly audience: AuthSessionAudience\n readonly requestOrigin: string\n readonly returnTo: string\n}\n\nexport interface RevokeInvitationInput {\n readonly invitationId: string\n}\n\nexport interface RevokeInvitationResult {\n readonly invitation: InvitationRecord\n}\n\nexport interface CreatePersonalAccessTokenInput {\n readonly name: string\n readonly expiresAt: Date\n readonly groupIds?: readonly string[]\n}\n\nexport interface CreateServiceAccountInput {\n readonly id?: string\n readonly name: string\n readonly description?: string\n readonly groupIds?: readonly string[]\n}\n\nexport interface CreateServiceAccountResult {\n readonly serviceAccount: ServiceAccountRecord\n readonly groupMemberships: readonly ServiceAccountGroupMembershipRecord[]\n}\n\nexport interface CreateServiceAccountAccessTokenInput {\n readonly serviceAccountId: string\n readonly name: string\n readonly expiresAt: Date\n readonly groupIds?: readonly string[]\n}\n\nexport interface CreateAccessTokenResult {\n readonly accessToken: AccessTokenRecord\n readonly tokenValue: string\n}\n\nexport interface CreateServiceAccountAccessTokenResult extends CreateAccessTokenResult {\n readonly serviceAccount: ServiceAccountRecord\n}\n\nexport interface ServiceAccountWithGroups {\n readonly serviceAccount: ServiceAccountRecord\n readonly groupIds: readonly string[]\n}\n\nexport interface ListServiceAccountsResult {\n readonly serviceAccounts: readonly ServiceAccountWithGroups[]\n}\n\nexport interface ListPersonalAccessTokensResult {\n readonly accessTokens: readonly AccessTokenRecord[]\n}\n\nexport interface ListServiceAccountAccessTokensInput {\n readonly serviceAccountId: string\n}\n\nexport interface ListServiceAccountAccessTokensResult {\n readonly serviceAccount: ServiceAccountRecord\n readonly accessTokens: readonly AccessTokenRecord[]\n}\n\nexport interface DisableServiceAccountInput {\n readonly serviceAccountId: string\n}\n\nexport interface DisableServiceAccountResult {\n readonly serviceAccount: ServiceAccountRecord\n readonly groupIds: readonly string[]\n}\n\nexport interface RevokePersonalAccessTokenInput {\n readonly tokenId: string\n}\n\nexport interface RevokeServiceAccountAccessTokenInput {\n readonly serviceAccountId: string\n readonly tokenId: string\n}\n\nexport interface RevokeAccessTokenResult {\n readonly accessToken: AccessTokenRecord\n}\n\nexport interface RevokeServiceAccountAccessTokenResult {\n readonly serviceAccount: ServiceAccountRecord\n readonly accessToken: AccessTokenRecord\n}\n\nexport interface AuthSessionOptions {\n /** How long a browser session may remain idle before it expires. Defaults to 30 days. */\n readonly idleTimeoutMs?: number\n /** How close to idle expiry a foreground request must be before renewal. Defaults to 7 days. */\n readonly renewalWindowMs?: number\n /**\n * Optional maximum lifetime that foreground activity cannot extend. Captured when the session\n * is created, so later configuration changes affect only newly issued sessions. Disabled by\n * default.\n */\n readonly absoluteTimeoutMs?: number\n /**\n * How long (ms) a resolved session is cached in-process before it is re-validated\n * against storage. Collapses the per-request auth reads (session + user + memberships)\n * during request bursts so they cannot starve the storage pool. Set to 0 to disable.\n * Defaults to {@link DEFAULT_AUTH_SESSION_CACHE_TTL_MS}.\n */\n readonly cacheTtlMs?: number\n}\n\nexport interface ResolvedAuthSessionOptions {\n readonly idleTimeoutMs: number\n readonly renewalWindowMs: number\n readonly absoluteTimeoutMs?: number\n readonly cacheTtlMs: number\n}\n\nexport interface AuthCookieOptions {\n readonly sessionCookieName?: string\n readonly csrfCookieName?: string\n readonly cookieDomain?: string\n readonly secure?: boolean | \"auto\"\n readonly sameSite?: \"strict\"\n readonly csrfHttpOnly?: boolean\n}\n\nexport type SixbAuthConfig =\n | AuthStrategy\n | {\n readonly strategy: AuthStrategy\n readonly session?: AuthSessionOptions\n readonly cookies?: AuthCookieOptions\n }\n\nexport type AuthSessionFailureReason =\n | \"auth_disabled\"\n | \"missing_cookie\"\n | \"invalid_cookie\"\n | \"invalid_access_token\"\n | \"invalid_session\"\n | \"missing_user\"\n | \"missing_service_account\"\n | \"suspended_service_account\"\n | \"suspended_user\"\n\nexport interface UnauthenticatedAuthSession {\n readonly authenticated: false\n readonly reason: AuthSessionFailureReason\n}\n\nexport interface AuthenticatedAuthSession {\n readonly authenticated: true\n readonly credentialSource: \"session\"\n readonly principal: Extract<Principal, { readonly type: \"user\" }>\n readonly user: UserRecord\n readonly session: SessionRecord\n readonly groupIds: readonly string[]\n /** Internal response hint: the rolling session deadline advanced during this request. */\n readonly sessionRenewed?: true\n}\n\nexport interface AuthenticatedUserAccessTokenSession {\n readonly authenticated: true\n readonly credentialSource: \"accessToken\"\n readonly principal: Extract<Principal, { readonly type: \"user\" }>\n readonly user: UserRecord\n readonly accessToken: AccessTokenRecord\n readonly groupIds: readonly string[]\n}\n\nexport interface AuthenticatedServiceAccountAccessTokenSession {\n readonly authenticated: true\n readonly credentialSource: \"accessToken\"\n readonly principal: Extract<Principal, { readonly type: \"serviceAccount\" }>\n readonly serviceAccount: ServiceAccountRecord\n readonly accessToken: AccessTokenRecord\n readonly groupIds: readonly string[]\n}\n\nexport type AuthSessionResult = UnauthenticatedAuthSession | AuthenticatedAuthSession\n\nexport type AuthenticatedUserRequestSession =\n | AuthenticatedAuthSession\n | AuthenticatedUserAccessTokenSession\n\nexport type AuthenticatedRequestAuthSession =\n | AuthenticatedUserRequestSession\n | AuthenticatedServiceAccountAccessTokenSession\n\nexport type AuthRequestResult = UnauthenticatedAuthSession | AuthenticatedRequestAuthSession\n\nexport interface ResolvedAuthConfig {\n readonly strategy: AuthStrategy | null\n readonly session: ResolvedAuthSessionOptions\n readonly cookies: Required<Omit<AuthCookieOptions, \"cookieDomain\">> & {\n readonly domain?: string\n }\n}\n"
|
|
36
36
|
],
|
|
37
|
-
"mappings": "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",
|
|
38
|
-
"debugId": "
|
|
37
|
+
"mappings": "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",
|
|
38
|
+
"debugId": "910D62C713AA4DF964756E2164756E21",
|
|
39
39
|
"names": []
|
|
40
40
|
}
|