@detergent-software/atk 8.9.0-dev.8 → 8.9.0-dev.9
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/CHANGELOG.md +8 -0
- package/build/lib/lockfile.d.ts +10 -6
- package/build/lib/lockfile.d.ts.map +1 -1
- package/build/lib/lockfile.js +163 -48
- package/build/lib/lockfile.js.map +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,11 @@
|
|
|
1
|
+
## [8.9.0-dev.9](https://emergentcode.visualstudio.com/Emergent%20Software/_git/Emergent.AgenticToolkit/branchCompare?baseVersion=GTv8.9.0-dev.8&targetVersion=GTv8.9.0-dev.9) (2026-10-18)
|
|
2
|
+
|
|
3
|
+
### Bug Fixes
|
|
4
|
+
|
|
5
|
+
* **cli:** judge an unreadable lock by its refreshes (ATK-588) ([8ba6f59](https://emergentcode.visualstudio.com/Emergent%20Software/_git/Emergent.AgenticToolkit/commit/8ba6f596fa56e4511c108c2e39bbf5f6c2b90c25))
|
|
6
|
+
* **cli:** keep the lockfile lock with its live holder (ATK-588) ([e39f581](https://emergentcode.visualstudio.com/Emergent%20Software/_git/Emergent.AgenticToolkit/commit/e39f5816db6fcfffbd2a6ffc8d21d7bff693edf5))
|
|
7
|
+
* **cli:** release only this run's lockfile lock (ATK-588) ([0d33b9a](https://emergentcode.visualstudio.com/Emergent%20Software/_git/Emergent.AgenticToolkit/commit/0d33b9ab3f70b58de097d2a9b4dae1e11a0bff76))
|
|
8
|
+
|
|
1
9
|
## [8.9.0-dev.8](https://emergentcode.visualstudio.com/Emergent%20Software/_git/Emergent.AgenticToolkit/branchCompare?baseVersion=GTv8.9.0-dev.7&targetVersion=GTv8.9.0-dev.8) (2026-10-18)
|
|
2
10
|
|
|
3
11
|
### Bug Fixes
|
package/build/lib/lockfile.d.ts
CHANGED
|
@@ -4,9 +4,11 @@ import { type InstalledAsset, type Lockfile } from './schemas/lockfile.js';
|
|
|
4
4
|
export interface AcquireLockOptions {
|
|
5
5
|
/** Maximum time (ms) to wait to acquire the lock. Default: 30 000. */
|
|
6
6
|
acquireTimeout?: number;
|
|
7
|
+
/** Interval (ms) at which the holder refreshes the lock. Default: 10 000. */
|
|
8
|
+
refreshInterval?: number;
|
|
7
9
|
/** Interval (ms) between retry attempts. Default: 200. */
|
|
8
10
|
retryInterval?: number;
|
|
9
|
-
/** Time (ms) after which a held lock is considered stale. Default: 60 000. */
|
|
11
|
+
/** Time (ms) without a refresh after which a held lock is considered stale. Default: 60 000. */
|
|
10
12
|
staleTimeout?: number;
|
|
11
13
|
}
|
|
12
14
|
/** What identifies an installed asset in the lockfile. */
|
|
@@ -54,7 +56,7 @@ export declare class LockfileError extends GuidedError {
|
|
|
54
56
|
}
|
|
55
57
|
export declare class LockfileLockedError extends GuidedError {
|
|
56
58
|
name: string;
|
|
57
|
-
constructor(pid: number, sentinelPath: string, options?: GuidedErrorOptions);
|
|
59
|
+
constructor(pid: number | undefined, sentinelPath: string, options?: GuidedErrorOptions);
|
|
58
60
|
}
|
|
59
61
|
/** What the user sees in place of a {@link LockfileLockedError}'s PID and sentinel path. */
|
|
60
62
|
export declare const LOCKFILE_LOCKED_MESSAGE = "Another ATK process is currently modifying this project. Please wait and try again.";
|
|
@@ -62,10 +64,12 @@ export declare const LOCKFILE_LOCKED_MESSAGE = "Another ATK process is currently
|
|
|
62
64
|
* Acquire an advisory lock on the lockfile.
|
|
63
65
|
*
|
|
64
66
|
* Creates a sentinel file (`.atk-lock.json.lock`) atomically using the `'wx'`
|
|
65
|
-
* flag
|
|
66
|
-
*
|
|
67
|
-
*
|
|
68
|
-
*
|
|
67
|
+
* flag, then refreshes its mtime every `refreshInterval` ms until
|
|
68
|
+
* {@link releaseLockfileLock}. If the sentinel already exists the function will:
|
|
69
|
+
* 1. Read the sentinel's holding PID and its mtime (the holder's last refresh).
|
|
70
|
+
* 2. If the holding PID is dead **or** the holder hasn't refreshed it for `staleTimeout`
|
|
71
|
+
* (the only test when nobody can read it), remove the stale sentinel under a guard
|
|
72
|
+
* file and retry immediately.
|
|
69
73
|
* 3. Otherwise wait `retryInterval` ms and retry, up to `acquireTimeout` ms total.
|
|
70
74
|
*
|
|
71
75
|
* @throws {LockfileLockedError} if the lock cannot be acquired within the timeout.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lockfile.d.ts","sourceRoot":"","sources":["../../src/lib/lockfile.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAGpD,OAAO,EAAE,WAAW,EAAE,KAAK,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAEnE,OAAO,EAAE,KAAK,cAAc,EAAE,KAAK,QAAQ,EAAkB,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"lockfile.d.ts","sourceRoot":"","sources":["../../src/lib/lockfile.ts"],"names":[],"mappings":"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"}
|
package/build/lib/lockfile.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { existsSync } from 'node:fs';
|
|
2
|
-
import { readFile, unlink, writeFile } from 'node:fs/promises';
|
|
2
|
+
import { lstat, readFile, unlink, utimes, writeFile } from 'node:fs/promises';
|
|
3
3
|
import { join } from 'node:path';
|
|
4
4
|
import { setTimeout as delay } from 'node:timers/promises';
|
|
5
5
|
import { isExcludedForTools } from './asset-tools.js';
|
|
@@ -9,20 +9,30 @@ import { LockfileSchema } from './schemas/lockfile.js';
|
|
|
9
9
|
import { writeJsonFile } from './write-file.js';
|
|
10
10
|
const LOCKFILE_NAME = '.atk-lock.json';
|
|
11
11
|
const LOCK_SENTINEL_NAME = '.atk-lock.json.lock';
|
|
12
|
+
/** Held by a run while it removes a stale sentinel, so two runs never remove each other's new lock. */
|
|
13
|
+
const LOCK_GUARD_SUFFIX = '.stale';
|
|
12
14
|
const CURRENT_LOCK_VERSION = 1;
|
|
13
|
-
/** Default
|
|
15
|
+
/** Default time (ms) without a refresh after which a lock is stale, even if its PID is alive (a reused PID). */
|
|
14
16
|
const DEFAULT_STALE_TIMEOUT_MS = 60_000;
|
|
17
|
+
/** Default interval (ms) at which the holder refreshes the sentinel's mtime. */
|
|
18
|
+
const DEFAULT_REFRESH_INTERVAL_MS = 10_000;
|
|
15
19
|
/** Default interval (ms) between retry attempts when the lock is held. */
|
|
16
20
|
const DEFAULT_RETRY_INTERVAL_MS = 200;
|
|
17
21
|
/** Default maximum time (ms) to wait to acquire the lock before giving up. */
|
|
18
22
|
const DEFAULT_ACQUIRE_TIMEOUT_MS = 30_000;
|
|
23
|
+
/** Age (ms) after which a guard was left by a run that crashed: one is held only for a read and an unlink. */
|
|
24
|
+
const GUARD_STALE_MS = 10_000;
|
|
25
|
+
/** How long (ms) to retry a sentinel create that Windows refuses while another run deletes it. */
|
|
26
|
+
const BUSY_RETRY_MS = 2_000;
|
|
27
|
+
/** The refresh timer of each lock this process holds, by sentinel path. */
|
|
28
|
+
const heartbeats = new Map();
|
|
19
29
|
export class LockfileError extends GuidedError {
|
|
20
30
|
name = 'LockfileError';
|
|
21
31
|
}
|
|
22
32
|
export class LockfileLockedError extends GuidedError {
|
|
23
33
|
name = 'LockfileLockedError';
|
|
24
34
|
constructor(pid, sentinelPath, options = {}) {
|
|
25
|
-
super(`Lockfile is held by PID ${pid} (sentinel: ${sentinelPath})`, options);
|
|
35
|
+
super(`Lockfile is held by ${pid === undefined ? 'another process' : `PID ${pid}`} (sentinel: ${sentinelPath})`, options);
|
|
26
36
|
}
|
|
27
37
|
}
|
|
28
38
|
/** What the user sees in place of a {@link LockfileLockedError}'s PID and sentinel path. */
|
|
@@ -31,10 +41,12 @@ export const LOCKFILE_LOCKED_MESSAGE = 'Another ATK process is currently modifyi
|
|
|
31
41
|
* Acquire an advisory lock on the lockfile.
|
|
32
42
|
*
|
|
33
43
|
* Creates a sentinel file (`.atk-lock.json.lock`) atomically using the `'wx'`
|
|
34
|
-
* flag
|
|
35
|
-
*
|
|
36
|
-
*
|
|
37
|
-
*
|
|
44
|
+
* flag, then refreshes its mtime every `refreshInterval` ms until
|
|
45
|
+
* {@link releaseLockfileLock}. If the sentinel already exists the function will:
|
|
46
|
+
* 1. Read the sentinel's holding PID and its mtime (the holder's last refresh).
|
|
47
|
+
* 2. If the holding PID is dead **or** the holder hasn't refreshed it for `staleTimeout`
|
|
48
|
+
* (the only test when nobody can read it), remove the stale sentinel under a guard
|
|
49
|
+
* file and retry immediately.
|
|
38
50
|
* 3. Otherwise wait `retryInterval` ms and retry, up to `acquireTimeout` ms total.
|
|
39
51
|
*
|
|
40
52
|
* @throws {LockfileLockedError} if the lock cannot be acquired within the timeout.
|
|
@@ -42,60 +54,55 @@ export const LOCKFILE_LOCKED_MESSAGE = 'Another ATK process is currently modifyi
|
|
|
42
54
|
export async function acquireLockfileLock(projectDir, options) {
|
|
43
55
|
const sentinelPath = getLockSentinelPath(projectDir);
|
|
44
56
|
const acquireTimeout = options?.acquireTimeout ?? DEFAULT_ACQUIRE_TIMEOUT_MS;
|
|
57
|
+
const refreshInterval = options?.refreshInterval ?? DEFAULT_REFRESH_INTERVAL_MS;
|
|
45
58
|
const retryInterval = options?.retryInterval ?? DEFAULT_RETRY_INTERVAL_MS;
|
|
46
59
|
const staleTimeout = options?.staleTimeout ?? DEFAULT_STALE_TIMEOUT_MS;
|
|
47
60
|
const deadline = Date.now() + acquireTimeout;
|
|
61
|
+
let busySince;
|
|
48
62
|
while (true) {
|
|
49
63
|
try {
|
|
50
64
|
const data = { pid: process.pid, timestamp: Date.now() };
|
|
51
65
|
await writeFile(sentinelPath, JSON.stringify(data), { flag: 'wx' });
|
|
52
66
|
// Sentinel created successfully — lock acquired.
|
|
67
|
+
startHeartbeat(sentinelPath, refreshInterval);
|
|
53
68
|
return;
|
|
54
69
|
}
|
|
55
70
|
catch (err) {
|
|
56
|
-
if (
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
const raw = await readFile(sentinelPath, 'utf-8');
|
|
63
|
-
existing = JSON.parse(raw);
|
|
64
|
-
}
|
|
65
|
-
catch {
|
|
66
|
-
// If we cannot read/parse the sentinel, treat it as stale and
|
|
67
|
-
// remove it so we can retry on the next iteration.
|
|
68
|
-
try {
|
|
69
|
-
await unlink(sentinelPath);
|
|
70
|
-
}
|
|
71
|
-
catch {
|
|
72
|
-
// Another process may have already removed it — ignore.
|
|
71
|
+
if (isBusyError(err)) {
|
|
72
|
+
// Windows refuses the create while another run's delete of the sentinel is pending; a
|
|
73
|
+
// directory we can't write to refuses it for good, so give up after a moment.
|
|
74
|
+
busySince ??= Date.now();
|
|
75
|
+
if (Date.now() - busySince >= BUSY_RETRY_MS || Date.now() >= deadline) {
|
|
76
|
+
throw err;
|
|
73
77
|
}
|
|
78
|
+
await delay(retryInterval);
|
|
74
79
|
continue;
|
|
75
80
|
}
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
try {
|
|
79
|
-
await unlink(sentinelPath);
|
|
80
|
-
}
|
|
81
|
-
catch {
|
|
82
|
-
// Another process may have already removed it — ignore.
|
|
83
|
-
}
|
|
84
|
-
continue;
|
|
85
|
-
}
|
|
86
|
-
// Lock is held by a live process and is not stale — wait and retry.
|
|
87
|
-
if (Date.now() >= deadline) {
|
|
88
|
-
throw new LockfileLockedError(existing.pid, sentinelPath, {
|
|
89
|
-
hint: 'Another ATK process holds the lock. Wait for it to finish, or remove the stale sentinel file.',
|
|
90
|
-
});
|
|
91
|
-
}
|
|
92
|
-
await delay(retryInterval);
|
|
93
|
-
if (Date.now() >= deadline) {
|
|
94
|
-
throw new LockfileLockedError(existing.pid, sentinelPath, {
|
|
95
|
-
hint: 'Another ATK process holds the lock. Wait for it to finish, or remove the stale sentinel file.',
|
|
96
|
-
});
|
|
81
|
+
if (!isEnoentOrExist(err, 'EEXIST')) {
|
|
82
|
+
throw err;
|
|
97
83
|
}
|
|
98
84
|
}
|
|
85
|
+
busySince = undefined;
|
|
86
|
+
// Sentinel already exists — inspect it.
|
|
87
|
+
const existing = await inspectSentinel(sentinelPath);
|
|
88
|
+
if (existing === 'gone') {
|
|
89
|
+
continue;
|
|
90
|
+
}
|
|
91
|
+
if (isSentinelStale(existing, staleTimeout) && (await removeStaleSentinel(sentinelPath, staleTimeout))) {
|
|
92
|
+
continue;
|
|
93
|
+
}
|
|
94
|
+
// Lock is held by a live process, or another run is removing it — wait and retry.
|
|
95
|
+
if (Date.now() >= deadline) {
|
|
96
|
+
throw new LockfileLockedError(existing.pid, sentinelPath, {
|
|
97
|
+
hint: 'Another ATK process holds the lock. Wait for it to finish, or remove the stale sentinel file.',
|
|
98
|
+
});
|
|
99
|
+
}
|
|
100
|
+
await delay(retryInterval);
|
|
101
|
+
if (Date.now() >= deadline) {
|
|
102
|
+
throw new LockfileLockedError(existing.pid, sentinelPath, {
|
|
103
|
+
hint: 'Another ATK process holds the lock. Wait for it to finish, or remove the stale sentinel file.',
|
|
104
|
+
});
|
|
105
|
+
}
|
|
99
106
|
}
|
|
100
107
|
}
|
|
101
108
|
/**
|
|
@@ -304,6 +311,12 @@ export async function readLockfile(projectDir) {
|
|
|
304
311
|
*/
|
|
305
312
|
export async function releaseLockfileLock(projectDir) {
|
|
306
313
|
const sentinelPath = getLockSentinelPath(projectDir);
|
|
314
|
+
stopHeartbeat(sentinelPath);
|
|
315
|
+
// A holder that stalled past the stale timeout may have lost the lock: leave the new holder's.
|
|
316
|
+
const holder = await inspectSentinel(sentinelPath);
|
|
317
|
+
if (holder !== 'gone' && holder.pid !== undefined && holder.pid !== process.pid) {
|
|
318
|
+
return;
|
|
319
|
+
}
|
|
307
320
|
try {
|
|
308
321
|
await unlink(sentinelPath);
|
|
309
322
|
}
|
|
@@ -523,6 +536,39 @@ function buildReverseChains(lockfile, asset, visiting) {
|
|
|
523
536
|
visiting.delete(key);
|
|
524
537
|
return nodes;
|
|
525
538
|
}
|
|
539
|
+
// ---------------------------------------------------------------------------
|
|
540
|
+
// Helpers
|
|
541
|
+
// ---------------------------------------------------------------------------
|
|
542
|
+
/** Read a sentinel's state, or `'gone'` when it no longer exists. */
|
|
543
|
+
async function inspectSentinel(sentinelPath) {
|
|
544
|
+
let mtimeMs;
|
|
545
|
+
try {
|
|
546
|
+
// Not stat: a dangling symlink there would read as gone while the `wx` create still fails.
|
|
547
|
+
({ mtimeMs } = await lstat(sentinelPath));
|
|
548
|
+
}
|
|
549
|
+
catch (err) {
|
|
550
|
+
if (isEnoentOrExist(err, 'ENOENT')) {
|
|
551
|
+
return 'gone';
|
|
552
|
+
}
|
|
553
|
+
// Windows refuses a stat while another run deletes the sentinel: count it as just made.
|
|
554
|
+
return { mtimeMs: Date.now(), pid: undefined };
|
|
555
|
+
}
|
|
556
|
+
try {
|
|
557
|
+
const data = JSON.parse(await readFile(sentinelPath, 'utf-8'));
|
|
558
|
+
return { mtimeMs, pid: typeof data.pid === 'number' ? data.pid : undefined };
|
|
559
|
+
}
|
|
560
|
+
catch {
|
|
561
|
+
return { mtimeMs, pid: undefined };
|
|
562
|
+
}
|
|
563
|
+
}
|
|
564
|
+
/**
|
|
565
|
+
* Windows answers a create or open of a file another process is deleting with one of these
|
|
566
|
+
* (`EPERM` mostly); so does a directory we may not write to.
|
|
567
|
+
*/
|
|
568
|
+
function isBusyError(err) {
|
|
569
|
+
const code = err instanceof Error ? err.code : undefined;
|
|
570
|
+
return code === 'EACCES' || code === 'EBUSY' || code === 'EPERM';
|
|
571
|
+
}
|
|
526
572
|
/**
|
|
527
573
|
* Type-guard that checks whether an unknown `err` is a Node.js filesystem
|
|
528
574
|
* error with the specified `code` (`'EEXIST'` or `'ENOENT'`).
|
|
@@ -530,9 +576,6 @@ function buildReverseChains(lockfile, asset, visiting) {
|
|
|
530
576
|
function isEnoentOrExist(err, code) {
|
|
531
577
|
return err instanceof Error && err.code === code;
|
|
532
578
|
}
|
|
533
|
-
// ---------------------------------------------------------------------------
|
|
534
|
-
// Helpers
|
|
535
|
-
// ---------------------------------------------------------------------------
|
|
536
579
|
/**
|
|
537
580
|
* Check whether a process with the given PID is still running.
|
|
538
581
|
* Uses `process.kill(pid, 0)` which sends no signal but throws if the
|
|
@@ -547,6 +590,14 @@ function isProcessAlive(pid) {
|
|
|
547
590
|
return false;
|
|
548
591
|
}
|
|
549
592
|
}
|
|
593
|
+
/**
|
|
594
|
+
* A holder refreshes its sentinel while it lives. One nobody can read (being created, or a read
|
|
595
|
+
* Windows refused) is judged by its refreshes alone.
|
|
596
|
+
*/
|
|
597
|
+
function isSentinelStale({ mtimeMs, pid }, staleTimeout) {
|
|
598
|
+
const stale = Date.now() - mtimeMs > staleTimeout;
|
|
599
|
+
return pid === undefined ? stale : stale || !isProcessAlive(pid);
|
|
600
|
+
}
|
|
550
601
|
/**
|
|
551
602
|
* The error for a lockfile whose lockVersion is newer than this CLI's, or undefined. A newer CLI
|
|
552
603
|
* bumps it only for a change this one can't read or write safely (schemas/lockfile.ts).
|
|
@@ -565,4 +616,68 @@ async function newerLockVersionError(lockfilePath, data) {
|
|
|
565
616
|
hint: 'Upgrade the ATK CLI to read and write this lockfile.',
|
|
566
617
|
});
|
|
567
618
|
}
|
|
619
|
+
/** Remove a guard left by a run that crashed while holding it. */
|
|
620
|
+
async function removeLeftoverGuard(guardPath) {
|
|
621
|
+
try {
|
|
622
|
+
const { mtimeMs } = await lstat(guardPath);
|
|
623
|
+
if (Date.now() - mtimeMs > GUARD_STALE_MS) {
|
|
624
|
+
await unlink(guardPath);
|
|
625
|
+
}
|
|
626
|
+
}
|
|
627
|
+
catch {
|
|
628
|
+
// Gone already, or being deleted.
|
|
629
|
+
}
|
|
630
|
+
}
|
|
631
|
+
/**
|
|
632
|
+
* Remove a stale sentinel while holding its guard file, judging it again under the guard: a
|
|
633
|
+
* sentinel another run created since it was judged is fresh, so it stays. Returns whether the
|
|
634
|
+
* caller should retry the create at once (the sentinel is gone) rather than wait.
|
|
635
|
+
*/
|
|
636
|
+
async function removeStaleSentinel(sentinelPath, staleTimeout) {
|
|
637
|
+
const guardPath = sentinelPath + LOCK_GUARD_SUFFIX;
|
|
638
|
+
try {
|
|
639
|
+
await writeFile(guardPath, String(process.pid), { flag: 'wx' });
|
|
640
|
+
}
|
|
641
|
+
catch (err) {
|
|
642
|
+
if (isEnoentOrExist(err, 'EEXIST')) {
|
|
643
|
+
await removeLeftoverGuard(guardPath);
|
|
644
|
+
}
|
|
645
|
+
// Another run is removing the sentinel: wait for it.
|
|
646
|
+
return false;
|
|
647
|
+
}
|
|
648
|
+
try {
|
|
649
|
+
const current = await inspectSentinel(sentinelPath);
|
|
650
|
+
if (current === 'gone') {
|
|
651
|
+
return true;
|
|
652
|
+
}
|
|
653
|
+
if (!isSentinelStale(current, staleTimeout)) {
|
|
654
|
+
return false;
|
|
655
|
+
}
|
|
656
|
+
await unlink(sentinelPath);
|
|
657
|
+
return true;
|
|
658
|
+
}
|
|
659
|
+
catch {
|
|
660
|
+
// Windows is still deleting it, or another run did: the next attempt sees which.
|
|
661
|
+
return false;
|
|
662
|
+
}
|
|
663
|
+
finally {
|
|
664
|
+
await unlink(guardPath).catch(() => undefined);
|
|
665
|
+
}
|
|
666
|
+
}
|
|
667
|
+
/** Refresh the sentinel's mtime while this process holds it, so waiters know the holder is live. */
|
|
668
|
+
function startHeartbeat(sentinelPath, refreshInterval) {
|
|
669
|
+
stopHeartbeat(sentinelPath);
|
|
670
|
+
const timer = setInterval(() => {
|
|
671
|
+
const now = new Date();
|
|
672
|
+
// Released meanwhile, or Windows is busy with it: the next tick tries again.
|
|
673
|
+
utimes(sentinelPath, now, now).catch(() => undefined);
|
|
674
|
+
}, refreshInterval);
|
|
675
|
+
// A held lock must not keep the process alive.
|
|
676
|
+
timer.unref();
|
|
677
|
+
heartbeats.set(sentinelPath, timer);
|
|
678
|
+
}
|
|
679
|
+
function stopHeartbeat(sentinelPath) {
|
|
680
|
+
clearInterval(heartbeats.get(sentinelPath));
|
|
681
|
+
heartbeats.delete(sentinelPath);
|
|
682
|
+
}
|
|
568
683
|
//# sourceMappingURL=lockfile.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lockfile.js","sourceRoot":"","sources":["../../src/lib/lockfile.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"lockfile.js","sourceRoot":"","sources":["../../src/lib/lockfile.ts"],"names":[],"mappings":"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"}
|