@platforma-sdk/block-tools 2.5.51 → 2.5.52

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