nf3 0.3.13 → 0.3.15

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,4 +1,5 @@
1
1
  import { a as relative, i as normalize, n as isAbsolute, o as resolve, r as join, t as dirname } from "./libs/pathe.mjs";
2
+ import { t as resolveModulePath } from "./libs/exsolve.mjs";
2
3
  import { createRequire } from "node:module";
3
4
  import * as fsp from "node:fs/promises";
4
5
  import { readFile, writeFile } from "node:fs/promises";
@@ -163,22 +164,46 @@ async function traceNodeModules(input, opts) {
163
164
  };
164
165
  tracedPackage.versions[pkgJSON.version || "0.0.0"] = tracedPackageVersion;
165
166
  const fullTraceEntry = resolveFullTraceEntry(opts.fullTraceInclude, pkgName);
166
- if (fullTraceEntry) {
167
- if (!fsp.glob) throw new Error("`fullTraceInclude` requires Node.js >= 22.0.0 (fs.promises.glob)");
168
- const globPattern = fullTraceEntry.glob || "{**,.**}/{.*,*}";
169
- for await (const file of fsp.glob(globPattern, {
167
+ if (fullTraceEntry) if (fullTraceEntry.glob) {
168
+ if (!fsp.glob) throw new Error("`fullTraceInclude` glob requires Node.js >= 22.0.0 (fs.promises.glob)");
169
+ for await (const file of fsp.glob(fullTraceEntry.glob, {
170
170
  cwd: tracedFile.pkgPath,
171
171
  exclude: (name) => name === "node_modules"
172
172
  })) {
173
173
  const fullPath = join(tracedFile.pkgPath, file);
174
174
  if (await isFile(fullPath)) tracedPackageVersion.files.push(fullPath);
175
175
  }
176
- }
176
+ } else tracedPackageVersion.files.push(...await listPkgFiles(tracedFile.pkgPath));
177
177
  }
178
178
  tracedPackageVersion.files.push(tracedFile.path);
179
179
  tracedFile.pkgName = pkgName;
180
180
  if (pkgJSON.version) tracedFile.pkgVersion = pkgJSON.version;
181
181
  }
182
+ for (const tracedPackage of Object.values(tracedPackages)) for (const versionEntry of Object.values(tracedPackage.versions)) {
183
+ const optionalDeps = versionEntry.pkgJSON.optionalDependencies;
184
+ if (!optionalDeps) continue;
185
+ for (const depName of Object.keys(optionalDeps)) {
186
+ if (tracedPackages[depName]) continue;
187
+ const resolved = resolveModulePath(depName + "/package.json", {
188
+ try: true,
189
+ from: versionEntry.path
190
+ });
191
+ if (!resolved) continue;
192
+ const depPath = dirname(resolved);
193
+ const depPkgJSON = await readJSON(resolved).catch(() => null);
194
+ if (!depPkgJSON) continue;
195
+ const depVersion = depPkgJSON.version || "0.0.0";
196
+ const files = await listPkgFiles(depPath);
197
+ tracedPackages[depName] = {
198
+ name: depName,
199
+ versions: { [depVersion]: {
200
+ path: depPath,
201
+ files,
202
+ pkgJSON: depPkgJSON
203
+ } }
204
+ };
205
+ }
206
+ }
182
207
  await opts?.hooks?.tracedPackages?.(tracedPackages);
183
208
  const usedAliases = {};
184
209
  const outDir = resolve(rootDir, opts.outDir || "dist", "node_modules");
@@ -290,6 +315,18 @@ function resolveFullTraceEntry(entries, pkgName) {
290
315
  if (entry === pkgName) return {};
291
316
  } else if (entry[0] === pkgName) return entry[1];
292
317
  }
