@platforma-sdk/block-tools 2.3.30 → 2.4.1

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