@betterportal/config-manager 10.6.25 → 10.6.26

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 (38) hide show
  1. package/lib/.bsb/clients/service-betterportal-config-manager.d.ts +1 -1
  2. package/lib/.bsb/clients/service-betterportal-config-manager.js +1 -1
  3. package/lib/bp-contracts/org.betterportal.config-manager.json +1 -1
  4. package/lib/plugins/service-betterportal-config-manager/adminApi.d.ts +1 -0
  5. package/lib/plugins/service-betterportal-config-manager/adminApi.d.ts.map +1 -1
  6. package/lib/plugins/service-betterportal-config-manager/adminApi.js +239 -191
  7. package/lib/plugins/service-betterportal-config-manager/adminApi.js.map +1 -1
  8. package/lib/plugins/service-betterportal-config-manager/bp-routes/preview-environments/_renderer.bootstrap5/GET.js +2 -2
  9. package/lib/plugins/service-betterportal-config-manager/bp-routes/preview-environments/_renderer.bootstrap5/GET.js.map +1 -1
  10. package/lib/plugins/service-betterportal-config-manager/bp-routes/routes/_renderer.bootstrap5/GET.d.ts.map +1 -1
  11. package/lib/plugins/service-betterportal-config-manager/bp-routes/routes/_renderer.bootstrap5/GET.js +20 -19
  12. package/lib/plugins/service-betterportal-config-manager/bp-routes/routes/_renderer.bootstrap5/GET.js.map +1 -1
  13. package/lib/plugins/service-betterportal-config-manager/index.d.ts +0 -1
  14. package/lib/plugins/service-betterportal-config-manager/index.d.ts.map +1 -1
  15. package/lib/plugins/service-betterportal-config-manager/index.js +3 -5
  16. package/lib/plugins/service-betterportal-config-manager/index.js.map +1 -1
  17. package/lib/plugins/service-betterportal-config-manager/previewEnvironments.d.ts.map +1 -1
  18. package/lib/plugins/service-betterportal-config-manager/previewEnvironments.js +1 -0
  19. package/lib/plugins/service-betterportal-config-manager/previewEnvironments.js.map +1 -1
  20. package/lib/plugins/service-betterportal-config-manager/storage/core.d.ts +3 -1
  21. package/lib/plugins/service-betterportal-config-manager/storage/core.d.ts.map +1 -1
  22. package/lib/plugins/service-betterportal-config-manager/storage/core.js +23 -9
  23. package/lib/plugins/service-betterportal-config-manager/storage/core.js.map +1 -1
  24. package/lib/plugins/service-betterportal-config-manager/storage/entities.d.ts +20 -0
  25. package/lib/plugins/service-betterportal-config-manager/storage/entities.d.ts.map +1 -0
  26. package/lib/plugins/service-betterportal-config-manager/storage/entities.js +162 -0
  27. package/lib/plugins/service-betterportal-config-manager/storage/entities.js.map +1 -0
  28. package/lib/plugins/service-betterportal-config-manager/storage/postgres.d.ts +7 -0
  29. package/lib/plugins/service-betterportal-config-manager/storage/postgres.d.ts.map +1 -1
  30. package/lib/plugins/service-betterportal-config-manager/storage/postgres.js +201 -56
  31. package/lib/plugins/service-betterportal-config-manager/storage/postgres.js.map +1 -1
  32. package/lib/plugins/service-betterportal-config-manager/tenantManagement.d.ts +2 -0
  33. package/lib/plugins/service-betterportal-config-manager/tenantManagement.d.ts.map +1 -1
  34. package/lib/plugins/service-betterportal-config-manager/tenantManagement.js +13 -2
  35. package/lib/plugins/service-betterportal-config-manager/tenantManagement.js.map +1 -1
  36. package/lib/schemas/service-betterportal-config-manager.json +1 -1
  37. package/lib/schemas/service-betterportal-config-manager.plugin.json +1 -1
  38. package/package.json +3 -3
@@ -5,13 +5,14 @@ import { Pool } from "pg";
5
5
  import * as yaml from "yaml";
6
6
  import { BetterPortalConfigSchema } from "@betterportal/framework";
7
7
  import { BaseStorage, ConfigRevisionConflictError, hashApiKey, migrateOfficialPluginIds, migrateRouteOperations, migrateRouteParamSyntax } from "./core.js";
8
+ import { assembleConfig, changedEntityKeys, entityClaims, entityReferences, keyOf, splitConfig } from "./entities.js";
8
9
  function quotePgIdent(identifier) {
9
10
  if (!/^[a-z_][a-z0-9_]*$/i.test(identifier))
10
11
  throw new Error(`Invalid PostgreSQL identifier: ${identifier}`);
11
12
  return `"${identifier.replace(/"/g, "\"\"")}"`;
12
13
  }
13
14
  export { ConfigRevisionConflictError } from "./core.js";
