@pipelab/plugin-construct 1.0.0-beta.15 → 1.0.0-beta.16
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs +41 -8
- package/dist/index.mjs +40 -8
- package/dist/index.mjs.map +1 -1
- package/package.json +4 -4
package/dist/index.cjs
CHANGED
|
@@ -26,6 +26,8 @@ let node_v8 = require("node:v8");
|
|
|
26
26
|
let node_stream_promises = require("node:stream/promises");
|
|
27
27
|
let node_stream = require("node:stream");
|
|
28
28
|
let node_buffer = require("node:buffer");
|
|
29
|
+
let node_dns_promises = require("node:dns/promises");
|
|
30
|
+
node_dns_promises = require_chunk.__toESM(node_dns_promises);
|
|
29
31
|
let node_module = require("node:module");
|
|
30
32
|
//#region ../../packages/migration/src/models/createMigration.ts
|
|
31
33
|
function createMigration$1(migration) {
|
|
@@ -123876,7 +123878,7 @@ var require_auth = /* @__PURE__ */ require_chunk.__commonJSMin(((exports, module
|
|
|
123876
123878
|
//#endregion
|
|
123877
123879
|
//#region ../../node_modules/make-fetch-happen/lib/options.js
|
|
123878
123880
|
var require_options$1 = /* @__PURE__ */ require_chunk.__commonJSMin(((exports, module) => {
|
|
123879
|
-
const dns$
|
|
123881
|
+
const dns$3 = require("dns");
|
|
123880
123882
|
const conditionalHeaders = [
|
|
123881
123883
|
"if-modified-since",
|
|
123882
123884
|
"if-none-match",
|
|
@@ -123901,7 +123903,7 @@ var require_options$1 = /* @__PURE__ */ require_chunk.__commonJSMin(((exports, m
|
|
|
123901
123903
|
};
|
|
123902
123904
|
options.dns = {
|
|
123903
123905
|
ttl: 300 * 1e3,
|
|
123904
|
-
lookup: dns$
|
|
123906
|
+
lookup: dns$3.lookup,
|
|
123905
123907
|
...options.dns
|
|
123906
123908
|
};
|
|
123907
123909
|
options.cache = options.cache || "default";
|
|
@@ -125318,9 +125320,9 @@ var require_key$3 = /* @__PURE__ */ require_chunk.__commonJSMin(((exports, modul
|
|
|
125318
125320
|
//#region ../../node_modules/@npmcli/agent/lib/dns.js
|
|
125319
125321
|
var require_dns = /* @__PURE__ */ require_chunk.__commonJSMin(((exports, module) => {
|
|
125320
125322
|
const { LRUCache } = require_index_min$5();
|
|
125321
|
-
const dns$
|
|
125323
|
+
const dns$2 = require("dns");
|
|
125322
125324
|
const cache = new LRUCache({ max: 50 });
|
|
125323
|
-
const getOptions = ({ family = 0, hints = dns$
|
|
125325
|
+
const getOptions = ({ family = 0, hints = dns$2.ADDRCONFIG, all = false, verbatim = void 0, ttl = 300 * 1e3, lookup = dns$2.lookup }) => ({
|
|
125324
125326
|
hints,
|
|
125325
125327
|
lookup: (hostname, ...args) => {
|
|
125326
125328
|
const callback = args.pop();
|
|
@@ -130359,7 +130361,7 @@ var require_dist$9 = /* @__PURE__ */ require_chunk.__commonJSMin(((exports) => {
|
|
|
130359
130361
|
const socks_1 = require_build$1();
|
|
130360
130362
|
const agent_base_1 = require_dist$12();
|
|
130361
130363
|
const debug_1 = __importDefault(require_src$1());
|
|
130362
|
-
const dns = __importStar(require("dns"));
|
|
130364
|
+
const dns$1 = __importStar(require("dns"));
|
|
130363
130365
|
const net$1 = __importStar(require("net"));
|
|
130364
130366
|
const tls$1 = __importStar(require("tls"));
|
|
130365
130367
|
const url_1$1 = require("url");
|
|
@@ -130431,7 +130433,7 @@ var require_dist$9 = /* @__PURE__ */ require_chunk.__commonJSMin(((exports) => {
|
|
|
130431
130433
|
const { shouldLookup, proxy, timeout } = this;
|
|
130432
130434
|
if (!opts.host) throw new Error("No `host` defined!");
|
|
130433
130435
|
let { host } = opts;
|
|
130434
|
-
const { port, lookup: lookupFn = dns.lookup } = opts;
|
|
130436
|
+
const { port, lookup: lookupFn = dns$1.lookup } = opts;
|
|
130435
130437
|
if (shouldLookup) host = await new Promise((resolve, reject) => {
|
|
130436
130438
|
lookupFn(host, {}, (err, res) => {
|
|
130437
130439
|
if (err) reject(err);
|
|
@@ -151200,6 +151202,20 @@ async function withLock(key, fn) {
|
|
|
151200
151202
|
activeOperations.set(key, promise);
|
|
151201
151203
|
return promise;
|
|
151202
151204
|
}
|
|
151205
|
+
let isOnlineCached = null;
|
|
151206
|
+
let lastCheckTime = 0;
|
|
151207
|
+
async function isOnline() {
|
|
151208
|
+
const now = Date.now();
|
|
151209
|
+
if (isOnlineCached !== null && now - lastCheckTime < 1e4) return isOnlineCached;
|
|
151210
|
+
try {
|
|
151211
|
+
await Promise.race([node_dns_promises.default.lookup("registry.npmjs.org"), new Promise((_, reject) => setTimeout(() => reject(/* @__PURE__ */ new Error("timeout")), 1500))]);
|
|
151212
|
+
isOnlineCached = true;
|
|
151213
|
+
} catch {
|
|
151214
|
+
isOnlineCached = false;
|
|
151215
|
+
}
|
|
151216
|
+
lastCheckTime = now;
|
|
151217
|
+
return isOnlineCached;
|
|
151218
|
+
}
|
|
151203
151219
|
/**
|
|
151204
151220
|
* Robust utility to fetch, cache, and resolve an NPM package.
|
|
151205
151221
|
* Centralized in core-node to avoid circular dependencies.
|
|
@@ -151226,7 +151242,15 @@ async function fetchPackage(packageName, versionOrRange, options) {
|
|
|
151226
151242
|
if (resolvedVersionOrRange === "local") resolvedVersionOrRange = "latest";
|
|
151227
151243
|
console.log(`[Fetcher] Resolving ${packageName}@${resolvedVersionOrRange || "latest"}...`);
|
|
151228
151244
|
const resolveStart = Date.now();
|
|
151229
|
-
|
|
151245
|
+
if (!await isOnline()) {
|
|
151246
|
+
console.warn(`[Fetcher] ${packageName}: offline mode detected (${Date.now() - resolveStart}ms), trying local fallback...`);
|
|
151247
|
+
const fallbackStart = Date.now();
|
|
151248
|
+
const fallbackVersion = await tryLocalFallback(resolvedVersionOrRange, /* @__PURE__ */ new Error("Offline"), baseDir, packageName);
|
|
151249
|
+
if (fallbackVersion) {
|
|
151250
|
+
resolvedVersion = fallbackVersion;
|
|
151251
|
+
console.log(`[Fetcher] ${packageName}: Resolved to local fallback ${resolvedVersion} (${Date.now() - fallbackStart}ms)`);
|
|
151252
|
+
} else throw new Error(`Offline and no local fallback version available for ${packageName}`);
|
|
151253
|
+
} else try {
|
|
151230
151254
|
const cachePath = (0, node_path.join)(ctx.userDataPath, "cache", "pacote");
|
|
151231
151255
|
let packumentPromise = packumentRequests.get(packageName);
|
|
151232
151256
|
if (!packumentPromise) {
|
|
@@ -151236,7 +151260,16 @@ async function fetchPackage(packageName, versionOrRange, options) {
|
|
|
151236
151260
|
const packument = await packumentPromise;
|
|
151237
151261
|
const versions = Object.keys(packument.versions);
|
|
151238
151262
|
const range = resolvedVersionOrRange || "latest";
|
|
151239
|
-
|
|
151263
|
+
let foundVersion = packument["dist-tags"]?.[range] || import_semver.default.maxSatisfying(versions, range);
|
|
151264
|
+
if (range === "latest" && ctx.releaseTag && ctx.releaseTag !== "latest") {
|
|
151265
|
+
const releaseTagVersion = packument["dist-tags"]?.[ctx.releaseTag];
|
|
151266
|
+
if (releaseTagVersion && import_semver.default.valid(releaseTagVersion)) {
|
|
151267
|
+
if (!foundVersion || import_semver.default.valid(foundVersion) && import_semver.default.gte(releaseTagVersion, foundVersion)) {
|
|
151268
|
+
console.log(`[Fetcher] Using release tag "${ctx.releaseTag}" (${releaseTagVersion}) instead of "latest" (${foundVersion || "none"}) for ${packageName}`);
|
|
151269
|
+
foundVersion = releaseTagVersion;
|
|
151270
|
+
} else if (foundVersion) console.warn(`[Fetcher] Tag "${ctx.releaseTag}" (${releaseTagVersion}) is older than "latest" (${foundVersion}) for ${packageName}, keeping "latest"`);
|
|
151271
|
+
}
|
|
151272
|
+
}
|
|
151240
151273
|
if (!foundVersion) throw new Error(`Package ${packageName}@${range} not found on npm (available tags: ${Object.keys(packument["dist-tags"] || {}).join(", ")})`);
|
|
151241
151274
|
resolvedVersion = foundVersion;
|
|
151242
151275
|
console.log(`[Fetcher] ${packageName}: Resolved to v${resolvedVersion} via npm (${Date.now() - resolveStart}ms)`);
|
package/dist/index.mjs
CHANGED
|
@@ -21,6 +21,7 @@ import { serialize } from "node:v8";
|
|
|
21
21
|
import { finished, pipeline } from "node:stream/promises";
|
|
22
22
|
import { Duplex, PassThrough, Readable, Transform, Writable, getDefaultHighWaterMark } from "node:stream";
|
|
23
23
|
import { Buffer as Buffer$1 } from "node:buffer";
|
|
24
|
+
import dns from "node:dns/promises";
|
|
24
25
|
//#region ../../packages/migration/src/models/createMigration.ts
|
|
25
26
|
function createMigration$1(migration) {
|
|
26
27
|
return {
|
|
@@ -123874,7 +123875,7 @@ var require_auth = /* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
|
123874
123875
|
//#endregion
|
|
123875
123876
|
//#region ../../node_modules/make-fetch-happen/lib/options.js
|
|
123876
123877
|
var require_options$1 = /* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
123877
|
-
const dns$
|
|
123878
|
+
const dns$3 = __require("dns");
|
|
123878
123879
|
const conditionalHeaders = [
|
|
123879
123880
|
"if-modified-since",
|
|
123880
123881
|
"if-none-match",
|
|
@@ -123899,7 +123900,7 @@ var require_options$1 = /* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
|
123899
123900
|
};
|
|
123900
123901
|
options.dns = {
|
|
123901
123902
|
ttl: 300 * 1e3,
|
|
123902
|
-
lookup: dns$
|
|
123903
|
+
lookup: dns$3.lookup,
|
|
123903
123904
|
...options.dns
|
|
123904
123905
|
};
|
|
123905
123906
|
options.cache = options.cache || "default";
|
|
@@ -125316,9 +125317,9 @@ var require_key$3 = /* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
|
125316
125317
|
//#region ../../node_modules/@npmcli/agent/lib/dns.js
|
|
125317
125318
|
var require_dns = /* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
125318
125319
|
const { LRUCache } = require_index_min$5();
|
|
125319
|
-
const dns$
|
|
125320
|
+
const dns$2 = __require("dns");
|
|
125320
125321
|
const cache = new LRUCache({ max: 50 });
|
|
125321
|
-
const getOptions = ({ family = 0, hints = dns$
|
|
125322
|
+
const getOptions = ({ family = 0, hints = dns$2.ADDRCONFIG, all = false, verbatim = void 0, ttl = 300 * 1e3, lookup = dns$2.lookup }) => ({
|
|
125322
125323
|
hints,
|
|
125323
125324
|
lookup: (hostname, ...args) => {
|
|
125324
125325
|
const callback = args.pop();
|
|
@@ -130357,7 +130358,7 @@ var require_dist$9 = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
|
130357
130358
|
const socks_1 = require_build$1();
|
|
130358
130359
|
const agent_base_1 = require_dist$12();
|
|
130359
130360
|
const debug_1 = __importDefault(require_src$1());
|
|
130360
|
-
const dns = __importStar(__require("dns"));
|
|
130361
|
+
const dns$1 = __importStar(__require("dns"));
|
|
130361
130362
|
const net$1 = __importStar(__require("net"));
|
|
130362
130363
|
const tls$1 = __importStar(__require("tls"));
|
|
130363
130364
|
const url_1$1 = __require("url");
|
|
@@ -130429,7 +130430,7 @@ var require_dist$9 = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
|
130429
130430
|
const { shouldLookup, proxy, timeout } = this;
|
|
130430
130431
|
if (!opts.host) throw new Error("No `host` defined!");
|
|
130431
130432
|
let { host } = opts;
|
|
130432
|
-
const { port, lookup: lookupFn = dns.lookup } = opts;
|
|
130433
|
+
const { port, lookup: lookupFn = dns$1.lookup } = opts;
|
|
130433
130434
|
if (shouldLookup) host = await new Promise((resolve, reject) => {
|
|
130434
130435
|
lookupFn(host, {}, (err, res) => {
|
|
130435
130436
|
if (err) reject(err);
|
|
@@ -151198,6 +151199,20 @@ async function withLock(key, fn) {
|
|
|
151198
151199
|
activeOperations.set(key, promise);
|
|
151199
151200
|
return promise;
|
|
151200
151201
|
}
|
|
151202
|
+
let isOnlineCached = null;
|
|
151203
|
+
let lastCheckTime = 0;
|
|
151204
|
+
async function isOnline() {
|
|
151205
|
+
const now = Date.now();
|
|
151206
|
+
if (isOnlineCached !== null && now - lastCheckTime < 1e4) return isOnlineCached;
|
|
151207
|
+
try {
|
|
151208
|
+
await Promise.race([dns.lookup("registry.npmjs.org"), new Promise((_, reject) => setTimeout(() => reject(/* @__PURE__ */ new Error("timeout")), 1500))]);
|
|
151209
|
+
isOnlineCached = true;
|
|
151210
|
+
} catch {
|
|
151211
|
+
isOnlineCached = false;
|
|
151212
|
+
}
|
|
151213
|
+
lastCheckTime = now;
|
|
151214
|
+
return isOnlineCached;
|
|
151215
|
+
}
|
|
151201
151216
|
/**
|
|
151202
151217
|
* Robust utility to fetch, cache, and resolve an NPM package.
|
|
151203
151218
|
* Centralized in core-node to avoid circular dependencies.
|
|
@@ -151224,7 +151239,15 @@ async function fetchPackage(packageName, versionOrRange, options) {
|
|
|
151224
151239
|
if (resolvedVersionOrRange === "local") resolvedVersionOrRange = "latest";
|
|
151225
151240
|
console.log(`[Fetcher] Resolving ${packageName}@${resolvedVersionOrRange || "latest"}...`);
|
|
151226
151241
|
const resolveStart = Date.now();
|
|
151227
|
-
|
|
151242
|
+
if (!await isOnline()) {
|
|
151243
|
+
console.warn(`[Fetcher] ${packageName}: offline mode detected (${Date.now() - resolveStart}ms), trying local fallback...`);
|
|
151244
|
+
const fallbackStart = Date.now();
|
|
151245
|
+
const fallbackVersion = await tryLocalFallback(resolvedVersionOrRange, /* @__PURE__ */ new Error("Offline"), baseDir, packageName);
|
|
151246
|
+
if (fallbackVersion) {
|
|
151247
|
+
resolvedVersion = fallbackVersion;
|
|
151248
|
+
console.log(`[Fetcher] ${packageName}: Resolved to local fallback ${resolvedVersion} (${Date.now() - fallbackStart}ms)`);
|
|
151249
|
+
} else throw new Error(`Offline and no local fallback version available for ${packageName}`);
|
|
151250
|
+
} else try {
|
|
151228
151251
|
const cachePath = join(ctx.userDataPath, "cache", "pacote");
|
|
151229
151252
|
let packumentPromise = packumentRequests.get(packageName);
|
|
151230
151253
|
if (!packumentPromise) {
|
|
@@ -151234,7 +151257,16 @@ async function fetchPackage(packageName, versionOrRange, options) {
|
|
|
151234
151257
|
const packument = await packumentPromise;
|
|
151235
151258
|
const versions = Object.keys(packument.versions);
|
|
151236
151259
|
const range = resolvedVersionOrRange || "latest";
|
|
151237
|
-
|
|
151260
|
+
let foundVersion = packument["dist-tags"]?.[range] || import_semver.default.maxSatisfying(versions, range);
|
|
151261
|
+
if (range === "latest" && ctx.releaseTag && ctx.releaseTag !== "latest") {
|
|
151262
|
+
const releaseTagVersion = packument["dist-tags"]?.[ctx.releaseTag];
|
|
151263
|
+
if (releaseTagVersion && import_semver.default.valid(releaseTagVersion)) {
|
|
151264
|
+
if (!foundVersion || import_semver.default.valid(foundVersion) && import_semver.default.gte(releaseTagVersion, foundVersion)) {
|
|
151265
|
+
console.log(`[Fetcher] Using release tag "${ctx.releaseTag}" (${releaseTagVersion}) instead of "latest" (${foundVersion || "none"}) for ${packageName}`);
|
|
151266
|
+
foundVersion = releaseTagVersion;
|
|
151267
|
+
} else if (foundVersion) console.warn(`[Fetcher] Tag "${ctx.releaseTag}" (${releaseTagVersion}) is older than "latest" (${foundVersion}) for ${packageName}, keeping "latest"`);
|
|
151268
|
+
}
|
|
151269
|
+
}
|
|
151238
151270
|
if (!foundVersion) throw new Error(`Package ${packageName}@${range} not found on npm (available tags: ${Object.keys(packument["dist-tags"] || {}).join(", ")})`);
|
|
151239
151271
|
resolvedVersion = foundVersion;
|
|
151240
151272
|
console.log(`[Fetcher] ${packageName}: Resolved to v${resolvedVersion} via npm (${Date.now() - resolveStart}ms)`);
|