@cadenza.io/service 2.17.26 → 2.17.28

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -6575,6 +6575,11 @@ function resolveDataRows(data) {
6575
6575
  }
6576
6576
  return [ensurePlainObject(data, "data")];
6577
6577
  }
6578
+ function buildAddConstraintIfMissingStatement(tableName, constraintName, constraintDefinition) {
6579
+ const escapedConstraintName = constraintName.replace(/'/g, "''");
6580
+ const escapedTableName = tableName.replace(/'/g, "''");
6581
+ return `DO $$ BEGIN IF NOT EXISTS (SELECT 1 FROM pg_constraint WHERE conname = '${escapedConstraintName}' AND conrelid = '${escapedTableName}'::regclass) THEN ALTER TABLE ${tableName} ADD CONSTRAINT ${constraintName} ${constraintDefinition}; END IF; END $$;`;
6582
+ }
6578
6583
  var DatabaseController = class _DatabaseController {
6579
6584
  constructor() {
6580
6585
  this.registrationsByActorName = /* @__PURE__ */ new Map();
@@ -7460,22 +7465,33 @@ var DatabaseController = class _DatabaseController {
7460
7465
  );
7461
7466
  }
7462
7467
  if (table.primaryKey) {
7468
+ const primaryKeyName = `pk_${tableName}_${table.primaryKey.join("_")}`;
7463
7469
  ddl.push(
7464
- `ALTER TABLE ${tableName} DROP CONSTRAINT IF EXISTS pk_${tableName}_${table.primaryKey.join("_")};`,
7465
- `ALTER TABLE ${tableName} ADD CONSTRAINT pk_${tableName}_${table.primaryKey.join("_")} PRIMARY KEY (${table.primaryKey.map(import_lodash_es.snakeCase).join(", ")});`
7470
+ buildAddConstraintIfMissingStatement(
7471
+ tableName,
7472
+ primaryKeyName,
7473
+ `PRIMARY KEY (${table.primaryKey.map(import_lodash_es.snakeCase).join(", ")})`
7474
+ )
7466
7475
  );
7467
7476
  }
7468
7477
  for (const uniqueFields of table.uniqueConstraints ?? []) {
7478
+ const uniqueConstraintName = `uq_${tableName}_${uniqueFields.join("_")}`;
7469
7479
  ddl.push(
7470
- `ALTER TABLE ${tableName} DROP CONSTRAINT IF EXISTS uq_${tableName}_${uniqueFields.join("_")};`,
7471
- `ALTER TABLE ${tableName} ADD CONSTRAINT uq_${tableName}_${uniqueFields.join("_")} UNIQUE (${uniqueFields.map(import_lodash_es.snakeCase).join(", ")});`
7480
+ buildAddConstraintIfMissingStatement(
7481
+ tableName,
7482
+ uniqueConstraintName,
7483
+ `UNIQUE (${uniqueFields.map(import_lodash_es.snakeCase).join(", ")})`
7484
+ )
7472
7485
  );
7473
7486
  }
7474
7487
  for (const foreignKey of table.foreignKeys ?? []) {
7475
7488
  const fkName = `fk_${tableName}_${foreignKey.fields.join("_")}`;
7476
7489
  ddl.push(
7477
- `ALTER TABLE ${tableName} DROP CONSTRAINT IF EXISTS ${fkName};`,
7478
- `ALTER TABLE ${tableName} ADD CONSTRAINT ${fkName} FOREIGN KEY (${foreignKey.fields.map(import_lodash_es.snakeCase).join(", ")}) REFERENCES ${foreignKey.tableName} (${foreignKey.referenceFields.map(import_lodash_es.snakeCase).join(", ")});`
7490
+ buildAddConstraintIfMissingStatement(
7491
+ tableName,
7492
+ fkName,
7493
+ `FOREIGN KEY (${foreignKey.fields.map(import_lodash_es.snakeCase).join(", ")}) REFERENCES ${foreignKey.tableName} (${foreignKey.referenceFields.map(import_lodash_es.snakeCase).join(", ")})`
7494
+ )
7479
7495
  );
7480
7496
  }
7481
7497
  for (const [triggerName, trigger] of Object.entries(table.triggers ?? {})) {
@@ -8500,6 +8516,7 @@ var GraphSyncController = class _GraphSyncController {
8500
8516
  this.registeredActorTaskMaps = /* @__PURE__ */ new Set();
8501
8517
  this.registeredIntentDefinitions = /* @__PURE__ */ new Set();
8502
8518
  this.tasksSynced = false;
8519
+ this.actorsSynced = false;
8503
8520
  this.signalsSynced = false;
8504
8521
  this.intentsSynced = false;
8505
8522
  this.routinesSynced = false;
@@ -8964,13 +8981,19 @@ var GraphSyncController = class _GraphSyncController {
8964
8981
  );
8965
8982
  CadenzaService.createUniqueMetaTask(
8966
8983
  "Gather actor registration",
8967
- () => true
8984
+ () => {
8985
+ this.actorsSynced = true;
8986
+ return true;
8987
+ }
8968
8988
  ).doOn("meta.sync_controller.actor_registration_settled").emits("meta.sync_controller.synced_actors");
8969
8989
  this.registerActorTaskMapTask = CadenzaService.createMetaTask(
8970
8990
  "Split actor task maps",
8971
8991
  function* (ctx) {
8972
8992
  const task = ctx.task;
8973
- if (task.hidden || !task.register) {
8993
+ if (!this.tasksSynced || !this.actorsSynced) {
8994
+ return;
8995
+ }
8996
+ if (task.hidden || !task.register || !task.registered) {
8974
8997
  return;
8975
8998
  }
8976
8999
  const metadata = getActorTaskRuntimeMetadata(task.taskFunction);
@@ -9046,7 +9069,7 @@ var GraphSyncController = class _GraphSyncController {
9046
9069
  "Split observed signals of task",
9047
9070
  (ctx, emit) => {
9048
9071
  const task = ctx.task;
9049
- if (task.hidden || !task.register) return false;
9072
+ if (task.hidden || !task.register || !task.registered) return false;
9050
9073
  const serviceName2 = resolveSyncServiceName(task);
9051
9074
  if (!serviceName2) {
9052
9075
  return false;
@@ -9166,7 +9189,7 @@ var GraphSyncController = class _GraphSyncController {
9166
9189
  "Split intents of task",
9167
9190
  function(ctx, emit) {
9168
9191
  const task = ctx.task;
9169
- if (task.hidden || !task.register) return false;
9192
+ if (task.hidden || !task.register || !task.registered) return false;
9170
9193
  const serviceName2 = resolveSyncServiceName(task);
9171
9194
  if (!serviceName2) {
9172
9195
  return false;
@@ -9436,7 +9459,8 @@ var GraphSyncController = class _GraphSyncController {
9436
9459
  this.registerDeputyRelationshipTask
9437
9460
  );
9438
9461
  CadenzaService.registry.doForEachTask.clone().doOn(
9439
- "meta.sync_controller.synced_signals"
9462
+ "meta.sync_controller.synced_signals",
9463
+ "meta.sync_controller.synced_tasks"
9440
9464
  ).then(
9441
9465
  CadenzaService.createMetaTask(
9442
9466
  "Ensure signal and task sync ready",
@@ -9468,7 +9492,10 @@ var GraphSyncController = class _GraphSyncController {
9468
9492
  }
9469
9493
  ).then(this.registerSignalToTaskMapTask)
9470
9494
  );
9471
- CadenzaService.registry.doForEachTask.clone().doOn("meta.sync_controller.synced_intents").then(
9495
+ CadenzaService.registry.doForEachTask.clone().doOn(
9496
+ "meta.sync_controller.synced_intents",
9497
+ "meta.sync_controller.synced_tasks"
9498
+ ).then(
9472
9499
  CadenzaService.createMetaTask(
9473
9500
  "Ensure intent and task sync ready",
9474
9501
  (ctx) => {
@@ -9499,7 +9526,10 @@ var GraphSyncController = class _GraphSyncController {
9499
9526
  }
9500
9527
  ).then(this.registerIntentToTaskMapTask)
9501
9528
  );
9502
- CadenzaService.registry.doForEachTask.clone().doOn("meta.sync_controller.synced_actors").then(this.registerActorTaskMapTask);
9529
+ CadenzaService.registry.doForEachTask.clone().doOn(
9530
+ "meta.sync_controller.synced_actors",
9531
+ "meta.sync_controller.synced_tasks"
9532
+ ).then(this.registerActorTaskMapTask);
9503
9533
  CadenzaService.createMetaTask("Get registered task for actor sync", (ctx) => {
9504
9534
  const task = ctx.task ?? (ctx.__taskName ? CadenzaService.get(ctx.__taskName) : void 0);
9505
9535
  if (!task) {
@@ -9509,9 +9539,20 @@ var GraphSyncController = class _GraphSyncController {
9509
9539
  ...ctx,
9510
9540
  task
9511
9541
  };
9512
- }).doOn("meta.sync_controller.task_registered").then(this.registerActorTaskMapTask);
9542
+ }).doOn("meta.sync_controller.task_registered").then(
9543
+ CadenzaService.createMetaTask(
9544
+ "Ensure actor and task sync ready from task registration",
9545
+ (ctx) => {
9546
+ if (!this.tasksSynced || !this.actorsSynced) {
9547
+ return false;
9548
+ }
9549
+ return ctx;
9550
+ }
9551
+ ).then(this.registerActorTaskMapTask)
9552
+ );
9513
9553
  CadenzaService.registry.getAllRoutines.clone().doOn(
9514
9554
  "meta.sync_controller.synced_routines",
9555
+ "meta.sync_controller.synced_tasks",
9515
9556
  "meta.sync_controller.task_registered"
9516
9557
  ).then(
9517
9558
  CadenzaService.createMetaTask(