@microwiseai/snapshot 0.3.46 → 0.3.57
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/commands/access.js +1 -1
- package/dist/commands/access.js.map +1 -1
- package/dist/commands/doctor.d.ts +2 -0
- package/dist/commands/doctor.d.ts.map +1 -0
- package/dist/commands/doctor.js +37 -0
- package/dist/commands/doctor.js.map +1 -0
- package/dist/commands/install.d.ts.map +1 -1
- package/dist/commands/install.js +335 -112
- package/dist/commands/install.js.map +1 -1
- package/dist/commands/setup.d.ts +5 -0
- package/dist/commands/setup.d.ts.map +1 -0
- package/dist/commands/setup.js +52 -0
- package/dist/commands/setup.js.map +1 -0
- package/dist/index.js +16 -0
- package/dist/index.js.map +1 -1
- package/dist/lib/access-sync.d.ts.map +1 -1
- package/dist/lib/access-sync.js +2 -0
- package/dist/lib/access-sync.js.map +1 -1
- package/dist/lib/config.d.ts +15 -0
- package/dist/lib/config.d.ts.map +1 -1
- package/dist/lib/config.js +96 -0
- package/dist/lib/config.js.map +1 -1
- package/dist/lib/gitlab.js +3 -3
- package/dist/lib/gitlab.js.map +1 -1
- package/dist/lib/prerequisites.d.ts +33 -0
- package/dist/lib/prerequisites.d.ts.map +1 -0
- package/dist/lib/prerequisites.js +109 -0
- package/dist/lib/prerequisites.js.map +1 -0
- package/dist/lib/session.d.ts +6 -8
- package/dist/lib/session.d.ts.map +1 -1
- package/dist/lib/session.js +10 -12
- package/dist/lib/session.js.map +1 -1
- package/dist/lib/types.d.ts +1 -1
- package/dist/lib/types.d.ts.map +1 -1
- package/node_modules/@microwiseai/snapshot-dedup/dist/dedup.d.ts +108 -0
- package/node_modules/@microwiseai/snapshot-dedup/dist/dedup.d.ts.map +1 -0
- package/node_modules/@microwiseai/snapshot-dedup/dist/dedup.js +196 -0
- package/node_modules/@microwiseai/snapshot-dedup/dist/dedup.js.map +1 -0
- package/node_modules/@microwiseai/snapshot-dedup/dist/index.d.ts +21 -0
- package/node_modules/@microwiseai/snapshot-dedup/dist/index.d.ts.map +1 -0
- package/node_modules/@microwiseai/snapshot-dedup/dist/index.js +27 -0
- package/node_modules/@microwiseai/snapshot-dedup/dist/index.js.map +1 -0
- package/node_modules/@microwiseai/snapshot-dedup/package.json +41 -0
- package/node_modules/@microwiseai/snapshot-parallel/dist/index.d.ts +9 -0
- package/node_modules/@microwiseai/snapshot-parallel/dist/index.d.ts.map +1 -0
- package/node_modules/@microwiseai/snapshot-parallel/dist/index.js +8 -0
- package/node_modules/@microwiseai/snapshot-parallel/dist/index.js.map +1 -0
- package/node_modules/@microwiseai/snapshot-parallel/dist/parallel-installer.d.ts +86 -0
- package/node_modules/@microwiseai/snapshot-parallel/dist/parallel-installer.d.ts.map +1 -0
- package/node_modules/@microwiseai/snapshot-parallel/dist/parallel-installer.js +159 -0
- package/node_modules/@microwiseai/snapshot-parallel/dist/parallel-installer.js.map +1 -0
- package/node_modules/@microwiseai/snapshot-parallel/package.json +41 -0
- package/package.json +7 -3
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @microwiseai/snapshot-parallel
|
|
3
|
+
*
|
|
4
|
+
* Parallel package installer with concurrency control.
|
|
5
|
+
* Drop-in replacement for serial install loops in @microwiseai/snapshot core.
|
|
6
|
+
*/
|
|
7
|
+
export { parallelInstall, recordToEntries, partitionEntries, } from './parallel-installer.js';
|
|
8
|
+
export type { PackageEntry, PackageInstallResult, ParallelInstallResult, ProgressEvent, InstallFn, ParallelInstallOptions, } from './parallel-installer.js';
|
|
9
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EACL,eAAe,EACf,eAAe,EACf,gBAAgB,GACjB,MAAM,yBAAyB,CAAC;AAEjC,YAAY,EACV,YAAY,EACZ,oBAAoB,EACpB,qBAAqB,EACrB,aAAa,EACb,SAAS,EACT,sBAAsB,GACvB,MAAM,yBAAyB,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @microwiseai/snapshot-parallel
|
|
3
|
+
*
|
|
4
|
+
* Parallel package installer with concurrency control.
|
|
5
|
+
* Drop-in replacement for serial install loops in @microwiseai/snapshot core.
|
|
6
|
+
*/
|
|
7
|
+
export { parallelInstall, recordToEntries, partitionEntries, } from './parallel-installer.js';
|
|
8
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EACL,eAAe,EACf,eAAe,EACf,gBAAgB,GACjB,MAAM,yBAAyB,CAAC"}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Parallel Package Installer
|
|
3
|
+
*
|
|
4
|
+
* Concurrency-limited parallel execution for package installation.
|
|
5
|
+
* Replaces serial for-loops in core/install.ts with Promise-pool pattern.
|
|
6
|
+
*/
|
|
7
|
+
/** A single package to install: name + version */
|
|
8
|
+
export interface PackageEntry {
|
|
9
|
+
name: string;
|
|
10
|
+
version: string;
|
|
11
|
+
}
|
|
12
|
+
/** Result of installing a single package */
|
|
13
|
+
export interface PackageInstallResult {
|
|
14
|
+
name: string;
|
|
15
|
+
version: string;
|
|
16
|
+
/** "name@version" convenience string */
|
|
17
|
+
spec: string;
|
|
18
|
+
success: boolean;
|
|
19
|
+
/** Error message if failed */
|
|
20
|
+
error?: string;
|
|
21
|
+
/** Duration in ms */
|
|
22
|
+
durationMs: number;
|
|
23
|
+
}
|
|
24
|
+
/** Aggregated results from a parallel install batch */
|
|
25
|
+
export interface ParallelInstallResult {
|
|
26
|
+
installed: string[];
|
|
27
|
+
failed: string[];
|
|
28
|
+
results: PackageInstallResult[];
|
|
29
|
+
totalDurationMs: number;
|
|
30
|
+
}
|
|
31
|
+
/** Progress event emitted for each package completion */
|
|
32
|
+
export interface ProgressEvent {
|
|
33
|
+
/** 1-based index of completed package */
|
|
34
|
+
current: number;
|
|
35
|
+
/** Total number of packages */
|
|
36
|
+
total: number;
|
|
37
|
+
/** The result for the just-completed package */
|
|
38
|
+
result: PackageInstallResult;
|
|
39
|
+
}
|
|
40
|
+
/** Function that actually installs a single package. Provided by the caller. */
|
|
41
|
+
export type InstallFn = (entry: PackageEntry) => Promise<{
|
|
42
|
+
success: boolean;
|
|
43
|
+
error?: string;
|
|
44
|
+
}>;
|
|
45
|
+
/** Options for parallel installation */
|
|
46
|
+
export interface ParallelInstallOptions {
|
|
47
|
+
/** Max concurrent installs (default: 4) */
|
|
48
|
+
concurrency?: number;
|
|
49
|
+
/** Called after each package completes */
|
|
50
|
+
onProgress?: (event: ProgressEvent) => void;
|
|
51
|
+
/** AbortSignal to cancel remaining installs */
|
|
52
|
+
signal?: AbortSignal;
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Install packages in parallel with concurrency control.
|
|
56
|
+
*
|
|
57
|
+
* @param entries - List of packages to install
|
|
58
|
+
* @param installFn - Function that installs a single package (caller provides the actual logic)
|
|
59
|
+
* @param options - Concurrency, progress callback, abort signal
|
|
60
|
+
*
|
|
61
|
+
* @example
|
|
62
|
+
* ```ts
|
|
63
|
+
* import { parallelInstall } from '@microwiseai/snapshot-parallel';
|
|
64
|
+
*
|
|
65
|
+
* const result = await parallelInstall(
|
|
66
|
+
* [{ name: '@ist/smon', version: '0.2.15' }],
|
|
67
|
+
* async (entry) => {
|
|
68
|
+
* // your install logic here
|
|
69
|
+
* return { success: true };
|
|
70
|
+
* },
|
|
71
|
+
* { concurrency: 4, onProgress: (e) => console.log(`${e.current}/${e.total}`) }
|
|
72
|
+
* );
|
|
73
|
+
* ```
|
|
74
|
+
*/
|
|
75
|
+
export declare function parallelInstall(entries: PackageEntry[], installFn: InstallFn, options?: ParallelInstallOptions): Promise<ParallelInstallResult>;
|
|
76
|
+
/**
|
|
77
|
+
* Convert a { name: version } record to PackageEntry[].
|
|
78
|
+
* Preserves insertion order.
|
|
79
|
+
*/
|
|
80
|
+
export declare function recordToEntries(packages: Record<string, string>): PackageEntry[];
|
|
81
|
+
/**
|
|
82
|
+
* Partition entries by a classifier function.
|
|
83
|
+
* Useful for splitting skit vs npm vs generic before parallel install.
|
|
84
|
+
*/
|
|
85
|
+
export declare function partitionEntries<K extends string>(entries: PackageEntry[], classifier: (entry: PackageEntry) => K): Record<K, PackageEntry[]>;
|
|
86
|
+
//# sourceMappingURL=parallel-installer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parallel-installer.d.ts","sourceRoot":"","sources":["../src/parallel-installer.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH,kDAAkD;AAClD,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,4CAA4C;AAC5C,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,wCAAwC;IACxC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,OAAO,CAAC;IACjB,8BAA8B;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,qBAAqB;IACrB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,uDAAuD;AACvD,MAAM,WAAW,qBAAqB;IACpC,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,OAAO,EAAE,oBAAoB,EAAE,CAAC;IAChC,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,yDAAyD;AACzD,MAAM,WAAW,aAAa;IAC5B,yCAAyC;IACzC,OAAO,EAAE,MAAM,CAAC;IAChB,+BAA+B;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,gDAAgD;IAChD,MAAM,EAAE,oBAAoB,CAAC;CAC9B;AAED,gFAAgF;AAChF,MAAM,MAAM,SAAS,GAAG,CAAC,KAAK,EAAE,YAAY,KAAK,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC;AAE/F,wCAAwC;AACxC,MAAM,WAAW,sBAAsB;IACrC,2CAA2C;IAC3C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,0CAA0C;IAC1C,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,CAAC;IAC5C,+CAA+C;IAC/C,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AA2CD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAsB,eAAe,CACnC,OAAO,EAAE,YAAY,EAAE,EACvB,SAAS,EAAE,SAAS,EACpB,OAAO,GAAE,sBAA2B,GACnC,OAAO,CAAC,qBAAqB,CAAC,CA8FhC;AAMD;;;GAGG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,YAAY,EAAE,CAEhF;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,SAAS,MAAM,EAC/C,OAAO,EAAE,YAAY,EAAE,EACvB,UAAU,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,CAAC,GACrC,MAAM,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,CAU3B"}
|
|
@@ -0,0 +1,159 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Parallel Package Installer
|
|
3
|
+
*
|
|
4
|
+
* Concurrency-limited parallel execution for package installation.
|
|
5
|
+
* Replaces serial for-loops in core/install.ts with Promise-pool pattern.
|
|
6
|
+
*/
|
|
7
|
+
// ============================================================
|
|
8
|
+
// Core: Concurrency-limited Promise Pool
|
|
9
|
+
// ============================================================
|
|
10
|
+
/**
|
|
11
|
+
* Run an array of async tasks with a concurrency limit.
|
|
12
|
+
* Uses a pool pattern (not chunking) so a new task starts
|
|
13
|
+
* as soon as a slot frees up.
|
|
14
|
+
*/
|
|
15
|
+
async function runPool(items, concurrency, fn, signal) {
|
|
16
|
+
const results = new Array(items.length);
|
|
17
|
+
let nextIndex = 0;
|
|
18
|
+
async function worker() {
|
|
19
|
+
while (nextIndex < items.length) {
|
|
20
|
+
if (signal?.aborted) {
|
|
21
|
+
break;
|
|
22
|
+
}
|
|
23
|
+
const idx = nextIndex++;
|
|
24
|
+
results[idx] = await fn(items[idx], idx);
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
const workers = Array.from({ length: Math.min(concurrency, items.length) }, () => worker());
|
|
28
|
+
await Promise.all(workers);
|
|
29
|
+
return results;
|
|
30
|
+
}
|
|
31
|
+
// ============================================================
|
|
32
|
+
// Public API
|
|
33
|
+
// ============================================================
|
|
34
|
+
/**
|
|
35
|
+
* Install packages in parallel with concurrency control.
|
|
36
|
+
*
|
|
37
|
+
* @param entries - List of packages to install
|
|
38
|
+
* @param installFn - Function that installs a single package (caller provides the actual logic)
|
|
39
|
+
* @param options - Concurrency, progress callback, abort signal
|
|
40
|
+
*
|
|
41
|
+
* @example
|
|
42
|
+
* ```ts
|
|
43
|
+
* import { parallelInstall } from '@microwiseai/snapshot-parallel';
|
|
44
|
+
*
|
|
45
|
+
* const result = await parallelInstall(
|
|
46
|
+
* [{ name: '@ist/smon', version: '0.2.15' }],
|
|
47
|
+
* async (entry) => {
|
|
48
|
+
* // your install logic here
|
|
49
|
+
* return { success: true };
|
|
50
|
+
* },
|
|
51
|
+
* { concurrency: 4, onProgress: (e) => console.log(`${e.current}/${e.total}`) }
|
|
52
|
+
* );
|
|
53
|
+
* ```
|
|
54
|
+
*/
|
|
55
|
+
export async function parallelInstall(entries, installFn, options = {}) {
|
|
56
|
+
const { concurrency = 4, onProgress, signal } = options;
|
|
57
|
+
if (entries.length === 0) {
|
|
58
|
+
return { installed: [], failed: [], results: [], totalDurationMs: 0 };
|
|
59
|
+
}
|
|
60
|
+
const totalStart = Date.now();
|
|
61
|
+
let completedCount = 0;
|
|
62
|
+
const results = await runPool(entries, concurrency, async (entry, _index) => {
|
|
63
|
+
const spec = `${entry.name}@${entry.version}`;
|
|
64
|
+
const start = Date.now();
|
|
65
|
+
if (signal?.aborted) {
|
|
66
|
+
const res = {
|
|
67
|
+
name: entry.name,
|
|
68
|
+
version: entry.version,
|
|
69
|
+
spec,
|
|
70
|
+
success: false,
|
|
71
|
+
error: 'Aborted',
|
|
72
|
+
durationMs: 0,
|
|
73
|
+
};
|
|
74
|
+
return res;
|
|
75
|
+
}
|
|
76
|
+
try {
|
|
77
|
+
const outcome = await installFn(entry);
|
|
78
|
+
const durationMs = Date.now() - start;
|
|
79
|
+
const res = {
|
|
80
|
+
name: entry.name,
|
|
81
|
+
version: entry.version,
|
|
82
|
+
spec,
|
|
83
|
+
success: outcome.success,
|
|
84
|
+
error: outcome.error,
|
|
85
|
+
durationMs,
|
|
86
|
+
};
|
|
87
|
+
completedCount++;
|
|
88
|
+
onProgress?.({
|
|
89
|
+
current: completedCount,
|
|
90
|
+
total: entries.length,
|
|
91
|
+
result: res,
|
|
92
|
+
});
|
|
93
|
+
return res;
|
|
94
|
+
}
|
|
95
|
+
catch (err) {
|
|
96
|
+
const durationMs = Date.now() - start;
|
|
97
|
+
const error = err instanceof Error ? err.message : String(err);
|
|
98
|
+
const res = {
|
|
99
|
+
name: entry.name,
|
|
100
|
+
version: entry.version,
|
|
101
|
+
spec,
|
|
102
|
+
success: false,
|
|
103
|
+
error,
|
|
104
|
+
durationMs,
|
|
105
|
+
};
|
|
106
|
+
completedCount++;
|
|
107
|
+
onProgress?.({
|
|
108
|
+
current: completedCount,
|
|
109
|
+
total: entries.length,
|
|
110
|
+
result: res,
|
|
111
|
+
});
|
|
112
|
+
return res;
|
|
113
|
+
}
|
|
114
|
+
}, signal);
|
|
115
|
+
const installed = [];
|
|
116
|
+
const failed = [];
|
|
117
|
+
for (const r of results) {
|
|
118
|
+
if (!r)
|
|
119
|
+
continue; // skipped due to abort
|
|
120
|
+
if (r.success) {
|
|
121
|
+
installed.push(r.spec);
|
|
122
|
+
}
|
|
123
|
+
else {
|
|
124
|
+
failed.push(r.spec);
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
return {
|
|
128
|
+
installed,
|
|
129
|
+
failed,
|
|
130
|
+
results: results.filter(Boolean),
|
|
131
|
+
totalDurationMs: Date.now() - totalStart,
|
|
132
|
+
};
|
|
133
|
+
}
|
|
134
|
+
// ============================================================
|
|
135
|
+
// Helpers: Convert between Record<string,string> and PackageEntry[]
|
|
136
|
+
// ============================================================
|
|
137
|
+
/**
|
|
138
|
+
* Convert a { name: version } record to PackageEntry[].
|
|
139
|
+
* Preserves insertion order.
|
|
140
|
+
*/
|
|
141
|
+
export function recordToEntries(packages) {
|
|
142
|
+
return Object.entries(packages).map(([name, version]) => ({ name, version }));
|
|
143
|
+
}
|
|
144
|
+
/**
|
|
145
|
+
* Partition entries by a classifier function.
|
|
146
|
+
* Useful for splitting skit vs npm vs generic before parallel install.
|
|
147
|
+
*/
|
|
148
|
+
export function partitionEntries(entries, classifier) {
|
|
149
|
+
const result = {};
|
|
150
|
+
for (const entry of entries) {
|
|
151
|
+
const key = classifier(entry);
|
|
152
|
+
if (!result[key]) {
|
|
153
|
+
result[key] = [];
|
|
154
|
+
}
|
|
155
|
+
result[key].push(entry);
|
|
156
|
+
}
|
|
157
|
+
return result;
|
|
158
|
+
}
|
|
159
|
+
//# sourceMappingURL=parallel-installer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parallel-installer.js","sourceRoot":"","sources":["../src/parallel-installer.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@microwiseai/snapshot-parallel",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "Parallel package installer with concurrency control for Snapshot CLI",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"main": "./dist/index.js",
|
|
7
|
+
"types": "./dist/index.d.ts",
|
|
8
|
+
"exports": {
|
|
9
|
+
".": {
|
|
10
|
+
"types": "./dist/index.d.ts",
|
|
11
|
+
"import": "./dist/index.js"
|
|
12
|
+
}
|
|
13
|
+
},
|
|
14
|
+
"scripts": {
|
|
15
|
+
"build": "tsc",
|
|
16
|
+
"dev": "tsc --watch",
|
|
17
|
+
"test": "vitest",
|
|
18
|
+
"test:run": "vitest run",
|
|
19
|
+
"prepublishOnly": "npm run build"
|
|
20
|
+
},
|
|
21
|
+
"files": [
|
|
22
|
+
"dist"
|
|
23
|
+
],
|
|
24
|
+
"keywords": [
|
|
25
|
+
"snapshot",
|
|
26
|
+
"parallel",
|
|
27
|
+
"installer",
|
|
28
|
+
"concurrency"
|
|
29
|
+
],
|
|
30
|
+
"author": "IST Team",
|
|
31
|
+
"license": "MIT",
|
|
32
|
+
"dependencies": {},
|
|
33
|
+
"devDependencies": {
|
|
34
|
+
"@types/node": "^20.11.0",
|
|
35
|
+
"typescript": "^5.7.3",
|
|
36
|
+
"vitest": "^4.0.18"
|
|
37
|
+
},
|
|
38
|
+
"engines": {
|
|
39
|
+
"node": ">=18.0.0"
|
|
40
|
+
}
|
|
41
|
+
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@microwiseai/snapshot",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.57",
|
|
4
4
|
"description": "CLI for installing IST Snapshot packages",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/lib.js",
|
|
@@ -35,7 +35,9 @@
|
|
|
35
35
|
"@ist/registry-config",
|
|
36
36
|
"@microwiseai/import-telemetry",
|
|
37
37
|
"@microwiseai/license",
|
|
38
|
-
"@microwiseai/skit"
|
|
38
|
+
"@microwiseai/skit",
|
|
39
|
+
"@microwiseai/snapshot-dedup",
|
|
40
|
+
"@microwiseai/snapshot-parallel"
|
|
39
41
|
],
|
|
40
42
|
"keywords": [
|
|
41
43
|
"snapshot",
|
|
@@ -72,6 +74,8 @@
|
|
|
72
74
|
"@ist/registry-config",
|
|
73
75
|
"@microwiseai/import-telemetry",
|
|
74
76
|
"@microwiseai/license",
|
|
75
|
-
"@microwiseai/skit"
|
|
77
|
+
"@microwiseai/skit",
|
|
78
|
+
"@microwiseai/snapshot-dedup",
|
|
79
|
+
"@microwiseai/snapshot-parallel"
|
|
76
80
|
]
|
|
77
81
|
}
|