@xemahq/biome-database-nest 6.0.1 → 7.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (75) hide show
  1. package/README.md +36 -0
  2. package/dist/bin/xema-org-erasure-graph.d.ts +3 -0
  3. package/dist/bin/xema-org-erasure-graph.d.ts.map +1 -0
  4. package/dist/bin/xema-org-erasure-graph.js +10 -0
  5. package/dist/bin/xema-org-erasure-graph.js.map +1 -0
  6. package/dist/index.d.ts +11 -2
  7. package/dist/index.d.ts.map +1 -1
  8. package/dist/index.js +10 -3
  9. package/dist/index.js.map +1 -1
  10. package/dist/lib/nest/org-erasure.module.d.ts +1 -2
  11. package/dist/lib/nest/org-erasure.module.d.ts.map +1 -1
  12. package/dist/lib/nest/org-erasure.module.js +8 -10
  13. package/dist/lib/nest/org-erasure.module.js.map +1 -1
  14. package/dist/lib/nest/prisma-service-factory.d.ts +8 -2
  15. package/dist/lib/nest/prisma-service-factory.d.ts.map +1 -1
  16. package/dist/lib/nest/prisma-service-factory.js +18 -20
  17. package/dist/lib/nest/prisma-service-factory.js.map +1 -1
  18. package/dist/lib/org-erasure-coverage/build-org-erasure-graph.d.ts +4 -0
  19. package/dist/lib/org-erasure-coverage/build-org-erasure-graph.d.ts.map +1 -0
  20. package/dist/lib/org-erasure-coverage/build-org-erasure-graph.js +37 -0
  21. package/dist/lib/org-erasure-coverage/build-org-erasure-graph.js.map +1 -0
  22. package/dist/lib/org-erasure-coverage/check-org-erasure-graph.d.ts +4 -0
  23. package/dist/lib/org-erasure-coverage/check-org-erasure-graph.d.ts.map +1 -0
  24. package/dist/lib/org-erasure-coverage/check-org-erasure-graph.js +40 -0
  25. package/dist/lib/org-erasure-coverage/check-org-erasure-graph.js.map +1 -0
  26. package/dist/lib/org-erasure-coverage/classify-org-erasure-coverage.d.ts +5 -0
  27. package/dist/lib/org-erasure-coverage/classify-org-erasure-coverage.d.ts.map +1 -0
  28. package/dist/lib/org-erasure-coverage/classify-org-erasure-coverage.js +94 -0
  29. package/dist/lib/org-erasure-coverage/classify-org-erasure-coverage.js.map +1 -0
  30. package/dist/lib/org-erasure-coverage/generate-org-erasure-graph.d.ts +15 -0
  31. package/dist/lib/org-erasure-coverage/generate-org-erasure-graph.d.ts.map +1 -0
  32. package/dist/lib/org-erasure-coverage/generate-org-erasure-graph.js +19 -0
  33. package/dist/lib/org-erasure-coverage/generate-org-erasure-graph.js.map +1 -0
  34. package/dist/lib/org-erasure-coverage/org-erasure-coverage-errors.d.ts +22 -0
  35. package/dist/lib/org-erasure-coverage/org-erasure-coverage-errors.d.ts.map +1 -0
  36. package/dist/lib/org-erasure-coverage/org-erasure-coverage-errors.js +53 -0
  37. package/dist/lib/org-erasure-coverage/org-erasure-coverage-errors.js.map +1 -0
  38. package/dist/lib/org-erasure-coverage/org-erasure-coverage-options.d.ts +12 -0
  39. package/dist/lib/org-erasure-coverage/org-erasure-coverage-options.d.ts.map +1 -0
  40. package/dist/lib/org-erasure-coverage/org-erasure-coverage-options.js +3 -0
  41. package/dist/lib/org-erasure-coverage/org-erasure-coverage-options.js.map +1 -0
  42. package/dist/lib/org-erasure-coverage/org-erasure-coverage.d.ts +11 -0
  43. package/dist/lib/org-erasure-coverage/org-erasure-coverage.d.ts.map +1 -0
  44. package/dist/lib/org-erasure-coverage/org-erasure-coverage.js +3 -0
  45. package/dist/lib/org-erasure-coverage/org-erasure-coverage.js.map +1 -0
  46. package/dist/lib/org-erasure-coverage/org-erasure-disposition.d.ts +11 -0
  47. package/dist/lib/org-erasure-coverage/org-erasure-disposition.d.ts.map +1 -0
  48. package/dist/lib/org-erasure-coverage/org-erasure-disposition.js +10 -0
  49. package/dist/lib/org-erasure-coverage/org-erasure-disposition.js.map +1 -0
  50. package/dist/lib/org-erasure-coverage/org-erasure-dmmf.d.ts +14 -0
  51. package/dist/lib/org-erasure-coverage/org-erasure-dmmf.d.ts.map +1 -0
  52. package/dist/lib/org-erasure-coverage/org-erasure-dmmf.js +3 -0
  53. package/dist/lib/org-erasure-coverage/org-erasure-dmmf.js.map +1 -0
  54. package/dist/lib/org-erasure-coverage/org-erasure-graph.d.ts +12 -0
  55. package/dist/lib/org-erasure-coverage/org-erasure-graph.d.ts.map +1 -0
  56. package/dist/lib/org-erasure-coverage/org-erasure-graph.js +3 -0
  57. package/dist/lib/org-erasure-coverage/org-erasure-graph.js.map +1 -0
  58. package/dist/lib/org-erasure-coverage/render-org-erasure-graph-module.d.ts +7 -0
  59. package/dist/lib/org-erasure-coverage/render-org-erasure-graph-module.d.ts.map +1 -0
  60. package/dist/lib/org-erasure-coverage/render-org-erasure-graph-module.js +13 -0
  61. package/dist/lib/org-erasure-coverage/render-org-erasure-graph-module.js.map +1 -0
  62. package/dist/lib/org-erasure-coverage/resolve-org-erasure-api.d.ts +12 -0
  63. package/dist/lib/org-erasure-coverage/resolve-org-erasure-api.d.ts.map +1 -0
  64. package/dist/lib/org-erasure-coverage/resolve-org-erasure-api.js +33 -0
  65. package/dist/lib/org-erasure-coverage/resolve-org-erasure-api.js.map +1 -0
  66. package/dist/lib/tenant-isolation/tenant-isolation.extension.d.ts +4 -0
  67. package/dist/lib/tenant-isolation/tenant-isolation.extension.d.ts.map +1 -1
  68. package/dist/lib/tenant-isolation/tenant-isolation.extension.js +12 -5
  69. package/dist/lib/tenant-isolation/tenant-isolation.extension.js.map +1 -1
  70. package/dist/lib/tenant-isolation/unscoped-models.d.ts +0 -2
  71. package/dist/lib/tenant-isolation/unscoped-models.d.ts.map +1 -1
  72. package/dist/lib/tenant-isolation/unscoped-models.js +0 -3
  73. package/dist/lib/tenant-isolation/unscoped-models.js.map +1 -1
  74. package/package.json +8 -4
  75. package/xema-peer-facts.json +6 -6
package/README.md CHANGED
@@ -55,6 +55,42 @@ Mount it beside `XemaServiceModule.forBiome(...)`, which publishes the connectio
55
55
 
56
56
  Every Postgres session must run in UTC. The package verifies this and refuses to start otherwise; it never sets the zone.
57
57
 
