nf3 0.3.4 → 0.3.6

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 (96) hide show
  1. package/README.md +9 -3
  2. package/dist/_chunks/libs/exsolve.mjs +1 -1
  3. package/dist/_chunks/libs/pathe.mjs +1 -1
  4. package/dist/_chunks/libs/pkg-types.d.mts +1 -0
  5. package/dist/_chunks/trace.mjs +2 -2
  6. package/dist/_chunks/types.d.mts +1 -1
  7. package/dist/db.d.mts +6 -1
  8. package/dist/db.mjs +7 -1
  9. package/dist/index.d.mts +0 -1
  10. package/dist/node_modules/@isaacs/brace-expansion/dist/commonjs/index.js +1 -1
  11. package/dist/node_modules/@isaacs/fs-minipass/dist/commonjs/index.js +1 -1
  12. package/dist/node_modules/@mapbox/node-pre-gyp/lib/clean.js +1 -1
  13. package/dist/node_modules/@mapbox/node-pre-gyp/lib/install.js +1 -1
  14. package/dist/node_modules/@mapbox/node-pre-gyp/lib/main.js +1 -1
  15. package/dist/node_modules/@mapbox/node-pre-gyp/lib/mock/http.js +2 -2
  16. package/dist/node_modules/@mapbox/node-pre-gyp/lib/node-pre-gyp.js +1 -1
  17. package/dist/node_modules/@mapbox/node-pre-gyp/lib/package.js +1 -1
  18. package/dist/node_modules/@mapbox/node-pre-gyp/lib/pre-binding.js +1 -1
  19. package/dist/node_modules/@mapbox/node-pre-gyp/lib/publish.js +1 -1
  20. package/dist/node_modules/@mapbox/node-pre-gyp/lib/reinstall.js +1 -1
  21. package/dist/node_modules/@mapbox/node-pre-gyp/lib/reveal.js +1 -1
  22. package/dist/node_modules/@mapbox/node-pre-gyp/lib/testpackage.js +1 -1
  23. package/dist/node_modules/@mapbox/node-pre-gyp/lib/unpublish.js +1 -1
  24. package/dist/node_modules/@mapbox/node-pre-gyp/lib/util/compile.js +1 -1
  25. package/dist/node_modules/@mapbox/node-pre-gyp/lib/util/versioning.js +4 -4
  26. package/dist/node_modules/@rollup/pluginutils/dist/cjs/index.js +2 -2
  27. package/dist/node_modules/@vercel/nft/out/analyze.js +1 -1
  28. package/dist/node_modules/@vercel/nft/out/fs.js +1 -1
  29. package/dist/node_modules/@vercel/nft/out/node-file-trace.js +1 -1
  30. package/dist/node_modules/@vercel/nft/out/resolve-dependency.js +1 -1
  31. package/dist/node_modules/@vercel/nft/out/utils/ast-helpers.js +1 -1
  32. package/dist/node_modules/@vercel/nft/out/utils/get-package-base.js +1 -1
  33. package/dist/node_modules/@vercel/nft/out/utils/interop-require.js +1 -1
  34. package/dist/node_modules/@vercel/nft/out/utils/sharedlib-emit.js +1 -1
  35. package/dist/node_modules/@vercel/nft/package.json +1 -1
  36. package/dist/node_modules/acorn-import-attributes/lib/index.js +1 -1
  37. package/dist/node_modules/async-sema/lib/index.js +1 -1
  38. package/dist/node_modules/bindings/bindings.js +3 -3
  39. package/dist/node_modules/consola/dist/basic.cjs +1 -1
  40. package/dist/node_modules/consola/dist/core.cjs +4 -4
  41. package/dist/node_modules/detect-libc/lib/detect-libc.js +1 -1
  42. package/dist/node_modules/detect-libc/lib/filesystem.js +1 -1
  43. package/dist/node_modules/file-uri-to-path/index.js +1 -1
  44. package/dist/node_modules/glob/dist/commonjs/glob.js +1 -1
  45. package/dist/node_modules/glob/dist/commonjs/has-magic.js +1 -1
  46. package/dist/node_modules/glob/dist/commonjs/index.js +1 -1
  47. package/dist/node_modules/glob/dist/commonjs/walker.js +1 -1
  48. package/dist/node_modules/minimatch/dist/commonjs/index.js +3 -3
  49. package/dist/node_modules/minipass/dist/commonjs/index.js +1 -1
  50. package/dist/node_modules/node-gyp-build/node-gyp-build.js +3 -3
  51. package/dist/node_modules/nopt/lib/nopt.js +1 -1
  52. package/dist/node_modules/nopt/lib/type-defs.js +1 -1
  53. package/dist/node_modules/path-scurry/dist/commonjs/index.js +1 -1
  54. package/dist/node_modules/picomatch/index.js +1 -1
  55. package/dist/node_modules/picomatch/lib/picomatch.js +1 -1
  56. package/dist/node_modules/picomatch/lib/scan.js +1 -1
  57. package/dist/node_modules/resolve-from/index.js +1 -1
  58. package/dist/node_modules/semver/classes/comparator.js +1 -1
  59. package/dist/node_modules/semver/classes/range.js +1 -1
  60. package/dist/node_modules/semver/classes/semver.js +1 -1
  61. package/dist/node_modules/semver/functions/clean.js +1 -1
  62. package/dist/node_modules/semver/functions/cmp.js +1 -1
  63. package/dist/node_modules/semver/functions/coerce.js +1 -1
  64. package/dist/node_modules/semver/functions/compare-build.js +1 -1
  65. package/dist/node_modules/semver/functions/compare-loose.js +1 -1
  66. package/dist/node_modules/semver/functions/compare.js +1 -1
  67. package/dist/node_modules/semver/functions/diff.js +1 -1
  68. package/dist/node_modules/semver/functions/eq.js +1 -1
  69. package/dist/node_modules/semver/functions/gt.js +1 -1
  70. package/dist/node_modules/semver/functions/gte.js +1 -1
  71. package/dist/node_modules/semver/functions/inc.js +1 -1
  72. package/dist/node_modules/semver/functions/lt.js +1 -1
  73. package/dist/node_modules/semver/functions/lte.js +1 -1
  74. package/dist/node_modules/semver/functions/major.js +1 -1
  75. package/dist/node_modules/semver/functions/minor.js +1 -1
  76. package/dist/node_modules/semver/functions/neq.js +1 -1
  77. package/dist/node_modules/semver/functions/patch.js +1 -1
  78. package/dist/node_modules/semver/functions/prerelease.js +1 -1
  79. package/dist/node_modules/semver/functions/rcompare.js +1 -1
  80. package/dist/node_modules/semver/functions/rsort.js +1 -1
  81. package/dist/node_modules/semver/functions/satisfies.js +1 -1
  82. package/dist/node_modules/semver/functions/sort.js +1 -1
  83. package/dist/node_modules/semver/functions/valid.js +1 -1
  84. package/dist/node_modules/semver/internal/parse-options.js +1 -1
  85. package/dist/node_modules/semver/internal/re.js +1 -1
  86. package/dist/node_modules/semver/ranges/gtr.js +1 -1
  87. package/dist/node_modules/semver/ranges/intersects.js +1 -1
  88. package/dist/node_modules/semver/ranges/ltr.js +1 -1
  89. package/dist/node_modules/semver/ranges/max-satisfying.js +1 -1
  90. package/dist/node_modules/semver/ranges/min-satisfying.js +1 -1
  91. package/dist/node_modules/semver/ranges/min-version.js +1 -1
  92. package/dist/node_modules/semver/ranges/outside.js +1 -1
  93. package/dist/node_modules/semver/ranges/subset.js +1 -1
  94. package/dist/node_modules/semver/ranges/valid.js +1 -1
  95. package/dist/plugin.mjs +1 -1
  96. package/package.json +13 -12
package/README.md CHANGED
@@ -90,14 +90,20 @@ rollupNodeFileTrace({
90
90
  });
91
91
  ```
92
92
 
93
- ## Native packages DB
93
+ ## Packages DB
94
94
 
95
- nf3 exports a list of known packages that include native code and require platform-specific builds.
95
+ NF3 exports a list of known packages that include native code and require platform-specific builds.
96
96
 
97
97
  These packages cannot be bundled and should be traced as external dependencies most of the time and often need tracing.
98
98
 
99
99
  ```js
