@pnpm/lockfile.fs 1.0.0
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/LICENSE +22 -0
- package/README.md +58 -0
- package/lib/errors/LockfileBreakingChangeError.d.ts +5 -0
- package/lib/errors/LockfileBreakingChangeError.js +12 -0
- package/lib/errors/LockfileBreakingChangeError.js.map +1 -0
- package/lib/errors/index.d.ts +1 -0
- package/lib/errors/index.js +6 -0
- package/lib/errors/index.js.map +1 -0
- package/lib/existsWantedLockfile.d.ts +6 -0
- package/lib/existsWantedLockfile.js +30 -0
- package/lib/existsWantedLockfile.js.map +1 -0
- package/lib/experiments/InlineSpecifiersLockfile.d.ts +33 -0
- package/lib/experiments/InlineSpecifiersLockfile.js +5 -0
- package/lib/experiments/InlineSpecifiersLockfile.js.map +1 -0
- package/lib/experiments/inlineSpecifiersLockfileConverters.d.ts +7 -0
- package/lib/experiments/inlineSpecifiersLockfileConverters.js +237 -0
- package/lib/experiments/inlineSpecifiersLockfileConverters.js.map +1 -0
- package/lib/getLockfileImporterId.d.ts +2 -0
- package/lib/getLockfileImporterId.js +13 -0
- package/lib/getLockfileImporterId.js.map +1 -0
- package/lib/gitBranchLockfile.d.ts +2 -0
- package/lib/gitBranchLockfile.js +23 -0
- package/lib/gitBranchLockfile.js.map +1 -0
- package/lib/gitMergeFile.d.ts +3 -0
- package/lib/gitMergeFile.js +55 -0
- package/lib/gitMergeFile.js.map +1 -0
- package/lib/index.d.ts +6 -0
- package/lib/index.js +31 -0
- package/lib/index.js.map +1 -0
- package/lib/lockfileFormatConverters.d.ts +7 -0
- package/lib/lockfileFormatConverters.js +356 -0
- package/lib/lockfileFormatConverters.js.map +1 -0
- package/lib/lockfileName.d.ts +5 -0
- package/lib/lockfileName.js +23 -0
- package/lib/lockfileName.js.map +1 -0
- package/lib/logger.d.ts +1 -0
- package/lib/logger.js +6 -0
- package/lib/logger.js.map +1 -0
- package/lib/read.d.ts +27 -0
- package/lib/read.js +158 -0
- package/lib/read.js.map +1 -0
- package/lib/sortLockfileKeys.d.ts +2 -0
- package/lib/sortLockfileKeys.js +104 -0
- package/lib/sortLockfileKeys.js.map +1 -0
- package/lib/write.d.ts +15 -0
- package/lib/write.js +110 -0
- package/lib/write.js.map +1 -0
- package/package.json +72 -0
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { type Lockfile, type LockfileFile, type LockfileFileV9 } from '@pnpm/lockfile.types';
|
|
2
|
+
export interface NormalizeLockfileOpts {
|
|
3
|
+
forceSharedFormat: boolean;
|
|
4
|
+
}
|
|
5
|
+
export declare function convertToLockfileFile(lockfile: Lockfile, opts: NormalizeLockfileOpts): LockfileFile;
|
|
6
|
+
export declare function convertToLockfileObject(lockfile: LockfileFile | LockfileFileV9): Lockfile;
|
|
7
|
+
export declare function convertLockfileV9ToLockfileObject(lockfile: LockfileFileV9): Lockfile;
|
|
@@ -0,0 +1,356 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.convertLockfileV9ToLockfileObject = exports.convertToLockfileObject = exports.convertToLockfileFile = void 0;
|
|
7
|
+
const dependency_path_1 = require("@pnpm/dependency-path");
|
|
8
|
+
const git_resolver_1 = require("@pnpm/git-resolver");
|
|
9
|
+
const types_1 = require("@pnpm/types");
|
|
10
|
+
const equals_1 = __importDefault(require("ramda/src/equals"));
|
|
11
|
+
const isEmpty_1 = __importDefault(require("ramda/src/isEmpty"));
|
|
12
|
+
const map_1 = __importDefault(require("ramda/src/map"));
|
|
13
|
+
const omit_1 = __importDefault(require("ramda/src/omit"));
|
|
14
|
+
const pickBy_1 = __importDefault(require("ramda/src/pickBy"));
|
|
15
|
+
const pick_1 = __importDefault(require("ramda/src/pick"));
|
|
16
|
+
const constants_1 = require("@pnpm/constants");
|
|
17
|
+
function convertToLockfileFile(lockfile, opts) {
|
|
18
|
+
const packages = {};
|
|
19
|
+
const snapshots = {};
|
|
20
|
+
for (const [depPath, pkg] of Object.entries(lockfile.packages ?? {})) {
|
|
21
|
+
snapshots[depPath] = (0, pick_1.default)([
|
|
22
|
+
'dependencies',
|
|
23
|
+
'optionalDependencies',
|
|
24
|
+
'transitivePeerDependencies',
|
|
25
|
+
'optional',
|
|
26
|
+
'id',
|
|
27
|
+
], pkg);
|
|
28
|
+
const pkgId = (0, dependency_path_1.removeSuffix)(depPath);
|
|
29
|
+
if (!packages[pkgId]) {
|
|
30
|
+
packages[pkgId] = (0, pick_1.default)([
|
|
31
|
+
'bundledDependencies',
|
|
32
|
+
'cpu',
|
|
33
|
+
'deprecated',
|
|
34
|
+
'engines',
|
|
35
|
+
'hasBin',
|
|
36
|
+
'libc',
|
|
37
|
+
'name',
|
|
38
|
+
'os',
|
|
39
|
+
'peerDependencies',
|
|
40
|
+
'peerDependenciesMeta',
|
|
41
|
+
'resolution',
|
|
42
|
+
'version',
|
|
43
|
+
], pkg);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
const newLockfile = {
|
|
47
|
+
...lockfile,
|
|
48
|
+
snapshots,
|
|
49
|
+
packages,
|
|
50
|
+
lockfileVersion: constants_1.LOCKFILE_VERSION,
|
|
51
|
+
importers: mapValues(lockfile.importers, convertProjectSnapshotToInlineSpecifiersFormat),
|
|
52
|
+
};
|
|
53
|
+
if (newLockfile.settings?.peersSuffixMaxLength === 1000) {
|
|
54
|
+
newLockfile.settings = (0, omit_1.default)(['peersSuffixMaxLength'], newLockfile.settings);
|
|
55
|
+
}
|
|
56
|
+
return normalizeLockfile(newLockfile, opts);
|
|
57
|
+
}
|
|
58
|
+
exports.convertToLockfileFile = convertToLockfileFile;
|
|
59
|
+
function normalizeLockfile(lockfile, opts) {
|
|
60
|
+
let lockfileToSave;
|
|
61
|
+
if (!opts.forceSharedFormat && (0, equals_1.default)(Object.keys(lockfile.importers ?? {}), ['.'])) {
|
|
62
|
+
lockfileToSave = {
|
|
63
|
+
...lockfile,
|
|
64
|
+
...lockfile.importers?.['.'],
|
|
65
|
+
};
|
|
66
|
+
delete lockfileToSave.importers;
|
|
67
|
+
for (const depType of types_1.DEPENDENCIES_FIELDS) {
|
|
68
|
+
if ((0, isEmpty_1.default)(lockfileToSave[depType])) {
|
|
69
|
+
delete lockfileToSave[depType];
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
if ((0, isEmpty_1.default)(lockfileToSave.packages) || (lockfileToSave.packages == null)) {
|
|
73
|
+
delete lockfileToSave.packages;
|
|
74
|
+
}
|
|
75
|
+
if ((0, isEmpty_1.default)(lockfileToSave.snapshots) || (lockfileToSave.snapshots == null)) {
|
|
76
|
+
delete lockfileToSave.snapshots;
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
else {
|
|
80
|
+
lockfileToSave = {
|
|
81
|
+
...lockfile,
|
|
82
|
+
importers: (0, map_1.default)((importer) => {
|
|
83
|
+
const normalizedImporter = {};
|
|
84
|
+
if (importer.dependenciesMeta != null && !(0, isEmpty_1.default)(importer.dependenciesMeta)) {
|
|
85
|
+
normalizedImporter.dependenciesMeta = importer.dependenciesMeta;
|
|
86
|
+
}
|
|
87
|
+
for (const depType of types_1.DEPENDENCIES_FIELDS) {
|
|
88
|
+
if (!(0, isEmpty_1.default)(importer[depType] ?? {})) {
|
|
89
|
+
normalizedImporter[depType] = importer[depType];
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
if (importer.publishDirectory) {
|
|
93
|
+
normalizedImporter.publishDirectory = importer.publishDirectory;
|
|
94
|
+
}
|
|
95
|
+
return normalizedImporter;
|
|
96
|
+
}, lockfile.importers ?? {}),
|
|
97
|
+
};
|
|
98
|
+
if ((0, isEmpty_1.default)(lockfileToSave.packages) || (lockfileToSave.packages == null)) {
|
|
99
|
+
delete lockfileToSave.packages;
|
|
100
|
+
}
|
|
101
|
+
if ((0, isEmpty_1.default)(lockfileToSave.snapshots) || (lockfileToSave.snapshots == null)) {
|
|
102
|
+
delete lockfileToSave.snapshots;
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
if (lockfileToSave.time) {
|
|
106
|
+
lockfileToSave.time = pruneTimeInLockfileV6(lockfileToSave.time, lockfile.importers ?? {});
|
|
107
|
+
}
|
|
108
|
+
if ((lockfileToSave.catalogs != null) && (0, isEmpty_1.default)(lockfileToSave.catalogs)) {
|
|
109
|
+
delete lockfileToSave.catalogs;
|
|
110
|
+
}
|
|
111
|
+
if ((lockfileToSave.overrides != null) && (0, isEmpty_1.default)(lockfileToSave.overrides)) {
|
|
112
|
+
delete lockfileToSave.overrides;
|
|
113
|
+
}
|
|
114
|
+
if ((lockfileToSave.patchedDependencies != null) && (0, isEmpty_1.default)(lockfileToSave.patchedDependencies)) {
|
|
115
|
+
delete lockfileToSave.patchedDependencies;
|
|
116
|
+
}
|
|
117
|
+
if (!lockfileToSave.packageExtensionsChecksum) {
|
|
118
|
+
delete lockfileToSave.packageExtensionsChecksum;
|
|
119
|
+
}
|
|
120
|
+
if (!lockfileToSave.ignoredOptionalDependencies?.length) {
|
|
121
|
+
delete lockfileToSave.ignoredOptionalDependencies;
|
|
122
|
+
}
|
|
123
|
+
if (!lockfileToSave.pnpmfileChecksum) {
|
|
124
|
+
delete lockfileToSave.pnpmfileChecksum;
|
|
125
|
+
}
|
|
126
|
+
return lockfileToSave;
|
|
127
|
+
}
|
|
128
|
+
function pruneTimeInLockfileV6(time, importers) {
|
|
129
|
+
const rootDepPaths = new Set();
|
|
130
|
+
for (const importer of Object.values(importers)) {
|
|
131
|
+
for (const depType of types_1.DEPENDENCIES_FIELDS) {
|
|
132
|
+
for (const [depName, ref] of Object.entries(importer[depType] ?? {})) {
|
|
133
|
+
const suffixStart = ref.version.indexOf('(');
|
|
134
|
+
const refWithoutPeerSuffix = suffixStart === -1 ? ref.version : ref.version.slice(0, suffixStart);
|
|
135
|
+
const depPath = refToRelative(refWithoutPeerSuffix, depName);
|
|
136
|
+
if (!depPath)
|
|
137
|
+
continue;
|
|
138
|
+
rootDepPaths.add(depPath);
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
return (0, pickBy_1.default)((_, depPath) => rootDepPaths.has(depPath), time);
|
|
143
|
+
}
|
|
144
|
+
function refToRelative(reference, pkgName) {
|
|
145
|
+
if (reference.startsWith('link:')) {
|
|
146
|
+
return null;
|
|
147
|
+
}
|
|
148
|
+
if (reference.startsWith('file:')) {
|
|
149
|
+
return reference;
|
|
150
|
+
}
|
|
151
|
+
if (!reference.includes('/') || !reference.replace(/(\([^)]+\))+$/, '').includes('/')) {
|
|
152
|
+
return `/${pkgName}@${reference}`;
|
|
153
|
+
}
|
|
154
|
+
return reference;
|
|
155
|
+
}
|
|
156
|
+
/**
|
|
157
|
+
* Reverts changes from the "forceSharedFormat" write option if necessary.
|
|
158
|
+
*/
|
|
159
|
+
function convertFromLockfileFileMutable(lockfileFile) {
|
|
160
|
+
if (typeof lockfileFile?.['importers'] === 'undefined') {
|
|
161
|
+
lockfileFile.importers = {
|
|
162
|
+
'.': {
|
|
163
|
+
dependenciesMeta: lockfileFile['dependenciesMeta'],
|
|
164
|
+
publishDirectory: lockfileFile['publishDirectory'],
|
|
165
|
+
},
|
|
166
|
+
};
|
|
167
|
+
for (const depType of types_1.DEPENDENCIES_FIELDS) {
|
|
168
|
+
if (lockfileFile[depType] != null) {
|
|
169
|
+
lockfileFile.importers['.'][depType] = lockfileFile[depType];
|
|
170
|
+
delete lockfileFile[depType];
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
return lockfileFile;
|
|
175
|
+
}
|
|
176
|
+
function convertToLockfileObject(lockfile) {
|
|
177
|
+
if (lockfile.snapshots) {
|
|
178
|
+
return convertLockfileV9ToLockfileObject(lockfile);
|
|
179
|
+
}
|
|
180
|
+
convertPkgIds(lockfile);
|
|
181
|
+
const { importers, ...rest } = convertFromLockfileFileMutable(lockfile);
|
|
182
|
+
const newLockfile = {
|
|
183
|
+
...rest,
|
|
184
|
+
importers: mapValues(importers ?? {}, revertProjectSnapshot),
|
|
185
|
+
};
|
|
186
|
+
return newLockfile;
|
|
187
|
+
}
|
|
188
|
+
exports.convertToLockfileObject = convertToLockfileObject;
|
|
189
|
+
function convertPkgIds(lockfile) {
|
|
190
|
+
const oldIdToNewId = {};
|
|
191
|
+
if (lockfile.packages == null || (0, isEmpty_1.default)(lockfile.packages))
|
|
192
|
+
return;
|
|
193
|
+
for (const [pkgId, pkg] of Object.entries(lockfile.packages ?? {})) {
|
|
194
|
+
if (pkg.name) {
|
|
195
|
+
const { id, peersSuffix } = (0, dependency_path_1.parseDepPath)(pkgId);
|
|
196
|
+
let newId = `${pkg.name}@`;
|
|
197
|
+
if ('tarball' in pkg.resolution) {
|
|
198
|
+
newId += pkg.resolution.tarball;
|
|
199
|
+
if (pkg.resolution.path) {
|
|
200
|
+
newId += `#path:${pkg.resolution.path}`;
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
else if ('repo' in pkg.resolution) {
|
|
204
|
+
newId += (0, git_resolver_1.createGitHostedPkgId)(pkg.resolution);
|
|
205
|
+
}
|
|
206
|
+
else if ('directory' in pkg.resolution) {
|
|
207
|
+
newId += id;
|
|
208
|
+
}
|
|
209
|
+
else {
|
|
210
|
+
continue;
|
|
211
|
+
}
|
|
212
|
+
oldIdToNewId[pkgId] = `${newId}${peersSuffix}`;
|
|
213
|
+
if (id !== pkgId) {
|
|
214
|
+
oldIdToNewId[id] = newId;
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
else {
|
|
218
|
+
const { id, peersSuffix } = (0, dependency_path_1.parseDepPath)(pkgId);
|
|
219
|
+
const newId = id.substring(1);
|
|
220
|
+
oldIdToNewId[pkgId] = `${newId}${peersSuffix}`;
|
|
221
|
+
if (id !== pkgId) {
|
|
222
|
+
oldIdToNewId[id] = newId;
|
|
223
|
+
}
|
|
224
|
+
}
|
|
225
|
+
}
|
|
226
|
+
const newLockfilePackages = {};
|
|
227
|
+
for (const [pkgId, pkg] of Object.entries(lockfile.packages ?? {})) {
|
|
228
|
+
if (oldIdToNewId[pkgId]) {
|
|
229
|
+
if (pkg.id) {
|
|
230
|
+
pkg.id = oldIdToNewId[pkg.id];
|
|
231
|
+
}
|
|
232
|
+
newLockfilePackages[oldIdToNewId[pkgId]] = pkg;
|
|
233
|
+
}
|
|
234
|
+
else {
|
|
235
|
+
newLockfilePackages[pkgId] = pkg;
|
|
236
|
+
}
|
|
237
|
+
for (const depType of ['dependencies', 'optionalDependencies']) {
|
|
238
|
+
for (const [alias, depPath] of Object.entries(pkg[depType] ?? {})) {
|
|
239
|
+
if (oldIdToNewId[depPath]) {
|
|
240
|
+
if (oldIdToNewId[depPath].startsWith(`${alias}@`)) {
|
|
241
|
+
pkg[depType][alias] = oldIdToNewId[depPath].substring(alias.length + 1);
|
|
242
|
+
}
|
|
243
|
+
else {
|
|
244
|
+
pkg[depType][alias] = oldIdToNewId[depPath];
|
|
245
|
+
}
|
|
246
|
+
}
|
|
247
|
+
}
|
|
248
|
+
}
|
|
249
|
+
}
|
|
250
|
+
lockfile.packages = newLockfilePackages;
|
|
251
|
+
if ((lockfile.dependencies != null || lockfile.devDependencies != null || lockfile.optionalDependencies != null) && !lockfile.importers?.['.']) {
|
|
252
|
+
lockfile.importers = lockfile.importers ?? {};
|
|
253
|
+
lockfile.importers['.'] = {
|
|
254
|
+
dependencies: lockfile.dependencies,
|
|
255
|
+
devDependencies: lockfile.devDependencies,
|
|
256
|
+
optionalDependencies: lockfile.optionalDependencies,
|
|
257
|
+
};
|
|
258
|
+
delete lockfile.dependencies;
|
|
259
|
+
delete lockfile.devDependencies;
|
|
260
|
+
delete lockfile.optionalDependencies;
|
|
261
|
+
}
|
|
262
|
+
for (const importer of Object.values(lockfile.importers ?? {})) {
|
|
263
|
+
for (const depType of ['dependencies', 'optionalDependencies', 'devDependencies']) {
|
|
264
|
+
for (const [alias, { version }] of Object.entries(importer[depType] ?? {})) {
|
|
265
|
+
if (oldIdToNewId[version]) {
|
|
266
|
+
if (oldIdToNewId[version].startsWith(`${alias}@`)) {
|
|
267
|
+
importer[depType][alias].version = oldIdToNewId[version].substring(alias.length + 1);
|
|
268
|
+
}
|
|
269
|
+
else {
|
|
270
|
+
importer[depType][alias].version = oldIdToNewId[version];
|
|
271
|
+
}
|
|
272
|
+
}
|
|
273
|
+
}
|
|
274
|
+
}
|
|
275
|
+
}
|
|
276
|
+
for (const depType of ['dependencies', 'optionalDependencies', 'devDependencies']) {
|
|
277
|
+
for (const [alias, { version }] of Object.entries(lockfile[depType] ?? {})) {
|
|
278
|
+
if (oldIdToNewId[version]) {
|
|
279
|
+
lockfile[depType][alias].version = oldIdToNewId[version];
|
|
280
|
+
}
|
|
281
|
+
}
|
|
282
|
+
}
|
|
283
|
+
}
|
|
284
|
+
function convertLockfileV9ToLockfileObject(lockfile) {
|
|
285
|
+
const { importers, ...rest } = convertFromLockfileFileMutable(lockfile);
|
|
286
|
+
const packages = {};
|
|
287
|
+
for (const [depPath, pkg] of Object.entries(lockfile.snapshots ?? {})) {
|
|
288
|
+
const pkgId = (0, dependency_path_1.removeSuffix)(depPath);
|
|
289
|
+
packages[depPath] = Object.assign(pkg, lockfile.packages?.[pkgId]);
|
|
290
|
+
}
|
|
291
|
+
return {
|
|
292
|
+
...(0, omit_1.default)(['snapshots'], rest),
|
|
293
|
+
packages,
|
|
294
|
+
importers: mapValues(importers ?? {}, revertProjectSnapshot),
|
|
295
|
+
};
|
|
296
|
+
}
|
|
297
|
+
exports.convertLockfileV9ToLockfileObject = convertLockfileV9ToLockfileObject;
|
|
298
|
+
function convertProjectSnapshotToInlineSpecifiersFormat(projectSnapshot) {
|
|
299
|
+
const { specifiers, ...rest } = projectSnapshot;
|
|
300
|
+
if (specifiers == null)
|
|
301
|
+
return projectSnapshot;
|
|
302
|
+
const convertBlock = (block) => block != null
|
|
303
|
+
? convertResolvedDependenciesToInlineSpecifiersFormat(block, { specifiers })
|
|
304
|
+
: block;
|
|
305
|
+
return {
|
|
306
|
+
...rest,
|
|
307
|
+
dependencies: convertBlock(projectSnapshot.dependencies ?? {}),
|
|
308
|
+
optionalDependencies: convertBlock(projectSnapshot.optionalDependencies ?? {}),
|
|
309
|
+
devDependencies: convertBlock(projectSnapshot.devDependencies ?? {}),
|
|
310
|
+
};
|
|
311
|
+
}
|
|
312
|
+
function convertResolvedDependenciesToInlineSpecifiersFormat(resolvedDependencies, { specifiers }) {
|
|
313
|
+
return mapValues(resolvedDependencies, (version, depName) => ({
|
|
314
|
+
specifier: specifiers[depName],
|
|
315
|
+
version,
|
|
316
|
+
}));
|
|
317
|
+
}
|
|
318
|
+
function revertProjectSnapshot(from) {
|
|
319
|
+
const specifiers = {};
|
|
320
|
+
function moveSpecifiers(from) {
|
|
321
|
+
const resolvedDependencies = {};
|
|
322
|
+
for (const [depName, { specifier, version }] of Object.entries(from)) {
|
|
323
|
+
const existingValue = specifiers[depName];
|
|
324
|
+
if (existingValue != null && existingValue !== specifier) {
|
|
325
|
+
throw new Error(`Project snapshot lists the same dependency more than once with conflicting versions: ${depName}`);
|
|
326
|
+
}
|
|
327
|
+
specifiers[depName] = specifier;
|
|
328
|
+
resolvedDependencies[depName] = version;
|
|
329
|
+
}
|
|
330
|
+
return resolvedDependencies;
|
|
331
|
+
}
|
|
332
|
+
const dependencies = from.dependencies == null
|
|
333
|
+
? from.dependencies
|
|
334
|
+
: moveSpecifiers(from.dependencies);
|
|
335
|
+
const devDependencies = from.devDependencies == null
|
|
336
|
+
? from.devDependencies
|
|
337
|
+
: moveSpecifiers(from.devDependencies);
|
|
338
|
+
const optionalDependencies = from.optionalDependencies == null
|
|
339
|
+
? from.optionalDependencies
|
|
340
|
+
: moveSpecifiers(from.optionalDependencies);
|
|
341
|
+
return {
|
|
342
|
+
...from,
|
|
343
|
+
specifiers,
|
|
344
|
+
dependencies,
|
|
345
|
+
devDependencies,
|
|
346
|
+
optionalDependencies,
|
|
347
|
+
};
|
|
348
|
+
}
|
|
349
|
+
function mapValues(obj, mapper) {
|
|
350
|
+
const result = {};
|
|
351
|
+
for (const [key, value] of Object.entries(obj)) {
|
|
352
|
+
result[key] = mapper(value, key);
|
|
353
|
+
}
|
|
354
|
+
return result;
|
|
355
|
+
}
|
|
356
|
+
//# sourceMappingURL=lockfileFormatConverters.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lockfileFormatConverters.js","sourceRoot":"","sources":["../src/lockfileFormatConverters.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getWantedLockfileName = void 0;
|
|
4
|
+
const constants_1 = require("@pnpm/constants");
|
|
5
|
+
const git_utils_1 = require("@pnpm/git-utils");
|
|
6
|
+
async function getWantedLockfileName(opts = { useGitBranchLockfile: false, mergeGitBranchLockfiles: false }) {
|
|
7
|
+
if (opts.useGitBranchLockfile && !opts.mergeGitBranchLockfiles) {
|
|
8
|
+
const currentBranchName = await (0, git_utils_1.getCurrentBranch)();
|
|
9
|
+
if (currentBranchName) {
|
|
10
|
+
return constants_1.WANTED_LOCKFILE.replace('.yaml', `.${stringifyBranchName(currentBranchName)}.yaml`);
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
return constants_1.WANTED_LOCKFILE;
|
|
14
|
+
}
|
|
15
|
+
exports.getWantedLockfileName = getWantedLockfileName;
|
|
16
|
+
/**
|
|
17
|
+
* 1. Git branch name may contains slashes, which is not allowed in filenames
|
|
18
|
+
* 2. Filesystem may be case-insensitive, so we need to convert branch name to lowercase
|
|
19
|
+
*/
|
|
20
|
+
function stringifyBranchName(branchName = '') {
|
|
21
|
+
return branchName.replace(/[^a-zA-Z0-9-_.]/g, '!').toLowerCase();
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=lockfileName.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lockfileName.js","sourceRoot":"","sources":["../src/lockfileName.ts"],"names":[],"mappings":";;;AAAA,+CAAiD;AACjD,+CAAkD;AAO3C,KAAK,UAAU,qBAAqB,CAAE,OAAqC,EAAE,oBAAoB,EAAE,KAAK,EAAE,uBAAuB,EAAE,KAAK,EAAE;IAC/I,IAAI,IAAI,CAAC,oBAAoB,IAAI,CAAC,IAAI,CAAC,uBAAuB,EAAE,CAAC;QAC/D,MAAM,iBAAiB,GAAG,MAAM,IAAA,4BAAgB,GAAE,CAAA;QAClD,IAAI,iBAAiB,EAAE,CAAC;YACtB,OAAO,2BAAe,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,mBAAmB,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAA;QAC5F,CAAC;IACH,CAAC;IACD,OAAO,2BAAe,CAAA;AACxB,CAAC;AARD,sDAQC;AAED;;;GAGG;AACH,SAAS,mBAAmB,CAAE,aAAqB,EAAE;IACnD,OAAO,UAAU,CAAC,OAAO,CAAC,kBAAkB,EAAE,GAAG,CAAC,CAAC,WAAW,EAAE,CAAA;AAClE,CAAC"}
|
package/lib/logger.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const lockfileLogger: import("@pnpm/logger").Logger<unknown>;
|
package/lib/logger.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":";;;AAAA,yCAAqC;AAExB,QAAA,cAAc,GAAG,IAAA,eAAM,EAAC,UAAU,CAAC,CAAA"}
|
package/lib/read.d.ts
ADDED
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { type Lockfile } from '@pnpm/lockfile.types';
|
|
2
|
+
import { type ProjectId } from '@pnpm/types';
|
|
3
|
+
export declare function readCurrentLockfile(virtualStoreDir: string, opts: {
|
|
4
|
+
wantedVersions?: string[];
|
|
5
|
+
ignoreIncompatible: boolean;
|
|
6
|
+
}): Promise<Lockfile | null>;
|
|
7
|
+
export declare function readWantedLockfileAndAutofixConflicts(pkgPath: string, opts: {
|
|
8
|
+
wantedVersions?: string[];
|
|
9
|
+
ignoreIncompatible: boolean;
|
|
10
|
+
useGitBranchLockfile?: boolean;
|
|
11
|
+
mergeGitBranchLockfiles?: boolean;
|
|
12
|
+
}): Promise<{
|
|
13
|
+
lockfile: Lockfile | null;
|
|
14
|
+
hadConflicts: boolean;
|
|
15
|
+
}>;
|
|
16
|
+
export declare function readWantedLockfile(pkgPath: string, opts: {
|
|
17
|
+
wantedVersions?: string[];
|
|
18
|
+
ignoreIncompatible: boolean;
|
|
19
|
+
useGitBranchLockfile?: boolean;
|
|
20
|
+
mergeGitBranchLockfiles?: boolean;
|
|
21
|
+
}): Promise<Lockfile | null>;
|
|
22
|
+
export declare function createLockfileObject(importerIds: ProjectId[], opts: {
|
|
23
|
+
lockfileVersion: string;
|
|
24
|
+
autoInstallPeers: boolean;
|
|
25
|
+
excludeLinksFromLockfile: boolean;
|
|
26
|
+
peersSuffixMaxLength: number;
|
|
27
|
+
}): Lockfile;
|
package/lib/read.js
ADDED
|
@@ -0,0 +1,158 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.createLockfileObject = exports.readWantedLockfile = exports.readWantedLockfileAndAutofixConflicts = exports.readCurrentLockfile = void 0;
|
|
7
|
+
const fs_1 = require("fs");
|
|
8
|
+
const path_1 = __importDefault(require("path"));
|
|
9
|
+
const util_1 = __importDefault(require("util"));
|
|
10
|
+
const constants_1 = require("@pnpm/constants");
|
|
11
|
+
const error_1 = require("@pnpm/error");
|
|
12
|
+
const lockfile_merger_1 = require("@pnpm/lockfile.merger");
|
|
13
|
+
const comver_to_semver_1 = __importDefault(require("comver-to-semver"));
|
|
14
|
+
const js_yaml_1 = __importDefault(require("js-yaml"));
|
|
15
|
+
const semver_1 = __importDefault(require("semver"));
|
|
16
|
+
const strip_bom_1 = __importDefault(require("strip-bom"));
|
|
17
|
+
const errors_1 = require("./errors");
|
|
18
|
+
const gitMergeFile_1 = require("./gitMergeFile");
|
|
19
|
+
const logger_1 = require("./logger");
|
|
20
|
+
const lockfileName_1 = require("./lockfileName");
|
|
21
|
+
const gitBranchLockfile_1 = require("./gitBranchLockfile");
|
|
22
|
+
const lockfileFormatConverters_1 = require("./lockfileFormatConverters");
|
|
23
|
+
async function readCurrentLockfile(virtualStoreDir, opts) {
|
|
24
|
+
const lockfilePath = path_1.default.join(virtualStoreDir, 'lock.yaml');
|
|
25
|
+
return (await _read(lockfilePath, virtualStoreDir, opts)).lockfile;
|
|
26
|
+
}
|
|
27
|
+
exports.readCurrentLockfile = readCurrentLockfile;
|
|
28
|
+
async function readWantedLockfileAndAutofixConflicts(pkgPath, opts) {
|
|
29
|
+
return _readWantedLockfile(pkgPath, {
|
|
30
|
+
...opts,
|
|
31
|
+
autofixMergeConflicts: true,
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
exports.readWantedLockfileAndAutofixConflicts = readWantedLockfileAndAutofixConflicts;
|
|
35
|
+
async function readWantedLockfile(pkgPath, opts) {
|
|
36
|
+
return (await _readWantedLockfile(pkgPath, opts)).lockfile;
|
|
37
|
+
}
|
|
38
|
+
exports.readWantedLockfile = readWantedLockfile;
|
|
39
|
+
async function _read(lockfilePath, prefix, // only for logging
|
|
40
|
+
opts) {
|
|
41
|
+
let lockfileRawContent;
|
|
42
|
+
try {
|
|
43
|
+
lockfileRawContent = (0, strip_bom_1.default)(await fs_1.promises.readFile(lockfilePath, 'utf8'));
|
|
44
|
+
}
|
|
45
|
+
catch (err) {
|
|
46
|
+
if (!(util_1.default.types.isNativeError(err) && 'code' in err && err.code === 'ENOENT')) {
|
|
47
|
+
throw err;
|
|
48
|
+
}
|
|
49
|
+
return {
|
|
50
|
+
lockfile: null,
|
|
51
|
+
hadConflicts: false,
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
let lockfile;
|
|
55
|
+
let hadConflicts;
|
|
56
|
+
try {
|
|
57
|
+
lockfile = (0, lockfileFormatConverters_1.convertToLockfileObject)(js_yaml_1.default.load(lockfileRawContent)); // eslint-disable-line
|
|
58
|
+
hadConflicts = false;
|
|
59
|
+
}
|
|
60
|
+
catch (err) {
|
|
61
|
+
if (!opts.autofixMergeConflicts || !(0, gitMergeFile_1.isDiff)(lockfileRawContent)) {
|
|
62
|
+
throw new error_1.PnpmError('BROKEN_LOCKFILE', `The lockfile at "${lockfilePath}" is broken: ${err.message}`);
|
|
63
|
+
}
|
|
64
|
+
hadConflicts = true;
|
|
65
|
+
lockfile = (0, gitMergeFile_1.autofixMergeConflicts)(lockfileRawContent);
|
|
66
|
+
logger_1.lockfileLogger.info({
|
|
67
|
+
message: `Merge conflict detected in ${constants_1.WANTED_LOCKFILE} and successfully merged`,
|
|
68
|
+
prefix,
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
if (lockfile) {
|
|
72
|
+
const lockfileSemver = (0, comver_to_semver_1.default)((lockfile.lockfileVersion ?? 0).toString());
|
|
73
|
+
if (!opts.wantedVersions ||
|
|
74
|
+
opts.wantedVersions.length === 0 ||
|
|
75
|
+
opts.wantedVersions.some((wantedVersion) => {
|
|
76
|
+
if (semver_1.default.major(lockfileSemver) !== semver_1.default.major((0, comver_to_semver_1.default)(wantedVersion)))
|
|
77
|
+
return false;
|
|
78
|
+
if (lockfile.lockfileVersion !== '6.1' && semver_1.default.gt(lockfileSemver, (0, comver_to_semver_1.default)(wantedVersion))) {
|
|
79
|
+
logger_1.lockfileLogger.warn({
|
|
80
|
+
message: `Your ${constants_1.WANTED_LOCKFILE} was generated by a newer version of pnpm. ` +
|
|
81
|
+
`It is a compatible version but it might get downgraded to version ${wantedVersion}`,
|
|
82
|
+
prefix,
|
|
83
|
+
});
|
|
84
|
+
}
|
|
85
|
+
return true;
|
|
86
|
+
})) {
|
|
87
|
+
return { lockfile, hadConflicts };
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
if (opts.ignoreIncompatible) {
|
|
91
|
+
logger_1.lockfileLogger.warn({
|
|
92
|
+
message: `Ignoring not compatible lockfile at ${lockfilePath}`,
|
|
93
|
+
prefix,
|
|
94
|
+
});
|
|
95
|
+
return { lockfile: null, hadConflicts: false };
|
|
96
|
+
}
|
|
97
|
+
throw new errors_1.LockfileBreakingChangeError(lockfilePath);
|
|
98
|
+
}
|
|
99
|
+
function createLockfileObject(importerIds, opts) {
|
|
100
|
+
const importers = importerIds.reduce((acc, importerId) => {
|
|
101
|
+
acc[importerId] = {
|
|
102
|
+
dependencies: {},
|
|
103
|
+
specifiers: {},
|
|
104
|
+
};
|
|
105
|
+
return acc;
|
|
106
|
+
}, {});
|
|
107
|
+
return {
|
|
108
|
+
importers,
|
|
109
|
+
lockfileVersion: opts.lockfileVersion || constants_1.LOCKFILE_VERSION,
|
|
110
|
+
settings: {
|
|
111
|
+
autoInstallPeers: opts.autoInstallPeers,
|
|
112
|
+
excludeLinksFromLockfile: opts.excludeLinksFromLockfile,
|
|
113
|
+
peersSuffixMaxLength: opts.peersSuffixMaxLength,
|
|
114
|
+
},
|
|
115
|
+
};
|
|
116
|
+
}
|
|
117
|
+
exports.createLockfileObject = createLockfileObject;
|
|
118
|
+
async function _readWantedLockfile(pkgPath, opts) {
|
|
119
|
+
const lockfileNames = [constants_1.WANTED_LOCKFILE];
|
|
120
|
+
if (opts.useGitBranchLockfile) {
|
|
121
|
+
const gitBranchLockfileName = await (0, lockfileName_1.getWantedLockfileName)(opts);
|
|
122
|
+
if (gitBranchLockfileName !== constants_1.WANTED_LOCKFILE) {
|
|
123
|
+
lockfileNames.unshift(gitBranchLockfileName);
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
let result = { lockfile: null, hadConflicts: false };
|
|
127
|
+
/* eslint-disable no-await-in-loop */
|
|
128
|
+
for (const lockfileName of lockfileNames) {
|
|
129
|
+
result = await _read(path_1.default.join(pkgPath, lockfileName), pkgPath, { ...opts, autofixMergeConflicts: true });
|
|
130
|
+
if (result.lockfile) {
|
|
131
|
+
if (opts.mergeGitBranchLockfiles) {
|
|
132
|
+
result.lockfile = await _mergeGitBranchLockfiles(result.lockfile, pkgPath, pkgPath, opts);
|
|
133
|
+
}
|
|
134
|
+
break;
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
/* eslint-enable no-await-in-loop */
|
|
138
|
+
return result;
|
|
139
|
+
}
|
|
140
|
+
async function _mergeGitBranchLockfiles(lockfile, lockfileDir, prefix, opts) {
|
|
141
|
+
if (!lockfile) {
|
|
142
|
+
return lockfile;
|
|
143
|
+
}
|
|
144
|
+
const gitBranchLockfiles = (await _readGitBranchLockfiles(lockfileDir, prefix, opts)).map(({ lockfile }) => lockfile);
|
|
145
|
+
let mergedLockfile = lockfile;
|
|
146
|
+
for (const gitBranchLockfile of gitBranchLockfiles) {
|
|
147
|
+
if (!gitBranchLockfile) {
|
|
148
|
+
continue;
|
|
149
|
+
}
|
|
150
|
+
mergedLockfile = (0, lockfile_merger_1.mergeLockfileChanges)(mergedLockfile, gitBranchLockfile);
|
|
151
|
+
}
|
|
152
|
+
return mergedLockfile;
|
|
153
|
+
}
|
|
154
|
+
async function _readGitBranchLockfiles(lockfileDir, prefix, opts) {
|
|
155
|
+
const files = await (0, gitBranchLockfile_1.getGitBranchLockfileNames)(lockfileDir);
|
|
156
|
+
return Promise.all(files.map((file) => _read(path_1.default.join(lockfileDir, file), prefix, opts)));
|
|
157
|
+
}
|
|
158
|
+
//# sourceMappingURL=read.js.map
|
package/lib/read.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"read.js","sourceRoot":"","sources":["../src/read.ts"],"names":[],"mappings":";;;;;;AAAA,2BAAmC;AACnC,gDAAuB;AACvB,gDAAuB;AACvB,+CAGwB;AACxB,uCAAuC;AACvC,2DAA4D;AAG5D,wEAA6C;AAC7C,sDAA0B;AAC1B,oDAA2B;AAC3B,0DAAgC;AAChC,qCAAsD;AACtD,iDAA8D;AAC9D,qCAAmD;AACnD,iDAAsD;AACtD,2DAA+D;AAC/D,yEAAoE;AAE7D,KAAK,UAAU,mBAAmB,CACvC,eAAuB,EACvB,IAGC;IAED,MAAM,YAAY,GAAG,cAAI,CAAC,IAAI,CAAC,eAAe,EAAE,WAAW,CAAC,CAAA;IAC5D,OAAO,CAAC,MAAM,KAAK,CAAC,YAAY,EAAE,eAAe,EAAE,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAA;AACpE,CAAC;AATD,kDASC;AAEM,KAAK,UAAU,qCAAqC,CACzD,OAAe,EACf,IAKC;IAKD,OAAO,mBAAmB,CAAC,OAAO,EAAE;QAClC,GAAG,IAAI;QACP,qBAAqB,EAAE,IAAI;KAC5B,CAAC,CAAA;AACJ,CAAC;AAhBD,sFAgBC;AAEM,KAAK,UAAU,kBAAkB,CACtC,OAAe,EACf,IAKC;IAED,OAAO,CAAC,MAAM,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAA;AAC5D,CAAC;AAVD,gDAUC;AAED,KAAK,UAAU,KAAK,CAClB,YAAoB,EACpB,MAAc,EAAE,mBAAmB;AACnC,IAIC;IAKD,IAAI,kBAAkB,CAAA;IACtB,IAAI,CAAC;QACH,kBAAkB,GAAG,IAAA,mBAAQ,EAAC,MAAM,aAAE,CAAC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC,CAAA;IACxE,CAAC;IAAC,OAAO,GAAY,EAAE,CAAC;QACtB,IAAI,CAAC,CAAC,cAAI,CAAC,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,IAAI,KAAK,QAAQ,CAAC,EAAE,CAAC;YAC/E,MAAM,GAAG,CAAA;QACX,CAAC;QACD,OAAO;YACL,QAAQ,EAAE,IAAI;YACd,YAAY,EAAE,KAAK;SACpB,CAAA;IACH,CAAC;IACD,IAAI,QAAkB,CAAA;IACtB,IAAI,YAAsB,CAAA;IAC1B,IAAI,CAAC;QACH,QAAQ,GAAG,IAAA,kDAAuB,EAAC,iBAAI,CAAC,IAAI,CAAC,kBAAkB,CAAQ,CAAC,CAAA,CAAC,sBAAsB;QAC/F,YAAY,GAAG,KAAK,CAAA;IACtB,CAAC;IAAC,OAAO,GAAY,EAAE,CAAC;QACtB,IAAI,CAAC,IAAI,CAAC,qBAAqB,IAAI,CAAC,IAAA,qBAAM,EAAC,kBAAkB,CAAC,EAAE,CAAC;YAC/D,MAAM,IAAI,iBAAS,CAAC,iBAAiB,EAAE,oBAAoB,YAAY,gBAAiB,GAAa,CAAC,OAAO,EAAE,CAAC,CAAA;QAClH,CAAC;QACD,YAAY,GAAG,IAAI,CAAA;QACnB,QAAQ,GAAG,IAAA,oCAAqB,EAAC,kBAAkB,CAAC,CAAA;QACpD,uBAAM,CAAC,IAAI,CAAC;YACV,OAAO,EAAE,8BAA8B,2BAAe,0BAA0B;YAChF,MAAM;SACP,CAAC,CAAA;IACJ,CAAC;IACD,IAAI,QAAQ,EAAE,CAAC;QACb,MAAM,cAAc,GAAG,IAAA,0BAAc,EAAC,CAAC,QAAQ,CAAC,eAAe,IAAI,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAA;QAEjF,IACE,CAAC,IAAI,CAAC,cAAc;YACpB,IAAI,CAAC,cAAc,CAAC,MAAM,KAAK,CAAC;YAChC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,aAAa,EAAE,EAAE;gBACzC,IAAI,gBAAM,CAAC,KAAK,CAAC,cAAc,CAAC,KAAK,gBAAM,CAAC,KAAK,CAAC,IAAA,0BAAc,EAAC,aAAa,CAAC,CAAC;oBAAE,OAAO,KAAK,CAAA;gBAC9F,IAAI,QAAQ,CAAC,eAAe,KAAK,KAAK,IAAI,gBAAM,CAAC,EAAE,CAAC,cAAc,EAAE,IAAA,0BAAc,EAAC,aAAa,CAAC,CAAC,EAAE,CAAC;oBACnG,uBAAM,CAAC,IAAI,CAAC;wBACV,OAAO,EAAE,QAAQ,2BAAe,6CAA6C;4BAC3E,qEAAqE,aAAa,EAAE;wBACtF,MAAM;qBACP,CAAC,CAAA;gBACJ,CAAC;gBACD,OAAO,IAAI,CAAA;YACb,CAAC,CAAC,EACF,CAAC;YACD,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,CAAA;QACnC,CAAC;IACH,CAAC;IACD,IAAI,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC5B,uBAAM,CAAC,IAAI,CAAC;YACV,OAAO,EAAE,uCAAuC,YAAY,EAAE;YAC9D,MAAM;SACP,CAAC,CAAA;QACF,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,CAAA;IAChD,CAAC;IACD,MAAM,IAAI,oCAA2B,CAAC,YAAY,CAAC,CAAA;AACrD,CAAC;AAED,SAAgB,oBAAoB,CAClC,WAAwB,EACxB,IAKC;IAED,MAAM,SAAS,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,UAAU,EAAE,EAAE;QACvD,GAAG,CAAC,UAAU,CAAC,GAAG;YAChB,YAAY,EAAE,EAAE;YAChB,UAAU,EAAE,EAAE;SACf,CAAA;QACD,OAAO,GAAG,CAAA;IACZ,CAAC,EAAE,EAA2B,CAAC,CAAA;IAC/B,OAAO;QACL,SAAS;QACT,eAAe,EAAE,IAAI,CAAC,eAAe,IAAI,4BAAgB;QACzD,QAAQ,EAAE;YACR,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;YACvC,wBAAwB,EAAE,IAAI,CAAC,wBAAwB;YACvD,oBAAoB,EAAE,IAAI,CAAC,oBAAoB;SAChD;KACF,CAAA;AACH,CAAC;AAzBD,oDAyBC;AAED,KAAK,UAAU,mBAAmB,CAChC,OAAe,EACf,IAMC;IAKD,MAAM,aAAa,GAAa,CAAC,2BAAe,CAAC,CAAA;IACjD,IAAI,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAC9B,MAAM,qBAAqB,GAAW,MAAM,IAAA,oCAAqB,EAAC,IAAI,CAAC,CAAA;QACvE,IAAI,qBAAqB,KAAK,2BAAe,EAAE,CAAC;YAC9C,aAAa,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAA;QAC9C,CAAC;IACH,CAAC;IACD,IAAI,MAAM,GAAyD,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,CAAA;IAC1G,qCAAqC;IACrC,KAAK,MAAM,YAAY,IAAI,aAAa,EAAE,CAAC;QACzC,MAAM,GAAG,MAAM,KAAK,CAAC,cAAI,CAAC,IAAI,CAAC,OAAO,EAAE,YAAY,CAAC,EAAE,OAAO,EAAE,EAAE,GAAG,IAAI,EAAE,qBAAqB,EAAE,IAAI,EAAE,CAAC,CAAA;QACzG,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;YACpB,IAAI,IAAI,CAAC,uBAAuB,EAAE,CAAC;gBACjC,MAAM,CAAC,QAAQ,GAAG,MAAM,wBAAwB,CAAC,MAAM,CAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,CAAA;YAC3F,CAAC;YACD,MAAK;QACP,CAAC;IACH,CAAC;IACD,oCAAoC;IACpC,OAAO,MAAM,CAAA;AACf,CAAC;AAED,KAAK,UAAU,wBAAwB,CACrC,QAAyB,EACzB,WAAmB,EACnB,MAAc,EACd,IAIC;IAED,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO,QAAQ,CAAA;IACjB,CAAC;IACD,MAAM,kBAAkB,GAA6B,CAAC,MAAM,uBAAuB,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAA;IAE/I,IAAI,cAAc,GAAa,QAAQ,CAAA;IAEvC,KAAK,MAAM,iBAAiB,IAAI,kBAAkB,EAAE,CAAC;QACnD,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACvB,SAAQ;QACV,CAAC;QACD,cAAc,GAAG,IAAA,sCAAoB,EAAC,cAAc,EAAE,iBAAiB,CAAC,CAAA;IAC1E,CAAC;IAED,OAAO,cAAc,CAAA;AACvB,CAAC;AAED,KAAK,UAAU,uBAAuB,CACpC,WAAmB,EACnB,MAAc,EACd,IAIC;IAKD,MAAM,KAAK,GAAG,MAAM,IAAA,6CAAyB,EAAC,WAAW,CAAC,CAAA;IAE1D,OAAO,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,cAAI,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,CAAA;AAC5F,CAAC"}
|