318
+ async function listPkgFiles(dir) {
319
+ const files = [];
320
+ for (const entry of await fsp.readdir(dir, {
321
+ recursive: true,
322
+ withFileTypes: true
323
+ })) {
324
+ const fullPath = join(entry.parentPath, entry.name);
325
+ if (fullPath.slice(dir.length).split("/").includes("node_modules")) continue;
326
+ if (entry.isFile() || entry.isSymbolicLink() && await isFile(fullPath)) files.push(fullPath);
327
+ }
328
+ return files;
329
+ }
293
330
  async function isFile(file) {
294
331
  try {
295
332
  return (await fsp.stat(file)).isFile();
package/dist/db.d.mts CHANGED
@@ -5,10 +5,18 @@
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 should be fully traced (all files copied, not just NFT-detected ones).
10
+ *
11
+ * These packages use dynamic requires, runtime asset loading, or other patterns
12
+ * that prevent static analysis from detecting all required files.
13
+ * Can be passed to the plugin's `traceInclude` option to ensure they are always traced.
14
+ */
15
+ declare const FullTracePackages: readonly ["usb", "sodium-native", "aws-crt", "youch"];
8
16
  /**
9
17
  * Packages that must be externalized (traced as dependencies) rather than bundled,
10
18
  * due to bundler compatibility issues with their module format or dynamic imports.
11
19
  */
12
20
  declare const NonBundleablePackages: string[];
13
21
  //#endregion
14
- export { NodeNativePackages, NonBundleablePackages };
22
+ export { FullTracePackages, NodeNativePackages, NonBundleablePackages };
package/dist/db.mjs CHANGED
@@ -11,6 +11,7 @@ const NodeNativePackages = Object.freeze([
11
11
  "gl",
12
12
  "@napi-rs/canvas",
13
13
  "@napi-rs/image",
14
+ "@takumi-rs/core",
14
15
  "bcrypt",
15
16
  "kerberos",
16
17
  "scrypt",
@@ -36,15 +37,13 @@ const NodeNativePackages = Object.freeze([
36
37
  "zlib-sync",
37
38
  "snappy",
38
39
  "@napi-rs/snappy",
39
- "@napi-rs/lz4",
40
+ "lz4-napi",
40
41
  "msgpackr-extract",
41
42
  "@mongodb-js/zstd",
42
43
  "deasync",
43
- "node-gyp",
44
44
  "node-sass",
45
45
  "@parcel/watcher",
46
46
  "@parcel/source-map",
47
- "@mapbox/node-pre-gyp",
48
47
  "@swc/core",
49
48
  "esbuild",
50
49
  "lightningcss",
@@ -63,6 +62,7 @@ const NodeNativePackages = Object.freeze([
63
62
  "dtrace-provider",
64
63
  "microtime",
65
64
  "node-datachannel",
65
+ "zigpty",
66
66
  "ffi-napi",
67
67
  "ref-napi",
68
68
  "ref-struct-napi",
@@ -71,32 +71,47 @@ const NodeNativePackages = Object.freeze([
71
71
  "zeromq",
72
72
  "unix-dgram",
73
73
  "ssh2",
74
+ "aws-crt",
74
75
  "libxmljs2",
75
76
  "node-expat",
76
77
  "@xenova/transformers",
77
- "@llama-node/llama-cpp",
78
78
  "bufferutil",
79
79
  "utf-8-validate",
80
80
  "keytar",
81
81
  "iconv",
82
82
  "nodegit",
83
83
  "@sentry/profiling-node",
84
- "turbo-crc32",
85
84
  "@napi-rs/clipboard",
86
85
  "better-sqlite3-multiple-ciphers",
87
- "pdfium.js",
88
86
  "cbor-extract",
89
87
  "diskusage",
90
88
  "nsfw",
91
89
  "native-reg",
92
90
  "integer",
93
- "spawn-sync"
91
+ "md4x/napi",
92
+ "node-web-audio-api",
93
+ "@appsignal/nodejs",
94
+ "@statsig/statsig-node-core"
94
95
  ]);
95
96
  /**
97
+ * Packages that should be fully traced (all files copied, not just NFT-detected ones).
98
+ *
99
+ * These packages use dynamic requires, runtime asset loading, or other patterns
100
+ * that prevent static analysis from detecting all required files.
101
+ * Can be passed to the plugin's `traceInclude` option to ensure they are always traced.
102
+ */
103
+ const FullTracePackages = [
104
+ "usb",
105
+ "sodium-native",
106
+ "aws-crt",
107
+ "youch"
108
+ ];
109
+ /**
96
110
  * Packages that must be externalized (traced as dependencies) rather than bundled,
97
111
  * due to bundler compatibility issues with their module format or dynamic imports.
98
112
  */
99
113
  const NonBundleablePackages = [
114
+ "youch",
100
115
  "pg-native",
101
116
  "typeorm",
102
117
  "prisma",
@@ -108,7 +123,13 @@ const NonBundleablePackages = [
108
123
  "@vercel/node",
109
124
  "puppeteer",
110
125
  "playwright",
111
- "tslib"
126
+ "playwright-core",
127
+ "puppeteer-core",
128
+ "vscode-oniguruma",
129
+ "tslib",
130
+ "@highlight-run/node",
131
+ "import-in-the-middle",
132
+ "require-in-the-middle"
112
133
  ];
113
134
  //#endregion
114
- export { NodeNativePackages, NonBundleablePackages };
135
+ export { FullTracePackages, NodeNativePackages, NonBundleablePackages };
package/dist/index.mjs CHANGED
@@ -1,4 +1,3 @@
1
1
  import { n as traceNodeModules } from "./_chunks/trace.mjs";
2
- import "./_chunks/libs/pathe.mjs";
3
2
  import { NodeNativePackages } from "./db.mjs";
4
3
  export { NodeNativePackages, traceNodeModules };
@@ -1 +1 @@
1
- "use strict";var __importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,`__esModule`,{value:!0}),exports.default=analyze;const path_1=__importDefault(require(`path`)),estree_walker_1=require(`estree-walker`),pluginutils_1=require(`@rollup/pluginutils`),static_eval_1=require(`./utils/static-eval`),acorn_1=require(`acorn`),bindings_1=__importDefault(require(`bindings`)),ast_helpers_1=require(`./utils/ast-helpers`),glob_1=require(`glob`),get_package_base_1=require(`./utils/get-package-base`),binary_locators_1=require(`./utils/binary-locators`),interop_require_1=require(`./utils/interop-require`),special_cases_1=__importDefault(require(`./utils/special-cases`)),resolve_dependency_js_1=__importDefault(require(`./resolve-dependency.js`)),node_gyp_build_1=__importDefault(require(`node-gyp-build`)),node_pre_gyp_1=__importDefault(require(`@mapbox/node-pre-gyp`)),url_1=require(`url`),acorn=acorn_1.Parser.extend(require(`acorn-import-attributes`).importAttributesOrAssertions),os_1=__importDefault(require(`os`)),url_2=__importDefault(require(`url`)),wrappers_1=require(`./utils/wrappers`),resolve_from_1=__importDefault(require(`resolve-from`)),staticProcess={cwd:()=>cwd,env:{NODE_ENV:static_eval_1.UNKNOWN,[static_eval_1.UNKNOWN]:!0},[static_eval_1.UNKNOWN]:!0},EXPRESS_SET=Symbol(),EXPRESS_ENGINE=Symbol(),NBIND_INIT=Symbol(),SET_ROOT_DIR=Symbol(),PINO_TRANSPORT=Symbol(),PKG_INFO=Symbol(),FS_FN=Symbol(),FS_DIR_FN=Symbol(),BINDINGS=Symbol(),NODE_GYP_BUILD=Symbol(),fsSymbols={access:FS_FN,accessSync:FS_FN,createReadStream:FS_FN,exists:FS_FN,existsSync:FS_FN,fstat:FS_FN,fstatSync:FS_FN,lstat:FS_FN,lstatSync:FS_FN,open:FS_FN,readdir:FS_DIR_FN,readdirSync:FS_DIR_FN,readFile:FS_FN,readFileSync:FS_FN,stat:FS_FN,statSync:FS_FN},fsExtraSymbols={...fsSymbols,pathExists:FS_FN,pathExistsSync:FS_FN,readJson:FS_FN,readJSON:FS_FN,readJsonSync:FS_FN,readJSONSync:FS_FN},MODULE_FN=Symbol(),CREATE_REQUIRE=Symbol(),moduleSymbols={register:MODULE_FN,createRequire:CREATE_REQUIRE},staticModules=Object.assign(Object.create(null),{bindings:{default:BINDINGS},express:{default:function(){return{[static_eval_1.UNKNOWN]:!0,set:EXPRESS_SET,engine:EXPRESS_ENGINE}}},fs:{default:fsSymbols,...fsSymbols},module:{default:moduleSymbols,...moduleSymbols},"fs-extra":{default:fsExtraSymbols,...fsExtraSymbols},"graceful-fs":{default:fsSymbols,...fsSymbols},process:{default:staticProcess,...staticProcess},path:{default:{}},os:{default:os_1.default,...os_1.default},url:{default:url_2.default,...url_2.default},"@mapbox/node-pre-gyp":{default:node_pre_gyp_1.default,...node_pre_gyp_1.default},"node-pre-gyp":binary_locators_1.pregyp,"node-pre-gyp/lib/pre-binding":binary_locators_1.pregyp,"node-pre-gyp/lib/pre-binding.js":binary_locators_1.pregyp,"node-gyp-build":{default:NODE_GYP_BUILD},"@aminya/node-gyp-build":{default:NODE_GYP_BUILD},nbind:{init:NBIND_INIT,default:{init:NBIND_INIT}},"resolve-from":{default:resolve_from_1.default},"strong-globalize":{default:{SetRootDir:SET_ROOT_DIR},SetRootDir:SET_ROOT_DIR},pkginfo:{default:PKG_INFO},pino:{default:{[static_eval_1.UNKNOWN]:!0,transport:PINO_TRANSPORT},transport:PINO_TRANSPORT}}),globalBindings={_interopRequireDefault:interop_require_1.normalizeDefaultRequire,_interopRequireWildcard:interop_require_1.normalizeWildcardRequire,__importDefault:interop_require_1.normalizeDefaultRequire,__importStar:interop_require_1.normalizeWildcardRequire,MONGOOSE_DRIVER_PATH:void 0,URL:url_1.URL,Object:{assign:Object.assign}};globalBindings.global=globalBindings.GLOBAL=globalBindings.globalThis=globalBindings;const TRIGGER=Symbol();binary_locators_1.pregyp.find[TRIGGER]=!0;const staticPath=staticModules.path;Object.keys(path_1.default).forEach(e=>{let n=path_1.default[e];if(typeof n==`function`){let t=function e(){return n.apply(e,arguments)};t[TRIGGER]=!0,staticPath[e]=staticPath.default[e]=t}else staticPath[e]=staticPath.default[e]=n}),staticPath.resolve=staticPath.default.resolve=function(...e){return path_1.default.resolve.apply(this,[cwd,...e])},staticPath.resolve[TRIGGER]=!0;const excludeAssetExtensions=new Set([`.h`,`.cmake`,`.c`,`.cpp`]),excludeAssetFiles=new Set([`CHANGELOG.md`,`README.md`,`readme.md`,`changelog.md`]);let cwd;const absoluteRegEx=/^\/[^\/]+|^[a-z]:[\\/][^\\/]+/i;function isAbsolutePathOrUrl(e){if(e instanceof url_1.URL)return e.protocol===`file:`;if(typeof e==`string`){if(e.startsWith(`file:`))try{return new url_1.URL(e),!0}catch{return!1}return absoluteRegEx.test(e)}return!1}const BOUND_REQUIRE=Symbol(),repeatGlobRegEx=/([\/\\]\*\*[\/\\]\*)+/g;async function analyze(e,a,c){let l=new Set,u=new Set,d=new Set,f=path_1.default.dirname(e);cwd=c.cwd;let p=(0,get_package_base_1.getPackageBase)(e),m=e=>{if(!c.analysis.emitGlobs)return;e=e.replaceAll(path_1.default.sep,path_1.default.posix.sep);let n=e.indexOf(static_eval_1.WILDCARD),r=n===-1?e.length:e.lastIndexOf(path_1.default.posix.sep,n),a=e.substring(0,r),o=e.slice(r),s=o.replace(static_eval_1.wildcardRegEx,(e,n)=>o[n-1]===path_1.default.posix.sep?`**/*`:`*`).replace(repeatGlobRegEx,`/**/*`)||`/**/*`;c.ignoreFn(path_1.default.relative(c.base,a+s))||(h=h.then(async()=>{c.log&&console.log(`Globbing `+a+s),(await(0,glob_1.glob)(a+s,{mark:!0,ignore:a+`/**/node_modules/**/*`,dot:!0,nodir:!0})).filter(e=>!excludeAssetExtensions.has(path_1.default.extname(e))&&!excludeAssetFiles.has(path_1.default.basename(e))).forEach(e=>l.add(e))}))},h=Promise.resolve();a=a.replace(/^#![^\n\r]*[\r\n]/,``);let g,_=!1;try{g=acorn.parse(a,{ecmaVersion:`latest`,allowReturnOutsideFunction:!0}),_=!1}catch(t){t&&t.message&&t.message.includes(`sourceType: module`)||c.warnings.add(Error(`Failed to parse ${e} as script:\n${t&&t.message}`))}if(!g)try{g=acorn.parse(a,{ecmaVersion:`latest`,sourceType:`module`,allowAwaitOutsideFunction:!0}),_=!0}catch(t){return c.warnings.add(Error(`Failed to parse ${e} as module:\n${t&&t.message}`)),{assets:l,deps:u,imports:d,isESM:!1}}let v=(0,url_1.pathToFileURL)(e).href,y=Object.assign(Object.create(null),{__dirname:{shadowDepth:0,value:{value:path_1.default.resolve(e,`..`)}},__filename:{shadowDepth:0,value:{value:e}},process:{shadowDepth:0,value:{value:staticProcess}}});(!_||c.mixedModules)&&(y.require={shadowDepth:0,value:{value:{[static_eval_1.FUNCTION](e){return u.add(e),staticModules[e.startsWith(`node:`)?e.slice(5):e].default},resolve(t){return(0,resolve_dependency_js_1.default)(t,e,c)}}}},y.require.value.value.resolve[TRIGGER]=!0);function b(e,t){e===`require`&&`value`in t&&t.value!==BOUND_REQUIRE||(y[e]={shadowDepth:0,value:t})}function x(e){let t=y[e];if(t&&t.shadowDepth===0)return t.value}function S(e){let t=y[e];return t&&t.shadowDepth===0}if((_||c.mixedModules)&&isAst(g))for(let e of g.body)if(e.type===`ImportDeclaration`){let t=String(e.source.value);u.add(t);let n=staticModules[t.startsWith(`node:`)?t.slice(5):t];if(n)for(let t of e.specifiers)t.type===`ImportNamespaceSpecifier`?b(t.local.name,{value:n}):t.type===`ImportDefaultSpecifier`&&`default`in n?b(t.local.name,{value:n.default}):t.type===`ImportSpecifier`&&t.imported.name in n&&b(t.local.name,{value:n[t.imported.name]})}else (e.type===`ExportNamedDeclaration`||e.type===`ExportAllDeclaration`)&&e.source&&u.add(String(e.source.value));async function C(e,t=!0){let n=Object.create(null);return Object.keys(globalBindings).forEach(e=>{n[e]={value:globalBindings[e]}}),Object.keys(y).forEach(e=>{n[e]=x(e)}),n[`import.meta`]={url:v},await(0,static_eval_1.evaluate)(e,n,t)}let w,T,E=!1;function D(e){if(!c.analysis.emitGlobs||!e.startsWith(`./`)&&!e.startsWith(`../`))return;e=path_1.default.resolve(f,e).replaceAll(path_1.default.sep,path_1.default.posix.sep);let n=e.indexOf(static_eval_1.WILDCARD),r=n===-1?e.length:e.lastIndexOf(path_1.default.posix.sep,n),a=e.substring(0,r),o=e.slice(r),s=o.replace(static_eval_1.wildcardRegEx,(e,n)=>o[n-1]===path_1.default.posix.sep?`**/*`:`*`)||`/**/*`;s.endsWith(`*`)||(s+=`?(`+(c.ts?`.ts|.tsx|`:``)+`.js|.json|.node)`),!c.ignoreFn(path_1.default.relative(c.base,a+s))&&(h=h.then(async()=>{c.log&&console.log(`Globbing `+a+s),(await(0,glob_1.glob)(a+s,{mark:!0,ignore:a+`/**/node_modules/**/*`,nodir:!0})).filter(e=>!excludeAssetExtensions.has(path_1.default.extname(e))&&!excludeAssetFiles.has(path_1.default.basename(e))).forEach(e=>u.add(e))}))}async function O(e,t=!1){if(e.type===`ConditionalExpression`){await O(e.consequent,t),await O(e.alternate,t);return}if(e.type===`LogicalExpression`){await O(e.left,t),await O(e.right,t);return}let n=await C(e,!0);if(!n)return;function r(e){(t?d:u).add(e)}`value`in n&&typeof n.value==`string`?n.wildcards?n.wildcards.length>=1&&D(n.value):r(n.value):(`ifTrue`in n&&typeof n.ifTrue==`string`&&r(n.ifTrue),`else`in n&&typeof n.else==`string`&&r(n.else))}let k=(0,pluginutils_1.attachScopes)(g,`scope`);isAst(g)&&((0,wrappers_1.handleWrappers)(g),await(0,special_cases_1.default)({id:e,ast:g,emitDependency:e=>u.add(e),emitAsset:e=>l.add(e),emitAssetDirectory:m,job:c}));async function A(e,t){if(!w)throw Error(`Internal error: No staticChildNode for backtrack.`);let n=await C(e,!0);if(n&&(`value`in n&&typeof n.value!=`symbol`||`ifTrue`in n&&typeof n.ifTrue!=`symbol`&&typeof n.else!=`symbol`)){T=n,w=e,t&&t.skip();return}await P()}return await(0,estree_walker_1.asyncWalk)(g,{async enter(n,r){let i=n,a=r;if(i.scope){k=i.scope;for(let e in i.scope.declarations)e in y&&y[e].shadowDepth++}if(!w&&a){if(i.type===`Identifier`){if((0,ast_helpers_1.isIdentifierRead)(i,a)&&c.analysis.computeFileReferences){let e;(typeof(e=x(i.name)?.value)==`string`&&e.match(absoluteRegEx)||e&&(typeof e==`function`||typeof e==`object`)&&e[TRIGGER])&&(T={value:typeof e==`string`?e:void 0},w=i,await A(a,this))}}else if(c.analysis.computeFileReferences&&i.type===`MemberExpression`&&i.object.type===`MetaProperty`&&i.object.meta.name===`import`&&i.object.property.name===`meta`&&(i.property.computed?i.property.value:i.property.name)===`url`)T={value:v},w=i,await A(a,this);else if(i.type===`ImportExpression`){await O(i.source,!0);return}else if(i.type===`CallExpression`){if((!_||c.mixedModules)&&i.callee.type===`Identifier`&&i.arguments.length){if(i.callee.name===`require`&&y.require&&y.require.shadowDepth===0){await O(i.arguments[0]);return}}else if((!_||c.mixedModules)&&i.callee.type===`MemberExpression`&&i.callee.object.type===`Identifier`&&i.callee.object.name===`module`&&!(`module`in y)&&i.callee.property.type===`Identifier`&&!i.callee.computed&&i.callee.property.name===`require`&&i.arguments.length){await O(i.arguments[0]);return}else if((!_||c.mixedModules)&&i.callee.type===`MemberExpression`&&i.callee.object.type===`Identifier`&&i.callee.object.name===`require`&&y.require&&y.require.shadowDepth===0&&i.callee.property.type===`Identifier`&&!i.callee.computed&&i.callee.property.name===`resolve`&&i.arguments.length){await O(i.arguments[0]);return}let n=c.analysis.evaluatePureExpressions&&await C(i.callee,!1);if(n&&`value`in n&&typeof n.value==`function`&&n.value[TRIGGER]&&c.analysis.computeFileReferences)T=await C(i,!0),T&&a&&(w=i,await A(a,this));else if(n&&`value`in n&&typeof n.value==`symbol`)switch(n.value){case BOUND_REQUIRE:i.arguments.length===1&&i.arguments[0].type===`Literal`&&i.callee.type===`Identifier`&&(!y.require||y.require.shadowDepth===0)&&await O(i.arguments[0]);break;case BINDINGS:if(i.arguments.length){let e=await C(i.arguments[0],!1);if(e&&`value`in e&&e.value){let t;typeof e.value==`object`?t=e.value:typeof e.value==`string`&&(t={bindings:e.value}),t.path||=!0,t.module_root=p;let n;try{n=(0,bindings_1.default)(t)}catch{}n&&(T={value:n},w=i,await P())}}break;case NODE_GYP_BUILD:if(i.arguments.length){let e=await C(i.arguments[0],!1);if(e&&`value`in e&&e.value){let t=e.value,n;try{let e=i?.callee?.arguments?.[0]?.value||`node-gyp-build`,r=(0,resolve_from_1.default)(t,e);n=require(r).path(t)}catch{try{n=node_gyp_build_1.default.path(t)}catch{}}n&&(T={value:n},w=i,await P())}}break;case NBIND_INIT:if(i.arguments.length){let e=await C(i.arguments[0],!1);if(e&&`value`in e&&(typeof e.value==`string`||e.value===void 0)){let n=(0,binary_locators_1.nbind)(e.value);if(n&&n.path)return u.add(path_1.default.relative(f,n.path).replace(/\\/g,`/`)),this.skip()}}break;case EXPRESS_SET:if(i.arguments.length===2&&i.arguments[0].type===`Literal`&&i.arguments[0].value===`view engine`&&!E)return await O(i.arguments[1]),this.skip();break;case EXPRESS_ENGINE:E=!0;break;case PINO_TRANSPORT:if(i.arguments.length>=1&&i.arguments[0].type===`ObjectExpression`){for(let e of i.arguments[0].properties)if(e.type===`Property`&&!e.computed&&e.key.type===`Identifier`){if(e.key.name===`target`&&e.value.type===`Literal`)await O(e.value);else if((e.key.name===`targets`||e.key.name===`pipeline`)&&e.value.type===`ArrayExpression`){for(let t of e.value.elements)if(t&&t.type===`ObjectExpression`)for(let e of t.properties)e.type===`Property`&&!e.computed&&e.key.type===`Identifier`&&e.key.name===`target`&&e.value.type===`Literal`&&await O(e.value)}}return this.skip()}break;case FS_FN:case FS_DIR_FN:if(i.arguments[0]&&c.analysis.computeFileReferences&&(T=await C(i.arguments[0],!0),T))return w=i.arguments[0],n.value===FS_DIR_FN&&i.arguments[0].type===`Identifier`&&i.arguments[0].name===`__dirname`?m(f):await A(a,this),this.skip();break;case SET_ROOT_DIR:if(i.arguments[0]){let e=await C(i.arguments[0],!1);return e&&`value`in e&&e.value&&m(e.value+`/intl`),this.skip()}break;case PKG_INFO:let r=path_1.default.resolve(e,`../package.json`),s=path_1.default.resolve(`/package.json`);for(;r!==s&&await c.stat(r)===null;)r=path_1.default.resolve(r,`../../package.json`);r!==s&&l.add(r);break;case MODULE_FN:if(i.arguments.length&&i.arguments[0].type===`Literal`){let e=i.arguments[0].value;if(e.startsWith(`.`)){let n=i.arguments.length>1?await C(i.arguments[1]):void 0;if(n&&`value`in n){let r=n.value instanceof url_1.URL?n.value.href:typeof n.value==`string`?n.value:n.value.parentURL,i=new url_1.URL(e,r).href,a=v.slice(0,v.lastIndexOf(`/`)),o=path_1.default.relative(a,i),s=o.startsWith(`.`)?o:`./`+o;d.add(s)}}else d.add(e)}break}}else if(i.type===`VariableDeclaration`&&a&&!(0,ast_helpers_1.isVarLoop)(a)&&c.analysis.evaluatePureExpressions)for(let e of i.declarations){if(!e.init)continue;let t=await C(e.init,!0);if(t){if(e.id.type===`Identifier`)b(e.id.name,t);else if(e.id.type===`ObjectPattern`&&`value`in t)for(let n of e.id.properties)n.type!==`Property`||n.key.type!==`Identifier`||n.value.type!==`Identifier`||typeof t.value!=`object`||t.value===null||!(n.key.name in t.value)||b(n.value.name,{value:t.value[n.key.name]});!(`value`in t)&&isAbsolutePathOrUrl(t.ifTrue)&&isAbsolutePathOrUrl(t.else)&&(T=t,w=e.init,await P())}}else if(i.type===`AssignmentExpression`&&a&&!(0,ast_helpers_1.isLoop)(a)&&c.analysis.evaluatePureExpressions){if(!S(i.left.name)){let e=await C(i.right,!1);if(e&&`value`in e){if(i.left.type===`Identifier`)b(i.left.name,e);else if(i.left.type===`ObjectPattern`)for(let t of i.left.properties)t.type!==`Property`||t.key.type!==`Identifier`||t.value.type!==`Identifier`||typeof e.value!=`object`||e.value===null||!(t.key.name in e.value)||b(t.value.name,{value:e.value[t.key.name]});isAbsolutePathOrUrl(e.value)&&(T=e,w=i.right,await P())}}}else if((!_||c.mixedModules)&&(i.type===`FunctionDeclaration`||i.type===`FunctionExpression`||i.type===`ArrowFunctionExpression`)&&(i.arguments||i.params)[0]&&(i.arguments||i.params)[0].type===`Identifier`){let e,t;if((i.type===`ArrowFunctionExpression`||i.type===`FunctionExpression`)&&a&&a.type===`VariableDeclarator`&&a.id.type===`Identifier`?(e=a.id,t=i.arguments||i.params):i.id&&(e=i.id,t=i.arguments||i.params),e&&i.body.body){let n,r=!1;for(let e=0;e<i.body.body.length;e++)if(i.body.body[e].type===`VariableDeclaration`&&!n&&(n=i.body.body[e].declarations.find(e=>e&&e.id&&e.id.type===`Identifier`&&e.init&&e.init.type===`CallExpression`&&e.init.callee.type===`Identifier`&&e.init.callee.name===`require`&&y.require.shadowDepth===0&&e.init.arguments[0]&&e.init.arguments[0].type===`Identifier`&&e.init.arguments[0].name===t[0].name)),n&&i.body.body[e].type===`ReturnStatement`&&i.body.body[e].argument&&i.body.body[e].argument.type===`Identifier`&&i.body.body[e].argument.name===n.id.name){r=!0;break}r&&b(e.name,{value:BOUND_REQUIRE})}}if(i.type===`CallExpression`&&i.callee.type===`MemberExpression`&&i.callee.object.type===`Identifier`&&i.callee.object.name===`module`&&i.callee.property.type===`Identifier`&&i.callee.property.name===`createRequire`&&a.type===`VariableDeclarator`&&a.id.type===`Identifier`){let e=a.id.name;b(e,{value:BOUND_REQUIRE})}if(i.type===`CallExpression`&&i.callee.type===`Identifier`&&i.callee.name===`createRequire`){let e=x(`createRequire`);if(e&&`value`in e&&e.value===CREATE_REQUIRE&&a.type===`VariableDeclarator`&&a.id.type===`Identifier`){let e=a.id.name;b(e,{value:BOUND_REQUIRE})}}}},async leave(e,t){let n=e,r=t;if(n.scope){k.parent&&(k=k.parent);for(let e in n.scope.declarations)e in y&&(y[e].shadowDepth>0?y[e].shadowDepth--:delete y[e])}w&&r&&await A(r,this)}}),await h,{assets:l,deps:u,imports:d,isESM:_};async function j(n){let r=n.indexOf(static_eval_1.WILDCARD),a=r===-1?n.length:n.lastIndexOf(path_1.default.sep,r),o=n.substring(0,a);try{var s=await c.stat(o);if(s===null)throw Error(`file not found`)}catch{return}if(!(r!==-1&&s.isFile())){if(p){let r=e.substring(0,e.indexOf(path_1.default.sep+`node_modules`))+path_1.default.sep+`node_modules`+path_1.default.sep;if(!n.startsWith(r)){c.log&&console.log(`Skipping asset emission of `+n+` for `+e+` as it is outside the package base `+p);return}}if(s.isFile()){if(c.ignoreFn(path_1.default.relative(c.base,n)))return;l.add(n)}else if(s.isDirectory()){if(c.ignoreFn(path_1.default.relative(c.base,n)))return;M(n)&&m(n)}}}function M(n){let r=``;if(n.endsWith(path_1.default.sep)?r=path_1.default.sep:n.endsWith(path_1.default.sep+static_eval_1.WILDCARD)?r=path_1.default.sep+static_eval_1.WILDCARD:n.endsWith(static_eval_1.WILDCARD)&&(r=static_eval_1.WILDCARD),n===f+r||n===cwd+r||n.endsWith(path_1.default.sep+`node_modules`+r)||f.startsWith(n.slice(0,n.length-r.length)+path_1.default.sep))return!1;if(p){let r=e.substring(0,e.indexOf(path_1.default.sep+`node_modules`))+path_1.default.sep+`node_modules`+path_1.default.sep;if(!n.startsWith(r))return c.log&&console.log(`Skipping asset emission of `+n.replace(static_eval_1.wildcardRegEx,`*`)+` for `+e+` as it is outside the package base `+p),!1}return!0}function N(e){return e instanceof url_1.URL?(0,url_1.fileURLToPath)(e):e.startsWith(`file:`)?(0,url_1.fileURLToPath)(new url_1.URL(e)):path_1.default.resolve(e)}async function P(){if(T){if(`value`in T&&isAbsolutePathOrUrl(T.value))try{await j(N(T.value))}catch{}else if(`ifTrue`in T&&`else`in T&&isAbsolutePathOrUrl(T.ifTrue)&&isAbsolutePathOrUrl(T.else)){let e;try{e=N(T.ifTrue)}catch{}let t;try{t=N(T.else)}catch{}e&&await j(e),t&&await j(t)}else if(w&&w.type===`ArrayExpression`&&`value`in T&&T.value instanceof Array)for(let e of T.value)try{await j(N(e))}catch{}w=T=void 0}}}function isAst(e){return`body`in e}
1
+ "use strict";var __importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,`__esModule`,{value:!0}),exports.default=analyze;const path_1=__importDefault(require(`path`)),estree_walker_1=require(`estree-walker`),pluginutils_1=require(`@rollup/pluginutils`),static_eval_1=require(`./utils/static-eval`),acorn_1=require(`acorn`),bindings_1=__importDefault(require(`bindings`)),ast_helpers_1=require(`./utils/ast-helpers`),glob_1=require(`glob`),get_package_base_1=require(`./utils/get-package-base`),binary_locators_1=require(`./utils/binary-locators`),interop_require_1=require(`./utils/interop-require`),special_cases_1=__importDefault(require(`./utils/special-cases`)),resolve_dependency_js_1=__importDefault(require(`./resolve-dependency.js`)),node_gyp_build_1=__importDefault(require(`node-gyp-build`)),node_pre_gyp_1=__importDefault(require(`@mapbox/node-pre-gyp`)),url_1=require(`url`),acorn=acorn_1.Parser.extend(require(`acorn-import-attributes`).importAttributesOrAssertions),os_1=__importDefault(require(`os`)),url_2=__importDefault(require(`url`)),wrappers_1=require(`./utils/wrappers`),resolve_from_1=__importDefault(require(`resolve-from`)),staticProcess={cwd:()=>cwd,env:{NODE_ENV:static_eval_1.UNKNOWN,[static_eval_1.UNKNOWN]:!0},[static_eval_1.UNKNOWN]:!0},EXPRESS_SET=Symbol(),EXPRESS_ENGINE=Symbol(),NBIND_INIT=Symbol(),SET_ROOT_DIR=Symbol(),PINO_TRANSPORT=Symbol(),FASTIFY_LOGGER=Symbol(),PKG_INFO=Symbol(),FS_FN=Symbol(),FS_DIR_FN=Symbol(),BINDINGS=Symbol(),NODE_GYP_BUILD=Symbol(),fsSymbols={access:FS_FN,accessSync:FS_FN,createReadStream:FS_FN,exists:FS_FN,existsSync:FS_FN,fstat:FS_FN,fstatSync:FS_FN,lstat:FS_FN,lstatSync:FS_FN,open:FS_FN,readdir:FS_DIR_FN,readdirSync:FS_DIR_FN,readFile:FS_FN,readFileSync:FS_FN,stat:FS_FN,statSync:FS_FN},fsExtraSymbols={...fsSymbols,pathExists:FS_FN,pathExistsSync:FS_FN,readJson:FS_FN,readJSON:FS_FN,readJsonSync:FS_FN,readJSONSync:FS_FN},MODULE_FN=Symbol(),CREATE_REQUIRE=Symbol(),moduleSymbols={register:MODULE_FN,createRequire:CREATE_REQUIRE},staticModules=Object.assign(Object.create(null),{bindings:{default:BINDINGS},express:{default:function(){return{[static_eval_1.UNKNOWN]:!0,set:EXPRESS_SET,engine:EXPRESS_ENGINE}}},fs:{default:fsSymbols,...fsSymbols},module:{default:moduleSymbols,...moduleSymbols},"fs-extra":{default:fsExtraSymbols,...fsExtraSymbols},"graceful-fs":{default:fsSymbols,...fsSymbols},process:{default:staticProcess,...staticProcess},path:{default:{}},os:{default:os_1.default,...os_1.default},url:{default:url_2.default,...url_2.default},"@mapbox/node-pre-gyp":{default:node_pre_gyp_1.default,...node_pre_gyp_1.default},"node-pre-gyp":binary_locators_1.pregyp,"node-pre-gyp/lib/pre-binding":binary_locators_1.pregyp,"node-pre-gyp/lib/pre-binding.js":binary_locators_1.pregyp,"node-gyp-build":{default:NODE_GYP_BUILD},"@aminya/node-gyp-build":{default:NODE_GYP_BUILD},nbind:{init:NBIND_INIT,default:{init:NBIND_INIT}},"resolve-from":{default:resolve_from_1.default},"strong-globalize":{default:{SetRootDir:SET_ROOT_DIR},SetRootDir:SET_ROOT_DIR},pkginfo:{default:PKG_INFO},pino:{default:{[static_eval_1.UNKNOWN]:!0,transport:PINO_TRANSPORT},transport:PINO_TRANSPORT},fastify:{default:FASTIFY_LOGGER}}),globalBindings={_interopRequireDefault:interop_require_1.normalizeDefaultRequire,_interopRequireWildcard:interop_require_1.normalizeWildcardRequire,__importDefault:interop_require_1.normalizeDefaultRequire,__importStar:interop_require_1.normalizeWildcardRequire,MONGOOSE_DRIVER_PATH:void 0,URL:url_1.URL,Object:{assign:Object.assign}};globalBindings.global=globalBindings.GLOBAL=globalBindings.globalThis=globalBindings;const TRIGGER=Symbol();binary_locators_1.pregyp.find[TRIGGER]=!0;const staticPath=staticModules.path;Object.keys(path_1.default).forEach(e=>{let n=path_1.default[e];if(typeof n==`function`){let t=function e(){return n.apply(e,arguments)};t[TRIGGER]=!0,staticPath[e]=staticPath.default[e]=t}else staticPath[e]=staticPath.default[e]=n}),staticPath.resolve=staticPath.default.resolve=function(...e){return path_1.default.resolve.apply(this,[cwd,...e])},staticPath.resolve[TRIGGER]=!0;const excludeAssetExtensions=new Set([`.h`,`.cmake`,`.c`,`.cpp`]),excludeAssetFiles=new Set([`CHANGELOG.md`,`README.md`,`readme.md`,`changelog.md`]);let cwd;const absoluteRegEx=/^\/[^\/]+|^[a-z]:[\\/][^\\/]+/i;function isAbsolutePathOrUrl(e){if(e instanceof url_1.URL)return e.protocol===`file:`;if(typeof e==`string`){if(e.startsWith(`file:`))try{return new url_1.URL(e),!0}catch{return!1}return absoluteRegEx.test(e)}return!1}const BOUND_REQUIRE=Symbol(),repeatGlobRegEx=/([\/\\]\*\*[\/\\]\*)+/g;async function processPinoTransportObject(e,t){for(let n of e.properties)if(n.type===`Property`&&!n.computed&&n.key.type===`Identifier`){if(n.key.name===`target`&&n.value.type===`Literal`)await t(n.value);else if((n.key.name===`targets`||n.key.name===`pipeline`)&&n.value.type===`ArrayExpression`){for(let e of n.value.elements)if(e&&e.type===`ObjectExpression`)for(let n of e.properties)n.type===`Property`&&!n.computed&&n.key.type===`Identifier`&&n.key.name===`target`&&n.value.type===`Literal`&&await t(n.value)}}}async function analyze(e,a,c){let l=new Set,u=new Set,d=new Set,f=path_1.default.dirname(e);cwd=c.cwd;let p=(0,get_package_base_1.getPackageBase)(e),m=e=>{if(!c.analysis.emitGlobs)return;e=e.replaceAll(path_1.default.sep,path_1.default.posix.sep);let n=e.indexOf(static_eval_1.WILDCARD),r=n===-1?e.length:e.lastIndexOf(path_1.default.posix.sep,n),a=e.substring(0,r),o=e.slice(r),s=o.replace(static_eval_1.wildcardRegEx,(e,n)=>o[n-1]===path_1.default.posix.sep?`**/*`:`*`).replace(repeatGlobRegEx,`/**/*`)||`/**/*`;c.ignoreFn(path_1.default.relative(c.base,a+s))||(h=h.then(async()=>{c.log&&console.log(`Globbing `+a+s),(await(0,glob_1.glob)(a+s,{mark:!0,ignore:a+`/**/node_modules/**/*`,dot:!0,nodir:!0})).filter(e=>!excludeAssetExtensions.has(path_1.default.extname(e))&&!excludeAssetFiles.has(path_1.default.basename(e))).forEach(e=>l.add(e))}))},h=Promise.resolve();a=a.replace(/^#![^\n\r]*[\r\n]/,``);let g,_=!1;try{g=acorn.parse(a,{ecmaVersion:`latest`,allowReturnOutsideFunction:!0}),_=!1}catch(t){t&&t.message&&t.message.includes(`sourceType: module`)||c.warnings.add(Error(`Failed to parse ${e} as script:\n${t&&t.message}`))}if(!g)try{g=acorn.parse(a,{ecmaVersion:`latest`,sourceType:`module`,allowAwaitOutsideFunction:!0}),_=!0}catch(t){return c.warnings.add(Error(`Failed to parse ${e} as module:\n${t&&t.message}`)),{assets:l,deps:u,imports:d,isESM:!1}}let v=(0,url_1.pathToFileURL)(e).href,y=Object.assign(Object.create(null),{__dirname:{shadowDepth:0,value:{value:path_1.default.resolve(e,`..`)}},__filename:{shadowDepth:0,value:{value:e}},process:{shadowDepth:0,value:{value:staticProcess}}});(!_||c.mixedModules)&&(y.require={shadowDepth:0,value:{value:{[static_eval_1.FUNCTION](e){return u.add(e),staticModules[e.startsWith(`node:`)?e.slice(5):e].default},resolve(t){return(0,resolve_dependency_js_1.default)(t,e,c)}}}},y.require.value.value.resolve[TRIGGER]=!0);function b(e,t){e===`require`&&`value`in t&&t.value!==BOUND_REQUIRE||(y[e]={shadowDepth:0,value:t})}function x(e){let t=y[e];if(t&&t.shadowDepth===0)return t.value}function S(e){let t=y[e];return t&&t.shadowDepth===0}if((_||c.mixedModules)&&isAst(g))for(let e of g.body)if(e.type===`ImportDeclaration`){let t=String(e.source.value);u.add(t);let n=staticModules[t.startsWith(`node:`)?t.slice(5):t];if(n)for(let t of e.specifiers)t.type===`ImportNamespaceSpecifier`?b(t.local.name,{value:n}):t.type===`ImportDefaultSpecifier`&&`default`in n?b(t.local.name,{value:n.default}):t.type===`ImportSpecifier`&&t.imported.name in n&&b(t.local.name,{value:n[t.imported.name]})}else (e.type===`ExportNamedDeclaration`||e.type===`ExportAllDeclaration`)&&e.source&&u.add(String(e.source.value));async function C(e,t=!0){let n=Object.create(null);return Object.keys(globalBindings).forEach(e=>{n[e]={value:globalBindings[e]}}),Object.keys(y).forEach(e=>{n[e]=x(e)}),n[`import.meta`]={url:v},await(0,static_eval_1.evaluate)(e,n,t)}let w,T,E=!1;function D(e){if(!c.analysis.emitGlobs||!e.startsWith(`./`)&&!e.startsWith(`../`))return;e=path_1.default.resolve(f,e).replaceAll(path_1.default.sep,path_1.default.posix.sep);let n=e.indexOf(static_eval_1.WILDCARD),r=n===-1?e.length:e.lastIndexOf(path_1.default.posix.sep,n),a=e.substring(0,r),o=e.slice(r),s=o.replace(static_eval_1.wildcardRegEx,(e,n)=>o[n-1]===path_1.default.posix.sep?`**/*`:`*`)||`/**/*`;s.endsWith(`*`)||(s+=`?(`+(c.ts?`.ts|.tsx|`:``)+`.js|.json|.node)`),!c.ignoreFn(path_1.default.relative(c.base,a+s))&&(h=h.then(async()=>{c.log&&console.log(`Globbing `+a+s),(await(0,glob_1.glob)(a+s,{mark:!0,ignore:a+`/**/node_modules/**/*`,nodir:!0})).filter(e=>!excludeAssetExtensions.has(path_1.default.extname(e))&&!excludeAssetFiles.has(path_1.default.basename(e))).forEach(e=>u.add(e))}))}async function O(e,t=!1){if(e.type===`ConditionalExpression`){await O(e.consequent,t),await O(e.alternate,t);return}if(e.type===`LogicalExpression`){await O(e.left,t),await O(e.right,t);return}let n=await C(e,!0);if(!n)return;function r(e){(t?d:u).add(e)}`value`in n&&typeof n.value==`string`?n.wildcards?n.wildcards.length>=1&&D(n.value):r(n.value):(`ifTrue`in n&&typeof n.ifTrue==`string`&&r(n.ifTrue),`else`in n&&typeof n.else==`string`&&r(n.else))}let k=(0,pluginutils_1.attachScopes)(g,`scope`);isAst(g)&&((0,wrappers_1.handleWrappers)(g),await(0,special_cases_1.default)({id:e,ast:g,emitDependency:e=>u.add(e),emitAsset:e=>l.add(e),emitAssetDirectory:m,job:c}));async function A(e,t){if(!w)throw Error(`Internal error: No staticChildNode for backtrack.`);let n=await C(e,!0);if(n&&(`value`in n&&typeof n.value!=`symbol`||`ifTrue`in n&&typeof n.ifTrue!=`symbol`&&typeof n.else!=`symbol`)){T=n,w=e,t&&t.skip();return}await P()}return await(0,estree_walker_1.asyncWalk)(g,{async enter(n,r){let i=n,a=r;if(i.scope){k=i.scope;for(let e in i.scope.declarations)e in y&&y[e].shadowDepth++}if(!w&&a){if(i.type===`Identifier`){if((0,ast_helpers_1.isIdentifierRead)(i,a)&&c.analysis.computeFileReferences){let e;(typeof(e=x(i.name)?.value)==`string`&&e.match(absoluteRegEx)||e&&(typeof e==`function`||typeof e==`object`)&&e[TRIGGER])&&(T={value:typeof e==`string`?e:void 0},w=i,await A(a,this))}}else if(c.analysis.computeFileReferences&&i.type===`MemberExpression`&&i.object.type===`MetaProperty`&&i.object.meta.name===`import`&&i.object.property.name===`meta`&&(i.property.computed?i.property.value:i.property.name)===`url`)T={value:v},w=i,await A(a,this);else if(i.type===`ImportExpression`){await O(i.source,!0);return}else if(i.type===`CallExpression`){if((!_||c.mixedModules)&&i.callee.type===`Identifier`&&i.arguments.length){if(i.callee.name===`require`&&y.require&&y.require.shadowDepth===0){await O(i.arguments[0]);return}}else if((!_||c.mixedModules)&&i.callee.type===`MemberExpression`&&i.callee.object.type===`Identifier`&&i.callee.object.name===`module`&&!(`module`in y)&&i.callee.property.type===`Identifier`&&!i.callee.computed&&i.callee.property.name===`require`&&i.arguments.length){await O(i.arguments[0]);return}else if((!_||c.mixedModules)&&i.callee.type===`MemberExpression`&&i.callee.object.type===`Identifier`&&i.callee.object.name===`require`&&y.require&&y.require.shadowDepth===0&&i.callee.property.type===`Identifier`&&!i.callee.computed&&i.callee.property.name===`resolve`&&i.arguments.length){await O(i.arguments[0]);return}let n=c.analysis.evaluatePureExpressions&&await C(i.callee,!1);if(n&&`value`in n&&typeof n.value==`function`&&n.value[TRIGGER]&&c.analysis.computeFileReferences)T=await C(i,!0),T&&a&&(w=i,await A(a,this));else if(n&&`value`in n&&typeof n.value==`symbol`)switch(n.value){case BOUND_REQUIRE:i.arguments.length===1&&i.arguments[0].type===`Literal`&&i.callee.type===`Identifier`&&(!y.require||y.require.shadowDepth===0)&&await O(i.arguments[0]);break;case BINDINGS:if(i.arguments.length){let e=await C(i.arguments[0],!1);if(e&&`value`in e&&e.value){let t;typeof e.value==`object`?t=e.value:typeof e.value==`string`&&(t={bindings:e.value}),t.path||=!0,t.module_root=p;let n;try{n=(0,bindings_1.default)(t)}catch{}n&&(T={value:n},w=i,await P())}}break;case NODE_GYP_BUILD:if(i.arguments.length){let e=await C(i.arguments[0],!1);if(e&&`value`in e&&e.value){let t=e.value,n;try{let e=i?.callee?.arguments?.[0]?.value||`node-gyp-build`,r=(0,resolve_from_1.default)(t,e);n=require(r).path(t)}catch{try{n=node_gyp_build_1.default.path(t)}catch{}}n&&(T={value:n},w=i,await P())}}break;case NBIND_INIT:if(i.arguments.length){let e=await C(i.arguments[0],!1);if(e&&`value`in e&&(typeof e.value==`string`||e.value===void 0)){let n=(0,binary_locators_1.nbind)(e.value);if(n&&n.path)return u.add(path_1.default.relative(f,n.path).replace(/\\/g,`/`)),this.skip()}}break;case EXPRESS_SET:if(i.arguments.length===2&&i.arguments[0].type===`Literal`&&i.arguments[0].value===`view engine`&&!E)return await O(i.arguments[1]),this.skip();break;case EXPRESS_ENGINE:E=!0;break;case PINO_TRANSPORT:if(i.arguments.length>=1&&i.arguments[0].type===`ObjectExpression`)return await processPinoTransportObject(i.arguments[0],O),this.skip();break;case FASTIFY_LOGGER:if(i.arguments.length>=1&&i.arguments[0].type===`ObjectExpression`){for(let e of i.arguments[0].properties)if(e.type===`Property`&&!e.computed&&e.key.type===`Identifier`&&e.key.name===`logger`&&e.value.type===`ObjectExpression`)for(let t of e.value.properties)t.type===`Property`&&!t.computed&&t.key.type===`Identifier`&&t.key.name===`transport`&&t.value.type===`ObjectExpression`&&await processPinoTransportObject(t.value,O)}break;case FS_FN:case FS_DIR_FN:if(i.arguments[0]&&c.analysis.computeFileReferences&&(T=await C(i.arguments[0],!0),T))return w=i.arguments[0],n.value===FS_DIR_FN&&i.arguments[0].type===`Identifier`&&i.arguments[0].name===`__dirname`?m(f):await A(a,this),this.skip();break;case SET_ROOT_DIR:if(i.arguments[0]){let e=await C(i.arguments[0],!1);return e&&`value`in e&&e.value&&m(e.value+`/intl`),this.skip()}break;case PKG_INFO:let r=path_1.default.resolve(e,`../package.json`),s=path_1.default.resolve(`/package.json`);for(;r!==s&&await c.stat(r)===null;)r=path_1.default.resolve(r,`../../package.json`);r!==s&&l.add(r);break;case MODULE_FN:if(i.arguments.length&&i.arguments[0].type===`Literal`){let e=i.arguments[0].value;if(e.startsWith(`.`)){let n=i.arguments.length>1?await C(i.arguments[1]):void 0;if(n&&`value`in n){let r=n.value instanceof url_1.URL?n.value.href:typeof n.value==`string`?n.value:n.value.parentURL,i=new url_1.URL(e,r).href,a=v.slice(0,v.lastIndexOf(`/`)),o=path_1.default.relative(a,i),s=o.startsWith(`.`)?o:`./`+o;d.add(s)}}else d.add(e)}break}else if(n&&`value`in n&&typeof n.value==`object`&&n.value!==null&&n.value.transport===PINO_TRANSPORT&&i.arguments.length>=1&&i.arguments[0].type===`ObjectExpression`)for(let e of i.arguments[0].properties)e.type===`Property`&&!e.computed&&e.key.type===`Identifier`&&e.key.name===`transport`&&e.value.type===`ObjectExpression`&&await processPinoTransportObject(e.value,O)}else if(i.type===`VariableDeclaration`&&a&&!(0,ast_helpers_1.isVarLoop)(a)&&c.analysis.evaluatePureExpressions)for(let e of i.declarations){if(!e.init)continue;let t=await C(e.init,!0);if(t){if(e.id.type===`Identifier`)b(e.id.name,t);else if(e.id.type===`ObjectPattern`&&`value`in t)for(let n of e.id.properties)n.type!==`Property`||n.key.type!==`Identifier`||n.value.type!==`Identifier`||typeof t.value!=`object`||t.value===null||!(n.key.name in t.value)||b(n.value.name,{value:t.value[n.key.name]});!(`value`in t)&&isAbsolutePathOrUrl(t.ifTrue)&&isAbsolutePathOrUrl(t.else)&&(T=t,w=e.init,await P())}}else if(i.type===`AssignmentExpression`&&a&&!(0,ast_helpers_1.isLoop)(a)&&c.analysis.evaluatePureExpressions){if(!S(i.left.name)){let e=await C(i.right,!1);if(e&&`value`in e){if(i.left.type===`Identifier`)b(i.left.name,e);else if(i.left.type===`ObjectPattern`)for(let t of i.left.properties)t.type!==`Property`||t.key.type!==`Identifier`||t.value.type!==`Identifier`||typeof e.value!=`object`||e.value===null||!(t.key.name in e.value)||b(t.value.name,{value:e.value[t.key.name]});isAbsolutePathOrUrl(e.value)&&(T=e,w=i.right,await P())}}}else if((!_||c.mixedModules)&&(i.type===`FunctionDeclaration`||i.type===`FunctionExpression`||i.type===`ArrowFunctionExpression`)&&(i.arguments||i.params)[0]&&(i.arguments||i.params)[0].type===`Identifier`){let e,t;if((i.type===`ArrowFunctionExpression`||i.type===`FunctionExpression`)&&a&&a.type===`VariableDeclarator`&&a.id.type===`Identifier`?(e=a.id,t=i.arguments||i.params):i.id&&(e=i.id,t=i.arguments||i.params),e&&i.body.body){let n,r=!1;for(let e=0;e<i.body.body.length;e++)if(i.body.body[e].type===`VariableDeclaration`&&!n&&(n=i.body.body[e].declarations.find(e=>e&&e.id&&e.id.type===`Identifier`&&e.init&&e.init.type===`CallExpression`&&e.init.callee.type===`Identifier`&&e.init.callee.name===`require`&&y.require.shadowDepth===0&&e.init.arguments[0]&&e.init.arguments[0].type===`Identifier`&&e.init.arguments[0].name===t[0].name)),n&&i.body.body[e].type===`ReturnStatement`&&i.body.body[e].argument&&i.body.body[e].argument.type===`Identifier`&&i.body.body[e].argument.name===n.id.name){r=!0;break}r&&b(e.name,{value:BOUND_REQUIRE})}}if(i.type===`CallExpression`&&i.callee.type===`MemberExpression`&&i.callee.object.type===`Identifier`&&i.callee.object.name===`module`&&i.callee.property.type===`Identifier`&&i.callee.property.name===`createRequire`&&a.type===`VariableDeclarator`&&a.id.type===`Identifier`){let e=a.id.name;b(e,{value:BOUND_REQUIRE})}if(i.type===`CallExpression`&&i.callee.type===`Identifier`&&i.callee.name===`createRequire`){let e=x(`createRequire`);if(e&&`value`in e&&e.value===CREATE_REQUIRE&&a.type===`VariableDeclarator`&&a.id.type===`Identifier`){let e=a.id.name;b(e,{value:BOUND_REQUIRE})}}}},async leave(e,t){let n=e,r=t;if(n.scope){k.parent&&(k=k.parent);for(let e in n.scope.declarations)e in y&&(y[e].shadowDepth>0?y[e].shadowDepth--:delete y[e])}w&&r&&await A(r,this)}}),await h,{assets:l,deps:u,imports:d,isESM:_};async function j(n){let r=n.indexOf(static_eval_1.WILDCARD),a=r===-1?n.length:n.lastIndexOf(path_1.default.sep,r),o=n.substring(0,a);try{var s=await c.stat(o);if(s===null)throw Error(`file not found`)}catch{return}if(!(r!==-1&&s.isFile())){if(p){let r=e.substring(0,e.indexOf(path_1.default.sep+`node_modules`))+path_1.default.sep+`node_modules`+path_1.default.sep;if(!n.startsWith(r)){c.log&&console.log(`Skipping asset emission of `+n+` for `+e+` as it is outside the package base `+p);return}}if(s.isFile()){if(c.ignoreFn(path_1.default.relative(c.base,n)))return;l.add(n)}else if(s.isDirectory()){if(c.ignoreFn(path_1.default.relative(c.base,n)))return;M(n)&&m(n)}}}function M(n){let r=``;if(n.endsWith(path_1.default.sep)?r=path_1.default.sep:n.endsWith(path_1.default.sep+static_eval_1.WILDCARD)?r=path_1.default.sep+static_eval_1.WILDCARD:n.endsWith(static_eval_1.WILDCARD)&&(r=static_eval_1.WILDCARD),n===f+r||n===cwd+r||n.endsWith(path_1.default.sep+`node_modules`+r)||f.startsWith(n.slice(0,n.length-r.length)+path_1.default.sep))return!1;if(p){let r=e.substring(0,e.indexOf(path_1.default.sep+`node_modules`))+path_1.default.sep+`node_modules`+path_1.default.sep;if(!n.startsWith(r))return c.log&&console.log(`Skipping asset emission of `+n.replace(static_eval_1.wildcardRegEx,`*`)+` for `+e+` as it is outside the package base `+p),!1}return!0}function N(e){return e instanceof url_1.URL?(0,url_1.fileURLToPath)(e):e.startsWith(`file:`)?(0,url_1.fileURLToPath)(new url_1.URL(e)):path_1.default.resolve(e)}async function P(){if(T){if(`value`in T&&isAbsolutePathOrUrl(T.value))try{await j(N(T.value))}catch{}else if(`ifTrue`in T&&`else`in T&&isAbsolutePathOrUrl(T.ifTrue)&&isAbsolutePathOrUrl(T.else)){let e;try{e=N(T.ifTrue)}catch{}let t;try{t=N(T.else)}catch{}e&&await j(e),t&&await j(t)}else if(w&&w.type===`ArrayExpression`&&`value`in T&&T.value instanceof Array)for(let e of T.value)try{await j(N(e))}catch{}w=T=void 0}}}function isAst(e){return`body`in e}
@@ -1,5 +1,5 @@
1
1
  {
2
2
  "name": "@vercel/nft",
3
- "version": "1.4.0",
3
+ "version": "1.5.0",
4
4
  "main": "./out/index.js"
5
5
  }