@xemahq/biome-database-nest 0.37.0 → 1.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 (58) hide show
  1. package/README.md +58 -0
  2. package/dist/index.d.ts +9 -2
  3. package/dist/index.d.ts.map +1 -1
  4. package/dist/index.js +29 -1
  5. package/dist/index.js.map +1 -1
  6. package/dist/lib/biome-migrations.d.ts +11 -0
  7. package/dist/lib/biome-migrations.d.ts.map +1 -0
  8. package/dist/lib/biome-migrations.js +51 -0
  9. package/dist/lib/biome-migrations.js.map +1 -0
  10. package/dist/lib/bootstrap.d.ts +4 -1
  11. package/dist/lib/bootstrap.d.ts.map +1 -1
  12. package/dist/lib/bootstrap.js +27 -17
  13. package/dist/lib/bootstrap.js.map +1 -1
  14. package/dist/lib/credential-client.d.ts +5 -1
  15. package/dist/lib/credential-client.d.ts.map +1 -1
  16. package/dist/lib/credential-client.js +7 -2
  17. package/dist/lib/credential-client.js.map +1 -1
  18. package/dist/lib/ledger-rows.d.ts +14 -0
  19. package/dist/lib/ledger-rows.d.ts.map +1 -0
  20. package/dist/lib/ledger-rows.js +44 -0
  21. package/dist/lib/ledger-rows.js.map +1 -0
  22. package/dist/lib/nest/biome-database.module.d.ts +5 -0
  23. package/dist/lib/nest/biome-database.module.d.ts.map +1 -1
  24. package/dist/lib/nest/biome-database.module.js +53 -6
  25. package/dist/lib/nest/biome-database.module.js.map +1 -1
  26. package/dist/lib/nest/sdk-owned-contribution.d.ts +25 -0
  27. package/dist/lib/nest/sdk-owned-contribution.d.ts.map +1 -0
  28. package/dist/lib/nest/sdk-owned-contribution.js +71 -0
  29. package/dist/lib/nest/sdk-owned-contribution.js.map +1 -0
  30. package/dist/lib/operator-migration-ledger.d.ts +4 -2
  31. package/dist/lib/operator-migration-ledger.d.ts.map +1 -1
  32. package/dist/lib/operator-migration-ledger.js +78 -20
  33. package/dist/lib/operator-migration-ledger.js.map +1 -1
  34. package/dist/lib/operator-migration.d.ts +4 -8
  35. package/dist/lib/operator-migration.d.ts.map +1 -1
  36. package/dist/lib/operator-migration.js +16 -44
  37. package/dist/lib/operator-migration.js.map +1 -1
  38. package/dist/lib/owned-table-shape.d.ts +33 -0
  39. package/dist/lib/owned-table-shape.d.ts.map +1 -0
  40. package/dist/lib/owned-table-shape.js +137 -0
  41. package/dist/lib/owned-table-shape.js.map +1 -0
  42. package/dist/lib/sdk-owned-errors.d.ts +24 -0
  43. package/dist/lib/sdk-owned-errors.d.ts.map +1 -0
  44. package/dist/lib/sdk-owned-errors.js +58 -0
  45. package/dist/lib/sdk-owned-errors.js.map +1 -0
  46. package/dist/lib/sdk-owned-migration-set.d.ts +19 -0
  47. package/dist/lib/sdk-owned-migration-set.d.ts.map +1 -0
  48. package/dist/lib/sdk-owned-migration-set.js +81 -0
  49. package/dist/lib/sdk-owned-migration-set.js.map +1 -0
  50. package/dist/lib/sdk-owned-migrations.d.ts +5 -0
  51. package/dist/lib/sdk-owned-migrations.d.ts.map +1 -0
  52. package/dist/lib/sdk-owned-migrations.js +58 -0
  53. package/dist/lib/sdk-owned-migrations.js.map +1 -0
  54. package/dist/lib/service-migration-scan.d.ts +3 -0
  55. package/dist/lib/service-migration-scan.d.ts.map +1 -0
  56. package/dist/lib/service-migration-scan.js +164 -0
  57. package/dist/lib/service-migration-scan.js.map +1 -0
  58. package/package.json +8 -8
