@anvil-works/anvil-cli 0.7.0-canary.13 → 0.7.0-canary.15

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.
@@ -1 +1 @@
1
- {"version":3,"file":"SavePathRouter.d.ts","sourceRoot":"","sources":["../src/SavePathRouter.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,iBAAiB,EAAmB,MAAM,cAAc,CAAC;AAMlE,KAAK,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;AAG3B,MAAM,WAAW,UAAU;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,OAAO,CAAC;CACvB;AAED,MAAM,WAAW,UAAU;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CAChB;AACD,MAAM,WAAW,QAAQ;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,OAAO,CAAC;CACvB;AAED,MAAM,WAAW,SAAS;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACnB;AASD,MAAM,MAAM,UAAU,GAAG,QAAQ,GAAG,KAAK,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAEhE,MAAM,MAAM,UAAU,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,QAAQ,CAAC;IAAC,OAAO,EAAE,GAAG,CAAA;CAAE,GAAG;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAEjH,MAAM,WAAW,YAAY;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,iBAAiB,CAAC;IAC9B,UAAU,CAAC,EAAE,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,eAAe;IAC5B,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,UAAU,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACrB;AAoVD;;;GAGG;AACH,wBAAgB,sBAAsB,CAClC,OAAO,EAAE,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,QAAQ,GAAG,KAAK,GAAG,QAAQ,GAAG,QAAQ,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,GAC9F,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,QAAQ,GAAG,KAAK,GAAG,QAAQ,GAAG,QAAQ,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAgEtF;AAED,wBAAsB,eAAe,CACjC,MAAM,EAAE,eAAe,EACvB,OAAO,EAAE,YAAY,GACtB,OAAO,CAAC,UAAU,GAAG,UAAU,EAAE,CAAC,CAqBpC;AA80BD;;;;;;GAMG;AACH,wBAAsB,mBAAmB,CACrC,QAAQ,EAAE,MAAM,EAChB,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,GAC1C,OAAO,CAAC,KAAK,CAAC;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,GAAG,CAAA;CAAE,CAAC,CAAC,CAiE7C"}
1
+ {"version":3,"file":"SavePathRouter.d.ts","sourceRoot":"","sources":["../src/SavePathRouter.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,iBAAiB,EAAmB,MAAM,cAAc,CAAC;AAMlE,KAAK,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;AAG3B,MAAM,WAAW,UAAU;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,OAAO,CAAC;CACvB;AAED,MAAM,WAAW,UAAU;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CAChB;AACD,MAAM,WAAW,QAAQ;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,OAAO,CAAC;CACvB;AAED,MAAM,WAAW,SAAS;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACnB;AASD,MAAM,MAAM,UAAU,GAAG,QAAQ,GAAG,KAAK,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAEhE,MAAM,MAAM,UAAU,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,QAAQ,CAAC;IAAC,OAAO,EAAE,GAAG,CAAA;CAAE,GAAG;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAEjH,MAAM,WAAW,YAAY;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,iBAAiB,CAAC;IAC9B,UAAU,CAAC,EAAE,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,eAAe;IAC5B,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,UAAU,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACrB;AAiWD;;;GAGG;AACH,wBAAgB,sBAAsB,CAClC,OAAO,EAAE,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,QAAQ,GAAG,KAAK,GAAG,QAAQ,GAAG,QAAQ,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,GAC9F,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,QAAQ,GAAG,KAAK,GAAG,QAAQ,GAAG,QAAQ,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAgEtF;AAED,wBAAsB,eAAe,CACjC,MAAM,EAAE,eAAe,EACvB,OAAO,EAAE,YAAY,GACtB,OAAO,CAAC,UAAU,GAAG,UAAU,EAAE,CAAC,CAqBpC;AA80BD;;;;;;GAMG;AACH,wBAAsB,mBAAmB,CACrC,QAAQ,EAAE,MAAM,EAChB,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,GAC1C,OAAO,CAAC,KAAK,CAAC;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,GAAG,CAAA;CAAE,CAAC,CAAC,CAiE7C"}
package/dist/cli.js CHANGED
@@ -16245,13 +16245,13 @@ Promise.resolve(executeGitCredentialOperation(process.argv[2] || "get", {
16245
16245
  dependencies: external_valibot_namespaceObject.optional(external_valibot_namespaceObject.array(external_valibot_namespaceObject.any())),
16246
16246
  runtime_options: RuntimeOptionsSchema,
16247
16247
  services: external_valibot_namespaceObject.optional(external_valibot_namespaceObject.array(AnvilServiceEntrySchema)),
16248
- startup: external_valibot_namespaceObject.optional(external_valibot_namespaceObject.looseObject({
16248
+ startup: external_valibot_namespaceObject.optional(external_valibot_namespaceObject.nullable(external_valibot_namespaceObject.looseObject({
16249
16249
  type: external_valibot_namespaceObject.picklist([
16250
16250
  "module",
16251
16251
  "form"
16252
16252
  ]),
16253
16253
  module: external_valibot_namespaceObject.optional(external_valibot_namespaceObject.string())
16254
- })),
16254
+ }))),
16255
16255
  startup_form: external_valibot_namespaceObject.optional(external_valibot_namespaceObject.nullable(external_valibot_namespaceObject.string())),
16256
16256
  db_schema: external_valibot_namespaceObject.optional(external_valibot_namespaceObject.any()),
16257
16257
  scheduled_tasks: external_valibot_namespaceObject.optional(external_valibot_namespaceObject.any()),
@@ -16469,6 +16469,10 @@ Promise.resolve(executeGitCredentialOperation(process.argv[2] || "get", {
16469
16469
  };
16470
16470
  return null;
16471
16471
  }
16472
+ function formatValidationFailure(fileName, validationResult) {
16473
+ const issueSummary = validationResult.issues.map((issue)=>` - ${formatValidationPath(issue.path)}: ${issue.message}`).join("\n");
16474
+ return issueSummary ? `${fileName} validation failed: ${validationResult.message}\n${issueSummary}` : `${fileName} validation failed: ${validationResult.message}`;
16475
+ }
16472
16476
  async function loadFormTemplateData(relativePath, templateInfo, context) {
16473
16477
  const { repoPath, stagedOnly = false } = context;
16474
16478
  const { kind, format } = templateInfo;
@@ -17435,7 +17439,7 @@ Promise.resolve(executeGitCredentialOperation(process.argv[2] || "get", {
17435
17439
  }
17436
17440
  };
17437
17441
  const validationResult = validateAnvilYaml(yamlContent);
17438
- if (!validationResult.ok) throw new Error("anvil.yaml validation failed - see errors above");
17442
+ if (!validationResult.ok) throw new Error(formatValidationFailure("anvil.yaml", validationResult));
17439
17443
  const changes = [];
17440
17444
  for (const [key, value] of Object.entries(parsedYaml))if (!previousYaml || !deepEqual(previousYaml[key], value)) changes.push({
17441
17445
  key,
@@ -17604,6 +17608,7 @@ Promise.resolve(executeGitCredentialOperation(process.argv[2] || "get", {
17604
17608
  class SaveProcessor extends Emitter {
17605
17609
  hasPendingChanges = false;
17606
17610
  debounceTimer = null;
17611
+ saveLoopPromise = null;
17607
17612
  saveSequence = 0;
17608
17613
  SAVE_DEBOUNCE_MS = 1000;
17609
17614
  MAX_RETRIES = 3;
@@ -17627,6 +17632,7 @@ Promise.resolve(executeGitCredentialOperation(process.argv[2] || "get", {
17627
17632
  if (this.debounceTimer) clearTimeout(this.debounceTimer);
17628
17633
  if (isFirstChange) logger_logger.progress("sync", "Change detected");
17629
17634
  this.debounceTimer = setTimeout(()=>{
17635
+ this.debounceTimer = null;
17630
17636
  this.processSaveBatchWithEvents().catch((error)=>{
17631
17637
  logger_logger.error(`Save failed: ${errors_getErrorMessage(error)}`);
17632
17638
  });
@@ -17651,6 +17657,18 @@ Promise.resolve(executeGitCredentialOperation(process.argv[2] || "get", {
17651
17657
  }
17652
17658
  }
17653
17659
  async processSaveBatchWithEvents() {
17660
+ if (this.saveLoopPromise) return this.saveLoopPromise;
17661
+ this.saveLoopPromise = this.drainSaveQueue();
17662
+ try {
17663
+ await this.saveLoopPromise;
17664
+ } finally{
17665
+ this.saveLoopPromise = null;
17666
+ }
17667
+ }
17668
+ async drainSaveQueue() {
17669
+ while(this.hasPendingChanges && !this.config.isCleanedUp() && !this.config.isPaused())await this.processOneSaveBatchWithEvents();
17670
+ }
17671
+ async processOneSaveBatchWithEvents() {
17654
17672
  if (this.config.isCleanedUp()) return;
17655
17673
  logger_logger.progressUpdate("sync", "Processing");
17656
17674
  if (!this.hasPendingChanges) return void logger_logger.progressEnd("sync");
@@ -18164,61 +18182,55 @@ Promise.resolve(executeGitCredentialOperation(process.argv[2] || "get", {
18164
18182
  }
18165
18183
  class SyncManager extends Emitter {
18166
18184
  config;
18167
- syncInProgress = false;
18185
+ syncQueue = Promise.resolve();
18168
18186
  constructor(config){
18169
18187
  super();
18170
18188
  this.config = config;
18171
18189
  }
18172
18190
  async syncRemoteChanges(knownLocalChanges) {
18173
- if (this.syncInProgress) {
18174
- logger_logger.debug("Sync already in progress, skipping");
18175
- return {
18176
- localOnlyChanges: [],
18177
- conflicts: []
18178
- };
18191
+ const runSync = ()=>this.performSyncRemoteChanges(knownLocalChanges);
18192
+ const queuedSync = this.syncQueue.then(runSync, runSync);
18193
+ this.syncQueue = queuedSync.catch(()=>{});
18194
+ return queuedSync;
18195
+ }
18196
+ async performSyncRemoteChanges(knownLocalChanges) {
18197
+ const oldCommitId = this.config.getCommitId();
18198
+ let locallyChangedFiles;
18199
+ let initialStatus;
18200
+ if (knownLocalChanges) locallyChangedFiles = knownLocalChanges;
18201
+ else {
18202
+ initialStatus = await this.config.gitService.getStatus();
18203
+ locallyChangedFiles = buildLocalChangesSet(initialStatus);
18179
18204
  }
18180
- this.syncInProgress = true;
18181
- try {
18182
- const oldCommitId = this.config.getCommitId();
18183
- let locallyChangedFiles;
18184
- let initialStatus;
18185
- if (knownLocalChanges) locallyChangedFiles = knownLocalChanges;
18186
- else {
18187
- initialStatus = await this.config.gitService.getStatus();
18188
- locallyChangedFiles = buildLocalChangesSet(initialStatus);
18189
- }
18190
- let syncMode;
18191
- if (!knownLocalChanges && initialStatus && this.isCleanForFastForward(initialStatus)) syncMode = await this.fetchAndMoveCleanTreeToAnvilHead(oldCommitId, locallyChangedFiles);
18192
- else {
18193
- await this.fetchAndResetFromAnvil(locallyChangedFiles);
18194
- syncMode = "preservation";
18195
- }
18196
- if ("clean-move" === syncMode) return {
18205
+ let syncMode;
18206
+ if (!knownLocalChanges && initialStatus && this.isCleanForFastForward(initialStatus)) syncMode = await this.fetchAndMoveCleanTreeToAnvilHead(oldCommitId, locallyChangedFiles);
18207
+ else {
18208
+ await this.fetchAndResetFromAnvil(locallyChangedFiles);
18209
+ syncMode = "preservation";
18210
+ }
18211
+ if ("clean-move" === syncMode) return {
18212
+ localOnlyChanges: [],
18213
+ conflicts: []
18214
+ };
18215
+ const newCommitId = await this.config.gitService.getCommitId();
18216
+ this.config.setCommitId(newCommitId);
18217
+ const remoteChangedFiles = await detectRemoteChanges(this.config.gitService, oldCommitId, newCommitId);
18218
+ const statusAfter = await this.config.gitService.getStatus();
18219
+ const newChanges = extractChangesFromStatus(statusAfter);
18220
+ if (0 === newChanges.length) {
18221
+ logger_logger.verbose(external_chalk_default().gray(" No local changes - working directory is clean"));
18222
+ return {
18197
18223
  localOnlyChanges: [],
18198
18224
  conflicts: []
18199
18225
  };
18200
- const newCommitId = await this.config.gitService.getCommitId();
18201
- this.config.setCommitId(newCommitId);
18202
- const remoteChangedFiles = await detectRemoteChanges(this.config.gitService, oldCommitId, newCommitId);
18203
- const statusAfter = await this.config.gitService.getStatus();
18204
- const newChanges = extractChangesFromStatus(statusAfter);
18205
- if (0 === newChanges.length) {
18206
- logger_logger.verbose(external_chalk_default().gray(" No local changes - working directory is clean"));
18207
- return {
18208
- localOnlyChanges: [],
18209
- conflicts: []
18210
- };
18211
- }
18212
- const result = categorizeChanges(newChanges, locallyChangedFiles, remoteChangedFiles);
18213
- await acceptRemoteChanges(this.config.gitService, result.remoteOnlyChanges);
18214
- logConflictResolution(result);
18215
- return {
18216
- localOnlyChanges: result.localOnlyChanges,
18217
- conflicts: result.conflicts
18218
- };
18219
- } finally{
18220
- this.syncInProgress = false;
18221
18226
  }
18227
+ const result = categorizeChanges(newChanges, locallyChangedFiles, remoteChangedFiles);
18228
+ await acceptRemoteChanges(this.config.gitService, result.remoteOnlyChanges);
18229
+ logConflictResolution(result);
18230
+ return {
18231
+ localOnlyChanges: result.localOnlyChanges,
18232
+ conflicts: result.conflicts
18233
+ };
18222
18234
  }
18223
18235
  async fetchAndResetFromAnvil(localChangesToPreserve = new Set()) {
18224
18236
  const oldCommitId = this.config.getCommitId();
package/dist/index.js CHANGED
@@ -16273,13 +16273,13 @@ Promise.resolve(executeGitCredentialOperation(process.argv[2] || "get", {
16273
16273
  dependencies: external_valibot_namespaceObject.optional(external_valibot_namespaceObject.array(external_valibot_namespaceObject.any())),
16274
16274
  runtime_options: RuntimeOptionsSchema,
16275
16275
  services: external_valibot_namespaceObject.optional(external_valibot_namespaceObject.array(AnvilServiceEntrySchema)),
16276
- startup: external_valibot_namespaceObject.optional(external_valibot_namespaceObject.looseObject({
16276
+ startup: external_valibot_namespaceObject.optional(external_valibot_namespaceObject.nullable(external_valibot_namespaceObject.looseObject({
16277
16277
  type: external_valibot_namespaceObject.picklist([
16278
16278
  "module",
16279
16279
  "form"
16280
16280
  ]),
16281
16281
  module: external_valibot_namespaceObject.optional(external_valibot_namespaceObject.string())
16282
- })),
16282
+ }))),
16283
16283
  startup_form: external_valibot_namespaceObject.optional(external_valibot_namespaceObject.nullable(external_valibot_namespaceObject.string())),
16284
16284
  db_schema: external_valibot_namespaceObject.optional(external_valibot_namespaceObject.any()),
16285
16285
  scheduled_tasks: external_valibot_namespaceObject.optional(external_valibot_namespaceObject.any()),
@@ -16497,6 +16497,10 @@ Promise.resolve(executeGitCredentialOperation(process.argv[2] || "get", {
16497
16497
  };
16498
16498
  return null;
16499
16499
  }
16500
+ function formatValidationFailure(fileName, validationResult) {
16501
+ const issueSummary = validationResult.issues.map((issue)=>` - ${formatValidationPath(issue.path)}: ${issue.message}`).join("\n");
16502
+ return issueSummary ? `${fileName} validation failed: ${validationResult.message}\n${issueSummary}` : `${fileName} validation failed: ${validationResult.message}`;
16503
+ }
16500
16504
  async function loadFormTemplateData(relativePath, templateInfo, context) {
16501
16505
  const { repoPath, stagedOnly = false } = context;
16502
16506
  const { kind, format } = templateInfo;
@@ -17463,7 +17467,7 @@ Promise.resolve(executeGitCredentialOperation(process.argv[2] || "get", {
17463
17467
  }
17464
17468
  };
17465
17469
  const validationResult = validateAnvilYaml(yamlContent);
17466
- if (!validationResult.ok) throw new Error("anvil.yaml validation failed - see errors above");
17470
+ if (!validationResult.ok) throw new Error(formatValidationFailure("anvil.yaml", validationResult));
17467
17471
  const changes = [];
17468
17472
  for (const [key, value] of Object.entries(parsedYaml))if (!previousYaml || !deepEqual(previousYaml[key], value)) changes.push({
17469
17473
  key,
@@ -17632,6 +17636,7 @@ Promise.resolve(executeGitCredentialOperation(process.argv[2] || "get", {
17632
17636
  class SaveProcessor extends Emitter {
17633
17637
  hasPendingChanges = false;
17634
17638
  debounceTimer = null;
17639
+ saveLoopPromise = null;
17635
17640
  saveSequence = 0;
17636
17641
  SAVE_DEBOUNCE_MS = 1000;
17637
17642
  MAX_RETRIES = 3;
@@ -17655,6 +17660,7 @@ Promise.resolve(executeGitCredentialOperation(process.argv[2] || "get", {
17655
17660
  if (this.debounceTimer) clearTimeout(this.debounceTimer);
17656
17661
  if (isFirstChange) logger_logger.progress("sync", "Change detected");
17657
17662
  this.debounceTimer = setTimeout(()=>{
17663
+ this.debounceTimer = null;
17658
17664
  this.processSaveBatchWithEvents().catch((error)=>{
17659
17665
  logger_logger.error(`Save failed: ${errors_getErrorMessage(error)}`);
17660
17666
  });
@@ -17679,6 +17685,18 @@ Promise.resolve(executeGitCredentialOperation(process.argv[2] || "get", {
17679
17685
  }
17680
17686
  }
17681
17687
  async processSaveBatchWithEvents() {
17688
+ if (this.saveLoopPromise) return this.saveLoopPromise;
17689
+ this.saveLoopPromise = this.drainSaveQueue();
17690
+ try {
17691
+ await this.saveLoopPromise;
17692
+ } finally{
17693
+ this.saveLoopPromise = null;
17694
+ }
17695
+ }
17696
+ async drainSaveQueue() {
17697
+ while(this.hasPendingChanges && !this.config.isCleanedUp() && !this.config.isPaused())await this.processOneSaveBatchWithEvents();
17698
+ }
17699
+ async processOneSaveBatchWithEvents() {
17682
17700
  if (this.config.isCleanedUp()) return;
17683
17701
  logger_logger.progressUpdate("sync", "Processing");
17684
17702
  if (!this.hasPendingChanges) return void logger_logger.progressEnd("sync");
@@ -18192,61 +18210,55 @@ Promise.resolve(executeGitCredentialOperation(process.argv[2] || "get", {
18192
18210
  }
18193
18211
  class SyncManager extends Emitter {
18194
18212
  config;
18195
- syncInProgress = false;
18213
+ syncQueue = Promise.resolve();
18196
18214
  constructor(config){
18197
18215
  super();
18198
18216
  this.config = config;
18199
18217
  }
18200
18218
  async syncRemoteChanges(knownLocalChanges) {
18201
- if (this.syncInProgress) {
18202
- logger_logger.debug("Sync already in progress, skipping");
18203
- return {
18204
- localOnlyChanges: [],
18205
- conflicts: []
18206
- };
18219
+ const runSync = ()=>this.performSyncRemoteChanges(knownLocalChanges);
18220
+ const queuedSync = this.syncQueue.then(runSync, runSync);
18221
+ this.syncQueue = queuedSync.catch(()=>{});
18222
+ return queuedSync;
18223
+ }
18224
+ async performSyncRemoteChanges(knownLocalChanges) {
18225
+ const oldCommitId = this.config.getCommitId();
18226
+ let locallyChangedFiles;
18227
+ let initialStatus;
18228
+ if (knownLocalChanges) locallyChangedFiles = knownLocalChanges;
18229
+ else {
18230
+ initialStatus = await this.config.gitService.getStatus();
18231
+ locallyChangedFiles = buildLocalChangesSet(initialStatus);
18207
18232
  }
18208
- this.syncInProgress = true;
18209
- try {
18210
- const oldCommitId = this.config.getCommitId();
18211
- let locallyChangedFiles;
18212
- let initialStatus;
18213
- if (knownLocalChanges) locallyChangedFiles = knownLocalChanges;
18214
- else {
18215
- initialStatus = await this.config.gitService.getStatus();
18216
- locallyChangedFiles = buildLocalChangesSet(initialStatus);
18217
- }
18218
- let syncMode;
18219
- if (!knownLocalChanges && initialStatus && this.isCleanForFastForward(initialStatus)) syncMode = await this.fetchAndMoveCleanTreeToAnvilHead(oldCommitId, locallyChangedFiles);
18220
- else {
18221
- await this.fetchAndResetFromAnvil(locallyChangedFiles);
18222
- syncMode = "preservation";
18223
- }
18224
- if ("clean-move" === syncMode) return {
18233
+ let syncMode;
18234
+ if (!knownLocalChanges && initialStatus && this.isCleanForFastForward(initialStatus)) syncMode = await this.fetchAndMoveCleanTreeToAnvilHead(oldCommitId, locallyChangedFiles);
18235
+ else {
18236
+ await this.fetchAndResetFromAnvil(locallyChangedFiles);
18237
+ syncMode = "preservation";
18238
+ }
18239
+ if ("clean-move" === syncMode) return {
18240
+ localOnlyChanges: [],
18241
+ conflicts: []
18242
+ };
18243
+ const newCommitId = await this.config.gitService.getCommitId();
18244
+ this.config.setCommitId(newCommitId);
18245
+ const remoteChangedFiles = await detectRemoteChanges(this.config.gitService, oldCommitId, newCommitId);
18246
+ const statusAfter = await this.config.gitService.getStatus();
18247
+ const newChanges = extractChangesFromStatus(statusAfter);
18248
+ if (0 === newChanges.length) {
18249
+ logger_logger.verbose(external_chalk_default().gray(" No local changes - working directory is clean"));
18250
+ return {
18225
18251
  localOnlyChanges: [],
18226
18252
  conflicts: []
18227
18253
  };
18228
- const newCommitId = await this.config.gitService.getCommitId();
18229
- this.config.setCommitId(newCommitId);
18230
- const remoteChangedFiles = await detectRemoteChanges(this.config.gitService, oldCommitId, newCommitId);
18231
- const statusAfter = await this.config.gitService.getStatus();
18232
- const newChanges = extractChangesFromStatus(statusAfter);
18233
- if (0 === newChanges.length) {
18234
- logger_logger.verbose(external_chalk_default().gray(" No local changes - working directory is clean"));
18235
- return {
18236
- localOnlyChanges: [],
18237
- conflicts: []
18238
- };
18239
- }
18240
- const result = categorizeChanges(newChanges, locallyChangedFiles, remoteChangedFiles);
18241
- await acceptRemoteChanges(this.config.gitService, result.remoteOnlyChanges);
18242
- logConflictResolution(result);
18243
- return {
18244
- localOnlyChanges: result.localOnlyChanges,
18245
- conflicts: result.conflicts
18246
- };
18247
- } finally{
18248
- this.syncInProgress = false;
18249
18254
  }
18255
+ const result = categorizeChanges(newChanges, locallyChangedFiles, remoteChangedFiles);
18256
+ await acceptRemoteChanges(this.config.gitService, result.remoteOnlyChanges);
18257
+ logConflictResolution(result);
18258
+ return {
18259
+ localOnlyChanges: result.localOnlyChanges,
18260
+ conflicts: result.conflicts
18261
+ };
18250
18262
  }
18251
18263
  async fetchAndResetFromAnvil(localChangesToPreserve = new Set()) {
18252
18264
  const oldCommitId = this.config.getCommitId();
@@ -1 +1 @@
1
- {"version":3,"file":"validators.d.ts","sourceRoot":"","sources":["../src/validators.ts"],"names":[],"mappings":"AAUA,MAAM,MAAM,eAAe,GAAG;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,4BAA4B,GAClC;IAAE,EAAE,EAAE,IAAI,CAAA;CAAE,GACZ;IACI,EAAE,EAAE,KAAK,CAAC;IACV,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,eAAe,EAAE,CAAC;CAC7B,CAAC;AAER,MAAM,MAAM,yBAAyB,GAC/B;IAAE,EAAE,EAAE,IAAI,CAAA;CAAE,GACZ;IACI,EAAE,EAAE,KAAK,CAAC;IACV,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,eAAe,EAAE,CAAC;CAC7B,CAAC;AAER,MAAM,MAAM,gBAAgB,GAAG,YAAY,GAAG,oBAAoB,CAAC;AAEnE,MAAM,MAAM,kBAAkB,GACxB;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,MAAM,EAAE,gBAAgB,CAAA;CAAE,GACtC;IACI,EAAE,EAAE,KAAK,CAAC;IACV,MAAM,EAAE,gBAAgB,GAAG,SAAS,CAAC;IACrC,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,eAAe,EAAE,CAAC;CAC7B,CAAC;AAqHR,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,UAEhD;AAsbD;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,WAAW,EAAE,MAAM,GAAG,4BAA4B,CA0BtF;AAqZD;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG,yBAAyB,CAkFhF;AA2CD;;;;;;;;;GASG;AACH,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,kBAAkB,CA0EtF"}
1
+ {"version":3,"file":"validators.d.ts","sourceRoot":"","sources":["../src/validators.ts"],"names":[],"mappings":"AAUA,MAAM,MAAM,eAAe,GAAG;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,4BAA4B,GAClC;IAAE,EAAE,EAAE,IAAI,CAAA;CAAE,GACZ;IACI,EAAE,EAAE,KAAK,CAAC;IACV,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,eAAe,EAAE,CAAC;CAC7B,CAAC;AAER,MAAM,MAAM,yBAAyB,GAC/B;IAAE,EAAE,EAAE,IAAI,CAAA;CAAE,GACZ;IACI,EAAE,EAAE,KAAK,CAAC;IACV,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,eAAe,EAAE,CAAC;CAC7B,CAAC;AAER,MAAM,MAAM,gBAAgB,GAAG,YAAY,GAAG,oBAAoB,CAAC;AAEnE,MAAM,MAAM,kBAAkB,GACxB;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,MAAM,EAAE,gBAAgB,CAAA;CAAE,GACtC;IACI,EAAE,EAAE,KAAK,CAAC;IACV,MAAM,EAAE,gBAAgB,GAAG,SAAS,CAAC;IACrC,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,eAAe,EAAE,CAAC;CAC7B,CAAC;AAqHR,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,UAEhD;AAsbD;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,WAAW,EAAE,MAAM,GAAG,4BAA4B,CA0BtF;AAuZD;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG,yBAAyB,CAkFhF;AA2CD;;;;;;;;;GASG;AACH,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,kBAAkB,CA0EtF"}
@@ -66,6 +66,7 @@ type PostSaveCallback = SyncCallback;
66
66
  export declare class SaveProcessor extends Emitter<SaveProcessorEvents> {
67
67
  private hasPendingChanges;
68
68
  private debounceTimer;
69
+ private saveLoopPromise;
69
70
  private saveSequence;
70
71
  private readonly SAVE_DEBOUNCE_MS;
71
72
  private readonly MAX_RETRIES;
@@ -83,6 +84,8 @@ export declare class SaveProcessor extends Emitter<SaveProcessorEvents> {
83
84
  forceSave(): Promise<void>;
84
85
  cleanup(): void;
85
86
  private processSaveBatchWithEvents;
87
+ private drainSaveQueue;
88
+ private processOneSaveBatchWithEvents;
86
89
  private getSuccessMessage;
87
90
  private processSaveBatch;
88
91
  private getStagedChanges;
@@ -1 +1 @@
1
- {"version":3,"file":"SaveProcessor.d.ts","sourceRoot":"","sources":["../../src/watch/SaveProcessor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SaveProcessor.d.ts","sourceRoot":"","sources":["../../src/watch/SaveProcessor.ts"],"names":[],"mappings":"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"}
@@ -25,7 +25,7 @@ export interface SyncManagerConfig {
25
25
  export declare function stripNonSemanticYamlFields(yamlFile: string, parsed: Record<string, unknown> | undefined): Record<string, unknown>;
26
26
  export declare class SyncManager extends Emitter<SyncManagerEvents> {
27
27
  private config;
28
- private syncInProgress;
28
+ private syncQueue;
29
29
  constructor(config: SyncManagerConfig);
30
30
  /**
31
31
  * Syncs remote changes while preserving local modifications.
@@ -39,6 +39,7 @@ export declare class SyncManager extends Emitter<SyncManagerEvents> {
39
39
  localOnlyChanges: FileChange[];
40
40
  conflicts: FileChange[];
41
41
  }>;
42
+ private performSyncRemoteChanges;
42
43
  /**
43
44
  * Fetch latest from Anvil and reset the working directory.
44
45
  * @throws {AuthError | GitError} on failure
@@ -1 +1 @@
1
- {"version":3,"file":"SyncManager.d.ts","sourceRoot":"","sources":["../../src/watch/SyncManager.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AACvD,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAKrC,OAAO,EAAE,UAAU,EAAkB,MAAM,iBAAiB,CAAC;AAE7D,OAAO,EAQH,KAAK,UAAU,EAClB,MAAM,oBAAoB,CAAC;AAE5B,MAAM,WAAW,iBAAiB;IAC9B,cAAc,EAAE,EAAE,CAAC;IACnB,gBAAgB,EAAE;QAAE,gBAAgB,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;CACrE;AAED,MAAM,WAAW,iBAAiB;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,UAAU,CAAC;IACvB,UAAU,EAAE,iBAAiB,CAAC;IAC9B,YAAY,EAAE,MAAM,MAAM,CAAC;IAC3B,YAAY,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACtC,gBAAgB,EAAE,MAAM,MAAM,CAAC;IAC/B,WAAW,EAAE,MAAM,MAAM,CAAC;IAC1B,WAAW,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;CAC3C;AAED,wBAAgB,0BAA0B,CACtC,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,GAC5C,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAgBzB;AAED,qBAAa,WAAY,SAAQ,OAAO,CAAC,iBAAiB,CAAC;IACvD,OAAO,CAAC,MAAM,CAAoB;IAClC,OAAO,CAAC,cAAc,CAAS;gBAEnB,MAAM,EAAE,iBAAiB;IAKrC;;;;;;;OAOG;IACG,iBAAiB,CACnB,iBAAiB,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,GAChC,OAAO,CAAC;QAAE,gBAAgB,EAAE,UAAU,EAAE,CAAC;QAAC,SAAS,EAAE,UAAU,EAAE,CAAA;KAAE,CAAC;IAsDvE;;;OAGG;IACG,sBAAsB,CAAC,sBAAsB,GAAE,GAAG,CAAC,MAAM,CAAa,GAAG,OAAO,CAAC,IAAI,CAAC;YAO9E,gCAAgC;YA2BhC,mBAAmB;YAgBnB,sBAAsB;IAapC,OAAO,CAAC,qBAAqB;YAYf,gCAAgC;YAiBhC,gCAAgC;CAkGjD"}
1
+ {"version":3,"file":"SyncManager.d.ts","sourceRoot":"","sources":["../../src/watch/SyncManager.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AACvD,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAKrC,OAAO,EAAE,UAAU,EAAkB,MAAM,iBAAiB,CAAC;AAE7D,OAAO,EAQH,KAAK,UAAU,EAClB,MAAM,oBAAoB,CAAC;AAE5B,MAAM,WAAW,iBAAiB;IAC9B,cAAc,EAAE,EAAE,CAAC;IACnB,gBAAgB,EAAE;QAAE,gBAAgB,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;CACrE;AAED,MAAM,WAAW,iBAAiB;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,UAAU,CAAC;IACvB,UAAU,EAAE,iBAAiB,CAAC;IAC9B,YAAY,EAAE,MAAM,MAAM,CAAC;IAC3B,YAAY,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACtC,gBAAgB,EAAE,MAAM,MAAM,CAAC;IAC/B,WAAW,EAAE,MAAM,MAAM,CAAC;IAC1B,WAAW,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;CAC3C;AAED,wBAAgB,0BAA0B,CACtC,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,GAC5C,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAgBzB;AAED,qBAAa,WAAY,SAAQ,OAAO,CAAC,iBAAiB,CAAC;IACvD,OAAO,CAAC,MAAM,CAAoB;IAClC,OAAO,CAAC,SAAS,CAAuC;gBAE5C,MAAM,EAAE,iBAAiB;IAKrC;;;;;;;OAOG;IACG,iBAAiB,CACnB,iBAAiB,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,GAChC,OAAO,CAAC;QAAE,gBAAgB,EAAE,UAAU,EAAE,CAAC;QAAC,SAAS,EAAE,UAAU,EAAE,CAAA;KAAE,CAAC;YAOzD,wBAAwB;IA8CtC;;;OAGG;IACG,sBAAsB,CAAC,sBAAsB,GAAE,GAAG,CAAC,MAAM,CAAa,GAAG,OAAO,CAAC,IAAI,CAAC;YAO9E,gCAAgC;YA2BhC,mBAAmB;YAgBnB,sBAAsB;IAapC,OAAO,CAAC,qBAAqB;YAYf,gCAAgC;YAiBhC,gCAAgC;CAkGjD"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@anvil-works/anvil-cli",
3
- "version": "0.7.0-canary.13",
3
+ "version": "0.7.0-canary.15",
4
4
  "description": "CLI tool for developing Anvil apps locally",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/api.d.ts",