100
- import { nodeNativePackages } from "nf3/db";
100
+ import { NodeNativePackages } from "nf3/db";
101
+ ```
102
+
103
+ NF3 also exports a list of packages that must be externalized rather than bundled, due to bundler compatibility issues with their module format or dynamic imports.
104
+
105
+ ```js
106
+ import { NonBundleablePackages } from "nf3/db";
101
107
  ```
102
108
 
103
109
  ## Development
@@ -1 +1 @@
1
- import fs,{lstatSync,realpathSync,statSync}from"node:fs";import{URL as URL$1,fileURLToPath,pathToFileURL}from"node:url";import path,{isAbsolute}from"node:path";import assert from"node:assert";import process$1 from"node:process";import v8 from"node:v8";import{format,inspect}from"node:util";const nodeBuiltins=`_http_agent._http_client._http_common._http_incoming._http_outgoing._http_server._stream_duplex._stream_passthrough._stream_readable._stream_transform._stream_wrap._stream_writable._tls_common._tls_wrap.assert.assert/strict.async_hooks.buffer.child_process.cluster.console.constants.crypto.dgram.diagnostics_channel.dns.dns/promises.domain.events.fs.fs/promises.http.http2.https.inspector.inspector/promises.module.net.os.path.path/posix.path/win32.perf_hooks.process.punycode.querystring.readline.readline/promises.repl.stream.stream/consumers.stream/promises.stream/web.string_decoder.sys.timers.timers/promises.tls.trace_events.tty.url.util.util/types.v8.vm.wasi.worker_threads.zlib`.split(`.`),own$1={}.hasOwnProperty,classRegExp=/^([A-Z][a-z\d]*)+$/,kTypes=new Set([`string`,`function`,`number`,`object`,`Function`,`Object`,`boolean`,`bigint`,`symbol`]),messages=new Map;let userStackTraceLimit;function formatList(l,R=`and`){return l.length<3?l.join(` ${R} `):`${l.slice(0,-1).join(`, `)}, ${R} ${l.at(-1)}`}function createError(l,R,z){return messages.set(l,R),makeNodeErrorWithCode(z,l)}function makeNodeErrorWithCode(l,R){return function(...z){let B=Error.stackTraceLimit;isErrorStackTraceLimitWritable()&&(Error.stackTraceLimit=0);let V=new l;isErrorStackTraceLimitWritable()&&(Error.stackTraceLimit=B);let H=getMessage(R,z,V);return Object.defineProperties(V,{message:{value:H,enumerable:!1,writable:!0,configurable:!0},toString:{value(){return`${this.name} [${R}]: ${this.message}`},enumerable:!1,writable:!0,configurable:!0}}),captureLargerStackTrace(V),V.code=R,V}}function isErrorStackTraceLimitWritable(){try{if(v8.startupSnapshot.isBuildingSnapshot())return!1}catch{}let l=Object.getOwnPropertyDescriptor(Error,`stackTraceLimit`);return l===void 0?Object.isExtensible(Error):own$1.call(l,`writable`)&&l.writable!==void 0?l.writable:l.set!==void 0}function hideStackFrames(l){let R=`__node_internal_`+l.name;return Object.defineProperty(l,`name`,{value:R}),l}const captureLargerStackTrace=hideStackFrames(function(l){let R=isErrorStackTraceLimitWritable();return R&&(userStackTraceLimit=Error.stackTraceLimit,Error.stackTraceLimit=1/0),Error.captureStackTrace(l),R&&(Error.stackTraceLimit=userStackTraceLimit),l});function getMessage(l,R,z){let B=messages.get(l);if(assert.ok(B!==void 0,"expected `message` to be found"),typeof B==`function`)return assert.ok(B.length<=R.length,`Code: ${l}; The provided arguments length (${R.length}) does not match the required ones (${B.length}).`),Reflect.apply(B,z,R);let V=/%[dfijoOs]/g,H=0;for(;V.exec(B)!==null;)H++;return assert.ok(H===R.length,`Code: ${l}; The provided arguments length (${R.length}) does not match the required ones (${H}).`),R.length===0?B:(R.unshift(B),Reflect.apply(format,null,R))}function determineSpecificType(l){if(l==null)return String(l);if(typeof l==`function`&&l.name)return`function ${l.name}`;if(typeof l==`object`)return l.constructor&&l.constructor.name?`an instance of ${l.constructor.name}`:`${inspect(l,{depth:-1})}`;let R=inspect(l,{colors:!1});return R.length>28&&(R=`${R.slice(0,25)}...`),`type ${typeof l} (${R})`}createError(`ERR_INVALID_ARG_TYPE`,(l,R,z)=>{assert.ok(typeof l==`string`,`'name' must be a string`),Array.isArray(R)||(R=[R]);let B=`The `;if(l.endsWith(` argument`))B+=`${l} `;else{let R=l.includes(`.`)?`property`:`argument`;B+=`"${l}" ${R} `}B+=`must be `;let V=[],H=[],U=[];for(let l of R)assert.ok(typeof l==`string`,`All expected entries have to be of type string`),kTypes.has(l)?V.push(l.toLowerCase()):classRegExp.exec(l)===null?(assert.ok(l!==`object`,`The value "object" should be written as "Object"`),U.push(l)):H.push(l);if(H.length>0){let l=V.indexOf(`object`);l!==-1&&(V.slice(l,1),H.push(`Object`))}return V.length>0&&(B+=`${V.length>1?`one of type`:`of type`} ${formatList(V,`or`)}`,(H.length>0||U.length>0)&&(B+=` or `)),H.length>0&&(B+=`an instance of ${formatList(H,`or`)}`,U.length>0&&(B+=` or `)),U.length>0&&(U.length>1?B+=`one of ${formatList(U,`or`)}`:(U[0]?.toLowerCase()!==U[0]&&(B+=`an `),B+=`${U[0]}`)),B+=`. Received ${determineSpecificType(z)}`,B},TypeError);const ERR_INVALID_MODULE_SPECIFIER=createError(`ERR_INVALID_MODULE_SPECIFIER`,(l,R,z)=>`Invalid module "${l}" ${R}${z?` imported from ${z}`:``}`,TypeError),ERR_INVALID_PACKAGE_CONFIG=createError(`ERR_INVALID_PACKAGE_CONFIG`,(l,R,z)=>`Invalid package config ${l}${R?` while importing ${R}`:``}${z?`. ${z}`:``}`,Error),ERR_INVALID_PACKAGE_TARGET=createError(`ERR_INVALID_PACKAGE_TARGET`,(l,R,z,B=!1,V)=>{let H=typeof z==`string`&&!B&&z.length>0&&!z.startsWith(`./`);return R===`.`?(assert.ok(B===!1),`Invalid "exports" main target ${JSON.stringify(z)} defined in the package config ${l}package.json${V?` imported from ${V}`:``}${H?`; targets must start with "./"`:``}`):`Invalid "${B?`imports`:`exports`}" target ${JSON.stringify(z)} defined for '${R}' in the package config ${l}package.json${V?` imported from ${V}`:``}${H?`; targets must start with "./"`:``}`},Error),ERR_MODULE_NOT_FOUND=createError(`ERR_MODULE_NOT_FOUND`,(l,R,z=!1)=>`Cannot find ${z?`module`:`package`} '${l}' imported from ${R}`,Error);createError(`ERR_NETWORK_IMPORT_DISALLOWED`,`import of '%s' by %s is not supported: %s`,Error);const ERR_PACKAGE_IMPORT_NOT_DEFINED=createError(`ERR_PACKAGE_IMPORT_NOT_DEFINED`,(l,R,z)=>`Package import specifier "${l}" is not defined${R?` in package ${R||``}package.json`:``} imported from ${z}`,TypeError),ERR_PACKAGE_PATH_NOT_EXPORTED=createError(`ERR_PACKAGE_PATH_NOT_EXPORTED`,(l,R,z)=>R===`.`?`No "exports" main defined in ${l}package.json${z?` imported from ${z}`:``}`:`Package subpath '${R}' is not defined by "exports" in ${l}package.json${z?` imported from ${z}`:``}`,Error),ERR_UNSUPPORTED_DIR_IMPORT=createError(`ERR_UNSUPPORTED_DIR_IMPORT`,`Directory import '%s' is not supported resolving ES modules imported from %s`,Error),ERR_UNSUPPORTED_RESOLVE_REQUEST=createError(`ERR_UNSUPPORTED_RESOLVE_REQUEST`,`Failed to resolve module specifier "%s" from "%s": Invalid relative URL or base scheme is not hierarchical.`,TypeError),ERR_UNKNOWN_FILE_EXTENSION=createError(`ERR_UNKNOWN_FILE_EXTENSION`,(l,R)=>`Unknown file extension "${l}" for ${R}`,TypeError);createError(`ERR_INVALID_ARG_VALUE`,(l,R,z=`is invalid`)=>{let B=inspect(R);return B.length>128&&(B=`${B.slice(0,128)}...`),`The ${l.includes(`.`)?`property`:`argument`} '${l}' ${z}. Received ${B}`},TypeError);const hasOwnProperty$1={}.hasOwnProperty,cache=new Map;function read(R,{base:z,specifier:B}){let V=cache.get(R);if(V)return V;let U;try{U=fs.readFileSync(path.toNamespacedPath(R),`utf8`)}catch(l){let R=l;if(R.code!==`ENOENT`)throw R}let G={exists:!1,pjsonPath:R,main:void 0,name:void 0,type:`none`,exports:void 0,imports:void 0};if(U!==void 0){let l;try{l=JSON.parse(U)}catch(l){let V=new ERR_INVALID_PACKAGE_CONFIG(R,(z?`"${B}" from `:``)+fileURLToPath(z||B),l.message);throw V.cause=l,V}G.exists=!0,hasOwnProperty$1.call(l,`name`)&&typeof l.name==`string`&&(G.name=l.name),hasOwnProperty$1.call(l,`main`)&&typeof l.main==`string`&&(G.main=l.main),hasOwnProperty$1.call(l,`exports`)&&(G.exports=l.exports),hasOwnProperty$1.call(l,`imports`)&&(G.imports=l.imports),hasOwnProperty$1.call(l,`type`)&&(l.type===`commonjs`||l.type===`module`)&&(G.type=l.type)}return cache.set(R,G),G}function getPackageScopeConfig(l){let R=new URL(`package.json`,l);for(;!R.pathname.endsWith(`node_modules/package.json`);){let z=read(fileURLToPath(R),{specifier:l});if(z.exists)return z;let B=R;if(R=new URL(`../package.json`,R),R.pathname===B.pathname)break}return{pjsonPath:fileURLToPath(R),exists:!1,type:`none`}}const hasOwnProperty={}.hasOwnProperty,extensionFormatMap={__proto__:null,".json":`json`,".cjs":`commonjs`,".cts":`commonjs`,".js":`module`,".ts":`module`,".mts":`module`,".mjs":`module`},protocolHandlers={__proto__:null,"data:":getDataProtocolModuleFormat,"file:":getFileProtocolModuleFormat,"node:":()=>`builtin`};function mimeToFormat(l){return l&&/\s*(text|application)\/javascript\s*(;\s*charset=utf-?8\s*)?/i.test(l)?`module`:l===`application/json`?`json`:null}function getDataProtocolModuleFormat(l){let{1:R}=/^([^/]+\/[^;,]+)[^,]*?(;base64)?,/.exec(l.pathname)||[null,null,null];return mimeToFormat(R)}function extname(l){let R=l.pathname,z=R.length;for(;z--;){let l=R.codePointAt(z);if(l===47)return``;if(l===46)return R.codePointAt(z-1)===47?``:R.slice(z)}return``}function getFileProtocolModuleFormat(l,R,z){let B=extname(l);if(B===`.js`){let{type:R}=getPackageScopeConfig(l);return R===`none`?`commonjs`:R}if(B===``){let{type:R}=getPackageScopeConfig(l);return R===`none`||R===`commonjs`?`commonjs`:`module`}let V=extensionFormatMap[B];if(V)return V;if(!z)throw new ERR_UNKNOWN_FILE_EXTENSION(B,fileURLToPath(l))}function defaultGetFormatWithoutErrors(l,R){let z=l.protocol;return hasOwnProperty.call(protocolHandlers,z)&&protocolHandlers[z](l,R,!0)||null}const RegExpPrototypeSymbolReplace=RegExp.prototype[Symbol.replace],own={}.hasOwnProperty,invalidSegmentRegEx=/(^|\\|\/)((\.|%2e)(\.|%2e)?|(n|%6e|%4e)(o|%6f|%4f)(d|%64|%44)(e|%65|%45)(_|%5f)(m|%6d|%4d)(o|%6f|%4f)(d|%64|%44)(u|%75|%55)(l|%6c|%4c)(e|%65|%45)(s|%73|%53))?(\\|\/|$)/i,deprecatedInvalidSegmentRegEx=/(^|\\|\/)((\.|%2e)(\.|%2e)?|(n|%6e|%4e)(o|%6f|%4f)(d|%64|%44)(e|%65|%45)(_|%5f)(m|%6d|%4d)(o|%6f|%4f)(d|%64|%44)(u|%75|%55)(l|%6c|%4c)(e|%65|%45)(s|%73|%53))(\\|\/|$)/i,invalidPackageNameRegEx=/^\.|%|\\/,patternRegEx=/\*/g,encodedSeparatorRegEx=/%2f|%5c/i,emittedPackageWarnings=new Set,doubleSlashRegEx=/[/\\]{2}/;function emitInvalidSegmentDeprecation(l,R,z,B,V,U,W){if(process$1.noDeprecation)return;let G=fileURLToPath(B),K=doubleSlashRegEx.exec(W?l:R)!==null;process$1.emitWarning(`Use of deprecated ${K?`double slash`:`leading or trailing slash matching`} resolving "${l}" for module request "${R}" ${R===z?``:`matched to "${z}" `}in the "${V?`imports`:`exports`}" field module resolution of the package at ${G}${U?` imported from ${fileURLToPath(U)}`:``}.`,`DeprecationWarning`,`DEP0166`)}function emitLegacyIndexDeprecation(l,R,z,B){if(process$1.noDeprecation||defaultGetFormatWithoutErrors(l,{parentURL:z.href})!==`module`)return;let U=fileURLToPath(l.href),G=fileURLToPath(new URL$1(`.`,R)),K=fileURLToPath(z);B?path.resolve(G,B)!==U&&process$1.emitWarning(`Package ${G} has a "main" field set to "${B}", excluding the full filename and extension to the resolved file at "${U.slice(G.length)}", imported from ${K}.\n Automatic extension resolution of the "main" field is deprecated for ES modules.`,`DeprecationWarning`,`DEP0151`):process$1.emitWarning(`No "main" or "exports" field defined in the package.json for ${G} resolving the main entry point "${U.slice(G.length)}", imported from ${K}.\nDefault "index" lookups for the main are deprecated for ES modules.`,`DeprecationWarning`,`DEP0151`)}function tryStatSync(l){try{return statSync(l)}catch{}}function fileExists(l){let R=statSync(l,{throwIfNoEntry:!1});return(R?R.isFile():void 0)??!1}function legacyMainResolve(l,R,z){let B;if(R.main!==void 0){if(B=new URL$1(R.main,l),fileExists(B))return B;let H=[`./${R.main}.js`,`./${R.main}.json`,`./${R.main}.node`,`./${R.main}/index.js`,`./${R.main}/index.json`,`./${R.main}/index.node`],U=-1;for(;++U<H.length&&(B=new URL$1(H[U],l),!fileExists(B));)B=void 0;if(B)return emitLegacyIndexDeprecation(B,l,z,R.main),B}let U=[`./index.js`,`./index.json`,`./index.node`],W=-1;for(;++W<U.length&&(B=new URL$1(U[W],l),!fileExists(B));)B=void 0;if(B)return emitLegacyIndexDeprecation(B,l,z,R.main),B;throw new ERR_MODULE_NOT_FOUND(fileURLToPath(new URL$1(`.`,l)),fileURLToPath(z))}function finalizeResolution(l,R,B){if(encodedSeparatorRegEx.exec(l.pathname)!==null)throw new ERR_INVALID_MODULE_SPECIFIER(l.pathname,String.raw`must not include encoded "/" or "\" characters`,fileURLToPath(R));let V;try{V=fileURLToPath(l)}catch(z){throw Object.defineProperty(z,`input`,{value:String(l)}),Object.defineProperty(z,`module`,{value:String(R)}),z}let G=tryStatSync(V.endsWith(`/`)?V.slice(-1):V);if(G&&G.isDirectory()){let z=new ERR_UNSUPPORTED_DIR_IMPORT(V,fileURLToPath(R));throw z.url=String(l),z}if(!G||!G.isFile()){let z=new ERR_MODULE_NOT_FOUND(V||l.pathname,R&&fileURLToPath(R),!0);throw z.url=String(l),z}if(!B){let R=realpathSync(V),{search:B,hash:H}=l;l=pathToFileURL(R+(V.endsWith(path.sep)?`/`:``)),l.search=B,l.hash=H}return l}function importNotDefined(l,R,z){return new ERR_PACKAGE_IMPORT_NOT_DEFINED(l,R&&fileURLToPath(new URL$1(`.`,R)),fileURLToPath(z))}function exportsNotFound(l,R,z){return new ERR_PACKAGE_PATH_NOT_EXPORTED(fileURLToPath(new URL$1(`.`,R)),l,z&&fileURLToPath(z))}function throwInvalidSubpath(l,R,z,B,V){throw new ERR_INVALID_MODULE_SPECIFIER(l,`request is not a valid match in pattern "${R}" for the "${B?`imports`:`exports`}" resolution of ${fileURLToPath(z)}`,V&&fileURLToPath(V))}function invalidPackageTarget(l,R,z,B,U){return R=typeof R==`object`&&R?JSON.stringify(R,null,``):`${R}`,new ERR_INVALID_PACKAGE_TARGET(fileURLToPath(new URL$1(`.`,z)),l,R,B,U&&fileURLToPath(U))}function resolvePackageTargetString(l,R,z,B,H,U,W,G,K){if(R!==``&&!U&&l.at(-1)!==`/`)throw invalidPackageTarget(z,l,B,W,H);if(!l.startsWith(`./`)){if(W&&!l.startsWith(`../`)&&!l.startsWith(`/`)){let z=!1;try{new URL$1(l),z=!0}catch{}if(!z)return packageResolve(U?RegExpPrototypeSymbolReplace.call(patternRegEx,l,()=>R):l+R,B,K)}throw invalidPackageTarget(z,l,B,W,H)}if(invalidSegmentRegEx.exec(l.slice(2))!==null)if(deprecatedInvalidSegmentRegEx.exec(l.slice(2))===null){if(!G){let V=U?z.replace(`*`,()=>R):z+R;emitInvalidSegmentDeprecation(U?RegExpPrototypeSymbolReplace.call(patternRegEx,l,()=>R):l,V,z,B,W,H,!0)}}else throw invalidPackageTarget(z,l,B,W,H);let q=new URL$1(l,B),J=q.pathname,Y=new URL$1(`.`,B).pathname;if(!J.startsWith(Y))throw invalidPackageTarget(z,l,B,W,H);if(R===``)return q;if(invalidSegmentRegEx.exec(R)!==null){let V=U?z.replace(`*`,()=>R):z+R;deprecatedInvalidSegmentRegEx.exec(R)===null?G||emitInvalidSegmentDeprecation(U?RegExpPrototypeSymbolReplace.call(patternRegEx,l,()=>R):l,V,z,B,W,H,!1):throwInvalidSubpath(V,z,B,W,H)}return U?new URL$1(RegExpPrototypeSymbolReplace.call(patternRegEx,q.href,()=>R)):new URL$1(R,q)}function isArrayIndex(l){let R=Number(l);return`${R}`===l?R>=0&&R<4294967295:!1}function resolvePackageTarget(l,R,z,B,V,U,W,G,K){if(typeof R==`string`)return resolvePackageTargetString(R,z,B,l,V,U,W,G,K);if(Array.isArray(R)){let H=R;if(H.length===0)return null;let q,J=-1;for(;++J<H.length;){let R=H[J],Y;try{Y=resolvePackageTarget(l,R,z,B,V,U,W,G,K)}catch(l){let R=l;if(q=R,R.code===`ERR_INVALID_PACKAGE_TARGET`)continue;throw l}if(Y!==void 0){if(Y===null){q=null;continue}return Y}}if(q==null)return null;throw q}if(typeof R==`object`&&R){let q=Object.getOwnPropertyNames(R),J=-1;for(;++J<q.length;){let R=q[J];if(isArrayIndex(R))throw new ERR_INVALID_PACKAGE_CONFIG(fileURLToPath(l),fileURLToPath(V),`"exports" cannot contain numeric property keys.`)}for(J=-1;++J<q.length;){let H=q[J];if(H===`default`||K&&K.has(H)){let q=R[H],J=resolvePackageTarget(l,q,z,B,V,U,W,G,K);if(J===void 0)continue;return J}}return null}if(R===null)return null;throw invalidPackageTarget(B,R,l,W,V)}function isConditionalExportsMainSugar(l,R,z){if(typeof l==`string`||Array.isArray(l))return!0;if(typeof l!=`object`||!l)return!1;let B=Object.getOwnPropertyNames(l),V=!1,U=0,W=-1;for(;++W<B.length;){let l=B[W],G=l===``||l[0]!==`.`;if(U++===0)V=G;else if(V!==G)throw new ERR_INVALID_PACKAGE_CONFIG(fileURLToPath(R),fileURLToPath(z),`"exports" cannot contain some keys starting with '.' and some not. The exports object must either be an object of package subpath keys or an object of main entry condition name keys only.`)}return V}function emitTrailingSlashPatternDeprecation(l,R,z){if(process$1.noDeprecation)return;let B=fileURLToPath(R);emittedPackageWarnings.has(B+`|`+l)||(emittedPackageWarnings.add(B+`|`+l),process$1.emitWarning(`Use of deprecated trailing slash pattern mapping "${l}" in the "exports" field module resolution of the package at ${B}${z?` imported from ${fileURLToPath(z)}`:``}. Mapping specifiers ending in "/" is no longer supported.`,`DeprecationWarning`,`DEP0155`))}function packageExportsResolve(l,R,z,B,V){let H=z.exports;if(isConditionalExportsMainSugar(H,l,B)&&(H={".":H}),own.call(H,R)&&!R.includes(`*`)&&!R.endsWith(`/`)){let z=H[R],U=resolvePackageTarget(l,z,``,R,B,!1,!1,!1,V);if(U==null)throw exportsNotFound(R,l,B);return U}let U=``,W=``,G=Object.getOwnPropertyNames(H),K=-1;for(;++K<G.length;){let z=G[K],V=z.indexOf(`*`);if(V!==-1&&R.startsWith(z.slice(0,V))){R.endsWith(`/`)&&emitTrailingSlashPatternDeprecation(R,l,B);let H=z.slice(V+1);R.length>=z.length&&R.endsWith(H)&&patternKeyCompare(U,z)===1&&z.lastIndexOf(`*`)===V&&(U=z,W=R.slice(V,R.length-H.length))}}if(U){let z=H[U],G=resolvePackageTarget(l,z,W,U,B,!0,!1,R.endsWith(`/`),V);if(G==null)throw exportsNotFound(R,l,B);return G}throw exportsNotFound(R,l,B)}function patternKeyCompare(l,R){let z=l.indexOf(`*`),B=R.indexOf(`*`),V=z===-1?l.length:z+1,H=B===-1?R.length:B+1;return V>H?-1:H>V||z===-1?1:B===-1||l.length>R.length?-1:R.length>l.length?1:0}function packageImportsResolve(l,R,z){if(l===`#`||l.startsWith(`#/`)||l.endsWith(`/`))throw new ERR_INVALID_MODULE_SPECIFIER(l,`is not a valid internal imports specifier name`,fileURLToPath(R));let B,V=getPackageScopeConfig(R);if(V.exists){B=pathToFileURL(V.pjsonPath);let H=V.imports;if(H)if(own.call(H,l)&&!l.includes(`*`)){let V=resolvePackageTarget(B,H[l],``,l,R,!1,!0,!1,z);if(V!=null)return V}else{let V=``,U=``,W=Object.getOwnPropertyNames(H),G=-1;for(;++G<W.length;){let R=W[G],z=R.indexOf(`*`);if(z!==-1&&l.startsWith(R.slice(0,-1))){let B=R.slice(z+1);l.length>=R.length&&l.endsWith(B)&&patternKeyCompare(V,R)===1&&R.lastIndexOf(`*`)===z&&(V=R,U=l.slice(z,l.length-B.length))}}if(V){let l=H[V],W=resolvePackageTarget(B,l,U,V,R,!0,!0,!1,z);if(W!=null)return W}}}throw importNotDefined(l,B,R)}function parsePackageName(l,R){let z=l.indexOf(`/`),B=!0,V=!1;l[0]===`@`&&(V=!0,z===-1||l.length===0?B=!1:z=l.indexOf(`/`,z+1));let U=z===-1?l:l.slice(0,z);if(invalidPackageNameRegEx.exec(U)!==null&&(B=!1),!B)throw new ERR_INVALID_MODULE_SPECIFIER(l,`is not a valid package name`,fileURLToPath(R));return{packageName:U,packageSubpath:`.`+(z===-1?``:l.slice(z)),isScoped:V}}function packageResolve(l,R,z){if(nodeBuiltins.includes(l))return new URL$1(`node:`+l);let{packageName:B,packageSubpath:W,isScoped:G}=parsePackageName(l,R),K=getPackageScopeConfig(R);if(K.exists&&K.name===B&&K.exports!==void 0&&K.exports!==null)return packageExportsResolve(pathToFileURL(K.pjsonPath),W,K,R,z);let q=new URL$1(`./node_modules/`+B+`/package.json`,R),J=fileURLToPath(q),Y;do{let U=tryStatSync(J.slice(0,-13));if(!U||!U.isDirectory()){Y=J,q=new URL$1((G?`../../../../node_modules/`:`../../../node_modules/`)+B+`/package.json`,q),J=fileURLToPath(q);continue}let K=read(J,{base:R,specifier:l});return K.exports!==void 0&&K.exports!==null?packageExportsResolve(q,W,K,R,z):W===`.`?legacyMainResolve(q,K,R):new URL$1(W,q)}while(J.length!==Y.length);throw new ERR_MODULE_NOT_FOUND(B,fileURLToPath(R),!1)}function isRelativeSpecifier(l){return l[0]===`.`&&(l.length===1||l[1]===`/`||l[1]===`.`&&(l.length===2||l[2]===`/`))}function shouldBeTreatedAsRelativeOrAbsolutePath(l){return l===``?!1:l[0]===`/`?!0:isRelativeSpecifier(l)}function moduleResolve(l,R,z,B){let H=R.protocol,U=H===`data:`,W;if(shouldBeTreatedAsRelativeOrAbsolutePath(l))try{W=new URL$1(l,R)}catch(z){let B=new ERR_UNSUPPORTED_RESOLVE_REQUEST(l,R);throw B.cause=z,B}else if(H===`file:`&&l[0]===`#`)W=packageImportsResolve(l,R,z);else try{W=new URL$1(l)}catch(B){if(U&&!nodeBuiltins.includes(l)){let z=new ERR_UNSUPPORTED_RESOLVE_REQUEST(l,R);throw z.cause=B,z}W=packageResolve(l,R,z)}return assert.ok(W!==void 0,`expected to be defined`),W.protocol===`file:`?finalizeResolution(W,R,B):W}const DEFAULT_CONDITIONS_SET=new Set([`node`,`import`]),isWindows=process.platform===`win32`,globalCache=globalThis.__EXSOLVE_CACHE__||=new Map;function resolveModuleURL(l,B){let V=_parseInput(l);if(`external`in V)return V.external;let H=V.specifier,W=V.url,G=V.absolutePath,K,q;if(B?.cache!==!1&&(K=_cacheKey(G||H,B),q=B?.cache&&typeof B?.cache==`object`?B.cache:globalCache),q){let l=q.get(K);if(typeof l==`string`)return l;if(l instanceof Error){if(B?.try)return;throw l}}if(G)try{let l=lstatSync(G);if(l.isSymbolicLink()&&(G=realpathSync(G),W=pathToFileURL(G)),l.isFile())return q&&q.set(K,W.href),W.href}catch(l){if(l?.code!==`ENOENT`)throw q&&q.set(K,l),l}let J=B?.conditions?new Set(B.conditions):DEFAULT_CONDITIONS_SET,Y=H||W.href,X=_normalizeBases(B?.from),Z=B?.suffixes||[``],Q=B?.extensions?[``,...B.extensions]:[``],$;for(let l of X){for(let R of Z){let z=_join(Y,R);z===`.`&&(z+=`/.`);for(let R of Q)if($=_tryModuleResolve(z+R,l,J),$)break;if($)break}if($)break}if(!$){let R=Error(`Cannot resolve module "${l}" (from: ${X.map(l=>_fmtPath(l)).join(`, `)})`);if(R.code=`ERR_MODULE_NOT_FOUND`,q&&q.set(K,R),B?.try)return;throw R}return q&&q.set(K,$.href),$.href}function resolveModulePath(l,R){let z=resolveModuleURL(l,R);if(!z||!z.startsWith(`file://`)&&R?.try)return;let B=fileURLToPath(z);return isWindows?_normalizeWinPath(B):B}function _tryModuleResolve(l,R,z){try{return moduleResolve(l,R,z)}catch{}}function _normalizeBases(l){let R=(Array.isArray(l)?l:[l]).flatMap(l=>_normalizeBase(l));return R.length===0?[pathToFileURL(`./`)]:R}function _normalizeBase(l){if(!l)return[];if(_isURL(l))return[l];if(typeof l!=`string`)return[];if(/^(?:node|data|http|https|file):/.test(l))return new URL(l);try{return l.endsWith(`/`)||statSync(l).isDirectory()?pathToFileURL(l+`/`):pathToFileURL(l)}catch{return[pathToFileURL(l+`/`),pathToFileURL(l)]}}function _fmtPath(l){try{return fileURLToPath(l)}catch{return l}}function _cacheKey(l,R){return JSON.stringify([l,(R?.conditions||[`node`,`import`]).sort(),R?.extensions,R?.from,R?.suffixes])}function _join(l,R){return!l||!R||R===`/`?l:(l.endsWith(`/`)?l:l+`/`)+(R.startsWith(`/`)?R.slice(1):R)}function _normalizeWinPath(l){return l.replace(/\\/g,`/`).replace(/^[a-z]:\//,l=>l.toUpperCase())}function _isURL(l){return l instanceof URL||l?.constructor?.name===`URL`}function _parseInput(l){if(typeof l==`string`){if(l.startsWith(`file:`)){let R=new URL(l);return{url:R,absolutePath:fileURLToPath(R)}}return isAbsolute(l)?{url:pathToFileURL(l),absolutePath:l}:/^(?:node|data|http|https):/.test(l)?{external:l}:nodeBuiltins.includes(l)&&!l.includes(`:`)?{external:`node:${l}`}:{specifier:l}}if(_isURL(l))return l.protocol===`file:`?{url:l,absolutePath:fileURLToPath(l)}:{external:l.href};throw TypeError("id must be a `string` or `URL`")}export{resolveModulePath as t};
1
+ import fs,{lstatSync,realpathSync,statSync}from"node:fs";import{URL as URL$1,fileURLToPath,pathToFileURL}from"node:url";import path,{isAbsolute}from"node:path";import assert from"node:assert";import process$1 from"node:process";import v8 from"node:v8";import{format,inspect}from"node:util";const nodeBuiltins=`_http_agent._http_client._http_common._http_incoming._http_outgoing._http_server._stream_duplex._stream_passthrough._stream_readable._stream_transform._stream_wrap._stream_writable._tls_common._tls_wrap.assert.assert/strict.async_hooks.buffer.child_process.cluster.console.constants.crypto.dgram.diagnostics_channel.dns.dns/promises.domain.events.fs.fs/promises.http.http2.https.inspector.inspector/promises.module.net.os.path.path/posix.path/win32.perf_hooks.process.punycode.querystring.readline.readline/promises.repl.stream.stream/consumers.stream/promises.stream/web.string_decoder.sys.timers.timers/promises.tls.trace_events.tty.url.util.util/types.v8.vm.wasi.worker_threads.zlib`.split(`.`),own$1={}.hasOwnProperty,classRegExp=/^([A-Z][a-z\d]*)+$/,kTypes=new Set([`string`,`function`,`number`,`object`,`Function`,`Object`,`boolean`,`bigint`,`symbol`]),messages=new Map;let userStackTraceLimit;function formatList(e,t=`and`){return e.length<3?e.join(` ${t} `):`${e.slice(0,-1).join(`, `)}, ${t} ${e.at(-1)}`}function createError(e,t,n){return messages.set(e,t),makeNodeErrorWithCode(n,e)}function makeNodeErrorWithCode(e,t){return function(...n){let r=Error.stackTraceLimit;isErrorStackTraceLimitWritable()&&(Error.stackTraceLimit=0);let i=new e;isErrorStackTraceLimitWritable()&&(Error.stackTraceLimit=r);let a=getMessage(t,n,i);return Object.defineProperties(i,{message:{value:a,enumerable:!1,writable:!0,configurable:!0},toString:{value(){return`${this.name} [${t}]: ${this.message}`},enumerable:!1,writable:!0,configurable:!0}}),captureLargerStackTrace(i),i.code=t,i}}function isErrorStackTraceLimitWritable(){try{if(v8.startupSnapshot.isBuildingSnapshot())return!1}catch{}let e=Object.getOwnPropertyDescriptor(Error,`stackTraceLimit`);return e===void 0?Object.isExtensible(Error):own$1.call(e,`writable`)&&e.writable!==void 0?e.writable:e.set!==void 0}function hideStackFrames(e){let t=`__node_internal_`+e.name;return Object.defineProperty(e,`name`,{value:t}),e}const captureLargerStackTrace=hideStackFrames(function(e){let t=isErrorStackTraceLimitWritable();return t&&(userStackTraceLimit=Error.stackTraceLimit,Error.stackTraceLimit=1/0),Error.captureStackTrace(e),t&&(Error.stackTraceLimit=userStackTraceLimit),e});function getMessage(e,t,n){let r=messages.get(e);if(assert.ok(r!==void 0,"expected `message` to be found"),typeof r==`function`)return assert.ok(r.length<=t.length,`Code: ${e}; The provided arguments length (${t.length}) does not match the required ones (${r.length}).`),Reflect.apply(r,n,t);let i=/%[dfijoOs]/g,a=0;for(;i.exec(r)!==null;)a++;return assert.ok(a===t.length,`Code: ${e}; The provided arguments length (${t.length}) does not match the required ones (${a}).`),t.length===0?r:(t.unshift(r),Reflect.apply(format,null,t))}function determineSpecificType(e){if(e==null)return String(e);if(typeof e==`function`&&e.name)return`function ${e.name}`;if(typeof e==`object`)return e.constructor&&e.constructor.name?`an instance of ${e.constructor.name}`:`${inspect(e,{depth:-1})}`;let t=inspect(e,{colors:!1});return t.length>28&&(t=`${t.slice(0,25)}...`),`type ${typeof e} (${t})`}createError(`ERR_INVALID_ARG_TYPE`,(e,t,n)=>{assert.ok(typeof e==`string`,`'name' must be a string`),Array.isArray(t)||(t=[t]);let r=`The `;if(e.endsWith(` argument`))r+=`${e} `;else{let t=e.includes(`.`)?`property`:`argument`;r+=`"${e}" ${t} `}r+=`must be `;let i=[],a=[],o=[];for(let e of t)assert.ok(typeof e==`string`,`All expected entries have to be of type string`),kTypes.has(e)?i.push(e.toLowerCase()):classRegExp.exec(e)===null?(assert.ok(e!==`object`,`The value "object" should be written as "Object"`),o.push(e)):a.push(e);if(a.length>0){let e=i.indexOf(`object`);e!==-1&&(i.slice(e,1),a.push(`Object`))}return i.length>0&&(r+=`${i.length>1?`one of type`:`of type`} ${formatList(i,`or`)}`,(a.length>0||o.length>0)&&(r+=` or `)),a.length>0&&(r+=`an instance of ${formatList(a,`or`)}`,o.length>0&&(r+=` or `)),o.length>0&&(o.length>1?r+=`one of ${formatList(o,`or`)}`:(o[0]?.toLowerCase()!==o[0]&&(r+=`an `),r+=`${o[0]}`)),r+=`. Received ${determineSpecificType(n)}`,r},TypeError);const ERR_INVALID_MODULE_SPECIFIER=createError(`ERR_INVALID_MODULE_SPECIFIER`,(e,t,n)=>`Invalid module "${e}" ${t}${n?` imported from ${n}`:``}`,TypeError),ERR_INVALID_PACKAGE_CONFIG=createError(`ERR_INVALID_PACKAGE_CONFIG`,(e,t,n)=>`Invalid package config ${e}${t?` while importing ${t}`:``}${n?`. ${n}`:``}`,Error),ERR_INVALID_PACKAGE_TARGET=createError(`ERR_INVALID_PACKAGE_TARGET`,(e,t,n,r=!1,i)=>{let a=typeof n==`string`&&!r&&n.length>0&&!n.startsWith(`./`);return t===`.`?(assert.ok(r===!1),`Invalid "exports" main target ${JSON.stringify(n)} defined in the package config ${e}package.json${i?` imported from ${i}`:``}${a?`; targets must start with "./"`:``}`):`Invalid "${r?`imports`:`exports`}" target ${JSON.stringify(n)} defined for '${t}' in the package config ${e}package.json${i?` imported from ${i}`:``}${a?`; targets must start with "./"`:``}`},Error),ERR_MODULE_NOT_FOUND=createError(`ERR_MODULE_NOT_FOUND`,(e,t,n=!1)=>`Cannot find ${n?`module`:`package`} '${e}' imported from ${t}`,Error);createError(`ERR_NETWORK_IMPORT_DISALLOWED`,`import of '%s' by %s is not supported: %s`,Error);const ERR_PACKAGE_IMPORT_NOT_DEFINED=createError(`ERR_PACKAGE_IMPORT_NOT_DEFINED`,(e,t,n)=>`Package import specifier "${e}" is not defined${t?` in package ${t||``}package.json`:``} imported from ${n}`,TypeError),ERR_PACKAGE_PATH_NOT_EXPORTED=createError(`ERR_PACKAGE_PATH_NOT_EXPORTED`,(e,t,n)=>t===`.`?`No "exports" main defined in ${e}package.json${n?` imported from ${n}`:``}`:`Package subpath '${t}' is not defined by "exports" in ${e}package.json${n?` imported from ${n}`:``}`,Error),ERR_UNSUPPORTED_DIR_IMPORT=createError(`ERR_UNSUPPORTED_DIR_IMPORT`,`Directory import '%s' is not supported resolving ES modules imported from %s`,Error),ERR_UNSUPPORTED_RESOLVE_REQUEST=createError(`ERR_UNSUPPORTED_RESOLVE_REQUEST`,`Failed to resolve module specifier "%s" from "%s": Invalid relative URL or base scheme is not hierarchical.`,TypeError),ERR_UNKNOWN_FILE_EXTENSION=createError(`ERR_UNKNOWN_FILE_EXTENSION`,(e,t)=>`Unknown file extension "${e}" for ${t}`,TypeError);createError(`ERR_INVALID_ARG_VALUE`,(e,t,n=`is invalid`)=>{let r=inspect(t);return r.length>128&&(r=`${r.slice(0,128)}...`),`The ${e.includes(`.`)?`property`:`argument`} '${e}' ${n}. Received ${r}`},TypeError);const hasOwnProperty$1={}.hasOwnProperty,cache=new Map;function read(t,{base:n,specifier:r}){let i=cache.get(t);if(i)return i;let o;try{o=fs.readFileSync(path.toNamespacedPath(t),`utf8`)}catch(e){let t=e;if(t.code!==`ENOENT`)throw t}let c={exists:!1,pjsonPath:t,main:void 0,name:void 0,type:`none`,exports:void 0,imports:void 0};if(o!==void 0){let e;try{e=JSON.parse(o)}catch(e){let i=new ERR_INVALID_PACKAGE_CONFIG(t,(n?`"${r}" from `:``)+fileURLToPath(n||r),e.message);throw i.cause=e,i}c.exists=!0,hasOwnProperty$1.call(e,`name`)&&typeof e.name==`string`&&(c.name=e.name),hasOwnProperty$1.call(e,`main`)&&typeof e.main==`string`&&(c.main=e.main),hasOwnProperty$1.call(e,`exports`)&&(c.exports=e.exports),hasOwnProperty$1.call(e,`imports`)&&(c.imports=e.imports),hasOwnProperty$1.call(e,`type`)&&(e.type===`commonjs`||e.type===`module`)&&(c.type=e.type)}return cache.set(t,c),c}function getPackageScopeConfig(e){let t=new URL(`package.json`,e);for(;!t.pathname.endsWith(`node_modules/package.json`);){let n=read(fileURLToPath(t),{specifier:e});if(n.exists)return n;let r=t;if(t=new URL(`../package.json`,t),t.pathname===r.pathname)break}return{pjsonPath:fileURLToPath(t),exists:!1,type:`none`}}const hasOwnProperty={}.hasOwnProperty,extensionFormatMap={__proto__:null,".json":`json`,".cjs":`commonjs`,".cts":`commonjs`,".js":`module`,".ts":`module`,".mts":`module`,".mjs":`module`},protocolHandlers={__proto__:null,"data:":getDataProtocolModuleFormat,"file:":getFileProtocolModuleFormat,"node:":()=>`builtin`};function mimeToFormat(e){return e&&/\s*(text|application)\/javascript\s*(;\s*charset=utf-?8\s*)?/i.test(e)?`module`:e===`application/json`?`json`:null}function getDataProtocolModuleFormat(e){let{1:t}=/^([^/]+\/[^;,]+)[^,]*?(;base64)?,/.exec(e.pathname)||[null,null,null];return mimeToFormat(t)}function extname(e){let t=e.pathname,n=t.length;for(;n--;){let e=t.codePointAt(n);if(e===47)return``;if(e===46)return t.codePointAt(n-1)===47?``:t.slice(n)}return``}function getFileProtocolModuleFormat(e,t,n){let r=extname(e);if(r===`.js`){let{type:t}=getPackageScopeConfig(e);return t===`none`?`commonjs`:t}if(r===``){let{type:t}=getPackageScopeConfig(e);return t===`none`||t===`commonjs`?`commonjs`:`module`}let i=extensionFormatMap[r];if(i)return i;if(!n)throw new ERR_UNKNOWN_FILE_EXTENSION(r,fileURLToPath(e))}function defaultGetFormatWithoutErrors(e,t){let n=e.protocol;return hasOwnProperty.call(protocolHandlers,n)&&protocolHandlers[n](e,t,!0)||null}const RegExpPrototypeSymbolReplace=RegExp.prototype[Symbol.replace],own={}.hasOwnProperty,invalidSegmentRegEx=/(^|\\|\/)((\.|%2e)(\.|%2e)?|(n|%6e|%4e)(o|%6f|%4f)(d|%64|%44)(e|%65|%45)(_|%5f)(m|%6d|%4d)(o|%6f|%4f)(d|%64|%44)(u|%75|%55)(l|%6c|%4c)(e|%65|%45)(s|%73|%53))?(\\|\/|$)/i,deprecatedInvalidSegmentRegEx=/(^|\\|\/)((\.|%2e)(\.|%2e)?|(n|%6e|%4e)(o|%6f|%4f)(d|%64|%44)(e|%65|%45)(_|%5f)(m|%6d|%4d)(o|%6f|%4f)(d|%64|%44)(u|%75|%55)(l|%6c|%4c)(e|%65|%45)(s|%73|%53))(\\|\/|$)/i,invalidPackageNameRegEx=/^\.|%|\\/,patternRegEx=/\*/g,encodedSeparatorRegEx=/%2f|%5c/i,emittedPackageWarnings=new Set,doubleSlashRegEx=/[/\\]{2}/;function emitInvalidSegmentDeprecation(e,t,n,r,i,o,s){if(process$1.noDeprecation)return;let c=fileURLToPath(r),l=doubleSlashRegEx.exec(s?e:t)!==null;process$1.emitWarning(`Use of deprecated ${l?`double slash`:`leading or trailing slash matching`} resolving "${e}" for module request "${t}" ${t===n?``:`matched to "${n}" `}in the "${i?`imports`:`exports`}" field module resolution of the package at ${c}${o?` imported from ${fileURLToPath(o)}`:``}.`,`DeprecationWarning`,`DEP0166`)}function emitLegacyIndexDeprecation(e,t,n,r){if(process$1.noDeprecation||defaultGetFormatWithoutErrors(e,{parentURL:n.href})!==`module`)return;let o=fileURLToPath(e.href),c=fileURLToPath(new URL$1(`.`,t)),l=fileURLToPath(n);r?path.resolve(c,r)!==o&&process$1.emitWarning(`Package ${c} has a "main" field set to "${r}", excluding the full filename and extension to the resolved file at "${o.slice(c.length)}", imported from ${l}.\n Automatic extension resolution of the "main" field is deprecated for ES modules.`,`DeprecationWarning`,`DEP0151`):process$1.emitWarning(`No "main" or "exports" field defined in the package.json for ${c} resolving the main entry point "${o.slice(c.length)}", imported from ${l}.\nDefault "index" lookups for the main are deprecated for ES modules.`,`DeprecationWarning`,`DEP0151`)}function tryStatSync(e){try{return statSync(e)}catch{}}function fileExists(e){let t=statSync(e,{throwIfNoEntry:!1});return(t?t.isFile():void 0)??!1}function legacyMainResolve(e,t,n){let r;if(t.main!==void 0){if(r=new URL$1(t.main,e),fileExists(r))return r;let a=[`./${t.main}.js`,`./${t.main}.json`,`./${t.main}.node`,`./${t.main}/index.js`,`./${t.main}/index.json`,`./${t.main}/index.node`],o=-1;for(;++o<a.length&&(r=new URL$1(a[o],e),!fileExists(r));)r=void 0;if(r)return emitLegacyIndexDeprecation(r,e,n,t.main),r}let o=[`./index.js`,`./index.json`,`./index.node`],s=-1;for(;++s<o.length&&(r=new URL$1(o[s],e),!fileExists(r));)r=void 0;if(r)return emitLegacyIndexDeprecation(r,e,n,t.main),r;throw new ERR_MODULE_NOT_FOUND(fileURLToPath(new URL$1(`.`,e)),fileURLToPath(n))}function finalizeResolution(e,t,r){if(encodedSeparatorRegEx.exec(e.pathname)!==null)throw new ERR_INVALID_MODULE_SPECIFIER(e.pathname,String.raw`must not include encoded "/" or "\" characters`,fileURLToPath(t));let i;try{i=fileURLToPath(e)}catch(n){throw Object.defineProperty(n,`input`,{value:String(e)}),Object.defineProperty(n,`module`,{value:String(t)}),n}let c=tryStatSync(i.endsWith(`/`)?i.slice(-1):i);if(c&&c.isDirectory()){let n=new ERR_UNSUPPORTED_DIR_IMPORT(i,fileURLToPath(t));throw n.url=String(e),n}if(!c||!c.isFile()){let n=new ERR_MODULE_NOT_FOUND(i||e.pathname,t&&fileURLToPath(t),!0);throw n.url=String(e),n}if(!r){let t=realpathSync(i),{search:r,hash:a}=e;e=pathToFileURL(t+(i.endsWith(path.sep)?`/`:``)),e.search=r,e.hash=a}return e}function importNotDefined(e,t,n){return new ERR_PACKAGE_IMPORT_NOT_DEFINED(e,t&&fileURLToPath(new URL$1(`.`,t)),fileURLToPath(n))}function exportsNotFound(e,t,n){return new ERR_PACKAGE_PATH_NOT_EXPORTED(fileURLToPath(new URL$1(`.`,t)),e,n&&fileURLToPath(n))}function throwInvalidSubpath(e,t,n,r,i){throw new ERR_INVALID_MODULE_SPECIFIER(e,`request is not a valid match in pattern "${t}" for the "${r?`imports`:`exports`}" resolution of ${fileURLToPath(n)}`,i&&fileURLToPath(i))}function invalidPackageTarget(e,t,n,r,o){return t=typeof t==`object`&&t?JSON.stringify(t,null,``):`${t}`,new ERR_INVALID_PACKAGE_TARGET(fileURLToPath(new URL$1(`.`,n)),e,t,r,o&&fileURLToPath(o))}function resolvePackageTargetString(e,t,n,r,a,o,s,c,l){if(t!==``&&!o&&e.at(-1)!==`/`)throw invalidPackageTarget(n,e,r,s,a);if(!e.startsWith(`./`)){if(s&&!e.startsWith(`../`)&&!e.startsWith(`/`)){let n=!1;try{new URL$1(e),n=!0}catch{}if(!n)return packageResolve(o?RegExpPrototypeSymbolReplace.call(patternRegEx,e,()=>t):e+t,r,l)}throw invalidPackageTarget(n,e,r,s,a)}if(invalidSegmentRegEx.exec(e.slice(2))!==null)if(deprecatedInvalidSegmentRegEx.exec(e.slice(2))===null){if(!c){let i=o?n.replace(`*`,()=>t):n+t;emitInvalidSegmentDeprecation(o?RegExpPrototypeSymbolReplace.call(patternRegEx,e,()=>t):e,i,n,r,s,a,!0)}}else throw invalidPackageTarget(n,e,r,s,a);let u=new URL$1(e,r),d=u.pathname,f=new URL$1(`.`,r).pathname;if(!d.startsWith(f))throw invalidPackageTarget(n,e,r,s,a);if(t===``)return u;if(invalidSegmentRegEx.exec(t)!==null){let i=o?n.replace(`*`,()=>t):n+t;deprecatedInvalidSegmentRegEx.exec(t)===null?c||emitInvalidSegmentDeprecation(o?RegExpPrototypeSymbolReplace.call(patternRegEx,e,()=>t):e,i,n,r,s,a,!1):throwInvalidSubpath(i,n,r,s,a)}return o?new URL$1(RegExpPrototypeSymbolReplace.call(patternRegEx,u.href,()=>t)):new URL$1(t,u)}function isArrayIndex(e){let t=Number(e);return`${t}`===e?t>=0&&t<4294967295:!1}function resolvePackageTarget(e,t,n,r,i,o,s,c,l){if(typeof t==`string`)return resolvePackageTargetString(t,n,r,e,i,o,s,c,l);if(Array.isArray(t)){let a=t;if(a.length===0)return null;let u,d=-1;for(;++d<a.length;){let t=a[d],f;try{f=resolvePackageTarget(e,t,n,r,i,o,s,c,l)}catch(e){let t=e;if(u=t,t.code===`ERR_INVALID_PACKAGE_TARGET`)continue;throw e}if(f!==void 0){if(f===null){u=null;continue}return f}}if(u==null)return null;throw u}if(typeof t==`object`&&t){let u=Object.getOwnPropertyNames(t),d=-1;for(;++d<u.length;){let t=u[d];if(isArrayIndex(t))throw new ERR_INVALID_PACKAGE_CONFIG(fileURLToPath(e),fileURLToPath(i),`"exports" cannot contain numeric property keys.`)}for(d=-1;++d<u.length;){let a=u[d];if(a===`default`||l&&l.has(a)){let u=t[a],d=resolvePackageTarget(e,u,n,r,i,o,s,c,l);if(d===void 0)continue;return d}}return null}if(t===null)return null;throw invalidPackageTarget(r,t,e,s,i)}function isConditionalExportsMainSugar(e,t,n){if(typeof e==`string`||Array.isArray(e))return!0;if(typeof e!=`object`||!e)return!1;let r=Object.getOwnPropertyNames(e),i=!1,o=0,s=-1;for(;++s<r.length;){let e=r[s],c=e===``||e[0]!==`.`;if(o++===0)i=c;else if(i!==c)throw new ERR_INVALID_PACKAGE_CONFIG(fileURLToPath(t),fileURLToPath(n),`"exports" cannot contain some keys starting with '.' and some not. The exports object must either be an object of package subpath keys or an object of main entry condition name keys only.`)}return i}function emitTrailingSlashPatternDeprecation(e,t,n){if(process$1.noDeprecation)return;let r=fileURLToPath(t);emittedPackageWarnings.has(r+`|`+e)||(emittedPackageWarnings.add(r+`|`+e),process$1.emitWarning(`Use of deprecated trailing slash pattern mapping "${e}" in the "exports" field module resolution of the package at ${r}${n?` imported from ${fileURLToPath(n)}`:``}. Mapping specifiers ending in "/" is no longer supported.`,`DeprecationWarning`,`DEP0155`))}function packageExportsResolve(e,t,n,r,i){let a=n.exports;if(isConditionalExportsMainSugar(a,e,r)&&(a={".":a}),own.call(a,t)&&!t.includes(`*`)&&!t.endsWith(`/`)){let n=a[t],o=resolvePackageTarget(e,n,``,t,r,!1,!1,!1,i);if(o==null)throw exportsNotFound(t,e,r);return o}let o=``,s=``,c=Object.getOwnPropertyNames(a),l=-1;for(;++l<c.length;){let n=c[l],i=n.indexOf(`*`);if(i!==-1&&t.startsWith(n.slice(0,i))){t.endsWith(`/`)&&emitTrailingSlashPatternDeprecation(t,e,r);let a=n.slice(i+1);t.length>=n.length&&t.endsWith(a)&&patternKeyCompare(o,n)===1&&n.lastIndexOf(`*`)===i&&(o=n,s=t.slice(i,t.length-a.length))}}if(o){let n=a[o],c=resolvePackageTarget(e,n,s,o,r,!0,!1,t.endsWith(`/`),i);if(c==null)throw exportsNotFound(t,e,r);return c}throw exportsNotFound(t,e,r)}function patternKeyCompare(e,t){let n=e.indexOf(`*`),r=t.indexOf(`*`),i=n===-1?e.length:n+1,a=r===-1?t.length:r+1;return i>a?-1:a>i||n===-1?1:r===-1||e.length>t.length?-1:t.length>e.length?1:0}function packageImportsResolve(e,t,n){if(e===`#`||e.startsWith(`#/`)||e.endsWith(`/`))throw new ERR_INVALID_MODULE_SPECIFIER(e,`is not a valid internal imports specifier name`,fileURLToPath(t));let r,i=getPackageScopeConfig(t);if(i.exists){r=pathToFileURL(i.pjsonPath);let a=i.imports;if(a)if(own.call(a,e)&&!e.includes(`*`)){let i=resolvePackageTarget(r,a[e],``,e,t,!1,!0,!1,n);if(i!=null)return i}else{let i=``,o=``,s=Object.getOwnPropertyNames(a),c=-1;for(;++c<s.length;){let t=s[c],n=t.indexOf(`*`);if(n!==-1&&e.startsWith(t.slice(0,-1))){let r=t.slice(n+1);e.length>=t.length&&e.endsWith(r)&&patternKeyCompare(i,t)===1&&t.lastIndexOf(`*`)===n&&(i=t,o=e.slice(n,e.length-r.length))}}if(i){let e=a[i],s=resolvePackageTarget(r,e,o,i,t,!0,!0,!1,n);if(s!=null)return s}}}throw importNotDefined(e,r,t)}function parsePackageName(e,t){let n=e.indexOf(`/`),r=!0,i=!1;e[0]===`@`&&(i=!0,n===-1||e.length===0?r=!1:n=e.indexOf(`/`,n+1));let o=n===-1?e:e.slice(0,n);if(invalidPackageNameRegEx.exec(o)!==null&&(r=!1),!r)throw new ERR_INVALID_MODULE_SPECIFIER(e,`is not a valid package name`,fileURLToPath(t));return{packageName:o,packageSubpath:`.`+(n===-1?``:e.slice(n)),isScoped:i}}function packageResolve(e,t,n){if(nodeBuiltins.includes(e))return new URL$1(`node:`+e);let{packageName:r,packageSubpath:s,isScoped:c}=parsePackageName(e,t),l=getPackageScopeConfig(t);if(l.exists&&l.name===r&&l.exports!==void 0&&l.exports!==null)return packageExportsResolve(pathToFileURL(l.pjsonPath),s,l,t,n);let u=new URL$1(`./node_modules/`+r+`/package.json`,t),d=fileURLToPath(u),f;do{let o=tryStatSync(d.slice(0,-13));if(!o||!o.isDirectory()){f=d,u=new URL$1((c?`../../../../node_modules/`:`../../../node_modules/`)+r+`/package.json`,u),d=fileURLToPath(u);continue}let l=read(d,{base:t,specifier:e});return l.exports!==void 0&&l.exports!==null?packageExportsResolve(u,s,l,t,n):s===`.`?legacyMainResolve(u,l,t):new URL$1(s,u)}while(d.length!==f.length);throw new ERR_MODULE_NOT_FOUND(r,fileURLToPath(t),!1)}function isRelativeSpecifier(e){return e[0]===`.`&&(e.length===1||e[1]===`/`||e[1]===`.`&&(e.length===2||e[2]===`/`))}function shouldBeTreatedAsRelativeOrAbsolutePath(e){return e===``?!1:e[0]===`/`?!0:isRelativeSpecifier(e)}function moduleResolve(e,t,n,r){let a=t.protocol,o=a===`data:`,s;if(shouldBeTreatedAsRelativeOrAbsolutePath(e))try{s=new URL$1(e,t)}catch(n){let r=new ERR_UNSUPPORTED_RESOLVE_REQUEST(e,t);throw r.cause=n,r}else if(a===`file:`&&e[0]===`#`)s=packageImportsResolve(e,t,n);else try{s=new URL$1(e)}catch(r){if(o&&!nodeBuiltins.includes(e)){let n=new ERR_UNSUPPORTED_RESOLVE_REQUEST(e,t);throw n.cause=r,n}s=packageResolve(e,t,n)}return assert.ok(s!==void 0,`expected to be defined`),s.protocol===`file:`?finalizeResolution(s,t,r):s}const DEFAULT_CONDITIONS_SET=new Set([`node`,`import`]),isWindows=process.platform===`win32`,globalCache=globalThis.__EXSOLVE_CACHE__||=new Map;function resolveModuleURL(e,r){let i=_parseInput(e);if(`external`in i)return i.external;let a=i.specifier,s=i.url,c=i.absolutePath,l,u;if(r?.cache!==!1&&(l=_cacheKey(c||a,r),u=r?.cache&&typeof r?.cache==`object`?r.cache:globalCache),u){let e=u.get(l);if(typeof e==`string`)return e;if(e instanceof Error){if(r?.try)return;throw e}}if(c)try{let e=lstatSync(c);if(e.isSymbolicLink()&&(c=realpathSync(c),s=pathToFileURL(c)),e.isFile())return u&&u.set(l,s.href),s.href}catch(e){if(e?.code!==`ENOENT`)throw u&&u.set(l,e),e}let d=r?.conditions?new Set(r.conditions):DEFAULT_CONDITIONS_SET,f=a||s.href,p=_normalizeBases(r?.from),m=r?.suffixes||[``],h=r?.extensions?[``,...r.extensions]:[``],g;for(let e of p){for(let t of m){let n=_join(f,t);n===`.`&&(n+=`/.`);for(let t of h)if(g=_tryModuleResolve(n+t,e,d),g)break;if(g)break}if(g)break}if(!g){let t=Error(`Cannot resolve module "${e}" (from: ${p.map(e=>_fmtPath(e)).join(`, `)})`);if(t.code=`ERR_MODULE_NOT_FOUND`,u&&u.set(l,t),r?.try)return;throw t}return u&&u.set(l,g.href),g.href}function resolveModulePath(e,t){let n=resolveModuleURL(e,t);if(!n||!n.startsWith(`file://`)&&t?.try)return;let r=fileURLToPath(n);return isWindows?_normalizeWinPath(r):r}function _tryModuleResolve(e,t,n){try{return moduleResolve(e,t,n)}catch{}}function _normalizeBases(e){let t=(Array.isArray(e)?e:[e]).flatMap(e=>_normalizeBase(e));return t.length===0?[pathToFileURL(`./`)]:t}function _normalizeBase(e){if(!e)return[];if(_isURL(e))return[e];if(typeof e!=`string`)return[];if(/^(?:node|data|http|https|file):/.test(e))return new URL(e);try{return e.endsWith(`/`)||statSync(e).isDirectory()?pathToFileURL(e+`/`):pathToFileURL(e)}catch{return[pathToFileURL(e+`/`),pathToFileURL(e)]}}function _fmtPath(e){try{return fileURLToPath(e)}catch{return e}}function _cacheKey(e,t){return JSON.stringify([e,(t?.conditions||[`node`,`import`]).sort(),t?.extensions,t?.from,t?.suffixes])}function _join(e,t){return!e||!t||t===`/`?e:(e.endsWith(`/`)?e:e+`/`)+(t.startsWith(`/`)?t.slice(1):t)}function _normalizeWinPath(e){return e.replace(/\\/g,`/`).replace(/^[a-z]:\//,e=>e.toUpperCase())}function _isURL(e){return e instanceof URL||e?.constructor?.name===`URL`}function _parseInput(e){if(typeof e==`string`){if(e.startsWith(`file:`)){let t=new URL(e);return{url:t,absolutePath:fileURLToPath(t)}}return isAbsolute(e)?{url:pathToFileURL(e),absolutePath:e}:/^(?:node|data|http|https):/.test(e)?{external:e}:nodeBuiltins.includes(e)&&!e.includes(`:`)?{external:`node:${e}`}:{specifier:e}}if(_isURL(e))return e.protocol===`file:`?{url:e,absolutePath:fileURLToPath(e)}:{external:e.href};throw TypeError("id must be a `string` or `URL`")}export{resolveModulePath as t};
@@ -1 +1 @@
1
- const _DRIVE_LETTER_START_RE=/^[A-Za-z]:\//;function normalizeWindowsPath(s=``){return s&&s.replace(/\\/g,`/`).replace(_DRIVE_LETTER_START_RE,e=>e.toUpperCase())}const _UNC_REGEX=/^[/\\]{2}/,_IS_ABSOLUTE_RE=/^[/\\](?![/\\])|^[/\\]{2}(?!\.)|^[A-Za-z]:[/\\]/,_DRIVE_LETTER_RE=/^[A-Za-z]:$/,_ROOT_FOLDER_RE=/^\/([A-Za-z]:)?$/,normalize=function(e){if(e.length===0)return`.`;e=normalizeWindowsPath(e);let l=e.match(_UNC_REGEX),d=isAbsolute(e),f=e[e.length-1]===`/`;return e=normalizeString(e,!d),e.length===0?d?`/`:f?`./`:`.`:(f&&(e+=`/`),_DRIVE_LETTER_RE.test(e)&&(e+=`/`),l?d?`//${e}`:`//./${e}`:d&&!isAbsolute(e)?`/${e}`:e)},join=function(...e){let s=``;for(let c of e)if(c)if(s.length>0){let e=s[s.length-1]===`/`,l=c[0]===`/`;e&&l?s+=c.slice(1):s+=e||l?c:`/${c}`}else s+=c;return normalize(s)};function cwd(){return typeof process<`u`&&typeof process.cwd==`function`?process.cwd().replace(/\\/g,`/`):`/`}const resolve=function(...e){e=e.map(e=>normalizeWindowsPath(e));let c=``,l=!1;for(let s=e.length-1;s>=-1&&!l;s--){let u=s>=0?e[s]:cwd();!u||u.length===0||(c=`${u}/${c}`,l=isAbsolute(u))}return c=normalizeString(c,!l),l&&!isAbsolute(c)?`/${c}`:c.length>0?c:`.`};function normalizeString(e,s){let c=``,l=0,u=-1,d=0,f=null;for(let p=0;p<=e.length;++p){if(p<e.length)f=e[p];else if(f===`/`)break;else f=`/`;if(f===`/`){if(!(u===p-1||d===1))if(d===2){if(c.length<2||l!==2||c[c.length-1]!==`.`||c[c.length-2]!==`.`){if(c.length>2){let e=c.lastIndexOf(`/`);e===-1?(c=``,l=0):(c=c.slice(0,e),l=c.length-1-c.lastIndexOf(`/`)),u=p,d=0;continue}else if(c.length>0){c=``,l=0,u=p,d=0;continue}}s&&(c+=c.length>0?`/..`:`..`,l=2)}else c.length>0?c+=`/${e.slice(u+1,p)}`:c=e.slice(u+1,p),l=p-u-1;u=p,d=0}else f===`.`&&d!==-1?++d:d=-1}return c}const isAbsolute=function(e){return _IS_ABSOLUTE_RE.test(e)},relative=function(e,s){let c=resolve(e).replace(_ROOT_FOLDER_RE,`$1`).split(`/`),l=resolve(s).replace(_ROOT_FOLDER_RE,`$1`).split(`/`);if(l[0][1]===`:`&&c[0][1]===`:`&&c[0]!==l[0])return l.join(`/`);let u=[...c];for(let e of u){if(l[0]!==e)break;c.shift(),l.shift()}return[...c.map(()=>`..`),...l].join(`/`)},dirname=function(e){let c=normalizeWindowsPath(e).replace(/\/$/,``).split(`/`).slice(0,-1);return c.length===1&&_DRIVE_LETTER_RE.test(c[0])&&(c[0]+=`/`),c.join(`/`)||(isAbsolute(e)?`/`:`.`)};export{relative as a,normalize as i,isAbsolute as n,resolve as o,join as r,dirname as t};
1
+ const _DRIVE_LETTER_START_RE=/^[A-Za-z]:\//;function normalizeWindowsPath(t=``){return t&&t.replace(/\\/g,`/`).replace(_DRIVE_LETTER_START_RE,e=>e.toUpperCase())}const _UNC_REGEX=/^[/\\]{2}/,_IS_ABSOLUTE_RE=/^[/\\](?![/\\])|^[/\\]{2}(?!\.)|^[A-Za-z]:[/\\]/,_DRIVE_LETTER_RE=/^[A-Za-z]:$/,_ROOT_FOLDER_RE=/^\/([A-Za-z]:)?$/,normalize=function(e){if(e.length===0)return`.`;e=normalizeWindowsPath(e);let r=e.match(_UNC_REGEX),a=isAbsolute(e),o=e[e.length-1]===`/`;return e=normalizeString(e,!a),e.length===0?a?`/`:o?`./`:`.`:(o&&(e+=`/`),_DRIVE_LETTER_RE.test(e)&&(e+=`/`),r?a?`//${e}`:`//./${e}`:a&&!isAbsolute(e)?`/${e}`:e)},join=function(...e){let t=``;for(let n of e)if(n)if(t.length>0){let e=t[t.length-1]===`/`,r=n[0]===`/`;e&&r?t+=n.slice(1):t+=e||r?n:`/${n}`}else t+=n;return normalize(t)};function cwd(){return typeof process<`u`&&typeof process.cwd==`function`?process.cwd().replace(/\\/g,`/`):`/`}const resolve=function(...e){e=e.map(e=>normalizeWindowsPath(e));let n=``,r=!1;for(let t=e.length-1;t>=-1&&!r;t--){let i=t>=0?e[t]:cwd();!i||i.length===0||(n=`${i}/${n}`,r=isAbsolute(i))}return n=normalizeString(n,!r),r&&!isAbsolute(n)?`/${n}`:n.length>0?n:`.`};function normalizeString(e,t){let n=``,r=0,i=-1,a=0,o=null;for(let s=0;s<=e.length;++s){if(s<e.length)o=e[s];else if(o===`/`)break;else o=`/`;if(o===`/`){if(!(i===s-1||a===1))if(a===2){if(n.length<2||r!==2||n[n.length-1]!==`.`||n[n.length-2]!==`.`){if(n.length>2){let e=n.lastIndexOf(`/`);e===-1?(n=``,r=0):(n=n.slice(0,e),r=n.length-1-n.lastIndexOf(`/`)),i=s,a=0;continue}else if(n.length>0){n=``,r=0,i=s,a=0;continue}}t&&(n+=n.length>0?`/..`:`..`,r=2)}else n.length>0?n+=`/${e.slice(i+1,s)}`:n=e.slice(i+1,s),r=s-i-1;i=s,a=0}else o===`.`&&a!==-1?++a:a=-1}return n}const isAbsolute=function(e){return _IS_ABSOLUTE_RE.test(e)},relative=function(e,t){let n=resolve(e).replace(_ROOT_FOLDER_RE,`$1`).split(`/`),r=resolve(t).replace(_ROOT_FOLDER_RE,`$1`).split(`/`);if(r[0][1]===`:`&&n[0][1]===`:`&&n[0]!==r[0])return r.join(`/`);let i=[...n];for(let e of i){if(r[0]!==e)break;n.shift(),r.shift()}return[...n.map(()=>`..`),...r].join(`/`)},dirname=function(e){let n=normalizeWindowsPath(e).replace(/\/$/,``).split(`/`).slice(0,-1);return n.length===1&&_DRIVE_LETTER_RE.test(n[0])&&(n[0]+=`/`),n.join(`/`)||(isAbsolute(e)?`/`:`.`)};export{relative as a,normalize as i,isAbsolute as n,resolve as o,join as r,dirname as t};
@@ -0,0 +1 @@
1
+ interface PackageJson{name?:string;version?:string;description?:string;keywords?:string[];homepage?:string;bugs?:string|{url?:string;email?:string;};license?:string;repository?:string|{type:string;url:string;directory?:string;};scripts?:PackageJsonScripts;private?:boolean;author?:PackageJsonPerson;contributors?:PackageJsonPerson[];funding?:PackageJsonFunding|PackageJsonFunding[];files?:string[];main?:string;browser?:string|Record<string,string|false>;unpkg?:string;bin?:string|Record<string,string>;man?:string|string[];dependencies?:Record<string,string>;devDependencies?:Record<string,string>;optionalDependencies?:Record<string,string>;peerDependencies?:Record<string,string>;types?:string;typings?:string;module?:string;type?:`module`|`commonjs`;exports?:PackageJsonExports;imports?:Record<string,string|Record<string,string>>;workspaces?:string[]|{packages?:string[];nohoist?:string[];};typesVersions?:Record<string,Record<string,string[]>>;os?:string[];cpu?:string[];publishConfig?:{registry?:string;tag?:string;access?:`public`|`restricted`;executableFiles?:string[];directory?:string;linkDirectory?:boolean;}&Pick<PackageJson,`bin`|`main`|`exports`|`types`|`typings`|`module`|`browser`|`unpkg`|`typesVersions`|`os`|`cpu`>;packageManager?:string;[key:string]:any;}type PackageJsonScriptWithPreAndPost<e extends string>=e|`${`pre`|`post`}${e}`;type PackageJsonNpmLifeCycleScripts=`dependencies`|`prepublishOnly`|PackageJsonScriptWithPreAndPost<`install`|`pack`|`prepare`|`publish`|`restart`|`start`|`stop`|`test`|`version`>;type PackageJsonPnpmLifeCycleScripts=`pnpm:devPreinstall`;type PackageJsonCommonScripts=`build`|`coverage`|`deploy`|`dev`|`format`|`lint`|`preview`|`release`|`typecheck`|`watch`;type PackageJsonScriptName=PackageJsonCommonScripts|PackageJsonNpmLifeCycleScripts|PackageJsonPnpmLifeCycleScripts|(string&{});type PackageJsonScripts={[e in PackageJsonScriptName]?:string};type PackageJsonPerson=string|{name:string;email?:string;url?:string;};type PackageJsonFunding=string|{url:string;type?:string;};type PackageJsonExportKey=`.`|`import`|`require`|`types`|`node`|`browser`|`default`|(string&{});type PackageJsonExportsObject={[e in PackageJsonExportKey]?:string|PackageJsonExportsObject|Array<string|PackageJsonExportsObject>};type PackageJsonExports=string|PackageJsonExportsObject|Array<string|PackageJsonExportsObject>;export{PackageJson as t};
@@ -27,7 +27,7 @@ function guessSubpath(path, conditions) {
27
27
  if (!conditions.includes(e.condition || "default")) continue;
28
28
  if (e.fsPath === subpath) return join(name, e.subpath);
29
29
  if (e.fsPath.includes("*")) {
30
- const fsPathRe = /* @__PURE__ */ new RegExp("^" + escapeRegExp(e.fsPath).replace(String.raw`\*`, "(.+?)") + "$");
30
+ const fsPathRe = new RegExp("^" + escapeRegExp(e.fsPath).replace(String.raw`\*`, "(.+?)") + "$");
31
31
  if (fsPathRe.test(subpath)) {
32
32
  const matched = fsPathRe.exec(subpath)?.[1];
33
33
  if (matched) return join(name, e.subpath.replace("*", matched));
@@ -99,7 +99,7 @@ async function traceNodeModules(input, opts) {
99
99
  ...opts.nft
100
100
  });
101
101
  await opts?.hooks?.traceResult?.(traceResult);
102
- const _resolveTracedPath = (p) => promises.realpath(resolve(opts.nft?.base || "/", p)).then((p$1) => normalize(p$1));
102
+ const _resolveTracedPath = (p) => promises.realpath(resolve(opts.nft?.base || "/", p)).then((p) => normalize(p));
103
103
  const tracedFiles = Object.fromEntries(await Promise.all([...traceResult.reasons.entries()].map(async ([_path, reasons]) => {
104
104
  if (reasons.ignored) return;
105
105
  const path = await _resolveTracedPath(_path);
@@ -1,5 +1,5 @@
1
+ import { t as PackageJson } from "./libs/pkg-types.mjs";
1
2
  import { NodeFileTraceOptions, NodeFileTraceResult } from "@vercel/nft";
2
- import { PackageJson } from "pkg-types";
3
3
 
4
4
  //#region src/types.d.ts
5
5
  interface ExternalsPluginOptions {
package/dist/db.d.mts CHANGED
@@ -5,5 +5,10 @@
5
5
  * These packages cannot be bundled and should be traced as external dependencies most of the time.
6
6
  */
7
7
  declare const NodeNativePackages: readonly string[];
8
+ /**
9
+ * Packages that must be externalized (traced as dependencies) rather than bundled,
10
+ * due to bundler compatibility issues with their module format or dynamic imports.
11
+ */
12
+ declare const NonBundleablePackages: string[];
8
13
  //#endregion
9
- export { NodeNativePackages };
14
+ export { NodeNativePackages, NonBundleablePackages };
package/dist/db.mjs CHANGED
@@ -18,6 +18,7 @@ const NodeNativePackages = Object.freeze([
18
18
  "lmdb",
19
19
  "sqlite3",
20
20
  "lz4",
21
+ "zlib-sync",
21
22
  "deasync",
22
23
  "node-gyp",
23
24
  "node-sass",
@@ -37,6 +38,11 @@ const NodeNativePackages = Object.freeze([
37
38
  "utf-8-validate",
38
39
  "keytar"
39
40
  ]);
41
+ /**
42
+ * Packages that must be externalized (traced as dependencies) rather than bundled,
43
+ * due to bundler compatibility issues with their module format or dynamic imports.
44
+ */
45
+ const NonBundleablePackages = ["pg", "sequelize"];
40
46
 
41
47
  //#endregion
42
- export { NodeNativePackages };
48
+ export { NodeNativePackages, NonBundleablePackages };
package/dist/index.d.mts CHANGED
@@ -1,6 +1,5 @@
1
1
  import { NodeNativePackages } from "./db.mjs";
2
2
  import { n as ExternalsTraceOptions } from "./_chunks/types.mjs";
3
- import { PackageJson } from "pkg-types";
4
3
 
5
4
  //#region src/trace.d.ts
6
5
  declare function traceNodeModules(input: string[], opts: ExternalsTraceOptions): Promise<void>;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,`__esModule`,{value:!0}),exports.expand=expand;const balanced_match_1=require(`@isaacs/balanced-match`),escSlash=`\0SLASH`+Math.random()+`\0`,escOpen=`\0OPEN`+Math.random()+`\0`,escClose=`\0CLOSE`+Math.random()+`\0`,escComma=`\0COMMA`+Math.random()+`\0`,escPeriod=`\0PERIOD`+Math.random()+`\0`,escSlashPattern=new RegExp(escSlash,`g`),escOpenPattern=new RegExp(escOpen,`g`),escClosePattern=new RegExp(escClose,`g`),escCommaPattern=new RegExp(escComma,`g`),escPeriodPattern=new RegExp(escPeriod,`g`),slashPattern=/\\\\/g,openPattern=/\\{/g,closePattern=/\\}/g,commaPattern=/\\,/g,periodPattern=/\\./g;function numeric(e){return isNaN(e)?e.charCodeAt(0):parseInt(e,10)}function escapeBraces(e){return e.replace(slashPattern,escSlash).replace(openPattern,escOpen).replace(closePattern,escClose).replace(commaPattern,escComma).replace(periodPattern,escPeriod)}function unescapeBraces(e){return e.replace(escSlashPattern,`\\`).replace(escOpenPattern,`{`).replace(escClosePattern,`}`).replace(escCommaPattern,`,`).replace(escPeriodPattern,`.`)}function parseCommaParts(m){if(!m)return[``];let h=[],g=(0,balanced_match_1.balanced)(`{`,`}`,m);if(!g)return m.split(`,`);let{pre:_,body:v,post:y}=g,b=_.split(`,`);b[b.length-1]+=`{`+v+`}`;let x=parseCommaParts(y);return y.length&&(b[b.length-1]+=x.shift(),b.push.apply(b,x)),h.push.apply(h,b),h}function expand(e){return e?(e.slice(0,2)===`{}`&&(e=`\\{\\}`+e.slice(2)),expand_(escapeBraces(e),!0).map(unescapeBraces)):[]}function embrace(e){return`{`+e+`}`}function isPadded(e){return/^-?0\d/.test(e)}function lte(e,m){return e<=m}function gte(e,m){return e>=m}function expand_(m,h){let _=[],v=(0,balanced_match_1.balanced)(`{`,`}`,m);if(!v)return[m];let y=v.pre,b=v.post.length?expand_(v.post,!1):[``];if(/\$$/.test(v.pre))for(let e=0;e<b.length;e++){let m=y+`{`+v.body+`}`+b[e];_.push(m)}else{let e=/^-?\d+\.\.-?\d+(?:\.\.-?\d+)?$/.test(v.body),x=/^[a-zA-Z]\.\.[a-zA-Z](?:\.\.-?\d+)?$/.test(v.body),S=e||x,C=v.body.indexOf(`,`)>=0;if(!S&&!C)return v.post.match(/,(?!,).*\}/)?(m=v.pre+`{`+v.body+escClose+v.post,expand_(m)):[m];let w;if(S)w=v.body.split(/\.\./);else if(w=parseCommaParts(v.body),w.length===1&&w[0]!==void 0&&(w=expand_(w[0],!1).map(embrace),w.length===1))return b.map(e=>v.pre+w[0]+e);let T;if(S&&w[0]!==void 0&&w[1]!==void 0){let e=numeric(w[0]),m=numeric(w[1]),h=Math.max(w[0].length,w[1].length),g=w.length===3&&w[2]!==void 0?Math.abs(numeric(w[2])):1,_=lte;m<e&&(g*=-1,_=gte);let v=w.some(isPadded);T=[];for(let y=e;_(y,m);y+=g){let e;if(x)e=String.fromCharCode(y),e===`\\`&&(e=``);else if(e=String(y),v){let m=h-e.length;if(m>0){let h=Array(m+1).join(`0`);e=y<0?`-`+h+e.slice(1):h+e}}T.push(e)}}else{T=[];for(let e=0;e<w.length;e++)T.push.apply(T,expand_(w[e],!1))}for(let e=0;e<T.length;e++)for(let m=0;m<b.length;m++){let g=y+T[e]+b[m];(!h||S||g)&&_.push(g)}}return _}
1
+ "use strict";Object.defineProperty(exports,`__esModule`,{value:!0}),exports.expand=expand;const balanced_match_1=require(`@isaacs/balanced-match`),escSlash=`\0SLASH`+Math.random()+`\0`,escOpen=`\0OPEN`+Math.random()+`\0`,escClose=`\0CLOSE`+Math.random()+`\0`,escComma=`\0COMMA`+Math.random()+`\0`,escPeriod=`\0PERIOD`+Math.random()+`\0`,escSlashPattern=new RegExp(escSlash,`g`),escOpenPattern=new RegExp(escOpen,`g`),escClosePattern=new RegExp(escClose,`g`),escCommaPattern=new RegExp(escComma,`g`),escPeriodPattern=new RegExp(escPeriod,`g`),slashPattern=/\\\\/g,openPattern=/\\{/g,closePattern=/\\}/g,commaPattern=/\\,/g,periodPattern=/\\./g;function numeric(e){return isNaN(e)?e.charCodeAt(0):parseInt(e,10)}function escapeBraces(e){return e.replace(slashPattern,escSlash).replace(openPattern,escOpen).replace(closePattern,escClose).replace(commaPattern,escComma).replace(periodPattern,escPeriod)}function unescapeBraces(e){return e.replace(escSlashPattern,`\\`).replace(escOpenPattern,`{`).replace(escClosePattern,`}`).replace(escCommaPattern,`,`).replace(escPeriodPattern,`.`)}function parseCommaParts(t){if(!t)return[``];let n=[],r=(0,balanced_match_1.balanced)(`{`,`}`,t);if(!r)return t.split(`,`);let{pre:i,body:a,post:o}=r,s=i.split(`,`);s[s.length-1]+=`{`+a+`}`;let c=parseCommaParts(o);return o.length&&(s[s.length-1]+=c.shift(),s.push.apply(s,c)),n.push.apply(n,s),n}function expand(e){return e?(e.slice(0,2)===`{}`&&(e=`\\{\\}`+e.slice(2)),expand_(escapeBraces(e),!0).map(unescapeBraces)):[]}function embrace(e){return`{`+e+`}`}function isPadded(e){return/^-?0\d/.test(e)}function lte(e,t){return e<=t}function gte(e,t){return e>=t}function expand_(t,n){let i=[],a=(0,balanced_match_1.balanced)(`{`,`}`,t);if(!a)return[t];let o=a.pre,s=a.post.length?expand_(a.post,!1):[``];if(/\$$/.test(a.pre))for(let e=0;e<s.length;e++){let t=o+`{`+a.body+`}`+s[e];i.push(t)}else{let e=/^-?\d+\.\.-?\d+(?:\.\.-?\d+)?$/.test(a.body),c=/^[a-zA-Z]\.\.[a-zA-Z](?:\.\.-?\d+)?$/.test(a.body),l=e||c,u=a.body.indexOf(`,`)>=0;if(!l&&!u)return a.post.match(/,(?!,).*\}/)?(t=a.pre+`{`+a.body+escClose+a.post,expand_(t)):[t];let d;if(l)d=a.body.split(/\.\./);else if(d=parseCommaParts(a.body),d.length===1&&d[0]!==void 0&&(d=expand_(d[0],!1).map(embrace),d.length===1))return s.map(e=>a.pre+d[0]+e);let f;if(l&&d[0]!==void 0&&d[1]!==void 0){let e=numeric(d[0]),t=numeric(d[1]),n=Math.max(d[0].length,d[1].length),r=d.length===3&&d[2]!==void 0?Math.abs(numeric(d[2])):1,i=lte;t<e&&(r*=-1,i=gte);let a=d.some(isPadded);f=[];for(let o=e;i(o,t);o+=r){let e;if(c)e=String.fromCharCode(o),e===`\\`&&(e=``);else if(e=String(o),a){let t=n-e.length;if(t>0){let n=Array(t+1).join(`0`);e=o<0?`-`+n+e.slice(1):n+e}}f.push(e)}}else{f=[];for(let e=0;e<d.length;e++)f.push.apply(f,expand_(d[e],!1))}for(let e=0;e<f.length;e++)for(let t=0;t<s.length;t++){let r=o+f[e]+s[t];(!n||l||r)&&i.push(r)}}return i}
@@ -1 +1 @@
1
- "use strict";var __importDefault=this&&this.__importDefault||function(h){return h&&h.__esModule?h:{default:h}};Object.defineProperty(exports,`__esModule`,{value:!0}),exports.WriteStreamSync=exports.WriteStream=exports.ReadStreamSync=exports.ReadStream=void 0;const events_1=__importDefault(require(`events`)),fs_1=__importDefault(require(`fs`)),minipass_1=require(`minipass`),writev=fs_1.default.writev,_autoClose=Symbol(`_autoClose`),_close=Symbol(`_close`),_ended=Symbol(`_ended`),_fd=Symbol(`_fd`),_finished=Symbol(`_finished`),_flags=Symbol(`_flags`),_flush=Symbol(`_flush`),_handleChunk=Symbol(`_handleChunk`),_makeBuf=Symbol(`_makeBuf`),_mode=Symbol(`_mode`),_needDrain=Symbol(`_needDrain`),_onerror=Symbol(`_onerror`),_onopen=Symbol(`_onopen`),_onread=Symbol(`_onread`),_onwrite=Symbol(`_onwrite`),_open=Symbol(`_open`),_path=Symbol(`_path`),_pos=Symbol(`_pos`),_queue=Symbol(`_queue`),_read=Symbol(`_read`),_readSize=Symbol(`_readSize`),_reading=Symbol(`_reading`),_remain=Symbol(`_remain`),_size=Symbol(`_size`),_write=Symbol(`_write`),_writing=Symbol(`_writing`),_defaultFlag=Symbol(`_defaultFlag`),_errored=Symbol(`_errored`);class ReadStream extends minipass_1.Minipass{[_errored]=!1;[_fd];[_path];[_readSize];[_reading]=!1;[_size];[_remain];[_autoClose];constructor(h,F){if(F||={},super(F),this.readable=!0,this.writable=!1,typeof h!=`string`)throw TypeError(`path must be a string`);this[_errored]=!1,this[_fd]=typeof F.fd==`number`?F.fd:void 0,this[_path]=h,this[_readSize]=F.readSize||16*1024*1024,this[_reading]=!1,this[_size]=typeof F.size==`number`?F.size:1/0,this[_remain]=this[_size],this[_autoClose]=typeof F.autoClose==`boolean`?F.autoClose:!0,typeof this[_fd]==`number`?this[_read]():this[_open]()}get fd(){return this[_fd]}get path(){return this[_path]}write(){throw TypeError(`this is a readable stream`)}end(){throw TypeError(`this is a readable stream`)}[_open](){fs_1.default.open(this[_path],`r`,(h,F)=>this[_onopen](h,F))}[_onopen](h,F){h?this[_onerror](h):(this[_fd]=F,this.emit(`open`,F),this[_read]())}[_makeBuf](){return Buffer.allocUnsafe(Math.min(this[_readSize],this[_remain]))}[_read](){if(!this[_reading]){this[_reading]=!0;let h=this[_makeBuf]();if(h.length===0)return process.nextTick(()=>this[_onread](null,0,h));fs_1.default.read(this[_fd],h,0,h.length,null,(h,F,I)=>this[_onread](h,F,I))}}[_onread](h,F,I){this[_reading]=!1,h?this[_onerror](h):this[_handleChunk](F,I)&&this[_read]()}[_close](){if(this[_autoClose]&&typeof this[_fd]==`number`){let h=this[_fd];this[_fd]=void 0,fs_1.default.close(h,h=>h?this.emit(`error`,h):this.emit(`close`))}}[_onerror](h){this[_reading]=!0,this[_close](),this.emit(`error`,h)}[_handleChunk](h,F){let I=!1;return this[_remain]-=h,h>0&&(I=super.write(h<F.length?F.subarray(0,h):F)),(h===0||this[_remain]<=0)&&(I=!1,this[_close](),super.end()),I}emit(h,...F){switch(h){case`prefinish`:case`finish`:return!1;case`drain`:return typeof this[_fd]==`number`&&this[_read](),!1;case`error`:return this[_errored]?!1:(this[_errored]=!0,super.emit(h,...F));default:return super.emit(h,...F)}}}exports.ReadStream=ReadStream;class ReadStreamSync extends ReadStream{[_open](){let h=!0;try{this[_onopen](null,fs_1.default.openSync(this[_path],`r`)),h=!1}finally{h&&this[_close]()}}[_read](){let h=!0;try{if(!this[_reading]){this[_reading]=!0;do{let h=this[_makeBuf](),F=h.length===0?0:fs_1.default.readSync(this[_fd],h,0,h.length,null);if(!this[_handleChunk](F,h))break}while(!0);this[_reading]=!1}h=!1}finally{h&&this[_close]()}}[_close](){if(this[_autoClose]&&typeof this[_fd]==`number`){let h=this[_fd];this[_fd]=void 0,fs_1.default.closeSync(h),this.emit(`close`)}}}exports.ReadStreamSync=ReadStreamSync;class WriteStream extends events_1.default{readable=!1;writable=!0;[_errored]=!1;[_writing]=!1;[_ended]=!1;[_queue]=[];[_needDrain]=!1;[_path];[_mode];[_autoClose];[_fd];[_defaultFlag];[_flags];[_finished]=!1;[_pos];constructor(h,F){F||={},super(F),this[_path]=h,this[_fd]=typeof F.fd==`number`?F.fd:void 0,this[_mode]=F.mode===void 0?438:F.mode,this[_pos]=typeof F.start==`number`?F.start:void 0,this[_autoClose]=typeof F.autoClose==`boolean`?F.autoClose:!0;let I=this[_pos]===void 0?`w`:`r+`;this[_defaultFlag]=F.flags===void 0,this[_flags]=F.flags===void 0?I:F.flags,this[_fd]===void 0&&this[_open]()}emit(h,...F){if(h===`error`){if(this[_errored])return!1;this[_errored]=!0}return super.emit(h,...F)}get fd(){return this[_fd]}get path(){return this[_path]}[_onerror](h){this[_close](),this[_writing]=!0,this.emit(`error`,h)}[_open](){fs_1.default.open(this[_path],this[_flags],this[_mode],(h,F)=>this[_onopen](h,F))}[_onopen](h,F){this[_defaultFlag]&&this[_flags]===`r+`&&h&&h.code===`ENOENT`?(this[_flags]=`w`,this[_open]()):h?this[_onerror](h):(this[_fd]=F,this.emit(`open`,F),this[_writing]||this[_flush]())}end(h,F){return h&&this.write(h,F),this[_ended]=!0,!this[_writing]&&!this[_queue].length&&typeof this[_fd]==`number`&&this[_onwrite](null,0),this}write(h,F){return typeof h==`string`&&(h=Buffer.from(h,F)),this[_ended]?(this.emit(`error`,Error(`write() after end()`)),!1):this[_fd]===void 0||this[_writing]||this[_queue].length?(this[_queue].push(h),this[_needDrain]=!0,!1):(this[_writing]=!0,this[_write](h),!0)}[_write](h){fs_1.default.write(this[_fd],h,0,h.length,this[_pos],(h,F)=>this[_onwrite](h,F))}[_onwrite](h,F){h?this[_onerror](h):(this[_pos]!==void 0&&typeof F==`number`&&(this[_pos]+=F),this[_queue].length?this[_flush]():(this[_writing]=!1,this[_ended]&&!this[_finished]?(this[_finished]=!0,this[_close](),this.emit(`finish`)):this[_needDrain]&&(this[_needDrain]=!1,this.emit(`drain`))))}[_flush](){if(this[_queue].length===0)this[_ended]&&this[_onwrite](null,0);else if(this[_queue].length===1)this[_write](this[_queue].pop());else{let h=this[_queue];this[_queue]=[],writev(this[_fd],h,this[_pos],(h,F)=>this[_onwrite](h,F))}}[_close](){if(this[_autoClose]&&typeof this[_fd]==`number`){let h=this[_fd];this[_fd]=void 0,fs_1.default.close(h,h=>h?this.emit(`error`,h):this.emit(`close`))}}}exports.WriteStream=WriteStream;class WriteStreamSync extends WriteStream{[_open](){let h;if(this[_defaultFlag]&&this[_flags]===`r+`)try{h=fs_1.default.openSync(this[_path],this[_flags],this[_mode])}catch(h){if(h?.code===`ENOENT`)return this[_flags]=`w`,this[_open]();throw h}else h=fs_1.default.openSync(this[_path],this[_flags],this[_mode]);this[_onopen](null,h)}[_close](){if(this[_autoClose]&&typeof this[_fd]==`number`){let h=this[_fd];this[_fd]=void 0,fs_1.default.closeSync(h),this.emit(`close`)}}[_write](h){let F=!0;try{this[_onwrite](null,fs_1.default.writeSync(this[_fd],h,0,h.length,this[_pos])),F=!1}finally{if(F)try{this[_close]()}catch{}}}}exports.WriteStreamSync=WriteStreamSync;
1
+ "use strict";var __importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,`__esModule`,{value:!0}),exports.WriteStreamSync=exports.WriteStream=exports.ReadStreamSync=exports.ReadStream=void 0;const events_1=__importDefault(require(`events`)),fs_1=__importDefault(require(`fs`)),minipass_1=require(`minipass`),writev=fs_1.default.writev,_autoClose=Symbol(`_autoClose`),_close=Symbol(`_close`),_ended=Symbol(`_ended`),_fd=Symbol(`_fd`),_finished=Symbol(`_finished`),_flags=Symbol(`_flags`),_flush=Symbol(`_flush`),_handleChunk=Symbol(`_handleChunk`),_makeBuf=Symbol(`_makeBuf`),_mode=Symbol(`_mode`),_needDrain=Symbol(`_needDrain`),_onerror=Symbol(`_onerror`),_onopen=Symbol(`_onopen`),_onread=Symbol(`_onread`),_onwrite=Symbol(`_onwrite`),_open=Symbol(`_open`),_path=Symbol(`_path`),_pos=Symbol(`_pos`),_queue=Symbol(`_queue`),_read=Symbol(`_read`),_readSize=Symbol(`_readSize`),_reading=Symbol(`_reading`),_remain=Symbol(`_remain`),_size=Symbol(`_size`),_write=Symbol(`_write`),_writing=Symbol(`_writing`),_defaultFlag=Symbol(`_defaultFlag`),_errored=Symbol(`_errored`);class ReadStream extends minipass_1.Minipass{[_errored]=!1;[_fd];[_path];[_readSize];[_reading]=!1;[_size];[_remain];[_autoClose];constructor(e,t){if(t||={},super(t),this.readable=!0,this.writable=!1,typeof e!=`string`)throw TypeError(`path must be a string`);this[_errored]=!1,this[_fd]=typeof t.fd==`number`?t.fd:void 0,this[_path]=e,this[_readSize]=t.readSize||16*1024*1024,this[_reading]=!1,this[_size]=typeof t.size==`number`?t.size:1/0,this[_remain]=this[_size],this[_autoClose]=typeof t.autoClose==`boolean`?t.autoClose:!0,typeof this[_fd]==`number`?this[_read]():this[_open]()}get fd(){return this[_fd]}get path(){return this[_path]}write(){throw TypeError(`this is a readable stream`)}end(){throw TypeError(`this is a readable stream`)}[_open](){fs_1.default.open(this[_path],`r`,(e,t)=>this[_onopen](e,t))}[_onopen](e,t){e?this[_onerror](e):(this[_fd]=t,this.emit(`open`,t),this[_read]())}[_makeBuf](){return Buffer.allocUnsafe(Math.min(this[_readSize],this[_remain]))}[_read](){if(!this[_reading]){this[_reading]=!0;let e=this[_makeBuf]();if(e.length===0)return process.nextTick(()=>this[_onread](null,0,e));fs_1.default.read(this[_fd],e,0,e.length,null,(e,t,n)=>this[_onread](e,t,n))}}[_onread](e,t,n){this[_reading]=!1,e?this[_onerror](e):this[_handleChunk](t,n)&&this[_read]()}[_close](){if(this[_autoClose]&&typeof this[_fd]==`number`){let e=this[_fd];this[_fd]=void 0,fs_1.default.close(e,e=>e?this.emit(`error`,e):this.emit(`close`))}}[_onerror](e){this[_reading]=!0,this[_close](),this.emit(`error`,e)}[_handleChunk](e,t){let n=!1;return this[_remain]-=e,e>0&&(n=super.write(e<t.length?t.subarray(0,e):t)),(e===0||this[_remain]<=0)&&(n=!1,this[_close](),super.end()),n}emit(e,...t){switch(e){case`prefinish`:case`finish`:return!1;case`drain`:return typeof this[_fd]==`number`&&this[_read](),!1;case`error`:return this[_errored]?!1:(this[_errored]=!0,super.emit(e,...t));default:return super.emit(e,...t)}}}exports.ReadStream=ReadStream;class ReadStreamSync extends ReadStream{[_open](){let e=!0;try{this[_onopen](null,fs_1.default.openSync(this[_path],`r`)),e=!1}finally{e&&this[_close]()}}[_read](){let e=!0;try{if(!this[_reading]){this[_reading]=!0;do{let e=this[_makeBuf](),t=e.length===0?0:fs_1.default.readSync(this[_fd],e,0,e.length,null);if(!this[_handleChunk](t,e))break}while(!0);this[_reading]=!1}e=!1}finally{e&&this[_close]()}}[_close](){if(this[_autoClose]&&typeof this[_fd]==`number`){let e=this[_fd];this[_fd]=void 0,fs_1.default.closeSync(e),this.emit(`close`)}}}exports.ReadStreamSync=ReadStreamSync;class WriteStream extends events_1.default{readable=!1;writable=!0;[_errored]=!1;[_writing]=!1;[_ended]=!1;[_queue]=[];[_needDrain]=!1;[_path];[_mode];[_autoClose];[_fd];[_defaultFlag];[_flags];[_finished]=!1;[_pos];constructor(e,t){t||={},super(t),this[_path]=e,this[_fd]=typeof t.fd==`number`?t.fd:void 0,this[_mode]=t.mode===void 0?438:t.mode,this[_pos]=typeof t.start==`number`?t.start:void 0,this[_autoClose]=typeof t.autoClose==`boolean`?t.autoClose:!0;let n=this[_pos]===void 0?`w`:`r+`;this[_defaultFlag]=t.flags===void 0,this[_flags]=t.flags===void 0?n:t.flags,this[_fd]===void 0&&this[_open]()}emit(e,...t){if(e===`error`){if(this[_errored])return!1;this[_errored]=!0}return super.emit(e,...t)}get fd(){return this[_fd]}get path(){return this[_path]}[_onerror](e){this[_close](),this[_writing]=!0,this.emit(`error`,e)}[_open](){fs_1.default.open(this[_path],this[_flags],this[_mode],(e,t)=>this[_onopen](e,t))}[_onopen](e,t){this[_defaultFlag]&&this[_flags]===`r+`&&e&&e.code===`ENOENT`?(this[_flags]=`w`,this[_open]()):e?this[_onerror](e):(this[_fd]=t,this.emit(`open`,t),this[_writing]||this[_flush]())}end(e,t){return e&&this.write(e,t),this[_ended]=!0,!this[_writing]&&!this[_queue].length&&typeof this[_fd]==`number`&&this[_onwrite](null,0),this}write(e,t){return typeof e==`string`&&(e=Buffer.from(e,t)),this[_ended]?(this.emit(`error`,Error(`write() after end()`)),!1):this[_fd]===void 0||this[_writing]||this[_queue].length?(this[_queue].push(e),this[_needDrain]=!0,!1):(this[_writing]=!0,this[_write](e),!0)}[_write](e){fs_1.default.write(this[_fd],e,0,e.length,this[_pos],(e,t)=>this[_onwrite](e,t))}[_onwrite](e,t){e?this[_onerror](e):(this[_pos]!==void 0&&typeof t==`number`&&(this[_pos]+=t),this[_queue].length?this[_flush]():(this[_writing]=!1,this[_ended]&&!this[_finished]?(this[_finished]=!0,this[_close](),this.emit(`finish`)):this[_needDrain]&&(this[_needDrain]=!1,this.emit(`drain`))))}[_flush](){if(this[_queue].length===0)this[_ended]&&this[_onwrite](null,0);else if(this[_queue].length===1)this[_write](this[_queue].pop());else{let e=this[_queue];this[_queue]=[],writev(this[_fd],e,this[_pos],(e,t)=>this[_onwrite](e,t))}}[_close](){if(this[_autoClose]&&typeof this[_fd]==`number`){let e=this[_fd];this[_fd]=void 0,fs_1.default.close(e,e=>e?this.emit(`error`,e):this.emit(`close`))}}}exports.WriteStream=WriteStream;class WriteStreamSync extends WriteStream{[_open](){let e;if(this[_defaultFlag]&&this[_flags]===`r+`)try{e=fs_1.default.openSync(this[_path],this[_flags],this[_mode])}catch(e){if(e?.code===`ENOENT`)return this[_flags]=`w`,this[_open]();throw e}else e=fs_1.default.openSync(this[_path],this[_flags],this[_mode]);this[_onopen](null,e)}[_close](){if(this[_autoClose]&&typeof this[_fd]==`number`){let e=this[_fd];this[_fd]=void 0,fs_1.default.closeSync(e),this.emit(`close`)}}[_write](e){let t=!0;try{this[_onwrite](null,fs_1.default.writeSync(this[_fd],e,0,e.length,this[_pos])),t=!1}finally{if(t)try{this[_close]()}catch{}}}}exports.WriteStreamSync=WriteStreamSync;
@@ -1 +1 @@
1
- "use strict";module.exports=exports=clean,exports.usage=`Removes the entire folder containing the compiled .node module`;const fs=require(`fs`),exists=fs.exists||require(`path`).exists,versioning=require(`./util/versioning.js`),napi=require(`./util/napi.js`),path=require(`path`);function clean(a,o,s){let c=a.package_json,l=napi.get_napi_build_version_from_command_args(o),u=versioning.evaluate(c,a.opts,l).module_path;if(u){if(path.normalize(u)===path.normalize(process.cwd()))return s(Error(`module_path is not set, refusing to delete`));exists(u,i=>i?(a.opts.silent_clean||console.log(`[`+c.name+`] Removing "%s"`,u),fs.rm(u,{recursive:!0,force:!0},s)):s())}else return s(Error(`module_path is empty, refusing to delete`))}
1
+ "use strict";module.exports=exports=clean,exports.usage=`Removes the entire folder containing the compiled .node module`;const fs=require(`fs`),exists=fs.exists||require(`path`).exists,versioning=require(`./util/versioning.js`),napi=require(`./util/napi.js`),path=require(`path`);function clean(t,n,r){let i=t.package_json,a=napi.get_napi_build_version_from_command_args(n),o=versioning.evaluate(i,t.opts,a).module_path;if(!o)return r(Error(`module_path is empty, refusing to delete`));if(path.normalize(o)===path.normalize(process.cwd()))return r(Error(`module_path is not set, refusing to delete`));exists(o,e=>e?(t.opts.silent_clean||console.log(`[`+i.name+`] Removing "%s"`,o),fs.rm(o,{recursive:!0,force:!0},r)):r())}
@@ -1 +1 @@
1
- "use strict";module.exports=exports=install,exports.usage=`Attempts to install pre-built binary for module`;const fs=require(`fs`),path=require(`path`),log=require(`./util/log.js`),existsAsync=fs.exists||path.exists,versioning=require(`./util/versioning.js`),napi=require(`./util/napi.js`),s3_setup=require(`./util/s3_setup.js`),url=require(`url`),fetch=require(`node-fetch`),tar=require(`tar`);let npgVersion=`unknown`;try{let i=fs.readFileSync(path.join(__dirname,`..`,`package.json`),`utf8`);npgVersion=JSON.parse(i).version}catch{}function place_binary_authenticated(e,r,a){if(log.info(`install`,`Attempting authenticated S3 download`),!process.env.AWS_ACCESS_KEY_ID||!process.env.AWS_SECRET_ACCESS_KEY){let e=Error(`Binary is private but AWS credentials not found. Please configure AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY environment variables, or use --fallback-to-build to compile from source.`);return e.statusCode=403,a(e)}try{let o=s3_setup.detect(e),s=s3_setup.get_s3(o),u=url.resolve(o.prefix,e.package_name);log.info(`install`,`Downloading from S3:`,o.bucket,u);let d={Bucket:o.bucket,Key:u};s.getObject(d,(e,o)=>{if(e)return log.error(`install`,`Authenticated S3 download failed:`,e.message),a(e);log.info(`install`,`Authenticated download successful, extracting...`);let{Readable:s}=require(`stream`),c=s.from(o.Body),l=0;c.pipe(extract(r,e=>{l+=1,log.info(`install`,`unpacking ${e.path}`)})).on(`error`,e=>{a(e)}).on(`close`,()=>{log.info(`install`,`extracted file count: ${l}`),a()})})}catch(e){if(e.code===`MODULE_NOT_FOUND`&&e.message.includes(`aws-sdk`)){let e=Error(`Binary is private and requires aws-sdk for authenticated download. Please run: npm install aws-sdk`);return e.statusCode=403,a(e)}log.error(`install`,`Error setting up authenticated download:`,e.message),a(e)}}function place_binary(r,a,o,s){log.log(`GET`,r);let c=process.env.npm_config_user_agent||`node `+process.version,l=r.replace(`+`,`%2B`),d={uri:l,headers:{"User-Agent":`node-pre-gyp (v`+npgVersion+`, `+c+`)`},follow_max:10};if(o.cafile)try{d.ca=fs.readFileSync(o.cafile)}catch(e){return s(e)}else o.ca&&(d.ca=o.ca);let m=o.proxy||process.env.http_proxy||process.env.HTTP_PROXY||process.env.npm_config_proxy,g;if(m){let{HttpsProxyAgent:e}=require(`https-proxy-agent`);g=new e(m),log.log(`download`,`proxy agent configured using: "${m}"`)}fetch(l,{agent:g}).then(e=>{if(!e.ok){if(e.status===403)return log.info(`install`,`Received 403 Forbidden - attempting authenticated download`),place_binary_authenticated(o,a,s),{authenticated:!0};throw Error(`response status ${e.status} ${e.statusText} on ${l}`)}let r=e.body;return new Promise((e,o)=>{let s=0;r.pipe(extract(a,e=>{s+=1,log.info(`install`,`unpacking ${e.path}`)})).on(`error`,e=>{o(e)}),r.on(`end`,()=>{e(`extracted file count: ${s}`)}),r.on(`error`,e=>{o(e)})})}).then(e=>{e&&e.authenticated||(log.info(e),s())}).catch(e=>{log.error(`install ${e.message}`),s(e)})}function extract(e,r){return tar.extract({cwd:e,strip:1,onentry:r})}function extract_from_local(r,a,o){if(!fs.existsSync(r))return o(Error(`Cannot find file `+r));log.info(`Found local file to extract from `+r);let s=0;function c(e){s+=1,log.info(`install`,`unpacking `+e.path)}function l(e){if(e)return o(e);if(s===0)return o(Error(`There was a fatal problem while extracting the tarball`));log.info(`tarball`,`done parsing tarball`),o()}fs.createReadStream(r).pipe(extract(a,c)).on(`close`,l).on(`error`,l)}function do_build(e,r,i){let a=[`rebuild`].concat(r);e.todo.push({name:`build`,args:a}),process.nextTick(i)}function print_fallback_error(e,r,a){let o=` (falling back to source compile with node-gyp)`,s=``;e.statusCode===void 0?(s=`Pre-built binaries not installable for `+a.name+`@`+a.version,s+=` and `+r.runtime+`@`+(r.target||process.versions.node)+` (`+r.node_abi+` ABI, `+r.libc+`)`,s+=o,log.warn(s),log.warn(`Hit error `+e.message)):(s=`Pre-built binaries not found for `+a.name+`@`+a.version,s+=` and `+r.runtime+`@`+(r.target||process.versions.node)+` (`+r.node_abi+` ABI, `+r.libc+`)`,s+=o,log.warn(`Tried to download(`+e.statusCode+`): `+r.hosted_tarball),log.warn(s),log.error(e.message))}function install(c,l,u){let d=c.package_json,f=napi.get_napi_build_version_from_command_args(l),p=c.opts[`build-from-source`]||c.opts.build_from_source,h=c.opts[`update-binary`]||c.opts.update_binary;if(p===d.name||p===!0||p===`true`)return log.info(`build`,`requesting source compile`),do_build(c,l,u);{let s=c.opts[`fallback-to-build`]||c.opts.fallback_to_build,p=s===d.name||s===!0||s===`true`;if(process.env.npm_config_argv){let e=JSON.parse(process.env.npm_config_argv).cooked,r=e.indexOf(`--fallback-to-build`);r>-1&&e.length>r&&e[r+1]===`false`&&(p=!1,log.info(`install`,`Build fallback disabled via npm flag: --fallback-to-build=false`))}let _;try{_=versioning.evaluate(d,c.opts,f)}catch(e){return u(e)}_.ca=c.opts.ca,_.cafile=c.opts.cafile;let v=_.hosted_tarball,y=_.module_path,b=path.join(y,_.module_name+`.node`);existsAsync(b,r=>{if(!h){if(r)return console.log(`[`+d.name+`] Success: "`+b+`" already installed`),console.log(`Pass --update-binary to reinstall or --build-from-source to recompile`),u();log.info(`check`,`checked for "`+b+`" (not found)`)}fs.promises.mkdir(y,{recursive:!0}).then(()=>{let e=v.startsWith(`file://`)&&v.slice(7);e?extract_from_local(e,y,a):place_binary(v,y,_,a)}).catch(e=>{a(e)});function a(e){return e&&p?(print_fallback_error(e,_,d),do_build(c,l,u)):e?u(e):(console.log(`[`+d.name+`] Success: "`+b+`" is installed via remote`),u())}})}}process.env.node_pre_gyp_mock_s3&&require(`./mock/http`)();
1
+ "use strict";module.exports=exports=install,exports.usage=`Attempts to install pre-built binary for module`;const fs=require(`fs`),path=require(`path`),log=require(`./util/log.js`),existsAsync=fs.exists||path.exists,versioning=require(`./util/versioning.js`),napi=require(`./util/napi.js`),s3_setup=require(`./util/s3_setup.js`),url=require(`url`),fetch=require(`node-fetch`),tar=require(`tar`);let npgVersion=`unknown`;try{let n=fs.readFileSync(path.join(__dirname,`..`,`package.json`),`utf8`);npgVersion=JSON.parse(n).version}catch{}function place_binary_authenticated(e,t,r){if(log.info(`install`,`Attempting authenticated S3 download`),!process.env.AWS_ACCESS_KEY_ID||!process.env.AWS_SECRET_ACCESS_KEY){let e=Error(`Binary is private but AWS credentials not found. Please configure AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY environment variables, or use --fallback-to-build to compile from source.`);return e.statusCode=403,r(e)}try{let i=s3_setup.detect(e),a=s3_setup.get_s3(i),c=url.resolve(i.prefix,e.package_name);log.info(`install`,`Downloading from S3:`,i.bucket,c);let l={Bucket:i.bucket,Key:c};a.getObject(l,(e,i)=>{if(e)return log.error(`install`,`Authenticated S3 download failed:`,e.message),r(e);log.info(`install`,`Authenticated download successful, extracting...`);let{Readable:a}=require(`stream`),o=a.from(i.Body),s=0;o.pipe(extract(t,e=>{s+=1,log.info(`install`,`unpacking ${e.path}`)})).on(`error`,e=>{r(e)}).on(`close`,()=>{log.info(`install`,`extracted file count: ${s}`),r()})})}catch(e){if(e.code===`MODULE_NOT_FOUND`&&e.message.includes(`aws-sdk`)){let e=Error(`Binary is private and requires aws-sdk for authenticated download. Please run: npm install aws-sdk`);return e.statusCode=403,r(e)}log.error(`install`,`Error setting up authenticated download:`,e.message),r(e)}}function place_binary(t,r,i,a){log.log(`GET`,t);let o=process.env.npm_config_user_agent||`node `+process.version,s=t.replace(`+`,`%2B`),l={uri:s,headers:{"User-Agent":`node-pre-gyp (v`+npgVersion+`, `+o+`)`},follow_max:10};if(i.cafile)try{l.ca=fs.readFileSync(i.cafile)}catch(e){return a(e)}else i.ca&&(l.ca=i.ca);let f=i.proxy||process.env.http_proxy||process.env.HTTP_PROXY||process.env.npm_config_proxy,m;if(f){let{HttpsProxyAgent:e}=require(`https-proxy-agent`);m=new e(f),log.log(`download`,`proxy agent configured using: "${f}"`)}fetch(s,{agent:m}).then(e=>{if(!e.ok){if(e.status===403)return log.info(`install`,`Received 403 Forbidden - attempting authenticated download`),place_binary_authenticated(i,r,a),{authenticated:!0};throw Error(`response status ${e.status} ${e.statusText} on ${s}`)}let t=e.body;return new Promise((e,i)=>{let a=0;t.pipe(extract(r,e=>{a+=1,log.info(`install`,`unpacking ${e.path}`)})).on(`error`,e=>{i(e)}),t.on(`end`,()=>{e(`extracted file count: ${a}`)}),t.on(`error`,e=>{i(e)})})}).then(e=>{e&&e.authenticated||(log.info(e),a())}).catch(e=>{log.error(`install ${e.message}`),a(e)})}function extract(e,t){return tar.extract({cwd:e,strip:1,onentry:t})}function extract_from_local(t,r,i){if(!fs.existsSync(t))return i(Error(`Cannot find file `+t));log.info(`Found local file to extract from `+t);let a=0;function o(e){a+=1,log.info(`install`,`unpacking `+e.path)}function s(e){if(e)return i(e);if(a===0)return i(Error(`There was a fatal problem while extracting the tarball`));log.info(`tarball`,`done parsing tarball`),i()}fs.createReadStream(t).pipe(extract(r,o)).on(`close`,s).on(`error`,s)}function do_build(e,t,n){let r=[`rebuild`].concat(t);e.todo.push({name:`build`,args:r}),process.nextTick(n)}function print_fallback_error(e,t,r){let i=` (falling back to source compile with node-gyp)`,a=``;e.statusCode===void 0?(a=`Pre-built binaries not installable for `+r.name+`@`+r.version,a+=` and `+t.runtime+`@`+(t.target||process.versions.node)+` (`+t.node_abi+` ABI, `+t.libc+`)`,a+=i,log.warn(a),log.warn(`Hit error `+e.message)):(a=`Pre-built binaries not found for `+r.name+`@`+r.version,a+=` and `+t.runtime+`@`+(t.target||process.versions.node)+` (`+t.node_abi+` ABI, `+t.libc+`)`,a+=i,log.warn(`Tried to download(`+e.statusCode+`): `+t.hosted_tarball),log.warn(a),log.error(e.message))}function install(o,s,c){let l=o.package_json,u=napi.get_napi_build_version_from_command_args(s),d=o.opts[`build-from-source`]||o.opts.build_from_source,p=o.opts[`update-binary`]||o.opts.update_binary;if(d===l.name||d===!0||d===`true`)return log.info(`build`,`requesting source compile`),do_build(o,s,c);{let a=o.opts[`fallback-to-build`]||o.opts.fallback_to_build,d=a===l.name||a===!0||a===`true`;if(process.env.npm_config_argv){let e=JSON.parse(process.env.npm_config_argv).cooked,t=e.indexOf(`--fallback-to-build`);t>-1&&e.length>t&&e[t+1]===`false`&&(d=!1,log.info(`install`,`Build fallback disabled via npm flag: --fallback-to-build=false`))}let h;try{h=versioning.evaluate(l,o.opts,u)}catch(e){return c(e)}h.ca=o.opts.ca,h.cafile=o.opts.cafile;let g=h.hosted_tarball,_=h.module_path,v=path.join(_,h.module_name+`.node`);existsAsync(v,t=>{if(!p){if(t)return console.log(`[`+l.name+`] Success: "`+v+`" already installed`),console.log(`Pass --update-binary to reinstall or --build-from-source to recompile`),c();log.info(`check`,`checked for "`+v+`" (not found)`)}fs.promises.mkdir(_,{recursive:!0}).then(()=>{let e=g.startsWith(`file://`)&&g.slice(7);e?extract_from_local(e,_,r):place_binary(g,_,h,r)}).catch(e=>{r(e)});function r(e){return e&&d?(print_fallback_error(e,h,l),do_build(o,s,c)):e?c(e):(console.log(`[`+l.name+`] Success: "`+v+`" is installed via remote`),c())}})}}process.env.node_pre_gyp_mock_s3&&require(`./mock/http`)();
@@ -1 +1 @@
1
- "use strict";process.title=`node-pre-gyp`;const node_pre_gyp=require(`../`),log=require(`./util/log.js`),prog=new node_pre_gyp.Run({argv:process.argv});let completed=!1;prog.todo.length===0&&(~process.argv.indexOf(`-v`)||~process.argv.indexOf(`--version`)?(console.log(`v%s`,prog.version),process.exit(0)):(~process.argv.indexOf(`-h`)||~process.argv.indexOf(`--help`))&&(console.log(`%s`,prog.usage()),process.exit(0)),console.log(`%s`,prog.usage()),process.exit(1)),prog.opts&&Object.hasOwnProperty.call(prog,`color`)&&!prog.opts.color&&log.disableColor(),log.info(`it worked if it ends with`,`ok`),log.verbose(`cli`,process.argv),log.info(`using ${process.title}@${prog.version}`),log.info(`using node@${process.versions.node} | ${process.platform} | ${process.arch} `);const dir=prog.opts.directory;if(dir){let e=require(`fs`);try{e.statSync(dir).isDirectory()?(log.info(`chdir`,dir),process.chdir(dir)):log.warn(`chdir`,dir+` is not a directory`)}catch(e){e.code===`ENOENT`?log.warn(`chdir`,dir+` is not a directory`):log.warn(`chdir`,`error during chdir() "${e.message}"`)}}function run(){let e=prog.todo.shift();if(!e){completed=!0,log.info(`ok`);return}prog.setBinaryHostProperty(e.name)&&[`install`,`publish`,`unpublish`,`info`].indexOf(e.name)>=0&&log.info(`using binary.host: `+prog.package_json.binary.host),prog.commands[e.name](e.args,function(a){if(a)return log.error(e.name+` error`),log.error(`stack`,a.stack),errorMessage(),log.error(`not ok`),console.log(a.message),process.exit(1);let o=[].slice.call(arguments,1);o.length&&console.log.apply(console,o),process.nextTick(run)})}process.on(`exit`,e=>{!completed&&!e&&(log.error(`Completion callback never invoked!`),errorMessage(),process.exit(6))}),process.on(`uncaughtException`,e=>{log.error(`UNCAUGHT EXCEPTION`),log.error(`stack`,e.stack),errorMessage(),process.exit(7)});function errorMessage(){let e=require(`os`);log.error(`System`,e.type()+` `+e.release()),log.error(`command`,process.argv.map(JSON.stringify).join(` `)),log.error(`cwd`,process.cwd()),log.error(`node -v`,process.version),log.error(process.title+` -v`,`v`+prog.package.version)}run();
1
+ "use strict";process.title=`node-pre-gyp`;const node_pre_gyp=require(`../`),log=require(`./util/log.js`),prog=new node_pre_gyp.Run({argv:process.argv});let completed=!1;prog.todo.length===0&&(~process.argv.indexOf(`-v`)||~process.argv.indexOf(`--version`)?(console.log(`v%s`,prog.version),process.exit(0)):(~process.argv.indexOf(`-h`)||~process.argv.indexOf(`--help`))&&(console.log(`%s`,prog.usage()),process.exit(0)),console.log(`%s`,prog.usage()),process.exit(1)),prog.opts&&Object.hasOwnProperty.call(prog,`color`)&&!prog.opts.color&&log.disableColor(),log.info(`it worked if it ends with`,`ok`),log.verbose(`cli`,process.argv),log.info(`using ${process.title}@${prog.version}`),log.info(`using node@${process.versions.node} | ${process.platform} | ${process.arch} `);const dir=prog.opts.directory;if(dir){let e=require(`fs`);try{e.statSync(dir).isDirectory()?(log.info(`chdir`,dir),process.chdir(dir)):log.warn(`chdir`,dir+` is not a directory`)}catch(e){e.code===`ENOENT`?log.warn(`chdir`,dir+` is not a directory`):log.warn(`chdir`,`error during chdir() "${e.message}"`)}}function run(){let e=prog.todo.shift();if(!e){completed=!0,log.info(`ok`);return}prog.setBinaryHostProperty(e.name)&&[`install`,`publish`,`unpublish`,`info`].indexOf(e.name)>=0&&log.info(`using binary.host: `+prog.package_json.binary.host),prog.commands[e.name](e.args,function(t){if(t)return log.error(e.name+` error`),log.error(`stack`,t.stack),errorMessage(),log.error(`not ok`),console.log(t.message),process.exit(1);let n=[].slice.call(arguments,1);n.length&&console.log.apply(console,n),process.nextTick(run)})}process.on(`exit`,e=>{!completed&&!e&&(log.error(`Completion callback never invoked!`),errorMessage(),process.exit(6))}),process.on(`uncaughtException`,e=>{log.error(`UNCAUGHT EXCEPTION`),log.error(`stack`,e.stack),errorMessage(),process.exit(7)});function errorMessage(){let e=require(`os`);log.error(`System`,e.type()+` `+e.release()),log.error(`command`,process.argv.map(JSON.stringify).join(` `)),log.error(`cwd`,process.cwd()),log.error(`node -v`,process.version),log.error(process.title+` -v`,`v`+prog.package.version)}run();
@@ -1,2 +1,2 @@
1
- "use strict";module.exports=exports=http_mock;const fs=require(`fs`),path=require(`path`),nock=require(`nock`),os=require(`os`),log=require(`../util/log.js`);log.heading=`node-pre-gyp`;function http_mock(){log.warn(`mocking http requests to s3`);let a=`${os.tmpdir()}/mock`;nock(RegExp(`([a-z0-9]+[.])*s3[.]us-east-1[.]amazonaws[.]com`)).persist().get(()=>!0).reply(n=>{let r=`npg-mock-bucket`,i=n.indexOf(r)===-1?`${a}/${r}`:a,o=path.join(i,n.replace(RegExp(`%2B`,`g`),`+`));try{fs.accessSync(o,fs.constants.R_OK)}catch{return[404,`not found
2
- `]}return[200,fs.createReadStream(o)]})}
1
+ "use strict";module.exports=exports=http_mock;const fs=require(`fs`),path=require(`path`),nock=require(`nock`),os=require(`os`),log=require(`../util/log.js`);log.heading=`node-pre-gyp`;function http_mock(){log.warn(`mocking http requests to s3`);let r=`${os.tmpdir()}/mock`;nock(RegExp(`([a-z0-9]+[.])*s3[.]us-east-1[.]amazonaws[.]com`)).persist().get(()=>!0).reply(e=>{let t=`npg-mock-bucket`,n=e.indexOf(t)===-1?`${r}/${t}`:r,i=path.join(n,e.replace(RegExp(`%2B`,`g`),`+`));try{fs.accessSync(i,fs.constants.R_OK)}catch{return[404,`not found
2
+ `]}return[200,fs.createReadStream(i)]})}
@@ -1,3 +1,3 @@
1
- "use strict";module.exports=exports;const fs=require(`fs`),path=require(`path`),nopt=require(`nopt`),log=require(`./util/log.js`),napi=require(`./util/napi.js`),EE=require(`events`).EventEmitter,inherits=require(`util`).inherits,cli_commands=[`clean`,`install`,`reinstall`,`build`,`rebuild`,`package`,`testpackage`,`publish`,`unpublish`,`info`,`testbinary`,`reveal`,`configure`],aliases={};Object.defineProperty(exports,`find`,{get:function(){return require(`./pre-binding`).find},enumerable:!0});function Run({package_json_path:e=`./package.json`,argv:r}){this.package_json_path=e,this.commands={};let i=this;cli_commands.forEach(e=>{i.commands[e]=function(r,o){return log.verbose(`command`,e,r),require(`./`+e)(i,r,o)}}),this.parseArgv(r),this.binaryHostSet=!1}inherits(Run,EE),exports.Run=Run;const proto=Run.prototype;proto.package=require(`../package.json`),proto.configDefs={help:Boolean,arch:String,debug:Boolean,directory:String,proxy:String,loglevel:String,acl:String},proto.shorthands={release:`--no-debug`,C:`--directory`,debug:`--debug`,j:`--jobs`,silent:`--loglevel=silent`,silly:`--loglevel=silly`,verbose:`--loglevel=verbose`},proto.aliases=aliases,proto.parseArgv=function(s){this.opts=nopt(this.configDefs,this.shorthands,s),this.argv=this.opts.argv.remain.slice();let c=this.todo=[];s=this.argv.map(e=>(e in this.aliases&&(e=this.aliases[e]),e)),s.slice().forEach(e=>{if(e in this.commands){let r=s.splice(0,s.indexOf(e));s.shift(),c.length>0&&(c[c.length-1].args=r),c.push({name:e,args:[]})}}),c.length>0&&(c[c.length-1].args=s.splice(0));let l=this.package_json_path;this.opts.directory&&(l=path.join(this.opts.directory,l)),this.package_json=JSON.parse(fs.readFileSync(l)),this.todo=napi.expand_commands(this.package_json,this.opts,c);let u=`npm_config_`;Object.keys(process.env).forEach(e=>{if(e.indexOf(u)!==0)return;let r=process.env[e];e===u+`loglevel`?log.level=r:(e=e.substring(11),e===`argv`&&this.opts.argv&&this.opts.argv.remain&&this.opts.argv.remain.length||(this.opts[e]=r))}),this.opts.loglevel&&(log.level=this.opts.loglevel),log.resume()},proto.setBinaryHostProperty=function(e){if(this.binaryHostSet)return this.package_json.binary.host;let r=this.package_json;if(!r||!r.binary||r.binary.host||!r.binary.staging_host||!r.binary.production_host)return``;let i=`production_host`;(e===`publish`||e===`unpublish`)&&(i=`staging_host`);let a=process.env.node_pre_gyp_s3_host;if(a===`staging`||a===`production`)i=`${a}_host`;else if(this.opts.s3_host===`staging`||this.opts.s3_host===`production`)i=`${this.opts.s3_host}_host`;else if(this.opts.s3_host||a)throw Error(`invalid s3_host ${this.opts.s3_host||a}`);return r.binary.host=r.binary[i],this.binaryHostSet=!0,r.binary.host},proto.usage=function(){return[``,` Usage: node-pre-gyp <command> [options]`,``,` where <command> is one of:`,cli_commands.map(e=>` - `+e+` - `+require(`./`+e).usage).join(`
1
+ "use strict";module.exports=exports;const fs=require(`fs`),path=require(`path`),nopt=require(`nopt`),log=require(`./util/log.js`),napi=require(`./util/napi.js`),EE=require(`events`).EventEmitter,inherits=require(`util`).inherits,cli_commands=[`clean`,`install`,`reinstall`,`build`,`rebuild`,`package`,`testpackage`,`publish`,`unpublish`,`info`,`testbinary`,`reveal`,`configure`],aliases={};Object.defineProperty(exports,`find`,{get:function(){return require(`./pre-binding`).find},enumerable:!0});function Run({package_json_path:e=`./package.json`,argv:t}){this.package_json_path=e,this.commands={};let n=this;cli_commands.forEach(e=>{n.commands[e]=function(t,i){return log.verbose(`command`,e,t),require(`./`+e)(n,t,i)}}),this.parseArgv(t),this.binaryHostSet=!1}inherits(Run,EE),exports.Run=Run;const proto=Run.prototype;proto.package=require(`../package.json`),proto.configDefs={help:Boolean,arch:String,debug:Boolean,directory:String,proxy:String,loglevel:String,acl:String},proto.shorthands={release:`--no-debug`,C:`--directory`,debug:`--debug`,j:`--jobs`,silent:`--loglevel=silent`,silly:`--loglevel=silly`,verbose:`--loglevel=verbose`},proto.aliases=aliases,proto.parseArgv=function(a){this.opts=nopt(this.configDefs,this.shorthands,a),this.argv=this.opts.argv.remain.slice();let o=this.todo=[];a=this.argv.map(e=>(e in this.aliases&&(e=this.aliases[e]),e)),a.slice().forEach(e=>{if(e in this.commands){let t=a.splice(0,a.indexOf(e));a.shift(),o.length>0&&(o[o.length-1].args=t),o.push({name:e,args:[]})}}),o.length>0&&(o[o.length-1].args=a.splice(0));let s=this.package_json_path;this.opts.directory&&(s=path.join(this.opts.directory,s)),this.package_json=JSON.parse(fs.readFileSync(s)),this.todo=napi.expand_commands(this.package_json,this.opts,o);let c=`npm_config_`;Object.keys(process.env).forEach(e=>{if(e.indexOf(c)!==0)return;let t=process.env[e];e===c+`loglevel`?log.level=t:(e=e.substring(11),e===`argv`&&this.opts.argv&&this.opts.argv.remain&&this.opts.argv.remain.length||(this.opts[e]=t))}),this.opts.loglevel&&(log.level=this.opts.loglevel),log.resume()},proto.setBinaryHostProperty=function(e){if(this.binaryHostSet)return this.package_json.binary.host;let t=this.package_json;if(!t||!t.binary||t.binary.host||!t.binary.staging_host||!t.binary.production_host)return``;let n=`production_host`;(e===`publish`||e===`unpublish`)&&(n=`staging_host`);let r=process.env.node_pre_gyp_s3_host;if(r===`staging`||r===`production`)n=`${r}_host`;else if(this.opts.s3_host===`staging`||this.opts.s3_host===`production`)n=`${this.opts.s3_host}_host`;else if(this.opts.s3_host||r)throw Error(`invalid s3_host ${this.opts.s3_host||r}`);return t.binary.host=t.binary[n],this.binaryHostSet=!0,t.binary.host},proto.usage=function(){return[``,` Usage: node-pre-gyp <command> [options]`,``,` where <command> is one of:`,cli_commands.map(e=>` - `+e+` - `+require(`./`+e).usage).join(`
2
2
  `),``,`node-pre-gyp@`+this.version+` `+path.resolve(__dirname,`..`),`node@`+process.versions.node].join(`
3
3
  `)},Object.defineProperty(proto,`version`,{get:function(){return this.package.version},enumerable:!0});
@@ -1 +1 @@
1
- "use strict";module.exports=exports=_package,exports.usage=`Packs binary (and enclosing directory) into locally staged tarball`;const fs=require(`fs`),path=require(`path`),log=require(`./util/log.js`),versioning=require(`./util/versioning.js`),napi=require(`./util/napi.js`),existsAsync=fs.exists||path.exists,tar=require(`tar`);function readdirSync(i){let a=[];return fs.readdirSync(i).forEach(o=>{fs.lstatSync(path.join(i,o)).isDirectory()?a=a.concat(readdirSync(path.join(i,o))):a.push(path.join(i,o))}),a}function _package(c,l,u){let d=c.package_json,f=napi.get_napi_build_version_from_command_args(l),p=versioning.evaluate(d,c.opts,f),m=p.module_path,h=path.join(m,p.module_name+`.node`);existsAsync(h,a=>{if(!a)return u(Error(`Cannot package because `+h+" missing: run `node-pre-gyp rebuild` first"));let o=p.staged_tarball,s=function(e){let i=path.basename(e);return i.length&&i[0]!==`.`?(console.log(`packing `+e),!0):(console.log(`skipping `+e),!1)};fs.promises.mkdir(path.dirname(o),{recursive:!0}).then(()=>{let e=readdirSync(m),a=path.basename(m);e=e.map(e=>path.join(a,path.relative(m,e))),tar.create({portable:!1,gzip:!0,filter:s,file:o,cwd:path.dirname(m)},e,e=>(e?console.error(`[`+d.name+`] `+e.message):log.info(`package`,`Binary staged at "`+o+`"`),u(e)))}).catch(e=>u(e))})}
1
+ "use strict";module.exports=exports=_package,exports.usage=`Packs binary (and enclosing directory) into locally staged tarball`;const fs=require(`fs`),path=require(`path`),log=require(`./util/log.js`),versioning=require(`./util/versioning.js`),napi=require(`./util/napi.js`),existsAsync=fs.exists||path.exists,tar=require(`tar`);function readdirSync(t){let n=[];return fs.readdirSync(t).forEach(r=>{fs.lstatSync(path.join(t,r)).isDirectory()?n=n.concat(readdirSync(path.join(t,r))):n.push(path.join(t,r))}),n}function _package(a,o,s){let c=a.package_json,l=napi.get_napi_build_version_from_command_args(o),u=versioning.evaluate(c,a.opts,l),d=u.module_path,f=path.join(d,u.module_name+`.node`);existsAsync(f,n=>{if(!n)return s(Error(`Cannot package because `+f+" missing: run `node-pre-gyp rebuild` first"));let r=u.staged_tarball,i=function(e){let t=path.basename(e);return t.length&&t[0]!==`.`?(console.log(`packing `+e),!0):(console.log(`skipping `+e),!1)};fs.promises.mkdir(path.dirname(r),{recursive:!0}).then(()=>{let e=readdirSync(d),n=path.basename(d);e=e.map(e=>path.join(n,path.relative(d,e))),tar.create({portable:!1,gzip:!0,filter:i,file:r,cwd:path.dirname(d)},e,e=>(e?console.error(`[`+c.name+`] `+e.message):log.info(`package`,`Binary staged at "`+r+`"`),s(e)))}).catch(e=>s(e))})}
@@ -1 +1 @@
1
- "use strict";const npg=require(`..`),versioning=require(`../lib/util/versioning.js`),napi=require(`../lib/util/napi.js`),existsSync=require(`fs`).existsSync||require(`path`).existsSync,path=require(`path`);module.exports=exports,exports.usage=`Finds the require path for the node-pre-gyp installed module`,exports.validate=function(e,i){versioning.validate_config(e,i)},exports.find=function(a,o){if(!existsSync(a))throw Error(a+`does not exist`);let s=new npg.Run({package_json_path:a,argv:process.argv});s.setBinaryHostProperty();let c=s.package_json;versioning.validate_config(c,o);let l;return napi.get_napi_build_versions(c,o)&&(l=napi.get_best_napi_build_version(c,o)),o||={},o.module_root||=path.dirname(a),versioning.evaluate(c,o,l).module};
1
+ "use strict";const npg=require(`..`),versioning=require(`../lib/util/versioning.js`),napi=require(`../lib/util/napi.js`),existsSync=require(`fs`).existsSync||require(`path`).existsSync,path=require(`path`);module.exports=exports,exports.usage=`Finds the require path for the node-pre-gyp installed module`,exports.validate=function(e,t){versioning.validate_config(e,t)},exports.find=function(n,r){if(!existsSync(n))throw Error(n+`does not exist`);let i=new npg.Run({package_json_path:n,argv:process.argv});i.setBinaryHostProperty();let a=i.package_json;versioning.validate_config(a,r);let o;return napi.get_napi_build_versions(a,r)&&(o=napi.get_best_napi_build_version(a,r)),r||={},r.module_root||=path.dirname(n),versioning.evaluate(a,r,o).module};
@@ -1 +1 @@
1
- "use strict";module.exports=exports=publish,exports.usage=`Publishes pre-built binary (requires aws-sdk)`;const fs=require(`fs`),path=require(`path`),log=require(`./util/log.js`),versioning=require(`./util/versioning.js`),napi=require(`./util/napi.js`),s3_setup=require(`./util/s3_setup.js`),existsAsync=fs.exists||path.exists,url=require(`url`);function publish(r,c,l){let u=r.package_json,d=napi.get_napi_build_version_from_command_args(c),f=versioning.evaluate(u,r.opts,d),p=f.staged_tarball;existsAsync(p,r=>{if(!r)return l(Error(`Cannot publish because `+p+" missing: run `node-pre-gyp package` first"));log.info(`publish`,`Detecting s3 credentials`);let i=s3_setup.detect(f),a=s3_setup.get_s3(i),s=url.resolve(i.prefix,f.package_name),c={Bucket:i.bucket,Key:s};log.info(`publish`,`Authenticating with s3`),log.info(`publish`,i),log.info(`publish`,`Checking for existing binary at `+f.hosted_path),a.headObject(c,(r,o)=>{if(o&&log.info(`publish`,JSON.stringify(o)),r&&r.code===`NotFound`){log.info(`publish`,`Preparing to put object`);let r={ACL:f.acl,Body:fs.createReadStream(p),Key:s,Bucket:i.bucket};log.info(`publish`,`Putting object with ACL:`,r.ACL),log.info(`publish`,`Bucket:`,r.Bucket,`Key:`,r.Key);try{a.putObject(r,(e,r)=>(log.info(`publish`,`returned from putting object`),e?(log.info(`publish`,`s3 putObject error: "`+e+`"`),l(e)):(r&&log.info(`publish`,`s3 putObject response: "`+JSON.stringify(r)+`"`),log.info(`publish`,`successfully put object`),console.log(`[`+u.name+`] Success: published to `+f.hosted_path),l())))}catch(e){return log.info(`publish`,`s3 putObject error: "`+e+`"`),l(e)}}else if(r)return log.info(`publish`,`s3 headObject error: "`+r+`"`),l(r);else return log.error(`publish`,`Cannot publish over existing version`),log.error(`publish`,`Update the 'version' field in package.json and try again`),log.error(`publish`,`If the previous version was published in error see:`),log.error(`publish`,` node-pre-gyp unpublish`),l(Error(`Failed publishing to `+f.hosted_path))})})}
1
+ "use strict";module.exports=exports=publish,exports.usage=`Publishes pre-built binary (requires aws-sdk)`;const fs=require(`fs`),path=require(`path`),log=require(`./util/log.js`),versioning=require(`./util/versioning.js`),napi=require(`./util/napi.js`),s3_setup=require(`./util/s3_setup.js`),existsAsync=fs.exists||path.exists,url=require(`url`);function publish(t,o,s){let c=t.package_json,l=napi.get_napi_build_version_from_command_args(o),u=versioning.evaluate(c,t.opts,l),d=u.staged_tarball;existsAsync(d,t=>{if(!t)return s(Error(`Cannot publish because `+d+" missing: run `node-pre-gyp package` first"));log.info(`publish`,`Detecting s3 credentials`);let n=s3_setup.detect(u),r=s3_setup.get_s3(n),a=url.resolve(n.prefix,u.package_name),o={Bucket:n.bucket,Key:a};log.info(`publish`,`Authenticating with s3`),log.info(`publish`,n),log.info(`publish`,`Checking for existing binary at `+u.hosted_path),r.headObject(o,(t,i)=>{if(i&&log.info(`publish`,JSON.stringify(i)),t&&t.code===`NotFound`){log.info(`publish`,`Preparing to put object`);let t={ACL:u.acl,Body:fs.createReadStream(d),Key:a,Bucket:n.bucket};log.info(`publish`,`Putting object with ACL:`,t.ACL),log.info(`publish`,`Bucket:`,t.Bucket,`Key:`,t.Key);try{r.putObject(t,(e,t)=>(log.info(`publish`,`returned from putting object`),e?(log.info(`publish`,`s3 putObject error: "`+e+`"`),s(e)):(t&&log.info(`publish`,`s3 putObject response: "`+JSON.stringify(t)+`"`),log.info(`publish`,`successfully put object`),console.log(`[`+c.name+`] Success: published to `+u.hosted_path),s())))}catch(e){return log.info(`publish`,`s3 putObject error: "`+e+`"`),s(e)}}else if(t)return log.info(`publish`,`s3 headObject error: "`+t+`"`),s(t);else return log.error(`publish`,`Cannot publish over existing version`),log.error(`publish`,`Update the 'version' field in package.json and try again`),log.error(`publish`,`If the previous version was published in error see:`),log.error(`publish`,` node-pre-gyp unpublish`),s(Error(`Failed publishing to `+u.hosted_path))})})}
@@ -1 +1 @@
1
- "use strict";module.exports=exports=rebuild,exports.usage=`Runs "clean" and "install" at once`;const napi=require(`./util/napi.js`);function rebuild(t,n,r){let i=t.package_json,a=[],o=napi.get_best_napi_build_version(i,t.opts);o!=null&&(a=[napi.get_command_arg(o)]),t.todo.unshift({name:`clean`,args:[]},{name:`install`,args:a}),process.nextTick(r)}
1
+ "use strict";module.exports=exports=rebuild,exports.usage=`Runs "clean" and "install" at once`;const napi=require(`./util/napi.js`);function rebuild(e,t,n){let r=e.package_json,i=[],a=napi.get_best_napi_build_version(r,e.opts);a!=null&&(i=[napi.get_command_arg(a)]),e.todo.unshift({name:`clean`,args:[]},{name:`install`,args:i}),process.nextTick(n)}
@@ -1 +1 @@
1
- "use strict";module.exports=exports=reveal,exports.usage=`Reveals data on the versioned binary`;const versioning=require(`./util/versioning.js`),napi=require(`./util/napi.js`);function unix_paths(e,n){return n&&n.replace?n.replace(/\\/g,`/`):n}function reveal(r,i,a){let o=r.package_json,s=napi.get_napi_build_version_from_command_args(i),c=versioning.evaluate(o,r.opts,s),l=!1,u=r.opts.argv.remain[r.opts.argv.remain.length-1];return u&&Object.hasOwnProperty.call(c,u)&&(console.log(c[u].replace(/\\/g,`/`)),l=!0),l||console.log(JSON.stringify(c,unix_paths,2)),a()}
1
+ "use strict";module.exports=exports=reveal,exports.usage=`Reveals data on the versioned binary`;const versioning=require(`./util/versioning.js`),napi=require(`./util/napi.js`);function unix_paths(e,t){return t&&t.replace?t.replace(/\\/g,`/`):t}function reveal(n,r,i){let a=n.package_json,o=napi.get_napi_build_version_from_command_args(r),s=versioning.evaluate(a,n.opts,o),c=!1,l=n.opts.argv.remain[n.opts.argv.remain.length-1];return l&&Object.hasOwnProperty.call(s,l)&&(console.log(s[l].replace(/\\/g,`/`)),c=!0),c||console.log(JSON.stringify(s,unix_paths,2)),i()}
@@ -1 +1 @@
1
- "use strict";module.exports=exports=testpackage,exports.usage=`Tests that the staged package is valid`;const fs=require(`fs`),path=require(`path`),log=require(`./util/log.js`),existsAsync=fs.exists||path.exists,versioning=require(`./util/versioning.js`),napi=require(`./util/napi.js`),testbinary=require(`./testbinary.js`),tar=require(`tar`);function testpackage(i,c,l){let u=i.package_json,d=napi.get_napi_build_version_from_command_args(c),f=versioning.evaluate(u,i.opts,d),p=f.staged_tarball;existsAsync(p,a=>{if(!a)return l(Error(`Cannot test package because `+p+" missing: run `node-pre-gyp package` first"));let o=f.module_path;function s(e){log.info(`install`,`unpacking [`+e.path+`]`)}fs.promises.mkdir(o,{recursive:!0}).then(()=>{tar.extract({file:p,cwd:o,strip:1,onentry:s}).then(d,l)}).catch(e=>l(e));function d(){testbinary(i,c,e=>e?l(e):(console.log(`[`+u.name+`] Package appears valid`),l()))}})}
1
+ "use strict";module.exports=exports=testpackage,exports.usage=`Tests that the staged package is valid`;const fs=require(`fs`),path=require(`path`),log=require(`./util/log.js`),existsAsync=fs.exists||path.exists,versioning=require(`./util/versioning.js`),napi=require(`./util/napi.js`),testbinary=require(`./testbinary.js`),tar=require(`tar`);function testpackage(t,a,o){let s=t.package_json,c=napi.get_napi_build_version_from_command_args(a),l=versioning.evaluate(s,t.opts,c),u=l.staged_tarball;existsAsync(u,n=>{if(!n)return o(Error(`Cannot test package because `+u+" missing: run `node-pre-gyp package` first"));let r=l.module_path;function i(e){log.info(`install`,`unpacking [`+e.path+`]`)}fs.promises.mkdir(r,{recursive:!0}).then(()=>{tar.extract({file:u,cwd:r,strip:1,onentry:i}).then(c,o)}).catch(e=>o(e));function c(){testbinary(t,a,e=>e?o(e):(console.log(`[`+s.name+`] Package appears valid`),o()))}})}
@@ -1 +1 @@
1
- "use strict";module.exports=exports=unpublish,exports.usage=`Unpublishes pre-built binary (requires aws-sdk)`;const log=require(`./util/log.js`),versioning=require(`./util/versioning.js`),napi=require(`./util/napi.js`),s3_setup=require(`./util/s3_setup.js`),url=require(`url`);function unpublish(a,o,s){let c=a.package_json,l=napi.get_napi_build_version_from_command_args(o),u=versioning.evaluate(c,a.opts,l),d=s3_setup.detect(u),f=s3_setup.get_s3(d),p=url.resolve(d.prefix,u.package_name),m={Bucket:d.bucket,Key:p};f.headObject(m,(r,i)=>{if(r&&r.code===`NotFound`)return console.log(`[`+c.name+`] Not found: `+u.hosted_tarball),s();if(r)return s(r);log.info(`unpublish`,JSON.stringify(i)),f.deleteObject(m,(r,i)=>r?s(r):(log.info(JSON.stringify(i)),console.log(`[`+c.name+`] Success: removed `+u.hosted_tarball),s()))})}
1
+ "use strict";module.exports=exports=unpublish,exports.usage=`Unpublishes pre-built binary (requires aws-sdk)`;const log=require(`./util/log.js`),versioning=require(`./util/versioning.js`),napi=require(`./util/napi.js`),s3_setup=require(`./util/s3_setup.js`),url=require(`url`);function unpublish(n,r,i){let a=n.package_json,o=napi.get_napi_build_version_from_command_args(r),s=versioning.evaluate(a,n.opts,o),c=s3_setup.detect(s),l=s3_setup.get_s3(c),u=url.resolve(c.prefix,s.package_name),d={Bucket:c.bucket,Key:u};l.headObject(d,(e,t)=>{if(e&&e.code===`NotFound`)return console.log(`[`+a.name+`] Not found: `+s.hosted_tarball),i();if(e)return i(e);log.info(`unpublish`,JSON.stringify(t)),l.deleteObject(d,(e,t)=>e?i(e):(log.info(JSON.stringify(t)),console.log(`[`+a.name+`] Success: removed `+s.hosted_tarball),i()))})}
@@ -1 +1 @@
1
- "use strict";module.exports=exports;const fs=require(`fs`),path=require(`path`),win=process.platform===`win32`,existsSync=fs.existsSync||path.existsSync,cp=require(`child_process`);function which_node_gyp(){let e;if(process.env.npm_config_node_gyp)try{if(e=process.env.npm_config_node_gyp,existsSync(e))return e}catch{}try{let i=require.resolve(`node-gyp`);if(e=path.join(path.dirname(path.dirname(i)),`bin/node-gyp.js`),existsSync(e))return e}catch{}if(process.execPath.indexOf(`iojs`)===-1)try{let i=require.resolve(`npm`);if(e=path.join(path.dirname(path.dirname(i)),`node_modules/node-gyp/bin/node-gyp.js`),existsSync(e))return e}catch{}let i=path.join(path.dirname(path.dirname(process.execPath)),`lib/node_modules/npm/`);if(e=path.join(i,`node_modules/node-gyp/bin/node-gyp.js`),existsSync(e))return e}module.exports.run_gyp=function(e,r,a){let o=``,s=[];if(r.runtime&&r.runtime===`node-webkit`)o=`nw-gyp`,win&&(o+=`.cmd`);else{let e=which_node_gyp();e?(o=process.execPath,s.push(e)):(o=`node-gyp`,win&&(o+=`.cmd`))}let c=s.concat(e),l=cp.spawn(o,c,{cwd:void 0,env:process.env,stdio:[0,1,2]});l.on(`error`,e=>{if(e)return a(Error(`Failed to execute '`+o+` `+c.join(` `)+`' (`+e+`)`));a(null,r)}),l.on(`close`,e=>{if(e&&e!==0)return a(Error(`Failed to execute '`+o+` `+c.join(` `)+`' (`+e+`)`));a(null,r)})};
1
+ "use strict";module.exports=exports;const fs=require(`fs`),path=require(`path`),win=process.platform===`win32`,existsSync=fs.existsSync||path.existsSync,cp=require(`child_process`);function which_node_gyp(){let e;if(process.env.npm_config_node_gyp)try{if(e=process.env.npm_config_node_gyp,existsSync(e))return e}catch{}try{let n=require.resolve(`node-gyp`);if(e=path.join(path.dirname(path.dirname(n)),`bin/node-gyp.js`),existsSync(e))return e}catch{}if(process.execPath.indexOf(`iojs`)===-1)try{let n=require.resolve(`npm`);if(e=path.join(path.dirname(path.dirname(n)),`node_modules/node-gyp/bin/node-gyp.js`),existsSync(e))return e}catch{}let n=path.join(path.dirname(path.dirname(process.execPath)),`lib/node_modules/npm/`);if(e=path.join(n,`node_modules/node-gyp/bin/node-gyp.js`),existsSync(e))return e}module.exports.run_gyp=function(e,t,r){let i=``,a=[];if(t.runtime&&t.runtime===`node-webkit`)i=`nw-gyp`,win&&(i+=`.cmd`);else{let e=which_node_gyp();e?(i=process.execPath,a.push(e)):(i=`node-gyp`,win&&(i+=`.cmd`))}let o=a.concat(e),s=cp.spawn(i,o,{cwd:void 0,env:process.env,stdio:[0,1,2]});s.on(`error`,e=>{if(e)return r(Error(`Failed to execute '`+i+` `+o.join(` `)+`' (`+e+`)`));r(null,t)}),s.on(`close`,e=>{if(e&&e!==0)return r(Error(`Failed to execute '`+i+` `+o.join(` `)+`' (`+e+`)`));r(null,t)})};
@@ -1,4 +1,4 @@
1
- "use strict";module.exports=exports;const path=require(`path`),semver=require(`semver`),url=require(`url`),detect_libc=require(`detect-libc`),napi=require(`./napi.js`);let abi_crosswalk;abi_crosswalk=process.env.NODE_PRE_GYP_ABI_CROSSWALK?require(process.env.NODE_PRE_GYP_ABI_CROSSWALK):require(`./abi_crosswalk.json`);const major_versions={};Object.keys(abi_crosswalk).forEach(e=>{let s=e.split(`.`)[0];major_versions[s]||(major_versions[s]=e)});function get_electron_abi(e,c){if(!e)throw Error(`get_electron_abi requires valid runtime arg`);if(c===void 0)throw Error(`Empty target version is not supported if electron is the target.`);let l=semver.parse(c);return e+`-v`+l.major+`.`+l.minor}module.exports.get_electron_abi=get_electron_abi;function get_node_webkit_abi(e,s){if(!e)throw Error(`get_node_webkit_abi requires valid runtime arg`);if(s===void 0)throw Error(`Empty target version is not supported if node-webkit is the target.`);return e+`-v`+s}module.exports.get_node_webkit_abi=get_node_webkit_abi;function get_node_abi(e,c){if(!e)throw Error(`get_node_abi requires valid runtime arg`);if(!c)throw Error(`get_node_abi requires valid process.versions object`);let l=semver.parse(c.node);return l.major===0&&l.minor%2?e+`-v`+c.node:c.modules?e+`-v`+ +c.modules:`v8-`+c.v8.split(`.`).slice(0,2).join(`.`)}module.exports.get_node_abi=get_node_abi;function get_runtime_abi(e,s){if(!e)throw Error(`get_runtime_abi requires valid runtime arg`);if(e===`node-webkit`)return get_node_webkit_abi(e,s||process.versions[`node-webkit`]);if(e===`electron`)return get_electron_abi(e,s||process.versions.electron);if(e!==`node`)throw Error(`Unknown Runtime: '`+e+`'`);if(s){let c;if(abi_crosswalk[s])c=abi_crosswalk[s];else{let e=s.split(`.`).map(e=>+e);if(e.length!==3)throw Error(`Unknown target version: `+s);let l=e[0],u=e[1],p=e[2];if(l===1)for(;;){u>0&&--u,p>0&&--p;let e=``+l+`.`+u+`.`+p;if(abi_crosswalk[e]){c=abi_crosswalk[e],console.log(`Warning: node-pre-gyp could not find exact match for `+s),console.log(`Warning: but node-pre-gyp successfully choose `+e+` as ABI compatible target`);break}if(u===0&&p===0)break}else if(l>=2)major_versions[l]&&(c=abi_crosswalk[major_versions[l]],console.log(`Warning: node-pre-gyp could not find exact match for `+s),console.log(`Warning: but node-pre-gyp successfully choose `+major_versions[l]+` as ABI compatible target`));else if(l===0&&e[1]%2==0)for(;--p>0;){let e=``+l+`.`+u+`.`+p;if(abi_crosswalk[e]){c=abi_crosswalk[e],console.log(`Warning: node-pre-gyp could not find exact match for `+s),console.log(`Warning: but node-pre-gyp successfully choose `+e+` as ABI compatible target`);break}}}if(!c)throw Error(`Unsupported target version: `+s);return get_node_abi(e,{node:s,v8:c.v8+`.0`,modules:c.node_abi>1?c.node_abi:void 0})}else return get_node_abi(e,process.versions)}module.exports.get_runtime_abi=get_runtime_abi;const required_parameters=[`module_name`,`module_path`,`host`];function validate_config(e,s){let l=e.name+` package.json is not node-pre-gyp ready:
2
- `,d=[];e.main||d.push(`main`),e.version||d.push(`version`),e.name||d.push(`name`),e.binary||d.push(`binary`);let f=e.binary;if(f&&required_parameters.forEach(e=>{(!f[e]||typeof f[e]!=`string`)&&d.push(`binary.`+e)}),d.length>=1)throw Error(l+`package.json must declare these properties:
3
- `+d.join(`
4
- `));if(f){let e=url.parse(f.host).protocol;if(e===`http:`)throw Error(`'host' protocol (`+e+`) is invalid - only 'https:' is accepted`)}napi.validate_package_json(e,s)}module.exports.validate_config=validate_config;function eval_template(e,s){return Object.keys(s).forEach(c=>{let l=`{`+c+`}`;for(;e.indexOf(l)>-1;)e=e.replace(l,s[c])}),e}function fix_slashes(e){return e.slice(-1)===`/`?e:e+`/`}function drop_double_slashes(e){return e.replace(/\/\//g,`/`)}function get_process_runtime(e){let s=`node`;return e[`node-webkit`]?s=`node-webkit`:e.electron&&(s=`electron`),s}module.exports.get_process_runtime=get_process_runtime;const default_package_name=`{module_name}-v{version}-{node_abi}-{platform}-{arch}.tar.gz`,default_remote_path=``;module.exports.evaluate=function(d,f,p){f||={},validate_config(d,f);let m=d.version,h=semver.parse(m),g=f.runtime||get_process_runtime(process.versions),_={name:d.name,configuration:f.debug?`Debug`:`Release`,debug:f.debug,module_name:d.binary.module_name,version:h.version,prerelease:h.prerelease.length?h.prerelease.join(`.`):``,build:h.build.length?h.build.join(`.`):``,major:h.major,minor:h.minor,patch:h.patch,runtime:g,node_abi:get_runtime_abi(g,f.target),node_abi_napi:napi.get_napi_version(f.target)?`napi`:get_runtime_abi(g,f.target),napi_version:napi.get_napi_version(f.target),napi_build_version:p||``,node_napi_label:p?`napi-v`+p:get_runtime_abi(g,f.target),target:f.target||``,platform:f.target_platform||process.platform,target_platform:f.target_platform||process.platform,arch:f.target_arch||process.arch,target_arch:f.target_arch||process.arch,libc:f.target_libc||detect_libc.familySync()||`unknown`,module_main:d.main,toolset:f.toolset||``,bucket:d.binary.bucket,region:d.binary.region,s3ForcePathStyle:d.binary.s3ForcePathStyle||!1,acl:f.acl||d.binary.acl||`public-read`},v=_.module_name.replace(`-`,`_`);return _.host=fix_slashes(eval_template(process.env[`npm_config_`+v+`_binary_host_mirror`]||d.binary.host,_)),_.module_path=eval_template(d.binary.module_path,_),f.module_root?_.module_path=path.join(f.module_root,_.module_path):_.module_path=path.resolve(_.module_path),_.module=path.join(_.module_path,_.module_name+`.node`),_.remote_path=d.binary.remote_path?drop_double_slashes(fix_slashes(eval_template(d.binary.remote_path,_))):``,_.package_name=eval_template(d.binary.package_name?d.binary.package_name:`{module_name}-v{version}-{node_abi}-{platform}-{arch}.tar.gz`,_),_.staged_tarball=path.join(`build/stage`,_.remote_path,_.package_name),_.s3ForcePathStyle?_.hosted_path=url.resolve(_.host,drop_double_slashes(`${_.bucket}/${_.remote_path}`)):_.hosted_path=url.resolve(_.host,_.remote_path),_.hosted_tarball=url.resolve(_.hosted_path,_.package_name),_};
1
+ "use strict";module.exports=exports;const path=require(`path`),semver=require(`semver`),url=require(`url`),detect_libc=require(`detect-libc`),napi=require(`./napi.js`);let abi_crosswalk;abi_crosswalk=process.env.NODE_PRE_GYP_ABI_CROSSWALK?require(process.env.NODE_PRE_GYP_ABI_CROSSWALK):require(`./abi_crosswalk.json`);const major_versions={};Object.keys(abi_crosswalk).forEach(e=>{let t=e.split(`.`)[0];major_versions[t]||(major_versions[t]=e)});function get_electron_abi(e,n){if(!e)throw Error(`get_electron_abi requires valid runtime arg`);if(n===void 0)throw Error(`Empty target version is not supported if electron is the target.`);let r=semver.parse(n);return e+`-v`+r.major+`.`+r.minor}module.exports.get_electron_abi=get_electron_abi;function get_node_webkit_abi(e,t){if(!e)throw Error(`get_node_webkit_abi requires valid runtime arg`);if(t===void 0)throw Error(`Empty target version is not supported if node-webkit is the target.`);return e+`-v`+t}module.exports.get_node_webkit_abi=get_node_webkit_abi;function get_node_abi(e,n){if(!e)throw Error(`get_node_abi requires valid runtime arg`);if(!n)throw Error(`get_node_abi requires valid process.versions object`);let r=semver.parse(n.node);return r.major===0&&r.minor%2?e+`-v`+n.node:n.modules?e+`-v`+ +n.modules:`v8-`+n.v8.split(`.`).slice(0,2).join(`.`)}module.exports.get_node_abi=get_node_abi;function get_runtime_abi(e,t){if(!e)throw Error(`get_runtime_abi requires valid runtime arg`);if(e===`node-webkit`)return get_node_webkit_abi(e,t||process.versions[`node-webkit`]);if(e===`electron`)return get_electron_abi(e,t||process.versions.electron);if(e!==`node`)throw Error(`Unknown Runtime: '`+e+`'`);if(t){let n;if(abi_crosswalk[t])n=abi_crosswalk[t];else{let e=t.split(`.`).map(e=>+e);if(e.length!==3)throw Error(`Unknown target version: `+t);let r=e[0],i=e[1],s=e[2];if(r===1)for(;;){i>0&&--i,s>0&&--s;let e=``+r+`.`+i+`.`+s;if(abi_crosswalk[e]){n=abi_crosswalk[e],console.log(`Warning: node-pre-gyp could not find exact match for `+t),console.log(`Warning: but node-pre-gyp successfully choose `+e+` as ABI compatible target`);break}if(i===0&&s===0)break}else if(r>=2)major_versions[r]&&(n=abi_crosswalk[major_versions[r]],console.log(`Warning: node-pre-gyp could not find exact match for `+t),console.log(`Warning: but node-pre-gyp successfully choose `+major_versions[r]+` as ABI compatible target`));else if(r===0&&e[1]%2==0)for(;--s>0;){let e=``+r+`.`+i+`.`+s;if(abi_crosswalk[e]){n=abi_crosswalk[e],console.log(`Warning: node-pre-gyp could not find exact match for `+t),console.log(`Warning: but node-pre-gyp successfully choose `+e+` as ABI compatible target`);break}}}if(!n)throw Error(`Unsupported target version: `+t);return get_node_abi(e,{node:t,v8:n.v8+`.0`,modules:n.node_abi>1?n.node_abi:void 0})}else return get_node_abi(e,process.versions)}module.exports.get_runtime_abi=get_runtime_abi;const required_parameters=[`module_name`,`module_path`,`host`];function validate_config(e,t){let r=e.name+` package.json is not node-pre-gyp ready:
2
+ `,a=[];e.main||a.push(`main`),e.version||a.push(`version`),e.name||a.push(`name`),e.binary||a.push(`binary`);let o=e.binary;if(o&&required_parameters.forEach(e=>{(!o[e]||typeof o[e]!=`string`)&&a.push(`binary.`+e)}),a.length>=1)throw Error(r+`package.json must declare these properties:
3
+ `+a.join(`
4
+ `));if(o){let e=url.parse(o.host).protocol;if(e===`http:`)throw Error(`'host' protocol (`+e+`) is invalid - only 'https:' is accepted`)}napi.validate_package_json(e,t)}module.exports.validate_config=validate_config;function eval_template(e,t){return Object.keys(t).forEach(n=>{let r=`{`+n+`}`;for(;e.indexOf(r)>-1;)e=e.replace(r,t[n])}),e}function fix_slashes(e){return e.slice(-1)===`/`?e:e+`/`}function drop_double_slashes(e){return e.replace(/\/\//g,`/`)}function get_process_runtime(e){let t=`node`;return e[`node-webkit`]?t=`node-webkit`:e.electron&&(t=`electron`),t}module.exports.get_process_runtime=get_process_runtime;const default_package_name=`{module_name}-v{version}-{node_abi}-{platform}-{arch}.tar.gz`,default_remote_path=``;module.exports.evaluate=function(a,o,s){o||={},validate_config(a,o);let c=a.version,l=semver.parse(c),u=o.runtime||get_process_runtime(process.versions),d={name:a.name,configuration:o.debug?`Debug`:`Release`,debug:o.debug,module_name:a.binary.module_name,version:l.version,prerelease:l.prerelease.length?l.prerelease.join(`.`):``,build:l.build.length?l.build.join(`.`):``,major:l.major,minor:l.minor,patch:l.patch,runtime:u,node_abi:get_runtime_abi(u,o.target),node_abi_napi:napi.get_napi_version(o.target)?`napi`:get_runtime_abi(u,o.target),napi_version:napi.get_napi_version(o.target),napi_build_version:s||``,node_napi_label:s?`napi-v`+s:get_runtime_abi(u,o.target),target:o.target||``,platform:o.target_platform||process.platform,target_platform:o.target_platform||process.platform,arch:o.target_arch||process.arch,target_arch:o.target_arch||process.arch,libc:o.target_libc||detect_libc.familySync()||`unknown`,module_main:a.main,toolset:o.toolset||``,bucket:a.binary.bucket,region:a.binary.region,s3ForcePathStyle:a.binary.s3ForcePathStyle||!1,acl:o.acl||a.binary.acl||`public-read`},f=d.module_name.replace(`-`,`_`);return d.host=fix_slashes(eval_template(process.env[`npm_config_`+f+`_binary_host_mirror`]||a.binary.host,d)),d.module_path=eval_template(a.binary.module_path,d),o.module_root?d.module_path=path.join(o.module_root,d.module_path):d.module_path=path.resolve(d.module_path),d.module=path.join(d.module_path,d.module_name+`.node`),d.remote_path=a.binary.remote_path?drop_double_slashes(fix_slashes(eval_template(a.binary.remote_path,d))):``,d.package_name=eval_template(a.binary.package_name?a.binary.package_name:`{module_name}-v{version}-{node_abi}-{platform}-{arch}.tar.gz`,d),d.staged_tarball=path.join(`build/stage`,d.remote_path,d.package_name),d.s3ForcePathStyle?d.hosted_path=url.resolve(d.host,drop_double_slashes(`${d.bucket}/${d.remote_path}`)):d.hosted_path=url.resolve(d.host,d.remote_path),d.hosted_tarball=url.resolve(d.hosted_path,d.package_name),d};