@@ -0,0 +1,44 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.OperatorMigrationPhase = void 0;
4
+ exports.recordPhase = recordPhase;
5
+ exports.readPhase = readPhase;
6
+ exports.assertArtifactMatches = assertArtifactMatches;
7
+ exports.sha256 = sha256;
8
+ const node_crypto_1 = require("node:crypto");
9
+ const SHA256_PATTERN = /^[a-f0-9]{64}$/u;
10
+ var OperatorMigrationPhase;
11
+ (function (OperatorMigrationPhase) {
12
+ OperatorMigrationPhase["Verified"] = "verified";
13
+ OperatorMigrationPhase["Contracted"] = "contracted";
14
+ OperatorMigrationPhase["Applied"] = "applied";
15
+ })(OperatorMigrationPhase || (exports.OperatorMigrationPhase = OperatorMigrationPhase = {}));
16
+ async function recordPhase(database, migrationId, phase, artifactSha256) {
17
+ const existing = await readPhase(database, migrationId, phase);
18
+ if (existing !== null) {
19
+ assertArtifactMatches(migrationId, phase, existing, artifactSha256);
20
+ return;
21
+ }
22
+ await database.query(`INSERT INTO xema_operator_migrations
23
+ (migration_id, phase, artifact_sha256)
24
+ VALUES ($1, $2, $3)`, [migrationId, phase, artifactSha256]);
25
+ }
26
+ async function readPhase(database, migrationId, phase) {
27
+ const result = await database.query(`SELECT artifact_sha256
28
+ FROM xema_operator_migrations
29
+ WHERE migration_id = $1 AND phase = $2`, [migrationId, phase]);
30
+ const value = result.rows[0]?.artifact_sha256 ?? null;
31
+ if (value !== null && !SHA256_PATTERN.test(value)) {
32
+ throw new Error(`Operator migration ledger contains an invalid artifact hash for ${migrationId}/${phase}.`);
33
+ }
34
+ return value;
35
+ }
36
+ function assertArtifactMatches(migrationId, phase, recorded, expected) {
37
+ if (recorded !== expected) {
38
+ throw new Error(`Operator migration ${migrationId}/${phase} is already recorded for a different artifact.`);
39
+ }
40
+ }
41
+ function sha256(value) {
42
+ return (0, node_crypto_1.createHash)('sha256').update(value).digest('hex');
43
+ }
44
+ //# sourceMappingURL=ledger-rows.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ledger-rows.js","sourceRoot":"","sources":["../../src/lib/ledger-rows.ts"],"names":[],"mappings":";;;AAoBA,kCAiBC;AAED,8BAkBC;AAED,sDAWC;AAED,wBAEC;AA1ED,6CAAyC;AAIzC,MAAM,cAAc,GAAG,iBAAiB,CAAC;AAEzC,IAAY,sBAKX;AALD,WAAY,sBAAsB;IAChC,+CAAqB,CAAA;IACrB,mDAAyB,CAAA;IAEzB,6CAAmB,CAAA;AACrB,CAAC,EALW,sBAAsB,sCAAtB,sBAAsB,QAKjC;AASM,KAAK,UAAU,WAAW,CAC/B,QAAmC,EACnC,WAAmB,EACnB,KAA6B,EAC7B,cAAsB;IAEtB,MAAM,QAAQ,GAAG,MAAM,SAAS,CAAC,QAAQ,EAAE,WAAW,EAAE,KAAK,CAAC,CAAC;IAC/D,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;QACtB,qBAAqB,CAAC,WAAW,EAAE,KAAK,EAAE,QAAQ,EAAE,cAAc,CAAC,CAAC;QACpE,OAAO;IACT,CAAC;IACD,MAAM,QAAQ,CAAC,KAAK,CAClB;;yBAEqB,EACrB,CAAC,WAAW,EAAE,KAAK,EAAE,cAAc,CAAC,CACrC,CAAC;AACJ,CAAC;AAEM,KAAK,UAAU,SAAS,CAC7B,QAAmC,EACnC,WAAmB,EACnB,KAA6B;IAE7B,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,KAAK,CACjC;;6CAEyC,EACzC,CAAC,WAAW,EAAE,KAAK,CAAC,CACrB,CAAC;IACF,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,eAAe,IAAI,IAAI,CAAC;IACtD,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QAClD,MAAM,IAAI,KAAK,CACb,mEAAmE,WAAW,IAAI,KAAK,GAAG,CAC3F,CAAC;IACJ,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAgB,qBAAqB,CACnC,WAAmB,EACnB,KAA6B,EAC7B,QAAgB,EAChB,QAAgB;IAEhB,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;QAC1B,MAAM,IAAI,KAAK,CACb,sBAAsB,WAAW,IAAI,KAAK,gDAAgD,CAC3F,CAAC;IACJ,CAAC;AACH,CAAC;AAED,SAAgB,MAAM,CAAC,KAAa;IAClC,OAAO,IAAA,wBAAU,EAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAC1D,CAAC"}
@@ -1,12 +1,17 @@
1
+ import { IdentityBootstrapService } from '@xemahq/identity-client';
1
2
  import { BiomeDatabaseBootMode } from '../boot-mode';
2
3
  import { BiomeDatabaseMigrationMode } from '../migration-mode';
3
4
  import type { BiomeDatabaseDeclaration } from '../bootstrap';
5
+ import type { CredentialGrantSource } from '../credential-client';
4
6
  import type { DynamicModule, OnApplicationShutdown } from '@nestjs/common';
7
+ import type { OrgProtectionGrant } from '@xemahq/org-erasure-nest';
5
8
  export declare const BIOME_DATABASE_READY: unique symbol;
6
9
  interface BiomeDatabaseModuleCommonOptions {
7
10
  readonly biomeId: string;
8
11
  readonly env?: () => NodeJS.ProcessEnv;
9
12
  readonly bootMode?: BiomeDatabaseBootMode;
13
+ readonly credentialGrant: (identity: IdentityBootstrapService) => CredentialGrantSource;
14
+ readonly orgProtectionGrant: (identity: IdentityBootstrapService) => OrgProtectionGrant;
10
15
  }
