@xemahq/biome-database-nest 7.2.0 → 8.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 (103) hide show
  1. package/README.md +57 -0
  2. package/dist/index.d.ts +13 -3
  3. package/dist/index.d.ts.map +1 -1
  4. package/dist/index.js +43 -3
  5. package/dist/index.js.map +1 -1
  6. package/dist/lib/advisory-lock.d.ts +2 -0
  7. package/dist/lib/advisory-lock.d.ts.map +1 -1
  8. package/dist/lib/advisory-lock.js +8 -0
  9. package/dist/lib/advisory-lock.js.map +1 -1
  10. package/dist/lib/biome-migrations.d.ts +2 -0
  11. package/dist/lib/biome-migrations.d.ts.map +1 -1
  12. package/dist/lib/biome-migrations.js +3 -1
  13. package/dist/lib/biome-migrations.js.map +1 -1
  14. package/dist/lib/bootstrap.d.ts +2 -0
  15. package/dist/lib/bootstrap.d.ts.map +1 -1
  16. package/dist/lib/bootstrap.js +4 -3
  17. package/dist/lib/bootstrap.js.map +1 -1
  18. package/dist/lib/ledger-rows.d.ts +1 -0
  19. package/dist/lib/ledger-rows.d.ts.map +1 -1
  20. package/dist/lib/ledger-rows.js +9 -0
  21. package/dist/lib/ledger-rows.js.map +1 -1
  22. package/dist/lib/nest/biome-database.module.d.ts +2 -0
  23. package/dist/lib/nest/biome-database.module.d.ts.map +1 -1
  24. package/dist/lib/nest/biome-database.module.js +5 -0
  25. package/dist/lib/nest/biome-database.module.js.map +1 -1
  26. package/dist/lib/nest/org-erasure.module.d.ts.map +1 -1
  27. package/dist/lib/nest/org-erasure.module.js +4 -6
  28. package/dist/lib/nest/org-erasure.module.js.map +1 -1
  29. package/dist/lib/nest/prisma-service-factory.d.ts.map +1 -1
  30. package/dist/lib/nest/prisma-service-factory.js +23 -13
  31. package/dist/lib/nest/prisma-service-factory.js.map +1 -1
  32. package/dist/lib/org-erasure-coverage/assert-org-erasure-armed.d.ts +4 -0
  33. package/dist/lib/org-erasure-coverage/assert-org-erasure-armed.d.ts.map +1 -0
  34. package/dist/lib/org-erasure-coverage/assert-org-erasure-armed.js +13 -0
  35. package/dist/lib/org-erasure-coverage/assert-org-erasure-armed.js.map +1 -0
  36. package/dist/lib/org-quiesce/org-erasure-isolation-error.d.ts +6 -0
  37. package/dist/lib/org-quiesce/org-erasure-isolation-error.d.ts.map +1 -0
  38. package/dist/lib/org-quiesce/org-erasure-isolation-error.js +16 -0
  39. package/dist/lib/org-quiesce/org-erasure-isolation-error.js.map +1 -0
  40. package/dist/lib/org-quiesce/org-erasure-transaction.d.ts +2 -0
  41. package/dist/lib/org-quiesce/org-erasure-transaction.d.ts.map +1 -0
  42. package/dist/lib/org-quiesce/org-erasure-transaction.js +16 -0
  43. package/dist/lib/org-quiesce/org-erasure-transaction.js.map +1 -0
  44. package/dist/lib/org-quiesce/org-quiesce-marks.d.ts +9 -0
  45. package/dist/lib/org-quiesce/org-quiesce-marks.d.ts.map +1 -0
  46. package/dist/lib/org-quiesce/org-quiesce-marks.js +42 -0
  47. package/dist/lib/org-quiesce/org-quiesce-marks.js.map +1 -0
  48. package/dist/lib/org-quiesce/org-quiesce-marks.migrations.d.ts +4 -0
  49. package/dist/lib/org-quiesce/org-quiesce-marks.migrations.d.ts.map +1 -0
  50. package/dist/lib/org-quiesce/org-quiesce-marks.migrations.js +74 -0
  51. package/dist/lib/org-quiesce/org-quiesce-marks.migrations.js.map +1 -0
  52. package/dist/lib/org-quiesce/org-quiesce-marks.module.d.ts +3 -0
  53. package/dist/lib/org-quiesce/org-quiesce-marks.module.d.ts.map +1 -0
  54. package/dist/lib/org-quiesce/org-quiesce-marks.module.js +21 -0
  55. package/dist/lib/org-quiesce/org-quiesce-marks.module.js.map +1 -0
  56. package/dist/lib/org-quiesce/org-quiesce-refusal-mapping.d.ts +13 -0
  57. package/dist/lib/org-quiesce/org-quiesce-refusal-mapping.d.ts.map +1 -0
  58. package/dist/lib/org-quiesce/org-quiesce-refusal-mapping.js +63 -0
  59. package/dist/lib/org-quiesce/org-quiesce-refusal-mapping.js.map +1 -0
  60. package/dist/lib/org-quiesce/org-quiesce-refusal.d.ts +33 -0
  61. package/dist/lib/org-quiesce/org-quiesce-refusal.d.ts.map +1 -0
  62. package/dist/lib/org-quiesce/org-quiesce-refusal.js +50 -0
  63. package/dist/lib/org-quiesce/org-quiesce-refusal.js.map +1 -0
  64. package/dist/lib/org-quiesce/org-write-fence-apply.d.ts +10 -0
  65. package/dist/lib/org-quiesce/org-write-fence-apply.d.ts.map +1 -0
  66. package/dist/lib/org-quiesce/org-write-fence-apply.js +55 -0
  67. package/dist/lib/org-quiesce/org-write-fence-apply.js.map +1 -0
  68. package/dist/lib/org-quiesce/org-write-fence-coverage.d.ts +18 -0
  69. package/dist/lib/org-quiesce/org-write-fence-coverage.d.ts.map +1 -0
  70. package/dist/lib/org-quiesce/org-write-fence-coverage.js +51 -0
  71. package/dist/lib/org-quiesce/org-write-fence-coverage.js.map +1 -0
  72. package/dist/lib/org-quiesce/org-write-fence-token.sql.d.ts +2 -0
  73. package/dist/lib/org-quiesce/org-write-fence-token.sql.d.ts.map +1 -0
  74. package/dist/lib/org-quiesce/org-write-fence-token.sql.js +80 -0
  75. package/dist/lib/org-quiesce/org-write-fence-token.sql.js.map +1 -0
  76. package/dist/lib/org-quiesce/org-write-fence-triggers.d.ts +48 -0
  77. package/dist/lib/org-quiesce/org-write-fence-triggers.d.ts.map +1 -0
  78. package/dist/lib/org-quiesce/org-write-fence-triggers.js +171 -0
  79. package/dist/lib/org-quiesce/org-write-fence-triggers.js.map +1 -0
  80. package/dist/lib/org-quiesce/org-write-fence.sql.d.ts +2 -0
  81. package/dist/lib/org-quiesce/org-write-fence.sql.d.ts.map +1 -0
  82. package/dist/lib/org-quiesce/org-write-fence.sql.js +132 -0
  83. package/dist/lib/org-quiesce/org-write-fence.sql.js.map +1 -0
  84. package/dist/lib/sdk-owned-migrations.d.ts.map +1 -1
  85. package/dist/lib/sdk-owned-migrations.js +5 -1
  86. package/dist/lib/sdk-owned-migrations.js.map +1 -1
  87. package/dist/lib/service-migration-scan.d.ts +2 -1
  88. package/dist/lib/service-migration-scan.d.ts.map +1 -1
  89. package/dist/lib/service-migration-scan.js +7 -2
  90. package/dist/lib/service-migration-scan.js.map +1 -1
  91. package/dist/lib/session-timezone.d.ts +6 -1
  92. package/dist/lib/session-timezone.d.ts.map +1 -1
  93. package/dist/lib/session-timezone.js +12 -0
  94. package/dist/lib/session-timezone.js.map +1 -1
  95. package/dist/lib/tenant-isolation/authored-resource-org-erasure.d.ts.map +1 -1
  96. package/dist/lib/tenant-isolation/authored-resource-org-erasure.js +22 -19
  97. package/dist/lib/tenant-isolation/authored-resource-org-erasure.js.map +1 -1
  98. package/dist/lib/tenant-isolation/org-erasure.d.ts +1 -0
  99. package/dist/lib/tenant-isolation/org-erasure.d.ts.map +1 -1
  100. package/dist/lib/tenant-isolation/org-erasure.js +9 -7
  101. package/dist/lib/tenant-isolation/org-erasure.js.map +1 -1
  102. package/package.json +12 -11
  103. package/xema-peer-facts.json +7 -7