58
+ ## Org-data erasure coverage
59
+
60
+ `createBiomePrismaService` refuses to start unless every Prisma model is accounted for: swept by the org-data erasure, deleted through a required `ON DELETE CASCADE` path from a swept model, or declared with a reason. One error names every unaccounted model. This holds in every tenant-isolation mode.
61
+
62
+ Add the generator to `schema.prisma`:
63
+
64
+ ```prisma
65
+ generator orgErasureGraph {
66
+ provider = "xema-org-erasure-graph"
67
+ output = "../node_modules/.prisma/<service>-org-erasure-graph"
68
+ }
69
+ ```
70
+
71
+ Then pass its output:
72
+
73
+ ```ts
74
+ import { orgErasureGraph } from '.prisma/<service>-org-erasure-graph';
75
+
76
+ createBiomePrismaService(PrismaClient, {
77
+ orgErasure: {
78
+ graph: orgErasureGraph,
79
+ sweep: {}, // only for org-erasure participants; optional `orgField`, `exemptModels`
80
+ declarations: {
81
+ MigrationBookkeeping: {
82
+ disposition: OrgErasureDisposition.NotPersonalData,
83
+ reason: 'Internal bookkeeping; rows describe no person or organisation.',
84
+ },
85
+ },
86
+ },
87
+ });
88
+ ```
89
+
90
+ `OrgErasureDisposition` is `NotPersonalData`, `Retained` (kept on purpose; the reason states the basis) or `ErasedByServiceEraser` (the reason names the eraser). The service exposes `eraseOrg(orgId)`, which runs the declared sweep, and `OrgErasureModule.forRoot({ prismaServiceToken })` mounts the endpoint over it. Re-run `prisma generate` after every schema change; a stale graph refuses to start.
91
+
92
+ The org-erasure graph generator and the `prisma generate` client generator must always run together: a client-only regenerate after an `onDelete` change leaves a stale graph that the graph-to-client check cannot detect.
93
+
58
94
  ## Testing
59
95
 
60
96
  Test helpers (the biome migrator for `@xemahq/pg-test-harness` and the prefix-migration fixture) live in the separate `@xemahq/biome-database-nest-testing` package, so this runtime package never references the test harness. Install that package as a `devDependency`.
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env node
2
+ export {};
3
+ //# sourceMappingURL=xema-org-erasure-graph.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"xema-org-erasure-graph.d.ts","sourceRoot":"","sources":["../../src/bin/xema-org-erasure-graph.ts"],"names":[],"mappings":""}
@@ -0,0 +1,10 @@
1
+ #!/usr/bin/env node
2
+ "use strict";
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ const generator_helper_1 = require("@prisma/generator-helper");
5
+ const generate_org_erasure_graph_1 = require("../lib/org-erasure-coverage/generate-org-erasure-graph");
6
+ (0, generator_helper_1.generatorHandler)({
7
+ onManifest: () => ({ prettyName: 'Xema org-erasure graph' }),
8
+ onGenerate: generate_org_erasure_graph_1.generateOrgErasureGraph,
9
+ });
10
+ //# sourceMappingURL=xema-org-erasure-graph.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"xema-org-erasure-graph.js","sourceRoot":"","sources":["../../src/bin/xema-org-erasure-graph.ts"],"names":[],"mappings":";;;AAKA,+DAA4D;AAE5D,uGAAiG;AAEjG,IAAA,mCAAgB,EAAC;IACf,UAAU,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,UAAU,EAAE,wBAAwB,EAAE,CAAC;IAC5D,UAAU,EAAE,oDAAuB;CACpC,CAAC,CAAC"}
package/dist/index.d.ts CHANGED
@@ -29,13 +29,22 @@ export { runBiomeMigrations, type RunBiomeMigrationsOptions, } from './lib/biome
29
29
  export { defaultLeaseHolderId, ExpiringLeaseStore, type ExpiringLeaseClient, type ExpiringLeaseLogger, type ExpiringLeaseOutcome, type ExpiringLeaseStoreOptions, } from './lib/expiring-lease';
30
30
  export { BiomeDatabaseModule, BIOME_DATABASE_READY, type ApplicationManagedBiomeDatabaseModuleOptions, type BiomeDatabaseModuleOptions, } from './lib/nest/biome-database.module';
31
31
  export { runBiomeDatabasePreflight, type RunBiomeDatabasePreflightOptions, } from './lib/nest/database-preflight';
32
- export { createBiomePrismaService, type BiomePrismaClient, type BiomePrismaClientCtor, type BiomePrismaServiceInstance, type CreateBiomePrismaServiceOptions, type TenantIsolationServiceOptions, type TenantScopedApi, } from './lib/nest/prisma-service-factory';
32
+ export { createBiomePrismaService, type BiomePrismaClient, type BiomePrismaClientCtor, type BiomePrismaServiceClass, type BiomePrismaServiceInstance, type CreateBiomePrismaServiceOptions, type TenantIsolationServiceOptions, type TenantScopedApi, } from './lib/nest/prisma-service-factory';
33
33
  export { TenantIsolationMode, TENANT_ISOLATION_MODE_ENV_VAR, resolveTenantIsolationMode, } from './lib/tenant-isolation/tenant-isolation-mode';
34
34
  export { TenantIsolationError, TenantIsolationViolationKind, formatTenantIsolationViolation, type TenantIsolationViolation, } from './lib/tenant-isolation/tenant-isolation-error';
35
35
  export { PrismaModelOperation, scopeArgsToOrg, type OrgScopeOutcome, type OrgScopeRequest, } from './lib/tenant-isolation/org-scope';
36
36
  export { DEFAULT_ORG_FIELD, collectOrgScopedModels, createTenantIsolationExtension, readRuntimeModels, type CreateTenantIsolationExtensionOptions, type RuntimeDataModelField, type RuntimeDataModelModel, type TenantIsolationExtensionDefinition, type TenantIsolationLogger, type TenantIsolationQueryContext, } from './lib/tenant-isolation/tenant-isolation.extension';
37
37
  export { assertUnscopedModelsDeclared, collectUnscopableModels, formatUnscopedModelReport, normalizeUnscopedModelDeclarations, UndeclaredUnscopedModelsError, type AssertUnscopedModelsOptions, type NormalizedUnscopedModelDeclaration, type UnscopedModelDeclaration, type UnscopedModelDeclarations, } from './lib/tenant-isolation/unscoped-models';
38
- export { assertOrgErasureMatchesModels, eraseOrgData, OrgErasureBlockedError, OrgErasureMatchesNothingError, type EraseOrgDataOptions, } from './lib/tenant-isolation/org-erasure';
38
+ export { OrgErasureBlockedError, OrgErasureMatchesNothingError, } from './lib/tenant-isolation/org-erasure';
39
+ export { buildOrgErasureGraph } from './lib/org-erasure-coverage/build-org-erasure-graph';
40
+ export { classifyOrgErasureCoverage } from './lib/org-erasure-coverage/classify-org-erasure-coverage';
41
+ export { type OrgErasureCoverage } from './lib/org-erasure-coverage/org-erasure-coverage';
42
+ export { type OrgErasureCoverageOptions, type OrgErasureSweep, } from './lib/org-erasure-coverage/org-erasure-coverage-options';
43
+ export { OrgErasureCoverageError, OrgErasureGraphMismatchError, type OrgErasureCoverageProblems, } from './lib/org-erasure-coverage/org-erasure-coverage-errors';
44
+ export { OrgErasureDisposition, type OrgErasureDeclaration, type OrgErasureDeclarations, } from './lib/org-erasure-coverage/org-erasure-disposition';
45
+ export { type OrgErasureDmmfField, type OrgErasureDmmfModel, } from './lib/org-erasure-coverage/org-erasure-dmmf';
46
+ export { type OrgErasureCascadeEdge, type OrgErasureGraph, type OrgErasureGraphModel, } from './lib/org-erasure-coverage/org-erasure-graph';
47
+ export { type OrgErasureApi } from './lib/org-erasure-coverage/resolve-org-erasure-api';
39
48
  export { eraseOwnedAuthoredResourceGraph, type AuthoredResourceGraphErasureClient, type AuthoredResourceGraphNames, } from './lib/tenant-isolation/authored-resource-org-erasure';
40
49
  export { OrgErasureModule, type OrgErasureModuleOptions, } from './lib/nest/org-erasure.module';