11
16
  export interface ApplicationManagedBiomeDatabaseModuleOptions extends BiomeDatabaseModuleCommonOptions {
12
17
  readonly migrationMode: BiomeDatabaseMigrationMode.ApplicationManaged;
@@ -1 +1 @@
1
- {"version":3,"file":"biome-database.module.d.ts","sourceRoot":"","sources":["../../../src/lib/nest/biome-database.module.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,qBAAqB,EAAgC,MAAM,cAAc,CAAC;AAGnF,OAAO,EAAE,0BAA0B,EAAE,MAAM,mBAAmB,CAAC;AAQ/D,OAAO,KAAK,EACV,wBAAwB,EACzB,MAAM,cAAc,CAAC;AAItB,OAAO,KAAK,EAAE,aAAa,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AAY3E,eAAO,MAAM,oBAAoB,eAEhC,CAAC;AAEF,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;CAC3C;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;AAsE/C,qBACa,mBAAoB,YAAW,qBAAqB;IAM/D,qBAAqB,IAAI,IAAI;IAI7B,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,0BAA0B,GAAG,aAAa;CA+EhE"}
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"}
@@ -9,7 +9,9 @@ var BiomeDatabaseModule_1;
9
9
  Object.defineProperty(exports, "__esModule", { value: true });
10
10
  exports.BiomeDatabaseModule = exports.BIOME_DATABASE_READY = void 0;
11
11
  const common_1 = require("@nestjs/common");
12
+ const core_1 = require("@nestjs/core");
12
13
  const identity_client_1 = require("@xemahq/identity-client");
14
+ const org_erasure_nest_1 = require("@xemahq/org-erasure-nest");
13
15
  const service_registry_nest_1 = require("@xemahq/service-registry-nest");
14
16
  const boot_mode_1 = require("../boot-mode");
15
17
  const bootstrap_1 = require("../bootstrap");
@@ -17,7 +19,9 @@ const credential_lease_1 = require("../credential-lease");
17
19
  const migration_mode_1 = require("../migration-mode");
18
20
  const pool_sizing_1 = require("../pool-sizing");
19
21
  const scoped_env_1 = require("../scoped-env");
22
+ const sdk_owned_contribution_1 = require("./sdk-owned-contribution");
20
23
  exports.BIOME_DATABASE_READY = Symbol.for('@xemahq/biome-database-nest:ready');
24
+ const BIOME_DATABASE_BOOT = Symbol('biome-database-boot');
21
25
  function assertBiomeDatabaseModuleOptions(opts) {
22
26
  if (opts === null ||
23
27
  typeof opts !== 'object' ||
@@ -30,6 +34,13 @@ function assertBiomeDatabaseModuleOptions(opts) {
30
34
  opts.databases.length === 0) {
31
35
  throw new Error('[biome-database] every migration mode requires at least one explicit database declaration.');
32
36
  }
37
+ if (!('credentialGrant' in opts) || typeof opts.credentialGrant !== 'function') {
38
+ throw new Error('[biome-database] credentialGrant is required: a builder of the service\'s own grant for the org-database-pool.');
39
+ }
40
+ if (!('orgProtectionGrant' in opts) ||
41
+ typeof opts.orgProtectionGrant !== 'function') {
42
+ throw new Error('[biome-database] orgProtectionGrant is required: a builder of the service\'s own grant for identity-api\'s organization read (the org-erasure protection fence).');
43
+ }
33
44
  }
34
45
  let BiomeDatabaseModule = BiomeDatabaseModule_1 = class BiomeDatabaseModule {
35
46
  onApplicationShutdown() {
@@ -41,17 +52,18 @@ let BiomeDatabaseModule = BiomeDatabaseModule_1 = class BiomeDatabaseModule {
41
52
  return {
42
53
  module: BiomeDatabaseModule_1,
43
54
  global: true,
55
+ imports: [core_1.DiscoveryModule],
44
56
  providers: [
45
57
  {
46
- provide: exports.BIOME_DATABASE_READY,
47
- useFactory: async (identityBootstrap, kernelState, concurrency) => {
58
+ provide: BIOME_DATABASE_BOOT,
59
+ useFactory: async (identityBootstrap, kernelState, concurrency, discovery) => {
48
60
  const bootMode = opts.bootMode ??
49
61
  (0, boot_mode_1.biomeDatabaseBootModeFromEnv)(opts.env?.() ?? (0, scoped_env_1.scopedEnvView)('The biome database module'));
50
62
  if (bootMode === boot_mode_1.BiomeDatabaseBootMode.OpenApiExtraction) {
51
63
  if (concurrency !== undefined) {
52
64
  (0, pool_sizing_1.publishDeclaredBiomeDatabasePool)((0, pool_sizing_1.resolveBiomeDatabasePoolOptions)(concurrency));
53
65
  }
54
- return true;
66
+ return { extraction: true, owners: [] };
55
67
  }
56
68
  const pool = (0, pool_sizing_1.resolveBiomeDatabasePoolOptions)(concurrency);
57
69
  (0, pool_sizing_1.publishDeclaredBiomeDatabasePool)(pool);
@@ -64,28 +76,63 @@ let BiomeDatabaseModule = BiomeDatabaseModule_1 = class BiomeDatabaseModule {
64
76
  `${missing.join(' and ')} provider in the graph. Both are ` +
65
77
  'provided globally by `XemaServiceModule.forBiome(...)`; mount it.');
66
78
  }
79
+ const contributed = discovery
80
+ .getProviders()
81
+ .map((wrapper) => wrapper.instance)
82
+ .filter(sdk_owned_contribution_1.isSdkOwnedMigrationContribution)
83
+ .map((contribution) => contribution.set);
84
+ const sdkOwnedMigrations = (0, sdk_owned_contribution_1.mergeSdkOwnedMigrations)(contributed);
67
85
  await (0, bootstrap_1.bootstrapBiomeDatabases)({
68
86
  biomeId: opts.biomeId,
69
87
  concurrency: pool.concurrency,
70
88
  migrationMode: opts.migrationMode,
71
89
  databases,
72
90
  ...(opts.env !== undefined ? { env: opts.env } : {}),
91
+ sdkOwnedMigrations,
73
92
  ...(opts.requiredExtensions !== undefined
74
93
  ? { requiredExtensions: opts.requiredExtensions }
75
94
  : {}),
76
- serviceToken: () => identityBootstrap.getAccessToken(),
95
+ credentialGrant: opts.credentialGrant(identityBootstrap),
77
96
  kernelState,
78
97
  });
79
- return true;
98
+ return {
99
+ extraction: false,
100
+ owners: sdkOwnedMigrations.map((set) => set.owner),
101
+ };
80
102
  },
81
103
  inject: [
82
104
  { token: identity_client_1.IdentityBootstrapService, optional: true },
83
105
  { token: service_registry_nest_1.KERNEL_STATE_TOKEN, optional: true },
84
106
  { token: pool_sizing_1.BIOME_PROCESS_CONCURRENCY, optional: true },
107
+ core_1.DiscoveryService,
85
108
  ],
86
109
  },
110
+ {
111
+ provide: exports.BIOME_DATABASE_READY,
112
+ useFactory: () => true,
113
+ inject: [BIOME_DATABASE_BOOT],
114
+ },
115
+ {
116
+ provide: sdk_owned_contribution_1.APPLIED_SDK_OWNED_MIGRATIONS,
117
+ useFactory: (applied) => applied,
118
+ inject: [BIOME_DATABASE_BOOT],
119
+ },
120
+ {
121
+ provide: org_erasure_nest_1.ORG_PROTECTION_GRANT,
122
+ useFactory: (identityBootstrap) => {
123
+ if (identityBootstrap === undefined) {
124
+ return null;
125
+ }
126
+ return opts.orgProtectionGrant(identityBootstrap);
127
+ },
128
+ inject: [{ token: identity_client_1.IdentityBootstrapService, optional: true }],
129
+ },
130
+ ],
131
+ exports: [
132
+ exports.BIOME_DATABASE_READY,
133
+ sdk_owned_contribution_1.APPLIED_SDK_OWNED_MIGRATIONS,
134
+ org_erasure_nest_1.ORG_PROTECTION_GRANT,
87
135
  ],
88
- exports: [exports.BIOME_DATABASE_READY],
89
136
  };
90
137
  }
91
138
  };
@@ -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":"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"}
@@ -0,0 +1,25 @@
1
+ import type { SdkOwnedMigrationSet } from '../sdk-owned-migration-set';
2
+ import type { Provider } from '@nestjs/common';
3
+ declare const CONTRIBUTION_BRAND: unique symbol;
4
+ export interface SdkOwnedMigrationContribution {
5
+ readonly [CONTRIBUTION_BRAND]: true;
6
+ readonly set: SdkOwnedMigrationSet;
7
+ }
8
+ export interface AppliedSdkOwnedMigrations {
9
+ readonly extraction: boolean;
10
+ readonly owners: readonly string[];
11
+ }
12
+ export declare const APPLIED_SDK_OWNED_MIGRATIONS: unique symbol;
13
+ export declare class SdkOwnedMigrationsNotAppliedError extends Error {
14
+ readonly code = "SDK_OWNED_MIGRATIONS_NOT_APPLIED";
15
+ constructor(owner: string, reason: string);
16
+ }
17
+ export declare class SdkOwnedMigrationsConflictError extends Error {
18
+ readonly code = "SDK_OWNED_MIGRATIONS_CONFLICT";
19
+ constructor(owner: string);
20
+ }
21
+ export declare function contributeSdkOwnedMigrations(set: SdkOwnedMigrationSet): Provider[];
22
+ export declare function isSdkOwnedMigrationContribution(value: unknown): value is SdkOwnedMigrationContribution;
23
+ export declare function mergeSdkOwnedMigrations(contributed: readonly SdkOwnedMigrationSet[]): SdkOwnedMigrationSet[];
24
+ export {};
25
+ //# sourceMappingURL=sdk-owned-contribution.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sdk-owned-contribution.d.ts","sourceRoot":"","sources":["../../../src/lib/nest/sdk-owned-contribution.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AACvE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE/C,QAAA,MAAM,kBAAkB,eAEvB,CAAC;AAOF,MAAM,WAAW,6BAA6B;IAC5C,QAAQ,CAAC,CAAC,kBAAkB,CAAC,EAAE,IAAI,CAAC;IACpC,QAAQ,CAAC,GAAG,EAAE,oBAAoB,CAAC;CACpC;AAQD,MAAM,WAAW,yBAAyB;IAExC,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;IAC7B,QAAQ,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;CACpC;AAOD,eAAO,MAAM,4BAA4B,eAExC,CAAC;AAGF,qBAAa,iCAAkC,SAAQ,KAAK;IAC1D,SAAgB,IAAI,sCAAsC;gBAEvC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;CAOjD;AAGD,qBAAa,+BAAgC,SAAQ,KAAK;IACxD,SAAgB,IAAI,mCAAmC;gBAEpC,KAAK,EAAE,MAAM;CAOjC;AAUD,wBAAgB,4BAA4B,CAC1C,GAAG,EAAE,oBAAoB,GACxB,QAAQ,EAAE,CA8BZ;AAGD,wBAAgB,+BAA+B,CAC7C,KAAK,EAAE,OAAO,GACb,KAAK,IAAI,6BAA6B,CAMxC;AAOD,wBAAgB,uBAAuB,CACrC,WAAW,EAAE,SAAS,oBAAoB,EAAE,GAC3C,oBAAoB,EAAE,CAgBxB"}
@@ -0,0 +1,71 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SdkOwnedMigrationsConflictError = exports.SdkOwnedMigrationsNotAppliedError = exports.APPLIED_SDK_OWNED_MIGRATIONS = void 0;
4
+ exports.contributeSdkOwnedMigrations = contributeSdkOwnedMigrations;
5
+ exports.isSdkOwnedMigrationContribution = isSdkOwnedMigrationContribution;
6
+ exports.mergeSdkOwnedMigrations = mergeSdkOwnedMigrations;
7
+ const CONTRIBUTION_BRAND = Symbol.for('xema.biome-database-nest.sdk-owned-migration-contribution');
8
+ exports.APPLIED_SDK_OWNED_MIGRATIONS = Symbol.for('@xemahq/biome-database-nest:applied-sdk-owned-migrations');
9
+ class SdkOwnedMigrationsNotAppliedError extends Error {
10
+ code = 'SDK_OWNED_MIGRATIONS_NOT_APPLIED';
11
+ constructor(owner, reason) {
12
+ super(`[biome-database] SDK_OWNED_MIGRATIONS_NOT_APPLIED: the "${owner}" tables ` +
13
+ `were not created at boot: ${reason}`);
14
+ this.name = 'SdkOwnedMigrationsNotAppliedError';
15
+ }
16
+ }
17
+ exports.SdkOwnedMigrationsNotAppliedError = SdkOwnedMigrationsNotAppliedError;
18
+ class SdkOwnedMigrationsConflictError extends Error {
19
+ code = 'SDK_OWNED_MIGRATIONS_CONFLICT';
20
+ constructor(owner) {
21
+ super(`[biome-database] SDK_OWNED_MIGRATIONS_CONFLICT: two different migration ` +
22
+ `sets are contributed for the owner "${owner}".`);
23
+ this.name = 'SdkOwnedMigrationsConflictError';
24
+ }
25
+ }
26
+ exports.SdkOwnedMigrationsConflictError = SdkOwnedMigrationsConflictError;
27
+ function contributeSdkOwnedMigrations(set) {
28
+ const contribution = {
29
+ [CONTRIBUTION_BRAND]: true,
30
+ set,
31
+ };
32
+ return [
33
+ {
34
+ provide: Symbol(`sdk-owned-migrations:${set.owner}`),
35
+ useValue: contribution,
36
+ },
37
+ {
38
+ provide: Symbol(`sdk-owned-migrations-guard:${set.owner}`),
39
+ useFactory: (applied) => {
40
+ if (applied === undefined) {
41
+ throw new SdkOwnedMigrationsNotAppliedError(set.owner, 'no BiomeDatabaseModule (or XemaDatabaseModule) is mounted in this graph.');
42
+ }
43
+ if (!applied.extraction && !applied.owners.includes(set.owner)) {
44
+ throw new SdkOwnedMigrationsNotAppliedError(set.owner, 'the migration phase ran without them.');
45
+ }
46
+ return true;
47
+ },
48
+ inject: [{ token: exports.APPLIED_SDK_OWNED_MIGRATIONS, optional: true }],
49
+ },
50
+ ];
51
+ }
52
+ function isSdkOwnedMigrationContribution(value) {
53
+ return (typeof value === 'object' &&
54
+ value !== null &&
55
+ value[CONTRIBUTION_BRAND] === true);
56
+ }
57
+ function mergeSdkOwnedMigrations(contributed) {
58
+ const byOwner = new Map();
59
+ for (const set of contributed) {
60
+ const existing = byOwner.get(set.owner);
61
+ if (existing === undefined) {
62
+ byOwner.set(set.owner, set);
63
+ }
64
+ else if (existing !== set &&
65
+ JSON.stringify(existing) !== JSON.stringify(set)) {
66
+ throw new SdkOwnedMigrationsConflictError(set.owner);
67
+ }
68
+ }
69
+ return [...byOwner.values()].sort((a, b) => a.owner < b.owner ? -1 : a.owner > b.owner ? 1 : 0);
70
+ }
71
+ //# sourceMappingURL=sdk-owned-contribution.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sdk-owned-contribution.js","sourceRoot":"","sources":["../../../src/lib/nest/sdk-owned-contribution.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,6 @@
1
- import type { OperatorMigrationDatabase } from './operator-migration';
2
- export declare const OPERATOR_MIGRATION_LEDGER_DDL = "CREATE TABLE IF NOT EXISTS \"xema_operator_migrations\" (\n \"migration_id\" TEXT NOT NULL,\n \"phase\" TEXT NOT NULL,\n \"artifact_sha256\" CHAR(64) NOT NULL,\n \"completed_at\" TIMESTAMPTZ(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,\n CONSTRAINT \"xema_operator_migrations_pkey\" PRIMARY KEY (\"migration_id\", \"phase\"),\n CONSTRAINT \"xema_operator_migrations_id_ck\"\n CHECK (\"migration_id\" ~ '^[a-z][a-z0-9-]{0,126}$'),\n CONSTRAINT \"xema_operator_migrations_phase_ck\"\n CHECK (\"phase\" IN ('verified', 'contracted')),\n CONSTRAINT \"xema_operator_migrations_hash_ck\"\n CHECK (\"artifact_sha256\" ~ '^[a-f0-9]{64}$')\n)";
1
+ import { type OperatorMigrationDatabase } from './ledger-rows';
2
+ import { type SdkOwnedMigrationSet } from './sdk-owned-migration-set';
3
+ export declare const OPERATOR_MIGRATION_LEDGER_TABLE = "xema_operator_migrations";
4
+ export declare const operatorMigrationLedgerMigrations: SdkOwnedMigrationSet;
3
5
  export declare function ensureOperatorMigrationLedger(database: OperatorMigrationDatabase): Promise<void>;
4
6
  //# sourceMappingURL=operator-migration-ledger.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"operator-migration-ledger.d.ts","sourceRoot":"","sources":["../../src/lib/operator-migration-ledger.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAC;AAQtE,eAAO,MAAM,6BAA6B,yoBAYxC,CAAC;AA8BH,wBAAsB,6BAA6B,CACjD,QAAQ,EAAE,yBAAyB,GAClC,OAAO,CAAC,IAAI,CAAC,CA8Bf"}
1
+ {"version":3,"file":"operator-migration-ledger.d.ts","sourceRoot":"","sources":["../../src/lib/operator-migration-ledger.ts"],"names":[],"mappings":"AAAA,OAAO,EAML,KAAK,yBAAyB,EAC/B,MAAM,eAAe,CAAC;AAGvB,OAAO,EAGL,KAAK,oBAAoB,EAC1B,MAAM,2BAA2B,CAAC;AAInC,eAAO,MAAM,+BAA+B,6BAA6B,CAAC;AA4B1E,eAAO,MAAM,iCAAiC,EAAE,oBAwC/C,CAAC;AAwBF,wBAAsB,6BAA6B,CACjD,QAAQ,EAAE,yBAAyB,GAClC,OAAO,CAAC,IAAI,CAAC,CA4Df"}
@@ -1,41 +1,99 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.OPERATOR_MIGRATION_LEDGER_DDL = void 0;
3
+ exports.operatorMigrationLedgerMigrations = exports.OPERATOR_MIGRATION_LEDGER_TABLE = void 0;
4
4
  exports.ensureOperatorMigrationLedger = ensureOperatorMigrationLedger;
5
+ const ledger_rows_1 = require("./ledger-rows");
6
+ const owned_table_shape_1 = require("./owned-table-shape");
7
+ const sdk_owned_errors_1 = require("./sdk-owned-errors");
8
+ const sdk_owned_migration_set_1 = require("./sdk-owned-migration-set");
5
9
  const LEDGER_LOCK_KEY = 'xema:operator-migration-ledger';
6
- exports.OPERATOR_MIGRATION_LEDGER_DDL = `CREATE TABLE IF NOT EXISTS "xema_operator_migrations" (
7
- "migration_id" TEXT NOT NULL,
8
- "phase" TEXT NOT NULL,
9
- "artifact_sha256" CHAR(64) NOT NULL,
10
- "completed_at" TIMESTAMPTZ(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
10
+ exports.OPERATOR_MIGRATION_LEDGER_TABLE = 'xema_operator_migrations';
11
+ const LEDGER_MIGRATION = {
12
+ version: '0001-operator-migration-ledger',
13
+ creates: [exports.OPERATOR_MIGRATION_LEDGER_TABLE],
14
+ sql: `
15
+ CREATE TABLE "xema_operator_migrations" (
16
+ "migration_id" TEXT NOT NULL,
17
+ "phase" TEXT NOT NULL,
18
+ "artifact_sha256" CHAR(64) NOT NULL,
19
+ "completed_at" TIMESTAMPTZ(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
11
20
  CONSTRAINT "xema_operator_migrations_pkey" PRIMARY KEY ("migration_id", "phase"),
12
21
  CONSTRAINT "xema_operator_migrations_id_ck"
13
22
  CHECK ("migration_id" ~ '^[a-z][a-z0-9-]{0,126}$'),
14
23
  CONSTRAINT "xema_operator_migrations_phase_ck"
15
- CHECK ("phase" IN ('verified', 'contracted')),
24
+ CHECK ("phase" IN ('verified', 'contracted', 'applied')),
16
25
  CONSTRAINT "xema_operator_migrations_hash_ck"
17
26
  CHECK ("artifact_sha256" ~ '^[a-f0-9]{64}$')
18
- )`;
19
- const COMPLETED_AT_TYPE_SQL = `SELECT format_type(a.atttypid, a.atttypmod) AS type
20
- FROM pg_attribute a
21
- WHERE a.attrelid = to_regclass('"xema_operator_migrations"')
22
- AND a.attname = 'completed_at'
23
- AND NOT a.attisdropped`;
24
- const COMPLETED_AT_CONVERT_SQL = `ALTER TABLE "xema_operator_migrations"
25
- ALTER COLUMN "completed_at" TYPE timestamptz(3)
26
- USING "completed_at" AT TIME ZONE 'UTC'`;
27
+ );
28
+ `,
29
+ };
30
+ exports.operatorMigrationLedgerMigrations = {
31
+ owner: 'biome-database',
32
+ migrations: [LEDGER_MIGRATION],
33
+ tables: [
34
+ {
35
+ name: exports.OPERATOR_MIGRATION_LEDGER_TABLE,
36
+ columns: [
37
+ { name: 'migration_id', type: 'text', notNull: true, default: null },
38
+ { name: 'phase', type: 'text', notNull: true, default: null },
39
+ {
40
+ name: 'artifact_sha256',
41
+ type: 'character(64)',
42
+ notNull: true,
43
+ default: null,
44
+ },
45
+ {
46
+ name: 'completed_at',
47
+ type: 'timestamp(3) with time zone',
48
+ notNull: true,
49
+ default: 'CURRENT_TIMESTAMP',
50
+ },
51
+ ],
52
+ primaryKey: ['migration_id', 'phase'],
53
+ checks: [
54
+ {
55
+ name: 'xema_operator_migrations_id_ck',
56
+ definition: `CHECK ((migration_id ~ '^[a-z][a-z0-9-]{0,126}$'::text))`,
57
+ },
58
+ {
59
+ name: 'xema_operator_migrations_phase_ck',
60
+ definition: `CHECK ((phase = ANY (ARRAY['verified'::text, 'contracted'::text, 'applied'::text])))`,
61
+ },
62
+ {
63
+ name: 'xema_operator_migrations_hash_ck',
64
+ definition: `CHECK ((artifact_sha256 ~ '^[a-f0-9]{64}$'::text))`,
65
+ },
66
+ ],
67
+ indexes: [],
68
+ },
69
+ ],
70
+ };
71
+ const LEDGER_MIGRATION_ID = (0, sdk_owned_migration_set_1.sdkOwnedMigrationId)(exports.operatorMigrationLedgerMigrations.owner, LEDGER_MIGRATION.version);
27
72
  const ensuredDatabases = new WeakSet();
28
73
  async function ensureOperatorMigrationLedger(database) {
29
74
  if (ensuredDatabases.has(database)) {
30
75
  return;
31
76
  }
77
+ const artifactSha256 = (0, ledger_rows_1.sha256)(LEDGER_MIGRATION.sql);
32
78
  await database.query('BEGIN');
33
79
  try {
34
80
  await database.query(`SELECT pg_advisory_xact_lock(hashtextextended($1, 0))`, [LEDGER_LOCK_KEY]);
35
- await database.query(exports.OPERATOR_MIGRATION_LEDGER_DDL);
36
- const column = await database.query(COMPLETED_AT_TYPE_SQL);
37
- if (/^timestamp(\(\d+\))? without time zone$/u.test(column.rows[0]?.type ?? '')) {
38
- await database.query(COMPLETED_AT_CONVERT_SQL);
81
+ const created = !(await (0, owned_table_shape_1.ownedTableExists)(database, exports.OPERATOR_MIGRATION_LEDGER_TABLE));
82
+ if (created) {
83
+ await database.query(LEDGER_MIGRATION.sql);
84
+ }
85
+ for (const table of exports.operatorMigrationLedgerMigrations.tables) {
86
+ await (0, owned_table_shape_1.assertOwnedTableShape)(database, table);
87
+ }
88
+ if (created) {
89
+ await (0, ledger_rows_1.recordPhase)(database, LEDGER_MIGRATION_ID, ledger_rows_1.OperatorMigrationPhase.Applied, artifactSha256);
90
+ }
91
+ else {
92
+ const recorded = await (0, ledger_rows_1.readPhase)(database, LEDGER_MIGRATION_ID, ledger_rows_1.OperatorMigrationPhase.Applied);
93
+ if (recorded === null) {
94
+ throw new sdk_owned_errors_1.SdkOwnedTableNotCreatedByOwnerError(exports.OPERATOR_MIGRATION_LEDGER_TABLE, exports.operatorMigrationLedgerMigrations.owner);
95
+ }
96
+ (0, ledger_rows_1.assertArtifactMatches)(LEDGER_MIGRATION_ID, ledger_rows_1.OperatorMigrationPhase.Applied, recorded, artifactSha256);
39
97
  }
40
98
  await database.query('COMMIT');
41
99
  }
@@ -1 +1 @@
1
- {"version":3,"file":"operator-migration-ledger.js","sourceRoot":"","sources":["../../src/lib/operator-migration-ledger.ts"],"names":[],"mappings":";;;AAkDA,sEAgCC;AAhFD,MAAM,eAAe,GAAG,gCAAgC,CAAC;AAM5C,QAAA,6BAA6B,GAAG;;;;;;;;;;;;EAY3C,CAAC;AAGH,MAAM,qBAAqB,GAAG;;;;2BAIH,CAAC;AAO5B,MAAM,wBAAwB,GAAG;;0CAES,CAAC;AAE3C,MAAM,gBAAgB,GAAG,IAAI,OAAO,EAA6B,CAAC;AAY3D,KAAK,UAAU,6BAA6B,CACjD,QAAmC;IAEnC,IAAI,gBAAgB,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;QACnC,OAAO;IACT,CAAC;IACD,MAAM,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAC9B,IAAI,CAAC;QACH,MAAM,QAAQ,CAAC,KAAK,CAClB,uDAAuD,EACvD,CAAC,eAAe,CAAC,CAClB,CAAC;QACF,MAAM,QAAQ,CAAC,KAAK,CAAC,qCAA6B,CAAC,CAAC;QACpD,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,KAAK,CACjC,qBAAqB,CACtB,CAAC;QACF,IAAI,0CAA0C,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,IAAI,EAAE,CAAC,EAAE,CAAC;YAChF,MAAM,QAAQ,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC;QACjD,CAAC;QACD,MAAM,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IACjC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,CAAC;YACH,MAAM,QAAQ,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QACnC,CAAC;QAAC,OAAO,aAAa,EAAE,CAAC;YACvB,MAAM,IAAI,cAAc,CACtB,CAAC,KAAK,EAAE,aAAa,CAAC,EACtB,yFAAyF,CAC1F,CAAC;QACJ,CAAC;QACD,MAAM,KAAK,CAAC;IACd,CAAC;IACD,gBAAgB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;AACjC,CAAC"}
1
+ {"version":3,"file":"operator-migration-ledger.js","sourceRoot":"","sources":["../../src/lib/operator-migration-ledger.ts"],"names":[],"mappings":"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"}
@@ -1,17 +1,11 @@
1
- import { Client, type QueryResult, type QueryResultRow } from 'pg';
1
+ import { Client } from 'pg';
2
+ import { assertArtifactMatches, OperatorMigrationPhase, readPhase, recordPhase, sha256, type OperatorMigrationDatabase } from './ledger-rows';
2
3
  export declare enum OperatorMigrationMode {
3
4
  DryRun = "dry-run",
4
5
  Apply = "apply",
5
6
  Verify = "verify",
6
7
  Contract = "contract"
7
8
  }
8
- export declare enum OperatorMigrationPhase {
9
- Verified = "verified",
10
- Contracted = "contracted"
11
- }
12
- export interface OperatorMigrationDatabase {
13
- query<R extends QueryResultRow = QueryResultRow>(queryText: string, values?: unknown[]): Promise<QueryResult<R>>;
14
- }
15
9
  export interface VerifyOperatorMigrationOptions {
16
10
  readonly database: OperatorMigrationDatabase;
17
11
  readonly migrationId: string;
@@ -45,4 +39,6 @@ export declare function verifyOperatorMigration(options: VerifyOperatorMigration
45
39
  export declare function contractOperatorMigration(options: ContractOperatorMigrationOptions): Promise<{
46
40
  readonly artifactSha256: string;
47
41
  }>;
42
+ export declare function inMigrationTransaction(database: OperatorMigrationDatabase, migrationId: string, work: (database: OperatorMigrationDatabase) => Promise<void>): Promise<void>;
43
+ export { assertArtifactMatches, OperatorMigrationPhase, readPhase, recordPhase, sha256, type OperatorMigrationDatabase, };
48
44
  //# sourceMappingURL=operator-migration.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"operator-migration.d.ts","sourceRoot":"","sources":["../../src/lib/operator-migration.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,MAAM,EAAE,KAAK,WAAW,EAAE,KAAK,cAAc,EAAE,MAAM,IAAI,CAAC;AAKnE,oBAAY,qBAAqB;IAC/B,MAAM,YAAY;IAClB,KAAK,UAAU;IACf,MAAM,WAAW;IACjB,QAAQ,aAAa;CACtB;AAED,oBAAY,sBAAsB;IAChC,QAAQ,aAAa;IACrB,UAAU,eAAe;CAC1B;AAED,MAAM,WAAW,yBAAyB;IACxC,KAAK,CAAC,CAAC,SAAS,cAAc,GAAG,cAAc,EAC7C,SAAS,EAAE,MAAM,EACjB,MAAM,CAAC,EAAE,OAAO,EAAE,GACjB,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;CAC5B;AAED,MAAM,WAAW,8BAA8B;IAC7C,QAAQ,CAAC,QAAQ,EAAE,yBAAyB,CAAC;IAC7C,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,oBAAoB,EAAE,MAAM,CAAC;IACtC,QAAQ,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,yBAAyB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CACzE;AAED,MAAM,WAAW,gCAAgC;IAC/C,QAAQ,CAAC,QAAQ,EAAE,yBAAyB,CAAC;IAC7C,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;CACjC;AAED,MAAM,WAAW,gCAAgC,CAAC,CAAC;IACjD,QAAQ,CAAC,QAAQ,EAAE,yBAAyB,CAAC;IAC7C,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,yBAAyB,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;CACnE;AAED,MAAM,WAAW,kCAAkC;IAEjD,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;CACpC;AAED,MAAM,WAAW,2BAA2B,CAAC,CAAC,CAC5C,SAAQ,kCAAkC;IAC1C,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;CAChD;AAMD,wBAAgB,0BAA0B,CACxC,IAAI,EAAE,SAAS,MAAM,EAAE,GACtB,qBAAqB,CAgBvB;AAgCD,wBAAsB,2BAA2B,CAC/C,OAAO,GAAE,kCAAuC,GAC/C,OAAO,CAAC,MAAM,CAAC,CAajB;AASD,wBAAsB,oBAAoB,CAAC,CAAC,EAC1C,OAAO,EAAE,2BAA2B,CAAC,CAAC,CAAC,GACtC,OAAO,CAAC,CAAC,CAAC,CAgBZ;AAUD,wBAAsB,yBAAyB,CAAC,CAAC,EAC/C,OAAO,EAAE,gCAAgC,CAAC,CAAC,CAAC,GAC3C,OAAO,CAAC,CAAC,CAAC,CAsBZ;AAED,wBAAsB,uBAAuB,CAC3C,OAAO,EAAE,8BAA8B,GACtC,OAAO,CAAC;IAAE,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAA;CAAE,CAAC,CAgB9C;AAED,wBAAsB,yBAAyB,CAC7C,OAAO,EAAE,gCAAgC,GACxC,OAAO,CAAC;IAAE,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAA;CAAE,CAAC,CAmC9C"}
1
+ {"version":3,"file":"operator-migration.d.ts","sourceRoot":"","sources":["../../src/lib/operator-migration.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,IAAI,CAAC;AAE5B,OAAO,EACL,qBAAqB,EACrB,sBAAsB,EACtB,SAAS,EACT,WAAW,EACX,MAAM,EACN,KAAK,yBAAyB,EAC/B,MAAM,eAAe,CAAC;AAIvB,oBAAY,qBAAqB;IAC/B,MAAM,YAAY;IAClB,KAAK,UAAU;IACf,MAAM,WAAW;IACjB,QAAQ,aAAa;CACtB;AAED,MAAM,WAAW,8BAA8B;IAC7C,QAAQ,CAAC,QAAQ,EAAE,yBAAyB,CAAC;IAC7C,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,oBAAoB,EAAE,MAAM,CAAC;IACtC,QAAQ,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,yBAAyB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CACzE;AAED,MAAM,WAAW,gCAAgC;IAC/C,QAAQ,CAAC,QAAQ,EAAE,yBAAyB,CAAC;IAC7C,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;CACjC;AAED,MAAM,WAAW,gCAAgC,CAAC,CAAC;IACjD,QAAQ,CAAC,QAAQ,EAAE,yBAAyB,CAAC;IAC7C,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,yBAAyB,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;CACnE;AAED,MAAM,WAAW,kCAAkC;IAEjD,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;CACpC;AAED,MAAM,WAAW,2BAA2B,CAAC,CAAC,CAC5C,SAAQ,kCAAkC;IAC1C,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;CAChD;AAKD,wBAAgB,0BAA0B,CACxC,IAAI,EAAE,SAAS,MAAM,EAAE,GACtB,qBAAqB,CAgBvB;AAgCD,wBAAsB,2BAA2B,CAC/C,OAAO,GAAE,kCAAuC,GAC/C,OAAO,CAAC,MAAM,CAAC,CAajB;AASD,wBAAsB,oBAAoB,CAAC,CAAC,EAC1C,OAAO,EAAE,2BAA2B,CAAC,CAAC,CAAC,GACtC,OAAO,CAAC,CAAC,CAAC,CAgBZ;AAUD,wBAAsB,yBAAyB,CAAC,CAAC,EAC/C,OAAO,EAAE,gCAAgC,CAAC,CAAC,CAAC,GAC3C,OAAO,CAAC,CAAC,CAAC,CAsBZ;AAED,wBAAsB,uBAAuB,CAC3C,OAAO,EAAE,8BAA8B,GACtC,OAAO,CAAC;IAAE,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAA;CAAE,CAAC,CAgB9C;AAED,wBAAsB,yBAAyB,CAC7C,OAAO,EAAE,gCAAgC,GACxC,OAAO,CAAC;IAAE,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAA;CAAE,CAAC,CAmC9C;AAED,wBAAsB,sBAAsB,CAC1C,QAAQ,EAAE,yBAAyB,EACnC,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE,CAAC,QAAQ,EAAE,yBAAyB,KAAK,OAAO,CAAC,IAAI,CAAC,GAC3D,OAAO,CAAC,IAAI,CAAC,CAuBf;AAgDD,OAAO,EACL,qBAAqB,EACrB,sBAAsB,EACtB,SAAS,EACT,WAAW,EACX,MAAM,EACN,KAAK,yBAAyB,GAC/B,CAAC"}