@@ -1,6 +1,7 @@
1
1
  import { IdentityBootstrapService } from '@xemahq/identity-client';
2
2
  import { BiomeDatabaseBootMode } from '../boot-mode';
3
3
  import { BiomeDatabaseMigrationMode } from '../migration-mode';
4
+ import { type OrgWriteFenceTable } from '../org-quiesce/org-write-fence-triggers';
4
5
  import type { BiomeDatabaseDeclaration } from '../bootstrap';
5
6
  import type { CredentialGrantSource } from '../credential-client';
6
7
  import type { DynamicModule, OnApplicationShutdown } from '@nestjs/common';
@@ -17,6 +18,7 @@ export interface ApplicationManagedBiomeDatabaseModuleOptions extends BiomeDatab
17
18
  readonly migrationMode: BiomeDatabaseMigrationMode.ApplicationManaged;
18
19
  readonly databases: readonly BiomeDatabaseDeclaration[];
19
20
  readonly requiredExtensions?: readonly string[];
21
+ readonly orgWriteFenceTables?: readonly OrgWriteFenceTable[];
20
22
  }
21
23
  export type BiomeDatabaseModuleOptions = ApplicationManagedBiomeDatabaseModuleOptions;
22
24
  export declare class BiomeDatabaseModule implements OnApplicationShutdown {
@@ -1 +1 @@
1
- {"version":3,"file":"biome-database.module.d.ts","sourceRoot":"","sources":["../../../src/lib/nest/biome-database.module.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAC;AAInE,OAAO,EAAE,qBAAqB,EAAgC,MAAM,cAAc,CAAC;AAGnF,OAAO,EAAE,0BAA0B,EAAE,MAAM,mBAAmB,CAAC;AAc/D,OAAO,KAAK,EACV,wBAAwB,EACzB,MAAM,cAAc,CAAC;AACtB,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAIlE,OAAO,KAAK,EAAE,aAAa,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AAE3E,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAWnE,eAAO,MAAM,oBAAoB,eAEhC,CAAC;AAUF,UAAU,gCAAgC;IAExC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IAgBzB,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC,UAAU,CAAC;IAQvC,QAAQ,CAAC,QAAQ,CAAC,EAAE,qBAAqB,CAAC;IAS1C,QAAQ,CAAC,eAAe,EAAE,CACxB,QAAQ,EAAE,wBAAwB,KAC/B,qBAAqB,CAAC;IAU3B,QAAQ,CAAC,kBAAkB,EAAE,CAC3B,QAAQ,EAAE,wBAAwB,KAC/B,kBAAkB,CAAC;CACzB;AAED,MAAM,WAAW,4CACf,SAAQ,gCAAgC;IACxC,QAAQ,CAAC,aAAa,EAAE,0BAA0B,CAAC,kBAAkB,CAAC;IAKtE,QAAQ,CAAC,SAAS,EAAE,SAAS,wBAAwB,EAAE,CAAC;IASxD,QAAQ,CAAC,kBAAkB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CACjD;AAID,MAAM,MAAM,0BAA0B,GACpC,4CAA4C,CAAC;AAuF/C,qBACa,mBAAoB,YAAW,qBAAqB;IAM/D,qBAAqB,IAAI,IAAI;IAI7B,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,0BAA0B,GAAG,aAAa;CAgIhE"}
1
+ {"version":3,"file":"biome-database.module.d.ts","sourceRoot":"","sources":["../../../src/lib/nest/biome-database.module.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAC;AAInE,OAAO,EAAE,qBAAqB,EAAgC,MAAM,cAAc,CAAC;AAGnF,OAAO,EAAE,0BAA0B,EAAE,MAAM,mBAAmB,CAAC;AAC/D,OAAO,EAEL,KAAK,kBAAkB,EACxB,MAAM,yCAAyC,CAAC;AAcjD,OAAO,KAAK,EACV,wBAAwB,EACzB,MAAM,cAAc,CAAC;AACtB,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAIlE,OAAO,KAAK,EAAE,aAAa,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AAE3E,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAWnE,eAAO,MAAM,oBAAoB,eAEhC,CAAC;AAUF,UAAU,gCAAgC;IAExC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IAgBzB,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC,UAAU,CAAC;IAQvC,QAAQ,CAAC,QAAQ,CAAC,EAAE,qBAAqB,CAAC;IAS1C,QAAQ,CAAC,eAAe,EAAE,CACxB,QAAQ,EAAE,wBAAwB,KAC/B,qBAAqB,CAAC;IAU3B,QAAQ,CAAC,kBAAkB,EAAE,CAC3B,QAAQ,EAAE,wBAAwB,KAC/B,kBAAkB,CAAC;CACzB;AAED,MAAM,WAAW,4CACf,SAAQ,gCAAgC;IACxC,QAAQ,CAAC,aAAa,EAAE,0BAA0B,CAAC,kBAAkB,CAAC;IAKtE,QAAQ,CAAC,SAAS,EAAE,SAAS,wBAAwB,EAAE,CAAC;IASxD,QAAQ,CAAC,kBAAkB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAYhD,QAAQ,CAAC,mBAAmB,CAAC,EAAE,SAAS,kBAAkB,EAAE,CAAC;CAC9D;AAID,MAAM,MAAM,0BAA0B,GACpC,4CAA4C,CAAC;AAuF/C,qBACa,mBAAoB,YAAW,qBAAqB;IAM/D,qBAAqB,IAAI,IAAI;IAI7B,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,0BAA0B,GAAG,aAAa;CAqIhE"}
@@ -17,6 +17,7 @@ const boot_mode_1 = require("../boot-mode");
17
17
  const bootstrap_1 = require("../bootstrap");
18
18
  const credential_lease_1 = require("../credential-lease");
19
19
  const migration_mode_1 = require("../migration-mode");
20
+ const org_write_fence_triggers_1 = require("../org-quiesce/org-write-fence-triggers");
20
21
  const pool_sizing_1 = require("../pool-sizing");
21
22
  const scoped_env_1 = require("../scoped-env");
22
23
  const sdk_owned_contribution_1 = require("./sdk-owned-contribution");
@@ -49,6 +50,7 @@ let BiomeDatabaseModule = BiomeDatabaseModule_1 = class BiomeDatabaseModule {
49
50
  static forRoot(opts) {
50
51
  assertBiomeDatabaseModuleOptions(opts);
51
52
  const databases = opts.databases;
53
+ (0, org_write_fence_triggers_1.orgWriteFenceTriggerSql)(opts.orgWriteFenceTables ?? []);
52
54
  return {
53
55
  module: BiomeDatabaseModule_1,
54
56
  global: true,
@@ -89,6 +91,9 @@ let BiomeDatabaseModule = BiomeDatabaseModule_1 = class BiomeDatabaseModule {
89
91
  databases,
90
92
  ...(opts.env !== undefined ? { env: opts.env } : {}),
91
93
  sdkOwnedMigrations,
94
+ ...(opts.orgWriteFenceTables !== undefined
95
+ ? { orgWriteFenceTables: opts.orgWriteFenceTables }
96
+ : {}),
92
97
  ...(opts.requiredExtensions !== undefined
93
98
  ? { requiredExtensions: opts.requiredExtensions }
94
99
  : {}),
@@ -1 +1 @@
1
- {"version":3,"file":"biome-database.module.js","sourceRoot":"","sources":["../../../src/lib/nest/biome-database.module.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"biome-database.module.js","sourceRoot":"","sources":["../../../src/lib/nest/biome-database.module.ts"],"names":[],"mappings":";;;;;;;;;;AAAA,2CAAwC;AACxC,uCAAiE;AACjE,6DAAmE;AACnE,+DAAgE;AAChE,yEAAmE;AAEnE,4CAAmF;AACnF,4CAAuD;AACvD,0DAA8D;AAC9D,sDAA+D;AAC/D,sFAGiD;AACjD,gDAIwB;AACxB,8CAA8C;AAC9C,qEAKkC;AAsBrB,QAAA,oBAAoB,GAAG,MAAM,CAAC,GAAG,CAC5C,mCAAmC,CACpC,CAAC;AAQF,MAAM,mBAAmB,GAAG,MAAM,CAAC,qBAAqB,CAAC,CAAC;AA0F1D,SAAS,gCAAgC,CACvC,IAAa;IAEb,IACE,IAAI,KAAK,IAAI;QACb,OAAO,IAAI,KAAK,QAAQ;QACxB,CAAC,CAAC,eAAe,IAAI,IAAI,CAAC;QAC1B,IAAI,CAAC,aAAa,KAAK,2CAA0B,CAAC,kBAAkB,EACpE,CAAC;QACD,MAAM,IAAI,KAAK,CACb,4EAA4E,CAC7E,CAAC;IACJ,CAAC;IAED,IACE,CAAC,CAAC,WAAW,IAAI,IAAI,CAAC;QACtB,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC;QAC9B,IAAI,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC,EAC3B,CAAC;QACD,MAAM,IAAI,KAAK,CACb,4FAA4F,CAC7F,CAAC;IACJ,CAAC;IAED,IAAI,CAAC,CAAC,iBAAiB,IAAI,IAAI,CAAC,IAAI,OAAO,IAAI,CAAC,eAAe,KAAK,UAAU,EAAE,CAAC;QAC/E,MAAM,IAAI,KAAK,CACb,gHAAgH,CACjH,CAAC;IACJ,CAAC;IAED,IACE,CAAC,CAAC,oBAAoB,IAAI,IAAI,CAAC;QAC/B,OAAO,IAAI,CAAC,kBAAkB,KAAK,UAAU,EAC7C,CAAC;QACD,MAAM,IAAI,KAAK,CACb,kKAAkK,CACnK,CAAC;IACJ,CAAC;AACH,CAAC;AAgDM,IAAM,mBAAmB,2BAAzB,MAAM,mBAAmB;IAM9B,qBAAqB;QACnB,IAAA,0CAAuB,GAAE,CAAC;IAC5B,CAAC;IAGD,MAAM,CAAC,OAAO,CAAC,IAAa;QAC1B,gCAAgC,CAAC,IAAI,CAAC,CAAC;QACvC,MAAM,SAAS,GAAwC,IAAI,CAAC,SAAS,CAAC;QAEtE,IAAA,kDAAuB,EAAC,IAAI,CAAC,mBAAmB,IAAI,EAAE,CAAC,CAAC;QAaxD,OAAO;YACL,MAAM,EAAE,qBAAmB;YAC3B,MAAM,EAAE,IAAI;YACZ,OAAO,EAAE,CAAC,sBAAe,CAAC;YAC1B,SAAS,EAAE;gBACT;oBACE,OAAO,EAAE,mBAAmB;oBAC5B,UAAU,EAAE,KAAK,EACf,iBAAuD,EACvD,WAAoC,EACpC,WAAgD,EAChD,SAA2B,EACS,EAAE;wBACtC,MAAM,QAAQ,GACZ,IAAI,CAAC,QAAQ;4BACb,IAAA,wCAA4B,EAC1B,IAAI,CAAC,GAAG,EAAE,EAAE,IAAI,IAAA,0BAAa,EAAC,2BAA2B,CAAC,CAC3D,CAAC;wBACJ,IAAI,QAAQ,KAAK,iCAAqB,CAAC,iBAAiB,EAAE,CAAC;4BAGzD,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;gCAC9B,IAAA,8CAAgC,EAC9B,IAAA,6CAA+B,EAAC,WAAW,CAAC,CAC7C,CAAC;4BACJ,CAAC;4BACD,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;wBAC1C,CAAC;wBACD,MAAM,IAAI,GAAG,IAAA,6CAA+B,EAAC,WAAW,CAAC,CAAC;wBAC1D,IAAA,8CAAgC,EAAC,IAAI,CAAC,CAAC;wBACvC,IAAI,iBAAiB,KAAK,SAAS,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;4BACjE,MAAM,OAAO,GAAG;gCACd,iBAAiB,KAAK,SAAS,CAAC,CAAC,CAAC,0BAA0B,CAAC,CAAC,CAAC,IAAI;gCACnE,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,IAAI;6BACxD,CAAC,MAAM,CAAC,CAAC,IAAI,EAAkB,EAAE,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;4BAClD,MAAM,IAAI,KAAK,CACb,oBAAoB,IAAI,CAAC,OAAO,0BAA0B;gCACxD,GAAG,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,mCAAmC;gCAC3D,mEAAmE,CACtE,CAAC;wBACJ,CAAC;wBAKD,MAAM,WAAW,GAAG,SAAS;6BAC1B,YAAY,EAAE;6BACd,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,QAAmB,CAAC;6BAC7C,MAAM,CAAC,wDAA+B,CAAC;6BACvC,GAAG,CAAC,CAAC,YAAY,EAAE,EAAE,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;wBAC3C,MAAM,kBAAkB,GAAG,IAAA,gDAAuB,EAAC,WAAW,CAAC,CAAC;wBAChE,MAAM,IAAA,mCAAuB,EAAC;4BAC5B,OAAO,EAAE,IAAI,CAAC,OAAO;4BACrB,WAAW,EAAE,IAAI,CAAC,WAAW;4BAC7B,aAAa,EAAE,IAAI,CAAC,aAAa;4BACjC,SAAS;4BACT,GAAG,CAAC,IAAI,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;4BACpD,kBAAkB;4BAClB,GAAG,CAAC,IAAI,CAAC,mBAAmB,KAAK,SAAS;gCACxC,CAAC,CAAC,EAAE,mBAAmB,EAAE,IAAI,CAAC,mBAAmB,EAAE;gCACnD,CAAC,CAAC,EAAE,CAAC;4BACP,GAAG,CAAC,IAAI,CAAC,kBAAkB,KAAK,SAAS;gCACvC,CAAC,CAAC,EAAE,kBAAkB,EAAE,IAAI,CAAC,kBAAkB,EAAE;gCACjD,CAAC,CAAC,EAAE,CAAC;4BACP,eAAe,EAAE,IAAI,CAAC,eAAe,CAAC,iBAAiB,CAAC;4BACxD,WAAW;yBACZ,CAAC,CAAC;wBACH,OAAO;4BACL,UAAU,EAAE,KAAK;4BACjB,MAAM,EAAE,kBAAkB,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC;yBACnD,CAAC;oBACJ,CAAC;oBACD,MAAM,EAAE;wBACN,EAAE,KAAK,EAAE,0CAAwB,EAAE,QAAQ,EAAE,IAAI,EAAE;wBACnD,EAAE,KAAK,EAAE,0CAAkB,EAAE,QAAQ,EAAE,IAAI,EAAE;wBAC7C,EAAE,KAAK,EAAE,uCAAyB,EAAE,QAAQ,EAAE,IAAI,EAAE;wBACpD,uBAAgB;qBACjB;iBACF;gBACD;oBACE,OAAO,EAAE,4BAAoB;oBAC7B,UAAU,EAAE,GAAS,EAAE,CAAC,IAAI;oBAC5B,MAAM,EAAE,CAAC,mBAAmB,CAAC;iBAC9B;gBACD;oBACE,OAAO,EAAE,qDAA4B;oBACrC,UAAU,EAAE,CACV,OAAkC,EACP,EAAE,CAAC,OAAO;oBACvC,MAAM,EAAE,CAAC,mBAAmB,CAAC;iBAC9B;gBACD;oBACE,OAAO,EAAE,uCAAoB;oBAC7B,UAAU,EAAE,CACV,iBAAuD,EAC5B,EAAE;wBAK7B,IAAI,iBAAiB,KAAK,SAAS,EAAE,CAAC;4BACpC,OAAO,IAAI,CAAC;wBACd,CAAC;wBACD,OAAO,IAAI,CAAC,kBAAkB,CAAC,iBAAiB,CAAC,CAAC;oBACpD,CAAC;oBACD,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,0CAAwB,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;iBAC9D;aACF;YACD,OAAO,EAAE;gBACP,4BAAoB;gBACpB,qDAA4B;gBAC5B,uCAAoB;aACrB;SACF,CAAC;IACJ,CAAC;CACF,CAAA;AA/IY,kDAAmB;8BAAnB,mBAAmB;IAD/B,IAAA,eAAM,EAAC,EAAE,CAAC;GACE,mBAAmB,CA+I/B"}
@@ -1 +1 @@
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"}
1
+ {"version":3,"file":"org-erasure.module.d.ts","sourceRoot":"","sources":["../../../src/lib/nest/org-erasure.module.ts"],"names":[],"mappings":"AA6BA,OAAO,EAAU,KAAK,aAAa,EAAE,KAAK,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAYvE,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;CAmBhE"}
@@ -3,16 +3,14 @@ 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 assert_org_erasure_armed_1 = require("../org-erasure-coverage/assert-org-erasure-armed");
7
+ const org_quiesce_marks_module_1 = require("../org-quiesce/org-quiesce-marks.module");
6
8
  class OrgErasureModule {
7
9
  static forRoot(options) {
8
10
  return org_erasure_nest_1.OrgErasureEndpointModule.forRunner({
11
+ imports: [org_quiesce_marks_module_1.OrgQuiesceMarksModule],
9
12
  useFactory: (prisma) => {
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(', ')}`);
13
+ (0, assert_org_erasure_armed_1.assertOrgErasureArmed)(prisma.orgErasureCoverage, new common_1.Logger(OrgErasureModule.name));
16
14
  return {
17
15
  erase: (orgId) => prisma.eraseOrg(orgId),
18
16
  };
@@ -1 +1 @@
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
+ {"version":3,"file":"org-erasure.module.js","sourceRoot":"","sources":["../../../src/lib/nest/org-erasure.module.ts"],"names":[],"mappings":";;;AA6BA,2CAAuE;AACvE,+DAIkC;AAElC,+FAAyF;AACzF,sFAAgF;AAYhF,MAAa,gBAAgB;IAC3B,MAAM,CAAC,OAAO,CAAC,OAAgC;QAC7C,OAAO,2CAAwB,CAAC,SAAS,CAAC;YAIxC,OAAO,EAAE,CAAC,gDAAqB,CAAC;YAChC,UAAU,EAAE,CAAC,MAAqB,EAAoB,EAAE;gBACtD,IAAA,gDAAqB,EACnB,MAAM,CAAC,kBAAkB,EACzB,IAAI,eAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAClC,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;AApBD,4CAoBC"}
@@ -1 +1 @@
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"}
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;AAEzD,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,CAoOpD"}
@@ -14,6 +14,7 @@ const common_1 = require("@nestjs/common");
14
14
  const platform_common_1 = require("@xemahq/platform-common");
15
15
  const adapter_1 = require("../adapter");
16
16
  const resolve_org_erasure_api_1 = require("../org-erasure-coverage/resolve-org-erasure-api");
17
+ const org_quiesce_refusal_mapping_1 = require("../org-quiesce/org-quiesce-refusal-mapping");
17
18
  const tenant_isolation_mode_1 = require("../tenant-isolation/tenant-isolation-mode");
18
19
  const tenant_isolation_extension_1 = require("../tenant-isolation/tenant-isolation.extension");
19
20
  const unscoped_models_1 = require("../tenant-isolation/unscoped-models");
@@ -42,14 +43,16 @@ function createBiomePrismaService(PrismaClientCtor, options) {
42
43
  const mode = (0, tenant_isolation_mode_1.resolveTenantIsolationMode)(tenantOptions.mode);
43
44
  const raw = this;
44
45
  const tenantLogger = new common_1.Logger(`${loggerContext}:tenant-isolation`);
45
- const requireExtends = () => {
46
- const extendsFn = raw.$extends;
46
+ const extendWith = (client, extension) => {
47
+ const extendsFn = client.$extends;
47
48
  if (typeof extendsFn !== 'function') {
48
49
  throw new Error('[tenant-isolation] the Prisma client has no $extends — tenant ' +
49
- 'isolation requires a generated @prisma/client >= 5 (this SDK peers on ^7).');
50
+ 'isolation and the org write-fence refusal mapping require a generated @prisma/client >= 5 (this SDK peers on ^7).');
50
51
  }
51
- return extendsFn.bind(raw);
52
+ return extendsFn.call(client, extension);
52
53
  };
54
+ const base = extendWith(raw, (0, org_quiesce_refusal_mapping_1.createOrgQuiesceRefusalExtension)());
55
+ const requireExtends = () => (extension) => extendWith(base, extension);
53
56
  let scopedModelsCache;
54
57
  const getScopedModels = () => {
55
58
  scopedModelsCache ??= (0, tenant_isolation_extension_1.collectOrgScopedModels)(raw, orgField, exemptModels);
@@ -86,23 +89,29 @@ function createBiomePrismaService(PrismaClientCtor, options) {
86
89
  seenSystemCallSites.add(callSite);
87
90
  tenantLogger.debug(`[tenant-isolation] asSystem() unscoped access from ${callSite}`);
88
91
  }
89
- return raw;
92
+ return base;
90
93
  };
94
+ const shadowOf = (client) => Object.create(client);
91
95
  const explicitApi = new Map([
92
96
  ['forOrg', forOrg],
93
97
  ['asSystem', asSystem],
94
98
  ['orgErasureCoverage', orgErasureApi.orgErasureCoverage],
95
99
  ['eraseOrg', orgErasureApi.eraseOrg],
96
100
  ]);
101
+ const rawOn = raw.$on;
102
+ if (typeof rawOn === 'function') {
103
+ explicitApi.set('$on', rawOn.bind(raw));
104
+ }
97
105
  if (mode === tenant_isolation_mode_1.TenantIsolationMode.Off) {
98
- return new Proxy(raw, {
99
- get(target, prop, _receiver) {
106
+ return new Proxy(shadowOf(base), {
107
+ get(_target, prop, _receiver) {
100
108
  if (explicitApi.has(prop)) {
101
109
  return explicitApi.get(prop);
102
110
  }
103
- const value = Reflect.get(target, prop, target);
104
- return typeof value === 'function' ? value.bind(target) : value;
111
+ const value = Reflect.get(base, prop, base);
112
+ return typeof value === 'function' ? value.bind(base) : value;
105
113
  },
114
+ has: (_target, prop) => explicitApi.has(prop) || prop in base,
106
115
  });
107
116
  }
108
117
  const ambientClient = requireExtends()((0, tenant_isolation_extension_1.createTenantIsolationExtension)({
@@ -116,8 +125,8 @@ function createBiomePrismaService(PrismaClientCtor, options) {
116
125
  for (const modelName of getScopedModels()) {
117
126
  routedProps.add(lowerFirst(modelName));
118
127
  }
119
- return new Proxy(raw, {
120
- get(target, prop, _receiver) {
128
+ return new Proxy(shadowOf(base), {
129
+ get(_target, prop, _receiver) {
121
130
  if (explicitApi.has(prop)) {
122
131
  return explicitApi.get(prop);
123
132
  }
@@ -127,9 +136,10 @@ function createBiomePrismaService(PrismaClientCtor, options) {
127
136
  ? value.bind(ambientClient)
128
137
  : value;
129
138
  }
130
- const value = Reflect.get(target, prop, target);
131
- return typeof value === 'function' ? value.bind(target) : value;
139
+ const value = Reflect.get(base, prop, base);
140
+ return typeof value === 'function' ? value.bind(base) : value;
132
141
  },
142
+ has: (_target, prop) => explicitApi.has(prop) || prop in base,
133
143
  });
134
144
  }
135
145
  async onModuleInit() {
@@ -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 { OrgErasureCoverage } from './org-erasure-coverage';
2
+ import type { OrgErasureCoverageLogger } from './resolve-org-erasure-api';
3
+ export declare function assertOrgErasureArmed(coverage: OrgErasureCoverage, logger: OrgErasureCoverageLogger): NonNullable<OrgErasureCoverage['sweep']>;
4
+ //# sourceMappingURL=assert-org-erasure-armed.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"assert-org-erasure-armed.d.ts","sourceRoot":"","sources":["../../../src/lib/org-erasure-coverage/assert-org-erasure-armed.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAC;AAW1E,wBAAgB,qBAAqB,CACnC,QAAQ,EAAE,kBAAkB,EAC5B,MAAM,EAAE,wBAAwB,GAC/B,WAAW,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,CAY1C"}
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.assertOrgErasureArmed = assertOrgErasureArmed;
4
+ function assertOrgErasureArmed(coverage, logger) {
5
+ const { sweep, swept } = coverage;
6
+ if (sweep === undefined) {
7
+ throw new Error('[org-erasure] OrgErasureModule is mounted as an org-erasure ' +
8
+ 'participant but the Prisma service declares no orgErasure.sweep.');
9
+ }
10
+ logger.log(`org-erasure participant armed on "${sweep.orgField}" over ${swept.length} model(s): ${swept.join(', ')}`);
11
+ return sweep;
12
+ }
13
+ //# sourceMappingURL=assert-org-erasure-armed.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"assert-org-erasure-armed.js","sourceRoot":"","sources":["../../../src/lib/org-erasure-coverage/assert-org-erasure-armed.ts"],"names":[],"mappings":";;AAYA,sDAeC;AAfD,SAAgB,qBAAqB,CACnC,QAA4B,EAC5B,MAAgC;IAEhC,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,QAAQ,CAAC;IAClC,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,MAAM,IAAI,KAAK,CACb,8DAA8D;YAC5D,kEAAkE,CACrE,CAAC;IACJ,CAAC;IACD,MAAM,CAAC,GAAG,CACR,qCAAqC,KAAK,CAAC,QAAQ,UAAU,KAAK,CAAC,MAAM,cAAc,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAC1G,CAAC;IACF,OAAO,KAAK,CAAC;AACf,CAAC"}
@@ -0,0 +1,6 @@
1
+ export declare class OrgErasureIsolationError extends Error {
2
+ readonly isolationLevel: string;
3
+ readonly code = "ORG_ERASURE_ISOLATION";
4
+ constructor(isolationLevel: string);
5
+ }
6
+ //# sourceMappingURL=org-erasure-isolation-error.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"org-erasure-isolation-error.d.ts","sourceRoot":"","sources":["../../../src/lib/org-quiesce/org-erasure-isolation-error.ts"],"names":[],"mappings":"AACA,qBAAa,wBAAyB,SAAQ,KAAK;aAI/B,cAAc,EAAE,MAAM;IAHxC,SAAgB,IAAI,2BAA2B;gBAG7B,cAAc,EAAE,MAAM;CASzC"}
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.OrgErasureIsolationError = void 0;
4
+ class OrgErasureIsolationError extends Error {
5
+ isolationLevel;
6
+ code = 'ORG_ERASURE_ISOLATION';
7
+ constructor(isolationLevel) {
8
+ super(`[org-erasure] ORG_ERASURE_ISOLATION: an org erasure must run in a READ COMMITTED transaction, but this one is ${isolationLevel}. ` +
9
+ 'Under a fixed snapshot the eraser would not see a row a Read Committed writer commits while the eraser waits for the org lock, and that row would survive the erasure. ' +
10
+ 'Open the transaction with isolationLevel ReadCommitted (inOrgErasureTransaction does).');
11
+ this.isolationLevel = isolationLevel;
12
+ this.name = 'OrgErasureIsolationError';
13
+ }
14
+ }
15
+ exports.OrgErasureIsolationError = OrgErasureIsolationError;
16
+ //# sourceMappingURL=org-erasure-isolation-error.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"org-erasure-isolation-error.js","sourceRoot":"","sources":["../../../src/lib/org-quiesce/org-erasure-isolation-error.ts"],"names":[],"mappings":";;;AACA,MAAa,wBAAyB,SAAQ,KAAK;IAI/B;IAHF,IAAI,GAAG,uBAAuB,CAAC;IAE/C,YACkB,cAAsB;QAEtC,KAAK,CACH,iHAAiH,cAAc,IAAI;YACjI,yKAAyK;YACzK,wFAAwF,CAC3F,CAAC;QANc,mBAAc,GAAd,cAAc,CAAQ;QAOtC,IAAI,CAAC,IAAI,GAAG,0BAA0B,CAAC;IACzC,CAAC;CACF;AAbD,4DAaC"}
@@ -0,0 +1,2 @@
1
+ export declare function inOrgErasureTransaction<T>(client: unknown, orgId: string, work: (tx: Record<string, unknown>) => Promise<T>): Promise<T>;
2
+ //# sourceMappingURL=org-erasure-transaction.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"org-erasure-transaction.d.ts","sourceRoot":"","sources":["../../../src/lib/org-quiesce/org-erasure-transaction.ts"],"names":[],"mappings":"AAqBA,wBAAsB,uBAAuB,CAAC,CAAC,EAC7C,MAAM,EAAE,OAAO,EACf,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,CAAC,EAAE,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,GAChD,OAAO,CAAC,CAAC,CAAC,CAmBZ"}
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.inOrgErasureTransaction = inOrgErasureTransaction;
4
+ const org_quiesce_marks_1 = require("./org-quiesce-marks");
5
+ const ORG_ERASURE_ISOLATION_LEVEL = 'ReadCommitted';
6
+ async function inOrgErasureTransaction(client, orgId, work) {
7
+ if (typeof client?.$transaction !==
8
+ 'function') {
9
+ throw new Error('[org-erasure] the Prisma client has no $transaction; an org erasure runs inside one so it can hold the org quiesce lock.');
10
+ }
11
+ return await client.$transaction(async (tx) => {
12
+ await (0, org_quiesce_marks_1.beginOrgErasureWithinTx)(tx, orgId);
13
+ return await work(tx);
14
+ }, { isolationLevel: ORG_ERASURE_ISOLATION_LEVEL });
15
+ }
16
+ //# sourceMappingURL=org-erasure-transaction.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"org-erasure-transaction.js","sourceRoot":"","sources":["../../../src/lib/org-quiesce/org-erasure-transaction.ts"],"names":[],"mappings":";;AAqBA,0DAuBC;AA5CD,2DAA8D;AAK9D,MAAM,2BAA2B,GAAG,eAAe,CAAC;AAgB7C,KAAK,UAAU,uBAAuB,CAC3C,MAAe,EACf,KAAa,EACb,IAAiD;IAEjD,IACE,OAAQ,MAA8C,EAAE,YAAY;QACpE,UAAU,EACV,CAAC;QACD,MAAM,IAAI,KAAK,CACb,0HAA0H,CAC3H,CAAC;IACJ,CAAC;IAID,OAAO,MAAO,MAA8B,CAAC,YAAY,CACvD,KAAK,EAAE,EAAE,EAAE,EAAE;QACX,MAAM,IAAA,2CAAuB,EAAC,EAAE,EAAE,KAAK,CAAC,CAAC;QACzC,OAAO,MAAM,IAAI,CAAC,EAAE,CAAC,CAAC;IACxB,CAAC,EACD,EAAE,cAAc,EAAE,2BAA2B,EAAE,CAChD,CAAC;AACJ,CAAC"}
@@ -0,0 +1,9 @@
1
+ import { type Sql } from '@prisma/client/runtime/client';
2
+ import type { AdvisoryLockClient } from '../advisory-lock';
3
+ export declare function markOrgQuiescingWithinTx(tx: AdvisoryLockClient, orgId: string): Promise<void>;
4
+ export declare function isOrgQuiescingWithinTx(tx: AdvisoryLockClient, orgId: string): Promise<boolean>;
5
+ export declare function beginOrgErasureWithinTx(tx: AdvisoryLockClient, orgId: string): Promise<void>;
6
+ export declare function assertOrgNotQuiescingWithinTx(tx: AdvisoryLockClient, orgId: string): Promise<void>;
7
+ export declare function isOrgQuiescing(db: AdvisoryLockClient, orgId: string): Promise<boolean>;
8
+ export declare function orgNotQuiescingSql(orgIdColumn: Sql): Sql;
9
+ //# sourceMappingURL=org-quiesce-marks.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"org-quiesce-marks.d.ts","sourceRoot":"","sources":["../../../src/lib/org-quiesce/org-quiesce-marks.ts"],"names":[],"mappings":"AAAA,OAAO,EAAU,KAAK,GAAG,EAAE,MAAM,+BAA+B,CAAC;AAKjE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAa3D,wBAAsB,wBAAwB,CAC5C,EAAE,EAAE,kBAAkB,EACtB,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,IAAI,CAAC,CAEf;AAgBD,wBAAsB,sBAAsB,CAC1C,EAAE,EAAE,kBAAkB,EACtB,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,OAAO,CAAC,CAKlB;AAiBD,wBAAsB,uBAAuB,CAC3C,EAAE,EAAE,kBAAkB,EACtB,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,IAAI,CAAC,CAcf;AAGD,wBAAsB,6BAA6B,CACjD,EAAE,EAAE,kBAAkB,EACtB,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,IAAI,CAAC,CAIf;AAOD,wBAAsB,cAAc,CAClC,EAAE,EAAE,kBAAkB,EACtB,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,OAAO,CAAC,CAElB;AAwBD,wBAAgB,kBAAkB,CAAC,WAAW,EAAE,GAAG,GAAG,GAAG,CAExD"}
@@ -0,0 +1,42 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.markOrgQuiescingWithinTx = markOrgQuiescingWithinTx;
4
+ exports.isOrgQuiescingWithinTx = isOrgQuiescingWithinTx;
5
+ exports.beginOrgErasureWithinTx = beginOrgErasureWithinTx;
6
+ exports.assertOrgNotQuiescingWithinTx = assertOrgNotQuiescingWithinTx;
7
+ exports.isOrgQuiescing = isOrgQuiescing;
8
+ exports.orgNotQuiescingSql = orgNotQuiescingSql;
9
+ const client_1 = require("@prisma/client/runtime/client");
10
+ const org_erasure_isolation_error_1 = require("./org-erasure-isolation-error");
11
+ const org_quiesce_refusal_1 = require("./org-quiesce-refusal");
12
+ async function markOrgQuiescingWithinTx(tx, orgId) {
13
+ await tx.$executeRaw `SELECT xema_org_quiesce_mark(${orgId})`;
14
+ }
15
+ async function isOrgQuiescingWithinTx(tx, orgId) {
16
+ const rows = await tx.$queryRaw `SELECT xema_org_is_quiescing(${orgId}) AS quiescing`;
17
+ return rows[0]?.quiescing === true;
18
+ }
19
+ async function beginOrgErasureWithinTx(tx, orgId) {
20
+ const rows = await tx.$queryRaw `SELECT current_setting('transaction_isolation') AS level`;
21
+ const level = rows[0]?.level;
22
+ if (level !== 'read committed') {
23
+ throw new org_erasure_isolation_error_1.OrgErasureIsolationError(level ?? 'unknown');
24
+ }
25
+ await tx.$executeRaw `SELECT xema_org_begin_erasure(${orgId})`;
26
+ }
27
+ async function assertOrgNotQuiescingWithinTx(tx, orgId) {
28
+ if (await isOrgQuiescingWithinTx(tx, orgId)) {
29
+ throw new org_quiesce_refusal_1.OrgQuiescingRefusedError(orgId);
30
+ }
31
+ }
32
+ async function isOrgQuiescing(db, orgId) {
33
+ return readMark(db, orgId);
34
+ }
35
+ function orgNotQuiescingSql(orgIdColumn) {
36
+ return (0, client_1.sqltag) `NOT EXISTS (SELECT 1 FROM "org_quiesce_marks" WHERE "org_quiesce_marks"."org_id" = ${orgIdColumn})`;
37
+ }
38
+ async function readMark(db, orgId) {
39
+ const rows = await db.$queryRaw `SELECT "org_id" FROM "org_quiesce_marks" WHERE "org_id" = ${orgId}`;
40
+ return rows.length > 0;
41
+ }
42
+ //# sourceMappingURL=org-quiesce-marks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"org-quiesce-marks.js","sourceRoot":"","sources":["../../../src/lib/org-quiesce/org-quiesce-marks.ts"],"names":[],"mappings":";;AAkBA,4DAKC;AAgBD,wDAQC;AAiBD,0DAiBC;AAGD,sEAOC;AAOD,wCAKC;AAwBD,gDAEC;AAjID,0DAAiE;AAEjE,+EAAyE;AACzE,+DAAiE;AAe1D,KAAK,UAAU,wBAAwB,CAC5C,EAAsB,EACtB,KAAa;IAEb,MAAM,EAAE,CAAC,WAAW,CAAA,gCAAgC,KAAK,GAAG,CAAC;AAC/D,CAAC;AAgBM,KAAK,UAAU,sBAAsB,CAC1C,EAAsB,EACtB,KAAa;IAEb,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,SAAS,CAE9B,gCAAgC,KAAK,gBAAgB,CAAC;IACvD,OAAO,IAAI,CAAC,CAAC,CAAC,EAAE,SAAS,KAAK,IAAI,CAAC;AACrC,CAAC;AAiBM,KAAK,UAAU,uBAAuB,CAC3C,EAAsB,EACtB,KAAa;IAOb,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,SAAS,CAE9B,0DAA0D,CAAC;IAC5D,MAAM,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC;IAC7B,IAAI,KAAK,KAAK,gBAAgB,EAAE,CAAC;QAC/B,MAAM,IAAI,sDAAwB,CAAC,KAAK,IAAI,SAAS,CAAC,CAAC;IACzD,CAAC;IACD,MAAM,EAAE,CAAC,WAAW,CAAA,iCAAiC,KAAK,GAAG,CAAC;AAChE,CAAC;AAGM,KAAK,UAAU,6BAA6B,CACjD,EAAsB,EACtB,KAAa;IAEb,IAAI,MAAM,sBAAsB,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,CAAC;QAC5C,MAAM,IAAI,8CAAwB,CAAC,KAAK,CAAC,CAAC;IAC5C,CAAC;AACH,CAAC;AAOM,KAAK,UAAU,cAAc,CAClC,EAAsB,EACtB,KAAa;IAEb,OAAO,QAAQ,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;AAC7B,CAAC;AAwBD,SAAgB,kBAAkB,CAAC,WAAgB;IACjD,OAAO,IAAA,eAAM,EAAA,sFAAsF,WAAW,GAAG,CAAC;AACpH,CAAC;AAED,KAAK,UAAU,QAAQ,CAAC,EAAsB,EAAE,KAAa;IAC3D,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,SAAS,CAE9B,6DAA6D,KAAK,EAAE,CAAC;IACtE,OAAO,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;AACzB,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type { SdkOwnedMigrationSet } from '../sdk-owned-migration-set';
2
+ export declare const ORG_QUIESCE_OWNER = "org-quiesce";
3
+ export declare const orgQuiesceMarksMigrations: SdkOwnedMigrationSet;
4
+ //# sourceMappingURL=org-quiesce-marks.migrations.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"org-quiesce-marks.migrations.d.ts","sourceRoot":"","sources":["../../../src/lib/org-quiesce/org-quiesce-marks.migrations.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,oBAAoB,EAErB,MAAM,4BAA4B,CAAC;AAkEpC,eAAO,MAAM,iBAAiB,gBAAgB,CAAC;AAE/C,eAAO,MAAM,yBAAyB,EAAE,oBA4CvC,CAAC"}
@@ -0,0 +1,74 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.orgQuiesceMarksMigrations = exports.ORG_QUIESCE_OWNER = void 0;
4
+ const org_write_fence_token_sql_1 = require("./org-write-fence-token.sql");
5
+ const org_write_fence_sql_1 = require("./org-write-fence.sql");
6
+ const MARKS_SQL = `
7
+ CREATE TABLE "org_quiesce_marks" (
8
+ "org_id" TEXT NOT NULL,
9
+ "marked_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
10
+ CONSTRAINT "org_quiesce_marks_pkey" PRIMARY KEY ("org_id")
11
+ );
12
+ `;
13
+ const MARKS_SHAPE = {
14
+ name: 'org_quiesce_marks',
15
+ columns: [
16
+ { name: 'org_id', type: 'text', notNull: true, default: null },
17
+ {
18
+ name: 'marked_at',
19
+ type: 'timestamp(3) without time zone',
20
+ notNull: true,
21
+ default: 'CURRENT_TIMESTAMP',
22
+ },
23
+ ],
24
+ primaryKey: ['org_id'],
25
+ checks: [],
26
+ indexes: [],
27
+ };
28
+ const TOKEN_SHAPE = {
29
+ name: 'org_write_fence_rows',
30
+ columns: [
31
+ { name: 'org_id', type: 'text', notNull: true, default: null },
32
+ { name: 'version', type: 'bigint', notNull: true, default: '0' },
33
+ ],
34
+ primaryKey: ['org_id'],
35
+ checks: [],
36
+ indexes: [],
37
+ };
38
+ const MIGRATION_VERSION = '0001-org-quiesce-marks';
39
+ const priorCreator = (serviceMigration, sha256) => ({
40
+ table: 'org_quiesce_marks',
41
+ serviceMigration,
42
+ sha256,
43
+ standsInFor: MIGRATION_VERSION,
44
+ createdShape: MARKS_SHAPE,
45
+ });
46
+ exports.ORG_QUIESCE_OWNER = 'org-quiesce';
47
+ exports.orgQuiesceMarksMigrations = {
48
+ owner: exports.ORG_QUIESCE_OWNER,
49
+ migrations: [
50
+ {
51
+ version: MIGRATION_VERSION,
52
+ creates: ['org_quiesce_marks'],
53
+ sql: MARKS_SQL,
54
+ },
55
+ {
56
+ version: '0002-org-write-fence',
57
+ creates: [],
58
+ sql: org_write_fence_sql_1.ORG_WRITE_FENCE_SQL,
59
+ },
60
+ {
61
+ version: '0003-org-write-fence-token',
62
+ creates: ['org_write_fence_rows'],
63
+ sql: org_write_fence_token_sql_1.ORG_WRITE_FENCE_TOKEN_SQL,
64
+ },
65
+ ],
66
+ tables: [MARKS_SHAPE, TOKEN_SHAPE],
67
+ priorCreators: [
68
+ priorCreator('20261018000000_org_quiesce_marks', '14b7724dedb83957b3ec55ca2df39820993ff7811f67ee3f7db781277102ec3c'),
69
+ priorCreator('20261018000000_org_quiesce_marks', '71587424ecd86f56c909de30e8b89a8e58a0b9915dbaf7294a4f2df638270db8'),
70
+ priorCreator('20261018000000_org_quiesce_marks', '101836168b4f0bac63444de28d423d565f387410e0aaadb37b1f7f13fa82acab'),
71
+ priorCreator('20260821120000_org_quiesce_marks', '22b296ab6fbb86a81044f7dd17f966449019317acd018b22e2835c944fd5033c'),
72
+ ],
73
+ };
74
+ //# sourceMappingURL=org-quiesce-marks.migrations.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"org-quiesce-marks.migrations.js","sourceRoot":"","sources":["../../../src/lib/org-quiesce/org-quiesce-marks.migrations.ts"],"names":[],"mappings":";;;AAAA,2EAAwE;AACxE,+DAA4D;AAc5D,MAAM,SAAS,GAAG;;;;;;CAMjB,CAAC;AAEF,MAAM,WAAW,GAAoB;IACnC,IAAI,EAAE,mBAAmB;IACzB,OAAO,EAAE;QACP,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE;QAC9D;YACE,IAAI,EAAE,WAAW;YACjB,IAAI,EAAE,gCAAgC;YACtC,OAAO,EAAE,IAAI;YACb,OAAO,EAAE,mBAAmB;SAC7B;KACF;IACD,UAAU,EAAE,CAAC,QAAQ,CAAC;IACtB,MAAM,EAAE,EAAE;IACV,OAAO,EAAE,EAAE;CACZ,CAAC;AAGF,MAAM,WAAW,GAAoB;IACnC,IAAI,EAAE,sBAAsB;IAC5B,OAAO,EAAE;QACP,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE;QAC9D,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE;KACjE;IACD,UAAU,EAAE,CAAC,QAAQ,CAAC;IACtB,MAAM,EAAE,EAAE;IACV,OAAO,EAAE,EAAE;CACZ,CAAC;AAEF,MAAM,iBAAiB,GAAG,wBAAwB,CAAC;AAEnD,MAAM,YAAY,GAAG,CACnB,gBAAwB,EACxB,MAAc,EACa,EAAE,CAAC,CAAC;IAC/B,KAAK,EAAE,mBAAmB;IAC1B,gBAAgB;IAChB,MAAM;IACN,WAAW,EAAE,iBAAiB;IAC9B,YAAY,EAAE,WAAW;CAC1B,CAAC,CAAC;AAWU,QAAA,iBAAiB,GAAG,aAAa,CAAC;AAElC,QAAA,yBAAyB,GAAyB;IAC7D,KAAK,EAAE,yBAAiB;IACxB,UAAU,EAAE;QACV;YACE,OAAO,EAAE,iBAAiB;YAC1B,OAAO,EAAE,CAAC,mBAAmB,CAAC;YAC9B,GAAG,EAAE,SAAS;SACf;QACD;YAEE,OAAO,EAAE,sBAAsB;YAC/B,OAAO,EAAE,EAAE;YACX,GAAG,EAAE,yCAAmB;SACzB;QACD;YAEE,OAAO,EAAE,4BAA4B;YACrC,OAAO,EAAE,CAAC,sBAAsB,CAAC;YACjC,GAAG,EAAE,qDAAyB;SAC/B;KACF;IACD,MAAM,EAAE,CAAC,WAAW,EAAE,WAAW,CAAC;IAClC,aAAa,EAAE;QAEb,YAAY,CACV,kCAAkC,EAClC,kEAAkE,CACnE;QAED,YAAY,CACV,kCAAkC,EAClC,kEAAkE,CACnE;QAED,YAAY,CACV,kCAAkC,EAClC,kEAAkE,CACnE;QAED,YAAY,CACV,kCAAkC,EAClC,kEAAkE,CACnE;KACF;CACF,CAAC"}
@@ -0,0 +1,3 @@
1
+ export declare class OrgQuiesceMarksModule {
2
+ }
3
+ //# sourceMappingURL=org-quiesce-marks.module.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"org-quiesce-marks.module.d.ts","sourceRoot":"","sources":["../../../src/lib/org-quiesce/org-quiesce-marks.module.ts"],"names":[],"mappings":"AAaA,qBAGa,qBAAqB;CAAG"}
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.OrgQuiesceMarksModule = void 0;
10
+ const common_1 = require("@nestjs/common");
11
+ const org_quiesce_marks_migrations_1 = require("./org-quiesce-marks.migrations");
12
+ const sdk_owned_contribution_1 = require("../nest/sdk-owned-contribution");
13
+ let OrgQuiesceMarksModule = class OrgQuiesceMarksModule {
14
+ };
15
+ exports.OrgQuiesceMarksModule = OrgQuiesceMarksModule;
16
+ exports.OrgQuiesceMarksModule = OrgQuiesceMarksModule = __decorate([
17
+ (0, common_1.Module)({
18
+ providers: [...(0, sdk_owned_contribution_1.contributeSdkOwnedMigrations)(org_quiesce_marks_migrations_1.orgQuiesceMarksMigrations)],
19
+ })
20
+ ], OrgQuiesceMarksModule);
21
+ //# sourceMappingURL=org-quiesce-marks.module.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"org-quiesce-marks.module.js","sourceRoot":"","sources":["../../../src/lib/org-quiesce/org-quiesce-marks.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAAwC;AAExC,iFAA2E;AAC3E,2EAA8E;AAavE,IAAM,qBAAqB,GAA3B,MAAM,qBAAqB;CAAG,CAAA;AAAxB,sDAAqB;gCAArB,qBAAqB;IAHjC,IAAA,eAAM,EAAC;QACN,SAAS,EAAE,CAAC,GAAG,IAAA,qDAA4B,EAAC,wDAAyB,CAAC,CAAC;KACxE,CAAC;GACW,qBAAqB,CAAG"}
@@ -0,0 +1,13 @@
1
+ import { OrgFenceParentMissingError, OrgFenceTruncateRefusedError, OrgQuiescingRefusedError } from './org-quiesce-refusal';
2
+ export declare function orgFenceRefusalFrom(error: unknown): OrgQuiescingRefusedError | OrgFenceParentMissingError | OrgFenceTruncateRefusedError | undefined;
3
+ export declare function orgQuiescingRefusalFrom(error: unknown): OrgQuiescingRefusedError | undefined;
4
+ export declare function createOrgQuiesceRefusalExtension(): {
5
+ readonly name: string;
6
+ readonly query: {
7
+ readonly $allOperations: (ctx: {
8
+ readonly args: unknown;
9
+ readonly query: (args: unknown) => Promise<unknown>;
10
+ }) => Promise<unknown>;
11
+ };
12
+ };
13
+ //# sourceMappingURL=org-quiesce-refusal-mapping.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"org-quiesce-refusal-mapping.d.ts","sourceRoot":"","sources":["../../../src/lib/org-quiesce/org-quiesce-refusal-mapping.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,0BAA0B,EAE1B,4BAA4B,EAC5B,wBAAwB,EACzB,MAAM,uBAAuB,CAAC;AAkD/B,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,OAAO,GAEZ,wBAAwB,GACxB,0BAA0B,GAC1B,4BAA4B,GAC5B,SAAS,CAeZ;AAGD,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,OAAO,GACb,wBAAwB,GAAG,SAAS,CAGtC;AASD,wBAAgB,gCAAgC,IAAI;IAClD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE;QACd,QAAQ,CAAC,cAAc,EAAE,CAAC,GAAG,EAAE;YAC7B,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;YACvB,QAAQ,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;SACrD,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;KACxB,CAAC;CACH,CAaA"}
@@ -0,0 +1,63 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.orgFenceRefusalFrom = orgFenceRefusalFrom;
4
+ exports.orgQuiescingRefusalFrom = orgQuiescingRefusalFrom;
5
+ exports.createOrgQuiesceRefusalExtension = createOrgQuiesceRefusalExtension;
6
+ const org_quiesce_refusal_1 = require("./org-quiesce-refusal");
7
+ const isRecord = (value) => typeof value === 'object' && value !== null;
8
+ function fieldsOf(candidate) {
9
+ if (!isRecord(candidate) || typeof candidate['code'] !== 'string') {
10
+ return undefined;
11
+ }
12
+ const { detail } = candidate;
13
+ return {
14
+ code: candidate['code'],
15
+ detail: typeof detail === 'string' ? detail : undefined,
16
+ };
17
+ }
18
+ function sqlErrorOf(error) {
19
+ if (!isRecord(error)) {
20
+ return undefined;
21
+ }
22
+ const { meta } = error;
23
+ const adapterError = isRecord(meta) ? meta['driverAdapterError'] : undefined;
24
+ return ((isRecord(adapterError) ? fieldsOf(adapterError['cause']) : undefined) ??
25
+ fieldsOf(error['cause']) ??
26
+ fieldsOf(error));
27
+ }
28
+ function orgFenceRefusalFrom(error) {
29
+ const fields = sqlErrorOf(error);
30
+ if (fields?.detail === undefined) {
31
+ return undefined;
32
+ }
33
+ switch (fields.code) {
34
+ case org_quiesce_refusal_1.OrgFenceSqlState.OrgQuiescing:
35
+ return new org_quiesce_refusal_1.OrgQuiescingRefusedError(fields.detail, { cause: error });
36
+ case org_quiesce_refusal_1.OrgFenceSqlState.ParentMissing:
37
+ return new org_quiesce_refusal_1.OrgFenceParentMissingError(fields.detail, { cause: error });
38
+ case org_quiesce_refusal_1.OrgFenceSqlState.TruncateRefused:
39
+ return new org_quiesce_refusal_1.OrgFenceTruncateRefusedError(fields.detail, { cause: error });
40
+ default:
41
+ return undefined;
42
+ }
43
+ }
44
+ function orgQuiescingRefusalFrom(error) {
45
+ const refusal = orgFenceRefusalFrom(error);
46
+ return refusal instanceof org_quiesce_refusal_1.OrgQuiescingRefusedError ? refusal : undefined;
47
+ }
48
+ function createOrgQuiesceRefusalExtension() {
49
+ return {
50
+ name: 'xema-org-quiesce-refusal',
51
+ query: {
52
+ async $allOperations({ args, query }) {
53
+ try {
54
+ return await query(args);
55
+ }
56
+ catch (error) {
57
+ throw orgFenceRefusalFrom(error) ?? error;
58
+ }
59
+ },
60
+ },
61
+ };
62
+ }
63
+ //# sourceMappingURL=org-quiesce-refusal-mapping.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"org-quiesce-refusal-mapping.js","sourceRoot":"","sources":["../../../src/lib/org-quiesce/org-quiesce-refusal-mapping.ts"],"names":[],"mappings":";;AAuDA,kDAqBC;AAGD,0DAKC;AASD,4EAqBC;AAlHD,+DAK+B;AAO/B,MAAM,QAAQ,GAAG,CAAC,KAAc,EAAoC,EAAE,CACpE,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,CAAC;AAE9C,SAAS,QAAQ,CAAC,SAAkB;IAClC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,OAAO,SAAS,CAAC,MAAM,CAAC,KAAK,QAAQ,EAAE,CAAC;QAClE,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,MAAM,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;IAC7B,OAAO;QACL,IAAI,EAAE,SAAS,CAAC,MAAM,CAAC;QACvB,MAAM,EAAE,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS;KACxD,CAAC;AACJ,CAAC;AASD,SAAS,UAAU,CAAC,KAAc;IAChC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QACrB,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,MAAM,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC;IACvB,MAAM,YAAY,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC7E,OAAO,CACL,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QACtE,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACxB,QAAQ,CAAC,KAAK,CAAC,CAChB,CAAC;AACJ,CAAC;AAWD,SAAgB,mBAAmB,CACjC,KAAc;IAMd,MAAM,MAAM,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;IACjC,IAAI,MAAM,EAAE,MAAM,KAAK,SAAS,EAAE,CAAC;QACjC,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,QAAQ,MAAM,CAAC,IAAI,EAAE,CAAC;QACpB,KAAK,sCAAgB,CAAC,YAAY;YAChC,OAAO,IAAI,8CAAwB,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;QACvE,KAAK,sCAAgB,CAAC,aAAa;YACjC,OAAO,IAAI,gDAA0B,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;QACzE,KAAK,sCAAgB,CAAC,eAAe;YACnC,OAAO,IAAI,kDAA4B,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;QAC3E;YACE,OAAO,SAAS,CAAC;IACrB,CAAC;AACH,CAAC;AAGD,SAAgB,uBAAuB,CACrC,KAAc;IAEd,MAAM,OAAO,GAAG,mBAAmB,CAAC,KAAK,CAAC,CAAC;IAC3C,OAAO,OAAO,YAAY,8CAAwB,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;AAC3E,CAAC;AASD,SAAgB,gCAAgC;IAS9C,OAAO;QACL,IAAI,EAAE,0BAA0B;QAChC,KAAK,EAAE;YACL,KAAK,CAAC,cAAc,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE;gBAClC,IAAI,CAAC;oBACH,OAAO,MAAM,KAAK,CAAC,IAAI,CAAC,CAAC;gBAC3B,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,MAAM,mBAAmB,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC;gBAC5C,CAAC;YACH,CAAC;SACF;KACF,CAAC;AACJ,CAAC"}