41
50
  export { assertOrgNotProtected, IdentityOrgProtectionProbe, ORG_DATA_ERASURE_CAPABILITY, ORG_ERASURE_ROUTE_PATH, ORG_ERASURE_RUNNER, ORG_PROTECTION_GRANT, ORGANIZATION_PROTECTED_ERROR_CODE, OrgErasureController, OrgProtectionGuard, OrgProtectionUnavailableError, ProtectedOrgErasureRefusedError, type OrgErasureReport, type OrgErasureRunner, type OrgProtectionGrant, type OrgProtectionProbe, } from '@xemahq/org-erasure-nest';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAChF,OAAO,EACL,uBAAuB,EACvB,mBAAmB,EACnB,sBAAsB,EACtB,0BAA0B,EAC1B,KAAK,kBAAkB,EACvB,KAAK,eAAe,GACrB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,yBAAyB,EACzB,uBAAuB,EACvB,8BAA8B,EAC9B,uBAAuB,EACvB,KAAK,qBAAqB,GAC3B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,kCAAkC,EAClC,iCAAiC,EACjC,gCAAgC,EAChC,6BAA6B,EAC7B,gCAAgC,EAChC,4BAA4B,GAC7B,MAAM,iCAAiC,CAAC;AACzC,OAAO,EACL,8BAA8B,EAC9B,4BAA4B,GAC7B,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACL,iBAAiB,EACjB,mBAAmB,EACnB,KAAK,WAAW,GACjB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EACL,2BAA2B,EAC3B,6BAA6B,EAC7B,KAAK,0BAA0B,GAChC,MAAM,2CAA2C,CAAC;AACnD,OAAO,EACL,iBAAiB,EACjB,aAAa,EACb,sBAAsB,EACtB,8BAA8B,EAC9B,uBAAuB,EACvB,yBAAyB,EACzB,KAAK,sBAAsB,EAC3B,KAAK,kBAAkB,GACxB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,cAAc,EACd,cAAc,EACd,cAAc,EACd,cAAc,EACd,2BAA2B,EAC3B,yBAAyB,EACzB,KAAK,eAAe,GACrB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,iCAAiC,EACjC,KAAK,mBAAmB,GACzB,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,wBAAwB,EACxB,mBAAmB,EACnB,4BAA4B,EAC5B,KAAK,oBAAoB,GAC1B,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,wBAAwB,EACxB,+BAA+B,EAC/B,yBAAyB,GAC1B,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,yBAAyB,EACzB,+BAA+B,EAC/B,KAAK,wBAAwB,EAC7B,6BAA6B,EAC7B,+BAA+B,EAC/B,4BAA4B,EAC5B,gCAAgC,EAChC,6BAA6B,EAC7B,2BAA2B,EAC3B,+BAA+B,EAC/B,gCAAgC,EAChC,KAAK,wBAAwB,EAC7B,KAAK,uBAAuB,GAC7B,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,6BAA6B,EAC7B,8BAA8B,EAC9B,2BAA2B,EAC3B,KAAK,uBAAuB,GAC7B,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,sBAAsB,EACtB,yBAAyB,EACzB,uBAAuB,EACvB,sBAAsB,EACtB,qBAAqB,EACrB,KAAK,qBAAqB,EAC1B,KAAK,yBAAyB,EAC9B,KAAK,wBAAwB,GAC9B,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,6BAA6B,EAC7B,8BAA8B,EAC9B,uBAAuB,EACvB,0BAA0B,EAC1B,iBAAiB,EACjB,uBAAuB,EACvB,KAAK,qBAAqB,EAC1B,KAAK,8BAA8B,GACpC,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,0BAA0B,EAC1B,8BAA8B,EAC9B,KAAK,4BAA4B,GAClC,MAAM,+BAA+B,CAAC;AACvC,OAAO,EACL,uBAAuB,EACvB,KAAK,wBAAwB,EAC7B,KAAK,8BAA8B,EACnC,KAAK,gCAAgC,EACrC,KAAK,8BAA8B,GACpC,MAAM,iBAAiB,CAAC;AACzB,YAAY,EAAE,4BAA4B,EAAE,MAAM,yBAAyB,CAAC;AAC5E,OAAO,EAAE,0BAA0B,EAAE,MAAM,sBAAsB,CAAC;AAClE,OAAO,EACL,yBAAyB,EACzB,2BAA2B,EAC3B,qBAAqB,EACrB,sBAAsB,EACtB,0BAA0B,EAC1B,oBAAoB,EACpB,uBAAuB,EACvB,yBAAyB,EACzB,KAAK,gCAAgC,EACrC,KAAK,kCAAkC,EACvC,KAAK,yBAAyB,EAC9B,KAAK,2BAA2B,EAChC,KAAK,8BAA8B,EACnC,KAAK,gCAAgC,GACtC,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACL,6BAA6B,EAC7B,+BAA+B,EAC/B,iCAAiC,GAClC,MAAM,iCAAiC,CAAC;AACzC,OAAO,EACL,qBAAqB,EACrB,uBAAuB,EACvB,KAAK,eAAe,EACpB,KAAK,gBAAgB,EACrB,KAAK,eAAe,EACpB,KAAK,eAAe,GACrB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,6BAA6B,EAC7B,qCAAqC,EACrC,mCAAmC,EACnC,yCAAyC,GAC1C,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,wBAAwB,EACxB,mBAAmB,EACnB,gCAAgC,EAChC,KAAK,iBAAiB,EACtB,KAAK,oBAAoB,GAC1B,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,uBAAuB,EAAE,MAAM,4BAA4B,CAAC;AACrE,OAAO,EACL,4BAA4B,EAC5B,4BAA4B,EAC5B,uBAAuB,EACvB,+BAA+B,EAC/B,iCAAiC,EACjC,KAAK,yBAAyB,GAC/B,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EACL,kBAAkB,EAClB,KAAK,yBAAyB,GAC/B,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,oBAAoB,EACpB,kBAAkB,EAClB,KAAK,mBAAmB,EACxB,KAAK,mBAAmB,EACxB,KAAK,oBAAoB,EACzB,KAAK,yBAAyB,GAC/B,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,mBAAmB,EACnB,oBAAoB,EACpB,KAAK,4CAA4C,EACjD,KAAK,0BAA0B,GAChC,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EACL,yBAAyB,EACzB,KAAK,gCAAgC,GACtC,MAAM,+BAA+B,CAAC;AACvC,OAAO,EACL,wBAAwB,EACxB,KAAK,iBAAiB,EACtB,KAAK,qBAAqB,EAC1B,KAAK,0BAA0B,EAC/B,KAAK,+BAA+B,EACpC,KAAK,6BAA6B,EAClC,KAAK,eAAe,GACrB,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EACL,mBAAmB,EACnB,6BAA6B,EAC7B,0BAA0B,GAC3B,MAAM,8CAA8C,CAAC;AACtD,OAAO,EACL,oBAAoB,EACpB,4BAA4B,EAC5B,8BAA8B,EAC9B,KAAK,wBAAwB,GAC9B,MAAM,+CAA+C,CAAC;AACvD,OAAO,EACL,oBAAoB,EACpB,cAAc,EACd,KAAK,eAAe,EACpB,KAAK,eAAe,GACrB,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EACL,iBAAiB,EACjB,sBAAsB,EACtB,8BAA8B,EAC9B,iBAAiB,EACjB,KAAK,qCAAqC,EAC1C,KAAK,qBAAqB,EAC1B,KAAK,qBAAqB,EAC1B,KAAK,kCAAkC,EACvC,KAAK,qBAAqB,EAC1B,KAAK,2BAA2B,GACjC,MAAM,mDAAmD,CAAC;AAC3D,OAAO,EACL,4BAA4B,EAC5B,uBAAuB,EACvB,yBAAyB,EACzB,kCAAkC,EAClC,6BAA6B,EAC7B,KAAK,2BAA2B,EAChC,KAAK,kCAAkC,EACvC,KAAK,wBAAwB,EAC7B,KAAK,yBAAyB,GAC/B,MAAM,wCAAwC,CAAC;AAChD,OAAO,EACL,6BAA6B,EAC7B,YAAY,EACZ,sBAAsB,EACtB,6BAA6B,EAC7B,KAAK,mBAAmB,GACzB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EACL,+BAA+B,EAC/B,KAAK,kCAAkC,EACvC,KAAK,0BAA0B,GAChC,MAAM,sDAAsD,CAAC;AAC9D,OAAO,EACL,gBAAgB,EAChB,KAAK,uBAAuB,GAC7B,MAAM,+BAA+B,CAAC;AAavC,OAAO,EACL,qBAAqB,EACrB,0BAA0B,EAC1B,2BAA2B,EAC3B,sBAAsB,EACtB,kBAAkB,EAClB,oBAAoB,EACpB,iCAAiC,EACjC,oBAAoB,EACpB,kBAAkB,EAClB,6BAA6B,EAC7B,+BAA+B,EAC/B,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,EACrB,KAAK,kBAAkB,EACvB,KAAK,kBAAkB,GACxB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACL,qBAAqB,EACrB,4BAA4B,GAC7B,MAAM,iBAAiB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -2,7 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.resolveBiomeDatabasePoolOptions = exports.resolveBiomeDatabasePoolMax = exports.readDeclaredBiomeDatabasePool = exports.publishDeclaredBiomeDatabasePool = exports.PLATFORM_CONNECTION_HEADROOM = exports.clearDeclaredBiomeDatabasePools = exports.BiomeDatabasePoolOptionsError = exports.biomeDatabasePoolCeilingFromEnv = exports.BIOME_PROCESS_CONCURRENCY = exports.resolveBiomePrismaAdapter = exports.createBiomePrismaAdapterFromEnv = exports.createBiomePrismaAdapter = exports.DatabaseSessionTimeZoneError = exports.DatabaseSessionPath = exports.assertDatabaseSessionUtc = exports.resolveBiomeDatabaseConfigFromEnv = exports.SCHEMA_ROLE_SUFFIX_LENGTH = exports.SCHEMA_ROLE_BASE_MAX_LENGTH = exports.SchemaRoleKind = exports.schemaRoleName = exports.schemaRoleBase = exports.rolesForSchema = exports.sanitizeIdentifierSegment = exports.sanitizeIdentifierChars = exports.POSTGRES_MAX_IDENTIFIER_LENGTH = exports.IDENTIFIER_HASH_LENGTH = exports.fitIdentifier = exports.composeIdentifier = exports.IDEMPOTENCY_DATA_STORE_CLIENT = exports.DataStoreIdempotencyService = exports.stripPrismaComments = exports.extractModelBlock = exports.ReleaseIntentConventionError = exports.assertReleaseIntentPrismaModel = exports.idempotencyRecordPrismaModel = exports.IdempotencyRecordConventionError = exports.IDEMPOTENCY_RECORD_CREATE_SQL = exports.IDEMPOTENCY_CLAIMS_MIGRATION_SQL = exports.IDEMPOTENCY_CLAIMS_MIGRATION_NAME = exports.assertIdempotencyRecordPrismaModel = exports.ensureBiomeDbSearchPath = exports.composeBiomeDatabaseUrlFromEnv = exports.composeBiomeDatabaseUrl = exports.BIOME_DB_SESSION_TIMEZONE = exports.tryAcquireXactAdvisoryLock = exports.tryAcquireAdvisoryLock = exports.releaseAdvisoryLock = exports.acquireXactAdvisoryLock = exports.deriveBiomeSchemaName = exports.DEFAULT_BIOME_DB_KEY = void 0;
