@pipelab/plugin-poki 1.0.0-beta.15 → 1.0.0-beta.17

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 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
  //#region ../../packages/migration/src/models/createMigration.ts
30
32
  function createMigration$1(migration) {
31
33
  return {
@@ -123852,7 +123854,7 @@ var require_auth = /* @__PURE__ */ require_chunk.__commonJSMin(((exports, module
123852
123854
  //#endregion
123853
123855
  //#region ../../node_modules/make-fetch-happen/lib/options.js
123854
123856
  var require_options$1 = /* @__PURE__ */ require_chunk.__commonJSMin(((exports, module) => {
123855
- const dns$2 = require("dns");
123857
+ const dns$3 = require("dns");
123856
123858
  const conditionalHeaders = [
123857
123859
  "if-modified-since",
123858
123860
  "if-none-match",
@@ -123877,7 +123879,7 @@ var require_options$1 = /* @__PURE__ */ require_chunk.__commonJSMin(((exports, m
123877
123879
  };
123878
123880
  options.dns = {
123879
123881
  ttl: 300 * 1e3,
123880
- lookup: dns$2.lookup,
123882
+ lookup: dns$3.lookup,
123881
123883
  ...options.dns
123882
123884
  };
123883
123885
  options.cache = options.cache || "default";
@@ -125294,9 +125296,9 @@ var require_key$3 = /* @__PURE__ */ require_chunk.__commonJSMin(((exports, modul
125294
125296
  //#region ../../node_modules/@npmcli/agent/lib/dns.js
125295
125297
  var require_dns = /* @__PURE__ */ require_chunk.__commonJSMin(((exports, module) => {
125296
125298
  const { LRUCache } = require_index_min$5();
125297
- const dns$1 = require("dns");
125299
+ const dns$2 = require("dns");
125298
125300
  const cache = new LRUCache({ max: 50 });
125299
- const getOptions = ({ family = 0, hints = dns$1.ADDRCONFIG, all = false, verbatim = void 0, ttl = 300 * 1e3, lookup = dns$1.lookup }) => ({
125301
+ const getOptions = ({ family = 0, hints = dns$2.ADDRCONFIG, all = false, verbatim = void 0, ttl = 300 * 1e3, lookup = dns$2.lookup }) => ({
125300
125302
  hints,
125301
125303
  lookup: (hostname, ...args) => {
125302
125304
  const callback = args.pop();
@@ -130335,7 +130337,7 @@ var require_dist$9 = /* @__PURE__ */ require_chunk.__commonJSMin(((exports) => {
130335
130337
  const socks_1 = require_build$1();
130336
130338
  const agent_base_1 = require_dist$12();
130337
130339
  const debug_1 = __importDefault(require_src$1());
130338
- const dns = __importStar(require("dns"));
130340
+ const dns$1 = __importStar(require("dns"));
130339
130341
  const net$1 = __importStar(require("net"));
130340
130342
  const tls$1 = __importStar(require("tls"));
130341
130343
  const url_1$1 = require("url");
@@ -130407,7 +130409,7 @@ var require_dist$9 = /* @__PURE__ */ require_chunk.__commonJSMin(((exports) => {
130407
130409
  const { shouldLookup, proxy, timeout } = this;
130408
130410
  if (!opts.host) throw new Error("No `host` defined!");
130409
130411
  let { host } = opts;
130410
- const { port, lookup: lookupFn = dns.lookup } = opts;
130412
+ const { port, lookup: lookupFn = dns$1.lookup } = opts;
130411
130413
  if (shouldLookup) host = await new Promise((resolve, reject) => {
130412
130414
  lookupFn(host, {}, (err, res) => {
130413
130415
  if (err) reject(err);
@@ -151176,6 +151178,20 @@ async function withLock(key, fn) {
151176
151178
  activeOperations.set(key, promise);
151177
151179
  return promise;
151178
151180
  }
151181
+ let isOnlineCached = null;
151182
+ let lastCheckTime = 0;
151183
+ async function isOnline() {
151184
+ const now = Date.now();
151185
+ if (isOnlineCached !== null && now - lastCheckTime < 1e4) return isOnlineCached;
151186
+ try {
151187
+ await Promise.race([node_dns_promises.default.lookup("registry.npmjs.org"), new Promise((_, reject) => setTimeout(() => reject(/* @__PURE__ */ new Error("timeout")), 1500))]);
151188
+ isOnlineCached = true;
151189
+ } catch {
151190
+ isOnlineCached = false;
151191
+ }
151192
+ lastCheckTime = now;
151193
+ return isOnlineCached;
151194
+ }
151179
151195
  /**
151180
151196
  * Robust utility to fetch, cache, and resolve an NPM package.
151181
151197
  * Centralized in core-node to avoid circular dependencies.
@@ -151202,7 +151218,15 @@ async function fetchPackage(packageName, versionOrRange, options) {
151202
151218
  if (resolvedVersionOrRange === "local") resolvedVersionOrRange = "latest";
151203
151219
  console.log(`[Fetcher] Resolving ${packageName}@${resolvedVersionOrRange || "latest"}...`);
151204
151220
  const resolveStart = Date.now();
151205
- try {
151221
+ if (!await isOnline()) {
151222
+ console.warn(`[Fetcher] ${packageName}: offline mode detected (${Date.now() - resolveStart}ms), trying local fallback...`);
151223
+ const fallbackStart = Date.now();
151224
+ const fallbackVersion = await tryLocalFallback(resolvedVersionOrRange, /* @__PURE__ */ new Error("Offline"), baseDir, packageName);
151225
+ if (fallbackVersion) {
151226
+ resolvedVersion = fallbackVersion;
151227
+ console.log(`[Fetcher] ${packageName}: Resolved to local fallback ${resolvedVersion} (${Date.now() - fallbackStart}ms)`);
151228
+ } else throw new Error(`Offline and no local fallback version available for ${packageName}`);
151229
+ } else try {
151206
151230
  const cachePath = (0, node_path.join)(ctx.userDataPath, "cache", "pacote");
151207
151231
  let packumentPromise = packumentRequests.get(packageName);
151208
151232
  if (!packumentPromise) {
@@ -151212,7 +151236,16 @@ async function fetchPackage(packageName, versionOrRange, options) {
151212
151236
  const packument = await packumentPromise;
151213
151237
  const versions = Object.keys(packument.versions);
151214
151238
  const range = resolvedVersionOrRange || "latest";
151215
- const foundVersion = packument["dist-tags"]?.[range] || import_semver.default.maxSatisfying(versions, range);
151239
+ let foundVersion = packument["dist-tags"]?.[range] || import_semver.default.maxSatisfying(versions, range);
151240
+ if (range === "latest" && ctx.releaseTag && ctx.releaseTag !== "latest") {
151241
+ const releaseTagVersion = packument["dist-tags"]?.[ctx.releaseTag];
151242
+ if (releaseTagVersion && import_semver.default.valid(releaseTagVersion)) {
151243
+ if (!foundVersion || import_semver.default.valid(foundVersion) && import_semver.default.gte(releaseTagVersion, foundVersion)) {
151244
+ console.log(`[Fetcher] Using release tag "${ctx.releaseTag}" (${releaseTagVersion}) instead of "latest" (${foundVersion || "none"}) for ${packageName}`);
151245
+ foundVersion = releaseTagVersion;
151246
+ } else if (foundVersion) console.warn(`[Fetcher] Tag "${ctx.releaseTag}" (${releaseTagVersion}) is older than "latest" (${foundVersion}) for ${packageName}, keeping "latest"`);
151247
+ }
151248
+ }
151216
151249
  if (!foundVersion) throw new Error(`Package ${packageName}@${range} not found on npm (available tags: ${Object.keys(packument["dist-tags"] || {}).join(", ")})`);
151217
151250
  resolvedVersion = foundVersion;
151218
151251
  console.log(`[Fetcher] ${packageName}: Resolved to v${resolvedVersion} via npm (${Date.now() - resolveStart}ms)`);
package/dist/index.mjs CHANGED
@@ -20,6 +20,7 @@ import { serialize } from "node:v8";
20
20
  import { finished, pipeline } from "node:stream/promises";
21
21
  import { Duplex, PassThrough, Readable, Transform, Writable, getDefaultHighWaterMark } from "node:stream";
22
22
  import { Buffer as Buffer$1 } from "node:buffer";
23
+ import dns from "node:dns/promises";
23
24
  //#region ../../packages/migration/src/models/createMigration.ts
24
25
  function createMigration$1(migration) {
25
26
  return {
@@ -123850,7 +123851,7 @@ var require_auth = /* @__PURE__ */ __commonJSMin(((exports, module) => {
123850
123851
  //#endregion
123851
123852
  //#region ../../node_modules/make-fetch-happen/lib/options.js
123852
123853
  var require_options$1 = /* @__PURE__ */ __commonJSMin(((exports, module) => {
123853
- const dns$2 = __require("dns");
123854
+ const dns$3 = __require("dns");
123854
123855
  const conditionalHeaders = [
123855
123856
  "if-modified-since",
123856
123857
  "if-none-match",
@@ -123875,7 +123876,7 @@ var require_options$1 = /* @__PURE__ */ __commonJSMin(((exports, module) => {
123875
123876
  };
123876
123877
  options.dns = {
123877
123878
  ttl: 300 * 1e3,
123878
- lookup: dns$2.lookup,
123879
+ lookup: dns$3.lookup,
123879
123880
  ...options.dns
123880
123881
  };
123881
123882
  options.cache = options.cache || "default";
@@ -125292,9 +125293,9 @@ var require_key$3 = /* @__PURE__ */ __commonJSMin(((exports, module) => {
125292
125293
  //#region ../../node_modules/@npmcli/agent/lib/dns.js
125293
125294
  var require_dns = /* @__PURE__ */ __commonJSMin(((exports, module) => {
125294
125295
  const { LRUCache } = require_index_min$5();
125295
- const dns$1 = __require("dns");
125296
+ const dns$2 = __require("dns");
125296
125297
  const cache = new LRUCache({ max: 50 });
125297
- const getOptions = ({ family = 0, hints = dns$1.ADDRCONFIG, all = false, verbatim = void 0, ttl = 300 * 1e3, lookup = dns$1.lookup }) => ({
125298
+ const getOptions = ({ family = 0, hints = dns$2.ADDRCONFIG, all = false, verbatim = void 0, ttl = 300 * 1e3, lookup = dns$2.lookup }) => ({
125298
125299
  hints,
125299
125300
  lookup: (hostname, ...args) => {
125300
125301
  const callback = args.pop();
@@ -130333,7 +130334,7 @@ var require_dist$9 = /* @__PURE__ */ __commonJSMin(((exports) => {
130333
130334
  const socks_1 = require_build$1();
130334
130335
  const agent_base_1 = require_dist$12();
130335
130336
  const debug_1 = __importDefault(require_src$1());
130336
- const dns = __importStar(__require("dns"));
130337
+ const dns$1 = __importStar(__require("dns"));
130337
130338
  const net$1 = __importStar(__require("net"));
130338
130339
  const tls$1 = __importStar(__require("tls"));
130339
130340
  const url_1$1 = __require("url");
@@ -130405,7 +130406,7 @@ var require_dist$9 = /* @__PURE__ */ __commonJSMin(((exports) => {
130405
130406
  const { shouldLookup, proxy, timeout } = this;
130406
130407
  if (!opts.host) throw new Error("No `host` defined!");
130407
130408
  let { host } = opts;
130408
- const { port, lookup: lookupFn = dns.lookup } = opts;
130409
+ const { port, lookup: lookupFn = dns$1.lookup } = opts;
130409
130410
  if (shouldLookup) host = await new Promise((resolve, reject) => {
130410
130411
  lookupFn(host, {}, (err, res) => {
130411
130412
  if (err) reject(err);
@@ -151174,6 +151175,20 @@ async function withLock(key, fn) {
151174
151175
  activeOperations.set(key, promise);
151175
151176
  return promise;
151176
151177
  }
151178
+ let isOnlineCached = null;
151179
+ let lastCheckTime = 0;
151180
+ async function isOnline() {
151181
+ const now = Date.now();
151182
+ if (isOnlineCached !== null && now - lastCheckTime < 1e4) return isOnlineCached;
151183
+ try {
151184
+ await Promise.race([dns.lookup("registry.npmjs.org"), new Promise((_, reject) => setTimeout(() => reject(/* @__PURE__ */ new Error("timeout")), 1500))]);
151185
+ isOnlineCached = true;
151186
+ } catch {
151187
+ isOnlineCached = false;
151188
+ }
151189
+ lastCheckTime = now;
151190
+ return isOnlineCached;
151191
+ }
151177
151192
  /**
151178
151193
  * Robust utility to fetch, cache, and resolve an NPM package.
151179
151194
  * Centralized in core-node to avoid circular dependencies.
@@ -151200,7 +151215,15 @@ async function fetchPackage(packageName, versionOrRange, options) {
151200
151215
  if (resolvedVersionOrRange === "local") resolvedVersionOrRange = "latest";
151201
151216
  console.log(`[Fetcher] Resolving ${packageName}@${resolvedVersionOrRange || "latest"}...`);
151202
151217
  const resolveStart = Date.now();
151203
- try {
151218
+ if (!await isOnline()) {
151219
+ console.warn(`[Fetcher] ${packageName}: offline mode detected (${Date.now() - resolveStart}ms), trying local fallback...`);
151220
+ const fallbackStart = Date.now();
151221
+ const fallbackVersion = await tryLocalFallback(resolvedVersionOrRange, /* @__PURE__ */ new Error("Offline"), baseDir, packageName);
151222
+ if (fallbackVersion) {
151223
+ resolvedVersion = fallbackVersion;
151224
+ console.log(`[Fetcher] ${packageName}: Resolved to local fallback ${resolvedVersion} (${Date.now() - fallbackStart}ms)`);
151225
+ } else throw new Error(`Offline and no local fallback version available for ${packageName}`);
151226
+ } else try {
151204
151227
  const cachePath = join(ctx.userDataPath, "cache", "pacote");
151205
151228
  let packumentPromise = packumentRequests.get(packageName);
151206
151229
  if (!packumentPromise) {
@@ -151210,7 +151233,16 @@ async function fetchPackage(packageName, versionOrRange, options) {
151210
151233
  const packument = await packumentPromise;
151211
151234
  const versions = Object.keys(packument.versions);
151212
151235
  const range = resolvedVersionOrRange || "latest";
151213
- const foundVersion = packument["dist-tags"]?.[range] || import_semver.default.maxSatisfying(versions, range);
151236
+ let foundVersion = packument["dist-tags"]?.[range] || import_semver.default.maxSatisfying(versions, range);
151237
+ if (range === "latest" && ctx.releaseTag && ctx.releaseTag !== "latest") {
151238
+ const releaseTagVersion = packument["dist-tags"]?.[ctx.releaseTag];
151239
+ if (releaseTagVersion && import_semver.default.valid(releaseTagVersion)) {
151240
+ if (!foundVersion || import_semver.default.valid(foundVersion) && import_semver.default.gte(releaseTagVersion, foundVersion)) {
151241
+ console.log(`[Fetcher] Using release tag "${ctx.releaseTag}" (${releaseTagVersion}) instead of "latest" (${foundVersion || "none"}) for ${packageName}`);
151242
+ foundVersion = releaseTagVersion;
151243
+ } else if (foundVersion) console.warn(`[Fetcher] Tag "${ctx.releaseTag}" (${releaseTagVersion}) is older than "latest" (${foundVersion}) for ${packageName}, keeping "latest"`);
151244
+ }
151245
+ }
151214
151246
  if (!foundVersion) throw new Error(`Package ${packageName}@${range} not found on npm (available tags: ${Object.keys(packument["dist-tags"] || {}).join(", ")})`);
151215
151247
  resolvedVersion = foundVersion;
151216
151248
  console.log(`[Fetcher] ${packageName}: Resolved to v${resolvedVersion} via npm (${Date.now() - resolveStart}ms)`);