@indigoai-us/hq-cloud 6.15.64 → 6.15.66
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/bin/sync-runner-watch-loop.d.ts +41 -0
- package/dist/bin/sync-runner-watch-loop.d.ts.map +1 -1
- package/dist/bin/sync-runner-watch-loop.js +466 -72
- package/dist/bin/sync-runner-watch-loop.js.map +1 -1
- package/dist/bin/sync-runner.d.ts +8 -0
- package/dist/bin/sync-runner.d.ts.map +1 -1
- package/dist/bin/sync-runner.js.map +1 -1
- package/dist/bin/sync-runner.test.js +686 -1
- package/dist/bin/sync-runner.test.js.map +1 -1
- package/dist/sync/event-sync.d.ts +4 -0
- package/dist/sync/event-sync.d.ts.map +1 -1
- package/dist/sync/event-sync.js +2 -0
- package/dist/sync/event-sync.js.map +1 -1
- package/dist/sync/push-receiver.d.ts +8 -1
- package/dist/sync/push-receiver.d.ts.map +1 -1
- package/dist/sync/push-receiver.js +20 -8
- package/dist/sync/push-receiver.js.map +1 -1
- package/dist/sync/push-receiver.test.js +24 -0
- package/dist/sync/push-receiver.test.js.map +1 -1
- package/dist/watcher.d.ts +35 -2
- package/dist/watcher.d.ts.map +1 -1
- package/dist/watcher.js +213 -3
- package/dist/watcher.js.map +1 -1
- package/dist/watcher.test.js +120 -7
- package/dist/watcher.test.js.map +1 -1
- package/package.json +1 -1
package/dist/watcher.d.ts
CHANGED
|
@@ -404,6 +404,12 @@ export interface TreeChangeBatch {
|
|
|
404
404
|
/** Approximate path-string bytes dropped from the detailed batch. */
|
|
405
405
|
droppedBytes?: number;
|
|
406
406
|
}
|
|
407
|
+
/** One bounded startup recovery scan, run after chokidar finishes discovery. */
|
|
408
|
+
export interface TreeWatcherWarmupCatchup {
|
|
409
|
+
batch: TreeChangeBatch;
|
|
410
|
+
/** In-scope filesystem entries inspected by the one necessary local scan. */
|
|
411
|
+
scannedPaths: number;
|
|
412
|
+
}
|
|
407
413
|
/**
|
|
408
414
|
* Listener invoked once per settled debounce window.
|
|
409
415
|
*
|
|
@@ -520,6 +526,17 @@ export declare class TreeWatcher {
|
|
|
520
526
|
private arm;
|
|
521
527
|
private emit;
|
|
522
528
|
private clearPending;
|
|
529
|
+
/**
|
|
530
|
+
* Recover mutations that happened while chokidar was building its initial
|
|
531
|
+
* watch set. `ignoreInitial` intentionally suppresses those initial events,
|
|
532
|
+
* so this makes one post-ready local pass and emits only timestamp-new paths.
|
|
533
|
+
*
|
|
534
|
+
* `journalRelativePaths` supplies the durable prior inventory: comparing it
|
|
535
|
+
* with the paths observed by the same walk finds a warm-up deletion without a
|
|
536
|
+
* second filesystem walk. Unchanged files never enter the returned batch, so
|
|
537
|
+
* the runner retains the normal path-scoped push behavior.
|
|
538
|
+
*/
|
|
539
|
+
collectWarmupCatchup(sinceMs: number, journalRelativePaths?: Iterable<string>): TreeWatcherWarmupCatchup;
|
|
523
540
|
/** True while the watch backend is active. */
|
|
524
541
|
isWatching(): boolean;
|
|
525
542
|
/** Number of directories admitted by the active backend (zero when stopped). */
|
|
@@ -584,10 +601,20 @@ export interface PushEventEmitterOptions {
|
|
|
584
601
|
telemetryClaims?: TelemetryClaims | null;
|
|
585
602
|
/**
|
|
586
603
|
* Maximum paths remembered to suppress unchanged upsert announcements.
|
|
587
|
-
*
|
|
588
|
-
* missed real change from stale persisted state.
|
|
604
|
+
* Applies to both the hot in-memory LRU and its durable counterpart.
|
|
589
605
|
*/
|
|
590
606
|
lastPublishedContentHashMaxPaths?: number;
|
|
607
|
+
/**
|
|
608
|
+
* Existing runner state directory for restart-durable publish suppression.
|
|
609
|
+
* Omitted for lightweight callers and isolated unit tests.
|
|
610
|
+
*/
|
|
611
|
+
lastPublishedContentHashStateDir?: string;
|
|
612
|
+
/**
|
|
613
|
+
* Hashes already present in the durable sync journal when a pre-persistence
|
|
614
|
+
* installation first creates this state store. They are only used to seed a
|
|
615
|
+
* brand-new store; subsequent state is written after publish success.
|
|
616
|
+
*/
|
|
617
|
+
initialPublishedContentHashes?: Readonly<Record<string, string>>;
|
|
591
618
|
}
|
|
592
619
|
/**
|
|
593
620
|
* Minimal structured logger surface for {@link PushEventEmitter}. A pino
|
|
@@ -648,6 +675,8 @@ export declare class PushEventEmitter {
|
|
|
648
675
|
private readonly telemetryClient;
|
|
649
676
|
private readonly telemetryClaims;
|
|
650
677
|
private readonly lastPublishedContentHashes;
|
|
678
|
+
private readonly durablePublishedContentHashes;
|
|
679
|
+
private readonly lastPublishedContentHashMaxPaths;
|
|
651
680
|
private internalSeq;
|
|
652
681
|
private readonly nextSeq;
|
|
653
682
|
private publishTail;
|
|
@@ -670,6 +699,10 @@ export declare class PushEventEmitter {
|
|
|
670
699
|
emitForBatch(batch: TreeChangeBatch): Promise<void>;
|
|
671
700
|
private emitEntries;
|
|
672
701
|
private emitOne;
|
|
702
|
+
private openDurablePublishedContentHashes;
|
|
703
|
+
private wasPublished;
|
|
704
|
+
private setDurablePublishedContentHash;
|
|
705
|
+
private deleteDurablePublishedContentHash;
|
|
673
706
|
private emitPublishFailureTelemetry;
|
|
674
707
|
}
|
|
675
708
|
export {};
|
package/dist/watcher.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"watcher.d.ts","sourceRoot":"","sources":["../src/watcher.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"watcher.d.ts","sourceRoot":"","sources":["../src/watcher.ts"],"names":[],"mappings":"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"}
|
package/dist/watcher.js
CHANGED
|
@@ -12,8 +12,9 @@ import * as path from "path";
|
|
|
12
12
|
import { watch } from "chokidar";
|
|
13
13
|
import { createIgnoreFilter } from "./ignore.js";
|
|
14
14
|
import { isCoveredByRecursiveRoot, planWatchRoots, } from "./watch-roots.js";
|
|
15
|
-
import { vaultKeyForLocalPath } from "./local-path-codec.js";
|
|
15
|
+
import { localPathForVaultKey, vaultKeyForLocalPath } from "./local-path-codec.js";
|
|
16
16
|
import { isPersonalVaultExcluded } from "./personal-vault-exclusions.js";
|
|
17
|
+
import { StateStore } from "./sync/state-store.js";
|
|
17
18
|
import { AGENCY_SYNC_REL, CONTINUITY_POINTER_REL, SESSION_LOGS_SYNC_REL, PERSONAL_VAULT_EXCLUDED_TOP_LEVEL, } from "./personal-vault.js";
|
|
18
19
|
import { getPublishFailureOutcome, getPublishSuccessOutcome, serializePublishError, } from "./sync/push-transport.js";
|
|
19
20
|
import { emitCloudTelemetry, } from "./telemetry-events.js";
|
|
@@ -1433,6 +1434,79 @@ export class TreeWatcher {
|
|
|
1433
1434
|
this.droppedRouteHints.clear();
|
|
1434
1435
|
this.droppedRoutesUnknown = false;
|
|
1435
1436
|
}
|
|
1437
|
+
/**
|
|
1438
|
+
* Recover mutations that happened while chokidar was building its initial
|
|
1439
|
+
* watch set. `ignoreInitial` intentionally suppresses those initial events,
|
|
1440
|
+
* so this makes one post-ready local pass and emits only timestamp-new paths.
|
|
1441
|
+
*
|
|
1442
|
+
* `journalRelativePaths` supplies the durable prior inventory: comparing it
|
|
1443
|
+
* with the paths observed by the same walk finds a warm-up deletion without a
|
|
1444
|
+
* second filesystem walk. Unchanged files never enter the returned batch, so
|
|
1445
|
+
* the runner retains the normal path-scoped push behavior.
|
|
1446
|
+
*/
|
|
1447
|
+
collectWarmupCatchup(sinceMs, journalRelativePaths = []) {
|
|
1448
|
+
const paths = new Map();
|
|
1449
|
+
const changes = new Map();
|
|
1450
|
+
const observed = new Set();
|
|
1451
|
+
let scannedPaths = 0;
|
|
1452
|
+
const record = (absolutePath, kind) => {
|
|
1453
|
+
const absolute = path.resolve(absolutePath);
|
|
1454
|
+
const relative = vaultKeyForLocalPath(this.hqRoot, absolute);
|
|
1455
|
+
observed.add(relative);
|
|
1456
|
+
let entry;
|
|
1457
|
+
try {
|
|
1458
|
+
entry = fs.lstatSync(absolute);
|
|
1459
|
+
}
|
|
1460
|
+
catch {
|
|
1461
|
+
return;
|
|
1462
|
+
}
|
|
1463
|
+
if (entry.mtimeMs < sinceMs && entry.ctimeMs < sinceMs)
|
|
1464
|
+
return;
|
|
1465
|
+
paths.set(absolute, relative);
|
|
1466
|
+
changes.set(absolute, { kind });
|
|
1467
|
+
};
|
|
1468
|
+
const visit = (dir) => {
|
|
1469
|
+
let entries;
|
|
1470
|
+
try {
|
|
1471
|
+
entries = fs.readdirSync(dir, { withFileTypes: true });
|
|
1472
|
+
}
|
|
1473
|
+
catch {
|
|
1474
|
+
return;
|
|
1475
|
+
}
|
|
1476
|
+
for (const entry of entries) {
|
|
1477
|
+
const absolute = path.join(dir, entry.name);
|
|
1478
|
+
scannedPaths += 1;
|
|
1479
|
+
if (entry.isDirectory()) {
|
|
1480
|
+
if (this.shouldEmit(absolute, true))
|
|
1481
|
+
visit(absolute);
|
|
1482
|
+
continue;
|
|
1483
|
+
}
|
|
1484
|
+
if (!entry.isFile() && !entry.isSymbolicLink())
|
|
1485
|
+
continue;
|
|
1486
|
+
// A symlink may be admitted only by a directory-only include rule.
|
|
1487
|
+
if (!this.shouldEmit(absolute, false) &&
|
|
1488
|
+
!this.shouldEmit(absolute, true))
|
|
1489
|
+
continue;
|
|
1490
|
+
record(absolute, "change");
|
|
1491
|
+
}
|
|
1492
|
+
};
|
|
1493
|
+
visit(this.hqRoot);
|
|
1494
|
+
for (const relative of journalRelativePaths) {
|
|
1495
|
+
if (observed.has(relative))
|
|
1496
|
+
continue;
|
|
1497
|
+
const absolute = localPathForVaultKey(this.hqRoot, relative);
|
|
1498
|
+
if (!this.shouldEmit(absolute, false) && !this.shouldEmit(absolute, true)) {
|
|
1499
|
+
continue;
|
|
1500
|
+
}
|
|
1501
|
+
paths.set(absolute, relative);
|
|
1502
|
+
const deleteSnapshots = this.captureLocalDeleteSnapshots?.(relative, "unlink") ?? [];
|
|
1503
|
+
changes.set(absolute, {
|
|
1504
|
+
kind: "unlink",
|
|
1505
|
+
...(deleteSnapshots.length > 0 ? { deleteSnapshots } : {}),
|
|
1506
|
+
});
|
|
1507
|
+
}
|
|
1508
|
+
return { batch: { paths, changes }, scannedPaths };
|
|
1509
|
+
}
|
|
1436
1510
|
/** True while the watch backend is active. */
|
|
1437
1511
|
isWatching() {
|
|
1438
1512
|
return this.backend !== null;
|
|
@@ -1503,6 +1577,85 @@ async function computeContentHash(absolutePath) {
|
|
|
1503
1577
|
}
|
|
1504
1578
|
/** Maximum paths remembered by one emitter to suppress unchanged announcements. */
|
|
1505
1579
|
export const DEFAULT_PUBLISHED_CONTENT_HASH_MAX_PATHS = 50_000;
|
|
1580
|
+
const PUBLISHED_CONTENT_HASH_RECORD_SET = 0x5031;
|
|
1581
|
+
const PUBLISHED_CONTENT_HASH_RECORD_DELETE = 0x5032;
|
|
1582
|
+
/**
|
|
1583
|
+
* Bounded, crash-safe state of hashes whose push event transport acknowledged
|
|
1584
|
+
* publication. This is intentionally separate from the sync journal: a
|
|
1585
|
+
* journal row proves the object upload completed, while the event publish that
|
|
1586
|
+
* follows can still fail or time out.
|
|
1587
|
+
*/
|
|
1588
|
+
class DurablePublishedContentHashes {
|
|
1589
|
+
store;
|
|
1590
|
+
constructor(stateDir, scopeId, maxPaths, initialHashes) {
|
|
1591
|
+
this.store = StateStore.open({
|
|
1592
|
+
rootDir: stateDir,
|
|
1593
|
+
scopeId: `event-push-published-content:${scopeId}`,
|
|
1594
|
+
initialState: boundedDurablePublishedContentHashState(initialHashes, maxPaths),
|
|
1595
|
+
reduce: reduceDurablePublishedContentHashState,
|
|
1596
|
+
maxRecordsBeforeCompaction: Math.min(Math.max(maxPaths, 256), 4_096),
|
|
1597
|
+
});
|
|
1598
|
+
}
|
|
1599
|
+
get(relativePath) {
|
|
1600
|
+
return this.store.getState().hashes[relativePath];
|
|
1601
|
+
}
|
|
1602
|
+
set(relativePath, contentHash, maxPaths) {
|
|
1603
|
+
this.store.append(PUBLISHED_CONTENT_HASH_RECORD_SET, {
|
|
1604
|
+
relativePath,
|
|
1605
|
+
contentHash,
|
|
1606
|
+
maxPaths,
|
|
1607
|
+
});
|
|
1608
|
+
}
|
|
1609
|
+
delete(relativePath) {
|
|
1610
|
+
this.store.append(PUBLISHED_CONTENT_HASH_RECORD_DELETE, { relativePath });
|
|
1611
|
+
}
|
|
1612
|
+
}
|
|
1613
|
+
function boundedDurablePublishedContentHashState(hashes, maxPaths) {
|
|
1614
|
+
const order = Object.keys(hashes).slice(-maxPaths);
|
|
1615
|
+
return {
|
|
1616
|
+
hashes: Object.fromEntries(order.map((relativePath) => [relativePath, hashes[relativePath]])),
|
|
1617
|
+
order,
|
|
1618
|
+
};
|
|
1619
|
+
}
|
|
1620
|
+
function reduceDurablePublishedContentHashState(state, record) {
|
|
1621
|
+
if (record.type === PUBLISHED_CONTENT_HASH_RECORD_SET) {
|
|
1622
|
+
const payload = record.payload;
|
|
1623
|
+
if (typeof payload.relativePath !== "string" ||
|
|
1624
|
+
payload.relativePath.length === 0 ||
|
|
1625
|
+
typeof payload.contentHash !== "string" ||
|
|
1626
|
+
payload.contentHash.length === 0 ||
|
|
1627
|
+
typeof payload.maxPaths !== "number" ||
|
|
1628
|
+
!Number.isSafeInteger(payload.maxPaths) ||
|
|
1629
|
+
payload.maxPaths < 1) {
|
|
1630
|
+
throw new Error("published-content-hashes: invalid set record");
|
|
1631
|
+
}
|
|
1632
|
+
const maxPaths = payload.maxPaths;
|
|
1633
|
+
const hashes = { ...state.hashes, [payload.relativePath]: payload.contentHash };
|
|
1634
|
+
const order = state.order.filter((path) => path !== payload.relativePath);
|
|
1635
|
+
order.push(payload.relativePath);
|
|
1636
|
+
while (order.length > maxPaths) {
|
|
1637
|
+
const oldest = order.shift();
|
|
1638
|
+
if (oldest !== undefined)
|
|
1639
|
+
delete hashes[oldest];
|
|
1640
|
+
}
|
|
1641
|
+
return { hashes, order };
|
|
1642
|
+
}
|
|
1643
|
+
if (record.type === PUBLISHED_CONTENT_HASH_RECORD_DELETE) {
|
|
1644
|
+
const payload = record.payload;
|
|
1645
|
+
if (typeof payload.relativePath !== "string" || payload.relativePath.length === 0) {
|
|
1646
|
+
throw new Error("published-content-hashes: invalid delete record");
|
|
1647
|
+
}
|
|
1648
|
+
if (!(payload.relativePath in state.hashes))
|
|
1649
|
+
return state;
|
|
1650
|
+
const hashes = { ...state.hashes };
|
|
1651
|
+
delete hashes[payload.relativePath];
|
|
1652
|
+
return {
|
|
1653
|
+
hashes,
|
|
1654
|
+
order: state.order.filter((path) => path !== payload.relativePath),
|
|
1655
|
+
};
|
|
1656
|
+
}
|
|
1657
|
+
throw new Error("published-content-hashes: unknown record type");
|
|
1658
|
+
}
|
|
1506
1659
|
/**
|
|
1507
1660
|
* LRU state of successfully announced file content, bounded for daemon uptime.
|
|
1508
1661
|
*
|
|
@@ -1600,6 +1753,8 @@ export class PushEventEmitter {
|
|
|
1600
1753
|
telemetryClient;
|
|
1601
1754
|
telemetryClaims;
|
|
1602
1755
|
lastPublishedContentHashes;
|
|
1756
|
+
durablePublishedContentHashes;
|
|
1757
|
+
lastPublishedContentHashMaxPaths;
|
|
1603
1758
|
internalSeq = 0;
|
|
1604
1759
|
nextSeq;
|
|
1605
1760
|
publishTail = Promise.resolve();
|
|
@@ -1612,10 +1767,15 @@ export class PushEventEmitter {
|
|
|
1612
1767
|
this.logger = opts.logger;
|
|
1613
1768
|
this.telemetryClient = opts.telemetryClient;
|
|
1614
1769
|
this.telemetryClaims = opts.telemetryClaims;
|
|
1615
|
-
this.lastPublishedContentHashes = new BoundedPublishedContentHashes(opts.lastPublishedContentHashMaxPaths);
|
|
1616
1770
|
this.onError =
|
|
1617
1771
|
opts.onError ??
|
|
1618
1772
|
((err, ctx) => console.error("PushEventEmitter error:", ctx.relativePath ?? "", err));
|
|
1773
|
+
this.lastPublishedContentHashMaxPaths = Math.max(1, Math.floor(opts.lastPublishedContentHashMaxPaths ??
|
|
1774
|
+
DEFAULT_PUBLISHED_CONTENT_HASH_MAX_PATHS));
|
|
1775
|
+
this.lastPublishedContentHashes = new BoundedPublishedContentHashes(this.lastPublishedContentHashMaxPaths);
|
|
1776
|
+
this.durablePublishedContentHashes = opts.lastPublishedContentHashStateDir
|
|
1777
|
+
? this.openDurablePublishedContentHashes(opts.lastPublishedContentHashStateDir, opts.initialPublishedContentHashes ?? {})
|
|
1778
|
+
: null;
|
|
1619
1779
|
this.onPublishOutcome = opts.onPublishOutcome ?? (() => undefined);
|
|
1620
1780
|
this.nextSeq =
|
|
1621
1781
|
opts.getSequenceNumber ??
|
|
@@ -1684,13 +1844,14 @@ export class PushEventEmitter {
|
|
|
1684
1844
|
if (st.isDirectory())
|
|
1685
1845
|
return undefined;
|
|
1686
1846
|
const contentHash = await computeContentHash(absolutePath);
|
|
1687
|
-
if (this.
|
|
1847
|
+
if (this.wasPublished(relativePath, contentHash)) {
|
|
1688
1848
|
return undefined;
|
|
1689
1849
|
}
|
|
1690
1850
|
// A different observed revision breaks the old publication guarantee even
|
|
1691
1851
|
// if this transport attempt fails. Clearing first makes a later revert
|
|
1692
1852
|
// re-announce instead of silently treating it as the old content.
|
|
1693
1853
|
this.lastPublishedContentHashes.delete(relativePath);
|
|
1854
|
+
this.deleteDurablePublishedContentHash(relativePath);
|
|
1694
1855
|
event = {
|
|
1695
1856
|
kind: "upsert",
|
|
1696
1857
|
relativePath,
|
|
@@ -1719,6 +1880,7 @@ export class PushEventEmitter {
|
|
|
1719
1880
|
// Invalidate before the attempt for the same failure/recreation posture
|
|
1720
1881
|
// as a changed upsert above.
|
|
1721
1882
|
this.lastPublishedContentHashes.delete(relativePath);
|
|
1883
|
+
this.deleteDurablePublishedContentHash(relativePath);
|
|
1722
1884
|
event = {
|
|
1723
1885
|
kind: "delete",
|
|
1724
1886
|
relativePath,
|
|
@@ -1747,11 +1909,13 @@ export class PushEventEmitter {
|
|
|
1747
1909
|
await this.transport.publish(event);
|
|
1748
1910
|
if (event.kind === "upsert" && event.contentHash !== undefined) {
|
|
1749
1911
|
this.lastPublishedContentHashes.set(relativePath, event.contentHash);
|
|
1912
|
+
this.setDurablePublishedContentHash(relativePath, event.contentHash);
|
|
1750
1913
|
}
|
|
1751
1914
|
else {
|
|
1752
1915
|
// A later recreation with the same bytes is a real state transition,
|
|
1753
1916
|
// so a successfully published tombstone must never suppress it.
|
|
1754
1917
|
this.lastPublishedContentHashes.delete(relativePath);
|
|
1918
|
+
this.deleteDurablePublishedContentHash(relativePath);
|
|
1755
1919
|
}
|
|
1756
1920
|
const outcome = getPublishSuccessOutcome(event);
|
|
1757
1921
|
return {
|
|
@@ -1775,6 +1939,52 @@ export class PushEventEmitter {
|
|
|
1775
1939
|
};
|
|
1776
1940
|
}
|
|
1777
1941
|
}
|
|
1942
|
+
openDurablePublishedContentHashes(stateDir, initialHashes) {
|
|
1943
|
+
try {
|
|
1944
|
+
return new DurablePublishedContentHashes(stateDir, `${this.originTenantId}:${this.originDeviceId}`, this.lastPublishedContentHashMaxPaths, initialHashes);
|
|
1945
|
+
}
|
|
1946
|
+
catch (err) {
|
|
1947
|
+
this.onError(err instanceof Error ? err : new Error(String(err)), {});
|
|
1948
|
+
return null;
|
|
1949
|
+
}
|
|
1950
|
+
}
|
|
1951
|
+
wasPublished(relativePath, contentHash) {
|
|
1952
|
+
if (this.lastPublishedContentHashes.get(relativePath) === contentHash)
|
|
1953
|
+
return true;
|
|
1954
|
+
try {
|
|
1955
|
+
if (this.durablePublishedContentHashes?.get(relativePath) !== contentHash) {
|
|
1956
|
+
return false;
|
|
1957
|
+
}
|
|
1958
|
+
this.lastPublishedContentHashes.set(relativePath, contentHash);
|
|
1959
|
+
return true;
|
|
1960
|
+
}
|
|
1961
|
+
catch (err) {
|
|
1962
|
+
this.onError(err instanceof Error ? err : new Error(String(err)), {
|
|
1963
|
+
relativePath,
|
|
1964
|
+
});
|
|
1965
|
+
return false;
|
|
1966
|
+
}
|
|
1967
|
+
}
|
|
1968
|
+
setDurablePublishedContentHash(relativePath, contentHash) {
|
|
1969
|
+
try {
|
|
1970
|
+
this.durablePublishedContentHashes?.set(relativePath, contentHash, this.lastPublishedContentHashMaxPaths);
|
|
1971
|
+
}
|
|
1972
|
+
catch (err) {
|
|
1973
|
+
this.onError(err instanceof Error ? err : new Error(String(err)), {
|
|
1974
|
+
relativePath,
|
|
1975
|
+
});
|
|
1976
|
+
}
|
|
1977
|
+
}
|
|
1978
|
+
deleteDurablePublishedContentHash(relativePath) {
|
|
1979
|
+
try {
|
|
1980
|
+
this.durablePublishedContentHashes?.delete(relativePath);
|
|
1981
|
+
}
|
|
1982
|
+
catch (err) {
|
|
1983
|
+
this.onError(err instanceof Error ? err : new Error(String(err)), {
|
|
1984
|
+
relativePath,
|
|
1985
|
+
});
|
|
1986
|
+
}
|
|
1987
|
+
}
|
|
1778
1988
|
emitPublishFailureTelemetry(kind, stage) {
|
|
1779
1989
|
void emitCloudTelemetry(this.telemetryClient, {
|
|
1780
1990
|
eventName: "push_event_failed",
|