4
4
  exports.BIOME_DATABASE_READY = exports.BiomeDatabaseModule = exports.ExpiringLeaseStore = exports.defaultLeaseHolderId = exports.runBiomeMigrations = exports.SdkOwnedMigrationsNotAppliedError = exports.SdkOwnedMigrationsConflictError = exports.mergeSdkOwnedMigrations = exports.contributeSdkOwnedMigrations = exports.APPLIED_SDK_OWNED_MIGRATIONS = exports.applySdkOwnedMigrations = exports.SdkOwnedMigrationSetInvalidError = exports.sdkOwnedMigrationId = exports.sdkOwnedMigrationDigests = exports.ServiceMigrationTouchesSdkOwnedTableError = exports.SdkOwnedTableNotCreatedByOwnerError = exports.SdkOwnedMigrationsUnknownToImageError = exports.SdkOwnedMigrationChangedError = exports.SdkOwnedTableShapeError = exports.assertOwnedTableShape = exports.operatorMigrationLedgerMigrations = exports.OPERATOR_MIGRATION_LEDGER_TABLE = exports.ensureOperatorMigrationLedger = exports.withOperatorMigrationLock = exports.verifyOperatorMigration = exports.runOperatorMigration = exports.parseOperatorMigrationMode = exports.OperatorMigrationPhase = exports.OperatorMigrationMode = exports.openOperatorMigrationClient = exports.contractOperatorMigration = exports.BiomeDatabaseMigrationMode = exports.bootstrapBiomeDatabases = exports.ORG_DATABASE_POOL_SERVICE_NAME = exports.resolveControlPlaneBaseUrl = exports.stopBiomeDatabaseLeases = exports.leasedClientClass = exports.expiredBiomeDatabaseLeases = exports.DatabaseCredentialLease = exports.DatabaseCredentialExpiredError = exports.assertBiomeDatabaseLeasesLive = exports.SERVICE_BINDING_SCOPE = exports.logicalNameForDatabase = exports.fetchDatabaseCredential = exports.DatabaseCredentialPurpose = exports.DatabaseCredentialMode = exports.readResolvedBiomeConnection = exports.publishResolvedBiomeConnection = exports.clearResolvedBiomeConnections = exports.validateBiomeDatabasePoolOptions = void 0;
5
- exports.biomeDatabaseBootModeFromEnv = exports.BiomeDatabaseBootMode = exports.ProtectedOrgErasureRefusedError = exports.OrgProtectionUnavailableError = exports.OrgProtectionGuard = exports.OrgErasureController = exports.ORGANIZATION_PROTECTED_ERROR_CODE = exports.ORG_PROTECTION_GRANT = exports.ORG_ERASURE_RUNNER = exports.ORG_ERASURE_ROUTE_PATH = exports.ORG_DATA_ERASURE_CAPABILITY = exports.IdentityOrgProtectionProbe = exports.assertOrgNotProtected = exports.OrgErasureModule = exports.eraseOwnedAuthoredResourceGraph = exports.OrgErasureMatchesNothingError = exports.OrgErasureBlockedError = exports.eraseOrgData = exports.assertOrgErasureMatchesModels = exports.UndeclaredUnscopedModelsError = exports.normalizeUnscopedModelDeclarations = exports.formatUnscopedModelReport = exports.collectUnscopableModels = exports.assertUnscopedModelsDeclared = exports.readRuntimeModels = exports.createTenantIsolationExtension = exports.collectOrgScopedModels = exports.DEFAULT_ORG_FIELD = exports.scopeArgsToOrg = exports.PrismaModelOperation = exports.formatTenantIsolationViolation = exports.TenantIsolationViolationKind = exports.TenantIsolationError = exports.resolveTenantIsolationMode = exports.TENANT_ISOLATION_MODE_ENV_VAR = exports.TenantIsolationMode = exports.createBiomePrismaService = exports.runBiomeDatabasePreflight = void 0;
5
+ exports.biomeDatabaseBootModeFromEnv = exports.BiomeDatabaseBootMode = exports.ProtectedOrgErasureRefusedError = exports.OrgProtectionUnavailableError = exports.OrgProtectionGuard = exports.OrgErasureController = exports.ORGANIZATION_PROTECTED_ERROR_CODE = exports.ORG_PROTECTION_GRANT = exports.ORG_ERASURE_RUNNER = exports.ORG_ERASURE_ROUTE_PATH = exports.ORG_DATA_ERASURE_CAPABILITY = exports.IdentityOrgProtectionProbe = exports.assertOrgNotProtected = exports.OrgErasureModule = exports.eraseOwnedAuthoredResourceGraph = exports.OrgErasureDisposition = exports.OrgErasureGraphMismatchError = exports.OrgErasureCoverageError = exports.classifyOrgErasureCoverage = exports.buildOrgErasureGraph = exports.OrgErasureMatchesNothingError = exports.OrgErasureBlockedError = exports.UndeclaredUnscopedModelsError = exports.normalizeUnscopedModelDeclarations = exports.formatUnscopedModelReport = exports.collectUnscopableModels = exports.assertUnscopedModelsDeclared = exports.readRuntimeModels = exports.createTenantIsolationExtension = exports.collectOrgScopedModels = exports.DEFAULT_ORG_FIELD = exports.scopeArgsToOrg = exports.PrismaModelOperation = exports.formatTenantIsolationViolation = exports.TenantIsolationViolationKind = exports.TenantIsolationError = exports.resolveTenantIsolationMode = exports.TENANT_ISOLATION_MODE_ENV_VAR = exports.TenantIsolationMode = exports.createBiomePrismaService = exports.runBiomeDatabasePreflight = void 0;
6
6
  var schema_name_1 = require("./lib/schema-name");
