@platforma-sdk/block-tools 2.4.11 → 2.5.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.
@@ -1,1675 +0,0 @@
1
- var lr = Object.defineProperty;
2
- var fr = (r, e, t) => e in r ? lr(r, e, { enumerable: !0, configurable: !0, writable: !0, value: t }) : r[e] = t;
3
- var ee = (r, e, t) => fr(r, typeof e != "symbol" ? e + "" : e, t);
4
- import { BlockPackMeta as x, ContentAbsoluteTextLocal as Ue, ContentAbsoluteBinaryLocal as le, BlockPackMetaEmbeddedBase64 as ur, BlockPackMetaEmbeddedBytes as At, DescriptionContentText as hr, DescriptionContentBinary as pr, ContentRelativeText as K, ContentRelativeBinary as Z, BlockComponents as fe, ContentAbsoluteFolder as gr, BlockComponentsManifest as ue, ContentRelative as oe, mapRemoteToAbsolute as tt, CreateBlockPackDescriptionSchema as X, BlockPackDescriptionManifest as M, addPrefixToRelative as dr, BlockPackManifest as Ft, BlockPackManifestFile as mr, BlockPackDescriptionFromPackageJsonRaw as bt, SemVer as Ve, Sha256Schema as Fe, BlockPackIdNoVersion as $r, VersionWithChannels as Er, AnyChannel as ce, blockPackIdToString as Re } from "@milaboratories/pl-model-middle-layer";
5
- import { z as S } from "zod";
6
- import A from "node:path";
7
- import G from "node:fs/promises";
8
- import * as he from "mime-types";
9
- import * as vr from "tar";
10
- import { tryResolve as _t } from "@milaboratories/resolve-helper";
11
- import { notEmpty as Dt, ConsoleLoggerAdapter as wr } from "@milaboratories/ts-helpers";
12
- import { randomUUID as Bt } from "node:crypto";
13
- import Rr from "yaml";
14
- import * as rt from "node:os";
15
- import j from "node:path/posix";
16
- import { paginateListObjectsV2 as yr, S3 as Sr } from "@aws-sdk/client-s3";
17
- import * as H from "node:fs";
18
- function Ir(r) {
19
- return S.string().transform((e, t) => {
20
- const s = _t(r, e);
21
- return s === void 0 ? (t.addIssue({
22
- code: S.ZodIssueCode.custom,
23
- message: `Can't resolve ${e} against ${r}`
24
- }), S.NEVER) : {
25
- type: "absolute-file",
26
- file: s
27
- };
28
- });
29
- }
30
- function Or(r, ...e) {
31
- return S.string().transform((t, s) => {
32
- const o = t.endsWith("/") ? t : `${t}/`;
33
- for (const a of e) {
34
- const c = _t(r, o + a);
35
- if (c !== void 0) {
36
- if (!c.endsWith(a))
37
- throw new Error(`Unexpected resolve result ${c} with index file ${a}`);
38
- return {
39
- type: "absolute-folder",
40
- folder: c.slice(0, c.length - a.length)
41
- };
42
- }
43
- }
44
- return s.addIssue({
45
- code: S.ZodIssueCode.custom,
46
- message: `Can't resolve ${t} folder against ${r}, no index file found (${e.join(", ")})`
47
- }), S.NEVER;
48
- });
49
- }
50
- function st(r) {
51
- return (e) => e.type === "relative" ? { type: "absolute-file", file: A.resolve(r, e.path) } : e;
52
- }
53
- function jt() {
54
- return async (r) => r.type === "absolute-file" ? await G.readFile(r.file, { encoding: "utf-8" }) : r.content;
55
- }
56
- function Nr() {
57
- return async (r) => {
58
- if (r.type === "absolute-file") {
59
- const e = he.lookup(r.file);
60
- if (!e) throw new Error(`Can't recognize mime type of the file: ${r.file}.`);
61
- return {
62
- type: "explicit-base64",
63
- mimeType: e,
64
- content: await G.readFile(r.file, { encoding: "base64" })
65
- };
66
- } else return r;
67
- };
68
- }
69
- function Pr() {
70
- return async (r) => {
71
- if (r.type === "absolute-file") {
72
- const e = he.lookup(r.file);
73
- if (!e) throw new Error(`Can't recognize mime type of the file: ${r.file}.`);
74
- return {
75
- type: "explicit-bytes",
76
- mimeType: e,
77
- content: Buffer.from(await G.readFile(r.file))
78
- };
79
- } else return r.type === "explicit-base64" ? {
80
- type: "explicit-bytes",
81
- mimeType: r.mimeType,
82
- content: Buffer.from(r.content, "base64")
83
- } : r;
84
- };
85
- }
86
- function be(r, e) {
87
- return async (t) => {
88
- if (t.type === "absolute-file") {
89
- const s = A.basename(t.file), o = A.resolve(r, s);
90
- return e == null || e.push(s), await G.cp(t.file, o), { type: "relative", path: s };
91
- } else return t;
92
- };
93
- }
94
- function kr(r, e, t) {
95
- if (!e.endsWith(".tgz")) throw new Error(`Unexpected tgz file name: ${e}`);
96
- return async (s) => {
97
- const o = A.resolve(r, e);
98
- return await vr.create(
99
- {
100
- gzip: !0,
101
- file: o,
102
- cwd: s.folder
103
- },
104
- ["."]
105
- ), t == null || t.push(e), { type: "relative", path: e };
106
- };
107
- }
108
- function ze(r) {
109
- return async (e) => e.type === "explicit-string" ? e : { type: "explicit-string", content: (await r(e.path)).toString("utf8") };
110
- }
111
- function Lr(r) {
112
- return async (e) => e.type === "explicit-string" ? e.content : (await r(e.path)).toString("utf8");
113
- }
114
- function ua(r) {
115
- return async (e) => {
116
- if (e.type === "explicit-base64") return e;
117
- const t = he.lookup(e.path);
118
- if (!t) throw new Error(`Can't recognize mime type of the file: ${e.path}.`);
119
- return {
120
- type: "explicit-base64",
121
- mimeType: t,
122
- content: (await r(e.path)).toString("base64")
123
- };
124
- };
125
- }
126
- function pe(r) {
127
- return async (e) => {
128
- if (e.type === "explicit-base64")
129
- return {
130
- type: "explicit-bytes",
131
- mimeType: e.mimeType,
132
- content: Buffer.from(e.content, "base64")
133
- };
134
- const t = he.lookup(e.path);
135
- if (!t) throw new Error(`Can't recognize mime type of the file: ${e.path}.`);
136
- return {
137
- type: "explicit-bytes",
138
- mimeType: t,
139
- content: await r(e.path)
140
- };
141
- };
142
- }
143
- function Tr(r) {
144
- return x(
145
- hr.transform(st(r)),
146
- pr.transform(st(r))
147
- );
148
- }
149
- function Cr(r, e) {
150
- return x(
151
- Ue.transform(be(r, e)),
152
- le.transform(be(r, e))
153
- );
154
- }
155
- const ha = x(
156
- Ue.transform(jt()),
157
- le.transform(Nr())
158
- ).pipe(ur), pa = x(
159
- Ue.transform(jt()),
160
- le.transform(Pr())
161
- ).pipe(At);
162
- function ga(r) {
163
- return x(
164
- K.transform(Lr(r)),
165
- Z.transform(pe(r))
166
- ).pipe(At);
167
- }
168
- function Ar(r) {
169
- return fe(
170
- Ir(r),
171
- Or(r, "index.html")
172
- );
173
- }
174
- function Fr(r, e) {
175
- return fe(
176
- le.transform(be(r, e)),
177
- gr.transform(kr(r, "ui.tgz", e))
178
- ).pipe(ue);
179
- }
180
- function da(r) {
181
- return fe(
182
- oe.transform(tt(r)),
183
- oe.transform(tt(r))
184
- );
185
- }
186
- function Gt(r) {
187
- return X(
188
- Ar(r),
189
- Tr(r)
190
- );
191
- }
192
- function br(r, e) {
193
- return X(
194
- Fr(r, e),
195
- Cr(r, e)
196
- ).pipe(M);
197
- }
198
- function nt(r) {
199
- const e = dr(r);
200
- return M.pipe(
201
- X(
202
- fe(
203
- oe.transform(e),
204
- oe.transform(e)
205
- ),
206
- x(
207
- K.transform(e),
208
- Z.transform(e)
209
- )
210
- )
211
- ).pipe(M);
212
- }
213
- async function Me(r, e) {
214
- try {
215
- return e(await G.readFile(r));
216
- } catch (t) {
217
- if (t.code == "ENOENT") return;
218
- throw new Error("", { cause: t });
219
- }
220
- }
221
- async function _e(r) {
222
- return Buffer.from(await crypto.subtle.digest("sha-256", r)).toString("hex").toUpperCase();
223
- }
224
- async function ma(r, e) {
225
- await G.mkdir(e, { recursive: !0 });
226
- const t = [], s = await br(e, t).parseAsync(r), o = await Promise.all(
227
- t.map(async (c) => {
228
- const d = await G.readFile(A.resolve(e, c)), n = await _e(d);
229
- return { name: c, size: d.length, sha256: n };
230
- })
231
- ), a = Ft.parse({
232
- schema: "v2",
233
- description: s,
234
- files: o,
235
- timestamp: Date.now()
236
- });
237
- return await G.writeFile(A.resolve(e, mr), JSON.stringify(a)), a;
238
- }
239
- const De = "block", _r = /(?:@[a-zA-Z0-9-.]+\/)?(?<organization>[a-zA-Z0-9-]+)\.(?<name>[a-zA-Z0-9-]+)/;
240
- function xt(r) {
241
- const e = r.match(_r);
242
- if (!e)
243
- throw new Error(
244
- `Malformed package name (${r}), can't infer organization and block pack name.`
245
- );
246
- const { name: t, organization: s } = e.groups;
247
- return { name: t, organization: s };
248
- }
249
- async function $a(r, e) {
250
- const t = A.resolve(r, "package.json");
251
- try {
252
- const s = await Me(
253
- t,
254
- (d) => JSON.parse(d.toString("utf-8"))
255
- );
256
- if (s === void 0) return;
257
- const o = s[De];
258
- if (o === void 0) return;
259
- const a = {
260
- ...bt.parse(o),
261
- id: {
262
- ...xt(
263
- Dt(s.name, `"name" not found in ${t}`)
264
- ),
265
- version: Ve.parse(s.version)
266
- }
267
- }, c = await Gt(r).safeParseAsync(a);
268
- return c.success ? c.data : void 0;
269
- } catch (s) {
270
- e == null || e.info(s);
271
- return;
272
- }
273
- }
274
- async function Dr(r) {
275
- const e = A.resolve(r, "package.json"), t = JSON.parse(await G.readFile(e, { encoding: "utf-8" })), s = t[De];
276
- if (s === void 0)
277
- throw new Error(
278
- `Block description (field ${De}) not found in ${e}.`
279
- );
280
- return {
281
- ...bt.parse(s),
282
- id: {
283
- ...xt(
284
- Dt(t.name, `"name" not found in ${e}`)
285
- ),
286
- version: Ve.parse(t.version)
287
- }
288
- };
289
- }
290
- async function Ea(r) {
291
- const e = await Dr(r);
292
- return await Gt(r).parseAsync(e);
293
- }
294
- function Br(r) {
295
- return r && r.__esModule && Object.prototype.hasOwnProperty.call(r, "default") ? r.default : r;
296
- }
297
- var Be = { exports: {} };
298
- const jr = "2.0.0", Ut = 256, Gr = Number.MAX_SAFE_INTEGER || /* istanbul ignore next */
299
- 9007199254740991, xr = 16, Ur = Ut - 6, Vr = [
300
- "major",
301
- "premajor",
302
- "minor",
303
- "preminor",
304
- "patch",
305
- "prepatch",
306
- "prerelease"
307
- ];
308
- var ge = {
309
- MAX_LENGTH: Ut,
310
- MAX_SAFE_COMPONENT_LENGTH: xr,
311
- MAX_SAFE_BUILD_LENGTH: Ur,
312
- MAX_SAFE_INTEGER: Gr,
313
- RELEASE_TYPES: Vr,
314
- SEMVER_SPEC_VERSION: jr,
315
- FLAG_INCLUDE_PRERELEASE: 1,
316
- FLAG_LOOSE: 2
317
- };
318
- const zr = typeof process == "object" && process.env && process.env.NODE_DEBUG && /\bsemver\b/i.test(process.env.NODE_DEBUG) ? (...r) => console.error("SEMVER", ...r) : () => {
319
- };
320
- var de = zr;
321
- (function(r, e) {
322
- const {
323
- MAX_SAFE_COMPONENT_LENGTH: t,
324
- MAX_SAFE_BUILD_LENGTH: s,
325
- MAX_LENGTH: o
326
- } = ge, a = de;
327
- e = r.exports = {};
328
- const c = e.re = [], d = e.safeRe = [], n = e.src = [], i = e.t = {};
329
- let u = 0;
330
- const g = "[a-zA-Z0-9-]", w = [
331
- ["\\s", 1],
332
- ["\\d", o],
333
- [g, s]
334
- ], p = (O) => {
335
- for (const [P, k] of w)
336
- O = O.split(`${P}*`).join(`${P}{0,${k}}`).split(`${P}+`).join(`${P}{1,${k}}`);
337
- return O;
338
- }, l = (O, P, k) => {
339
- const C = p(P), I = u++;
340
- a(O, I, P), i[O] = I, n[I] = P, c[I] = new RegExp(P, k ? "g" : void 0), d[I] = new RegExp(C, k ? "g" : void 0);
341
- };
342
- l("NUMERICIDENTIFIER", "0|[1-9]\\d*"), l("NUMERICIDENTIFIERLOOSE", "\\d+"), l("NONNUMERICIDENTIFIER", `\\d*[a-zA-Z-]${g}*`), l("MAINVERSION", `(${n[i.NUMERICIDENTIFIER]})\\.(${n[i.NUMERICIDENTIFIER]})\\.(${n[i.NUMERICIDENTIFIER]})`), l("MAINVERSIONLOOSE", `(${n[i.NUMERICIDENTIFIERLOOSE]})\\.(${n[i.NUMERICIDENTIFIERLOOSE]})\\.(${n[i.NUMERICIDENTIFIERLOOSE]})`), l("PRERELEASEIDENTIFIER", `(?:${n[i.NUMERICIDENTIFIER]}|${n[i.NONNUMERICIDENTIFIER]})`), l("PRERELEASEIDENTIFIERLOOSE", `(?:${n[i.NUMERICIDENTIFIERLOOSE]}|${n[i.NONNUMERICIDENTIFIER]})`), l("PRERELEASE", `(?:-(${n[i.PRERELEASEIDENTIFIER]}(?:\\.${n[i.PRERELEASEIDENTIFIER]})*))`), l("PRERELEASELOOSE", `(?:-?(${n[i.PRERELEASEIDENTIFIERLOOSE]}(?:\\.${n[i.PRERELEASEIDENTIFIERLOOSE]})*))`), l("BUILDIDENTIFIER", `${g}+`), l("BUILD", `(?:\\+(${n[i.BUILDIDENTIFIER]}(?:\\.${n[i.BUILDIDENTIFIER]})*))`), l("FULLPLAIN", `v?${n[i.MAINVERSION]}${n[i.PRERELEASE]}?${n[i.BUILD]}?`), l("FULL", `^${n[i.FULLPLAIN]}$`), l("LOOSEPLAIN", `[v=\\s]*${n[i.MAINVERSIONLOOSE]}${n[i.PRERELEASELOOSE]}?${n[i.BUILD]}?`), l("LOOSE", `^${n[i.LOOSEPLAIN]}$`), l("GTLT", "((?:<|>)?=?)"), l("XRANGEIDENTIFIERLOOSE", `${n[i.NUMERICIDENTIFIERLOOSE]}|x|X|\\*`), l("XRANGEIDENTIFIER", `${n[i.NUMERICIDENTIFIER]}|x|X|\\*`), l("XRANGEPLAIN", `[v=\\s]*(${n[i.XRANGEIDENTIFIER]})(?:\\.(${n[i.XRANGEIDENTIFIER]})(?:\\.(${n[i.XRANGEIDENTIFIER]})(?:${n[i.PRERELEASE]})?${n[i.BUILD]}?)?)?`), l("XRANGEPLAINLOOSE", `[v=\\s]*(${n[i.XRANGEIDENTIFIERLOOSE]})(?:\\.(${n[i.XRANGEIDENTIFIERLOOSE]})(?:\\.(${n[i.XRANGEIDENTIFIERLOOSE]})(?:${n[i.PRERELEASELOOSE]})?${n[i.BUILD]}?)?)?`), l("XRANGE", `^${n[i.GTLT]}\\s*${n[i.XRANGEPLAIN]}$`), l("XRANGELOOSE", `^${n[i.GTLT]}\\s*${n[i.XRANGEPLAINLOOSE]}$`), l("COERCEPLAIN", `(^|[^\\d])(\\d{1,${t}})(?:\\.(\\d{1,${t}}))?(?:\\.(\\d{1,${t}}))?`), l("COERCE", `${n[i.COERCEPLAIN]}(?:$|[^\\d])`), l("COERCEFULL", n[i.COERCEPLAIN] + `(?:${n[i.PRERELEASE]})?(?:${n[i.BUILD]})?(?:$|[^\\d])`), l("COERCERTL", n[i.COERCE], !0), l("COERCERTLFULL", n[i.COERCEFULL], !0), l("LONETILDE", "(?:~>?)"), l("TILDETRIM", `(\\s*)${n[i.LONETILDE]}\\s+`, !0), e.tildeTrimReplace = "$1~", l("TILDE", `^${n[i.LONETILDE]}${n[i.XRANGEPLAIN]}$`), l("TILDELOOSE", `^${n[i.LONETILDE]}${n[i.XRANGEPLAINLOOSE]}$`), l("LONECARET", "(?:\\^)"), l("CARETTRIM", `(\\s*)${n[i.LONECARET]}\\s+`, !0), e.caretTrimReplace = "$1^", l("CARET", `^${n[i.LONECARET]}${n[i.XRANGEPLAIN]}$`), l("CARETLOOSE", `^${n[i.LONECARET]}${n[i.XRANGEPLAINLOOSE]}$`), l("COMPARATORLOOSE", `^${n[i.GTLT]}\\s*(${n[i.LOOSEPLAIN]})$|^$`), l("COMPARATOR", `^${n[i.GTLT]}\\s*(${n[i.FULLPLAIN]})$|^$`), l("COMPARATORTRIM", `(\\s*)${n[i.GTLT]}\\s*(${n[i.LOOSEPLAIN]}|${n[i.XRANGEPLAIN]})`, !0), e.comparatorTrimReplace = "$1$2$3", l("HYPHENRANGE", `^\\s*(${n[i.XRANGEPLAIN]})\\s+-\\s+(${n[i.XRANGEPLAIN]})\\s*$`), l("HYPHENRANGELOOSE", `^\\s*(${n[i.XRANGEPLAINLOOSE]})\\s+-\\s+(${n[i.XRANGEPLAINLOOSE]})\\s*$`), l("STAR", "(<|>)?=?\\s*\\*"), l("GTE0", "^\\s*>=\\s*0\\.0\\.0\\s*$"), l("GTE0PRE", "^\\s*>=\\s*0\\.0\\.0-0\\s*$");
343
- })(Be, Be.exports);
344
- var Q = Be.exports;
345
- const Mr = Object.freeze({ loose: !0 }), Xr = Object.freeze({}), Jr = (r) => r ? typeof r != "object" ? Mr : r : Xr;
346
- var Xe = Jr;
347
- const it = /^[0-9]+$/, Vt = (r, e) => {
348
- const t = it.test(r), s = it.test(e);
349
- return t && s && (r = +r, e = +e), r === e ? 0 : t && !s ? -1 : s && !t ? 1 : r < e ? -1 : 1;
350
- }, Wr = (r, e) => Vt(e, r);
351
- var zt = {
352
- compareIdentifiers: Vt,
353
- rcompareIdentifiers: Wr
354
- };
355
- const te = de, { MAX_LENGTH: at, MAX_SAFE_INTEGER: re } = ge, { safeRe: ot, t: ct } = Q, qr = Xe, { compareIdentifiers: z } = zt;
356
- let Hr = class B {
357
- constructor(e, t) {
358
- if (t = qr(t), e instanceof B) {
359
- if (e.loose === !!t.loose && e.includePrerelease === !!t.includePrerelease)
360
- return e;
361
- e = e.version;
362
- } else if (typeof e != "string")
363
- throw new TypeError(`Invalid version. Must be a string. Got type "${typeof e}".`);
364
- if (e.length > at)
365
- throw new TypeError(
366
- `version is longer than ${at} characters`
367
- );
368
- te("SemVer", e, t), this.options = t, this.loose = !!t.loose, this.includePrerelease = !!t.includePrerelease;
369
- const s = e.trim().match(t.loose ? ot[ct.LOOSE] : ot[ct.FULL]);
370
- if (!s)
371
- throw new TypeError(`Invalid Version: ${e}`);
372
- if (this.raw = e, this.major = +s[1], this.minor = +s[2], this.patch = +s[3], this.major > re || this.major < 0)
373
- throw new TypeError("Invalid major version");
374
- if (this.minor > re || this.minor < 0)
375
- throw new TypeError("Invalid minor version");
376
- if (this.patch > re || this.patch < 0)
377
- throw new TypeError("Invalid patch version");
378
- s[4] ? this.prerelease = s[4].split(".").map((o) => {
379
- if (/^[0-9]+$/.test(o)) {
380
- const a = +o;
381
- if (a >= 0 && a < re)
382
- return a;
383
- }
384
- return o;
385
- }) : this.prerelease = [], this.build = s[5] ? s[5].split(".") : [], this.format();
386
- }
387
- format() {
388
- return this.version = `${this.major}.${this.minor}.${this.patch}`, this.prerelease.length && (this.version += `-${this.prerelease.join(".")}`), this.version;
389
- }
390
- toString() {
391
- return this.version;
392
- }
393
- compare(e) {
394
- if (te("SemVer.compare", this.version, this.options, e), !(e instanceof B)) {
395
- if (typeof e == "string" && e === this.version)
396
- return 0;
397
- e = new B(e, this.options);
398
- }
399
- return e.version === this.version ? 0 : this.compareMain(e) || this.comparePre(e);
400
- }
401
- compareMain(e) {
402
- return e instanceof B || (e = new B(e, this.options)), z(this.major, e.major) || z(this.minor, e.minor) || z(this.patch, e.patch);
403
- }
404
- comparePre(e) {
405
- if (e instanceof B || (e = new B(e, this.options)), this.prerelease.length && !e.prerelease.length)
406
- return -1;
407
- if (!this.prerelease.length && e.prerelease.length)
408
- return 1;
409
- if (!this.prerelease.length && !e.prerelease.length)
410
- return 0;
411
- let t = 0;
412
- do {
413
- const s = this.prerelease[t], o = e.prerelease[t];
414
- if (te("prerelease compare", t, s, o), s === void 0 && o === void 0)
415
- return 0;
416
- if (o === void 0)
417
- return 1;
418
- if (s === void 0)
419
- return -1;
420
- if (s === o)
421
- continue;
422
- return z(s, o);
423
- } while (++t);
424
- }
425
- compareBuild(e) {
426
- e instanceof B || (e = new B(e, this.options));
427
- let t = 0;
428
- do {
429
- const s = this.build[t], o = e.build[t];
430
- if (te("build compare", t, s, o), s === void 0 && o === void 0)
431
- return 0;
432
- if (o === void 0)
433
- return 1;
434
- if (s === void 0)
435
- return -1;
436
- if (s === o)
437
- continue;
438
- return z(s, o);
439
- } while (++t);
440
- }
441
- // preminor will bump the version up to the next minor release, and immediately
442
- // down to pre-release. premajor and prepatch work the same way.
443
- inc(e, t, s) {
444
- switch (e) {
445
- case "premajor":
446
- this.prerelease.length = 0, this.patch = 0, this.minor = 0, this.major++, this.inc("pre", t, s);
447
- break;
448
- case "preminor":
449
- this.prerelease.length = 0, this.patch = 0, this.minor++, this.inc("pre", t, s);
450
- break;
451
- case "prepatch":
452
- this.prerelease.length = 0, this.inc("patch", t, s), this.inc("pre", t, s);
453
- break;
454
- case "prerelease":
455
- this.prerelease.length === 0 && this.inc("patch", t, s), this.inc("pre", t, s);
456
- break;
457
- case "major":
458
- (this.minor !== 0 || this.patch !== 0 || this.prerelease.length === 0) && this.major++, this.minor = 0, this.patch = 0, this.prerelease = [];
459
- break;
460
- case "minor":
461
- (this.patch !== 0 || this.prerelease.length === 0) && this.minor++, this.patch = 0, this.prerelease = [];
462
- break;
463
- case "patch":
464
- this.prerelease.length === 0 && this.patch++, this.prerelease = [];
465
- break;
466
- case "pre": {
467
- const o = Number(s) ? 1 : 0;
468
- if (!t && s === !1)
469
- throw new Error("invalid increment argument: identifier is empty");
470
- if (this.prerelease.length === 0)
471
- this.prerelease = [o];
472
- else {
473
- let a = this.prerelease.length;
474
- for (; --a >= 0; )
475
- typeof this.prerelease[a] == "number" && (this.prerelease[a]++, a = -2);
476
- if (a === -1) {
477
- if (t === this.prerelease.join(".") && s === !1)
478
- throw new Error("invalid increment argument: identifier already exists");
479
- this.prerelease.push(o);
480
- }
481
- }
482
- if (t) {
483
- let a = [t, o];
484
- s === !1 && (a = [t]), z(this.prerelease[0], t) === 0 ? isNaN(this.prerelease[1]) && (this.prerelease = a) : this.prerelease = a;
485
- }
486
- break;
487
- }
488
- default:
489
- throw new Error(`invalid increment argument: ${e}`);
490
- }
491
- return this.raw = this.format(), this.build.length && (this.raw += `+${this.build.join(".")}`), this;
492
- }
493
- };
494
- var F = Hr;
495
- const lt = F, Yr = (r, e, t = !1) => {
496
- if (r instanceof lt)
497
- return r;
498
- try {
499
- return new lt(r, e);
500
- } catch (s) {
501
- if (!t)
502
- return null;
503
- throw s;
504
- }
505
- };
506
- var J = Yr;
507
- const Kr = J, Zr = (r, e) => {
508
- const t = Kr(r, e);
509
- return t ? t.version : null;
510
- };
511
- var Qr = Zr;
512
- const es = J, ts = (r, e) => {
513
- const t = es(r.trim().replace(/^[=v]+/, ""), e);
514
- return t ? t.version : null;
515
- };
516
- var rs = ts;
517
- const ft = F, ss = (r, e, t, s, o) => {
518
- typeof t == "string" && (o = s, s = t, t = void 0);
519
- try {
520
- return new ft(
521
- r instanceof ft ? r.version : r,
522
- t
523
- ).inc(e, s, o).version;
524
- } catch {
525
- return null;
526
- }
527
- };
528
- var ns = ss;
529
- const ut = J, is = (r, e) => {
530
- const t = ut(r, null, !0), s = ut(e, null, !0), o = t.compare(s);
531
- if (o === 0)
532
- return null;
533
- const a = o > 0, c = a ? t : s, d = a ? s : t, n = !!c.prerelease.length;
534
- if (!!d.prerelease.length && !n)
535
- return !d.patch && !d.minor ? "major" : c.patch ? "patch" : c.minor ? "minor" : "major";
536
- const u = n ? "pre" : "";
537
- return t.major !== s.major ? u + "major" : t.minor !== s.minor ? u + "minor" : t.patch !== s.patch ? u + "patch" : "prerelease";
538
- };
539
- var as = is;
540
- const os = F, cs = (r, e) => new os(r, e).major;
541
- var ls = cs;
542
- const fs = F, us = (r, e) => new fs(r, e).minor;
543
- var hs = us;
544
- const ps = F, gs = (r, e) => new ps(r, e).patch;
545
- var ds = gs;
546
- const ms = J, $s = (r, e) => {
547
- const t = ms(r, e);
548
- return t && t.prerelease.length ? t.prerelease : null;
549
- };
550
- var Es = $s;
551
- const ht = F, vs = (r, e, t) => new ht(r, t).compare(new ht(e, t));
552
- var _ = vs;
553
- const ws = _, Rs = (r, e, t) => ws(e, r, t);
554
- var ys = Rs;
555
- const Ss = _, Is = (r, e) => Ss(r, e, !0);
556
- var Os = Is;
557
- const pt = F, Ns = (r, e, t) => {
558
- const s = new pt(r, t), o = new pt(e, t);
559
- return s.compare(o) || s.compareBuild(o);
560
- };
561
- var Je = Ns;
562
- const Ps = Je, ks = (r, e) => r.sort((t, s) => Ps(t, s, e));
563
- var Ls = ks;
564
- const Ts = Je, Cs = (r, e) => r.sort((t, s) => Ts(s, t, e));
565
- var As = Cs;
566
- const Fs = _, bs = (r, e, t) => Fs(r, e, t) > 0;
567
- var me = bs;
568
- const _s = _, Ds = (r, e, t) => _s(r, e, t) < 0;
569
- var We = Ds;
570
- const Bs = _, js = (r, e, t) => Bs(r, e, t) === 0;
571
- var Mt = js;
572
- const Gs = _, xs = (r, e, t) => Gs(r, e, t) !== 0;
573
- var Xt = xs;
574
- const Us = _, Vs = (r, e, t) => Us(r, e, t) >= 0;
575
- var qe = Vs;
576
- const zs = _, Ms = (r, e, t) => zs(r, e, t) <= 0;
577
- var He = Ms;
578
- const Xs = Mt, Js = Xt, Ws = me, qs = qe, Hs = We, Ys = He, Ks = (r, e, t, s) => {
579
- switch (e) {
580
- case "===":
581
- return typeof r == "object" && (r = r.version), typeof t == "object" && (t = t.version), r === t;
582
- case "!==":
583
- return typeof r == "object" && (r = r.version), typeof t == "object" && (t = t.version), r !== t;
584
- case "":
585
- case "=":
586
- case "==":
587
- return Xs(r, t, s);
588
- case "!=":
589
- return Js(r, t, s);
590
- case ">":
591
- return Ws(r, t, s);
592
- case ">=":
593
- return qs(r, t, s);
594
- case "<":
595
- return Hs(r, t, s);
596
- case "<=":
597
- return Ys(r, t, s);
598
- default:
599
- throw new TypeError(`Invalid operator: ${e}`);
600
- }
601
- };
602
- var Jt = Ks;
603
- const Zs = F, Qs = J, { safeRe: se, t: ne } = Q, en = (r, e) => {
604
- if (r instanceof Zs)
605
- return r;
606
- if (typeof r == "number" && (r = String(r)), typeof r != "string")
607
- return null;
608
- e = e || {};
609
- let t = null;
610
- if (!e.rtl)
611
- t = r.match(e.includePrerelease ? se[ne.COERCEFULL] : se[ne.COERCE]);
612
- else {
613
- const n = e.includePrerelease ? se[ne.COERCERTLFULL] : se[ne.COERCERTL];
614
- let i;
615
- for (; (i = n.exec(r)) && (!t || t.index + t[0].length !== r.length); )
616
- (!t || i.index + i[0].length !== t.index + t[0].length) && (t = i), n.lastIndex = i.index + i[1].length + i[2].length;
617
- n.lastIndex = -1;
618
- }
619
- if (t === null)
620
- return null;
621
- const s = t[2], o = t[3] || "0", a = t[4] || "0", c = e.includePrerelease && t[5] ? `-${t[5]}` : "", d = e.includePrerelease && t[6] ? `+${t[6]}` : "";
622
- return Qs(`${s}.${o}.${a}${c}${d}`, e);
623
- };
624
- var tn = en;
625
- class rn {
626
- constructor() {
627
- this.max = 1e3, this.map = /* @__PURE__ */ new Map();
628
- }
629
- get(e) {
630
- const t = this.map.get(e);
631
- if (t !== void 0)
632
- return this.map.delete(e), this.map.set(e, t), t;
633
- }
634
- delete(e) {
635
- return this.map.delete(e);
636
- }
637
- set(e, t) {
638
- if (!this.delete(e) && t !== void 0) {
639
- if (this.map.size >= this.max) {
640
- const o = this.map.keys().next().value;
641
- this.delete(o);
642
- }
643
- this.map.set(e, t);
644
- }
645
- return this;
646
- }
647
- }
648
- var sn = rn, ye, gt;
649
- function D() {
650
- if (gt) return ye;
651
- gt = 1;
652
- const r = /\s+/g;
653
- class e {
654
- constructor(f, E) {
655
- if (E = o(E), f instanceof e)
656
- return f.loose === !!E.loose && f.includePrerelease === !!E.includePrerelease ? f : new e(f.raw, E);
657
- if (f instanceof a)
658
- return this.raw = f.value, this.set = [[f]], this.formatted = void 0, this;
659
- if (this.options = E, this.loose = !!E.loose, this.includePrerelease = !!E.includePrerelease, this.raw = f.trim().replace(r, " "), this.set = this.raw.split("||").map((m) => this.parseRange(m.trim())).filter((m) => m.length), !this.set.length)
660
- throw new TypeError(`Invalid SemVer Range: ${this.raw}`);
661
- if (this.set.length > 1) {
662
- const m = this.set[0];
663
- if (this.set = this.set.filter((v) => !O(v[0])), this.set.length === 0)
664
- this.set = [m];
665
- else if (this.set.length > 1) {
666
- for (const v of this.set)
667
- if (v.length === 1 && P(v[0])) {
668
- this.set = [v];
669
- break;
670
- }
671
- }
672
- }
673
- this.formatted = void 0;
674
- }
675
- get range() {
676
- if (this.formatted === void 0) {
677
- this.formatted = "";
678
- for (let f = 0; f < this.set.length; f++) {
679
- f > 0 && (this.formatted += "||");
680
- const E = this.set[f];
681
- for (let m = 0; m < E.length; m++)
682
- m > 0 && (this.formatted += " "), this.formatted += E[m].toString().trim();
683
- }
684
- }
685
- return this.formatted;
686
- }
687
- format() {
688
- return this.range;
689
- }
690
- toString() {
691
- return this.range;
692
- }
693
- parseRange(f) {
694
- const m = ((this.options.includePrerelease && p) | (this.options.loose && l)) + ":" + f, v = s.get(m);
695
- if (v)
696
- return v;
697
- const $ = this.options.loose, R = $ ? n[i.HYPHENRANGELOOSE] : n[i.HYPHENRANGE];
698
- f = f.replace(R, or(this.options.includePrerelease)), c("hyphen replace", f), f = f.replace(n[i.COMPARATORTRIM], u), c("comparator trim", f), f = f.replace(n[i.TILDETRIM], g), c("tilde trim", f), f = f.replace(n[i.CARETTRIM], w), c("caret trim", f);
699
- let N = f.split(" ").map((T) => C(T, this.options)).join(" ").split(/\s+/).map((T) => ar(T, this.options));
700
- $ && (N = N.filter((T) => (c("loose invalid filter", T, this.options), !!T.match(n[i.COMPARATORLOOSE])))), c("range list", N);
701
- const y = /* @__PURE__ */ new Map(), L = N.map((T) => new a(T, this.options));
702
- for (const T of L) {
703
- if (O(T))
704
- return [T];
705
- y.set(T.value, T);
706
- }
707
- y.size > 1 && y.has("") && y.delete("");
708
- const b = [...y.values()];
709
- return s.set(m, b), b;
710
- }
711
- intersects(f, E) {
712
- if (!(f instanceof e))
713
- throw new TypeError("a Range is required");
714
- return this.set.some((m) => k(m, E) && f.set.some((v) => k(v, E) && m.every(($) => v.every((R) => $.intersects(R, E)))));
715
- }
716
- // if ANY of the sets match ALL of its comparators, then pass
717
- test(f) {
718
- if (!f)
719
- return !1;
720
- if (typeof f == "string")
721
- try {
722
- f = new d(f, this.options);
723
- } catch {
724
- return !1;
725
- }
726
- for (let E = 0; E < this.set.length; E++)
727
- if (cr(this.set[E], f, this.options))
728
- return !0;
729
- return !1;
730
- }
731
- }
732
- ye = e;
733
- const t = sn, s = new t(), o = Xe, a = $e(), c = de, d = F, {
734
- safeRe: n,
735
- t: i,
736
- comparatorTrimReplace: u,
737
- tildeTrimReplace: g,
738
- caretTrimReplace: w
739
- } = Q, { FLAG_INCLUDE_PRERELEASE: p, FLAG_LOOSE: l } = ge, O = (h) => h.value === "<0.0.0-0", P = (h) => h.value === "", k = (h, f) => {
740
- let E = !0;
741
- const m = h.slice();
742
- let v = m.pop();
743
- for (; E && m.length; )
744
- E = m.every(($) => v.intersects($, f)), v = m.pop();
745
- return E;
746
- }, C = (h, f) => (c("comp", h, f), h = tr(h, f), c("caret", h), h = U(h, f), c("tildes", h), h = sr(h, f), c("xrange", h), h = ir(h, f), c("stars", h), h), I = (h) => !h || h.toLowerCase() === "x" || h === "*", U = (h, f) => h.trim().split(/\s+/).map((E) => W(E, f)).join(" "), W = (h, f) => {
747
- const E = f.loose ? n[i.TILDELOOSE] : n[i.TILDE];
748
- return h.replace(E, (m, v, $, R, N) => {
749
- c("tilde", h, m, v, $, R, N);
750
- let y;
751
- return I(v) ? y = "" : I($) ? y = `>=${v}.0.0 <${+v + 1}.0.0-0` : I(R) ? y = `>=${v}.${$}.0 <${v}.${+$ + 1}.0-0` : N ? (c("replaceTilde pr", N), y = `>=${v}.${$}.${R}-${N} <${v}.${+$ + 1}.0-0`) : y = `>=${v}.${$}.${R} <${v}.${+$ + 1}.0-0`, c("tilde return", y), y;
752
- });
753
- }, tr = (h, f) => h.trim().split(/\s+/).map((E) => rr(E, f)).join(" "), rr = (h, f) => {
754
- c("caret", h, f);
755
- const E = f.loose ? n[i.CARETLOOSE] : n[i.CARET], m = f.includePrerelease ? "-0" : "";
756
- return h.replace(E, (v, $, R, N, y) => {
757
- c("caret", h, v, $, R, N, y);
758
- let L;
759
- return I($) ? L = "" : I(R) ? L = `>=${$}.0.0${m} <${+$ + 1}.0.0-0` : I(N) ? $ === "0" ? L = `>=${$}.${R}.0${m} <${$}.${+R + 1}.0-0` : L = `>=${$}.${R}.0${m} <${+$ + 1}.0.0-0` : y ? (c("replaceCaret pr", y), $ === "0" ? R === "0" ? L = `>=${$}.${R}.${N}-${y} <${$}.${R}.${+N + 1}-0` : L = `>=${$}.${R}.${N}-${y} <${$}.${+R + 1}.0-0` : L = `>=${$}.${R}.${N}-${y} <${+$ + 1}.0.0-0`) : (c("no pr"), $ === "0" ? R === "0" ? L = `>=${$}.${R}.${N}${m} <${$}.${R}.${+N + 1}-0` : L = `>=${$}.${R}.${N}${m} <${$}.${+R + 1}.0-0` : L = `>=${$}.${R}.${N} <${+$ + 1}.0.0-0`), c("caret return", L), L;
760
- });
761
- }, sr = (h, f) => (c("replaceXRanges", h, f), h.split(/\s+/).map((E) => nr(E, f)).join(" ")), nr = (h, f) => {
762
- h = h.trim();
763
- const E = f.loose ? n[i.XRANGELOOSE] : n[i.XRANGE];
764
- return h.replace(E, (m, v, $, R, N, y) => {
765
- c("xRange", h, m, v, $, R, N, y);
766
- const L = I($), b = L || I(R), T = b || I(N), q = T;
767
- return v === "=" && q && (v = ""), y = f.includePrerelease ? "-0" : "", L ? v === ">" || v === "<" ? m = "<0.0.0-0" : m = "*" : v && q ? (b && (R = 0), N = 0, v === ">" ? (v = ">=", b ? ($ = +$ + 1, R = 0, N = 0) : (R = +R + 1, N = 0)) : v === "<=" && (v = "<", b ? $ = +$ + 1 : R = +R + 1), v === "<" && (y = "-0"), m = `${v + $}.${R}.${N}${y}`) : b ? m = `>=${$}.0.0${y} <${+$ + 1}.0.0-0` : T && (m = `>=${$}.${R}.0${y} <${$}.${+R + 1}.0-0`), c("xRange return", m), m;
768
- });
769
- }, ir = (h, f) => (c("replaceStars", h, f), h.trim().replace(n[i.STAR], "")), ar = (h, f) => (c("replaceGTE0", h, f), h.trim().replace(n[f.includePrerelease ? i.GTE0PRE : i.GTE0], "")), or = (h) => (f, E, m, v, $, R, N, y, L, b, T, q) => (I(m) ? E = "" : I(v) ? E = `>=${m}.0.0${h ? "-0" : ""}` : I($) ? E = `>=${m}.${v}.0${h ? "-0" : ""}` : R ? E = `>=${E}` : E = `>=${E}${h ? "-0" : ""}`, I(L) ? y = "" : I(b) ? y = `<${+L + 1}.0.0-0` : I(T) ? y = `<${L}.${+b + 1}.0-0` : q ? y = `<=${L}.${b}.${T}-${q}` : h ? y = `<${L}.${b}.${+T + 1}-0` : y = `<=${y}`, `${E} ${y}`.trim()), cr = (h, f, E) => {
770
- for (let m = 0; m < h.length; m++)
771
- if (!h[m].test(f))
772
- return !1;
773
- if (f.prerelease.length && !E.includePrerelease) {
774
- for (let m = 0; m < h.length; m++)
775
- if (c(h[m].semver), h[m].semver !== a.ANY && h[m].semver.prerelease.length > 0) {
776
- const v = h[m].semver;
777
- if (v.major === f.major && v.minor === f.minor && v.patch === f.patch)
778
- return !0;
779
- }
780
- return !1;
781
- }
782
- return !0;
783
- };
784
- return ye;
785
- }
786
- var Se, dt;
787
- function $e() {
788
- if (dt) return Se;
789
- dt = 1;
790
- const r = Symbol("SemVer ANY");
791
- class e {
792
- static get ANY() {
793
- return r;
794
- }
795
- constructor(u, g) {
796
- if (g = t(g), u instanceof e) {
797
- if (u.loose === !!g.loose)
798
- return u;
799
- u = u.value;
800
- }
801
- u = u.trim().split(/\s+/).join(" "), c("comparator", u, g), this.options = g, this.loose = !!g.loose, this.parse(u), this.semver === r ? this.value = "" : this.value = this.operator + this.semver.version, c("comp", this);
802
- }
803
- parse(u) {
804
- const g = this.options.loose ? s[o.COMPARATORLOOSE] : s[o.COMPARATOR], w = u.match(g);
805
- if (!w)
806
- throw new TypeError(`Invalid comparator: ${u}`);
807
- this.operator = w[1] !== void 0 ? w[1] : "", this.operator === "=" && (this.operator = ""), w[2] ? this.semver = new d(w[2], this.options.loose) : this.semver = r;
808
- }
809
- toString() {
810
- return this.value;
811
- }
812
- test(u) {
813
- if (c("Comparator.test", u, this.options.loose), this.semver === r || u === r)
814
- return !0;
815
- if (typeof u == "string")
816
- try {
817
- u = new d(u, this.options);
818
- } catch {
819
- return !1;
820
- }
821
- return a(u, this.operator, this.semver, this.options);
822
- }
823
- intersects(u, g) {
824
- if (!(u instanceof e))
825
- throw new TypeError("a Comparator is required");
826
- return this.operator === "" ? this.value === "" ? !0 : new n(u.value, g).test(this.value) : u.operator === "" ? u.value === "" ? !0 : new n(this.value, g).test(u.semver) : (g = t(g), g.includePrerelease && (this.value === "<0.0.0-0" || u.value === "<0.0.0-0") || !g.includePrerelease && (this.value.startsWith("<0.0.0") || u.value.startsWith("<0.0.0")) ? !1 : !!(this.operator.startsWith(">") && u.operator.startsWith(">") || this.operator.startsWith("<") && u.operator.startsWith("<") || this.semver.version === u.semver.version && this.operator.includes("=") && u.operator.includes("=") || a(this.semver, "<", u.semver, g) && this.operator.startsWith(">") && u.operator.startsWith("<") || a(this.semver, ">", u.semver, g) && this.operator.startsWith("<") && u.operator.startsWith(">")));
827
- }
828
- }
829
- Se = e;
830
- const t = Xe, { safeRe: s, t: o } = Q, a = Jt, c = de, d = F, n = D();
831
- return Se;
832
- }
833
- const nn = D(), an = (r, e, t) => {
834
- try {
835
- e = new nn(e, t);
836
- } catch {
837
- return !1;
838
- }
839
- return e.test(r);
840
- };
841
- var Ee = an;
842
- const on = D(), cn = (r, e) => new on(r, e).set.map((t) => t.map((s) => s.value).join(" ").trim().split(" "));
843
- var ln = cn;
844
- const fn = F, un = D(), hn = (r, e, t) => {
845
- let s = null, o = null, a = null;
846
- try {
847
- a = new un(e, t);
848
- } catch {
849
- return null;
850
- }
851
- return r.forEach((c) => {
852
- a.test(c) && (!s || o.compare(c) === -1) && (s = c, o = new fn(s, t));
853
- }), s;
854
- };
855
- var pn = hn;
856
- const gn = F, dn = D(), mn = (r, e, t) => {
857
- let s = null, o = null, a = null;
858
- try {
859
- a = new dn(e, t);
860
- } catch {
861
- return null;
862
- }
863
- return r.forEach((c) => {
864
- a.test(c) && (!s || o.compare(c) === 1) && (s = c, o = new gn(s, t));
865
- }), s;
866
- };
867
- var $n = mn;
868
- const Ie = F, En = D(), mt = me, vn = (r, e) => {
869
- r = new En(r, e);
870
- let t = new Ie("0.0.0");
871
- if (r.test(t) || (t = new Ie("0.0.0-0"), r.test(t)))
872
- return t;
873
- t = null;
874
- for (let s = 0; s < r.set.length; ++s) {
875
- const o = r.set[s];
876
- let a = null;
877
- o.forEach((c) => {
878
- const d = new Ie(c.semver.version);
879
- switch (c.operator) {
880
- case ">":
881
- d.prerelease.length === 0 ? d.patch++ : d.prerelease.push(0), d.raw = d.format();
882
- case "":
883
- case ">=":
884
- (!a || mt(d, a)) && (a = d);
885
- break;
886
- case "<":
887
- case "<=":
888
- break;
889
- default:
890
- throw new Error(`Unexpected operation: ${c.operator}`);
891
- }
892
- }), a && (!t || mt(t, a)) && (t = a);
893
- }
894
- return t && r.test(t) ? t : null;
895
- };
896
- var wn = vn;
897
- const Rn = D(), yn = (r, e) => {
898
- try {
899
- return new Rn(r, e).range || "*";
900
- } catch {
901
- return null;
902
- }
903
- };
904
- var Sn = yn;
905
- const In = F, Wt = $e(), { ANY: On } = Wt, Nn = D(), Pn = Ee, $t = me, Et = We, kn = He, Ln = qe, Tn = (r, e, t, s) => {
906
- r = new In(r, s), e = new Nn(e, s);
907
- let o, a, c, d, n;
908
- switch (t) {
909
- case ">":
910
- o = $t, a = kn, c = Et, d = ">", n = ">=";
911
- break;
912
- case "<":
913
- o = Et, a = Ln, c = $t, d = "<", n = "<=";
914
- break;
915
- default:
916
- throw new TypeError('Must provide a hilo val of "<" or ">"');
917
- }
918
- if (Pn(r, e, s))
919
- return !1;
920
- for (let i = 0; i < e.set.length; ++i) {
921
- const u = e.set[i];
922
- let g = null, w = null;
923
- if (u.forEach((p) => {
924
- p.semver === On && (p = new Wt(">=0.0.0")), g = g || p, w = w || p, o(p.semver, g.semver, s) ? g = p : c(p.semver, w.semver, s) && (w = p);
925
- }), g.operator === d || g.operator === n || (!w.operator || w.operator === d) && a(r, w.semver))
926
- return !1;
927
- if (w.operator === n && c(r, w.semver))
928
- return !1;
929
- }
930
- return !0;
931
- };
932
- var Ye = Tn;
933
- const Cn = Ye, An = (r, e, t) => Cn(r, e, ">", t);
934
- var Fn = An;
935
- const bn = Ye, _n = (r, e, t) => bn(r, e, "<", t);
936
- var Dn = _n;
937
- const vt = D(), Bn = (r, e, t) => (r = new vt(r, t), e = new vt(e, t), r.intersects(e, t));
938
- var jn = Bn;
939
- const Gn = Ee, xn = _;
940
- var Un = (r, e, t) => {
941
- const s = [];
942
- let o = null, a = null;
943
- const c = r.sort((u, g) => xn(u, g, t));
944
- for (const u of c)
945
- Gn(u, e, t) ? (a = u, o || (o = u)) : (a && s.push([o, a]), a = null, o = null);
946
- o && s.push([o, null]);
947
- const d = [];
948
- for (const [u, g] of s)
949
- u === g ? d.push(u) : !g && u === c[0] ? d.push("*") : g ? u === c[0] ? d.push(`<=${g}`) : d.push(`${u} - ${g}`) : d.push(`>=${u}`);
950
- const n = d.join(" || "), i = typeof e.raw == "string" ? e.raw : String(e);
951
- return n.length < i.length ? n : e;
952
- };
953
- const wt = D(), Ke = $e(), { ANY: Oe } = Ke, Y = Ee, Ze = _, Vn = (r, e, t = {}) => {
954
- if (r === e)
955
- return !0;
956
- r = new wt(r, t), e = new wt(e, t);
957
- let s = !1;
958
- e: for (const o of r.set) {
959
- for (const a of e.set) {
960
- const c = Mn(o, a, t);
961
- if (s = s || c !== null, c)
962
- continue e;
963
- }
964
- if (s)
965
- return !1;
966
- }
967
- return !0;
968
- }, zn = [new Ke(">=0.0.0-0")], Rt = [new Ke(">=0.0.0")], Mn = (r, e, t) => {
969
- if (r === e)
970
- return !0;
971
- if (r.length === 1 && r[0].semver === Oe) {
972
- if (e.length === 1 && e[0].semver === Oe)
973
- return !0;
974
- t.includePrerelease ? r = zn : r = Rt;
975
- }
976
- if (e.length === 1 && e[0].semver === Oe) {
977
- if (t.includePrerelease)
978
- return !0;
979
- e = Rt;
980
- }
981
- const s = /* @__PURE__ */ new Set();
982
- let o, a;
983
- for (const p of r)
984
- p.operator === ">" || p.operator === ">=" ? o = yt(o, p, t) : p.operator === "<" || p.operator === "<=" ? a = St(a, p, t) : s.add(p.semver);
985
- if (s.size > 1)
986
- return null;
987
- let c;
988
- if (o && a) {
989
- if (c = Ze(o.semver, a.semver, t), c > 0)
990
- return null;
991
- if (c === 0 && (o.operator !== ">=" || a.operator !== "<="))
992
- return null;
993
- }
994
- for (const p of s) {
995
- if (o && !Y(p, String(o), t) || a && !Y(p, String(a), t))
996
- return null;
997
- for (const l of e)
998
- if (!Y(p, String(l), t))
999
- return !1;
1000
- return !0;
1001
- }
1002
- let d, n, i, u, g = a && !t.includePrerelease && a.semver.prerelease.length ? a.semver : !1, w = o && !t.includePrerelease && o.semver.prerelease.length ? o.semver : !1;
1003
- g && g.prerelease.length === 1 && a.operator === "<" && g.prerelease[0] === 0 && (g = !1);
1004
- for (const p of e) {
1005
- if (u = u || p.operator === ">" || p.operator === ">=", i = i || p.operator === "<" || p.operator === "<=", o) {
1006
- if (w && p.semver.prerelease && p.semver.prerelease.length && p.semver.major === w.major && p.semver.minor === w.minor && p.semver.patch === w.patch && (w = !1), p.operator === ">" || p.operator === ">=") {
1007
- if (d = yt(o, p, t), d === p && d !== o)
1008
- return !1;
1009
- } else if (o.operator === ">=" && !Y(o.semver, String(p), t))
1010
- return !1;
1011
- }
1012
- if (a) {
1013
- if (g && p.semver.prerelease && p.semver.prerelease.length && p.semver.major === g.major && p.semver.minor === g.minor && p.semver.patch === g.patch && (g = !1), p.operator === "<" || p.operator === "<=") {
1014
- if (n = St(a, p, t), n === p && n !== a)
1015
- return !1;
1016
- } else if (a.operator === "<=" && !Y(a.semver, String(p), t))
1017
- return !1;
1018
- }
1019
- if (!p.operator && (a || o) && c !== 0)
1020
- return !1;
1021
- }
1022
- return !(o && i && !a && c !== 0 || a && u && !o && c !== 0 || w || g);
1023
- }, yt = (r, e, t) => {
1024
- if (!r)
1025
- return e;
1026
- const s = Ze(r.semver, e.semver, t);
1027
- return s > 0 ? r : s < 0 || e.operator === ">" && r.operator === ">=" ? e : r;
1028
- }, St = (r, e, t) => {
1029
- if (!r)
1030
- return e;
1031
- const s = Ze(r.semver, e.semver, t);
1032
- return s < 0 ? r : s > 0 || e.operator === "<" && r.operator === "<=" ? e : r;
1033
- };
1034
- var Xn = Vn;
1035
- const Ne = Q, It = ge, Jn = F, Ot = zt, Wn = J, qn = Qr, Hn = rs, Yn = ns, Kn = as, Zn = ls, Qn = hs, ei = ds, ti = Es, ri = _, si = ys, ni = Os, ii = Je, ai = Ls, oi = As, ci = me, li = We, fi = Mt, ui = Xt, hi = qe, pi = He, gi = Jt, di = tn, mi = $e(), $i = D(), Ei = Ee, vi = ln, wi = pn, Ri = $n, yi = wn, Si = Sn, Ii = Ye, Oi = Fn, Ni = Dn, Pi = jn, ki = Un, Li = Xn;
1036
- var qt = {
1037
- parse: Wn,
1038
- valid: qn,
1039
- clean: Hn,
1040
- inc: Yn,
1041
- diff: Kn,
1042
- major: Zn,
1043
- minor: Qn,
1044
- patch: ei,
1045
- prerelease: ti,
1046
- compare: ri,
1047
- rcompare: si,
1048
- compareLoose: ni,
1049
- compareBuild: ii,
1050
- sort: ai,
1051
- rsort: oi,
1052
- gt: ci,
1053
- lt: li,
1054
- eq: fi,
1055
- neq: ui,
1056
- gte: hi,
1057
- lte: pi,
1058
- cmp: gi,
1059
- coerce: di,
1060
- Comparator: mi,
1061
- Range: $i,
1062
- satisfies: Ei,
1063
- toComparators: vi,
1064
- maxSatisfying: wi,
1065
- minSatisfying: Ri,
1066
- minVersion: yi,
1067
- validRange: Si,
1068
- outside: Ii,
1069
- gtr: Oi,
1070
- ltr: Ni,
1071
- intersects: Pi,
1072
- simplifyRange: ki,
1073
- subset: Li,
1074
- SemVer: Jn,
1075
- re: Ne.re,
1076
- src: Ne.src,
1077
- tokens: Ne.t,
1078
- SEMVER_SPEC_VERSION: It.SEMVER_SPEC_VERSION,
1079
- RELEASE_TYPES: It.RELEASE_TYPES,
1080
- compareIdentifiers: Ot.compareIdentifiers,
1081
- rcompareIdentifiers: Ot.rcompareIdentifiers
1082
- };
1083
- const Ti = /* @__PURE__ */ Br(qt), je = "_updates_v2/per_package_version/";
1084
- function Ci(r, e) {
1085
- return `${je}${r.organization}/${r.name}/${r.version}/${e}`;
1086
- }
1087
- const Ai = /(?<packageKeyWithoutVersion>(?<organization>[^\/]+)\/(?<name>[^\/]+))\/(?<version>[^\/]+)\/(?<seed>[^\/]+)$/, Pe = "_updates_v2/_global_update_in", Nt = "_updates_v2/_global_update_out", ve = "v2/", Fi = "overview.json", bi = "overview.json", ae = "manifest.json", Ge = "channels", ke = /^[-a-z0-9]+$/;
1088
- function Ht(r) {
1089
- return `${r.organization}/${r.name}/${r.version}`;
1090
- }
1091
- function ie(r) {
1092
- return `${ve}${Ht(r)}`;
1093
- }
1094
- const _i = "/" + ae, Di = S.object({
1095
- description: M,
1096
- channels: S.array(S.string()).default(() => []),
1097
- manifestSha256: Fe
1098
- }), Pt = S.object({
1099
- schema: S.literal("v2"),
1100
- versions: S.array(Di)
1101
- });
1102
- function Bi(r) {
1103
- return `${r.organization}/${r.name}/${bi}`;
1104
- }
1105
- function kt(r) {
1106
- return `${ve}${Bi(r)}`;
1107
- }
1108
- function ji(r) {
1109
- return `${Ht(r)}/${Ge}/`;
1110
- }
1111
- function Gi(r) {
1112
- return `${ve}${ji(r)}`;
1113
- }
1114
- const Le = `${ve}${Fi}`;
1115
- function Yt(r) {
1116
- const e = S.object({
1117
- id: $r,
1118
- /** @deprecated to be removed at some point, not used, left for compatibility with older versions */
1119
- allVersions: S.array(S.string()).optional(),
1120
- allVersionsWithChannels: S.array(Er).optional(),
1121
- /** @deprecated to be removed at some point, not used, left for compatibility with older versions */
1122
- latest: r,
1123
- /** @deprecated to be removed at some point, not used, left for compatibility with older versions */
1124
- latestManifestSha256: Fe,
1125
- latestByChannel: S.record(
1126
- S.string(),
1127
- S.object({
1128
- description: r,
1129
- manifestSha256: Fe
1130
- })
1131
- ).default({})
1132
- });
1133
- return e.transform((t) => t.allVersionsWithChannels ? t : {
1134
- ...t,
1135
- allVersionsWithChannels: t.allVersions.map((s) => ({ version: s, channels: [] }))
1136
- }).transform(
1137
- (t) => t.latestByChannel[ce] ? t : {
1138
- ...t,
1139
- latestByChannel: {
1140
- ...t.latestByChannel,
1141
- [ce]: { description: t.latest, manifestSha256: t.latestManifestSha256 }
1142
- }
1143
- }
1144
- ).pipe(e.required({ allVersionsWithChannels: !0 }));
1145
- }
1146
- const va = Yt(M);
1147
- function Qe(r) {
1148
- return S.object({
1149
- schema: S.literal("v2"),
1150
- packages: S.array(Yt(r))
1151
- });
1152
- }
1153
- const Lt = Qe(M);
1154
- function wa(r) {
1155
- return X(
1156
- ue,
1157
- x(
1158
- K.transform(ze(r)),
1159
- Z.transform(pe(r))
1160
- )
1161
- );
1162
- }
1163
- function Ra(r) {
1164
- return Qe(
1165
- X(
1166
- ue,
1167
- x(
1168
- K.transform(ze(r)),
1169
- Z.transform(pe(r))
1170
- )
1171
- )
1172
- );
1173
- }
1174
- function ya(r) {
1175
- return Qe(
1176
- X(
1177
- ue,
1178
- x(
1179
- K.transform(ze(r)),
1180
- Z.transform(pe(r))
1181
- )
1182
- )
1183
- );
1184
- }
1185
- class Sa {
1186
- constructor(e, t = new wr()) {
1187
- this.storage = e, this.logger = t;
1188
- }
1189
- async updateRegistry(e = !1) {
1190
- this.logger.info("Initiating registry refresh...");
1191
- const t = /* @__PURE__ */ new Map(), s = [], o = await this.storage.listFiles(je);
1192
- this.logger.info("Packages to be updated:");
1193
- for (const n of o) {
1194
- const i = n.match(Ai);
1195
- if (!i) continue;
1196
- s.push(n);
1197
- const { packageKeyWithoutVersion: u, organization: g, name: w, version: p, seed: l } = i.groups;
1198
- let O = t.get(u), P = !1;
1199
- O ? O.versions.has(p) || (O.versions.add(p), P = !0) : (t.set(u, {
1200
- package: { organization: g, name: w },
1201
- versions: /* @__PURE__ */ new Set([p])
1202
- }), P = !0), this.logger.info(` - ${g}:${w}:${p} added:${P}`);
1203
- }
1204
- const a = await this.storage.getFile(Le);
1205
- let d = (a === void 0 ? { schema: "v2", packages: [] } : Lt.parse(JSON.parse(a.toString()))).packages;
1206
- this.logger.info(`Global overview loaded, ${d.length} records`);
1207
- for (const [, n] of t.entries()) {
1208
- const i = kt(n.package), u = await this.storage.getFile(i), g = u === void 0 ? { schema: "v2", versions: [] } : Pt.parse(JSON.parse(u.toString()));
1209
- this.logger.info(
1210
- `Updating ${n.package.organization}:${n.package.name} overview, ${g.versions.length} records`
1211
- );
1212
- const w = g.versions.filter(
1213
- (l) => !n.versions.has(l.description.id.version)
1214
- );
1215
- for (const [l] of n.versions.entries()) {
1216
- const O = l.toString(), P = {
1217
- ...n.package,
1218
- version: O
1219
- }, k = await this.storage.getFile(
1220
- ie(P) + _i
1221
- );
1222
- if (!k) continue;
1223
- const C = await _e(k), I = (await this.storage.listFiles(Gi(P))).filter((U) => U.match(ke) ? !0 : (this.logger.warn(`Unexpected channel in ${Re(P)}: ${U}`), !1));
1224
- w.push({
1225
- description: nt(O).parse(
1226
- Ft.parse(JSON.parse(k.toString("utf8"))).description
1227
- ),
1228
- manifestSha256: C,
1229
- channels: I
1230
- });
1231
- }
1232
- w.sort(
1233
- (l, O) => qt.compare(O.description.id.version, l.description.id.version)
1234
- ), e || await this.storage.putFile(
1235
- i,
1236
- Buffer.from(
1237
- JSON.stringify({ schema: "v2", versions: w })
1238
- )
1239
- ), this.logger.info(`Done (${w.length} records)`);
1240
- const p = /* @__PURE__ */ new Set();
1241
- for (const l of w) for (const O of l.channels) p.add(O);
1242
- d = d.filter(
1243
- (l) => l.id.organization !== n.package.organization || l.id.name !== n.package.name
1244
- ), d.push({
1245
- id: {
1246
- organization: n.package.organization,
1247
- name: n.package.name
1248
- },
1249
- // left for backward compatibility
1250
- allVersions: w.map((l) => l.description.id.version).reverse(),
1251
- allVersionsWithChannels: w.map((l) => ({ version: l.description.id.version, channels: l.channels })).reverse(),
1252
- // left for backward compatibility
1253
- latest: nt(
1254
- `${n.package.organization}/${n.package.name}`
1255
- ).parse(w[0].description),
1256
- // left for backward compatibility
1257
- latestManifestSha256: w[0].manifestSha256,
1258
- latestByChannel: Object.fromEntries(
1259
- [...p, ce].map((l) => {
1260
- const O = w.find((P) => l === ce || P.channels.indexOf(l) !== -1);
1261
- if (!O) throw new Error("Assertion error");
1262
- return [l, { description: O.description, manifestSha256: O == null ? void 0 : O.manifestSha256 }];
1263
- })
1264
- )
1265
- });
1266
- }
1267
- e || await this.storage.putFile(
1268
- Le,
1269
- Buffer.from(
1270
- JSON.stringify({ schema: "v2", packages: d })
1271
- )
1272
- ), this.logger.info(`Global overview updated (${d.length} records)`), e || await this.storage.deleteFiles(...s.map((n) => `${je}${n}`)), this.logger.info("Version update requests cleared");
1273
- }
1274
- async updateIfNeeded(e = "normal") {
1275
- this.logger.info("Checking if registry requires refresh...");
1276
- const t = await this.storage.getFile(Pe), s = await this.storage.getFile(Nt);
1277
- if (e !== "force" && t === void 0 && s === void 0) {
1278
- this.logger.info("No global seed files found, update not needed.");
1279
- return;
1280
- }
1281
- if (e !== "force" && t !== void 0 && s !== void 0 && t.equals(s)) {
1282
- this.logger.info("Registry is up to date.");
1283
- return;
1284
- }
1285
- await this.updateRegistry(e === "dry-run"), t && (e !== "dry-run" && await this.storage.putFile(Nt, t), this.logger.info("Refresh finished."));
1286
- }
1287
- async getPackageOverview(e) {
1288
- const t = await this.storage.getFile(kt(e));
1289
- if (t !== void 0)
1290
- return Pt.parse(JSON.parse(t.toString()));
1291
- }
1292
- async getGlobalOverview() {
1293
- const e = await this.storage.getFile(Le);
1294
- if (e !== void 0)
1295
- return Lt.parse(JSON.parse(e.toString()));
1296
- }
1297
- async marchChanged(e) {
1298
- const t = Bt(), s = Ci(e, t);
1299
- this.logger.info(`Creating update seed at ${s} ...`), await this.storage.putFile(s, Buffer.from(t)), this.logger.info(`Touching global update seed ${Pe} ...`), await this.storage.putFile(Pe, Buffer.from(t));
1300
- }
1301
- async addPackageToChannel(e, t) {
1302
- if (!t.match(ke))
1303
- throw new Error(`Illegal characters in channel name: ${t}`);
1304
- const s = ie(e);
1305
- if (await this.storage.getFile(`${s}/${ae}`) === void 0)
1306
- throw new Error(`Package ${Re(e)} not found in the registry.`);
1307
- await this.storage.putFile(`${s}/${Ge}/${t}`, Buffer.from(t)), await this.marchChanged(e);
1308
- }
1309
- async removePackageFromChannel(e, t) {
1310
- if (!t.match(ke))
1311
- throw new Error(`Illegal characters in channel name: ${t}`);
1312
- const s = ie(e);
1313
- if (await this.storage.getFile(`${s}/${ae}`) === void 0)
1314
- throw new Error(`Package ${Re(e)} not found in the registry.`);
1315
- await this.storage.deleteFiles(`${s}/${Ge}/${t}`), await this.marchChanged(e);
1316
- }
1317
- async publishPackage(e, t) {
1318
- const s = ie(e.description.id);
1319
- for (const a of e.files) {
1320
- const c = await t(a.name);
1321
- if (c.length !== a.size)
1322
- throw new Error(
1323
- `Actual file size don't match file size from the manifest file for ${a.name} (actual = ${c.length}; manifest = ${a.size})`
1324
- );
1325
- const d = await _e(c);
1326
- if (d !== a.sha256.toUpperCase())
1327
- throw new Error(
1328
- `Actual file SHA-256 don't match the checksum from the manifest file for ${a.name} (actual = ${d}; manifest = ${a.sha256.toUpperCase()})`
1329
- );
1330
- const n = s + "/" + a.name;
1331
- this.logger.info(`Uploading ${a.name} -> ${n} ...`), await this.storage.putFile(n, c);
1332
- }
1333
- const o = s + "/" + ae;
1334
- this.logger.info(`Uploading manifest to ${o} ...`), await this.storage.putFile(o, Buffer.from(JSON.stringify(e))), await this.marchChanged(e.description.id);
1335
- }
1336
- }
1337
- class xi {
1338
- constructor(e, t, s) {
1339
- this.client = e, this.bucket = t, this.root = s;
1340
- }
1341
- async getFile(e) {
1342
- try {
1343
- return Buffer.from(
1344
- await (await this.client.getObject({
1345
- Bucket: this.bucket,
1346
- Key: j.join(this.root, e)
1347
- })).Body.transformToByteArray()
1348
- );
1349
- } catch (t) {
1350
- if (t.name === "NoSuchKey") return;
1351
- throw t;
1352
- }
1353
- }
1354
- async listFiles(e) {
1355
- const t = j.join(this.root, e), s = yr(
1356
- { client: this.client },
1357
- {
1358
- Bucket: this.bucket,
1359
- Prefix: t
1360
- }
1361
- ), o = [];
1362
- for await (const a of s)
1363
- o.push(...(a.Contents ?? []).map((c) => j.relative(t, c.Key)));
1364
- return o;
1365
- }
1366
- async putFile(e, t) {
1367
- await this.client.putObject({
1368
- Bucket: this.bucket,
1369
- Key: j.join(this.root, e),
1370
- Body: t
1371
- });
1372
- }
1373
- async deleteFiles(...e) {
1374
- const t = await this.client.deleteObjects({
1375
- Bucket: this.bucket,
1376
- Delete: {
1377
- Objects: e.map((s) => ({
1378
- Key: j.join(this.root, s)
1379
- }))
1380
- }
1381
- });
1382
- if (t.Errors !== void 0 && t.Errors.length > 0)
1383
- throw new Error(`Errors encountered while deleting files: ${t.Errors.join(`
1384
- `)}`);
1385
- }
1386
- }
1387
- class Ui {
1388
- constructor(e) {
1389
- /** Absolute path */
1390
- ee(this, "root");
1391
- this.root = A.resolve(e);
1392
- }
1393
- toAbsolutePath(e) {
1394
- if (j.isAbsolute(e)) throw new Error("absolute path");
1395
- return A.resolve(this.root, e.split(j.sep).join(A.sep));
1396
- }
1397
- async getFile(e) {
1398
- try {
1399
- return await H.promises.readFile(this.toAbsolutePath(e));
1400
- } catch (t) {
1401
- if (t.code == "ENOENT") return;
1402
- throw new Error("", { cause: t });
1403
- }
1404
- }
1405
- async listFiles(e) {
1406
- try {
1407
- const t = this.toAbsolutePath(e);
1408
- return (await H.promises.readdir(t, { recursive: !0, withFileTypes: !0 })).filter((s) => s.isFile()).map(
1409
- (s) => A.relative(t, A.resolve(s.path, s.name)).split(A.sep).join(j.sep)
1410
- );
1411
- } catch (t) {
1412
- if (t.code == "ENOENT") return [];
1413
- throw new Error("", { cause: t });
1414
- }
1415
- }
1416
- async putFile(e, t) {
1417
- const s = this.toAbsolutePath(e);
1418
- await H.promises.mkdir(A.dirname(s), { recursive: !0 }), await H.promises.writeFile(s, t);
1419
- }
1420
- async deleteFiles(...e) {
1421
- for (const t of e) await H.promises.rm(this.toAbsolutePath(t));
1422
- }
1423
- }
1424
- function Vi(r) {
1425
- const e = new URL(r, `file:${A.resolve(".").split(A.sep).join(j.sep)}/`);
1426
- switch (e.protocol) {
1427
- case "file:":
1428
- const t = A.resolve(e.pathname);
1429
- return new Ui(t);
1430
- case "s3:":
1431
- const s = {}, o = e.searchParams.get("region");
1432
- o && (s.region = o);
1433
- const a = e.hostname;
1434
- return new xi(new Sr(s), a, e.pathname.replace(/^\//, ""));
1435
- default:
1436
- throw new Error(`Unknown protocol: ${e.protocol}`);
1437
- }
1438
- }
1439
- const zi = S.string().regex(/^(?:s3:|file:)/), Mi = S.object({
1440
- organization: S.string(),
1441
- package: S.string(),
1442
- version: Ve.optional(),
1443
- files: S.record(S.string().regex(/^[^\/]+$/), S.string()).default({}),
1444
- meta: S.object({}).passthrough()
1445
- }), Xi = S.object({
1446
- registries: S.record(S.string(), zi).default({}),
1447
- registry: S.string().optional()
1448
- }), Kt = Xi.merge(Mi).required(
1449
- { registry: !0, version: !0 }
1450
- ), et = Kt.partial().required({
1451
- registries: !0,
1452
- files: !0
1453
- }), Ji = "pl.package.json", Wi = "pl.package.yaml", we = "v1/";
1454
- function Ia(r) {
1455
- return `${we}${r.organization}/${r.package}/${r.version}`;
1456
- }
1457
- function Zt(r, e) {
1458
- return `${we}${r.organization}/${r.package}/${r.version}/${e}`;
1459
- }
1460
- function Tt(r) {
1461
- return `${we}${r.organization}/${r.package}/overview.json`;
1462
- }
1463
- const Te = `${we}overview.json`, Qt = "meta.json", xe = "_updates_v1/per_package_version/";
1464
- function qi(r, e) {
1465
- return `${xe}${r.organization}/${r.package}/${r.version}/${e}`;
1466
- }
1467
- const Hi = /(?<packageKeyWithoutVersion>(?<organization>[^\/]+)\/(?<pkg>[^\/]+))\/(?<version>[^\/]+)\/(?<seed>[^\/]+)$/, er = "_updates_v1/_global_update_in", Ct = "_updates_v1/_global_update_out";
1468
- class Yi {
1469
- constructor(e, t) {
1470
- this.storage = e, this.logger = t;
1471
- }
1472
- constructNewPackage(e) {
1473
- return new Ki(this.storage, e);
1474
- }
1475
- async updateRegistry() {
1476
- var c, d, n, i, u, g, w, p;
1477
- (c = this.logger) == null || c.info("Initiating registry refresh...");
1478
- const e = /* @__PURE__ */ new Map(), t = [], s = await this.storage.listFiles(xe);
1479
- (d = this.logger) == null || d.info("Packages to be updated:");
1480
- for (const l of s) {
1481
- const O = l.match(Hi);
1482
- if (!O) continue;
1483
- t.push(l);
1484
- const { packageKeyWithoutVersion: P, organization: k, pkg: C, version: I, seed: U } = O.groups;
1485
- let W = e.get(P);
1486
- W ? W.versions.has(I) || W.versions.add(I) : e.set(P, {
1487
- package: { organization: k, package: C },
1488
- versions: /* @__PURE__ */ new Set([I])
1489
- }), (n = this.logger) == null || n.info(` - ${k}:${C}:${I}`);
1490
- }
1491
- const o = await this.storage.getFile(Te);
1492
- let a = o === void 0 ? [] : JSON.parse(o.toString());
1493
- (i = this.logger) == null || i.info(`Global overview loaded, ${a.length} records`);
1494
- for (const [, l] of e.entries()) {
1495
- const O = Tt(l.package), P = await this.storage.getFile(O);
1496
- let k = P === void 0 ? [] : JSON.parse(P.toString());
1497
- (u = this.logger) == null || u.info(
1498
- `Updating ${l.package.organization}:${l.package.package} overview, ${k.length} records`
1499
- ), k = k.filter((C) => !l.versions.has(C.version));
1500
- for (const [C] of l.versions.entries()) {
1501
- const I = C.toString(), U = await this.storage.getFile(
1502
- Zt(
1503
- {
1504
- ...l.package,
1505
- version: I
1506
- },
1507
- Qt
1508
- )
1509
- );
1510
- U && k.push({ version: I, meta: JSON.parse(U.toString()) });
1511
- }
1512
- k.sort((C, I) => Ti.compare(I.version, C.version)), await this.storage.putFile(O, Buffer.from(JSON.stringify(k))), (g = this.logger) == null || g.info(`Done (${k.length} records)`), a = a.filter(
1513
- (C) => C.organization !== l.package.organization || C.package !== l.package.package
1514
- ), a.push({
1515
- organization: l.package.organization,
1516
- package: l.package.package,
1517
- allVersions: k.map((C) => C.version).reverse(),
1518
- latestVersion: k[0].version,
1519
- latestMeta: k[0].meta
1520
- });
1521
- }
1522
- await this.storage.putFile(Te, Buffer.from(JSON.stringify(a))), (w = this.logger) == null || w.info(`Global overview updated (${a.length} records)`), await this.storage.deleteFiles(...t.map((l) => `${xe}${l}`)), (p = this.logger) == null || p.info("Version update requests cleared");
1523
- }
1524
- async updateIfNeeded(e = !1) {
1525
- var o, a;
1526
- (o = this.logger) == null || o.info("Checking if registry requires refresh...");
1527
- const t = await this.storage.getFile(er), s = await this.storage.getFile(Ct);
1528
- !e && t === void 0 && s === void 0 || !e && t !== void 0 && s !== void 0 && t.equals(s) || (await this.updateRegistry(), t && (await this.storage.putFile(Ct, t), (a = this.logger) == null || a.info("Refresh finished")));
1529
- }
1530
- async getPackageOverview(e) {
1531
- const t = await this.storage.getFile(Tt(e));
1532
- if (t !== void 0)
1533
- return JSON.parse(t.toString());
1534
- }
1535
- async getGlobalOverview() {
1536
- const e = await this.storage.getFile(Te);
1537
- if (e !== void 0)
1538
- return JSON.parse(e.toString());
1539
- }
1540
- }
1541
- class Ki {
1542
- constructor(e, t) {
1543
- ee(this, "metaAdded", !1);
1544
- ee(this, "seed", Bt());
1545
- this.storage = e, this.name = t;
1546
- }
1547
- async addFile(e, t) {
1548
- await this.storage.putFile(Zt(this.name, e), t);
1549
- }
1550
- async writeMeta(e) {
1551
- await this.addFile(Qt, Buffer.from(JSON.stringify(e))), this.metaAdded = !0;
1552
- }
1553
- async finish() {
1554
- if (!this.metaAdded) throw new Error("meta not added");
1555
- await this.storage.putFile(qi(this.name, this.seed), Buffer.of(0)), await this.storage.putFile(er, Buffer.from(this.seed));
1556
- }
1557
- }
1558
- function V(r, e) {
1559
- return e === void 0 ? r : {
1560
- ...r,
1561
- ...e,
1562
- registries: { ...r.registries, ...e.registries },
1563
- files: { ...r.files, ...e.files }
1564
- };
1565
- }
1566
- async function Ce(r) {
1567
- return Me(r, (e) => et.parse(JSON.parse(e.toString())));
1568
- }
1569
- async function Ae(r) {
1570
- return Me(r, (e) => et.parse(Rr.parse(e.toString())));
1571
- }
1572
- async function Zi() {
1573
- let r = et.parse({});
1574
- return r = V(r, await Ce("./.pl.reg.json")), r = V(r, await Ae("./.pl.reg.yaml")), r = V(r, await Ce(`${rt.homedir()}/.pl.reg.json`)), r = V(r, await Ae(`${rt.homedir()}/.pl.reg.yaml`)), r = V(r, await Ce(Ji)), r = V(r, await Ae(Wi)), r;
1575
- }
1576
- class Qi {
1577
- constructor(e) {
1578
- this.conf = e;
1579
- }
1580
- createRegistry(e) {
1581
- let t = this.conf.registry;
1582
- if (!t.startsWith("file:") && !t.startsWith("s3:")) {
1583
- const s = this.conf.registries[t];
1584
- if (!s) throw new Error(`Registry with alias "${t}" not found`);
1585
- t = s;
1586
- }
1587
- return new Yi(Vi(t), e);
1588
- }
1589
- get fullPackageName() {
1590
- return {
1591
- organization: this.conf.organization,
1592
- package: this.conf.package,
1593
- version: this.conf.version
1594
- };
1595
- }
1596
- }
1597
- async function Oa(r) {
1598
- const e = await Zi();
1599
- return new Qi(
1600
- Kt.parse(V(e, r))
1601
- );
1602
- }
1603
- export {
1604
- bi as $,
1605
- st as A,
1606
- ha as B,
1607
- jt as C,
1608
- Nr as D,
1609
- Pr as E,
1610
- Ui as F,
1611
- Lt as G,
1612
- be as H,
1613
- kr as I,
1614
- ze as J,
1615
- Lr as K,
1616
- ua as L,
1617
- ae as M,
1618
- pe as N,
1619
- Cr as O,
1620
- et as P,
1621
- pa as Q,
1622
- Ir as R,
1623
- xi as S,
1624
- Ar as T,
1625
- Fr as U,
1626
- Gt as V,
1627
- br as W,
1628
- nt as X,
1629
- De as Y,
1630
- xt as Z,
1631
- $a as _,
1632
- Tr as a,
1633
- Ge as a0,
1634
- ke as a1,
1635
- ie as a2,
1636
- Di as a3,
1637
- Pt as a4,
1638
- Bi as a5,
1639
- kt as a6,
1640
- ji as a7,
1641
- Gi as a8,
1642
- Le as a9,
1643
- Yt as aa,
1644
- va as ab,
1645
- Qe as ac,
1646
- wa as ad,
1647
- Ra as ae,
1648
- ya as af,
1649
- Sa as b,
1650
- Ea as c,
1651
- ma as d,
1652
- ve as e,
1653
- ga as f,
1654
- Oa as g,
1655
- Fi as h,
1656
- _i as i,
1657
- _e as j,
1658
- da as k,
1659
- Dr as l,
1660
- Te as m,
1661
- Qt as n,
1662
- Mi as o,
1663
- Ht as p,
1664
- Ji as q,
1665
- Wi as r,
1666
- Vi as s,
1667
- Xi as t,
1668
- Kt as u,
1669
- Qi as v,
1670
- Ia as w,
1671
- Tt as x,
1672
- Zt as y,
1673
- Or as z
1674
- };
1675
- //# sourceMappingURL=config-dqDSqXfz.mjs.map