@beignet/core 0.0.3 → 0.0.5
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/CHANGELOG.md +159 -0
- package/README.md +792 -50
- package/dist/application/index.d.ts +28 -2
- package/dist/application/index.d.ts.map +1 -1
- package/dist/application/index.js +140 -12
- package/dist/application/index.js.map +1 -1
- package/dist/client/client.d.ts +2 -2
- package/dist/client/client.d.ts.map +1 -1
- package/dist/client/client.js +136 -48
- package/dist/client/client.js.map +1 -1
- package/dist/client/error-messages.d.ts +14 -0
- package/dist/client/error-messages.d.ts.map +1 -0
- package/dist/client/error-messages.js +23 -0
- package/dist/client/error-messages.js.map +1 -0
- package/dist/client/index.d.ts +8 -4
- package/dist/client/index.d.ts.map +1 -1
- package/dist/client/index.js +6 -2
- package/dist/client/index.js.map +1 -1
- package/dist/client/types.d.ts +35 -5
- package/dist/client/types.d.ts.map +1 -1
- package/dist/client-only.d.ts +8 -0
- package/dist/client-only.d.ts.map +1 -0
- package/dist/client-only.js +8 -0
- package/dist/client-only.js.map +1 -0
- package/dist/config/index.d.ts +5 -5
- package/dist/config/index.d.ts.map +1 -1
- package/dist/config/index.js +2 -2
- package/dist/config/index.js.map +1 -1
- package/dist/contracts/catalog-errors.d.ts +27 -0
- package/dist/contracts/catalog-errors.d.ts.map +1 -0
- package/dist/contracts/catalog-errors.js +69 -0
- package/dist/contracts/catalog-errors.js.map +1 -0
- package/dist/contracts/contract-builder.d.ts +15 -12
- package/dist/contracts/contract-builder.d.ts.map +1 -1
- package/dist/contracts/contract-builder.js +15 -41
- package/dist/contracts/contract-builder.js.map +1 -1
- package/dist/contracts/contract-group.d.ts +11 -8
- package/dist/contracts/contract-group.d.ts.map +1 -1
- package/dist/contracts/contract-group.js +13 -40
- package/dist/contracts/contract-group.js.map +1 -1
- package/dist/contracts/contract-like.d.ts +1 -1
- package/dist/contracts/contract-like.d.ts.map +1 -1
- package/dist/contracts/index.d.ts +13 -9
- package/dist/contracts/index.d.ts.map +1 -1
- package/dist/contracts/index.js +9 -5
- package/dist/contracts/index.js.map +1 -1
- package/dist/contracts/openapi-meta.d.ts +48 -0
- package/dist/contracts/openapi-meta.d.ts.map +1 -1
- package/dist/contracts/openapi-meta.js +3 -0
- package/dist/contracts/openapi-meta.js.map +1 -1
- package/dist/contracts/path-template.d.ts +1 -1
- package/dist/contracts/path-template.js +2 -2
- package/dist/contracts/path-template.js.map +1 -1
- package/dist/contracts/schema-shape.d.ts +37 -0
- package/dist/contracts/schema-shape.d.ts.map +1 -0
- package/dist/contracts/schema-shape.js +61 -0
- package/dist/contracts/schema-shape.js.map +1 -0
- package/dist/contracts/success-status.d.ts +32 -0
- package/dist/contracts/success-status.d.ts.map +1 -0
- package/dist/contracts/success-status.js +18 -0
- package/dist/contracts/success-status.js.map +1 -0
- package/dist/contracts/types.d.ts +25 -5
- package/dist/contracts/types.d.ts.map +1 -1
- package/dist/contracts/types.js.map +1 -1
- package/dist/contracts/utils.d.ts +1 -1
- package/dist/contracts/utils.d.ts.map +1 -1
- package/dist/contracts/utils.js +1 -1
- package/dist/contracts/utils.js.map +1 -1
- package/dist/domain/events.d.ts +1 -1
- package/dist/domain/events.d.ts.map +1 -1
- package/dist/domain/events.js +1 -1
- package/dist/domain/events.js.map +1 -1
- package/dist/domain/index.d.ts +3 -3
- package/dist/domain/index.d.ts.map +1 -1
- package/dist/domain/index.js +3 -3
- package/dist/domain/index.js.map +1 -1
- package/dist/errors/catalog.d.ts +9 -1
- package/dist/errors/catalog.d.ts.map +1 -1
- package/dist/errors/catalog.js +7 -1
- package/dist/errors/catalog.js.map +1 -1
- package/dist/errors/http.d.ts +10 -0
- package/dist/errors/http.d.ts.map +1 -1
- package/dist/errors/http.js +11 -1
- package/dist/errors/http.js.map +1 -1
- package/dist/errors/index.d.ts +4 -4
- package/dist/errors/index.d.ts.map +1 -1
- package/dist/errors/index.js +4 -4
- package/dist/errors/index.js.map +1 -1
- package/dist/errors/response.d.ts +4 -1
- package/dist/errors/response.d.ts.map +1 -1
- package/dist/errors/response.js.map +1 -1
- package/dist/events/index.d.ts +10 -12
- package/dist/events/index.d.ts.map +1 -1
- package/dist/events/index.js +10 -10
- package/dist/events/index.js.map +1 -1
- package/dist/idempotency/index.d.ts +5 -3
- package/dist/idempotency/index.d.ts.map +1 -1
- package/dist/idempotency/index.js.map +1 -1
- package/dist/jobs/index.d.ts +12 -14
- package/dist/jobs/index.d.ts.map +1 -1
- package/dist/jobs/index.js +13 -13
- package/dist/jobs/index.js.map +1 -1
- package/dist/notifications/index.d.ts +14 -16
- package/dist/notifications/index.d.ts.map +1 -1
- package/dist/notifications/index.js +14 -14
- package/dist/notifications/index.js.map +1 -1
- package/dist/openapi/index.d.ts +8 -3
- package/dist/openapi/index.d.ts.map +1 -1
- package/dist/openapi/index.js +41 -29
- package/dist/openapi/index.js.map +1 -1
- package/dist/openapi/schema-introspector.d.ts +37 -0
- package/dist/openapi/schema-introspector.d.ts.map +1 -1
- package/dist/openapi/schema-introspector.js +23 -17
- package/dist/openapi/schema-introspector.js.map +1 -1
- package/dist/outbox/index.d.ts +15 -6
- package/dist/outbox/index.d.ts.map +1 -1
- package/dist/outbox/index.js +60 -16
- package/dist/outbox/index.js.map +1 -1
- package/dist/ports/audit.d.ts +56 -10
- package/dist/ports/audit.d.ts.map +1 -1
- package/dist/ports/audit.js +71 -3
- package/dist/ports/audit.js.map +1 -1
- package/dist/ports/auth.d.ts +92 -0
- package/dist/ports/auth.d.ts.map +1 -1
- package/dist/ports/auth.js +92 -0
- package/dist/ports/auth.js.map +1 -1
- package/dist/ports/events.d.ts +2 -2
- package/dist/ports/events.d.ts.map +1 -1
- package/dist/ports/index.d.ts +62 -33
- package/dist/ports/index.d.ts.map +1 -1
- package/dist/ports/index.js +28 -34
- package/dist/ports/index.js.map +1 -1
- package/dist/ports/policy.d.ts +32 -3
- package/dist/ports/policy.d.ts.map +1 -1
- package/dist/ports/policy.js +13 -2
- package/dist/ports/policy.js.map +1 -1
- package/dist/ports/testing.d.ts +1030 -2
- package/dist/ports/testing.d.ts.map +1 -1
- package/dist/ports/testing.js +1031 -1
- package/dist/ports/testing.js.map +1 -1
- package/dist/ports/unbound.d.ts +21 -0
- package/dist/ports/unbound.d.ts.map +1 -0
- package/dist/ports/unbound.js +57 -0
- package/dist/ports/unbound.js.map +1 -0
- package/dist/ports/unit-of-work.d.ts +1 -1
- package/dist/ports/unit-of-work.d.ts.map +1 -1
- package/dist/ports/unit-of-work.js +1 -1
- package/dist/ports/unit-of-work.js.map +1 -1
- package/dist/providers/index.d.ts +3 -2
- package/dist/providers/index.d.ts.map +1 -1
- package/dist/providers/index.js +3 -2
- package/dist/providers/index.js.map +1 -1
- package/dist/providers/instrumentation.d.ts +45 -4
- package/dist/providers/instrumentation.d.ts.map +1 -1
- package/dist/providers/instrumentation.js +25 -6
- package/dist/providers/instrumentation.js.map +1 -1
- package/dist/providers/metadata.d.ts +39 -0
- package/dist/providers/metadata.d.ts.map +1 -0
- package/dist/providers/metadata.js +169 -0
- package/dist/providers/metadata.js.map +1 -0
- package/dist/providers/provider.d.ts +114 -9
- package/dist/providers/provider.d.ts.map +1 -1
- package/dist/providers/provider.js +3 -20
- package/dist/providers/provider.js.map +1 -1
- package/dist/schedules/index.d.ts +94 -13
- package/dist/schedules/index.d.ts.map +1 -1
- package/dist/schedules/index.js +66 -12
- package/dist/schedules/index.js.map +1 -1
- package/dist/server/audit-context.d.ts +29 -0
- package/dist/server/audit-context.d.ts.map +1 -0
- package/dist/server/audit-context.js +44 -0
- package/dist/server/audit-context.js.map +1 -0
- package/dist/server/context.d.ts +141 -0
- package/dist/server/context.d.ts.map +1 -0
- package/dist/server/context.js +39 -0
- package/dist/server/context.js.map +1 -0
- package/dist/server/contract-like.d.ts +1 -1
- package/dist/server/contract-like.d.ts.map +1 -1
- package/dist/server/contract-like.js +1 -1
- package/dist/server/contract-like.js.map +1 -1
- package/dist/server/health.d.ts +2 -2
- package/dist/server/health.d.ts.map +1 -1
- package/dist/server/hooks/auth.d.ts +49 -10
- package/dist/server/hooks/auth.d.ts.map +1 -1
- package/dist/server/hooks/auth.js +77 -37
- package/dist/server/hooks/auth.js.map +1 -1
- package/dist/server/hooks/cors.d.ts +1 -1
- package/dist/server/hooks/cors.d.ts.map +1 -1
- package/dist/server/hooks/errors.d.ts +2 -2
- package/dist/server/hooks/errors.d.ts.map +1 -1
- package/dist/server/hooks/errors.js +2 -2
- package/dist/server/hooks/errors.js.map +1 -1
- package/dist/server/hooks/idempotency.d.ts +78 -0
- package/dist/server/hooks/idempotency.d.ts.map +1 -0
- package/dist/server/hooks/idempotency.js +154 -0
- package/dist/server/hooks/idempotency.js.map +1 -0
- package/dist/server/hooks/index.d.ts +8 -7
- package/dist/server/hooks/index.d.ts.map +1 -1
- package/dist/server/hooks/index.js +6 -5
- package/dist/server/hooks/index.js.map +1 -1
- package/dist/server/hooks/logging.d.ts +2 -2
- package/dist/server/hooks/logging.d.ts.map +1 -1
- package/dist/server/hooks/logging.js +1 -1
- package/dist/server/hooks/logging.js.map +1 -1
- package/dist/server/hooks/rate-limit.d.ts +25 -7
- package/dist/server/hooks/rate-limit.d.ts.map +1 -1
- package/dist/server/hooks/rate-limit.js +47 -12
- package/dist/server/hooks/rate-limit.js.map +1 -1
- package/dist/server/hooks.d.ts +1 -1
- package/dist/server/hooks.d.ts.map +1 -1
- package/dist/server/hooks.js +1 -1
- package/dist/server/hooks.js.map +1 -1
- package/dist/server/http.d.ts +61 -35
- package/dist/server/http.d.ts.map +1 -1
- package/dist/server/http.js +1 -20
- package/dist/server/http.js.map +1 -1
- package/dist/server/index.d.ts +36 -12
- package/dist/server/index.d.ts.map +1 -1
- package/dist/server/index.js +24 -8
- package/dist/server/index.js.map +1 -1
- package/dist/server/instrumentation.d.ts +108 -0
- package/dist/server/instrumentation.d.ts.map +1 -0
- package/dist/server/instrumentation.js +297 -0
- package/dist/server/instrumentation.js.map +1 -0
- package/dist/server/openapi.d.ts +3 -3
- package/dist/server/openapi.d.ts.map +1 -1
- package/dist/server/openapi.js +1 -1
- package/dist/server/openapi.js.map +1 -1
- package/dist/server/providers/index.d.ts +3 -3
- package/dist/server/providers/index.d.ts.map +1 -1
- package/dist/server/providers/index.js +3 -3
- package/dist/server/providers/index.js.map +1 -1
- package/dist/server/providers/loadProviderConfig.d.ts +2 -2
- package/dist/server/providers/loadProviderConfig.d.ts.map +1 -1
- package/dist/server/providers/loadProviderConfig.js +2 -2
- package/dist/server/providers/loadProviderConfig.js.map +1 -1
- package/dist/server/request-context.d.ts +67 -0
- package/dist/server/request-context.d.ts.map +1 -0
- package/dist/server/request-context.js +79 -0
- package/dist/server/request-context.js.map +1 -0
- package/dist/server/server-context.d.ts +38 -0
- package/dist/server/server-context.d.ts.map +1 -0
- package/dist/server/server-context.js +38 -0
- package/dist/server/server-context.js.map +1 -0
- package/dist/server/server.d.ts +105 -33
- package/dist/server/server.d.ts.map +1 -1
- package/dist/server/server.js +434 -118
- package/dist/server/server.js.map +1 -1
- package/dist/server/types.d.ts +2 -2
- package/dist/server/types.d.ts.map +1 -1
- package/dist/server/types.js +2 -2
- package/dist/server/types.js.map +1 -1
- package/dist/server/use-case-route.d.ts +263 -0
- package/dist/server/use-case-route.d.ts.map +1 -0
- package/dist/server/use-case-route.js +77 -0
- package/dist/server/use-case-route.js.map +1 -0
- package/dist/server-only.d.ts +8 -0
- package/dist/server-only.d.ts.map +1 -0
- package/dist/server-only.js +8 -0
- package/dist/server-only.js.map +1 -0
- package/dist/tasks/index.d.ts +139 -0
- package/dist/tasks/index.d.ts.map +1 -0
- package/dist/tasks/index.js +98 -0
- package/dist/tasks/index.js.map +1 -0
- package/dist/testing/index.d.ts +607 -5
- package/dist/testing/index.d.ts.map +1 -1
- package/dist/testing/index.js +426 -4
- package/dist/testing/index.js.map +1 -1
- package/dist/tracing/index.d.ts +89 -0
- package/dist/tracing/index.d.ts.map +1 -0
- package/dist/tracing/index.js +101 -0
- package/dist/tracing/index.js.map +1 -0
- package/dist/uploads/client.d.ts +1 -1
- package/dist/uploads/client.d.ts.map +1 -1
- package/dist/uploads/index.d.ts +2 -2
- package/dist/uploads/index.d.ts.map +1 -1
- package/dist/uploads/index.js +1 -1
- package/dist/uploads/index.js.map +1 -1
- package/package.json +24 -2
- package/src/application/index.ts +193 -10
- package/src/client/client.ts +148 -150
- package/src/client/error-messages.ts +35 -0
- package/src/client/index.ts +12 -4
- package/src/client/types.ts +44 -5
- package/src/client-only.ts +7 -0
- package/src/config/index.ts +6 -6
- package/src/contracts/catalog-errors.ts +115 -0
- package/src/contracts/contract-builder.ts +39 -76
- package/src/contracts/contract-group.ts +33 -68
- package/src/contracts/contract-like.ts +1 -1
- package/src/contracts/index.ts +24 -11
- package/src/contracts/openapi-meta.ts +55 -0
- package/src/contracts/path-template.ts +2 -2
- package/src/contracts/schema-shape.ts +75 -0
- package/src/contracts/success-status.ts +68 -0
- package/src/contracts/types.ts +32 -5
- package/src/contracts/utils.ts +5 -2
- package/src/domain/events.ts +6 -2
- package/src/domain/index.ts +3 -3
- package/src/errors/catalog.ts +9 -1
- package/src/errors/http.ts +11 -1
- package/src/errors/index.ts +4 -4
- package/src/errors/response.ts +4 -1
- package/src/events/index.ts +12 -26
- package/src/idempotency/index.ts +5 -3
- package/src/jobs/index.ts +14 -24
- package/src/notifications/index.ts +17 -27
- package/src/openapi/index.ts +73 -38
- package/src/openapi/schema-introspector.ts +68 -17
- package/src/outbox/index.ts +84 -19
- package/src/ports/audit.ts +120 -11
- package/src/ports/auth.ts +132 -0
- package/src/ports/events.ts +2 -2
- package/src/ports/index.ts +104 -35
- package/src/ports/policy.ts +50 -3
- package/src/ports/testing.ts +2220 -33
- package/src/ports/unbound.ts +64 -0
- package/src/ports/unit-of-work.ts +6 -2
- package/src/providers/index.ts +16 -3
- package/src/providers/instrumentation.ts +86 -7
- package/src/providers/metadata.ts +234 -0
- package/src/providers/provider.ts +168 -9
- package/src/schedules/index.ts +173 -23
- package/src/server/audit-context.ts +45 -0
- package/src/server/context.ts +224 -0
- package/src/server/contract-like.ts +1 -1
- package/src/server/health.ts +2 -2
- package/src/server/hooks/auth.ts +141 -51
- package/src/server/hooks/cors.ts +1 -1
- package/src/server/hooks/errors.ts +7 -4
- package/src/server/hooks/idempotency.ts +263 -0
- package/src/server/hooks/index.ts +14 -7
- package/src/server/hooks/logging.ts +3 -3
- package/src/server/hooks/rate-limit.ts +85 -17
- package/src/server/hooks.ts +1 -1
- package/src/server/http.ts +78 -51
- package/src/server/index.ts +62 -12
- package/src/server/instrumentation.ts +470 -0
- package/src/server/openapi.ts +4 -4
- package/src/server/providers/index.ts +6 -3
- package/src/server/providers/loadProviderConfig.ts +4 -4
- package/src/server/request-context.ts +116 -0
- package/src/server/server-context.ts +44 -0
- package/src/server/server.ts +886 -238
- package/src/server/types.ts +2 -2
- package/src/server/use-case-route.ts +430 -0
- package/src/server-only.ts +7 -0
- package/src/tasks/index.ts +275 -0
- package/src/testing/index.ts +1142 -6
- package/src/tracing/index.ts +176 -0
- package/src/uploads/client.ts +1 -1
- package/src/uploads/index.ts +7 -3
- package/dist/ports/mailer.d.ts +0 -6
- package/dist/ports/mailer.d.ts.map +0 -1
- package/dist/ports/mailer.js +0 -2
- package/dist/ports/mailer.js.map +0 -1
- package/dist/ports/schedules.d.ts +0 -9
- package/dist/ports/schedules.d.ts.map +0 -1
- package/dist/ports/schedules.js +0 -2
- package/dist/ports/schedules.js.map +0 -1
package/dist/ports/auth.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../src/ports/auth.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,MAAM,WAAW,eAAe;IAC9B;;;OAGG;IACH,OAAO,EAAE,OAAO,CAAC;IACjB;;OAEG;IACH,GAAG,CAAC,EAAE,OAAO,CAAC;CACf;AAED;;;;;GAKG;AACH,MAAM,WAAW,WAAW,CAAC,IAAI,GAAG,OAAO,EAAE,OAAO,GAAG,OAAO;IAC5D,IAAI,EAAE,IAAI,CAAC;IACX,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED;;;GAGG;AACH,qBAAa,qBAAsB,SAAQ,KAAK;IAC9C,QAAQ,CAAC,IAAI,kBAAkB;gBAEnB,OAAO,SAAiB;CAIrC;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,QAAQ,CACvB,IAAI,GAAG,OAAO,EACd,OAAO,GAAG,OAAO,EACjB,WAAW,SAAS,eAAe,GAAG,eAAe;IAErD;;OAEG;IACH,UAAU,CAAC,GAAG,EAAE,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC,CAAC;IACzE;;OAEG;IACH,OAAO,CAAC,GAAG,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC;IAChD;;OAEG;IACH,WAAW,CAAC,GAAG,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC9C;AAED,KAAK,YAAY,CAAC,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;AAEtC;;GAEG;AACH,MAAM,MAAM,wBAAwB,CAClC,IAAI,EACJ,OAAO,EACP,WAAW,SAAS,eAAe,IACjC,CAAC,GAAG,EAAE,WAAW,KAAK,YAAY,CAAC,WAAW,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC,CAAC;AAE1E;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,gBAAgB,CAC9B,IAAI,EACJ,OAAO,GAAG,OAAO,EACjB,WAAW,SAAS,eAAe,GAAG,eAAe,EAErD,OAAO,EACH,WAAW,CAAC,IAAI,EAAE,OAAO,CAAC,GAC1B,IAAI,GACJ,wBAAwB,CAAC,IAAI,EAAE,OAAO,EAAE,WAAW,CAAC,GACvD,QAAQ,CAAC,IAAI,EAAE,OAAO,EAAE,WAAW,CAAC,CAqBtC;AAED;;;;;;;;GAQG;AACH,wBAAgB,mBAAmB,CACjC,IAAI,GAAG,OAAO,EACd,OAAO,GAAG,OAAO,EACjB,WAAW,SAAS,eAAe,GAAG,eAAe,KAClD,QAAQ,CAAC,IAAI,EAAE,OAAO,EAAE,WAAW,CAAC,CAExC"}
|
|
1
|
+
{"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../src/ports/auth.ts"],"names":[],"mappings":"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"}
|
package/dist/ports/auth.js
CHANGED
|
@@ -9,6 +9,98 @@ export class AuthUnauthorizedError extends Error {
|
|
|
9
9
|
this.name = "AuthUnauthorizedError";
|
|
10
10
|
}
|
|
11
11
|
}
|
|
12
|
+
/**
|
|
13
|
+
* Error thrown by tenant helpers when a workflow requires a tenant scope but
|
|
14
|
+
* the current context has none.
|
|
15
|
+
*
|
|
16
|
+
* The server maps this to a framework-owned 403 response, mirroring how
|
|
17
|
+
* `AuthUnauthorizedError` maps to a framework-owned 401.
|
|
18
|
+
*/
|
|
19
|
+
export class TenantRequiredError extends Error {
|
|
20
|
+
code = "TENANT_REQUIRED";
|
|
21
|
+
status = 403;
|
|
22
|
+
constructor(message = "A tenant is required for this action.") {
|
|
23
|
+
super(message);
|
|
24
|
+
this.name = "TenantRequiredError";
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
function throwRequired(options, fallback) {
|
|
28
|
+
throw options?.error ? options.error() : fallback();
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Return the authenticated session from `ctx.auth` or throw.
|
|
32
|
+
*
|
|
33
|
+
* Throws `AuthUnauthorizedError` (a framework-owned 401) by default. Pass
|
|
34
|
+
* `options.error` to throw an app-owned error instead.
|
|
35
|
+
*
|
|
36
|
+
* @example
|
|
37
|
+
* ```ts
|
|
38
|
+
* const session = requireSession(ctx);
|
|
39
|
+
* ```
|
|
40
|
+
*/
|
|
41
|
+
export function requireSession(ctx, options) {
|
|
42
|
+
if (!ctx.auth) {
|
|
43
|
+
throwRequired(options, () => new AuthUnauthorizedError());
|
|
44
|
+
}
|
|
45
|
+
return ctx.auth;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Return the authenticated user from `ctx.auth` or throw.
|
|
49
|
+
*
|
|
50
|
+
* The user type is inferred from the app's `ctx.auth` session. Throws
|
|
51
|
+
* `AuthUnauthorizedError` (a framework-owned 401) by default.
|
|
52
|
+
*
|
|
53
|
+
* @example
|
|
54
|
+
* ```ts
|
|
55
|
+
* const user = requireUser(ctx);
|
|
56
|
+
* ```
|
|
57
|
+
*/
|
|
58
|
+
export function requireUser(ctx, options) {
|
|
59
|
+
return requireSession(ctx, options).user;
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Return the authenticated user's ID from `ctx.auth` or throw.
|
|
63
|
+
*
|
|
64
|
+
* Throws `AuthUnauthorizedError` (a framework-owned 401) by default.
|
|
65
|
+
*
|
|
66
|
+
* @example
|
|
67
|
+
* ```ts
|
|
68
|
+
* const userId = requireUserId(ctx);
|
|
69
|
+
* ```
|
|
70
|
+
*/
|
|
71
|
+
export function requireUserId(ctx, options) {
|
|
72
|
+
return requireUser(ctx, options).id;
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Return the tenant scope from `ctx.tenant` or throw.
|
|
76
|
+
*
|
|
77
|
+
* Throws `TenantRequiredError` (a framework-owned 403) by default. Pass
|
|
78
|
+
* `options.error` to throw an app-owned error instead.
|
|
79
|
+
*
|
|
80
|
+
* @example
|
|
81
|
+
* ```ts
|
|
82
|
+
* const tenant = requireTenant(ctx);
|
|
83
|
+
* ```
|
|
84
|
+
*/
|
|
85
|
+
export function requireTenant(ctx, options) {
|
|
86
|
+
if (!ctx.tenant) {
|
|
87
|
+
throwRequired(options, () => new TenantRequiredError());
|
|
88
|
+
}
|
|
89
|
+
return ctx.tenant;
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* Return the tenant ID from `ctx.tenant` or throw.
|
|
93
|
+
*
|
|
94
|
+
* Throws `TenantRequiredError` (a framework-owned 403) by default.
|
|
95
|
+
*
|
|
96
|
+
* @example
|
|
97
|
+
* ```ts
|
|
98
|
+
* const tenantId = requireTenantId(ctx);
|
|
99
|
+
* ```
|
|
100
|
+
*/
|
|
101
|
+
export function requireTenantId(ctx, options) {
|
|
102
|
+
return requireTenant(ctx, options).id;
|
|
103
|
+
}
|
|
12
104
|
/**
|
|
13
105
|
* Create an auth port from a fixed session or request-aware session factory.
|
|
14
106
|
*
|
package/dist/ports/auth.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/ports/auth.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/ports/auth.ts"],"names":[],"mappings":"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"}
|
package/dist/ports/events.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type { EventPayloadDef, InferEventPayload as InferContractEventPayload, StandardSchema } from "../events";
|
|
2
|
-
import type { JobDef as ContractJobDef, InferJobPayload as InferContractJobPayload } from "../jobs";
|
|
1
|
+
import type { EventPayloadDef, InferEventPayload as InferContractEventPayload, StandardSchema } from "../events/index.js";
|
|
2
|
+
import type { JobDef as ContractJobDef, InferJobPayload as InferContractJobPayload } from "../jobs/index.js";
|
|
3
3
|
/**
|
|
4
4
|
* Represents a defined Domain Event with name and payload schema.
|
|
5
5
|
* This is a minimal interface that ports need - implementations can use
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../src/ports/events.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,eAAe,EACf,iBAAiB,IAAI,yBAAyB,EAC9C,cAAc,EACf,MAAM,
|
|
1
|
+
{"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../src/ports/events.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,eAAe,EACf,iBAAiB,IAAI,yBAAyB,EAC9C,cAAc,EACf,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EACV,MAAM,IAAI,cAAc,EACxB,eAAe,IAAI,uBAAuB,EAC3C,MAAM,kBAAkB,CAAC;AAE1B;;;;GAIG;AACH,MAAM,WAAW,cAAc,CAC7B,IAAI,SAAS,MAAM,GAAG,MAAM,EAC5B,OAAO,SAAS,cAAc,GAAG,cAAc,CAC/C,SAAQ,eAAe,CAAC,IAAI,EAAE,OAAO,CAAC;CAAG;AAE3C;;GAEG;AACH,MAAM,MAAM,iBAAiB,CAAC,CAAC,SAAS,cAAc,IACpD,yBAAyB,CAAC,CAAC,CAAC,CAAC;AAE/B;;;;;;;GAOG;AACH,MAAM,MAAM,MAAM,CAChB,IAAI,SAAS,MAAM,GAAG,MAAM,EAC5B,OAAO,SAAS,cAAc,GAAG,cAAc,EAC/C,GAAG,GAAG,OAAO,IACX,cAAc,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC;AAEvC;;GAEG;AACH,MAAM,MAAM,eAAe,CAAC,CAAC,SAAS,MAAM,IAAI,uBAAuB,CAAC,CAAC,CAAC,CAAC;AAE3E;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,WAAW,YAAY;IAC3B;;OAEG;IACH,OAAO,CAAC,CAAC,SAAS,cAAc,EAC9B,KAAK,EAAE,CAAC,EACR,OAAO,EAAE,iBAAiB,CAAC,CAAC,CAAC,GAC5B,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IAExB;;OAEG;IACH,SAAS,CAAC,CAAC,SAAS,cAAc,EAChC,KAAK,EAAE,CAAC,EACR,OAAO,EAAE,CAAC,OAAO,EAAE,iBAAiB,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,GAC/D,MAAM,IAAI,CAAC;CACf;AAED;;;;;;GAMG;AACH,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,CAAC,SAAS,MAAM,EACvB,GAAG,EAAE,CAAC,EACN,OAAO,EAAE,eAAe,CAAC,CAAC,CAAC,GAC1B,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;CACzB"}
|
package/dist/ports/index.d.ts
CHANGED
|
@@ -27,7 +27,7 @@
|
|
|
27
27
|
* - `@beignet/core/mail` owns `MailerPort` and mail test adapters
|
|
28
28
|
* - `@beignet/core/notifications` owns notification helpers and test adapters
|
|
29
29
|
* - `@beignet/core/outbox` owns durable outbox helpers and test adapters
|
|
30
|
-
* - `@beignet/core/schedules` owns
|
|
30
|
+
* - `@beignet/core/schedules` owns schedule definitions and runners
|
|
31
31
|
*/
|
|
32
32
|
/**
|
|
33
33
|
* A generic map of named "ports" (outbound dependencies) that your
|
|
@@ -37,27 +37,52 @@
|
|
|
37
37
|
* `definePorts(...)`.
|
|
38
38
|
*/
|
|
39
39
|
export type AnyPorts = Record<string, unknown>;
|
|
40
|
+
/**
|
|
41
|
+
* Definition accepted by the curried `definePorts<P>()(...)` form.
|
|
42
|
+
*/
|
|
43
|
+
export type DeferredPortsDefinition<P extends AnyPorts, Deferred extends readonly (keyof P & string)[]> = {
|
|
44
|
+
/**
|
|
45
|
+
* Ports the app binds directly. Optional keys of `P` may be omitted here
|
|
46
|
+
* and contributed by providers instead.
|
|
47
|
+
*/
|
|
48
|
+
bound: Omit<P, Deferred[number]>;
|
|
49
|
+
/**
|
|
50
|
+
* Port keys that providers contribute during server startup. Deferred keys
|
|
51
|
+
* boot as throwing placeholders; `createServer(...)` fails startup if any
|
|
52
|
+
* are still unbound after providers have started (see `onUnboundPorts`).
|
|
53
|
+
*/
|
|
54
|
+
deferred: Deferred;
|
|
55
|
+
};
|
|
40
56
|
/**
|
|
41
57
|
* Define the set of ports (outbound dependencies) for your application.
|
|
42
58
|
*
|
|
43
|
-
*
|
|
44
|
-
*
|
|
45
|
-
*
|
|
59
|
+
* The identity form captures the exact shape of the provided `ports` object
|
|
60
|
+
* so you can export `type AppPorts = typeof appPorts`.
|
|
61
|
+
*
|
|
62
|
+
* The curried form, `definePorts<AppPorts>()({ bound, deferred })`, declares
|
|
63
|
+
* which port keys providers contribute at server startup. Deferred keys boot
|
|
64
|
+
* as throwing placeholders instead of hand-written stubs, and
|
|
65
|
+
* `createServer(...)` validates after provider startup that nothing is left
|
|
66
|
+
* unbound. Optional keys of `AppPorts` may go in either bucket.
|
|
46
67
|
*
|
|
47
68
|
* @example
|
|
48
69
|
* ```ts
|
|
70
|
+
* // Identity form: every port is bound directly.
|
|
49
71
|
* const appPorts = definePorts({
|
|
50
72
|
* db: dbAdapter,
|
|
51
73
|
* mailer: mailerAdapter,
|
|
52
74
|
* });
|
|
53
|
-
*
|
|
54
75
|
* export type AppPorts = typeof appPorts;
|
|
55
|
-
* ```
|
|
56
76
|
*
|
|
57
|
-
*
|
|
58
|
-
*
|
|
77
|
+
* // Deferred form: providers contribute the rest at startup.
|
|
78
|
+
* export const appPorts = definePorts<AppPorts>()({
|
|
79
|
+
* bound: { gate },
|
|
80
|
+
* deferred: ["db", "mailer", "storage"],
|
|
81
|
+
* });
|
|
82
|
+
* ```
|
|
59
83
|
*/
|
|
60
84
|
export declare function definePorts<P extends AnyPorts>(ports: P): P;
|
|
85
|
+
export declare function definePorts<P extends AnyPorts>(): <const Deferred extends readonly (keyof P & string)[]>(definition: DeferredPortsDefinition<P, Deferred>) => P;
|
|
61
86
|
/**
|
|
62
87
|
* A small helper type describing a context object that carries `ports`.
|
|
63
88
|
*
|
|
@@ -81,101 +106,105 @@ export interface PortsContext<P extends AnyPorts = AnyPorts> {
|
|
|
81
106
|
/**
|
|
82
107
|
* Idempotency port exports.
|
|
83
108
|
*/
|
|
84
|
-
export type { IdempotencyCompleteInput, IdempotencyFailInput, IdempotencyPort, IdempotencyReservation, IdempotencyReserveInput, } from "../idempotency";
|
|
109
|
+
export type { IdempotencyCompleteInput, IdempotencyFailInput, IdempotencyPort, IdempotencyReservation, IdempotencyReserveInput, } from "../idempotency/index.js";
|
|
85
110
|
/**
|
|
86
111
|
* Notification port exports.
|
|
87
112
|
*/
|
|
88
|
-
export type { MemoryNotificationDelivery, MemoryNotificationPort, NotificationChannelResult, NotificationPort, SendNotificationOptions, SendNotificationResult, } from "../notifications";
|
|
113
|
+
export type { MemoryNotificationDelivery, MemoryNotificationPort, NotificationChannelResult, NotificationPort, SendNotificationOptions, SendNotificationResult, } from "../notifications/index.js";
|
|
89
114
|
/**
|
|
90
115
|
* Transactional outbox port exports.
|
|
91
116
|
*/
|
|
92
|
-
export type { ClaimedOutboxMessage, OutboxClaimBatchOptions, OutboxEnqueueInput, OutboxMarkDeliveredInput, OutboxMarkFailedInput, OutboxMessage, OutboxMessageKind, OutboxMessageStatus, OutboxPort, } from "../outbox";
|
|
117
|
+
export type { ClaimedOutboxMessage, OutboxClaimBatchOptions, OutboxEnqueueInput, OutboxMarkDeliveredInput, OutboxMarkFailedInput, OutboxMessage, OutboxMessageKind, OutboxMessageStatus, OutboxPort, } from "../outbox/index.js";
|
|
93
118
|
/**
|
|
94
119
|
* Audit log port exports.
|
|
95
120
|
*/
|
|
96
|
-
export type { ActivityActor, ActivityActorType, ActivityMetadata, ActivityMetadataValue, ActivityResource, ActivityTenant, AuditLogEntry, AuditLogEntryInput, AuditLogOptions, AuditLogPort, AuditOutcome, MemoryAuditLogPort, } from "./audit";
|
|
121
|
+
export type { ActivityActor, ActivityActorType, ActivityMetadata, ActivityMetadataValue, ActivityResource, ActivityTenant, AuditLogEntry, AuditLogEntryInput, AuditLogOptions, AuditLogPort, AuditOutcome, InstrumentedAuditLogOptions, MemoryAuditLogPort, } from "./audit.js";
|
|
97
122
|
/**
|
|
98
123
|
* Audit log helper exports.
|
|
99
124
|
*/
|
|
100
|
-
export { createAnonymousActor, createMemoryAuditLog, createRedactedAuditLog, createServiceActor, createSystemActor, createTenant, createUserActor, normalizeAuditLogEntry, redactAuditLogEntry, } from "./audit";
|
|
125
|
+
export { createAnonymousActor, createInstrumentedAuditLog, createMemoryAuditLog, createRedactedAuditLog, createServiceActor, createSystemActor, createTenant, createUserActor, normalizeAuditLogEntry, redactAuditLogEntry, } from "./audit.js";
|
|
101
126
|
/**
|
|
102
127
|
* Auth port exports.
|
|
103
128
|
*/
|
|
104
|
-
export type { AuthPort, AuthRequestLike, AuthSession, StaticAuthSessionFactory, } from "./auth";
|
|
129
|
+
export type { AuthPort, AuthRequestLike, AuthSession, RequireOptions, StaticAuthSessionFactory, } from "./auth.js";
|
|
105
130
|
/**
|
|
106
131
|
* Auth helper exports.
|
|
107
132
|
*/
|
|
108
|
-
export { AuthUnauthorizedError, createAnonymousAuth, createStaticAuth, } from "./auth";
|
|
133
|
+
export { AuthUnauthorizedError, createAnonymousAuth, createStaticAuth, requireSession, requireTenant, requireTenantId, requireUser, requireUserId, TenantRequiredError, } from "./auth.js";
|
|
109
134
|
/**
|
|
110
135
|
* Ports builder exports.
|
|
111
136
|
*/
|
|
112
|
-
export { createPortsBuilder, type PortsBuilder, type PortsOf, } from "./builder";
|
|
137
|
+
export { createPortsBuilder, type PortsBuilder, type PortsOf, } from "./builder.js";
|
|
113
138
|
/**
|
|
114
139
|
* Cache port exports.
|
|
115
140
|
*/
|
|
116
|
-
export type { CachePort, CacheSetOptions } from "./cache";
|
|
141
|
+
export type { CachePort, CacheSetOptions } from "./cache.js";
|
|
117
142
|
/**
|
|
118
143
|
* Cache helper exports.
|
|
119
144
|
*/
|
|
120
|
-
export { createMemoryCache } from "./cache";
|
|
145
|
+
export { createMemoryCache } from "./cache.js";
|
|
121
146
|
/**
|
|
122
147
|
* Clock port exports.
|
|
123
148
|
*/
|
|
124
|
-
export type { ClockPort, FrozenClockPort } from "./clock";
|
|
149
|
+
export type { ClockPort, FrozenClockPort } from "./clock.js";
|
|
125
150
|
/**
|
|
126
151
|
* Clock helper exports.
|
|
127
152
|
*/
|
|
128
|
-
export { createFrozenClock, createSystemClock } from "./clock";
|
|
153
|
+
export { createFrozenClock, createSystemClock } from "./clock.js";
|
|
129
154
|
/**
|
|
130
155
|
* Event bus and job dispatcher port exports.
|
|
131
156
|
*/
|
|
132
|
-
export type { DomainEventDef, EventBusPort, InferEventPayload, InferJobPayload, JobDef, JobDispatcherPort, } from "./events";
|
|
157
|
+
export type { DomainEventDef, EventBusPort, InferEventPayload, InferJobPayload, JobDef, JobDispatcherPort, } from "./events.js";
|
|
133
158
|
/**
|
|
134
159
|
* ID generator port exports.
|
|
135
160
|
*/
|
|
136
|
-
export type { IdGeneratorPort, SequenceIdGeneratorPort } from "./id-generator";
|
|
161
|
+
export type { IdGeneratorPort, SequenceIdGeneratorPort, } from "./id-generator.js";
|
|
137
162
|
/**
|
|
138
163
|
* ID generator helper exports.
|
|
139
164
|
*/
|
|
140
|
-
export { createSequenceIdGenerator, createUuidIdGenerator, } from "./id-generator";
|
|
165
|
+
export { createSequenceIdGenerator, createUuidIdGenerator, } from "./id-generator.js";
|
|
141
166
|
/**
|
|
142
167
|
* Logger port exports.
|
|
143
168
|
*/
|
|
144
|
-
export type { LoggerPort, LogLevel, MemoryLogEntry, MemoryLoggerPort, } from "./logger";
|
|
169
|
+
export type { LoggerPort, LogLevel, MemoryLogEntry, MemoryLoggerPort, } from "./logger.js";
|
|
145
170
|
/**
|
|
146
171
|
* Logger helper exports.
|
|
147
172
|
*/
|
|
148
|
-
export { createMemoryLogger, createNoopLogger } from "./logger";
|
|
173
|
+
export { createMemoryLogger, createNoopLogger } from "./logger.js";
|
|
149
174
|
/**
|
|
150
175
|
* Policy and authorization gate type exports.
|
|
151
176
|
*/
|
|
152
|
-
export type { BoundGate, CreateGateOptions, GateAllowedDecision, GateDecision, GateDeniedDecision, GateDenyHandler, GatePolicyResult, GatePort, PolicyContextFromDefinitions, PolicyDefinition, PolicyMapFromDefinitions, PolicyResolver, PolicySubjectArgs, } from "./policy";
|
|
177
|
+
export type { BoundGate, CreateGateOptions, GateAllowedDecision, GateContext, GateDecision, GateDeniedDecision, GateDenyHandler, GatePolicyResult, GatePort, PolicyContextFromDefinitions, PolicyDefinition, PolicyMapFromDefinitions, PolicyResolver, PolicySubjectArgs, } from "./policy.js";
|
|
153
178
|
/**
|
|
154
179
|
* Policy and authorization gate helper exports.
|
|
155
180
|
*/
|
|
156
|
-
export { allow, createGate, definePolicy, deny, GateAuthorizationError, } from "./policy";
|
|
181
|
+
export { allow, createGate, definePolicy, deny, GateAuthorizationError, } from "./policy.js";
|
|
157
182
|
/**
|
|
158
183
|
* Rate limit port exports.
|
|
159
184
|
*/
|
|
160
|
-
export type { RateLimitHitOptions, RateLimitPort, RateLimitResult, } from "./rate-limit";
|
|
185
|
+
export type { RateLimitHitOptions, RateLimitPort, RateLimitResult, } from "./rate-limit.js";
|
|
161
186
|
/**
|
|
162
187
|
* Rate limit helper exports.
|
|
163
188
|
*/
|
|
164
|
-
export { createMemoryRateLimiter } from "./rate-limit";
|
|
189
|
+
export { createMemoryRateLimiter } from "./rate-limit.js";
|
|
165
190
|
/**
|
|
166
191
|
* Redaction helper exports.
|
|
167
192
|
*/
|
|
168
|
-
export { createRedactor, DEFAULT_CIRCULAR_VALUE, DEFAULT_REDACTED_VALUE, DEFAULT_SENSITIVE_KEY_TERMS, DEFAULT_SENSITIVE_KEYS, DEFAULT_TRUNCATED_VALUE, isSensitiveKey, type RedactableHeaders, type RedactionDecisionContext, type RedactionOptions, type Redactor, redactHeaders, redactValue, } from "./redaction";
|
|
193
|
+
export { createRedactor, DEFAULT_CIRCULAR_VALUE, DEFAULT_REDACTED_VALUE, DEFAULT_SENSITIVE_KEY_TERMS, DEFAULT_SENSITIVE_KEYS, DEFAULT_TRUNCATED_VALUE, isSensitiveKey, type RedactableHeaders, type RedactionDecisionContext, type RedactionOptions, type Redactor, redactHeaders, redactValue, } from "./redaction.js";
|
|
169
194
|
/**
|
|
170
195
|
* Storage port exports.
|
|
171
196
|
*/
|
|
172
|
-
export type { MemoryStorageOptions, StorageBody, StorageMetadata, StorageObject, StorageObjectBody, StoragePort, StoragePutOptions, StorageVisibility, } from "./storage";
|
|
197
|
+
export type { MemoryStorageOptions, StorageBody, StorageMetadata, StorageObject, StorageObjectBody, StoragePort, StoragePutOptions, StorageVisibility, } from "./storage.js";
|
|
173
198
|
/**
|
|
174
199
|
* Storage helper exports.
|
|
175
200
|
*/
|
|
176
|
-
export { createMemoryStorage } from "./storage";
|
|
201
|
+
export { createMemoryStorage } from "./storage.js";
|
|
202
|
+
/**
|
|
203
|
+
* Unbound (deferred) port helper exports.
|
|
204
|
+
*/
|
|
205
|
+
export { createUnboundPort, isUnboundPort } from "./unbound.js";
|
|
177
206
|
/**
|
|
178
207
|
* Unit of Work port exports.
|
|
179
208
|
*/
|
|
180
|
-
export { type BufferedDomainEventRecorder, createDomainEventRecorder, createNoopUnitOfWork, type DomainEventRecorderPort, type NoopUnitOfWorkOptions, type RecordedDomainEvent, type UnitOfWorkCallback, type UnitOfWorkPort, } from "./unit-of-work";
|
|
209
|
+
export { type BufferedDomainEventRecorder, createDomainEventRecorder, createNoopUnitOfWork, type DomainEventRecorderPort, type NoopUnitOfWorkOptions, type RecordedDomainEvent, type UnitOfWorkCallback, type UnitOfWorkPort, } from "./unit-of-work.js";
|
|
181
210
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/ports/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/ports/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAIH;;;;;;GAMG;AACH,MAAM,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAE/C;;GAEG;AACH,MAAM,MAAM,uBAAuB,CACjC,CAAC,SAAS,QAAQ,EAClB,QAAQ,SAAS,SAAS,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,EAAE,IAC5C;IACF;;;OAGG;IACH,KAAK,EAAE,IAAI,CAAC,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;IACjC;;;;OAIG;IACH,QAAQ,EAAE,QAAQ,CAAC;CACpB,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,wBAAgB,WAAW,CAAC,CAAC,SAAS,QAAQ,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC;AAC7D,wBAAgB,WAAW,CAAC,CAAC,SAAS,QAAQ,KAAK,CACjD,KAAK,CAAC,QAAQ,SAAS,SAAS,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,EAAE,EAEpD,UAAU,EAAE,uBAAuB,CAAC,CAAC,EAAE,QAAQ,CAAC,KAC7C,CAAC,CAAC;AAqBP;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,WAAW,YAAY,CAAC,CAAC,SAAS,QAAQ,GAAG,QAAQ;IACzD,KAAK,EAAE,CAAC,CAAC;CACV;AAED;;GAEG;AACH,YAAY,EACV,wBAAwB,EACxB,oBAAoB,EACpB,eAAe,EACf,sBAAsB,EACtB,uBAAuB,GACxB,MAAM,yBAAyB,CAAC;AACjC;;GAEG;AACH,YAAY,EACV,0BAA0B,EAC1B,sBAAsB,EACtB,yBAAyB,EACzB,gBAAgB,EAChB,uBAAuB,EACvB,sBAAsB,GACvB,MAAM,2BAA2B,CAAC;AACnC;;GAEG;AACH,YAAY,EACV,oBAAoB,EACpB,uBAAuB,EACvB,kBAAkB,EAClB,wBAAwB,EACxB,qBAAqB,EACrB,aAAa,EACb,iBAAiB,EACjB,mBAAmB,EACnB,UAAU,GACX,MAAM,oBAAoB,CAAC;AAC5B;;GAEG;AACH,YAAY,EACV,aAAa,EACb,iBAAiB,EACjB,gBAAgB,EAChB,qBAAqB,EACrB,gBAAgB,EAChB,cAAc,EACd,aAAa,EACb,kBAAkB,EAClB,eAAe,EACf,YAAY,EACZ,YAAY,EACZ,2BAA2B,EAC3B,kBAAkB,GACnB,MAAM,YAAY,CAAC;AACpB;;GAEG;AACH,OAAO,EACL,oBAAoB,EACpB,0BAA0B,EAC1B,oBAAoB,EACpB,sBAAsB,EACtB,kBAAkB,EAClB,iBAAiB,EACjB,YAAY,EACZ,eAAe,EACf,sBAAsB,EACtB,mBAAmB,GACpB,MAAM,YAAY,CAAC;AACpB;;GAEG;AACH,YAAY,EACV,QAAQ,EACR,eAAe,EACf,WAAW,EACX,cAAc,EACd,wBAAwB,GACzB,MAAM,WAAW,CAAC;AACnB;;GAEG;AACH,OAAO,EACL,qBAAqB,EACrB,mBAAmB,EACnB,gBAAgB,EAChB,cAAc,EACd,aAAa,EACb,eAAe,EACf,WAAW,EACX,aAAa,EACb,mBAAmB,GACpB,MAAM,WAAW,CAAC;AACnB;;GAEG;AACH,OAAO,EACL,kBAAkB,EAClB,KAAK,YAAY,EACjB,KAAK,OAAO,GACb,MAAM,cAAc,CAAC;AACtB;;GAEG;AACH,YAAY,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC7D;;GAEG;AACH,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAC/C;;GAEG;AACH,YAAY,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC7D;;GAEG;AACH,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAClE;;GAEG;AACH,YAAY,EACV,cAAc,EACd,YAAY,EACZ,iBAAiB,EACjB,eAAe,EACf,MAAM,EACN,iBAAiB,GAClB,MAAM,aAAa,CAAC;AACrB;;GAEG;AACH,YAAY,EACV,eAAe,EACf,uBAAuB,GACxB,MAAM,mBAAmB,CAAC;AAC3B;;GAEG;AACH,OAAO,EACL,yBAAyB,EACzB,qBAAqB,GACtB,MAAM,mBAAmB,CAAC;AAC3B;;GAEG;AACH,YAAY,EACV,UAAU,EACV,QAAQ,EACR,cAAc,EACd,gBAAgB,GACjB,MAAM,aAAa,CAAC;AACrB;;GAEG;AACH,OAAO,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AACnE;;GAEG;AACH,YAAY,EACV,SAAS,EACT,iBAAiB,EACjB,mBAAmB,EACnB,WAAW,EACX,YAAY,EACZ,kBAAkB,EAClB,eAAe,EACf,gBAAgB,EAChB,QAAQ,EACR,4BAA4B,EAC5B,gBAAgB,EAChB,wBAAwB,EACxB,cAAc,EACd,iBAAiB,GAClB,MAAM,aAAa,CAAC;AACrB;;GAEG;AACH,OAAO,EACL,KAAK,EACL,UAAU,EACV,YAAY,EACZ,IAAI,EACJ,sBAAsB,GACvB,MAAM,aAAa,CAAC;AACrB;;GAEG;AACH,YAAY,EACV,mBAAmB,EACnB,aAAa,EACb,eAAe,GAChB,MAAM,iBAAiB,CAAC;AACzB;;GAEG;AACH,OAAO,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;AAC1D;;GAEG;AACH,OAAO,EACL,cAAc,EACd,sBAAsB,EACtB,sBAAsB,EACtB,2BAA2B,EAC3B,sBAAsB,EACtB,uBAAuB,EACvB,cAAc,EACd,KAAK,iBAAiB,EACtB,KAAK,wBAAwB,EAC7B,KAAK,gBAAgB,EACrB,KAAK,QAAQ,EACb,aAAa,EACb,WAAW,GACZ,MAAM,gBAAgB,CAAC;AACxB;;GAEG;AACH,YAAY,EACV,oBAAoB,EACpB,WAAW,EACX,eAAe,EACf,aAAa,EACb,iBAAiB,EACjB,WAAW,EACX,iBAAiB,EACjB,iBAAiB,GAClB,MAAM,cAAc,CAAC;AACtB;;GAEG;AACH,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AACnD;;GAEG;AACH,OAAO,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAChE;;GAEG;AACH,OAAO,EACL,KAAK,2BAA2B,EAChC,yBAAyB,EACzB,oBAAoB,EACpB,KAAK,uBAAuB,EAC5B,KAAK,qBAAqB,EAC1B,KAAK,mBAAmB,EACxB,KAAK,kBAAkB,EACvB,KAAK,cAAc,GACpB,MAAM,mBAAmB,CAAC"}
|
package/dist/ports/index.js
CHANGED
|
@@ -27,77 +27,71 @@
|
|
|
27
27
|
* - `@beignet/core/mail` owns `MailerPort` and mail test adapters
|
|
28
28
|
* - `@beignet/core/notifications` owns notification helpers and test adapters
|
|
29
29
|
* - `@beignet/core/outbox` owns durable outbox helpers and test adapters
|
|
30
|
-
* - `@beignet/core/schedules` owns
|
|
31
|
-
*/
|
|
32
|
-
/**
|
|
33
|
-
* Define the set of ports (outbound dependencies) for your application.
|
|
34
|
-
*
|
|
35
|
-
* This is essentially a typed identity function. It:
|
|
36
|
-
* - captures the exact shape of the provided `ports` object
|
|
37
|
-
* - allows you to export `type AppPorts = typeof appPorts` in your app
|
|
38
|
-
*
|
|
39
|
-
* @example
|
|
40
|
-
* ```ts
|
|
41
|
-
* const appPorts = definePorts({
|
|
42
|
-
* db: dbAdapter,
|
|
43
|
-
* mailer: mailerAdapter,
|
|
44
|
-
* });
|
|
45
|
-
*
|
|
46
|
-
* export type AppPorts = typeof appPorts;
|
|
47
|
-
* ```
|
|
48
|
-
*
|
|
49
|
-
* @param ports - The ports object to define
|
|
50
|
-
* @returns The same ports object, unchanged
|
|
30
|
+
* - `@beignet/core/schedules` owns schedule definitions and runners
|
|
51
31
|
*/
|
|
32
|
+
import { createUnboundPort } from "./unbound.js";
|
|
52
33
|
export function definePorts(ports) {
|
|
53
|
-
|
|
34
|
+
if (ports !== undefined) {
|
|
35
|
+
return ports;
|
|
36
|
+
}
|
|
37
|
+
return (definition) => {
|
|
38
|
+
const result = { ...definition.bound };
|
|
39
|
+
for (const key of definition.deferred) {
|
|
40
|
+
result[key] = createUnboundPort(key);
|
|
41
|
+
}
|
|
42
|
+
return result;
|
|
43
|
+
};
|
|
54
44
|
}
|
|
55
45
|
/**
|
|
56
46
|
* Audit log helper exports.
|
|
57
47
|
*/
|
|
58
|
-
export { createAnonymousActor, createMemoryAuditLog, createRedactedAuditLog, createServiceActor, createSystemActor, createTenant, createUserActor, normalizeAuditLogEntry, redactAuditLogEntry, } from "./audit";
|
|
48
|
+
export { createAnonymousActor, createInstrumentedAuditLog, createMemoryAuditLog, createRedactedAuditLog, createServiceActor, createSystemActor, createTenant, createUserActor, normalizeAuditLogEntry, redactAuditLogEntry, } from "./audit.js";
|
|
59
49
|
/**
|
|
60
50
|
* Auth helper exports.
|
|
61
51
|
*/
|
|
62
|
-
export { AuthUnauthorizedError, createAnonymousAuth, createStaticAuth, } from "./auth";
|
|
52
|
+
export { AuthUnauthorizedError, createAnonymousAuth, createStaticAuth, requireSession, requireTenant, requireTenantId, requireUser, requireUserId, TenantRequiredError, } from "./auth.js";
|
|
63
53
|
/**
|
|
64
54
|
* Ports builder exports.
|
|
65
55
|
*/
|
|
66
|
-
export { createPortsBuilder, } from "./builder";
|
|
56
|
+
export { createPortsBuilder, } from "./builder.js";
|
|
67
57
|
/**
|
|
68
58
|
* Cache helper exports.
|
|
69
59
|
*/
|
|
70
|
-
export { createMemoryCache } from "./cache";
|
|
60
|
+
export { createMemoryCache } from "./cache.js";
|
|
71
61
|
/**
|
|
72
62
|
* Clock helper exports.
|
|
73
63
|
*/
|
|
74
|
-
export { createFrozenClock, createSystemClock } from "./clock";
|
|
64
|
+
export { createFrozenClock, createSystemClock } from "./clock.js";
|
|
75
65
|
/**
|
|
76
66
|
* ID generator helper exports.
|
|
77
67
|
*/
|
|
78
|
-
export { createSequenceIdGenerator, createUuidIdGenerator, } from "./id-generator";
|
|
68
|
+
export { createSequenceIdGenerator, createUuidIdGenerator, } from "./id-generator.js";
|
|
79
69
|
/**
|
|
80
70
|
* Logger helper exports.
|
|
81
71
|
*/
|
|
82
|
-
export { createMemoryLogger, createNoopLogger } from "./logger";
|
|
72
|
+
export { createMemoryLogger, createNoopLogger } from "./logger.js";
|
|
83
73
|
/**
|
|
84
74
|
* Policy and authorization gate helper exports.
|
|
85
75
|
*/
|
|
86
|
-
export { allow, createGate, definePolicy, deny, GateAuthorizationError, } from "./policy";
|
|
76
|
+
export { allow, createGate, definePolicy, deny, GateAuthorizationError, } from "./policy.js";
|
|
87
77
|
/**
|
|
88
78
|
* Rate limit helper exports.
|
|
89
79
|
*/
|
|
90
|
-
export { createMemoryRateLimiter } from "./rate-limit";
|
|
80
|
+
export { createMemoryRateLimiter } from "./rate-limit.js";
|
|
91
81
|
/**
|
|
92
82
|
* Redaction helper exports.
|
|
93
83
|
*/
|
|
94
|
-
export { createRedactor, DEFAULT_CIRCULAR_VALUE, DEFAULT_REDACTED_VALUE, DEFAULT_SENSITIVE_KEY_TERMS, DEFAULT_SENSITIVE_KEYS, DEFAULT_TRUNCATED_VALUE, isSensitiveKey, redactHeaders, redactValue, } from "./redaction";
|
|
84
|
+
export { createRedactor, DEFAULT_CIRCULAR_VALUE, DEFAULT_REDACTED_VALUE, DEFAULT_SENSITIVE_KEY_TERMS, DEFAULT_SENSITIVE_KEYS, DEFAULT_TRUNCATED_VALUE, isSensitiveKey, redactHeaders, redactValue, } from "./redaction.js";
|
|
95
85
|
/**
|
|
96
86
|
* Storage helper exports.
|
|
97
87
|
*/
|
|
98
|
-
export { createMemoryStorage } from "./storage";
|
|
88
|
+
export { createMemoryStorage } from "./storage.js";
|
|
89
|
+
/**
|
|
90
|
+
* Unbound (deferred) port helper exports.
|
|
91
|
+
*/
|
|
92
|
+
export { createUnboundPort, isUnboundPort } from "./unbound.js";
|
|
99
93
|
/**
|
|
100
94
|
* Unit of Work port exports.
|
|
101
95
|
*/
|
|
102
|
-
export { createDomainEventRecorder, createNoopUnitOfWork, } from "./unit-of-work";
|
|
96
|
+
export { createDomainEventRecorder, createNoopUnitOfWork, } from "./unit-of-work.js";
|
|
103
97
|
//# sourceMappingURL=index.js.map
|
package/dist/ports/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/ports/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/ports/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAiEjD,MAAM,UAAU,WAAW,CACzB,KAAS;IAMT,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,OAAO,KAAK,CAAC;IACf,CAAC;IAED,OAAO,CAAC,UAAU,EAAE,EAAE;QACpB,MAAM,MAAM,GAAa,EAAE,GAAI,UAAU,CAAC,KAAkB,EAAE,CAAC;QAC/D,KAAK,MAAM,GAAG,IAAI,UAAU,CAAC,QAAQ,EAAE,CAAC;YACtC,MAAM,CAAC,GAAG,CAAC,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAC;QACvC,CAAC;QACD,OAAO,MAAW,CAAC;IACrB,CAAC,CAAC;AACJ,CAAC;AA4ED;;GAEG;AACH,OAAO,EACL,oBAAoB,EACpB,0BAA0B,EAC1B,oBAAoB,EACpB,sBAAsB,EACtB,kBAAkB,EAClB,iBAAiB,EACjB,YAAY,EACZ,eAAe,EACf,sBAAsB,EACtB,mBAAmB,GACpB,MAAM,YAAY,CAAC;AAWpB;;GAEG;AACH,OAAO,EACL,qBAAqB,EACrB,mBAAmB,EACnB,gBAAgB,EAChB,cAAc,EACd,aAAa,EACb,eAAe,EACf,WAAW,EACX,aAAa,EACb,mBAAmB,GACpB,MAAM,WAAW,CAAC;AACnB;;GAEG;AACH,OAAO,EACL,kBAAkB,GAGnB,MAAM,cAAc,CAAC;AAKtB;;GAEG;AACH,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAK/C;;GAEG;AACH,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAmBlE;;GAEG;AACH,OAAO,EACL,yBAAyB,EACzB,qBAAqB,GACtB,MAAM,mBAAmB,CAAC;AAU3B;;GAEG;AACH,OAAO,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAoBnE;;GAEG;AACH,OAAO,EACL,KAAK,EACL,UAAU,EACV,YAAY,EACZ,IAAI,EACJ,sBAAsB,GACvB,MAAM,aAAa,CAAC;AASrB;;GAEG;AACH,OAAO,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;AAC1D;;GAEG;AACH,OAAO,EACL,cAAc,EACd,sBAAsB,EACtB,sBAAsB,EACtB,2BAA2B,EAC3B,sBAAsB,EACtB,uBAAuB,EACvB,cAAc,EAKd,aAAa,EACb,WAAW,GACZ,MAAM,gBAAgB,CAAC;AAcxB;;GAEG;AACH,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AACnD;;GAEG;AACH,OAAO,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAChE;;GAEG;AACH,OAAO,EAEL,yBAAyB,EACzB,oBAAoB,GAMrB,MAAM,mBAAmB,CAAC"}
|
package/dist/ports/policy.d.ts
CHANGED
|
@@ -67,6 +67,12 @@ export type PolicyContextFromDefinitions<TPolicies extends readonly PolicyDefini
|
|
|
67
67
|
* into every authorization call.
|
|
68
68
|
*/
|
|
69
69
|
export type BoundGate<TPolicies extends readonly PolicyDefinition[]> = {
|
|
70
|
+
/**
|
|
71
|
+
* Type-only marker that keeps `TPolicies` inferable from a bound gate.
|
|
72
|
+
* Runtime bound gates never implement this method. Method syntax keeps the
|
|
73
|
+
* marker bivariant so readonly and mutable policy tuples stay compatible.
|
|
74
|
+
*/
|
|
75
|
+
__policies?(policies: TPolicies): void;
|
|
70
76
|
/**
|
|
71
77
|
* Return only whether the ability is allowed.
|
|
72
78
|
*/
|
|
@@ -80,6 +86,15 @@ export type BoundGate<TPolicies extends readonly PolicyDefinition[]> = {
|
|
|
80
86
|
*/
|
|
81
87
|
authorize<TAbility extends keyof PolicyMapFromDefinitions<TPolicies> & string>(ability: TAbility, ...subject: PolicySubjectArgs<PolicyMapFromDefinitions<TPolicies>[TAbility]>): Promise<GateAllowedDecision>;
|
|
82
88
|
};
|
|
89
|
+
/**
|
|
90
|
+
* Context shape contributed by `gate.attach(...)`.
|
|
91
|
+
*/
|
|
92
|
+
export type GateContext<TPolicies extends readonly PolicyDefinition[] = readonly PolicyDefinition[]> = {
|
|
93
|
+
/**
|
|
94
|
+
* Gate bound to the context that carries it.
|
|
95
|
+
*/
|
|
96
|
+
gate: BoundGate<TPolicies>;
|
|
97
|
+
};
|
|
83
98
|
/**
|
|
84
99
|
* App-facing authorization gate.
|
|
85
100
|
*
|
|
@@ -89,9 +104,23 @@ export type BoundGate<TPolicies extends readonly PolicyDefinition[]> = {
|
|
|
89
104
|
*/
|
|
90
105
|
export type GatePort<TContext, TPolicies extends readonly PolicyDefinition[] = readonly PolicyDefinition[]> = {
|
|
91
106
|
/**
|
|
92
|
-
* Bind this gate to a context
|
|
107
|
+
* Bind this gate to a fixed context snapshot.
|
|
108
|
+
*
|
|
109
|
+
* This is the low-level primitive: the returned gate keeps evaluating
|
|
110
|
+
* against the exact object it was bound to. Prefer `attach(...)` for app
|
|
111
|
+
* context assembly so identity changes can never go stale.
|
|
93
112
|
*/
|
|
94
113
|
bind(ctx: TContext): BoundGate<TPolicies>;
|
|
114
|
+
/**
|
|
115
|
+
* Attach a live `gate` property to a context object.
|
|
116
|
+
*
|
|
117
|
+
* The gate is exposed through a getter that re-binds against the receiving
|
|
118
|
+
* object on every access, so in-place updates to fields such as `actor` or
|
|
119
|
+
* `tenant` are always observed. The property is non-enumerable on purpose:
|
|
120
|
+
* spreading the context (`{ ...ctx }`) drops the gate instead of silently
|
|
121
|
+
* carrying a stale identity, and the next `ctx.gate` access fails loudly.
|
|
122
|
+
*/
|
|
123
|
+
attach<C extends TContext & object>(ctx: C): C & GateContext<TPolicies>;
|
|
95
124
|
/**
|
|
96
125
|
* Return only whether the ability is allowed for a context.
|
|
97
126
|
*/
|
|
@@ -173,8 +202,8 @@ export declare function definePolicy<const TPolicies extends Record<string, Poli
|
|
|
173
202
|
/**
|
|
174
203
|
* Create an authorization gate from app-owned policy definitions.
|
|
175
204
|
*
|
|
176
|
-
* Register the gate as a port, then
|
|
177
|
-
* `gate: ports.gate
|
|
205
|
+
* Register the gate as a port, then let the server context blueprint attach
|
|
206
|
+
* it: `context: { gate: (ports) => ports.gate, ... }`. Use cases can then call
|
|
178
207
|
* `ctx.gate.authorize(...)` for business authorization.
|
|
179
208
|
*
|
|
180
209
|
* @param options - Policy definitions and optional denial mapper.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"policy.d.ts","sourceRoot":"","sources":["../../src/ports/policy.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"policy.d.ts","sourceRoot":"","sources":["../../src/ports/policy.ts"],"names":[],"mappings":"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"}
|
package/dist/ports/policy.js
CHANGED
|
@@ -62,8 +62,8 @@ export function definePolicy(policies) {
|
|
|
62
62
|
/**
|
|
63
63
|
* Create an authorization gate from app-owned policy definitions.
|
|
64
64
|
*
|
|
65
|
-
* Register the gate as a port, then
|
|
66
|
-
* `gate: ports.gate
|
|
65
|
+
* Register the gate as a port, then let the server context blueprint attach
|
|
66
|
+
* it: `context: { gate: (ports) => ports.gate, ... }`. Use cases can then call
|
|
67
67
|
* `ctx.gate.authorize(...)` for business authorization.
|
|
68
68
|
*
|
|
69
69
|
* @param options - Policy definitions and optional denial mapper.
|
|
@@ -104,8 +104,19 @@ export function createGate(options) {
|
|
|
104
104
|
authorize: async (ability, ...subject) => gate.authorize(ctx, ability, ...subject),
|
|
105
105
|
};
|
|
106
106
|
}
|
|
107
|
+
function attach(ctx) {
|
|
108
|
+
Object.defineProperty(ctx, "gate", {
|
|
109
|
+
configurable: true,
|
|
110
|
+
enumerable: false,
|
|
111
|
+
get() {
|
|
112
|
+
return bind(this);
|
|
113
|
+
},
|
|
114
|
+
});
|
|
115
|
+
return ctx;
|
|
116
|
+
}
|
|
107
117
|
const gate = {
|
|
108
118
|
bind,
|
|
119
|
+
attach,
|
|
109
120
|
async can(ctx, ability, ...subject) {
|
|
110
121
|
return (await inspect(ctx, ability, firstSubject(subject))).allowed;
|
|
111
122
|
},
|
package/dist/ports/policy.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"policy.js","sourceRoot":"","sources":["../../src/ports/policy.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"policy.js","sourceRoot":"","sources":["../../src/ports/policy.ts"],"names":[],"mappings":"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"}
|