7
7
  Object.defineProperty(exports, "DEFAULT_BIOME_DB_KEY", { enumerable: true, get: function () { return schema_name_1.DEFAULT_BIOME_DB_KEY; } });
8
8
  Object.defineProperty(exports, "deriveBiomeSchemaName", { enumerable: true, get: function () { return schema_name_1.deriveBiomeSchemaName; } });
@@ -159,10 +159,17 @@ Object.defineProperty(exports, "formatUnscopedModelReport", { enumerable: true,
159
159
  Object.defineProperty(exports, "normalizeUnscopedModelDeclarations", { enumerable: true, get: function () { return unscoped_models_1.normalizeUnscopedModelDeclarations; } });
160
160
  Object.defineProperty(exports, "UndeclaredUnscopedModelsError", { enumerable: true, get: function () { return unscoped_models_1.UndeclaredUnscopedModelsError; } });
161
161
  var org_erasure_1 = require("./lib/tenant-isolation/org-erasure");
162
- Object.defineProperty(exports, "assertOrgErasureMatchesModels", { enumerable: true, get: function () { return org_erasure_1.assertOrgErasureMatchesModels; } });
163
- Object.defineProperty(exports, "eraseOrgData", { enumerable: true, get: function () { return org_erasure_1.eraseOrgData; } });
164
162
  Object.defineProperty(exports, "OrgErasureBlockedError", { enumerable: true, get: function () { return org_erasure_1.OrgErasureBlockedError; } });
165
163
  Object.defineProperty(exports, "OrgErasureMatchesNothingError", { enumerable: true, get: function () { return org_erasure_1.OrgErasureMatchesNothingError; } });
164
+ var build_org_erasure_graph_1 = require("./lib/org-erasure-coverage/build-org-erasure-graph");
165
+ Object.defineProperty(exports, "buildOrgErasureGraph", { enumerable: true, get: function () { return build_org_erasure_graph_1.buildOrgErasureGraph; } });
166
+ var classify_org_erasure_coverage_1 = require("./lib/org-erasure-coverage/classify-org-erasure-coverage");
167
+ Object.defineProperty(exports, "classifyOrgErasureCoverage", { enumerable: true, get: function () { return classify_org_erasure_coverage_1.classifyOrgErasureCoverage; } });
168
+ var org_erasure_coverage_errors_1 = require("./lib/org-erasure-coverage/org-erasure-coverage-errors");
169
+ Object.defineProperty(exports, "OrgErasureCoverageError", { enumerable: true, get: function () { return org_erasure_coverage_errors_1.OrgErasureCoverageError; } });
170
+ Object.defineProperty(exports, "OrgErasureGraphMismatchError", { enumerable: true, get: function () { return org_erasure_coverage_errors_1.OrgErasureGraphMismatchError; } });
171
+ var org_erasure_disposition_1 = require("./lib/org-erasure-coverage/org-erasure-disposition");
172
+ Object.defineProperty(exports, "OrgErasureDisposition", { enumerable: true, get: function () { return org_erasure_disposition_1.OrgErasureDisposition; } });
166
173
  var authored_resource_org_erasure_1 = require("./lib/tenant-isolation/authored-resource-org-erasure");
167
174
  Object.defineProperty(exports, "eraseOwnedAuthoredResourceGraph", { enumerable: true, get: function () { return authored_resource_org_erasure_1.eraseOwnedAuthoredResourceGraph; } });
168
175
  var org_erasure_module_1 = require("./lib/nest/org-erasure.module");
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,5 @@
1
1
  import { type DynamicModule, type Type } from '@nestjs/common';
2
- import { type EraseOrgDataOptions } from '../tenant-isolation/org-erasure';
3
- export interface OrgErasureModuleOptions extends EraseOrgDataOptions {
2
+ export interface OrgErasureModuleOptions {
4
3
  readonly prismaServiceToken: Type<unknown> | string | symbol;
5
4
  }
6
5
  export declare class OrgErasureModule {
@@ -1 +1 @@
1
- {"version":3,"file":"org-erasure.module.d.ts","sourceRoot":"","sources":["../../../src/lib/nest/org-erasure.module.ts"],"names":[],"mappings":"AAiCA,OAAO,EAAU,KAAK,aAAa,EAAE,KAAK,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAOvE,OAAO,EAGL,KAAK,mBAAmB,EACzB,MAAM,iCAAiC,CAAC;AAKzC,MAAM,WAAW,uBAAwB,SAAQ,mBAAmB;IAMlE,QAAQ,CAAC,kBAAkB,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG,MAAM,GAAG,MAAM,CAAC;CAC9D;AAQD,qBAAa,gBAAgB;IAC3B,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,uBAAuB,GAAG,aAAa;CAiChE"}
1
+ {"version":3,"file":"org-erasure.module.d.ts","sourceRoot":"","sources":["../../../src/lib/nest/org-erasure.module.ts"],"names":[],"mappings":"AAwBA,OAAO,EAAU,KAAK,aAAa,EAAE,KAAK,IAAI,EAAE,MAAM,gBAAgB,CAAC;AASvE,MAAM,WAAW,uBAAuB;IAKtC,QAAQ,CAAC,kBAAkB,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG,MAAM,GAAG,MAAM,CAAC;CAC9D;AAED,qBAAa,gBAAgB;IAC3B,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,uBAAuB,GAAG,aAAa;CAwBhE"}
@@ -3,23 +3,21 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.OrgErasureModule = void 0;
4
4
  const common_1 = require("@nestjs/common");
5
5
  const org_erasure_nest_1 = require("@xemahq/org-erasure-nest");
6
- const org_erasure_1 = require("../tenant-isolation/org-erasure");
7
- const tenant_isolation_extension_1 = require("../tenant-isolation/tenant-isolation.extension");
8
6
  class OrgErasureModule {
9
7
  static forRoot(options) {
10
- const { prismaServiceToken, ...eraseOptions } = options;
11
8
  return org_erasure_nest_1.OrgErasureEndpointModule.forRunner({
12
9
  useFactory: (prisma) => {
13
- const client = prisma.asSystem();
14
- const models = [
15
- ...(0, org_erasure_1.assertOrgErasureMatchesModels)(client, eraseOptions),
16
- ].sort();
17
- new common_1.Logger(OrgErasureModule.name).log(`org-erasure participant armed on "${eraseOptions.orgField ?? tenant_isolation_extension_1.DEFAULT_ORG_FIELD}" over ${models.length} model(s): ${models.join(', ')}`);
10
+ const { sweep, swept } = prisma.orgErasureCoverage;
11
+ if (sweep === undefined) {
12
+ throw new Error('[org-erasure] OrgErasureModule is mounted as an org-erasure ' +
13
+ 'participant but the Prisma service declares no orgErasure.sweep.');
14
+ }
15
+ new common_1.Logger(OrgErasureModule.name).log(`org-erasure participant armed on "${sweep.orgField}" over ${swept.length} model(s): ${swept.join(', ')}`);
18
16
  return {
19
- erase: (orgId) => (0, org_erasure_1.eraseOrgData)(prisma.asSystem(), orgId, eraseOptions),
17
+ erase: (orgId) => prisma.eraseOrg(orgId),
20
18
  };
21
19
  },
22
- inject: [prismaServiceToken],
20
+ inject: [options.prismaServiceToken],
23
21
  });
24
22
  }
25
23
  }
@@ -1 +1 @@
1
- {"version":3,"file":"org-erasure.module.js","sourceRoot":"","sources":["../../../src/lib/nest/org-erasure.module.ts"],"names":[],"mappings":";;;AAiCA,2CAAuE;AACvE,+DAIkC;AAElC,iEAIyC;AACzC,+FAAmF;AAmBnF,MAAa,gBAAgB;IAC3B,MAAM,CAAC,OAAO,CAAC,OAAgC;QAC7C,MAAM,EAAE,kBAAkB,EAAE,GAAG,YAAY,EAAE,GAAG,OAAO,CAAC;QACxD,OAAO,2CAAwB,CAAC,SAAS,CAAC;YACxC,UAAU,EAAE,CAAC,MAAwB,EAAoB,EAAE;gBACzD,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC;gBAajC,MAAM,MAAM,GAAG;oBACb,GAAG,IAAA,2CAA6B,EAAC,MAAM,EAAE,YAAY,CAAC;iBACvD,CAAC,IAAI,EAAE,CAAC;gBACT,IAAI,eAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,GAAG,CACnC,qCACE,YAAY,CAAC,QAAQ,IAAI,8CAC3B,UAAU,MAAM,CAAC,MAAM,cAAc,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CACzD,CAAC;gBACF,OAAO;oBACL,KAAK,EAAE,CAAC,KAAa,EAA6B,EAAE,CAClD,IAAA,0BAAY,EAAC,MAAM,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,YAAY,CAAC;iBACvD,CAAC;YACJ,CAAC;YACD,MAAM,EAAE,CAAC,kBAAkB,CAAC;SAC7B,CAAC,CAAC;IACL,CAAC;CACF;AAlCD,4CAkCC"}
1
+ {"version":3,"file":"org-erasure.module.js","sourceRoot":"","sources":["../../../src/lib/nest/org-erasure.module.ts"],"names":[],"mappings":";;;AAwBA,2CAAuE;AACvE,+DAIkC;AAYlC,MAAa,gBAAgB;IAC3B,MAAM,CAAC,OAAO,CAAC,OAAgC;QAC7C,OAAO,2CAAwB,CAAC,SAAS,CAAC;YACxC,UAAU,EAAE,CAAC,MAAqB,EAAoB,EAAE;gBACtD,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,MAAM,CAAC,kBAAkB,CAAC;gBAInD,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;oBACxB,MAAM,IAAI,KAAK,CACb,8DAA8D;wBAC5D,kEAAkE,CACrE,CAAC;gBACJ,CAAC;gBACD,IAAI,eAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,GAAG,CACnC,qCAAqC,KAAK,CAAC,QAAQ,UAAU,KAAK,CAAC,MAAM,cAAc,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAC1G,CAAC;gBACF,OAAO;oBACL,KAAK,EAAE,CAAC,KAAa,EAA6B,EAAE,CAClD,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC;iBACzB,CAAC;YACJ,CAAC;YACD,MAAM,EAAE,CAAC,OAAO,CAAC,kBAAkB,CAAC;SACrC,CAAC,CAAC;IACL,CAAC;CACF;AAzBD,4CAyBC"}
@@ -1,5 +1,7 @@
1
+ import { type OrgErasureApi } from '../org-erasure-coverage/resolve-org-erasure-api';
1
2
  import { TenantIsolationMode } from '../tenant-isolation/tenant-isolation-mode';
2
3
  import { type UnscopedModelDeclarations } from '../tenant-isolation/unscoped-models';
4
+ import type { OrgErasureCoverageOptions } from '../org-erasure-coverage/org-erasure-coverage-options';
3
5
  import type { OnModuleDestroy, OnModuleInit, Type } from '@nestjs/common';
4
6
  export type BiomePrismaClientCtor = new (...args: any[]) => BiomePrismaClient;
5
7
  export interface BiomePrismaClient {
@@ -13,6 +15,7 @@ export interface TenantIsolationServiceOptions {
13
15
  readonly unscopedModels?: UnscopedModelDeclarations;
14
16
  }
15
17
  export interface CreateBiomePrismaServiceOptions {
18
+ readonly orgErasure: OrgErasureCoverageOptions;
16
19
  readonly loggerContext?: string;
17
20
  readonly tenantIsolation?: TenantIsolationServiceOptions;
18
21
  readonly dbKey?: string;
@@ -21,6 +24,9 @@ export interface TenantScopedApi<TClient> {
21
24
  forOrg(orgId: string): TClient;
22
25
  asSystem(): TClient;
23
26
  }
24
- export type BiomePrismaServiceInstance<TClient> = TClient & TenantScopedApi<TClient> & OnModuleInit & OnModuleDestroy;
25
- export declare function createBiomePrismaService<TClientCtor extends BiomePrismaClientCtor>(PrismaClientCtor: TClientCtor, optionsOrLoggerContext?: string | CreateBiomePrismaServiceOptions): Type<BiomePrismaServiceInstance<InstanceType<TClientCtor>>>;
27
+ export type BiomePrismaServiceInstance<TClient> = TClient & TenantScopedApi<TClient> & OrgErasureApi & OnModuleInit & OnModuleDestroy;
28
+ export type BiomePrismaServiceClass<TClient> = Type<BiomePrismaServiceInstance<TClient>> & {
29
+ readonly declaresOrgErasureSweep: boolean;
30
+ };
31
+ export declare function createBiomePrismaService<TClientCtor extends BiomePrismaClientCtor>(PrismaClientCtor: TClientCtor, options: CreateBiomePrismaServiceOptions): BiomePrismaServiceClass<InstanceType<TClientCtor>>;
26
32
  //# sourceMappingURL=prisma-service-factory.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"prisma-service-factory.d.ts","sourceRoot":"","sources":["../../../src/lib/nest/prisma-service-factory.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,mBAAmB,EAEpB,MAAM,2CAA2C,CAAC;AAQnD,OAAO,EAEL,KAAK,yBAAyB,EAC/B,MAAM,qCAAqC,CAAC;AAE7C,OAAO,KAAK,EAAE,eAAe,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAY1E,MAAM,MAAM,qBAAqB,GAAG,KAIlC,GAAG,IAAI,EAAE,GAAG,EAAE,KACX,iBAAiB,CAAC;AAGvB,MAAM,WAAW,iBAAiB;IAChC,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1B,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC9B;AAGD,MAAM,WAAW,6BAA6B;IAK5C,QAAQ,CAAC,IAAI,CAAC,EAAE,mBAAmB,CAAC;IAEpC,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAK3B,QAAQ,CAAC,YAAY,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IA0B1C,QAAQ,CAAC,cAAc,CAAC,EAAE,yBAAyB,CAAC;CACrD;AAGD,MAAM,WAAW,+BAA+B;IAE9C,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,eAAe,CAAC,EAAE,6BAA6B,CAAC;IAYzD,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;CACzB;AAMD,MAAM,WAAW,eAAe,CAAC,OAAO;IAOtC,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC;IAM/B,QAAQ,IAAI,OAAO,CAAC;CACrB;AAGD,MAAM,MAAM,0BAA0B,CAAC,OAAO,IAAI,OAAO,GACvD,eAAe,CAAC,OAAO,CAAC,GACxB,YAAY,GACZ,eAAe,CAAC;AA2ElB,wBAAgB,wBAAwB,CACtC,WAAW,SAAS,qBAAqB,EAEzC,gBAAgB,EAAE,WAAW,EAC7B,sBAAsB,CAAC,EAAE,MAAM,GAAG,+BAA+B,GAChE,IAAI,CAAC,0BAA0B,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC,CAAC,CAqL7D"}
1
+ {"version":3,"file":"prisma-service-factory.d.ts","sourceRoot":"","sources":["../../../src/lib/nest/prisma-service-factory.ts"],"names":[],"mappings":"AAIA,OAAO,EAEL,KAAK,aAAa,EACnB,MAAM,iDAAiD,CAAC;AACzD,OAAO,EACL,mBAAmB,EAEpB,MAAM,2CAA2C,CAAC;AAQnD,OAAO,EAEL,KAAK,yBAAyB,EAC/B,MAAM,qCAAqC,CAAC;AAE7C,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,sDAAsD,CAAC;AACtG,OAAO,KAAK,EAAE,eAAe,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAY1E,MAAM,MAAM,qBAAqB,GAAG,KAIlC,GAAG,IAAI,EAAE,GAAG,EAAE,KACX,iBAAiB,CAAC;AAGvB,MAAM,WAAW,iBAAiB;IAChC,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1B,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC9B;AAGD,MAAM,WAAW,6BAA6B;IAK5C,QAAQ,CAAC,IAAI,CAAC,EAAE,mBAAmB,CAAC;IAEpC,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAK3B,QAAQ,CAAC,YAAY,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IA0B1C,QAAQ,CAAC,cAAc,CAAC,EAAE,yBAAyB,CAAC;CACrD;AAGD,MAAM,WAAW,+BAA+B;IAM9C,QAAQ,CAAC,UAAU,EAAE,yBAAyB,CAAC;IAE/C,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,eAAe,CAAC,EAAE,6BAA6B,CAAC;IAYzD,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;CACzB;AAMD,MAAM,WAAW,eAAe,CAAC,OAAO;IAOtC,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC;IAM/B,QAAQ,IAAI,OAAO,CAAC;CACrB;AAGD,MAAM,MAAM,0BAA0B,CAAC,OAAO,IAAI,OAAO,GACvD,eAAe,CAAC,OAAO,CAAC,GACxB,aAAa,GACb,YAAY,GACZ,eAAe,CAAC;AAGlB,MAAM,MAAM,uBAAuB,CAAC,OAAO,IAAI,IAAI,CACjD,0BAA0B,CAAC,OAAO,CAAC,CACpC,GAAG;IAEF,QAAQ,CAAC,uBAAuB,EAAE,OAAO,CAAC;CAC3C,CAAC;AAqEF,wBAAgB,wBAAwB,CACtC,WAAW,SAAS,qBAAqB,EAEzC,gBAAgB,EAAE,WAAW,EAC7B,OAAO,EAAE,+BAA+B,GACvC,uBAAuB,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC,CAwMpD"}
@@ -13,6 +13,7 @@ exports.createBiomePrismaService = createBiomePrismaService;
13
13
  const common_1 = require("@nestjs/common");
14
14
  const platform_common_1 = require("@xemahq/platform-common");
15
15
  const adapter_1 = require("../adapter");
16
+ const resolve_org_erasure_api_1 = require("../org-erasure-coverage/resolve-org-erasure-api");
16
17
  const tenant_isolation_mode_1 = require("../tenant-isolation/tenant-isolation-mode");
17
18
  const tenant_isolation_extension_1 = require("../tenant-isolation/tenant-isolation.extension");
18
19
  const unscoped_models_1 = require("../tenant-isolation/unscoped-models");
@@ -21,26 +22,23 @@ function lowerFirst(name) {
21
22
  ? name
22
23
  : name.charAt(0).toLowerCase() + name.slice(1);
23
24
  }
24
- function normalizeOptions(optionsOrLoggerContext) {
25
- if (optionsOrLoggerContext === undefined) {
26
- return {};
25
+ function createBiomePrismaService(PrismaClientCtor, options) {
26
+ if (options.orgErasure ===
27
+ undefined) {
28
+ throw new Error('[org-erasure] createBiomePrismaService requires an `orgErasure` option ' +
29
+ '(the generated graph, the optional sweep and the declarations).');
27
30
  }
28
- if (typeof optionsOrLoggerContext === 'string') {
29
- return { loggerContext: optionsOrLoggerContext };
30
- }
31
- return optionsOrLoggerContext;
32
- }
33
- function createBiomePrismaService(PrismaClientCtor, optionsOrLoggerContext) {
34
- const options = normalizeOptions(optionsOrLoggerContext);
35
31
  const loggerContext = options.loggerContext ?? 'PrismaService';
36
32
  const tenantOptions = options.tenantIsolation ?? {};
37
33
  const orgField = tenantOptions.orgField ?? tenant_isolation_extension_1.DEFAULT_ORG_FIELD;
38
34
  const exemptModels = tenantOptions.exemptModels ?? [];
39
35
  const unscopedModels = tenantOptions.unscopedModels ?? {};
40
36
  let BiomePrismaService = class BiomePrismaService extends PrismaClientCtor {
37
+ static declaresOrgErasureSweep = options.orgErasure.sweep !== undefined;
41
38
  biomePrismaLogger = new common_1.Logger(loggerContext);
42
39
  constructor() {
43
40
  super({ adapter: (0, adapter_1.resolveBiomePrismaAdapter)(options.dbKey) });
41
+ const orgErasureApi = (0, resolve_org_erasure_api_1.resolveOrgErasureApi)(this, options.orgErasure, new common_1.Logger(`${loggerContext}:org-erasure`));
44
42
  const mode = (0, tenant_isolation_mode_1.resolveTenantIsolationMode)(tenantOptions.mode);
45
43
  const raw = this;
46
44
  const tenantLogger = new common_1.Logger(`${loggerContext}:tenant-isolation`);
@@ -90,14 +88,17 @@ function createBiomePrismaService(PrismaClientCtor, optionsOrLoggerContext) {
90
88
  }
91
89
  return raw;
92
90
  };
91
+ const explicitApi = new Map([
92
+ ['forOrg', forOrg],
93
+ ['asSystem', asSystem],
94
+ ['orgErasureCoverage', orgErasureApi.orgErasureCoverage],
95
+ ['eraseOrg', orgErasureApi.eraseOrg],
96
+ ]);
93
97
  if (mode === tenant_isolation_mode_1.TenantIsolationMode.Off) {
94
98
  return new Proxy(raw, {
95
99
  get(target, prop, _receiver) {
96
- if (prop === 'forOrg') {
97
- return forOrg;
98
- }
99
- if (prop === 'asSystem') {
100
- return asSystem;
100
+ if (explicitApi.has(prop)) {
101
+ return explicitApi.get(prop);
101
102
  }
102
103
  const value = Reflect.get(target, prop, target);
103
104
  return typeof value === 'function' ? value.bind(target) : value;
@@ -117,11 +118,8 @@ function createBiomePrismaService(PrismaClientCtor, optionsOrLoggerContext) {
117
118
  }
118
119
  return new Proxy(raw, {
119
120
  get(target, prop, _receiver) {
120
- if (prop === 'forOrg') {
121
- return forOrg;
122
- }
123
- if (prop === 'asSystem') {
124
- return asSystem;
121
+ if (explicitApi.has(prop)) {
122
+ return explicitApi.get(prop);
125
123
  }
126
124
  if (typeof prop === 'string' && routedProps.has(prop)) {
127
125
  const value = ambientClient[prop];
@@ -1 +1 @@
1
- {"version":3,"file":"prisma-service-factory.js","sourceRoot":"","sources":["../../../src/lib/nest/prisma-service-factory.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"prisma-service-factory.js","sourceRoot":"","sources":["../../../src/lib/nest/prisma-service-factory.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import type { OrgErasureDmmfModel } from './org-erasure-dmmf';
2
+ import type { OrgErasureGraph } from './org-erasure-graph';
3
+ export declare function buildOrgErasureGraph(models: readonly OrgErasureDmmfModel[]): OrgErasureGraph;
4
+ //# sourceMappingURL=build-org-erasure-graph.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"build-org-erasure-graph.d.ts","sourceRoot":"","sources":["../../../src/lib/org-erasure-coverage/build-org-erasure-graph.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,mBAAmB,EACpB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EAEV,eAAe,EAEhB,MAAM,qBAAqB,CAAC;AA6C7B,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,SAAS,mBAAmB,EAAE,GACrC,eAAe,CAKjB"}
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.buildOrgErasureGraph = buildOrgErasureGraph;
4
+ const OBJECT_FIELD_KIND = 'object';
5
+ const CASCADE_ON_DELETE = 'Cascade';
6
+ function compareStrings(a, b) {
7
+ return a < b ? -1 : a > b ? 1 : 0;
8
+ }
9
+ function isProvenCascade(field, scalarsByName) {
10
+ if (field.kind !== OBJECT_FIELD_KIND || field.isList) {
11
+ return false;
12
+ }
13
+ const fkNames = field.relationFromFields ?? [];
14
+ if (fkNames.length === 0 || field.relationOnDelete !== CASCADE_ON_DELETE) {
15
+ return false;
16
+ }
17
+ return fkNames.every((name) => scalarsByName.get(name)?.isRequired === true);
18
+ }
19
+ function buildModel(model) {
20
+ const byName = new Map(model.fields.map((f) => [f.name, f]));
21
+ const cascadeParents = model.fields
22
+ .filter((field) => isProvenCascade(field, byName))
23
+ .map((field) => ({ relationField: field.name, parentModel: field.type }))
24
+ .sort((a, b) => compareStrings(a.relationField, b.relationField) ||
25
+ compareStrings(a.parentModel, b.parentModel));
26
+ return {
27
+ fields: model.fields.map((f) => f.name).sort(compareStrings),
28
+ cascadeParents,
29
+ };
30
+ }
31
+ function buildOrgErasureGraph(models) {
32
+ const sorted = [...models].sort((a, b) => compareStrings(a.name, b.name));
33
+ return {
34
+ models: Object.fromEntries(sorted.map((m) => [m.name, buildModel(m)])),
35
+ };
36
+ }
37
+ //# sourceMappingURL=build-org-erasure-graph.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"build-org-erasure-graph.js","sourceRoot":"","sources":["../../../src/lib/org-erasure-coverage/build-org-erasure-graph.ts"],"names":[],"mappings":";;AAqDA,oDAOC;AAlDD,MAAM,iBAAiB,GAAG,QAAQ,CAAC;AACnC,MAAM,iBAAiB,GAAG,SAAS,CAAC;AAEpC,SAAS,cAAc,CAAC,CAAS,EAAE,CAAS;IAC1C,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACpC,CAAC;AAOD,SAAS,eAAe,CACtB,KAA0B,EAC1B,aAAuD;IAEvD,IAAI,KAAK,CAAC,IAAI,KAAK,iBAAiB,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;QACrD,OAAO,KAAK,CAAC;IACf,CAAC;IACD,MAAM,OAAO,GAAG,KAAK,CAAC,kBAAkB,IAAI,EAAE,CAAC;IAC/C,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,gBAAgB,KAAK,iBAAiB,EAAE,CAAC;QACzE,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,UAAU,KAAK,IAAI,CAAC,CAAC;AAC/E,CAAC;AAED,SAAS,UAAU,CAAC,KAA0B;IAC5C,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7D,MAAM,cAAc,GAA4B,KAAK,CAAC,MAAM;SACzD,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,eAAe,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;SACjD,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,aAAa,EAAE,KAAK,CAAC,IAAI,EAAE,WAAW,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;SACxE,IAAI,CACH,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CACP,cAAc,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC,CAAC,aAAa,CAAC;QAChD,cAAc,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,WAAW,CAAC,CAC/C,CAAC;IACJ,OAAO;QACL,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC;QAC5D,cAAc;KACf,CAAC;AACJ,CAAC;AAGD,SAAgB,oBAAoB,CAClC,MAAsC;IAEtC,MAAM,MAAM,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IAC1E,OAAO;QACL,MAAM,EAAE,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;KACvE,CAAC;AACJ,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type { OrgErasureGraph } from './org-erasure-graph';
2
+ import type { RuntimeDataModelModel } from '../tenant-isolation/tenant-isolation.extension';
3
+ export declare function assertOrgErasureGraphMatchesRuntime(graph: OrgErasureGraph, runtime: Readonly<Record<string, RuntimeDataModelModel>>): void;
4
+ //# sourceMappingURL=check-org-erasure-graph.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"check-org-erasure-graph.d.ts","sourceRoot":"","sources":["../../../src/lib/org-erasure-coverage/check-org-erasure-graph.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,gDAAgD,CAAC;AAW5F,wBAAgB,mCAAmC,CACjD,KAAK,EAAE,eAAe,EACtB,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAC,GACvD,IAAI,CA2CN"}
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.assertOrgErasureGraphMatchesRuntime = assertOrgErasureGraphMatchesRuntime;
4
+ const org_erasure_coverage_errors_1 = require("./org-erasure-coverage-errors");
5
+ function sameSet(a, b) {
6
+ return a.length === b.length && a.every((name) => b.includes(name));
7
+ }
8
+ function assertOrgErasureGraphMatchesRuntime(graph, runtime) {
9
+ const problems = [];
10
+ const graphNames = Object.keys(graph.models);
11
+ const runtimeNames = Object.keys(runtime);
12
+ const missing = runtimeNames.filter((n) => !(n in graph.models)).sort();
13
+ const extra = graphNames.filter((n) => !(n in runtime)).sort();
14
+ if (missing.length > 0) {
15
+ problems.push(`models missing from the graph: ${missing.join(', ')}`);
16
+ }
17
+ if (extra.length > 0) {
18
+ problems.push(`graph models absent from the client: ${extra.join(', ')}`);
19
+ }
20
+ for (const name of graphNames.filter((n) => n in runtime).sort()) {
21
+ const graphModel = graph.models[name];
22
+ const runtimeFields = runtime[name].fields;
23
+ if (!sameSet(graphModel.fields, runtimeFields.map((f) => f.name))) {
24
+ problems.push(`model ${name}: field names differ from the client`);
25
+ }
26
+ for (const edge of graphModel.cascadeParents) {
27
+ const field = runtimeFields.find((f) => f.name === edge.relationField);
28
+ if (field?.kind !== 'object' || field.type !== edge.parentModel) {
29
+ problems.push(`model ${name}: edge ${edge.relationField} -> ${edge.parentModel} is not a relation to that model in the client`);
30
+ }
31
+ if (!(edge.parentModel in graph.models)) {
32
+ problems.push(`model ${name}: edge ${edge.relationField} names unknown parent ${edge.parentModel}`);
33
+ }
34
+ }
35
+ }
36
+ if (problems.length > 0) {
37
+ throw new org_erasure_coverage_errors_1.OrgErasureGraphMismatchError(problems);
38
+ }
39
+ }
40
+ //# sourceMappingURL=check-org-erasure-graph.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"check-org-erasure-graph.js","sourceRoot":"","sources":["../../../src/lib/org-erasure-coverage/check-org-erasure-graph.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import { type RuntimeDataModelModel } from '../tenant-isolation/tenant-isolation.extension';
2
+ import type { OrgErasureCoverage } from './org-erasure-coverage';
3
+ import type { OrgErasureCoverageOptions } from './org-erasure-coverage-options';
4
+ export declare function classifyOrgErasureCoverage(runtime: Readonly<Record<string, RuntimeDataModelModel>>, options: OrgErasureCoverageOptions): OrgErasureCoverage;
5
+ //# sourceMappingURL=classify-org-erasure-coverage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"classify-org-erasure-coverage.d.ts","sourceRoot":"","sources":["../../../src/lib/org-erasure-coverage/classify-org-erasure-coverage.ts"],"names":[],"mappings":"AAIA,OAAO,EAIL,KAAK,qBAAqB,EAC3B,MAAM,gDAAgD,CAAC;AAExD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AAwChF,wBAAgB,0BAA0B,CACxC,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAC,EACxD,OAAO,EAAE,yBAAyB,GACjC,kBAAkB,CAmFpB"}