14
- const SCHEMA_VERSION = 1;
15
+ const SCHEMA_VERSION = 2;
15
16
  export class PostgresStorage extends BaseStorage {
16
17
  backend = "postgres";
17
18
  connectionString;
@@ -24,6 +25,9 @@ export class PostgresStorage extends BaseStorage {
24
25
  deliveriesTable;
25
26
  outboxTable;
26
27
  activityTable;
28
+ entitiesTable;
29
+ referencesTable;
30
+ revisionSequence;
27
31
  activityLoad;
28
32
  activityLoadedAt = 0;
29
33
  pool = null;
@@ -46,6 +50,9 @@ export class PostgresStorage extends BaseStorage {
46
50
  this.deliveriesTable = quotePgIdent(`${this.tableName}_webhook_deliveries`);
47
51
  this.outboxTable = quotePgIdent(`${this.tableName}_outbox`);
48
52
  this.activityTable = quotePgIdent(`${this.tableName}_activity`);
53
+ this.entitiesTable = quotePgIdent(`${this.tableName}_entities`);
54
+ this.referencesTable = quotePgIdent(`${this.tableName}_references`);
55
+ this.revisionSequence = quotePgIdent(`${this.tableName}_entity_revision`);
49
56
  }
50
57
  async initialize(paths = {}) {
51
58
  this.legacyPaths = paths;
@@ -63,7 +70,7 @@ export class PostgresStorage extends BaseStorage {
63
70
  this.configLoad = null;
64
71
  return this.loadConfig();
65
72
  }
66
- this.cachedConfig = { config: loaded.config, revision: loaded.revision };
73
+ this.cachedConfig = loaded;
67
74
  return this.cloneSnapshot(this.cachedConfig);
68
75
  }
69
76
  finally {
@@ -73,63 +80,125 @@ export class PostgresStorage extends BaseStorage {
73
80
  }
74
81
  async saveConfig(config, options) {
75
82
  await this.ensureSchema();
76
- const validated = this.parseConfig(config);
77
- this.validateConfigReferences(validated);
78
- const expectedRevision = this.snapshots.get(config);
83
+ const baseline = this.snapshots.get(config);
84
+ if (!baseline)
85
+ throw new Error("Config must be loaded from this store before saving; detached whole-platform replacements are not supported");
86
+ const proposed = splitConfig(this.parseConfig(config));
87
+ // Cached manifests belong to their concrete service registration. Deleting
88
+ // a registration also deletes its known cache, whichever API initiated it.
89
+ for (const [key, entity] of proposed)
90
+ if (entity.kind === "manifestCache") {
91
+ if (entityReferences(entity, baseline.entities).some(ref => !proposed.has(ref)))
92
+ proposed.delete(key);
93
+ }
94
+ const changed = changedEntityKeys(baseline.entities, proposed);
79
95
  const client = await this.getPool().connect();
80
96
  try {
81
97
  await client.query("begin");
82
98
  if (options?.completeAction)
83
99
  await this.finishAction(client, options.completeAction);
84
- const current = await client.query(`select config, revision from ${this.quotedTableName} where id = $1 for update`, [this.rowId]);
85
- if (!current.rows[0])
86
- throw new Error(`Platform config row ${this.rowId} was not initialized`);
87
- const currentRevision = Number(current.rows[0].revision);
88
- if (expectedRevision !== undefined && expectedRevision !== currentRevision) {
89
- this.invalidate();
90
- throw new ConfigRevisionConflictError(expectedRevision, currentRevision);
100
+ // Shared dependency locks allow two apps in a tenant to save concurrently.
101
+ // Exclusive locks cover only changed entities and their uniqueness claims.
102
+ const locks = new Map();
103
+ const dependencies = new Set();
104
+ for (const key of changed) {
105
+ locks.set(key, true);
106
+ for (const entities of [baseline.entities, proposed]) {
107
+ const entity = entities.get(key);
108
+ if (!entity)
109
+ continue;
110
+ for (const claim of entityClaims(entity))
111
+ locks.set(claim, true);
112
+ for (const ref of entityReferences(entity, entities)) {
113
+ dependencies.add(ref);
114
+ if (!locks.has(ref))
115
+ locks.set(ref, false);
116
+ }
117
+ }
91
118
  }
92
- // Presence belongs to an installed identity, not merely its reusable service ID.
93
- const services = new Map(validated.tenants.flatMap(tenant => tenant.services.map(service => [service.id, service])));
119
+ for (const [key, exclusive] of [...locks].sort(([a], [b]) => a < b ? -1 : a > b ? 1 : 0)) {
120
+ await client.query(`select ${exclusive ? "pg_advisory_xact_lock" : "pg_advisory_xact_lock_shared"}(hashtextextended($1, 0))`, [JSON.stringify([this.tableName, this.rowId, key])]);
121
+ }
122
+ const current = await this.readSnapshot(client);
123
+ for (const key of new Set([...changed, ...dependencies])) {
124
+ const expected = baseline.revisions.get(key) ?? 0;
125
+ const actual = current.revisions.get(key) ?? 0;
126
+ if (expected !== actual) {
127
+ this.invalidate();
128
+ throw new ConfigRevisionConflictError(expected, actual, key);
129
+ }
130
+ }
131
+ const merged = new Map(current.entities);
132
+ for (const key of changed) {
133
+ const entity = proposed.get(key);
134
+ if (entity)
135
+ merged.set(key, entity);
136
+ else
137
+ merged.delete(key);
138
+ }
139
+ // A sync may have created a cache after the deletion snapshot was loaded.
140
+ // Reject that stale deletion before reaching the FK; a fresh retry includes
141
+ // the cache in its deletion set and locks both records in canonical order.
142
+ for (const entity of merged.values())
143
+ if (entity.kind === "manifestCache") {
144
+ const removed = entityReferences(entity, current.entities).find(ref => !merged.has(ref));
145
+ if (removed) {
146
+ this.invalidate();
147
+ throw new ConfigRevisionConflictError(baseline.revisions.get(keyOf(entity)) ?? 0, current.revisions.get(keyOf(entity)) ?? 0, keyOf(entity));
148
+ }
149
+ }
150
+ const validated = this.parseConfig(assembleConfig(merged.values()));
151
+ this.validateConfigReferences(validated);
152
+ // Validate uniqueness against the current committed state, under claim locks.
153
+ const claims = new Set();
154
+ for (const entity of merged.values())
155
+ for (const claim of entityClaims(entity)) {
156
+ if (claims.has(claim))
157
+ throw new Error(`Configuration uniqueness conflict: ${claim}`);
158
+ claims.add(claim);
159
+ }
94
160
  const resetActivity = [];
95
- for (const previous of current.rows[0].config.tenants.flatMap(tenant => tenant.services)) {
161
+ const services = new Map(validated.tenants.flatMap(tenant => tenant.services.map(service => [service.id, service])));
162
+ for (const previous of current.config.tenants.flatMap(tenant => tenant.services)) {
96
163
  const next = services.get(previous.id);
97
- if (!next || previous.apiKeyHash !== next.apiKeyHash || previous.hostname !== next.hostname
98
- || (previous.lastSeenAt && !next.lastSeenAt) || (previous.lastSyncAt && !next.lastSyncAt)) {
164
+ if (!next || previous.apiKeyHash !== next.apiKeyHash || previous.hostname !== next.hostname)
99
165
  resetActivity.push(previous.id);
100
- if (next) {
101
- delete next.lastSeenAt;
102
- delete next.lastSyncAt;
103
- }
104
- }
105
166
  }
106
167
  if (resetActivity.length)
107
168
  await client.query(`delete from ${this.activityTable} where scope_id = $1 and service_id = any($2::text[])`, [this.rowId, resetActivity]);
108
- const previousManifests = new Map(current.rows[0].config.manifestCache.map(entry => [entry.serviceId, entry.fetchedAt]));
109
- const refreshedManifests = validated.manifestCache.filter(entry => entry.fetchedAt !== previousManifests.get(entry.serviceId));
110
- if (refreshedManifests.length) {
111
- // Readiness compares manifest acceptance with delivery; both must use the DB clock.
169
+ const refreshed = changed.map(key => merged.get(key)).filter(entity => entity?.kind === "manifestCache");
170
+ if (refreshed.length) {
112
171
  const clock = await client.query("select clock_timestamp() as now");
113
- const fetchedAt = clock.rows[0].now.toISOString();
114
- for (const entry of refreshedManifests)
115
- entry.fetchedAt = fetchedAt;
172
+ for (const entity of refreshed)
173
+ entity.value.fetchedAt = clock.rows[0].now.toISOString();
116
174
  }
117
- const revision = currentRevision + 1;
118
- await client.query(`update ${this.quotedTableName} set config = $2::jsonb, revision = $3, updated_at = now() where id = $1`, [this.rowId, JSON.stringify(validated), revision]);
119
- // Every persisted revision invalidates replica snapshots. Presence has its own table.
120
- await this.insertOutbox(client, "broadcast", "platform-config.changed", { revision });
121
- await client.query("commit");
122
- for (const entry of refreshedManifests) {
123
- const submitted = config.manifestCache.find(candidate => candidate.serviceId === entry.serviceId);
124
- if (submitted)
125
- submitted.fetchedAt = entry.fetchedAt;
175
+ for (const key of changed) {
176
+ const entity = merged.get(key) ?? baseline.entities.get(key);
177
+ await client.query(`delete from ${this.referencesTable} where scope_id = $1 and kind = $2 and entity_id = $3`, [this.rowId, entity.kind, entity.id]);
178
+ if (merged.has(key)) {
179
+ await client.query(`insert into ${this.entitiesTable} (scope_id, kind, entity_id, value, revision)
180
+ values ($1, $2, $3, $4::jsonb, nextval('${this.revisionSequence}'))
181
+ on conflict (scope_id, kind, entity_id) do update set value = excluded.value, revision = excluded.revision`, [this.rowId, entity.kind, entity.id, JSON.stringify(entity.value)]);
182
+ }
183
+ else
184
+ await client.query(`delete from ${this.entitiesTable} where scope_id = $1 and kind = $2 and entity_id = $3`, [this.rowId, entity.kind, entity.id]);
185
+ }
186
+ for (const key of changed) {
187
+ const entity = merged.get(key);
188
+ if (entity)
189
+ await this.writeReferences(client, entity, merged);
126
190
  }
127
- this.activityLoad = undefined;
128
- this.snapshots.set(config, revision);
129
- this.snapshots.set(validated, revision);
130
- this.configGeneration++;
131
- this.cachedConfig = { config: structuredClone(validated), revision };
132
- super.invalidate();
191
+ if (changed.length) {
192
+ const result = await client.query(`select nextval('${this.revisionSequence}') as revision`);
193
+ await this.insertOutbox(client, "broadcast", "platform-config.changed", { revision: Number(result.rows[0].revision) });
194
+ }
195
+ const committed = await this.readSnapshot(client);
196
+ await client.query("commit");
197
+ // Update the caller's baseline as well as its value: subsequent saves must
198
+ // not mistake concurrent edits included in this commit for user deletions.
199
+ Object.assign(config, structuredClone(committed.config));
200
+ this.snapshots.set(config, committed);
201
+ this.invalidate();
133
202
  }
134
203
  catch (error) {
135
204
  await client.query("rollback").catch(() => undefined);
@@ -139,6 +208,13 @@ export class PostgresStorage extends BaseStorage {
139
208
  client.release();
140
209
  }
141
210
  }
211
+ async writeReferences(client, entity, entities) {
212
+ for (const ref of entityReferences(entity, entities)) {
213
+ const [kind, id] = JSON.parse(ref);
214
+ await client.query(`insert into ${this.referencesTable} (scope_id, kind, entity_id, target_kind, target_id)
215
+ values ($1, $2, $3, $4, $5)`, [this.rowId, entity.kind, entity.id, kind, id]);
216
+ }
217
+ }
142
218
  invalidate() {
143
219
  this.configGeneration++;
144
220
  this.cachedConfig = null;
@@ -167,19 +243,25 @@ export class PostgresStorage extends BaseStorage {
167
243
  }
168
244
  return structuredClone(this.credentialIndex.entries.get(hashApiKey(apiKey)) ?? null);
169
245
  }
246
+ async readSnapshot(connection) {
247
+ const result = await connection.query(`select kind, entity_id, value, revision from ${this.entitiesTable} where scope_id = $1 order by ordinal`, [this.rowId]);
248
+ if (!result.rows.some(row => row.kind === "settings"))
249
+ throw new Error(`Config scope ${this.rowId} was not initialized`);
250
+ const rows = result.rows.map(row => ({ ...row, id: row.entity_id }));
251
+ const previewConfigs = new Set(rows.filter(row => row.kind === "previewConfigs").map(row => row.id));
252
+ for (const row of rows)
253
+ if (row.kind === "previewEnvironmentDeployments" && !previewConfigs.has(row.id)) {
254
+ throw new Error(`Persisted preview ${row.id} is missing its effective configuration`);
255
+ }
256
+ const config = this.parseConfig(assembleConfig(rows));
257
+ return { config, entities: splitConfig(config), revisions: new Map(rows.map(row => [keyOf(row), Number(row.revision)])) };
258
+ }
170
259
  async readConfig(generation) {
171
- const result = await this.getPool().query(`select config, revision from ${this.quotedTableName} where id = $1`, [this.rowId]);
172
- if (!result.rows[0])
173
- throw new Error(`Platform config row ${this.rowId} was not initialized`);
174
- return {
175
- config: this.parseConfig(result.rows[0].config),
176
- revision: Number(result.rows[0].revision),
177
- generation
178
- };
260
+ return { ...await this.readSnapshot(this.getPool()), generation };
179
261
  }
180
262
  async cloneSnapshot(snapshot) {
181
263
  const config = structuredClone(snapshot.config);
182
- this.snapshots.set(config, snapshot.revision);
264
+ this.snapshots.set(config, snapshot);
183
265
  const activity = await this.loadServiceActivity();
184
266
  for (const tenant of config.tenants)
185
267
  for (const service of tenant.services) {
@@ -187,6 +269,7 @@ export class PostgresStorage extends BaseStorage {
187
269
  }
188
270
  return config;
189
271
  }
272
+ async close() { await this.pool?.end(); }
190
273
  async touchServiceActivity(serviceId, field) {
191
274
  await this.ensureSchema();
192
275
  const column = field === "lastSeenAt" ? "last_seen_at" : "last_sync_at";
@@ -430,7 +513,7 @@ export class PostgresStorage extends BaseStorage {
430
513
  }
431
514
  async migrate() {
432
515
  const client = await this.getPool().connect();
433
- const lockName = `${this.tableName}:${this.rowId}:migrations`;
516
+ const lockName = `${this.tableName}:migrations`;
434
517
  try {
435
518
  await client.query("select pg_advisory_lock(hashtext($1))", [lockName]);
436
519
  await client.query("begin");
@@ -464,11 +547,12 @@ export class PostgresStorage extends BaseStorage {
464
547
  payload jsonb not null, attempts integer not null default 0, available_at timestamptz not null default now(),
465
548
  lease_owner text, lease_until timestamptz, created_at timestamptz not null default now(),
466
549
  primary key (scope_id, id))`);
467
- const applied = await client.query(`select 1 from ${this.migrationsTable} where scope_id = $1 and version = $2`, [this.rowId, SCHEMA_VERSION]);
550
+ const applied = await client.query(`select 1 from ${this.migrationsTable} where scope_id = $1 and version = $2`, [this.rowId, 1]);
468
551
  if (applied.rows.length === 0) {
469
552
  await this.importLegacyFiles(client);
470
- await client.query(`insert into ${this.migrationsTable} (scope_id, version) values ($1, $2)`, [this.rowId, SCHEMA_VERSION]);
553
+ await client.query(`insert into ${this.migrationsTable} (scope_id, version) values ($1, $2)`, [this.rowId, 1]);
471
554
  }
555
+ await this.migrateEntities(client);
472
556
  await client.query("commit");
473
557
  }
474
558
  catch (error) {
@@ -480,6 +564,67 @@ export class PostgresStorage extends BaseStorage {
480
564
  client.release();
481
565
  }
482
566
  }
567
+ async migrateEntities(client) {
568
+ await client.query(`create sequence if not exists ${this.revisionSequence}`);
569
+ await client.query(`create table if not exists ${this.entitiesTable} (
570
+ scope_id text not null, kind text not null, entity_id text not null, value jsonb not null,
571
+ revision bigint not null, ordinal bigint generated always as identity,
572
+ primary key (scope_id, kind, entity_id), check (jsonb_typeof(value) = 'object'))`);
573
+ await client.query(`create table if not exists ${this.referencesTable} (
574
+ scope_id text not null, kind text not null, entity_id text not null, target_kind text not null, target_id text not null,
575
+ primary key (scope_id, kind, entity_id, target_kind, target_id),
576
+ foreign key (scope_id, kind, entity_id) references ${this.entitiesTable} (scope_id, kind, entity_id) deferrable initially deferred,
577
+ foreign key (scope_id, target_kind, target_id) references ${this.entitiesTable} (scope_id, kind, entity_id) deferrable initially deferred)`);
578
+ await client.query(`create index if not exists ${quotePgIdent(`${this.tableName}_ref_target_idx`)}
579
+ on ${this.referencesTable} (scope_id, target_kind, target_id)`);
580
+ const applied = await client.query(`select 1 from ${this.migrationsTable} where scope_id = $1 and version = $2`, [this.rowId, SCHEMA_VERSION]);
581
+ if (applied.rows.length)
582
+ return;
583
+ // Row lock waits for in-flight legacy saves. The trigger below fences later
584
+ // old-binary writes; the frozen row is retained as a migration backup.
585
+ const source = await client.query(`select config from ${this.quotedTableName} where id = $1 for update`, [this.rowId]);
586
+ if (!source.rows[0])
587
+ throw new Error("Legacy configuration is missing");
588
+ const config = this.parseConfig(source.rows[0].config);
589
+ this.validateConfigReferences(config);
590
+ const entities = splitConfig(config);
591
+ const claims = new Set();
592
+ for (const entity of entities.values())
593
+ for (const claim of entityClaims(entity)) {
594
+ if (claims.has(claim))
595
+ throw new Error(`Cannot migrate duplicate configuration claim: ${claim}`);
596
+ claims.add(claim);
597
+ }
598
+ for (const tenant of config.tenants)
599
+ for (const service of tenant.services) {
600
+ if (!service.lastSeenAt && !service.lastSyncAt)
601
+ continue;
602
+ await client.query(`insert into ${this.activityTable} (scope_id, service_id, last_seen_at, last_sync_at)
603
+ values ($1, $2, $3, $4) on conflict (scope_id, service_id) do update set
604
+ last_seen_at = greatest(${this.activityTable}.last_seen_at, excluded.last_seen_at),
605
+ last_sync_at = greatest(${this.activityTable}.last_sync_at, excluded.last_sync_at)`, [this.rowId, service.id, service.lastSeenAt ?? null, service.lastSyncAt ?? null]);
606
+ }
607
+ for (const entity of entities.values())
608
+ await client.query(`insert into ${this.entitiesTable} (scope_id, kind, entity_id, value, revision) values ($1, $2, $3, $4::jsonb, nextval('${this.revisionSequence}'))`, [this.rowId, entity.kind, entity.id, JSON.stringify(entity.value)]);
609
+ for (const entity of entities.values())
610
+ await this.writeReferences(client, entity, entities);
611
+ const restored = await this.readSnapshot(client);
612
+ if (changedEntityKeys(entities, restored.entities).length)
613
+ throw new Error("Config entity migration verification failed");
614
+ const fence = quotePgIdent(`${this.tableName}_legacy_write_fence`);
615
+ await client.query(`create or replace function ${fence}() returns trigger language plpgsql as $body$
616
+ begin
617
+ if exists (select 1 from ${this.migrationsTable} where scope_id = OLD.id and version = 2) then
618
+ raise exception 'Config storage migrated to independent entities; upgrade all config-manager replicas';
619
+ end if;
620
+ if TG_OP = 'DELETE' then return OLD; end if;
621
+ return NEW;
622
+ end $body$`);
623
+ await client.query(`drop trigger if exists legacy_write_fence on ${this.quotedTableName}`);
624
+ await client.query(`create trigger legacy_write_fence before update or delete on ${this.quotedTableName}
625
+ for each row execute function ${fence}()`);
626
+ await client.query(`insert into ${this.migrationsTable} (scope_id, version) values ($1, $2)`, [this.rowId, SCHEMA_VERSION]);
627
+ }
483
628
  async importLegacyFiles(client) {
484
629
  const existingConfig = await client.query(`select 1 from ${this.quotedTableName} where id = $1`, [this.rowId]);
485
630
  if (existingConfig.rows.length === 0) {
@@ -1 +1 @@
1
- {"version":3,"file":"postgres.js","sourceRoot":"","sources":["../../../../src/plugins/service-betterportal-config-manager/storage/postgres.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"postgres.js","sourceRoot":"","sources":["../../../../src/plugins/service-betterportal-config-manager/storage/postgres.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,IAAI,EAAmB,MAAM,IAAI,CAAC;AAC3C,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,EAAE,wBAAwB,EAA2C,MAAM,yBAAyB,CAAC;AAC5G,OAAO,EACL,WAAW,EACX,2BAA2B,EAC3B,UAAU,EACV,wBAAwB,EACxB,sBAAsB,EACtB,uBAAuB,EAExB,MAAM,WAAW,CAAC;AAEnB,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,YAAY,EAAE,gBAAgB,EAAE,KAAK,EAAE,WAAW,EAA2C,MAAM,eAAe,CAAC;AAQ/J,SAAS,YAAY,CAAC,UAAkB;IACtC,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,UAAU,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,kCAAkC,UAAU,EAAE,CAAC,CAAC;IAC7G,OAAO,IAAI,UAAU,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,GAAG,CAAC;AACjD,CAAC;AAED,OAAO,EAAE,2BAA2B,EAAE,MAAM,WAAW,CAAC;AAwDxD,MAAM,cAAc,GAAG,CAAC,CAAC;AAEzB,MAAM,OAAO,eAAgB,SAAQ,WAAW;IACrC,OAAO,GAAG,UAAmB,CAAC;IACtB,gBAAgB,CAAS;IACzB,SAAS,CAAS;IAClB,eAAe,CAAS;IACxB,KAAK,CAAS;IACd,eAAe,CAAS;IACxB,aAAa,CAAS;IACtB,YAAY,CAAS;IACrB,eAAe,CAAS;IACxB,WAAW,CAAS;IACpB,aAAa,CAAS;IACtB,aAAa,CAAS;IACtB,eAAe,CAAS;IACxB,gBAAgB,CAAS;IAClC,YAAY,CAAsE;IAClF,gBAAgB,GAAG,CAAC,CAAC;IACrB,IAAI,GAAgB,IAAI,CAAC;IACzB,WAAW,GAAyB,IAAI,CAAC;IACzC,WAAW,GAAgB,EAAE,CAAC;IACrB,SAAS,GAAG,IAAI,OAAO,EAAsC,CAAC;IACvE,YAAY,GAA0B,IAAI,CAAC;IAC3C,UAAU,GAA4D,IAAI,CAAC;IAC3E,gBAAgB,GAAG,CAAC,CAAC;IACrB,eAAe,CAAyH;IAEhJ,YAAY,OAA+B;QACzC,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,CAAC;QACjD,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,oBAAoB,CAAC;QAC3D,IAAI,CAAC,eAAe,GAAG,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACpD,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,SAAS,CAAC;QACxC,IAAI,CAAC,eAAe,GAAG,YAAY,CAAC,GAAG,IAAI,CAAC,SAAS,aAAa,CAAC,CAAC;QACpE,IAAI,CAAC,aAAa,GAAG,YAAY,CAAC,GAAG,IAAI,CAAC,SAAS,WAAW,CAAC,CAAC;QAChE,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC,GAAG,IAAI,CAAC,SAAS,UAAU,CAAC,CAAC;QAC9D,IAAI,CAAC,eAAe,GAAG,YAAY,CAAC,GAAG,IAAI,CAAC,SAAS,qBAAqB,CAAC,CAAC;QAC5E,IAAI,CAAC,WAAW,GAAG,YAAY,CAAC,GAAG,IAAI,CAAC,SAAS,SAAS,CAAC,CAAC;QAC5D,IAAI,CAAC,aAAa,GAAG,YAAY,CAAC,GAAG,IAAI,CAAC,SAAS,WAAW,CAAC,CAAC;QAChE,IAAI,CAAC,aAAa,GAAG,YAAY,CAAC,GAAG,IAAI,CAAC,SAAS,WAAW,CAAC,CAAC;QAChE,IAAI,CAAC,eAAe,GAAG,YAAY,CAAC,GAAG,IAAI,CAAC,SAAS,aAAa,CAAC,CAAC;QACpE,IAAI,CAAC,gBAAgB,GAAG,YAAY,CAAC,GAAG,IAAI,CAAC,SAAS,kBAAkB,CAAC,CAAC;IAC5E,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,QAAqB,EAAE;QACtC,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;QACzB,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;IAC5B,CAAC;IAED,KAAK,CAAC,UAAU;QACd,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;QAC1B,IAAI,IAAI,CAAC,YAAY;YAAE,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAEpE,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,KAAK,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QAC3E,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC;YAC7B,IAAI,MAAM,CAAC,UAAU,KAAK,IAAI,CAAC,gBAAgB,EAAE,CAAC;gBAChD,IAAI,IAAI,CAAC,UAAU,KAAK,OAAO;oBAAE,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;gBACxD,OAAO,IAAI,CAAC,UAAU,EAAE,CAAC;YAC3B,CAAC;YACD,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC;YAC3B,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAC/C,CAAC;gBAAS,CAAC;YACT,IAAI,IAAI,CAAC,UAAU,KAAK,OAAO;gBAAE,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QAC1D,CAAC;IACH,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,MAA0B,EAAE,OAAwE;QACnH,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;QAC1B,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC5C,IAAI,CAAC,QAAQ;YAAE,MAAM,IAAI,KAAK,CAAC,6GAA6G,CAAC,CAAC;QAC9I,MAAM,QAAQ,GAAG,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC;QACvD,2EAA2E;QAC3E,2EAA2E;QAC3E,KAAK,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,QAAQ;YAAE,IAAI,MAAM,CAAC,IAAI,KAAK,eAAe,EAAE,CAAC;gBAC1E,IAAI,gBAAgB,CAAC,MAAM,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;oBAAE,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACxG,CAAC;QACD,MAAM,OAAO,GAAG,iBAAiB,CAAC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QAC/D,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC,OAAO,EAAE,CAAC;QAC9C,IAAI,CAAC;YACH,MAAM,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAC5B,IAAI,OAAO,EAAE,cAAc;gBAAE,MAAM,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,cAAc,CAAC,CAAC;YACrF,2EAA2E;YAC3E,2EAA2E;YAC3E,MAAM,KAAK,GAAG,IAAI,GAAG,EAAmB,CAAC;YACzC,MAAM,YAAY,GAAG,IAAI,GAAG,EAAU,CAAC;YACvC,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;gBAC1B,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;gBACrB,KAAK,MAAM,QAAQ,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,EAAE,CAAC;oBACrD,MAAM,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;oBACjC,IAAI,CAAC,MAAM;wBAAE,SAAS;oBACtB,KAAK,MAAM,KAAK,IAAI,YAAY,CAAC,MAAM,CAAC;wBAAE,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;oBACjE,KAAK,MAAM,GAAG,IAAI,gBAAgB,CAAC,MAAM,EAAE,QAAQ,CAAC,EAAE,CAAC;wBACrD,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;wBACtB,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC;4BAAE,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;oBAC7C,CAAC;gBACH,CAAC;YACH,CAAC;YACD,KAAK,MAAM,CAAC,GAAG,EAAE,SAAS,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBACzF,MAAM,MAAM,CAAC,KAAK,CAAC,UAAU,SAAS,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC,CAAC,8BAA8B,2BAA2B,EAC1H,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YACzD,CAAC;YACD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;YAChD,KAAK,MAAM,GAAG,IAAI,IAAI,GAAG,CAAC,CAAC,GAAG,OAAO,EAAE,GAAG,YAAY,CAAC,CAAC,EAAE,CAAC;gBACzD,MAAM,QAAQ,GAAG,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBAClD,MAAM,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBAC/C,IAAI,QAAQ,KAAK,MAAM,EAAE,CAAC;oBACxB,IAAI,CAAC,UAAU,EAAE,CAAC;oBAClB,MAAM,IAAI,2BAA2B,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC;gBAC/D,CAAC;YACH,CAAC;YACD,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YACzC,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;gBAC1B,MAAM,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBACjC,IAAI,MAAM;oBAAE,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;;oBAC/B,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAC1B,CAAC;YACD,0EAA0E;YAC1E,4EAA4E;YAC5E,2EAA2E;YAC3E,KAAK,MAAM,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE;gBAAE,IAAI,MAAM,CAAC,IAAI,KAAK,eAAe,EAAE,CAAC;oBAC1E,MAAM,OAAO,GAAG,gBAAgB,CAAC,MAAM,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;oBACzF,IAAI,OAAO,EAAE,CAAC;wBACZ,IAAI,CAAC,UAAU,EAAE,CAAC;wBAClB,MAAM,IAAI,2BAA2B,CAAC,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,EAC9E,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;oBAC9D,CAAC;gBACH,CAAC;YACD,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;YACpE,IAAI,CAAC,wBAAwB,CAAC,SAAS,CAAC,CAAC;YACzC,8EAA8E;YAC9E,MAAM,MAAM,GAAG,IAAI,GAAG,EAAU,CAAC;YACjC,KAAK,MAAM,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE;gBAAE,KAAK,MAAM,KAAK,IAAI,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC;oBAC/E,IAAI,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC;wBAAE,MAAM,IAAI,KAAK,CAAC,sCAAsC,KAAK,EAAE,CAAC,CAAC;oBACtF,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;gBACpB,CAAC;YACD,MAAM,aAAa,GAAa,EAAE,CAAC;YACnC,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,EAAE,OAAO,CAAU,CAAC,CAAC,CAAC,CAAC;YAC9H,KAAK,MAAM,QAAQ,IAAI,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACjF,MAAM,IAAI,GAAG,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;gBACvC,IAAI,CAAC,IAAI,IAAI,QAAQ,CAAC,UAAU,KAAK,IAAI,CAAC,UAAU,IAAI,QAAQ,CAAC,QAAQ,KAAK,IAAI,CAAC,QAAQ;oBAAE,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;YAC/H,CAAC;YACD,IAAI,aAAa,CAAC,MAAM;gBAAE,MAAM,MAAM,CAAC,KAAK,CAC1C,eAAe,IAAI,CAAC,aAAa,uDAAuD,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,aAAa,CAAC,CACtH,CAAC;YACF,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,IAAI,KAAK,eAAe,CAAC,CAAC;YACzG,IAAI,SAAS,CAAC,MAAM,EAAE,CAAC;gBACrB,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,KAAK,CAAgB,iCAAiC,CAAC,CAAC;gBACnF,KAAK,MAAM,MAAM,IAAI,SAAS;oBAAE,MAAO,CAAC,KAAK,CAAC,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC;YAC5F,CAAC;YACD,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;gBAC1B,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAE,CAAC;gBAC9D,MAAM,MAAM,CAAC,KAAK,CAAC,eAAe,IAAI,CAAC,eAAe,uDAAuD,EAC3G,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;gBACxC,IAAI,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;oBACpB,MAAM,MAAM,CAAC,KAAK,CAAC,eAAe,IAAI,CAAC,aAAa;sDACR,IAAI,CAAC,gBAAgB;uHAC4C,EAC7G,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;gBACtE,CAAC;;oBAAM,MAAM,MAAM,CAAC,KAAK,CAAC,eAAe,IAAI,CAAC,aAAa,uDAAuD,EAChH,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;YAC1C,CAAC;YACD,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;gBAC1B,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBAC/B,IAAI,MAAM;oBAAE,MAAM,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;YACjE,CAAC;YACD,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;gBACnB,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,KAAK,CAAuB,mBAAmB,IAAI,CAAC,gBAAgB,gBAAgB,CAAC,CAAC;gBAClH,MAAM,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,WAAW,EAAE,yBAAyB,EAAE,EAAE,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;YACzH,CAAC;YACD,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;YAClD,MAAM,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;YAC7B,2EAA2E;YAC3E,2EAA2E;YAC3E,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;YACzD,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;YACtC,IAAI,CAAC,UAAU,EAAE,CAAC;QACpB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;YACtD,MAAM,KAAK,CAAC;QACd,CAAC;gBAAS,CAAC;YACT,MAAM,CAAC,OAAO,EAAE,CAAC;QACnB,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,eAAe,CAAC,MAAkB,EAAE,MAAoB,EAAE,QAAmC;QACzG,KAAK,MAAM,GAAG,IAAI,gBAAgB,CAAC,MAAM,EAAE,QAAQ,CAAC,EAAE,CAAC;YACrD,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAqB,CAAC;YACvD,MAAM,MAAM,CAAC,KAAK,CAAC,eAAe,IAAI,CAAC,eAAe;oCACxB,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC;QAClF,CAAC;IACH,CAAC;IAEQ,UAAU;QACjB,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACxB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QACzB,IAAI,CAAC,YAAY,GAAG,SAAS,CAAC;QAC9B,KAAK,CAAC,UAAU,EAAE,CAAC;IACrB,CAAC;IAEQ,KAAK,CAAC,cAAc,CAAC,MAAc;QAC1C,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;QAC1B,IAAI,CAAC,IAAI,CAAC,YAAY;YAAE,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;QAChD,IAAI,CAAC,IAAI,CAAC,YAAY;YAAE,OAAO,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;QAC3D,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC;QACxC,IAAI,IAAI,CAAC,eAAe,EAAE,MAAM,KAAK,MAAM,EAAE,CAAC;YAC5C,MAAM,OAAO,GAA+D,IAAI,GAAG,EAAE,CAAC;YACtF,KAAK,MAAM,OAAO,IAAI,CAAC,GAAG,MAAM,CAAC,gBAAgB,EAAE,GAAG,MAAM,CAAC,oBAAoB,CAAC,EAAE,CAAC;gBACnF,IAAI,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,UAAU;oBAAE,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,OAAO,CAAC,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;YACpI,CAAC;YACD,KAAK,MAAM,MAAM,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC;gBAAE,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;oBAC3G,IAAI,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,UAAU;wBAAE,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,CAAC,EAAE,EAAE,SAAS,EAAE,OAAO,CAAC,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;gBACvJ,CAAC;YACD,IAAI,CAAC,eAAe,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;QAC7C,CAAC;QACD,OAAO,eAAe,CAAC,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC;IACvF,CAAC;IAEO,KAAK,CAAC,YAAY,CAAC,UAA4C;QACrE,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,KAAK,CACnC,gDAAgD,IAAI,CAAC,aAAa,uCAAuC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CACxH,CAAC;QACF,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,KAAK,UAAU,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,gBAAgB,IAAI,CAAC,KAAK,sBAAsB,CAAC,CAAC;QACzH,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,GAAG,EAAE,EAAE,EAAE,GAAG,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;QACrE,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,KAAK,gBAAgB,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;QACrG,KAAK,MAAM,GAAG,IAAI,IAAI;YAAE,IAAI,GAAG,CAAC,IAAI,KAAK,+BAA+B,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;gBACxG,MAAM,IAAI,KAAK,CAAC,qBAAqB,GAAG,CAAC,EAAE,yCAAyC,CAAC,CAAC;YACxF,CAAC;QACD,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC;QACtD,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,WAAW,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,IAAI,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAC5H,CAAC;IAEO,KAAK,CAAC,UAAU,CAAC,UAAkB;QACzC,OAAO,EAAE,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC;IACpE,CAAC;IAEO,KAAK,CAAC,aAAa,CAAC,QAAwB;QAClD,MAAM,MAAM,GAAG,eAAe,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QAChD,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QACrC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAClD,KAAK,MAAM,MAAM,IAAI,MAAM,CAAC,OAAO;YAAE,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;gBAC3E,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;YACnD,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,KAAK,CAAC,KAAK,KAAoB,MAAM,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;IAExD,KAAK,CAAC,oBAAoB,CAAC,SAAiB,EAAE,KAAkC;QAC9E,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;QAC1B,MAAM,MAAM,GAAG,KAAK,KAAK,YAAY,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,cAAc,CAAC;QACxE,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC,KAAK,CACxB,eAAe,IAAI,CAAC,aAAa,2BAA2B,MAAM;0DACd,MAAM,eAAe,MAAM;SAC5E,KAAK,KAAK,YAAY,CAAC,CAAC,CAAC,SAAS,IAAI,CAAC,aAAa,IAAI,MAAM,eAAe,IAAI,CAAC,aAAa,IAAI,MAAM,kCAAkC,CAAC,CAAC,CAAC,EAAE,EAAE,EACrJ,CAAC,IAAI,CAAC,KAAK,EAAE,SAAS,CAAC,CACxB,CAAC;IACJ,CAAC;IAEO,mBAAmB;QACzB,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,gBAAgB,GAAG,IAAI;YAAE,OAAO,IAAI,CAAC,YAAY,CAAC;QAC7F,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACnC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC,KAAK,CACtC,sDAAsD,IAAI,CAAC,aAAa,sBAAsB,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAC7G,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,UAAU,EAAE;gBAC/D,GAAG,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,GAAG,CAAC,YAAY,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC3E,GAAG,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,GAAG,CAAC,YAAY,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aAC5E,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,GAAG,IAAI,CAAC,YAAY,GAAG,SAAS,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QACtE,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC;IAED,KAAK,CAAC,oBAAoB,CAAmB,MAAe;QAC1D,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;QAC1B,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC,KAAK,CACzC,wBAAwB,IAAI,CAAC,aAAa,sBAAsB,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAC/E,CAAC;QACF,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;YAAE,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;QACvD,MAAM,SAAS,GAAG,MAAM,EAAE,CAAC;QAC3B,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC,KAAK,CACxB,eAAe,IAAI,CAAC,aAAa,gFAAgF,EACjH,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CACxC,CAAC;QACF,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC,KAAK,CACvC,wBAAwB,IAAI,CAAC,aAAa,sBAAsB,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAC/E,CAAC;QACF,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;QACnF,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;IACjC,CAAC;IAED,KAAK,CAAC,mBAAmB,CAAC,KAMzB;QACC,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;QAC1B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC,KAAK,CACvC,eAAe,IAAI,CAAC,YAAY;;;;;eAKvB,IAAI,CAAC,YAAY,sBAAsB,EAChD,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,CACtG,CAAC;QACF,OAAO,CAAC,MAAM,CAAC,QAAQ,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;IACpC,CAAC;IAED,KAAK,CAAC,wBAAwB,CAAC,IAAuB,EAAE,GAAW;QACjE,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;QAC1B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC,KAAK,CACvC,iBAAiB,IAAI,CAAC,YAAY;+GACuE,EACzG,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,CAAC,CACxB,CAAC;QACF,OAAO,MAAM,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;IAChC,CAAC;IAED,KAAK,CAAC,kBAAkB,CAAC,KAMxB;QACC,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;QAC1B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC,OAAO,EAAE,CAAC;QAC9C,IAAI,CAAC;YACH,MAAM,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAC5B,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,KAAK,CAO/B,gEAAgE,IAAI,CAAC,YAAY;gGACO,EACxF,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,UAAU,CAAC,CACtD,CAAC;YACF,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAC3B,IAAI,CAAC,GAAG,EAAE,CAAC;gBACT,MAAM,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;gBAC7B,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;YAC9B,CAAC;YACD,IAAI,GAAG,CAAC,UAAU,CAAC,OAAO,EAAE,IAAI,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;gBAC3C,MAAM,MAAM,CAAC,KAAK,CAChB,eAAe,IAAI,CAAC,YAAY,wDAAwD,EACxF,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,CACpC,CAAC;gBACF,MAAM,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;gBAC7B,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;YAC9B,CAAC;YACD,MAAM,MAAM,GAAwB;gBAClC,IAAI,EAAE,KAAK,CAAC,IAAI;gBAChB,GAAG,EAAE,KAAK,CAAC,GAAG;gBACd,OAAO,EAAE,GAAG,CAAC,OAAO;gBACpB,SAAS,EAAE,GAAG,CAAC,UAAU,CAAC,WAAW,EAAE;gBACvC,MAAM,EAAE,GAAG,CAAC,MAAM;gBAClB,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aAC9C,CAAC;YACF,IAAI,GAAG,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC;gBAC/B,MAAM,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;gBAC7B,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC;YACxC,CAAC;YACD,IAAI,GAAG,CAAC,MAAM,KAAK,YAAY,IAAI,GAAG,CAAC,WAAW,IAAI,GAAG,CAAC,WAAW,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;gBAC7F,MAAM,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;gBAC7B,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;YAC3B,CAAC;YACD,MAAM,MAAM,CAAC,KAAK,CAChB,UAAU,IAAI,CAAC,YAAY;;gEAE6B,EACxD,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,OAAO,IAAI,MAAM,CAAC,CAC1E,CAAC;YACF,MAAM,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;YAC7B,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,GAAG,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,EAAE,CAAC;QAC3E,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;YACtD,MAAM,KAAK,CAAC;QACd,CAAC;gBAAS,CAAC;YACT,MAAM,CAAC,OAAO,EAAE,CAAC;QACnB,CAAC;IACH,CAAC;IAED,KAAK,CAAC,qBAAqB,CAAC,KAA8B,EAAE,MAA2B;QACrF,IAAI,MAAM;YAAE,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE,cAAc,EAAE,KAAK,EAAE,CAAC,CAAC;QACtE,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;QAC1B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC,OAAO,EAAE,CAAC;QAC9C,IAAI,CAAC;YAAC,MAAM,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QAAC,CAAC;gBAAS,CAAC;YAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QAAC,CAAC;IAC/E,CAAC;IAEO,KAAK,CAAC,YAAY,CAAC,MAAkB,EAAE,KAA8B;QAC3E,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,KAAK,CAChC,UAAU,IAAI,CAAC,YAAY;;;mFAGkD,EAC7E,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAC/E,CAAC;QACF,IAAI,OAAO,CAAC,QAAQ,KAAK,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;IAC/E,CAAC;IAED,KAAK,CAAC,oBAAoB,CAAC,IAAuB,EAAE,GAAW,EAAE,KAAa;QAC5E,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;QAC1B,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC,KAAK,CACxB,UAAU,IAAI,CAAC,YAAY;6GAC4E,EACvG,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,CAC/B,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,wBAAwB,CAAC,OAAgC;QAC7D,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO;QACjC,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;QAC1B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC,OAAO,EAAE,CAAC;QAC9C,IAAI,CAAC;YACH,MAAM,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAC5B,KAAK,MAAM,MAAM,IAAI,OAAO;gBAAE,MAAM,IAAI,CAAC,qBAAqB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;YAC/E,MAAM,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,OAAO,EAAE,4BAA4B,EAAE,EAAE,CAAC,CAAC;YAC3E,MAAM,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QAC/B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;YACtD,MAAM,KAAK,CAAC;QACd,CAAC;gBAAS,CAAC;YACT,MAAM,CAAC,OAAO,EAAE,CAAC;QACnB,CAAC;IACH,CAAC;IAED,KAAK,CAAC,sBAAsB,CAAC,KAAa,EAAE,KAAK,GAAG,EAAE,EAAE,OAAO,GAAG,MAAM;QACtE,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;QAC1B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC,KAAK,CAKvC;0BACoB,IAAI,CAAC,eAAe;;;;;gBAK9B,IAAI,CAAC,eAAe;;wEAEoC,EAClE,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,CACpC,CAAC;QACF,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;YAC/B,EAAE,EAAE,GAAG,CAAC,EAAE;YACV,QAAQ,EAAE,GAAG,CAAC,SAAS;YACvB,SAAS,EAAE,GAAG,CAAC,UAAU;YACzB,OAAO,EAAE,GAAG,CAAC,QAAQ;YACrB,QAAQ,EAAE,GAAG,CAAC,SAAS;YACvB,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC5C,OAAO,EAAE,GAAG,CAAC,OAAO;YACpB,QAAQ,EAAE,GAAG,CAAC,QAAQ;YACtB,WAAW,EAAE,GAAG,CAAC,YAAY;YAC7B,aAAa,EAAE,GAAG,CAAC,eAAe,CAAC,WAAW,EAAE;YAChD,SAAS,EAAE,GAAG,CAAC,UAAU,CAAC,WAAW,EAAE;YACvC,MAAM,EAAE,GAAG,CAAC,MAAM;YAClB,GAAG,CAAC,GAAG,CAAC,WAAW,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,GAAG,CAAC,WAAW,EAAE,CAAC;YACpE,GAAG,CAAC,GAAG,CAAC,UAAU,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,GAAG,CAAC,UAAU,EAAE,CAAC;SAClE,CAAC,CAAC,CAAC;IACN,CAAC;IAED,KAAK,CAAC,qBAAqB,CAAC,KAAa,EAAE,MAA6B;QACtE,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;QAC1B,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC,KAAK,CACxB,UAAU,IAAI,CAAC,eAAe;;6DAEyB,EACvD,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,aAAa,EAAE,MAAM,CAAC,MAAM;YACjF,MAAM,CAAC,UAAU,IAAI,IAAI,EAAE,MAAM,CAAC,SAAS,IAAI,IAAI,CAAC,CACvD,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,wBAAwB;QAC5B,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;QAC1B,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC,KAAK,CACxB,eAAe,IAAI,CAAC,eAAe;+FACsD,EACzF,CAAC,IAAI,CAAC,KAAK,CAAC,CACb,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,qBAAqB;QACzB,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;QAC1B,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC,KAAK,CACxB,eAAe,IAAI,CAAC,YAAY,8CAA8C,EAC9E,CAAC,IAAI,CAAC,KAAK,CAAC,CACb,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,IAAY,EAAE,GAAwB;QAC1D,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;QAC1B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC,OAAO,EAAE,CAAC;QAC9C,MAAM,QAAQ,GAAG,GAAG,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,EAAE,CAAC;QAC3D,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,KAAK,CAAsB,qDAAqD,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;YAC1H,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,MAAM;gBAAE,OAAO,KAAK,CAAC;YAC1C,IAAI,CAAC;gBACH,MAAM,GAAG,EAAE,CAAC;gBACZ,OAAO,IAAI,CAAC;YACd,CAAC;oBAAS,CAAC;gBACT,MAAM,MAAM,CAAC,KAAK,CAAC,yCAAyC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;YAC5E,CAAC;QACH,CAAC;gBAAS,CAAC;YACT,MAAM,CAAC,OAAO,EAAE,CAAC;QACnB,CAAC;IACH,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,KAAa,EAAE,KAAK,GAAG,EAAE,EAAE,OAAO,GAAG,MAAM;QAC3D,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;QAC1B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC,KAAK,CAIvC;0BACoB,IAAI,CAAC,WAAW;;;;gBAI1B,IAAI,CAAC,WAAW;;;2DAG2B,EACrD,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,CACpC,CAAC;QACF,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,QAAQ,EAAE,GAAG,CAAC,QAAQ,EAAE,SAAS,EAAE,GAAG,CAAC,UAAU,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;IAC7H,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,EAAU,EAAE,KAAa;QAC5C,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;QAC1B,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC,KAAK,CACxB,eAAe,IAAI,CAAC,WAAW,uDAAuD,EACtF,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,EAAE,KAAK,CAAC,CACxB,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,EAAU,EAAE,KAAa,EAAE,OAAO,GAAG,KAAK;QAC5D,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;QAC1B,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC,KAAK,CACxB,UAAU,IAAI,CAAC,WAAW;;6DAE6B,EACvD,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,CAAC,CACjC,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,OAAO;QACX,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;QACvB,MAAM,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,CAAC;QACvB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;IAC1B,CAAC;IAEO,WAAW,CAAC,KAAc;QAChC,OAAO,IAAI,CAAC,kBAAkB,CAAC,uBAAuB,CACpD,wBAAwB,CAAC,KAAK,CAAC,sBAAsB,CAAC,wBAAwB,CAAC,KAAK,CAAC,CAAC,CAAC,CACxF,CAAC,CAAC;IACL,CAAC;IAEO,OAAO;QACb,IAAI,CAAC,IAAI,KAAK,IAAI,IAAI,CAAC,EAAE,gBAAgB,EAAE,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC;QACpE,OAAO,IAAI,CAAC,IAAI,CAAC;IACnB,CAAC;IAEO,YAAY;QAClB,IAAI,CAAC,WAAW,KAAK,IAAI,CAAC,OAAO,EAAE,CAAC;QACpC,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;IAEO,KAAK,CAAC,OAAO;QACnB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC,OAAO,EAAE,CAAC;QAC9C,MAAM,QAAQ,GAAG,GAAG,IAAI,CAAC,SAAS,aAAa,CAAC;QAChD,IAAI,CAAC;YACH,MAAM,MAAM,CAAC,KAAK,CAAC,uCAAuC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;YACxE,MAAM,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAC5B,MAAM,MAAM,CAAC,KAAK,CAAC,8BAA8B,IAAI,CAAC,eAAe;;yCAElC,CAAC,CAAC;YACrC,MAAM,MAAM,CAAC,KAAK,CAAC,8BAA8B,IAAI,CAAC,eAAe;;uDAEpB,CAAC,CAAC;YACnD,MAAM,MAAM,CAAC,KAAK,CAAC,eAAe,IAAI,CAAC,eAAe,8DAA8D,CAAC,CAAC;YACtH,MAAM,MAAM,CAAC,KAAK,CAAC,8BAA8B,IAAI,CAAC,aAAa;2GACkC,CAAC,CAAC;YACvG,MAAM,MAAM,CAAC,KAAK,CAAC,8BAA8B,IAAI,CAAC,aAAa;;4CAE7B,CAAC,CAAC;YACxC,MAAM,MAAM,CAAC,KAAK,CAAC,8BAA8B,IAAI,CAAC,YAAY;;;;kDAItB,CAAC,CAAC;YAC9C,MAAM,MAAM,CAAC,KAAK,CAAC,8BAA8B,IAAI,CAAC,eAAe;;;;;+EAKI,CAAC,CAAC;YAC3E,MAAM,MAAM,CAAC,KAAK,CAAC,8BAA8B,YAAY,CAAC,GAAG,IAAI,CAAC,SAAS,kBAAkB,CAAC;aAC3F,IAAI,CAAC,eAAe,sCAAsC,CAAC,CAAC;YACnE,MAAM,MAAM,CAAC,KAAK,CAAC,8BAA8B,IAAI,CAAC,WAAW;;;;oCAInC,CAAC,CAAC;YAChC,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,KAAK,CAChC,iBAAiB,IAAI,CAAC,eAAe,uCAAuC,EAC5E,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAChB,CAAC;YACF,IAAI,OAAO,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC9B,MAAM,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;gBACrC,MAAM,MAAM,CAAC,KAAK,CAChB,eAAe,IAAI,CAAC,eAAe,sCAAsC,EACzE,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAChB,CAAC;YACJ,CAAC;YACD,MAAM,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;YACnC,MAAM,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QAC/B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;YACtD,MAAM,KAAK,CAAC;QACd,CAAC;gBAAS,CAAC;YACT,MAAM,MAAM,CAAC,KAAK,CAAC,yCAAyC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;YACjG,MAAM,CAAC,OAAO,EAAE,CAAC;QACnB,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,eAAe,CAAC,MAAkB;QAC9C,MAAM,MAAM,CAAC,KAAK,CAAC,iCAAiC,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC;QAC7E,MAAM,MAAM,CAAC,KAAK,CAAC,8BAA8B,IAAI,CAAC,aAAa;;;uFAGgB,CAAC,CAAC;QACrF,MAAM,MAAM,CAAC,KAAK,CAAC,8BAA8B,IAAI,CAAC,eAAe;;;2DAGd,IAAI,CAAC,aAAa;kEACX,IAAI,CAAC,aAAa,6DAA6D,CAAC,CAAC;QAC/I,MAAM,MAAM,CAAC,KAAK,CAAC,8BAA8B,YAAY,CAAC,GAAG,IAAI,CAAC,SAAS,iBAAiB,CAAC;WAC1F,IAAI,CAAC,eAAe,qCAAqC,CAAC,CAAC;QAClE,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC,iBAAiB,IAAI,CAAC,eAAe,uCAAuC,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC,CAAC;QAC/I,IAAI,OAAO,CAAC,IAAI,CAAC,MAAM;YAAE,OAAO;QAChC,4EAA4E;QAC5E,uEAAuE;QACvE,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,KAAK,CAAsB,sBAAsB,IAAI,CAAC,eAAe,2BAA2B,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;QAC5I,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;QACxE,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;QACvD,IAAI,CAAC,wBAAwB,CAAC,MAAM,CAAC,CAAC;QACtC,MAAM,QAAQ,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC;QACrC,MAAM,MAAM,GAAG,IAAI,GAAG,EAAU,CAAC;QACjC,KAAK,MAAM,MAAM,IAAI,QAAQ,CAAC,MAAM,EAAE;YAAE,KAAK,MAAM,KAAK,IAAI,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC;gBACjF,IAAI,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC;oBAAE,MAAM,IAAI,KAAK,CAAC,iDAAiD,KAAK,EAAE,CAAC,CAAC;gBACjG,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YACpB,CAAC;QACD,KAAK,MAAM,MAAM,IAAI,MAAM,CAAC,OAAO;YAAE,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;gBAC3E,IAAI,CAAC,OAAO,CAAC,UAAU,IAAI,CAAC,OAAO,CAAC,UAAU;oBAAE,SAAS;gBACzD,MAAM,MAAM,CAAC,KAAK,CAAC,eAAe,IAAI,CAAC,aAAa;;kCAExB,IAAI,CAAC,aAAa;kCAClB,IAAI,CAAC,aAAa,uCAAuC,EACrF,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,EAAE,EAAE,OAAO,CAAC,UAAU,IAAI,IAAI,EAAE,OAAO,CAAC,UAAU,IAAI,IAAI,CAAC,CAAC,CAAC;YACpF,CAAC;QACD,KAAK,MAAM,MAAM,IAAI,QAAQ,CAAC,MAAM,EAAE;YAAE,MAAM,MAAM,CAAC,KAAK,CACxD,eAAe,IAAI,CAAC,aAAa,yFAAyF,IAAI,CAAC,gBAAgB,KAAK,EACpJ,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACtE,KAAK,MAAM,MAAM,IAAI,QAAQ,CAAC,MAAM,EAAE;YAAE,MAAM,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;QAC7F,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;QACjD,IAAI,iBAAiB,CAAC,QAAQ,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC,MAAM;YAAE,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;QAC1H,MAAM,KAAK,GAAG,YAAY,CAAC,GAAG,IAAI,CAAC,SAAS,qBAAqB,CAAC,CAAC;QACnE,MAAM,MAAM,CAAC,KAAK,CAAC,8BAA8B,KAAK;;mCAEvB,IAAI,CAAC,eAAe;;;;;iBAKtC,CAAC,CAAC;QACf,MAAM,MAAM,CAAC,KAAK,CAAC,gDAAgD,IAAI,CAAC,eAAe,EAAE,CAAC,CAAC;QAC3F,MAAM,MAAM,CAAC,KAAK,CAAC,gEAAgE,IAAI,CAAC,eAAe;sCACrE,KAAK,IAAI,CAAC,CAAC;QAC7C,MAAM,MAAM,CAAC,KAAK,CAAC,eAAe,IAAI,CAAC,eAAe,sCAAsC,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC,CAAC;IAC9H,CAAC;IAEO,KAAK,CAAC,iBAAiB,CAAC,MAAkB;QAChD,MAAM,cAAc,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC,iBAAiB,IAAI,CAAC,eAAe,gBAAgB,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;QAC/G,IAAI,cAAc,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACrC,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YAClG,MAAM,OAAO,GAAG,UAAU,IAAI,UAAU,CAAC,UAAU,CAAC;gBAClD,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC;gBAChE,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;YACzB,MAAM,MAAM,CAAC,KAAK,CAChB,eAAe,IAAI,CAAC,eAAe,mDAAmD,EACtF,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CACtC,CAAC;QACJ,CAAC;QAED,MAAM,YAAY,GAAG,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAClG,IAAI,YAAY,IAAI,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;YAC7C,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,YAAY,EAAE,MAAM,CAAC,CAA4B,CAAC;YAC3F,MAAM,MAAM,CAAC,KAAK,CAChB,eAAe,IAAI,CAAC,aAAa;2CACE,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAC5E,CAAC;QACJ,CAAC;QAED,MAAM,YAAY,GAAG,IAAI,CAAC,WAAW,CAAC,mBAAmB,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QACtH,IAAI,YAAY,IAAI,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;YAC7C,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC,CAAC;YAC9D,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC1B,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;oBAC3B,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ;wBAAE,SAAS;oBAClD,MAAM,MAAM,GAAG,KAA8B,CAAC;oBAC9C,IAAI,MAAM,CAAC,EAAE,IAAI,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;wBAC1F,MAAM,IAAI,CAAC,qBAAqB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;oBACnD,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,qBAAqB,CAAC,MAAkB,EAAE,MAA6B;QACnF,MAAM,MAAM,CAAC,KAAK,CAChB,eAAe,IAAI,CAAC,eAAe;;;;sFAI6C,EAChF,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,QAAQ;YACxF,MAAM,CAAC,KAAK,IAAI,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,WAAW;YACzF,MAAM,CAAC,aAAa,EAAE,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,UAAU,IAAI,IAAI,EAAE,MAAM,CAAC,SAAS,IAAI,IAAI,CAAC,CAC9G,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,YAAY,CACxB,MAAkB,EAClB,QAAkC,EAClC,SAAoC,EACpC,OAAgC;QAEhC,MAAM,MAAM,CAAC,KAAK,CAChB,eAAe,IAAI,CAAC,WAAW;0CACK,EACpC,CAAC,IAAI,CAAC,KAAK,EAAE,UAAU,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CACzE,CAAC;IACJ,CAAC;CACF"}
@@ -326,4 +326,6 @@ export declare const handleDelete: import("@betterportal/framework").RouteHandle
326
326
  tenantsPath: string;
327
327
  serviceBaseUrl?: string | undefined;
328
328
  }, never, Record<string, unknown>>;
329
+ export declare function deleteTenant(id: string): Promise<void>;
330
+ export declare function deleteApp(id: string): Promise<void>;
329
331
  //# sourceMappingURL=tenantManagement.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"tenantManagement.d.ts","sourceRoot":"","sources":["../../../src/plugins/service-betterportal-config-manager/tenantManagement.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAGL,KAAK,YAAY,EAEjB,KAAK,UAAU,EAEhB,MAAM,yBAAyB,CAAC;AAwEjC,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EASzB,CAAC;AACH,MAAM,MAAM,YAAY,GAAG,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AAExD,eAAO,MAAM,KAAK,mBAAmB,CAAC;AACtC,eAAO,MAAM,WAAW,qCAAqC,CAAC;AAE9D,eAAO,MAAM,UAAU,EAAE,UAA4D,CAAC;AAEtF,eAAO,MAAM,aAAa,EAAE,YAAY,CAAC,YAAY,CAAC,EAErD,CAAC;AAEF,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kCAGrB,CAAC;AAEF,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kCAWtB,CAAC;AAEF,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kCAWrB,CAAC;AAEF,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kCAYxB,CAAC"}
1
+ {"version":3,"file":"tenantManagement.d.ts","sourceRoot":"","sources":["../../../src/plugins/service-betterportal-config-manager/tenantManagement.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAGL,KAAK,YAAY,EAEjB,KAAK,UAAU,EAEhB,MAAM,yBAAyB,CAAC;AAwEjC,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EASzB,CAAC;AACH,MAAM,MAAM,YAAY,GAAG,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AAExD,eAAO,MAAM,KAAK,mBAAmB,CAAC;AACtC,eAAO,MAAM,WAAW,qCAAqC,CAAC;AAE9D,eAAO,MAAM,UAAU,EAAE,UAA4D,CAAC;AAEtF,eAAO,MAAM,aAAa,EAAE,YAAY,CAAC,YAAY,CAAC,EAErD,CAAC;AAEF,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kCAGrB,CAAC;AAEF,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kCAWtB,CAAC;AAEF,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kCAWrB,CAAC;AAEF,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kCAYxB,CAAC;AA0GF,wBAAsB,YAAY,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAS5D;AA8FD,wBAAsB,SAAS,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAQzD"}
@@ -201,13 +201,23 @@ async function updateTenant(body) {
201
201
  tenant.active = boolValue(body.active);
202
202
  await routeContext.storage.saveConfig(config);
203
203
  }
204
- async function deleteTenant(id) {
204
+ function assertNoSourcePreviewGroups(config, entity, id) {
205
+ const groups = config.previewEnvironmentGroups.filter(group => entity === "tenant" ? group.sourceTenantId === id : group.sourceAppId === id);
206
+ if (groups.length === 0)
207
+ return;
208
+ throw Object.assign(new Error(`Cannot delete this ${entity}: it is the source of preview groups ${groups.map(group => group.name).join(", ")}. Delete those preview groups first.`), {
209
+ status: 409,
210
+ statusCode: 409
211
+ });
212
+ }
213
+ export async function deleteTenant(id) {
205
214
  if (!id)
206
215
  return;
207
216
  const routeContext = getConfigManagerRouteContext();
208
217
  const config = await routeContext.storage.loadConfig();
209
218
  if (isPreviewTenant(config, id))
210
219
  return;
220
+ assertNoSourcePreviewGroups(config, "tenant", id);
211
221
  config.tenants = config.tenants.filter((tenant) => tenant.id !== id);
212
222
  config.apps = config.apps.filter((app) => app.tenantId !== id);
213
223
  await routeContext.storage.saveConfig(config);
@@ -306,13 +316,14 @@ async function updateApp(body) {
306
316
  }
307
317
  await routeContext.storage.saveConfig(config);
308
318
  }
309
- async function deleteApp(id) {
319
+ export async function deleteApp(id) {
310
320
  if (!id)
311
321
  return;
312
322
  const routeContext = getConfigManagerRouteContext();
313
323
  const config = await routeContext.storage.loadConfig();
314
324
  if (isPreviewApp(config, id))
315
325
  return;
326
+ assertNoSourcePreviewGroups(config, "app", id);
316
327
  config.apps = config.apps.filter((app) => app.id !== id);
317
328
  await routeContext.storage.saveConfig(config);
318
329
  }