@gjsify/module 0.3.21 → 0.4.3

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.
@@ -0,0 +1 @@
1
+ var e=Object.defineProperty,__name=(t,n)=>e(t,`name`,{value:n,configurable:!0});export{__name};
package/lib/esm/index.js CHANGED
@@ -1 +1 @@
1
- import{findPnpManifest as e,loadPnpManifest as t,resolveBareViaPnp as n}from"./pnp.js";import"@girs/gjs";import r from"@girs/gio-2.0";import i from"@girs/glib-2.0";import{readJSON as a,resolve as o}from"@gjsify/utils";const s=`assert.async_hooks.buffer.child_process.cluster.console.constants.crypto.dgram.diagnostics_channel.dns.domain.events.fs.http.http2.https.inspector.module.net.os.path.perf_hooks.process.punycode.querystring.readline.repl.stream.string_decoder.sys.timers.tls.tty.url.util.v8.vm.wasi.worker_threads.zlib`.split(`.`);function isBuiltin(e){let t=e.startsWith(`node:`)?e.slice(5):e,n=t.split(`/`)[0];return s.includes(t)||s.includes(n)}function resolveSymlink(e){let t=e.query_info(`standard::`,r.FileQueryInfoFlags.NOFOLLOW_SYMLINKS,null);if(t.get_is_symlink()){let n=t.get_symlink_target(),r=e.get_parent();if(n&&r)return r.resolve_relative_path(n).get_path()}return e.get_path()}function tryJsExtension(e){let t=r.File.new_for_path(e+`.js`);return t.query_exists(null)?t:null}function hasExtension(e){return e.includes(`.`)}function resolvePackageEntry(e){let t=o(e,`package.json`);if(!t.query_exists(null))return null;let n=a(t.get_path()),r=n.main||n.module||`index.js`,i=o(e,r);if(i.query_exists(null))return i.get_path();if(!hasExtension(r)){let e=tryJsExtension(i.get_path());if(e)return e.get_path()}return null}function fileUrlToPath(e){if(typeof e==`object`&&e&&`href`in e){let t=e;if(t.protocol&&t.protocol!==`file:`)throw TypeError(`The URL must use the file: protocol`);return i.filename_from_uri(t.href)[0]}return typeof e==`string`&&e.startsWith(`file:`)?i.filename_from_uri(e)[0]:String(e)}function resolveBareViaPnpFromCaller(i,a){let o=e(a);if(!o)return null;let s=t(o);if(!s)return null;let c=n(s,i,a);if(!c)return null;let l=r.File.new_for_path(c);return l.query_exists(null)?l:null}function resolveInNodeModules(e,t){let n=r.File.new_for_path(t);for(;n.has_parent(null);){let t=n.resolve_relative_path(`node_modules`);if(t.query_exists(null)){let n=t.resolve_relative_path(e);if(n.query_exists(null))return n;let r=n.get_basename();if(r&&!hasExtension(r)){let e=tryJsExtension(n.get_path());if(e)return e}}n=n.get_parent()}throw Error(`Cannot find module "${e}" - not found in any node_modules directory`)}function resolveModulePath(e,t){if(isBuiltin(e))return e;let n;if(n=e.startsWith(`/`)?o(e):e.startsWith(`.`)?o(t,e):resolveBareViaPnpFromCaller(e,t)??resolveInNodeModules(e,t),e.startsWith(`/`)||e.startsWith(`.`)){if(!n.query_exists(null)){let e=n.get_basename();e&&!hasExtension(e)&&(n=tryJsExtension(n.get_path())??n)}if(!n.query_exists(null))throw Error(`Cannot find module "${e}"`)}let r=resolveSymlink(n),i=n.get_basename();if(i&&!hasExtension(i)){let e=resolvePackageEntry(r);if(e)return e}return r}function requireJsFile(e,t){if(e in t)return t[e];let n=r.File.new_for_path(e),i=n.get_parent().get_path(),a=n.get_basename();if(a.endsWith(`.mjs`))throw Error(`Cannot require .mjs files. Use import instead. Path: "${e}"`);if(a.endsWith(`.cjs`)){let e=o(i,`__gjsify__`+a.replace(/\.cjs$/,`.js`));e.query_exists(null)&&e.delete(null),n.copy(e,r.FileCopyFlags.NONE,null,null),n=e,a=n.get_basename()}let s=globalThis.exports,c=globalThis.module,l={exports:{}};globalThis.exports=l.exports,globalThis.module=l;try{let{searchPath:n}=imports;n.unshift(i),imports[a.replace(/\.(js|cjs)$/,``)],n.shift();let r=l.exports;return t[e]=r,r}finally{globalThis.exports=s,globalThis.module=c}}function createRequire(e){let t=fileUrlToPath(e);if(!t.startsWith(`/`))throw TypeError(`The argument must be a file URL object, file URL string, or absolute path string. Received "${String(e)}"`);let n=i.path_get_dirname(t),r=Object.create(null),req=function(e){let t=resolveModulePath(e,n);if(t in r)return r[t];if(t.endsWith(`.json`)){let e=a(t);return r[t]=e,e}if(isBuiltin(e))throw Error(`createRequire: Cannot require builtin module "${e}" synchronously in GJS. Use import instead.`);return requireJsFile(t,r)};return req.resolve=function(e){return resolveModulePath(e,n)},req.resolve.paths=e=>null,req.cache=r,req.extensions=Object.create(null),req.main=void 0,req}var c={builtinModules:s,isBuiltin,createRequire};export{s as builtinModules,createRequire,c as default,isBuiltin};
1
+ import"./_virtual/_rolldown/runtime.js";import{findPnpManifest as e,loadPnpManifest as t,resolveBareViaPnp as n}from"./pnp.js";import"@girs/gjs";import r from"@girs/gio-2.0";import i from"@girs/glib-2.0";import{readJSON as a,resolve as o}from"@gjsify/utils";const s=`assert.async_hooks.buffer.child_process.cluster.console.constants.crypto.dgram.diagnostics_channel.dns.domain.events.fs.http.http2.https.inspector.module.net.os.path.perf_hooks.process.punycode.querystring.readline.repl.stream.string_decoder.sys.timers.tls.tty.url.util.v8.vm.wasi.worker_threads.zlib`.split(`.`);function isBuiltin(e){let t=e.startsWith(`node:`)?e.slice(5):e,n=t.split(`/`)[0];return s.includes(t)||s.includes(n)}function resolveSymlink(e){let t=e.query_info(`standard::`,r.FileQueryInfoFlags.NOFOLLOW_SYMLINKS,null);if(t.get_is_symlink()){let n=t.get_symlink_target(),r=e.get_parent();if(n&&r)return r.resolve_relative_path(n).get_path()}return e.get_path()}function tryJsExtension(e){let t=r.File.new_for_path(e+`.js`);return t.query_exists(null)?t:null}function hasExtension(e){return e.includes(`.`)}function resolvePackageEntry(e){let t=o(e,`package.json`);if(!t.query_exists(null))return null;let n=a(t.get_path());if(n.exports!==void 0){let t=resolveExportsMap(n.exports,`.`,c);if(t){let n=o(e,t);if(n.query_exists(null))return n.get_path()}}let r=n.main||n.module||`index.js`,i=o(e,r);if(i.query_exists(null))return i.get_path();if(!hasExtension(r)){let e=tryJsExtension(i.get_path());if(e)return e.get_path()}return null}function resolveExportsMap(e,t,n){if(typeof e==`string`)return t===`.`?e:void 0;if(typeof e!=`object`||!e)return;let r=e,i=Object.keys(r).some(e=>e===`.`||e.startsWith(`./`))?r[t]:t===`.`?r:void 0;if(i!=null)return pickConditionalValue(i,n)}function pickConditionalValue(e,t){if(typeof e==`string`)return e;if(typeof e!=`object`||!e)return;let n=e;for(let e of t)if(e in n){let r=pickConditionalValue(n[e],t);if(r!==void 0)return r}if(`default`in n&&!t.includes(`default`))return pickConditionalValue(n.default,t)}const c=[`node`,`import`,`default`];function splitBareSpecifier(e){if(e.startsWith(`@`)){let t=e.indexOf(`/`);if(t===-1)return{pkg:e,subpath:`.`};let n=e.indexOf(`/`,t+1);return n===-1?{pkg:e,subpath:`.`}:{pkg:e.slice(0,n),subpath:`.`+e.slice(n)}}let t=e.indexOf(`/`);return t===-1?{pkg:e,subpath:`.`}:{pkg:e.slice(0,t),subpath:`.`+e.slice(t)}}function fileUrlToPath(e){if(typeof e==`object`&&e&&`href`in e){let t=e;if(t.protocol&&t.protocol!==`file:`)throw TypeError(`The URL must use the file: protocol`);return i.filename_from_uri(t.href)[0]}return typeof e==`string`&&e.startsWith(`file:`)?i.filename_from_uri(e)[0]:String(e)}function resolveBareViaPnpFromCaller(i,a){let o=e(a);if(!o)return null;let s=t(o);if(!s)return null;let c=n(s,i,a);if(!c)return null;let l=r.File.new_for_path(c);return l.query_exists(null)?l:null}function resolveInNodeModules(e,t){let{pkg:n,subpath:i}=splitBareSpecifier(e),o=r.File.new_for_path(t);for(;o.has_parent(null);){let t=o.resolve_relative_path(`node_modules`);if(t.query_exists(null)){let r=t.resolve_relative_path(n);if(r.query_exists(null)){let e=r.resolve_relative_path(`package.json`);if(e.query_exists(null)){let t=a(e.get_path());if(t.exports!==void 0){let e=resolveExportsMap(t.exports,i,c);if(e!==void 0){let t=r.resolve_relative_path(e);if(t.query_exists(null))return t}}}let t=i===`.`?r:r.resolve_relative_path(i.slice(2));if(t.query_exists(null))return t;let n=t.get_basename();if(n&&!hasExtension(n)){let e=tryJsExtension(t.get_path());if(e)return e}}else{let n=t.resolve_relative_path(e);if(n.query_exists(null))return n;let r=n.get_basename();if(r&&!hasExtension(r)){let e=tryJsExtension(n.get_path());if(e)return e}}}o=o.get_parent()}throw Error(`Cannot find module "${e}" - not found in any node_modules directory`)}function resolveModulePath(e,t){if(isBuiltin(e))return e;let n;if(n=e.startsWith(`/`)?o(e):e.startsWith(`.`)?o(t,e):resolveBareViaPnpFromCaller(e,t)??resolveInNodeModules(e,t),e.startsWith(`/`)||e.startsWith(`.`)){if(!n.query_exists(null)){let e=n.get_basename();e&&!hasExtension(e)&&(n=tryJsExtension(n.get_path())??n)}if(!n.query_exists(null))throw Error(`Cannot find module "${e}"`)}let r=resolveSymlink(n),i=n.get_basename();if(i&&!hasExtension(i)){let e=resolvePackageEntry(r);if(e)return e}return r}function requireJsFile(e,t){if(e in t)return t[e];let n=r.File.new_for_path(e),i=n.get_parent().get_path(),a=n.get_basename();if(a.endsWith(`.mjs`))throw Error(`Cannot require .mjs files. Use import instead. Path: "${e}"`);if(a.endsWith(`.cjs`)){let e=o(i,`__gjsify__`+a.replace(/\.cjs$/,`.js`));e.query_exists(null)&&e.delete(null),n.copy(e,r.FileCopyFlags.NONE,null,null),n=e,a=n.get_basename()}let s=globalThis.exports,c=globalThis.module,l={exports:{}};globalThis.exports=l.exports,globalThis.module=l;try{let{searchPath:n}=imports;n.unshift(i),imports[a.replace(/\.(js|cjs)$/,``)],n.shift();let r=l.exports;return t[e]=r,r}finally{globalThis.exports=s,globalThis.module=c}}function createRequire(e){let t=fileUrlToPath(e);if(!t.startsWith(`/`))throw TypeError(`The argument must be a file URL object, file URL string, or absolute path string. Received "${String(e)}"`);let n=i.path_get_dirname(t),r=Object.create(null),o=function require(e){let t=resolveModulePath(e,n);if(t in r)return r[t];if(t.endsWith(`.json`)){let e=a(t);return r[t]=e,e}if(isBuiltin(e))throw Error(`createRequire: Cannot require builtin module "${e}" synchronously in GJS. Use import instead.`);return requireJsFile(t,r)};return o.resolve=function resolve(e){return resolveModulePath(e,n)},o.resolve.paths=e=>null,o.cache=r,o.extensions=Object.create(null),o.main=void 0,o}var l={builtinModules:s,isBuiltin,createRequire};export{s as builtinModules,createRequire,l as default,isBuiltin};
package/lib/esm/pnp.js CHANGED
@@ -1 +1 @@
1
- import e from"@girs/gio-2.0";import t from"@girs/glib-2.0";const n=new Map;function findPnpManifest(t){let n=e.File.new_for_path(t);for(;n.has_parent(null);){let e=n.resolve_relative_path(`.pnp.cjs`);if(e.query_exists(null))return e.get_path();n=n.get_parent()}return null}function loadPnpManifest(r){let i=n.get(r);if(i!==void 0)return i;let a=e.File.new_for_path(r),o;try{let[e,t]=a.load_contents(null);if(!e)return n.set(r,null),null;o=new TextDecoder().decode(t)}catch{return n.set(r,null),null}let s=extractRawRuntimeState(o);if(!s)return n.set(r,null),null;let c=t.path_get_dirname(r),l=new Map,u=new Map;for(let[e,t]of s.packageRegistryData){let n=new Map;for(let[r,i]of t)n.set(r,i),i.discardFromLookup||u.set(i.packageLocation,{name:e,reference:r});l.set(e,n)}let d={rootDir:c,packages:l,locatorsByLocation:u};return n.set(r,d),d}function extractRawRuntimeState(e){let t=e.indexOf(`const RAW_RUNTIME_STATE =`);if(t<0)return null;let n=e.indexOf(`'`,t);if(n<0)return null;let r=n+1;for(;r<e.length;){let t=e.charCodeAt(r);if(t===92){r+=2;continue}if(t===39)break;r++}if(r>=e.length)return null;let i=e.slice(n+1,r);i=i.replace(/\\\n/g,``);try{return JSON.parse(i)}catch{return null}}function findPackageOwning(e,t){let n=relativeFromRoot(e.rootDir,t);if(n===null)return null;let r=null;for(let t of e.locatorsByLocation.keys())n.startsWith(t)&&(r===null||t.length>r.length)&&(r=t);if(r===null)return null;let i=e.locatorsByLocation.get(r),a=e.packages.get(i.name)?.get(i.reference);return a?{locator:i,info:a}:null}function resolveBareViaPnp(t,n,r){let i=findPackageOwning(t,r);if(!i)return null;let{pkgName:a,subPath:o}=splitSpecifier(n),s=i.info.packageDependencies?.find(([e])=>e===a);if(!s)return null;let[,c]=s;if(c===null)return null;let l=t.packages.get(a)?.get(c);if(!l)return null;let u=l.packageLocation.startsWith(`/`)?e.File.new_for_path(l.packageLocation):e.File.new_for_path(t.rootDir).resolve_relative_path(stripLeadingDotSlash(l.packageLocation));return(o?u.resolve_relative_path(o):u).get_path()}function splitSpecifier(e){if(e.startsWith(`@`)){let t=e.indexOf(`/`);if(t<0)return{pkgName:e,subPath:``};let n=e.indexOf(`/`,t+1);return n<0?{pkgName:e,subPath:``}:{pkgName:e.slice(0,n),subPath:e.slice(n+1)}}let t=e.indexOf(`/`);return t<0?{pkgName:e,subPath:``}:{pkgName:e.slice(0,t),subPath:e.slice(t+1)}}function stripLeadingDotSlash(e){return e.startsWith(`./`)?e.slice(2):e}function relativeFromRoot(e,t){if(t===e)return`./`;let n=e.endsWith(`/`)?e:e+`/`;return t.startsWith(n)?`./`+t.slice(n.length):null}export{findPackageOwning,findPnpManifest,loadPnpManifest,resolveBareViaPnp};
1
+ import"./_virtual/_rolldown/runtime.js";import e from"@girs/gio-2.0";import t from"@girs/glib-2.0";const n=new Map;function findPnpManifest(t){let n=e.File.new_for_path(t);for(;n.has_parent(null);){let e=n.resolve_relative_path(`.pnp.cjs`);if(e.query_exists(null))return e.get_path();n=n.get_parent()}return null}function loadPnpManifest(r){let i=n.get(r);if(i!==void 0)return i;let a=e.File.new_for_path(r),o;try{let[e,t]=a.load_contents(null);if(!e)return n.set(r,null),null;o=new TextDecoder().decode(t)}catch{return n.set(r,null),null}let s=extractRawRuntimeState(o);if(!s)return n.set(r,null),null;let c=t.path_get_dirname(r),l=new Map,u=new Map;for(let[e,t]of s.packageRegistryData){let n=new Map;for(let[r,i]of t)n.set(r,i),i.discardFromLookup||u.set(i.packageLocation,{name:e,reference:r});l.set(e,n)}let d={rootDir:c,packages:l,locatorsByLocation:u};return n.set(r,d),d}function extractRawRuntimeState(e){let t=e.indexOf(`const RAW_RUNTIME_STATE =`);if(t<0)return null;let n=e.indexOf(`'`,t);if(n<0)return null;let r=n+1;for(;r<e.length;){let t=e.charCodeAt(r);if(t===92){r+=2;continue}if(t===39)break;r++}if(r>=e.length)return null;let i=e.slice(n+1,r);i=i.replace(/\\\n/g,``);try{return JSON.parse(i)}catch{return null}}function findPackageOwning(e,t){let n=relativeFromRoot(e.rootDir,t);if(n===null)return null;let r=null;for(let t of e.locatorsByLocation.keys())n.startsWith(t)&&(r===null||t.length>r.length)&&(r=t);if(r===null)return null;let i=e.locatorsByLocation.get(r),a=e.packages.get(i.name)?.get(i.reference);return a?{locator:i,info:a}:null}function resolveBareViaPnp(t,n,r){let i=findPackageOwning(t,r);if(!i)return null;let{pkgName:a,subPath:o}=splitSpecifier(n),s=i.info.packageDependencies?.find(([e])=>e===a);if(!s)return null;let[,c]=s;if(c===null)return null;let l=t.packages.get(a)?.get(c);if(!l)return null;let u=l.packageLocation.startsWith(`/`)?e.File.new_for_path(l.packageLocation):e.File.new_for_path(t.rootDir).resolve_relative_path(stripLeadingDotSlash(l.packageLocation));return(o?u.resolve_relative_path(o):u).get_path()}function splitSpecifier(e){if(e.startsWith(`@`)){let t=e.indexOf(`/`);if(t<0)return{pkgName:e,subPath:``};let n=e.indexOf(`/`,t+1);return n<0?{pkgName:e,subPath:``}:{pkgName:e.slice(0,n),subPath:e.slice(n+1)}}let t=e.indexOf(`/`);return t<0?{pkgName:e,subPath:``}:{pkgName:e.slice(0,t),subPath:e.slice(t+1)}}function stripLeadingDotSlash(e){return e.startsWith(`./`)?e.slice(2):e}function relativeFromRoot(e,t){if(t===e)return`./`;let n=e.endsWith(`/`)?e:e+`/`;return t.startsWith(n)?`./`+t.slice(n.length):null}export{findPackageOwning,findPnpManifest,loadPnpManifest,resolveBareViaPnp};
package/package.json CHANGED
@@ -1,44 +1,47 @@
1
1
  {
2
- "name": "@gjsify/module",
3
- "version": "0.3.21",
4
- "description": "Node.js module module for Gjs",
5
- "type": "module",
6
- "module": "lib/esm/index.js",
7
- "types": "lib/types/index.d.ts",
8
- "exports": {
9
- ".": {
10
- "types": "./lib/types/index.d.ts",
11
- "default": "./lib/esm/index.js"
2
+ "name": "@gjsify/module",
3
+ "version": "0.4.3",
4
+ "description": "Node.js module module for Gjs",
5
+ "type": "module",
6
+ "module": "lib/esm/index.js",
7
+ "types": "lib/types/index.d.ts",
8
+ "exports": {
9
+ ".": {
10
+ "types": "./lib/types/index.d.ts",
11
+ "default": "./lib/esm/index.js"
12
+ }
13
+ },
14
+ "files": [
15
+ "lib"
16
+ ],
17
+ "scripts": {
18
+ "clear": "rm -rf lib tsconfig.tsbuildinfo tsconfig.types.tsbuildinfo test.gjs.mjs test.node.mjs || exit 0",
19
+ "check": "tsc --noEmit",
20
+ "build": "gjsify run build:gjsify && gjsify run build:types",
21
+ "build:gjsify": "gjsify build --library 'src/**/*.{ts,js}' --exclude 'src/**/*.spec.{mts,ts}' 'src/test.{mts,ts}'",
22
+ "build:types": "tsc",
23
+ "build:test": "gjsify run build:test:gjs && gjsify run build:test:node",
24
+ "build:test:gjs": "gjsify build src/test.mts --app gjs --outfile test.gjs.mjs",
25
+ "build:test:node": "gjsify build src/test.mts --app node --outfile test.node.mjs",
26
+ "test": "gjsify run build:gjsify && gjsify run build:test && gjsify run test:node && gjsify run test:gjs",
27
+ "test:gjs": "gjsify run test.gjs.mjs",
28
+ "test:node": "node test.node.mjs"
29
+ },
30
+ "keywords": [
31
+ "gjs",
32
+ "node",
33
+ "module"
34
+ ],
35
+ "dependencies": {
36
+ "@girs/gio-2.0": "2.88.0-4.0.0-rc.15",
37
+ "@girs/gjs": "4.0.0-rc.15",
38
+ "@girs/glib-2.0": "2.88.0-4.0.0-rc.15",
39
+ "@gjsify/utils": "workspace:^"
40
+ },
41
+ "devDependencies": {
42
+ "@gjsify/cli": "workspace:^",
43
+ "@gjsify/unit": "workspace:^",
44
+ "@types/node": "^25.6.2",
45
+ "typescript": "^6.0.3"
12
46
  }
13
- },
14
- "scripts": {
15
- "clear": "rm -rf lib tsconfig.tsbuildinfo tsconfig.types.tsbuildinfo test.gjs.mjs test.node.mjs || exit 0",
16
- "check": "tsc --noEmit",
17
- "build": "yarn build:gjsify && yarn build:types",
18
- "build:gjsify": "gjsify build --library 'src/**/*.{ts,js}' --exclude 'src/**/*.spec.{mts,ts}' 'src/test.{mts,ts}'",
19
- "build:types": "tsc",
20
- "build:test": "yarn build:test:gjs && yarn build:test:node",
21
- "build:test:gjs": "gjsify build src/test.mts --app gjs --outfile test.gjs.mjs",
22
- "build:test:node": "gjsify build src/test.mts --app node --outfile test.node.mjs",
23
- "test": "yarn build:gjsify && yarn build:test && yarn test:node && yarn test:gjs",
24
- "test:gjs": "gjsify run test.gjs.mjs",
25
- "test:node": "node test.node.mjs"
26
- },
27
- "keywords": [
28
- "gjs",
29
- "node",
30
- "module"
31
- ],
32
- "dependencies": {
33
- "@girs/gio-2.0": "2.88.0-4.0.0-rc.14",
34
- "@girs/gjs": "4.0.0-rc.14",
35
- "@girs/glib-2.0": "2.88.0-4.0.0-rc.14",
36
- "@gjsify/utils": "^0.3.21"
37
- },
38
- "devDependencies": {
39
- "@gjsify/cli": "^0.3.21",
40
- "@gjsify/unit": "^0.3.21",
41
- "@types/node": "^25.6.2",
42
- "typescript": "^6.0.3"
43
- }
44
- }
47
+ }
package/src/index.spec.ts DELETED
@@ -1,365 +0,0 @@
1
- // Ported from refs/node-test/parallel/test-module-{isBuiltin,builtinModules,createRequire}.js
2
- // Original: MIT license, Node.js contributors
3
-
4
- import { describe, it, expect } from '@gjsify/unit';
5
- import { builtinModules, isBuiltin, createRequire } from 'node:module';
6
-
7
- export default async () => {
8
- await describe('module.builtinModules', async () => {
9
- await it('should be an array', async () => {
10
- expect(Array.isArray(builtinModules)).toBe(true);
11
- });
12
-
13
- await it('should have more than 30 entries', async () => {
14
- expect(builtinModules.length).toBeGreaterThan(30);
15
- });
16
-
17
- await it('should contain only strings', async () => {
18
- for (const mod of builtinModules) {
19
- expect(typeof mod).toBe('string');
20
- }
21
- });
22
-
23
- await it('should not contain duplicates', async () => {
24
- const unique = new Set(builtinModules);
25
- expect(unique.size).toBe(builtinModules.length);
26
- });
27
-
28
- await it('should include fs', async () => {
29
- expect(builtinModules).toContain('fs');
30
- });
31
-
32
- await it('should include path', async () => {
33
- expect(builtinModules).toContain('path');
34
- });
35
-
36
- await it('should include os', async () => {
37
- expect(builtinModules).toContain('os');
38
- });
39
-
40
- await it('should include crypto', async () => {
41
- expect(builtinModules).toContain('crypto');
42
- });
43
-
44
- await it('should include http', async () => {
45
- expect(builtinModules).toContain('http');
46
- });
47
-
48
- await it('should include net', async () => {
49
- expect(builtinModules).toContain('net');
50
- });
51
-
52
- await it('should include stream', async () => {
53
- expect(builtinModules).toContain('stream');
54
- });
55
-
56
- await it('should include events', async () => {
57
- expect(builtinModules).toContain('events');
58
- });
59
-
60
- await it('should include buffer', async () => {
61
- expect(builtinModules).toContain('buffer');
62
- });
63
-
64
- await it('should include util', async () => {
65
- expect(builtinModules).toContain('util');
66
- });
67
-
68
- await it('should include dns', async () => {
69
- expect(builtinModules).toContain('dns');
70
- });
71
-
72
- await it('should include https', async () => {
73
- expect(builtinModules).toContain('https');
74
- });
75
-
76
- await it('should include tls', async () => {
77
- expect(builtinModules).toContain('tls');
78
- });
79
-
80
- await it('should include dgram', async () => {
81
- expect(builtinModules).toContain('dgram');
82
- });
83
-
84
- await it('should include assert', async () => {
85
- expect(builtinModules).toContain('assert');
86
- });
87
-
88
- await it('should include querystring', async () => {
89
- expect(builtinModules).toContain('querystring');
90
- });
91
-
92
- await it('should include url', async () => {
93
- expect(builtinModules).toContain('url');
94
- });
95
-
96
- await it('should include string_decoder', async () => {
97
- expect(builtinModules).toContain('string_decoder');
98
- });
99
-
100
- await it('should include timers', async () => {
101
- expect(builtinModules).toContain('timers');
102
- });
103
-
104
- await it('should include zlib', async () => {
105
- expect(builtinModules).toContain('zlib');
106
- });
107
-
108
- await it('should include child_process', async () => {
109
- expect(builtinModules).toContain('child_process');
110
- });
111
-
112
- await it('should include cluster', async () => {
113
- expect(builtinModules).toContain('cluster');
114
- });
115
-
116
- await it('should include console', async () => {
117
- expect(builtinModules).toContain('console');
118
- });
119
-
120
- await it('should include domain', async () => {
121
- expect(builtinModules).toContain('domain');
122
- });
123
-
124
- await it('should include http2', async () => {
125
- expect(builtinModules).toContain('http2');
126
- });
127
-
128
- await it('should include module', async () => {
129
- expect(builtinModules).toContain('module');
130
- });
131
-
132
- await it('should include perf_hooks', async () => {
133
- expect(builtinModules).toContain('perf_hooks');
134
- });
135
-
136
- await it('should include process', async () => {
137
- expect(builtinModules).toContain('process');
138
- });
139
-
140
- await it('should include readline', async () => {
141
- expect(builtinModules).toContain('readline');
142
- });
143
-
144
- await it('should include tty', async () => {
145
- expect(builtinModules).toContain('tty');
146
- });
147
-
148
- await it('should include v8', async () => {
149
- expect(builtinModules).toContain('v8');
150
- });
151
-
152
- await it('should include vm', async () => {
153
- expect(builtinModules).toContain('vm');
154
- });
155
-
156
- await it('should include worker_threads', async () => {
157
- expect(builtinModules).toContain('worker_threads');
158
- });
159
-
160
- await it('should include bare names (without node: prefix)', async () => {
161
- const bareModules = builtinModules.filter(m => !m.startsWith('node:'));
162
- expect(bareModules.length).toBeGreaterThan(30);
163
- expect(bareModules).toContain('fs');
164
- });
165
- });
166
-
167
- await describe('module.isBuiltin', async () => {
168
- await it('should be a function', async () => {
169
- expect(typeof isBuiltin).toBe('function');
170
- });
171
-
172
- await it('should return true for fs', async () => {
173
- expect(isBuiltin('fs')).toBe(true);
174
- });
175
-
176
- await it('should return true for path', async () => {
177
- expect(isBuiltin('path')).toBe(true);
178
- });
179
-
180
- await it('should return true for os', async () => {
181
- expect(isBuiltin('os')).toBe(true);
182
- });
183
-
184
- await it('should return true for crypto', async () => {
185
- expect(isBuiltin('crypto')).toBe(true);
186
- });
187
-
188
- await it('should return true for http', async () => {
189
- expect(isBuiltin('http')).toBe(true);
190
- });
191
-
192
- await it('should return true for node:fs', async () => {
193
- expect(isBuiltin('node:fs')).toBe(true);
194
- });
195
-
196
- await it('should return true for node:path', async () => {
197
- expect(isBuiltin('node:path')).toBe(true);
198
- });
199
-
200
- await it('should return true for node:os', async () => {
201
- expect(isBuiltin('node:os')).toBe(true);
202
- });
203
-
204
- await it('should return true for node:crypto', async () => {
205
- expect(isBuiltin('node:crypto')).toBe(true);
206
- });
207
-
208
- await it('should return true for node:events', async () => {
209
- expect(isBuiltin('node:events')).toBe(true);
210
- });
211
-
212
- await it('should return true for node:stream', async () => {
213
- expect(isBuiltin('node:stream')).toBe(true);
214
- });
215
-
216
- await it('should return true for node:buffer', async () => {
217
- expect(isBuiltin('node:buffer')).toBe(true);
218
- });
219
-
220
- await it('should return true for node:util', async () => {
221
- expect(isBuiltin('node:util')).toBe(true);
222
- });
223
-
224
- await it('should return false for npm packages', async () => {
225
- expect(isBuiltin('@babel/core')).toBe(false);
226
- expect(isBuiltin('lodash')).toBe(false);
227
- expect(isBuiltin('express')).toBe(false);
228
- });
229
-
230
- await it('should return false for empty string', async () => {
231
- expect(isBuiltin('')).toBe(false);
232
- });
233
-
234
- await it('should return false for nonexistent module', async () => {
235
- expect(isBuiltin('nonexistent')).toBe(false);
236
- });
237
-
238
- await it('should return false for relative paths', async () => {
239
- expect(isBuiltin('./fs')).toBe(false);
240
- expect(isBuiltin('../path')).toBe(false);
241
- });
242
-
243
- await it('should return false for absolute paths', async () => {
244
- expect(isBuiltin('/absolute/path')).toBe(false);
245
- });
246
-
247
- await it('should return true for subpath fs/promises', async () => {
248
- expect(isBuiltin('fs/promises')).toBe(true);
249
- });
250
-
251
- await it('should return true for subpath dns/promises', async () => {
252
- expect(isBuiltin('dns/promises')).toBe(true);
253
- });
254
-
255
- await it('should return true for subpath timers/promises', async () => {
256
- expect(isBuiltin('timers/promises')).toBe(true);
257
- });
258
-
259
- await it('should return true for subpath node:fs/promises', async () => {
260
- expect(isBuiltin('node:fs/promises')).toBe(true);
261
- });
262
-
263
- await it('should return false for scoped package with node name', async () => {
264
- expect(isBuiltin('@types/node')).toBe(false);
265
- });
266
-
267
- await it('should return true for stream', async () => {
268
- expect(isBuiltin('stream')).toBe(true);
269
- });
270
-
271
- await it('should return true for assert', async () => {
272
- expect(isBuiltin('assert')).toBe(true);
273
- });
274
-
275
- await it('should return true for diagnostics_channel', async () => {
276
- expect(isBuiltin('diagnostics_channel')).toBe(true);
277
- });
278
-
279
- await it('should return true for async_hooks', async () => {
280
- expect(isBuiltin('async_hooks')).toBe(true);
281
- });
282
- });
283
-
284
- await describe('module.createRequire', async () => {
285
- await it('should be a function', async () => {
286
- expect(typeof createRequire).toBe('function');
287
- });
288
-
289
- await it('should accept import.meta.url', async () => {
290
- const req = createRequire(import.meta.url);
291
- expect(typeof req).toBe('function');
292
- });
293
-
294
- await it('should throw for relative path', async () => {
295
- let threw = false;
296
- try {
297
- createRequire('relative/path.js');
298
- } catch {
299
- threw = true;
300
- }
301
- expect(threw).toBe(true);
302
- });
303
-
304
- await it('returned require should have resolve', async () => {
305
- const req = createRequire(import.meta.url);
306
- expect(typeof req.resolve).toBe('function');
307
- });
308
-
309
- await it('returned require should have resolve.paths', async () => {
310
- const req = createRequire(import.meta.url);
311
- expect(typeof req.resolve.paths).toBe('function');
312
- });
313
-
314
- await it('returned require should have cache', async () => {
315
- const req = createRequire(import.meta.url);
316
- expect(req.cache).toBeDefined();
317
- expect(typeof req.cache).toBe('object');
318
- });
319
-
320
- await it('returned require should have extensions', async () => {
321
- const req = createRequire(import.meta.url);
322
- expect(req.extensions).toBeDefined();
323
- expect(typeof req.extensions).toBe('object');
324
- });
325
-
326
- await it('resolve.paths should return null for builtins', async () => {
327
- const req = createRequire(import.meta.url);
328
- expect(req.resolve.paths('fs')).toBeNull();
329
- });
330
-
331
- await it('resolve should return module name for fs', async () => {
332
- const req = createRequire(import.meta.url);
333
- expect(req.resolve('fs')).toBe('fs');
334
- });
335
-
336
- await it('resolve should return module name for path', async () => {
337
- const req = createRequire(import.meta.url);
338
- expect(req.resolve('path')).toBe('path');
339
- });
340
-
341
- await it('resolve should return module name for os', async () => {
342
- const req = createRequire(import.meta.url);
343
- expect(req.resolve('os')).toBe('os');
344
- });
345
-
346
- await it('resolve should return module name for events', async () => {
347
- const req = createRequire(import.meta.url);
348
- expect(req.resolve('events')).toBe('events');
349
- });
350
- });
351
-
352
- await describe('module exports', async () => {
353
- await it('should export builtinModules', async () => {
354
- expect(builtinModules).toBeDefined();
355
- });
356
-
357
- await it('should export isBuiltin', async () => {
358
- expect(typeof isBuiltin).toBe('function');
359
- });
360
-
361
- await it('should export createRequire', async () => {
362
- expect(typeof createRequire).toBe('function');
363
- });
364
- });
365
- };
package/src/index.ts DELETED
@@ -1,321 +0,0 @@
1
- // Reference: Node.js lib/module.js
2
- // Reimplemented for GJS using Gio and GLib
3
- // CJS loading logic adapted from @gjsify/require (c) Andrea Giammarchi - ISC
4
-
5
- import '@girs/gjs';
6
- import Gio from '@girs/gio-2.0';
7
- import GLib from '@girs/glib-2.0';
8
- import { resolve as resolvePath, readJSON } from '@gjsify/utils';
9
- import { findPnpManifest, loadPnpManifest, resolveBareViaPnp } from './pnp.js';
10
-
11
- export const builtinModules = [
12
- 'assert',
13
- 'async_hooks',
14
- 'buffer',
15
- 'child_process',
16
- 'cluster',
17
- 'console',
18
- 'constants',
19
- 'crypto',
20
- 'dgram',
21
- 'diagnostics_channel',
22
- 'dns',
23
- 'domain',
24
- 'events',
25
- 'fs',
26
- 'http',
27
- 'http2',
28
- 'https',
29
- 'inspector',
30
- 'module',
31
- 'net',
32
- 'os',
33
- 'path',
34
- 'perf_hooks',
35
- 'process',
36
- 'punycode',
37
- 'querystring',
38
- 'readline',
39
- 'repl',
40
- 'stream',
41
- 'string_decoder',
42
- 'sys',
43
- 'timers',
44
- 'tls',
45
- 'tty',
46
- 'url',
47
- 'util',
48
- 'v8',
49
- 'vm',
50
- 'wasi',
51
- 'worker_threads',
52
- 'zlib',
53
- ];
54
-
55
- export function isBuiltin(name: string): boolean {
56
- const n = name.startsWith('node:') ? name.slice(5) : name;
57
- const base = n.split('/')[0];
58
- return builtinModules.includes(n) || builtinModules.includes(base);
59
- }
60
-
61
- // --- Private helpers for createRequire ---
62
- // Resolution logic ported from @gjsify/require, cleaned up for ESM-only use
63
-
64
- /** Walk up from startDir to find the nearest node_modules directory. */
65
- function findNodeModulesDir(startDir: string): string | null {
66
- let dir = Gio.File.new_for_path(startDir);
67
- while (dir.has_parent(null)) {
68
- const nodeModules = dir.resolve_relative_path('node_modules');
69
- if (nodeModules.query_exists(null)) {
70
- return nodeModules.get_path();
71
- }
72
- dir = dir.get_parent()!;
73
- }
74
- return null;
75
- }
76
-
77
- /** Resolve symlinks for a Gio.File, returning the real path. */
78
- function resolveSymlink(file: Gio.File): string {
79
- const info = file.query_info('standard::', Gio.FileQueryInfoFlags.NOFOLLOW_SYMLINKS, null);
80
- if (info.get_is_symlink()) {
81
- const target = info.get_symlink_target();
82
- const parent = file.get_parent();
83
- if (target && parent) {
84
- return parent.resolve_relative_path(target).get_path()!;
85
- }
86
- }
87
- return file.get_path()!;
88
- }
89
-
90
- /** Try appending .js to an extensionless path. Returns the file if found, null otherwise. */
91
- function tryJsExtension(filePath: string): Gio.File | null {
92
- const withJs = Gio.File.new_for_path(filePath + '.js');
93
- return withJs.query_exists(null) ? withJs : null;
94
- }
95
-
96
- /** Check if a basename has a file extension. */
97
- function hasExtension(basename: string): boolean {
98
- return basename.includes('.');
99
- }
100
-
101
- /** Resolve package.json main/module entry for a directory. */
102
- function resolvePackageEntry(dirPath: string): string | null {
103
- const pkgJsonFile = resolvePath(dirPath, 'package.json');
104
- if (!pkgJsonFile.query_exists(null)) return null;
105
-
106
- const pkg = readJSON(pkgJsonFile.get_path()!) as Record<string, string>;
107
- const main = pkg.main || pkg.module || 'index.js';
108
- const entryFile = resolvePath(dirPath, main);
109
-
110
- if (entryFile.query_exists(null)) return entryFile.get_path()!;
111
-
112
- // Try .js extension fallback for extensionless main field
113
- if (!hasExtension(main)) {
114
- const withJs = tryJsExtension(entryFile.get_path()!);
115
- if (withJs) return withJs.get_path()!;
116
- }
117
-
118
- return null;
119
- }
120
-
121
- /** Convert a file: URL (string or object) to an absolute path. */
122
- function fileUrlToPath(filenameOrURL: string | URL): string {
123
- // Duck-type URL objects (avoids dependency on global URL which may not exist in GJS)
124
- if (typeof filenameOrURL === 'object' && filenameOrURL !== null && 'href' in filenameOrURL) {
125
- const urlObj = filenameOrURL as { href: string; protocol?: string };
126
- if (urlObj.protocol && urlObj.protocol !== 'file:') {
127
- throw new TypeError('The URL must use the file: protocol');
128
- }
129
- return GLib.filename_from_uri(urlObj.href)[0];
130
- }
131
-
132
- if (typeof filenameOrURL === 'string' && filenameOrURL.startsWith('file:')) {
133
- return GLib.filename_from_uri(filenameOrURL)[0];
134
- }
135
-
136
- return String(filenameOrURL);
137
- }
138
-
139
- /**
140
- * Try resolving a bare specifier through a Yarn PnP manifest (`.pnp.cjs`)
141
- * sitting above `callerDir`. Returns null when no manifest is found, or when
142
- * PnP can't resolve the request (e.g. the dep isn't listed in the caller
143
- * package's `packageDependencies`). Callers fall back to the node_modules walk.
144
- */
145
- function resolveBareViaPnpFromCaller(id: string, callerDir: string): Gio.File | null {
146
- const pnpPath = findPnpManifest(callerDir);
147
- if (!pnpPath) return null;
148
- const manifest = loadPnpManifest(pnpPath);
149
- if (!manifest) return null;
150
- const resolved = resolveBareViaPnp(manifest, id, callerDir);
151
- if (!resolved) return null;
152
- const file = Gio.File.new_for_path(resolved);
153
- return file.query_exists(null) ? file : null;
154
- }
155
-
156
- /**
157
- * Resolve a bare package specifier by walking ALL ancestor node_modules dirs.
158
- * Mirrors Node.js module resolution: try nearest node_modules first, then each
159
- * ancestor — so a package in a parent node_modules is found even when a closer
160
- * node_modules exists but doesn't contain the requested package.
161
- */
162
- function resolveInNodeModules(id: string, callerDir: string): Gio.File {
163
- let dir = Gio.File.new_for_path(callerDir);
164
- while (dir.has_parent(null)) {
165
- const nodeModulesFile = dir.resolve_relative_path('node_modules');
166
- if (nodeModulesFile.query_exists(null)) {
167
- const candidate = nodeModulesFile.resolve_relative_path(id);
168
- if (candidate.query_exists(null)) return candidate;
169
- // Extensionless fallback: try appending .js (e.g. id = 'foo' → node_modules/foo.js)
170
- const bn = candidate.get_basename();
171
- if (bn && !hasExtension(bn)) {
172
- const withJs = tryJsExtension(candidate.get_path()!);
173
- if (withJs) return withJs;
174
- }
175
- }
176
- dir = dir.get_parent()!;
177
- }
178
- throw new Error(`Cannot find module "${id}" - not found in any node_modules directory`);
179
- }
180
-
181
- /** Resolve a module specifier to an absolute file path. */
182
- function resolveModulePath(id: string, callerDir: string): string {
183
- if (isBuiltin(id)) return id;
184
-
185
- let file: Gio.File;
186
-
187
- if (id.startsWith('/')) {
188
- file = resolvePath(id);
189
- } else if (id.startsWith('.')) {
190
- file = resolvePath(callerDir, id);
191
- } else {
192
- // Bare specifier: try Yarn PnP first (for PnP-built workspaces where no
193
- // node_modules/ tree exists on disk), then fall back to the standard
194
- // node_modules walk.
195
- const pnpFile = resolveBareViaPnpFromCaller(id, callerDir);
196
- file = pnpFile ?? resolveInNodeModules(id, callerDir);
197
- }
198
-
199
- // Extension fallback for absolute/relative paths (bare specifiers handled in resolveInNodeModules)
200
- if (id.startsWith('/') || id.startsWith('.')) {
201
- if (!file.query_exists(null)) {
202
- const basename = file.get_basename();
203
- if (basename && !hasExtension(basename)) {
204
- file = tryJsExtension(file.get_path()!) ?? file;
205
- }
206
- }
207
-
208
- if (!file.query_exists(null)) {
209
- throw new Error(`Cannot find module "${id}"`);
210
- }
211
- }
212
-
213
- const resolvedPath = resolveSymlink(file);
214
-
215
- // Directory → resolve via package.json main field
216
- const basename = file.get_basename();
217
- if (basename && !hasExtension(basename)) {
218
- const entry = resolvePackageEntry(resolvedPath);
219
- if (entry) return entry;
220
- }
221
-
222
- return resolvedPath;
223
- }
224
-
225
- // --- CJS file loading via GJS imports system ---
226
- // Ported from @gjsify/require (c) Andrea Giammarchi - ISC
227
-
228
- /** Load a CJS .js/.cjs file using GJS's legacy imports system. */
229
- function requireJsFile(filePath: string, cache: Record<string, unknown>): unknown {
230
- if (filePath in cache) return cache[filePath];
231
-
232
- let file = Gio.File.new_for_path(filePath);
233
- const dir = file.get_parent()!.get_path()!;
234
- let basename = file.get_basename()!;
235
-
236
- if (basename.endsWith('.mjs')) {
237
- throw new Error(`Cannot require .mjs files. Use import instead. Path: "${filePath}"`);
238
- }
239
-
240
- // GJS can't import .cjs files — copy to .js as workaround
241
- if (basename.endsWith('.cjs')) {
242
- const dest = resolvePath(dir, '__gjsify__' + basename.replace(/\.cjs$/, '.js'));
243
- if (dest.query_exists(null)) dest.delete(null);
244
- file.copy(dest, Gio.FileCopyFlags.NONE, null, null);
245
- file = dest;
246
- basename = file.get_basename()!;
247
- }
248
-
249
- // Save and replace global CJS state
250
- const savedExports = globalThis.exports;
251
- const savedModule = globalThis.module;
252
- const moduleObj = { exports: {} };
253
- globalThis.exports = moduleObj.exports;
254
- globalThis.module = moduleObj as NodeModule;
255
-
256
- try {
257
- // Evaluate the file via GJS imports system
258
- const { searchPath } = imports;
259
- searchPath.unshift(dir);
260
- imports[basename.replace(/\.(js|cjs)$/, '')];
261
- searchPath.shift();
262
-
263
- const result = moduleObj.exports;
264
- cache[filePath] = result;
265
- return result;
266
- } finally {
267
- // Always restore global state, even on error
268
- globalThis.exports = savedExports;
269
- globalThis.module = savedModule;
270
- }
271
- }
272
-
273
- export function createRequire(filenameOrURL: string | URL): NodeRequire {
274
- const filename = fileUrlToPath(filenameOrURL);
275
-
276
- if (!filename.startsWith('/')) {
277
- throw new TypeError(
278
- 'The argument must be a file URL object, file URL string, or absolute path string. ' +
279
- `Received "${String(filenameOrURL)}"`
280
- );
281
- }
282
-
283
- const callerDir = GLib.path_get_dirname(filename);
284
- const cache: Record<string, unknown> = Object.create(null);
285
-
286
- const req = function require(id: string): unknown {
287
- const resolved = resolveModulePath(id, callerDir);
288
- if (resolved in cache) return cache[resolved];
289
-
290
- // JSON files
291
- if (resolved.endsWith('.json')) {
292
- const result = readJSON(resolved);
293
- cache[resolved] = result;
294
- return result;
295
- }
296
-
297
- // Builtin modules can't be required synchronously in ESM
298
- if (isBuiltin(id)) {
299
- throw new Error(
300
- `createRequire: Cannot require builtin module "${id}" synchronously in GJS. ` +
301
- 'Use import instead.'
302
- );
303
- }
304
-
305
- // .js/.cjs files via GJS imports system
306
- return requireJsFile(resolved, cache);
307
- } as NodeRequire;
308
-
309
- req.resolve = function resolve(id: string): string {
310
- return resolveModulePath(id, callerDir);
311
- } as NodeRequire['resolve'];
312
-
313
- req.resolve.paths = (_request: string): string[] | null => null;
314
- req.cache = cache as NodeRequire['cache'];
315
- req.extensions = Object.create(null) as NodeRequire['extensions'];
316
- req.main = undefined;
317
-
318
- return req;
319
- }
320
-
321
- export default { builtinModules, isBuiltin, createRequire };
package/src/pnp.ts DELETED
@@ -1,286 +0,0 @@
1
- // Yarn PnP-aware resolution for `@gjsify/module`'s `createRequire`.
2
- //
3
- // Yarn-PnP keeps every package in `.yarn/cache/<pkg>.zip` and `.yarn/unplugged/`,
4
- // addressed via a `.pnp.cjs` manifest at the workspace root. No real
5
- // `node_modules/` tree exists on disk, so the standard "walk up
6
- // `node_modules/`" resolver fails for any consumer running inside a
7
- // PnP-built workspace — including a freshly-bundled GJS executable that
8
- // uses `createRequire(import.meta.url)` to find a sibling package's
9
- // `package.json`.
10
- //
11
- // We don't execute Yarn's manifest (it pulls in Node-specific APIs and is
12
- // 5-10 MB of code). Instead we parse the `RAW_RUNTIME_STATE` JSON literal
13
- // at the top of `.pnp.cjs` — that's the entire resolution table. Every
14
- // package's `packageDependencies` lists the *resolved reference* for each
15
- // requested dependency, so we don't need to run version selection: we just
16
- // look up the locator and return its `packageLocation`.
17
- //
18
- // What this implementation supports
19
- // ---------------------------------
20
- //
21
- // * `linkType: "SOFT"` packages — workspaces and unplugged deps; their
22
- // `packageLocation` is a real on-disk directory, so resolved paths are
23
- // usable directly with `readFileSync` / `Gio.File`.
24
- // * `linkType: "HARD"` packages — zip-cached deps. The resolved path
25
- // points into a `.yarn/cache/<pkg>.zip/...` virtual directory; reads
26
- // against it require the `@yarnpkg/fslib` ZipFS layer that the gjsify
27
- // plugin uses at build time. We surface the path so callers can
28
- // decide what to do with it; runtime read support for zips is tracked
29
- // separately in gjsify STATUS.md.
30
- //
31
- // What is NOT supported
32
- // ---------------------
33
- //
34
- // * Resolution of bare specifiers FROM a PnP-virtual location (e.g. a
35
- // module loaded from inside a zip resolving its own dependencies).
36
- // We could reach this via `dependencyTreeRoots` indirection but no
37
- // current consumer needs it.
38
- // * Conditional exports / package.json `exports` map. We respect
39
- // `main`/`module`/`/<sub-path>` splits like the rest of
40
- // `@gjsify/module`'s resolver, but we don't honour `exports`-only
41
- // entries.
42
-
43
- import Gio from '@girs/gio-2.0';
44
- import GLib from '@girs/glib-2.0';
45
-
46
- interface PnpPackageInformation {
47
- packageLocation: string;
48
- packageDependencies?: ReadonlyArray<readonly [string, string | null]>;
49
- linkType: 'SOFT' | 'HARD';
50
- discardFromLookup?: boolean;
51
- }
52
-
53
- interface PnpRuntimeState {
54
- packageRegistryData: ReadonlyArray<
55
- readonly [
56
- string | null,
57
- ReadonlyArray<readonly [string | null, PnpPackageInformation]>,
58
- ]
59
- >;
60
- }
61
-
62
- /**
63
- * Parsed manifest, indexed for O(1) lookup. Cached per file path so repeat
64
- * `createRequire(...)` calls on the same workspace don't re-parse.
65
- */
66
- export interface PnpManifest {
67
- /** Absolute path of the `.pnp.cjs` file's parent directory. */
68
- readonly rootDir: string;
69
- /** Map<packageName, Map<packageReference, info>> — null name = workspace root. */
70
- readonly packages: Map<
71
- string | null,
72
- Map<string | null, PnpPackageInformation>
73
- >;
74
- /** Locator-by-location reverse index for "which package owns this path". */
75
- readonly locatorsByLocation: Map<
76
- string,
77
- { name: string | null; reference: string | null }
78
- >;
79
- }
80
-
81
- const manifestCache = new Map<string, PnpManifest | null>();
82
-
83
- /** Walk up from `startDir` looking for the nearest `.pnp.cjs`. */
84
- export function findPnpManifest(startDir: string): string | null {
85
- let dir = Gio.File.new_for_path(startDir);
86
- while (dir.has_parent(null)) {
87
- const candidate = dir.resolve_relative_path('.pnp.cjs');
88
- if (candidate.query_exists(null)) return candidate.get_path();
89
- dir = dir.get_parent()!;
90
- }
91
- return null;
92
- }
93
-
94
- /** Read + parse `.pnp.cjs`'s `RAW_RUNTIME_STATE`. Cached. */
95
- export function loadPnpManifest(pnpCjsPath: string): PnpManifest | null {
96
- const cached = manifestCache.get(pnpCjsPath);
97
- if (cached !== undefined) return cached;
98
-
99
- const file = Gio.File.new_for_path(pnpCjsPath);
100
- let text: string;
101
- try {
102
- const [ok, bytes] = file.load_contents(null);
103
- if (!ok) {
104
- manifestCache.set(pnpCjsPath, null);
105
- return null;
106
- }
107
- text = new TextDecoder().decode(bytes);
108
- } catch {
109
- manifestCache.set(pnpCjsPath, null);
110
- return null;
111
- }
112
-
113
- const state = extractRawRuntimeState(text);
114
- if (!state) {
115
- manifestCache.set(pnpCjsPath, null);
116
- return null;
117
- }
118
-
119
- const rootDir = GLib.path_get_dirname(pnpCjsPath);
120
- const packages = new Map<
121
- string | null,
122
- Map<string | null, PnpPackageInformation>
123
- >();
124
- const locatorsByLocation = new Map<
125
- string,
126
- { name: string | null; reference: string | null }
127
- >();
128
-
129
- for (const [name, store] of state.packageRegistryData) {
130
- const inner = new Map<string | null, PnpPackageInformation>();
131
- for (const [reference, info] of store) {
132
- inner.set(reference, info);
133
- if (!info.discardFromLookup) {
134
- // Yarn keys locations on the trailing-slash form; preserve it.
135
- locatorsByLocation.set(info.packageLocation, { name, reference });
136
- }
137
- }
138
- packages.set(name, inner);
139
- }
140
-
141
- const manifest: PnpManifest = { rootDir, packages, locatorsByLocation };
142
- manifestCache.set(pnpCjsPath, manifest);
143
- return manifest;
144
- }
145
-
146
- /**
147
- * Strip the line-continuations (`\\\n`) Yarn writes around the JSON literal
148
- * and JSON.parse the result. Returns null if we can't find the literal.
149
- */
150
- function extractRawRuntimeState(text: string): PnpRuntimeState | null {
151
- // The literal is `const RAW_RUNTIME_STATE =\n'<json-with-line-conts>';`
152
- // followed by another JS statement on a new line. Match it directly.
153
- const start = text.indexOf("const RAW_RUNTIME_STATE =");
154
- if (start < 0) return null;
155
- const openQuote = text.indexOf("'", start);
156
- if (openQuote < 0) return null;
157
-
158
- // Find the closing `';` — line-continuations escape newlines, NOT
159
- // single-quotes, so the next un-escaped `';` ends the literal.
160
- let i = openQuote + 1;
161
- while (i < text.length) {
162
- const ch = text.charCodeAt(i);
163
- if (ch === 0x5c /* \ */) {
164
- // Skip the escaped char (line-continuation \\\n, escaped quote \', etc.)
165
- i += 2;
166
- continue;
167
- }
168
- if (ch === 0x27 /* ' */) {
169
- // End of literal.
170
- break;
171
- }
172
- i++;
173
- }
174
- if (i >= text.length) return null;
175
-
176
- let raw = text.slice(openQuote + 1, i);
177
- // Yarn's only escape in this literal is `\<newline>` (line continuation).
178
- // Strip them; the result is valid JSON.
179
- raw = raw.replace(/\\\n/g, '');
180
- try {
181
- return JSON.parse(raw) as PnpRuntimeState;
182
- } catch {
183
- return null;
184
- }
185
- }
186
-
187
- /**
188
- * Find which package owns `absolutePath`. Returns the locator + its info, or
189
- * null when the path isn't covered by any package in the manifest.
190
- *
191
- * Uses longest-prefix-match against `packageLocation` entries (Yarn does the
192
- * same in `findPackageLocator`).
193
- */
194
- export function findPackageOwning(
195
- manifest: PnpManifest,
196
- absolutePath: string,
197
- ): {
198
- locator: { name: string | null; reference: string | null };
199
- info: PnpPackageInformation;
200
- } | null {
201
- const relPath = relativeFromRoot(manifest.rootDir, absolutePath);
202
- if (relPath === null) return null;
203
-
204
- let bestMatch: string | null = null;
205
- for (const candidateLocation of manifest.locatorsByLocation.keys()) {
206
- if (
207
- relPath.startsWith(candidateLocation) &&
208
- (bestMatch === null || candidateLocation.length > bestMatch.length)
209
- ) {
210
- bestMatch = candidateLocation;
211
- }
212
- }
213
- if (bestMatch === null) return null;
214
-
215
- const locator = manifest.locatorsByLocation.get(bestMatch)!;
216
- const info = manifest.packages.get(locator.name)?.get(locator.reference);
217
- if (!info) return null;
218
- return { locator, info };
219
- }
220
-
221
- /**
222
- * Resolve a bare specifier through PnP. Returns the absolute on-disk path,
223
- * or null when the request can't be resolved this way.
224
- *
225
- * `id` is a bare specifier like `@scope/foo` or `@scope/foo/bar/baz.js`.
226
- * `callerPath` is the absolute path of the file doing the require.
227
- */
228
- export function resolveBareViaPnp(
229
- manifest: PnpManifest,
230
- id: string,
231
- callerPath: string,
232
- ): string | null {
233
- const owner = findPackageOwning(manifest, callerPath);
234
- if (!owner) return null;
235
-
236
- // Split `@scope/name/sub/path` → name=`@scope/name`, subPath=`sub/path`.
237
- const { pkgName, subPath } = splitSpecifier(id);
238
-
239
- const dep = owner.info.packageDependencies?.find(([name]) => name === pkgName);
240
- if (!dep) return null;
241
- const [, reference] = dep;
242
- if (reference === null) return null;
243
-
244
- const target = manifest.packages.get(pkgName)?.get(reference);
245
- if (!target) return null;
246
-
247
- // `packageLocation` is `./<rel>/` from manifest.rootDir, OR an absolute
248
- // path under `.yarn/unplugged/...` for unplugged packages — Gio.File
249
- // handles the join either way.
250
- const baseFile = target.packageLocation.startsWith('/')
251
- ? Gio.File.new_for_path(target.packageLocation)
252
- : Gio.File.new_for_path(manifest.rootDir).resolve_relative_path(
253
- stripLeadingDotSlash(target.packageLocation),
254
- );
255
- const finalFile = subPath
256
- ? baseFile.resolve_relative_path(subPath)
257
- : baseFile;
258
- return finalFile.get_path();
259
- }
260
-
261
- /** Split `@scope/foo/sub/path` into `pkgName: '@scope/foo'`, `subPath: 'sub/path'`. */
262
- function splitSpecifier(id: string): { pkgName: string; subPath: string } {
263
- if (id.startsWith('@')) {
264
- const slash1 = id.indexOf('/');
265
- if (slash1 < 0) return { pkgName: id, subPath: '' };
266
- const slash2 = id.indexOf('/', slash1 + 1);
267
- if (slash2 < 0) return { pkgName: id, subPath: '' };
268
- return { pkgName: id.slice(0, slash2), subPath: id.slice(slash2 + 1) };
269
- }
270
- const slash = id.indexOf('/');
271
- if (slash < 0) return { pkgName: id, subPath: '' };
272
- return { pkgName: id.slice(0, slash), subPath: id.slice(slash + 1) };
273
- }
274
-
275
- function stripLeadingDotSlash(p: string): string {
276
- return p.startsWith('./') ? p.slice(2) : p;
277
- }
278
-
279
- /** Returns `<absolutePath>` minus `<rootDir>/`, with a trailing slash on
280
- * directory components, matching Yarn's `packageLocation` keys. */
281
- function relativeFromRoot(rootDir: string, absolutePath: string): string | null {
282
- if (absolutePath === rootDir) return './';
283
- const prefix = rootDir.endsWith('/') ? rootDir : rootDir + '/';
284
- if (!absolutePath.startsWith(prefix)) return null;
285
- return './' + absolutePath.slice(prefix.length);
286
- }
package/src/test.mts DELETED
@@ -1,5 +0,0 @@
1
- import '@gjsify/node-globals/register/process';
2
- import '@gjsify/node-globals/register/url';
3
- import { run } from '@gjsify/unit';
4
- import testSuite from './index.spec.js';
5
- run({ testSuite });
package/tsconfig.json DELETED
@@ -1,29 +0,0 @@
1
- {
2
- "compilerOptions": {
3
- "module": "ESNext",
4
- "target": "ESNext",
5
- "moduleResolution": "bundler",
6
- "types": [
7
- "node"
8
- ],
9
- "experimentalDecorators": true,
10
- "emitDeclarationOnly": true,
11
- "declaration": true,
12
- "allowImportingTsExtensions": true,
13
- "outDir": "lib",
14
- "rootDir": "src",
15
- "declarationDir": "lib/types",
16
- "composite": true,
17
- "skipLibCheck": true,
18
- "allowJs": true,
19
- "checkJs": false,
20
- "strict": false
21
- },
22
- "include": [
23
- "src/**/*.ts"
24
- ],
25
- "exclude": [
26
- "src/test.ts",
27
- "src/test.mts"
28
- ]
29
- }
@@ -1 +0,0 @@
1
- {"fileNames":["../../../node_modules/typescript/lib/lib.es5.d.ts","../../../node_modules/typescript/lib/lib.es2015.d.ts","../../../node_modules/typescript/lib/lib.es2016.d.ts","../../../node_modules/typescript/lib/lib.es2017.d.ts","../../../node_modules/typescript/lib/lib.es2018.d.ts","../../../node_modules/typescript/lib/lib.es2019.d.ts","../../../node_modules/typescript/lib/lib.es2020.d.ts","../../../node_modules/typescript/lib/lib.es2021.d.ts","../../../node_modules/typescript/lib/lib.es2022.d.ts","../../../node_modules/typescript/lib/lib.es2023.d.ts","../../../node_modules/typescript/lib/lib.es2024.d.ts","../../../node_modules/typescript/lib/lib.es2025.d.ts","../../../node_modules/typescript/lib/lib.esnext.d.ts","../../../node_modules/typescript/lib/lib.dom.d.ts","../../../node_modules/typescript/lib/lib.dom.iterable.d.ts","../../../node_modules/typescript/lib/lib.dom.asynciterable.d.ts","../../../node_modules/typescript/lib/lib.webworker.importscripts.d.ts","../../../node_modules/typescript/lib/lib.scripthost.d.ts","../../../node_modules/typescript/lib/lib.es2015.core.d.ts","../../../node_modules/typescript/lib/lib.es2015.collection.d.ts","../../../node_modules/typescript/lib/lib.es2015.generator.d.ts","../../../node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../../node_modules/typescript/lib/lib.es2015.promise.d.ts","../../../node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../../node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../../node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../../node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../../node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../../node_modules/typescript/lib/lib.es2016.intl.d.ts","../../../node_modules/typescript/lib/lib.es2017.arraybuffer.d.ts","../../../node_modules/typescript/lib/lib.es2017.date.d.ts","../../../node_modules/typescript/lib/lib.es2017.object.d.ts","../../../node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../../node_modules/typescript/lib/lib.es2017.string.d.ts","../../../node_modules/typescript/lib/lib.es2017.intl.d.ts","../../../node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../../node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../../node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../../node_modules/typescript/lib/lib.es2018.intl.d.ts","../../../node_modules/typescript/lib/lib.es2018.promise.d.ts","../../../node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../../node_modules/typescript/lib/lib.es2019.array.d.ts","../../../node_modules/typescript/lib/lib.es2019.object.d.ts","../../../node_modules/typescript/lib/lib.es2019.string.d.ts","../../../node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../../node_modules/typescript/lib/lib.es2019.intl.d.ts","../../../node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../../node_modules/typescript/lib/lib.es2020.date.d.ts","../../../node_modules/typescript/lib/lib.es2020.promise.d.ts","../../../node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../../node_modules/typescript/lib/lib.es2020.string.d.ts","../../../node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../../node_modules/typescript/lib/lib.es2020.intl.d.ts","../../../node_modules/typescript/lib/lib.es2020.number.d.ts","../../../node_modules/typescript/lib/lib.es2021.promise.d.ts","../../../node_modules/typescript/lib/lib.es2021.string.d.ts","../../../node_modules/typescript/lib/lib.es2021.weakref.d.ts","../../../node_modules/typescript/lib/lib.es2021.intl.d.ts","../../../node_modules/typescript/lib/lib.es2022.array.d.ts","../../../node_modules/typescript/lib/lib.es2022.error.d.ts","../../../node_modules/typescript/lib/lib.es2022.intl.d.ts","../../../node_modules/typescript/lib/lib.es2022.object.d.ts","../../../node_modules/typescript/lib/lib.es2022.string.d.ts","../../../node_modules/typescript/lib/lib.es2022.regexp.d.ts","../../../node_modules/typescript/lib/lib.es2023.array.d.ts","../../../node_modules/typescript/lib/lib.es2023.collection.d.ts","../../../node_modules/typescript/lib/lib.es2023.intl.d.ts","../../../node_modules/typescript/lib/lib.es2024.arraybuffer.d.ts","../../../node_modules/typescript/lib/lib.es2024.collection.d.ts","../../../node_modules/typescript/lib/lib.es2024.object.d.ts","../../../node_modules/typescript/lib/lib.es2024.promise.d.ts","../../../node_modules/typescript/lib/lib.es2024.regexp.d.ts","../../../node_modules/typescript/lib/lib.es2024.sharedmemory.d.ts","../../../node_modules/typescript/lib/lib.es2024.string.d.ts","../../../node_modules/typescript/lib/lib.es2025.collection.d.ts","../../../node_modules/typescript/lib/lib.es2025.float16.d.ts","../../../node_modules/typescript/lib/lib.es2025.intl.d.ts","../../../node_modules/typescript/lib/lib.es2025.iterator.d.ts","../../../node_modules/typescript/lib/lib.es2025.promise.d.ts","../../../node_modules/typescript/lib/lib.es2025.regexp.d.ts","../../../node_modules/typescript/lib/lib.esnext.array.d.ts","../../../node_modules/typescript/lib/lib.esnext.collection.d.ts","../../../node_modules/typescript/lib/lib.esnext.date.d.ts","../../../node_modules/typescript/lib/lib.esnext.decorators.d.ts","../../../node_modules/typescript/lib/lib.esnext.disposable.d.ts","../../../node_modules/typescript/lib/lib.esnext.error.d.ts","../../../node_modules/typescript/lib/lib.esnext.intl.d.ts","../../../node_modules/typescript/lib/lib.esnext.sharedmemory.d.ts","../../../node_modules/typescript/lib/lib.esnext.temporal.d.ts","../../../node_modules/typescript/lib/lib.esnext.typedarrays.d.ts","../../../node_modules/typescript/lib/lib.decorators.d.ts","../../../node_modules/typescript/lib/lib.decorators.legacy.d.ts","../../../node_modules/typescript/lib/lib.esnext.full.d.ts","../../../node_modules/@girs/gjs/gettext.d.ts","../../../node_modules/@girs/gobject-2.0/gobject-2.0-ambient.d.ts","../../../node_modules/@girs/gobject-2.0/gobject-2.0-import.d.ts","../../../node_modules/@girs/glib-2.0/glib-2.0-ambient.d.ts","../../../node_modules/@girs/glib-2.0/glib-2.0-import.d.ts","../../../node_modules/@girs/glib-2.0/glib-2.0.d.ts","../../../node_modules/@girs/glib-2.0/index.d.ts","../../../node_modules/@girs/gobject-2.0/gobject-2.0.d.ts","../../../node_modules/@girs/gobject-2.0/index.d.ts","../../../node_modules/@girs/gjs/system.d.ts","../../../node_modules/@girs/cairo-1.0/cairo-1.0-ambient.d.ts","../../../node_modules/@girs/cairo-1.0/cairo-1.0-import.d.ts","../../../node_modules/@girs/cairo-1.0/cairo-1.0.d.ts","../../../node_modules/@girs/cairo-1.0/index.d.ts","../../../node_modules/@girs/gjs/cairo.d.ts","../../../node_modules/@girs/gjs/console.d.ts","../../../node_modules/@girs/gjs/gi.d.ts","../../../node_modules/@girs/gjs/gjs-ambient.d.ts","../../../node_modules/@girs/gjs/gjs.d.ts","../../../node_modules/@girs/gjs/index.d.ts","../../gjs/unit/lib/types/spy.d.ts","../../gjs/unit/lib/types/index.d.ts","./src/index.spec.ts","../../../node_modules/@girs/gio-2.0/gio-2.0-ambient.d.ts","../../../node_modules/@girs/gio-2.0/gio-2.0-import.d.ts","../../../node_modules/@girs/gmodule-2.0/gmodule-2.0-ambient.d.ts","../../../node_modules/@girs/gmodule-2.0/gmodule-2.0-import.d.ts","../../../node_modules/@girs/gmodule-2.0/gmodule-2.0.d.ts","../../../node_modules/@girs/gmodule-2.0/index.d.ts","../../../node_modules/@girs/gio-2.0/gio-2.0.d.ts","../../../node_modules/@girs/gio-2.0/index.d.ts","../../gjs/utils/lib/types/callable.d.ts","../../gjs/utils/lib/types/base64.d.ts","../../gjs/utils/lib/types/byte-array.d.ts","../../gjs/utils/lib/types/cli.d.ts","../../gjs/utils/lib/types/defer.d.ts","../../gjs/utils/lib/types/encoding.d.ts","../../gjs/utils/lib/types/globals.d.ts","../../gjs/utils/lib/types/error.d.ts","../../gjs/utils/lib/types/file.d.ts","../../gjs/utils/lib/types/fs.d.ts","../../gjs/utils/lib/types/gio.d.ts","../../gjs/utils/lib/types/gio-errors.d.ts","../../gjs/utils/lib/types/message.d.ts","../../gjs/utils/lib/types/microtask.d.ts","../../gjs/utils/lib/types/next-tick.d.ts","../../gjs/utils/lib/types/path.d.ts","../../gjs/utils/lib/types/structured-clone.d.ts","../../gjs/utils/lib/types/main-loop.d.ts","../../gjs/utils/lib/types/index.d.ts","./src/pnp.ts","./src/index.ts","../../../node_modules/@types/node/compatibility/iterators.d.ts","../../../node_modules/@types/node/globals.typedarray.d.ts","../../../node_modules/@types/node/buffer.buffer.d.ts","../../../node_modules/@types/node/globals.d.ts","../../../node_modules/@types/node/web-globals/abortcontroller.d.ts","../../../node_modules/@types/node/web-globals/blob.d.ts","../../../node_modules/@types/node/web-globals/console.d.ts","../../../node_modules/@types/node/web-globals/crypto.d.ts","../../../node_modules/@types/node/web-globals/domexception.d.ts","../../../node_modules/@types/node/web-globals/encoding.d.ts","../../../node_modules/@types/node/web-globals/events.d.ts","../../../node_modules/undici-types/utility.d.ts","../../../node_modules/undici-types/header.d.ts","../../../node_modules/undici-types/readable.d.ts","../../../node_modules/undici-types/fetch.d.ts","../../../node_modules/undici-types/formdata.d.ts","../../../node_modules/undici-types/connector.d.ts","../../../node_modules/undici-types/client-stats.d.ts","../../../node_modules/undici-types/client.d.ts","../../../node_modules/undici-types/errors.d.ts","../../../node_modules/undici-types/dispatcher.d.ts","../../../node_modules/undici-types/global-dispatcher.d.ts","../../../node_modules/undici-types/global-origin.d.ts","../../../node_modules/undici-types/pool-stats.d.ts","../../../node_modules/undici-types/pool.d.ts","../../../node_modules/undici-types/handlers.d.ts","../../../node_modules/undici-types/balanced-pool.d.ts","../../../node_modules/undici-types/round-robin-pool.d.ts","../../../node_modules/undici-types/h2c-client.d.ts","../../../node_modules/undici-types/agent.d.ts","../../../node_modules/undici-types/mock-interceptor.d.ts","../../../node_modules/undici-types/mock-call-history.d.ts","../../../node_modules/undici-types/mock-agent.d.ts","../../../node_modules/undici-types/mock-client.d.ts","../../../node_modules/undici-types/mock-pool.d.ts","../../../node_modules/undici-types/snapshot-agent.d.ts","../../../node_modules/undici-types/mock-errors.d.ts","../../../node_modules/undici-types/proxy-agent.d.ts","../../../node_modules/undici-types/env-http-proxy-agent.d.ts","../../../node_modules/undici-types/retry-handler.d.ts","../../../node_modules/undici-types/retry-agent.d.ts","../../../node_modules/undici-types/api.d.ts","../../../node_modules/undici-types/cache-interceptor.d.ts","../../../node_modules/undici-types/interceptors.d.ts","../../../node_modules/undici-types/util.d.ts","../../../node_modules/undici-types/cookies.d.ts","../../../node_modules/undici-types/patch.d.ts","../../../node_modules/undici-types/websocket.d.ts","../../../node_modules/undici-types/eventsource.d.ts","../../../node_modules/undici-types/diagnostics-channel.d.ts","../../../node_modules/undici-types/content-type.d.ts","../../../node_modules/undici-types/cache.d.ts","../../../node_modules/undici-types/index.d.ts","../../../node_modules/@types/node/web-globals/fetch.d.ts","../../../node_modules/@types/node/web-globals/importmeta.d.ts","../../../node_modules/@types/node/web-globals/messaging.d.ts","../../../node_modules/@types/node/web-globals/navigator.d.ts","../../../node_modules/@types/node/web-globals/performance.d.ts","../../../node_modules/@types/node/web-globals/storage.d.ts","../../../node_modules/@types/node/web-globals/streams.d.ts","../../../node_modules/@types/node/web-globals/timers.d.ts","../../../node_modules/@types/node/web-globals/url.d.ts","../../../node_modules/@types/node/assert.d.ts","../../../node_modules/@types/node/assert/strict.d.ts","../../../node_modules/@types/node/async_hooks.d.ts","../../../node_modules/@types/node/buffer.d.ts","../../../node_modules/@types/node/child_process.d.ts","../../../node_modules/@types/node/cluster.d.ts","../../../node_modules/@types/node/console.d.ts","../../../node_modules/@types/node/constants.d.ts","../../../node_modules/@types/node/crypto.d.ts","../../../node_modules/@types/node/dgram.d.ts","../../../node_modules/@types/node/diagnostics_channel.d.ts","../../../node_modules/@types/node/dns.d.ts","../../../node_modules/@types/node/dns/promises.d.ts","../../../node_modules/@types/node/domain.d.ts","../../../node_modules/@types/node/events.d.ts","../../../node_modules/@types/node/fs.d.ts","../../../node_modules/@types/node/fs/promises.d.ts","../../../node_modules/@types/node/http.d.ts","../../../node_modules/@types/node/http2.d.ts","../../../node_modules/@types/node/https.d.ts","../../../node_modules/@types/node/inspector.d.ts","../../../node_modules/@types/node/inspector.generated.d.ts","../../../node_modules/@types/node/inspector/promises.d.ts","../../../node_modules/@types/node/module.d.ts","../../../node_modules/@types/node/net.d.ts","../../../node_modules/buffer/index.d.ts","../../../node_modules/@types/node/os.d.ts","../../../node_modules/@types/node/path.d.ts","../../../node_modules/@types/node/path/posix.d.ts","../../../node_modules/@types/node/path/win32.d.ts","../../../node_modules/@types/node/perf_hooks.d.ts","../../../node_modules/@types/node/process.d.ts","../../../node_modules/@types/node/punycode.d.ts","../../../node_modules/@types/node/querystring.d.ts","../../../node_modules/@types/node/quic.d.ts","../../../node_modules/@types/node/readline.d.ts","../../../node_modules/@types/node/readline/promises.d.ts","../../../node_modules/@types/node/repl.d.ts","../../../node_modules/@types/node/sea.d.ts","../../../node_modules/@types/node/sqlite.d.ts","../../../node_modules/@types/node/stream.d.ts","../../../node_modules/@types/node/stream/consumers.d.ts","../../../node_modules/@types/node/stream/promises.d.ts","../../../node_modules/@types/node/stream/web.d.ts","../../../node_modules/@types/node/string_decoder.d.ts","../../../node_modules/@types/node/test.d.ts","../../../node_modules/@types/node/test/reporters.d.ts","../../../node_modules/@types/node/timers.d.ts","../../../node_modules/@types/node/timers/promises.d.ts","../../../node_modules/@types/node/tls.d.ts","../../../node_modules/@types/node/trace_events.d.ts","../../../node_modules/@types/node/tty.d.ts","../../../node_modules/@types/node/url.d.ts","../../../node_modules/@types/node/util.d.ts","../../../node_modules/@types/node/util/types.d.ts","../../../node_modules/@types/node/v8.d.ts","../../../node_modules/@types/node/vm.d.ts","../../../node_modules/@types/node/wasi.d.ts","../../../node_modules/@types/node/worker_threads.d.ts","../../../node_modules/@types/node/zlib.d.ts","../../../node_modules/@types/node/index.d.ts"],"fileIdsList":[[104,107,111,148,211,214,219,223,226,228,229,230,243],[107,111,148,211,214,219,223,226,228,229,230,243],[100,102,111,113,148,211,214,219,223,226,228,229,230,243],[105,106,111,148,211,214,219,223,226,228,229,230,243],[111,117,124,148,211,214,219,223,226,228,229,230,243],[111,124,148,211,214,219,223,226,228,229,230,243],[100,102,111,113,122,148,211,214,219,223,226,228,229,230,243],[111,118,123,148,211,214,219,223,226,228,229,230,243],[102,107,111,148,211,214,219,223,226,228,229,230,243],[111,148,211,214,219,223,226,228,229,230,243],[94,103,108,109,110,148,211,214,219,223,226,228,229,230,243],[94,100,102,103,108,111,148,211,214,219,223,226,228,229,230,243],[111,112,148,211,214,219,223,226,228,229,230,243],[102,111,148,211,214,219,223,226,228,229,230,243],[97,100,111,148,211,214,219,223,226,228,229,230,243],[100,111,148,211,214,219,223,226,228,229,230,243],[102,111,113,148,211,214,219,223,226,228,229,230,243],[98,99,111,148,211,214,219,223,226,228,229,230,243],[111,119,122,148,211,214,219,223,226,228,229,230,243],[111,122,148,211,214,219,223,226,228,229,230,243],[111,120,121,148,211,214,219,223,226,228,229,230,243],[95,102,111,148,211,214,219,223,226,228,229,230,243],[100,111,113,148,211,214,219,223,226,228,229,230,243],[96,101,111,148,211,214,219,223,226,228,229,230,243],[111,148,208,209,211,214,219,223,226,228,229,230,243],[111,148,210,211,214,219,223,226,228,229,230,243],[111,211,214,219,223,226,228,229,230,243],[111,148,211,214,219,223,226,228,229,230,243,251],[111,148,211,212,214,217,219,222,223,226,228,229,230,232,243,248,260],[111,148,211,212,213,214,219,222,223,226,228,229,230,243],[111,148,211,214,219,223,226,228,229,230,243,261],[111,148,211,214,215,216,219,223,226,228,229,230,234,243],[111,148,211,214,216,219,223,226,228,229,230,243,248,257],[111,148,211,214,217,219,222,223,226,228,229,230,232,243],[111,148,210,211,214,218,219,223,226,228,229,230,243],[111,148,211,214,219,220,223,226,228,229,230,243],[111,148,211,214,219,221,222,223,226,228,229,230,243],[111,148,210,211,214,219,222,223,226,228,229,230,243],[111,148,211,214,219,222,223,224,226,228,229,230,243,248,260],[111,148,211,214,219,222,223,224,226,228,229,230,243,248,251],[111,148,198,211,214,219,222,223,225,226,228,229,230,232,243,248,260],[111,148,211,214,219,222,223,225,226,228,229,230,232,243,248,257,260],[111,148,211,214,219,223,225,226,227,228,229,230,243,248,257,260],[111,146,147,148,149,150,151,152,153,154,155,156,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267],[111,148,211,214,219,222,223,226,228,229,230,243],[111,148,211,214,219,223,226,228,230,243],[111,148,211,214,219,223,226,228,229,230,231,243,260],[111,148,211,214,219,222,223,226,228,229,230,232,243,248],[111,148,211,214,219,223,226,228,229,230,234,243],[111,148,211,214,219,223,226,228,229,230,235,243],[111,148,211,214,219,222,223,226,228,229,230,238,243],[111,148,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267],[111,148,211,214,219,223,226,228,229,230,240,243],[111,148,211,214,219,223,226,228,229,230,241,243],[111,148,211,214,216,219,223,226,228,229,230,232,243,251],[111,148,211,214,219,222,223,226,228,229,230,243,244],[111,148,211,214,219,223,226,228,229,230,243,245,261,264],[111,148,211,214,219,222,223,226,228,229,230,243,248,250,251],[111,148,211,214,219,223,226,228,229,230,243,249,251],[111,148,211,214,219,223,226,228,229,230,243,251,261],[111,148,211,214,219,223,226,228,229,230,243,252],[111,148,208,211,214,219,223,226,228,229,230,243,248,254,260],[111,148,211,214,219,223,226,228,229,230,243,248,253],[111,148,211,214,219,222,223,226,228,229,230,243,255,256],[111,148,211,214,219,223,226,228,229,230,243,255,256],[111,148,211,214,216,219,223,226,228,229,230,232,243,248,257],[111,148,211,214,219,223,226,228,229,230,243,258],[111,148,211,214,219,223,226,228,229,230,232,243,259],[111,148,211,214,219,223,225,226,228,229,230,241,243,260],[111,148,211,214,219,223,226,228,229,230,243,261,262],[111,148,211,214,216,219,223,226,228,229,230,243,262],[111,148,211,214,219,223,226,228,229,230,243,248,263],[111,148,211,214,219,223,226,228,229,230,231,243,264],[111,148,211,214,219,223,226,228,229,230,243,265],[111,148,211,214,216,219,223,226,228,229,230,243],[111,148,198,211,214,219,223,226,228,229,230,243],[111,148,211,214,219,223,226,228,229,230,243,260],[111,148,211,214,219,223,226,228,229,230,243,266],[111,148,211,214,219,223,226,228,229,230,238,243],[111,148,211,214,219,223,226,228,229,230,243,256],[111,148,198,211,214,219,222,223,224,226,228,229,230,238,243,248,251,260,263,264,266],[111,148,211,214,219,223,226,228,229,230,243,248,267],[111,148,163,166,169,170,211,214,219,223,226,228,229,230,243,260],[111,148,166,211,214,219,223,226,228,229,230,243,248,260],[111,148,166,170,211,214,219,223,226,228,229,230,243,260],[111,148,211,214,219,223,226,228,229,230,243,248],[111,148,160,211,214,219,223,226,228,229,230,243],[111,148,164,211,214,219,223,226,228,229,230,243],[111,148,162,163,166,211,214,219,223,226,228,229,230,243,260],[111,148,211,214,219,223,226,228,229,230,232,243,257],[111,148,211,214,219,223,226,228,229,230,243,268],[111,148,160,211,214,219,223,226,228,229,230,243,268],[111,148,162,166,211,214,219,223,226,228,229,230,232,243,260],[111,148,157,158,159,161,165,211,214,219,222,223,226,228,229,230,243,248,260],[111,148,166,175,183,211,214,219,223,226,228,229,230,243],[111,148,158,164,211,214,219,223,226,228,229,230,243],[111,148,166,192,193,211,214,219,223,226,228,229,230,243],[111,148,158,161,166,211,214,219,223,226,228,229,230,243,251,260,268],[111,148,166,211,214,219,223,226,228,229,230,243],[111,148,162,166,211,214,219,223,226,228,229,230,243,260],[111,148,157,211,214,219,223,226,228,229,230,243],[111,148,160,161,162,164,165,166,167,168,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,193,194,195,196,197,211,214,219,223,226,228,229,230,243],[111,148,166,185,188,211,214,219,223,226,228,229,230,243],[111,148,166,175,176,177,211,214,219,223,226,228,229,230,243],[111,148,164,166,176,178,211,214,219,223,226,228,229,230,243],[111,148,165,211,214,219,223,226,228,229,230,243],[111,148,158,160,166,211,214,219,223,226,228,229,230,243],[111,148,166,170,176,178,211,214,219,223,226,228,229,230,243],[111,148,170,211,214,219,223,226,228,229,230,243],[111,148,164,166,169,211,214,219,223,226,228,229,230,243,260],[111,148,158,162,166,175,211,214,219,223,226,228,229,230,243],[111,148,166,185,211,214,219,223,226,228,229,230,243],[111,148,178,211,214,219,223,226,228,229,230,243],[111,148,160,166,192,211,214,219,223,226,228,229,230,243,251,266,268],[111,113,114,148,211,214,219,223,226,228,229,230,243],[111,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,148,211,214,219,223,226,228,229,230,243],[111,115,148,211,214,219,223,226,228,229,230,231,243],[100,111,113,124,143,144,148,211,214,219,223,226,228,229,230,243],[100,111,124,148,211,214,219,223,226,228,229,230,243]],"fileInfos":[{"version":"bcd24271a113971ba9eb71ff8cb01bc6b0f872a85c23fdbe5d93065b375933cd","affectsGlobalScope":true,"impliedFormat":1},{"version":"3f88bedbeb09c6f5a6645cb24c7c55f1aa22d19ae96c8e6959cbd8b85a707bc6","impliedFormat":1},{"version":"7fe93b39b810eadd916be8db880dd7f0f7012a5cc6ffb62de8f62a2117fa6f1f","impliedFormat":1},{"version":"bb0074cc08b84a2374af33d8bf044b80851ccc9e719a5e202eacf40db2c31600","impliedFormat":1},{"version":"1a7daebe4f45fb03d9ec53d60008fbf9ac45a697fdc89e4ce218bc94b94f94d6","impliedFormat":1},{"version":"f94b133a3cb14a288803be545ac2683e0d0ff6661bcd37e31aaaec54fc382aed","impliedFormat":1},{"version":"f59d0650799f8782fd74cf73c19223730c6d1b9198671b1c5b3a38e1188b5953","impliedFormat":1},{"version":"8a15b4607d9a499e2dbeed9ec0d3c0d7372c850b2d5f1fb259e8f6d41d468a84","impliedFormat":1},{"version":"26e0fe14baee4e127f4365d1ae0b276f400562e45e19e35fd2d4c296684715e6","impliedFormat":1},{"version":"1e9332c23e9a907175e0ffc6a49e236f97b48838cc8aec9ce7e4cec21e544b65","impliedFormat":1},{"version":"3753fbc1113dc511214802a2342280a8b284ab9094f6420e7aa171e868679f91","impliedFormat":1},{"version":"999ca32883495a866aa5737fe1babc764a469e4cde6ee6b136a4b9ae68853e4b","impliedFormat":1},{"version":"17f13ecb98cbc39243f2eee1f16d45cd8ec4706b03ee314f1915f1a8b42f6984","impliedFormat":1},{"version":"d6b1eba8496bdd0eed6fc8a685768fe01b2da4a0388b5fe7df558290bffcf32f","affectsGlobalScope":true,"impliedFormat":1},{"version":"7f57fc4404ff020bc45b9c620aff2b40f700b95fe31164024c453a5e3c163c54","impliedFormat":1},{"version":"7f57fc4404ff020bc45b9c620aff2b40f700b95fe31164024c453a5e3c163c54","impliedFormat":1},{"version":"2a2de5b9459b3fc44decd9ce6100b72f1b002ef523126c1d3d8b2a4a63d74d78","affectsGlobalScope":true,"impliedFormat":1},{"version":"f13f4b465c99041e912db5c44129a94588e1aafee35a50eab51044833f50b4ee","affectsGlobalScope":true,"impliedFormat":1},{"version":"eadcffda2aa84802c73938e589b9e58248d74c59cb7fcbca6474e3435ac15504","affectsGlobalScope":true,"impliedFormat":1},{"version":"105ba8ff7ba746404fe1a2e189d1d3d2e0eb29a08c18dded791af02f29fb4711","affectsGlobalScope":true,"impliedFormat":1},{"version":"00343ca5b2e3d48fa5df1db6e32ea2a59afab09590274a6cccb1dbae82e60c7c","affectsGlobalScope":true,"impliedFormat":1},{"version":"ebd9f816d4002697cb2864bea1f0b70a103124e18a8cd9645eeccc09bdf80ab4","affectsGlobalScope":true,"impliedFormat":1},{"version":"2c1afac30a01772cd2a9a298a7ce7706b5892e447bb46bdbeef720f7b5da77ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"7b0225f483e4fa685625ebe43dd584bb7973bbd84e66a6ba7bbe175ee1048b4f","affectsGlobalScope":true,"impliedFormat":1},{"version":"c0a4b8ac6ce74679c1da2b3795296f5896e31c38e888469a8e0f99dc3305de60","affectsGlobalScope":true,"impliedFormat":1},{"version":"3084a7b5f569088e0146533a00830e206565de65cae2239509168b11434cd84f","affectsGlobalScope":true,"impliedFormat":1},{"version":"c5079c53f0f141a0698faa903e76cb41cd664e3efb01cc17a5c46ec2eb0bef42","affectsGlobalScope":true,"impliedFormat":1},{"version":"32cafbc484dea6b0ab62cf8473182bbcb23020d70845b406f80b7526f38ae862","affectsGlobalScope":true,"impliedFormat":1},{"version":"fca4cdcb6d6c5ef18a869003d02c9f0fd95df8cfaf6eb431cd3376bc034cad36","affectsGlobalScope":true,"impliedFormat":1},{"version":"b93ec88115de9a9dc1b602291b85baf825c85666bf25985cc5f698073892b467","affectsGlobalScope":true,"impliedFormat":1},{"version":"f5c06dcc3fe849fcb297c247865a161f995cc29de7aa823afdd75aaaddc1419b","affectsGlobalScope":true,"impliedFormat":1},{"version":"b77e16112127a4b169ef0b8c3a4d730edf459c5f25fe52d5e436a6919206c4d7","affectsGlobalScope":true,"impliedFormat":1},{"version":"fbffd9337146eff822c7c00acbb78b01ea7ea23987f6c961eba689349e744f8c","affectsGlobalScope":true,"impliedFormat":1},{"version":"a995c0e49b721312f74fdfb89e4ba29bd9824c770bbb4021d74d2bf560e4c6bd","affectsGlobalScope":true,"impliedFormat":1},{"version":"c7b3542146734342e440a84b213384bfa188835537ddbda50d30766f0593aff9","affectsGlobalScope":true,"impliedFormat":1},{"version":"ce6180fa19b1cccd07ee7f7dbb9a367ac19c0ed160573e4686425060b6df7f57","affectsGlobalScope":true,"impliedFormat":1},{"version":"3f02e2476bccb9dbe21280d6090f0df17d2f66b74711489415a8aa4df73c9675","affectsGlobalScope":true,"impliedFormat":1},{"version":"45e3ab34c1c013c8ab2dc1ba4c80c780744b13b5676800ae2e3be27ae862c40c","affectsGlobalScope":true,"impliedFormat":1},{"version":"805c86f6cca8d7702a62a844856dbaa2a3fd2abef0536e65d48732441dde5b5b","affectsGlobalScope":true,"impliedFormat":1},{"version":"e42e397f1a5a77994f0185fd1466520691456c772d06bf843e5084ceb879a0ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"f4c2b41f90c95b1c532ecc874bd3c111865793b23aebcc1c3cbbabcd5d76ffb0","affectsGlobalScope":true,"impliedFormat":1},{"version":"ab26191cfad5b66afa11b8bf935ef1cd88fabfcb28d30b2dfa6fad877d050332","affectsGlobalScope":true,"impliedFormat":1},{"version":"2088bc26531e38fb05eedac2951480db5309f6be3fa4a08d2221abb0f5b4200d","affectsGlobalScope":true,"impliedFormat":1},{"version":"cb9d366c425fea79716a8fb3af0d78e6b22ebbab3bd64d25063b42dc9f531c1e","affectsGlobalScope":true,"impliedFormat":1},{"version":"500934a8089c26d57ebdb688fc9757389bb6207a3c8f0674d68efa900d2abb34","affectsGlobalScope":true,"impliedFormat":1},{"version":"689da16f46e647cef0d64b0def88910e818a5877ca5379ede156ca3afb780ac3","affectsGlobalScope":true,"impliedFormat":1},{"version":"bc21cc8b6fee4f4c2440d08035b7ea3c06b3511314c8bab6bef7a92de58a2593","affectsGlobalScope":true,"impliedFormat":1},{"version":"7ca53d13d2957003abb47922a71866ba7cb2068f8d154877c596d63c359fed25","affectsGlobalScope":true,"impliedFormat":1},{"version":"54725f8c4df3d900cb4dac84b64689ce29548da0b4e9b7c2de61d41c79293611","affectsGlobalScope":true,"impliedFormat":1},{"version":"e5594bc3076ac29e6c1ebda77939bc4c8833de72f654b6e376862c0473199323","affectsGlobalScope":true,"impliedFormat":1},{"version":"2f3eb332c2d73e729f3364fcc0c2b375e72a121e8157d25a82d67a138c83a95c","affectsGlobalScope":true,"impliedFormat":1},{"version":"6f4427f9642ce8d500970e4e69d1397f64072ab73b97e476b4002a646ac743b1","affectsGlobalScope":true,"impliedFormat":1},{"version":"48915f327cd1dea4d7bd358d9dc7732f58f9e1626a29cc0c05c8c692419d9bb7","affectsGlobalScope":true,"impliedFormat":1},{"version":"b7bf9377723203b5a6a4b920164df22d56a43f593269ba6ae1fdc97774b68855","affectsGlobalScope":true,"impliedFormat":1},{"version":"db9709688f82c9e5f65a119c64d835f906efe5f559d08b11642d56eb85b79357","affectsGlobalScope":true,"impliedFormat":1},{"version":"4b25b8c874acd1a4cf8444c3617e037d444d19080ac9f634b405583fd10ce1f7","affectsGlobalScope":true,"impliedFormat":1},{"version":"37be57d7c90cf1f8112ee2636a068d8fd181289f82b744160ec56a7dc158a9f5","affectsGlobalScope":true,"impliedFormat":1},{"version":"a917a49ac94cd26b754ab84e113369a75d1a47a710661d7cd25e961cc797065f","affectsGlobalScope":true,"impliedFormat":1},{"version":"6d3261badeb7843d157ef3e6f5d1427d0eeb0af0cf9df84a62cfd29fd47ac86e","affectsGlobalScope":true,"impliedFormat":1},{"version":"195daca651dde22f2167ac0d0a05e215308119a3100f5e6268e8317d05a92526","affectsGlobalScope":true,"impliedFormat":1},{"version":"8b11e4285cd2bb164a4dc09248bdec69e9842517db4ca47c1ba913011e44ff2f","affectsGlobalScope":true,"impliedFormat":1},{"version":"0508571a52475e245b02bc50fa1394065a0a3d05277fbf5120c3784b85651799","affectsGlobalScope":true,"impliedFormat":1},{"version":"8f9af488f510c3015af3cc8c267a9e9d96c4dd38a1fdff0e11dc5a544711415b","affectsGlobalScope":true,"impliedFormat":1},{"version":"fc611fea8d30ea72c6bbfb599c9b4d393ce22e2f5bfef2172534781e7d138104","affectsGlobalScope":true,"impliedFormat":1},{"version":"0bd714129fca875f7d4c477a1a392200b0bcd13fb2e80928cd334b63830ea047","affectsGlobalScope":true,"impliedFormat":1},{"version":"e2c9037ae6cd2c52d80ceef0b3c5ffdb488627d71529cf4f63776daf11161c9a","affectsGlobalScope":true,"impliedFormat":1},{"version":"135d5cf4d345f59f1a9caadfafcd858d3d9cc68290db616cc85797224448cccc","affectsGlobalScope":true,"impliedFormat":1},{"version":"bc238c3f81c2984751932b6aab223cd5b830e0ac6cad76389e5e9d2ffc03287d","affectsGlobalScope":true,"impliedFormat":1},{"version":"4a07f9b76d361f572620927e5735b77d6d2101c23cdd94383eb5b706e7b36357","affectsGlobalScope":true,"impliedFormat":1},{"version":"7c4e8dc6ab834cc6baa0227e030606d29e3e8449a9f67cdf5605ea5493c4db29","affectsGlobalScope":true,"impliedFormat":1},{"version":"de7ba0fd02e06cd9a5bd4ab441ed0e122735786e67dde1e849cced1cd8b46b78","affectsGlobalScope":true,"impliedFormat":1},{"version":"6148e4e88d720a06855071c3db02069434142a8332cf9c182cda551adedf3156","affectsGlobalScope":true,"impliedFormat":1},{"version":"d63dba625b108316a40c95a4425f8d4294e0deeccfd6c7e59d819efa19e23409","affectsGlobalScope":true,"impliedFormat":1},{"version":"0568d6befee03dd435bed4fc25c4e46865b24bdcb8c563fdc21f580a2c301904","affectsGlobalScope":true,"impliedFormat":1},{"version":"30d62269b05b584741f19a5369852d5d34895aa2ac4fd948956f886d15f9cc0d","affectsGlobalScope":true,"impliedFormat":1},{"version":"f128dae7c44d8f35ee42e0a437000a57c9f06cc04f8b4fb42eebf44954d53dc8","affectsGlobalScope":true,"impliedFormat":1},{"version":"ffbe6d7b295306b2ba88030f65b74c107d8d99bdcf596ea99c62a02f606108b0","affectsGlobalScope":true,"impliedFormat":1},{"version":"996fb27b15277369c68a4ba46ed138b4e9e839a02fb4ec756f7997629242fd9f","affectsGlobalScope":true,"impliedFormat":1},{"version":"79b712591b270d4778c89706ca2cfc56ddb8c3f895840e477388f1710dc5eda9","affectsGlobalScope":true,"impliedFormat":1},{"version":"20884846cef428b992b9bd032e70a4ef88e349263f63aeddf04dda837a7dba26","affectsGlobalScope":true,"impliedFormat":1},{"version":"5fcab789c73a97cd43828ee3cc94a61264cf24d4c44472ce64ced0e0f148bdb2","affectsGlobalScope":true,"impliedFormat":1},{"version":"db59a81f070c1880ad645b2c0275022baa6a0c4f0acdc58d29d349c6efcf0903","affectsGlobalScope":true,"impliedFormat":1},{"version":"673294292640f5722b700e7d814e17aaf7d93f83a48a2c9b38f33cbc940ad8b0","affectsGlobalScope":true,"impliedFormat":1},{"version":"d786b48f934cbca483b3c6d0a798cb43bbb4ada283e76fb22c28e53ae05b9e69","affectsGlobalScope":true,"impliedFormat":1},{"version":"1ecb8e347cb6b2a8927c09b86263663289418df375f5e68e11a0ae683776978f","affectsGlobalScope":true,"impliedFormat":1},{"version":"142efd4ce210576f777dc34df121777be89eda476942d6d6663b03dcb53be3ff","affectsGlobalScope":true,"impliedFormat":1},{"version":"379bc41580c2d774f82e828c70308f24a005b490c25ba34d679d84bcf05c3d9d","affectsGlobalScope":true,"impliedFormat":1},{"version":"ed484fb2aa8a1a23d0277056ec3336e0a0b52f9b8d6a961f338a642faf43235d","affectsGlobalScope":true,"impliedFormat":1},{"version":"4ffedae1d1c2d53fdbca1c96d3c7dda544281f7d262f99b6880634f8fd8d9820","affectsGlobalScope":true,"impliedFormat":1},{"version":"83a730b125d477dd264df8ba479afab27a3dae7152b005c214ab94dc7ee44fd3","affectsGlobalScope":true,"impliedFormat":1},{"version":"1ce14b81c5cc821994aa8ec1d42b220dd41b27fcc06373bce3958af7421b77d4","affectsGlobalScope":true,"impliedFormat":1},{"version":"b3a048b3e9302ef9a34ef4ebb9aecfb28b66abb3bce577206a79fee559c230da","affectsGlobalScope":true,"impliedFormat":1},{"version":"ef4a897cd2a3f91000c10264e400b3667c7e51e1b7365f03b62e8081dc53bde6","impliedFormat":1},{"version":"4936d25ba31379ce4e3d4289f6c0ea936510e111f823ec377015de6ba7047adf","impliedFormat":99},{"version":"1ffa53902f87f288dbaebc1dd9c754a0f0f1c4af2733fc7e173022209e7d4ef8","impliedFormat":99},{"version":"d7801240a49920afb07e1a83597b05a26e5e3758163a70448ba14df3f7ab5286","affectsGlobalScope":true,"impliedFormat":99},{"version":"2aed5de224f5094280addfaf59e82b362b3680083917cfa7f066c4b89cc58b74","impliedFormat":99},{"version":"86ecf772256f9205f72c768dc9b47d27b4254a64a1dd94f61c8c2f29219c24e1","affectsGlobalScope":true,"impliedFormat":99},{"version":"f62bcd0d626998f4b14a5e4bf6c65abf4dfeaa042243dd57e4e92125fd602ed6","impliedFormat":99},{"version":"9462f849ff8d50a61639f09a8e369f7584c623a8cbcf9d99c6b81aacbca91fd2","impliedFormat":99},{"version":"6da820ee582c593971e71a933dbf54d72b47984bb11f888d225c7a8476e74790","impliedFormat":99},{"version":"048a292f9fb06d0aab8c52cabd81bc820c70d68500530afe1867c08e431d4e46","impliedFormat":99},{"version":"e2f9944677cba1c7f636dde67d7ca77982da3b52134c617bd86d3a4d8607b498","impliedFormat":99},{"version":"ceaf67c6cb2df4f38f466bd3709a72199d1d98377dcf215bf760b2a383fc73a8","impliedFormat":99},{"version":"c5f89dedf8e238012d580d16ee2286bf0681f1389f14d419c87711070430995c","affectsGlobalScope":true,"impliedFormat":99},{"version":"dc996a90baa100126e6014b2f55022930e1a44621ec68eb163f322714b7596bc","impliedFormat":99},{"version":"cdd5245a59183386c7b465ad56e2353a0a1b49c32733520ec5c0eeb718781012","impliedFormat":99},{"version":"35c6737b37a2c92e67a14ba7692f3216df6c140c28133835768f7c66cb15fa88","impliedFormat":99},{"version":"7b607f4711c496c7c4f57abddfc7b9912059e1f264417ff8f4280b65f756bf4d","impliedFormat":99},{"version":"17122ddf1e2ff9f0538a06af6edc8d2666d7e1a428239e86358afc09ac7a8779","impliedFormat":99},{"version":"2cc6a5c34041442caa16aff0686d41595296248c7c33bfac5b94cd4fe8ae20de","impliedFormat":99},{"version":"8384e3ab082eecd9d0faa07ddf7e9ff3879bfac60216e47328f799600e47ea80","affectsGlobalScope":true,"impliedFormat":99},{"version":"715e7c015d2f3f4de0da107d9be2db02b52cea3d2d446ad11d2e732848d8e3e7","impliedFormat":99},"cda120f78df4c624c7fb1bd8e17343a39bfbede803f38312fb8e51fa818e1a7a","d9e135cc1dcf9f798edb9665b777dcad812d980a467b6ed11ce1d1bb9f017176",{"version":"8d75c68ce06ae94ec8701b24fc344d10a1a3a7a79e7f232e1decfa83afb38cf5","signature":"fefaf643ad02c05059e06244a8291c4cb3a2693ec928c843599c25d00ee9f574"},{"version":"1a7eec8977d21e8bf216ea62b836bdda1768c2a49ee689e5e09fb2f56a7837e4","impliedFormat":99},{"version":"8deb0c1eae578bb83a0056727ddec6be752d015acebfdd90f53797f8a035e57d","affectsGlobalScope":true,"impliedFormat":99},{"version":"d0b90b2c22bda9b6a7dabfb505a7fd3896e0267ab791d63a4a37098d0829e1b0","impliedFormat":99},{"version":"d26efa37b7cbdcc391dc201683de609900869d285213abf1dcbfb5275427142f","affectsGlobalScope":true,"impliedFormat":99},{"version":"0fe0f52d9ee15bf4fbeef129a5841a706720641554be2220df52c994f343a2f1","impliedFormat":99},{"version":"586cc6c492134b4680582124d2cd7d20efe0993917871647e0000dbf670bc0da","impliedFormat":99},{"version":"eaac6969d2a0d853a8870b9ba9591b429b80f99308cc97c3fe223b54bfc4127f","impliedFormat":99},{"version":"4b8b7197750fcbfe01b0c3b0e42a18367763e07eb937e0a278a27c69489a2575","impliedFormat":99},"d2e00d708f8db8281e83b0966bb384491deccea1a1fecdf2e6cf600d8fdeda80","004cd7c170c88793a62f0b831a52c8bec5835581048d81ec483105bb6fb569c8","55aac1cafba7e50f99fb9e8628a7f634e8354534e96ea8585821215c87de20be","f88f71f98c5b98896efe89d3a38dc6ec813b7e08d168f1006c4973839d77ca08","b76aa9f47943110ec585bb2b743aecb6f000377700923632f0db301482bdd73c","af1988260c49b37553045ea830586a7aeb8e442f20579ee17b5a2ac26141ad6c","bcd5f304d453dd40284c9645b5de54e0d8c8df0f3d80f53d664d3f99782d0ef5","a7298076563ec3132348662dacd7512b67a8564714460cf092a0211bcca5ee20","c99b7291b92920c8990726218d15eb170e32f6d74c63b7a020f0812f8546d288","1981a715841b053d196bd2fa7094a40e443550be04387c5bd61bd987c862a8c1","2b9a95c45751bab93ad8f47330f6e9ca44fe49484c34678f186994e92c539819","d99f0729ec70cb1c9f9a7e6352033a73dc082bf4b51ee2c2c1a78a19072af511","49243f7ff940e6fa2bb1064e9db8579284331ebfdbbc40afa4c5579c11daed12","e13cb0a1ad0c178ffd4c18d55e4928100f372b9676636f5ae7d60e1ff815a256","ca44c014d4c7b60f6f7c547055de18485d94714fb9012de67c2220449c3f4afc","0f633f56c3e62663502f33a45c9e05f06c638e00f949bbaa3efcb6623af1f910","19764f46f5f49e9c0426e38e477f1ca75748f93e7314ff91fa92e4fd63df3eb8","3978e1a4e65d355befa56b48fece71e9cee3985f568ad88de880a9ebc336b03a","0b6d588d7c2fa5b9a5b28cecffd371b63f5f730c9119120d19f8027d92ac7cfa",{"version":"ddf64cd1e71faf878c4b74e52b48d085cc29c2a09314557a23e2af0756ca8b6c","signature":"e2005280841f6d2b75301dfec9cf2632afc1de7e55fe209cf73f9b8c33ff968a"},{"version":"e64be76a8dacd0c63f7ee257accc70cefa600994a252cfee753e04b864cdf885","signature":"e4d4bbf715c8f80b6988e761c6808076aa46596a4c554b0a9515db387894cd02"},{"version":"d153a11543fd884b596587ccd97aebbeed950b26933ee000f94009f1ab142848","affectsGlobalScope":true,"impliedFormat":1},{"version":"0ccdaa19852d25ecd84eec365c3bfa16e7859cadecf6e9ca6d0dbbbee439743f","affectsGlobalScope":true,"impliedFormat":1},{"version":"cc2110f7decca6bfb9392e30421cfa1436479e4a6756e8fec6cbc22625d4f881","affectsGlobalScope":true,"impliedFormat":1},{"version":"096116f8fedc1765d5bd6ef360c257b4a9048e5415054b3bf3c41b07f8951b0b","affectsGlobalScope":true,"impliedFormat":1},{"version":"e5e01375c9e124a83b52ee4b3244ed1a4d214a6cfb54ac73e164a823a4a7860a","affectsGlobalScope":true,"impliedFormat":1},{"version":"f90ae2bbce1505e67f2f6502392e318f5714bae82d2d969185c4a6cecc8af2fc","affectsGlobalScope":true,"impliedFormat":1},{"version":"4b58e207b93a8f1c88bbf2a95ddc686ac83962b13830fe8ad3f404ffc7051fb4","affectsGlobalScope":true,"impliedFormat":1},{"version":"1fefabcb2b06736a66d2904074d56268753654805e829989a46a0161cd8412c5","affectsGlobalScope":true,"impliedFormat":1},{"version":"9798340ffb0d067d69b1ae5b32faa17ab31b82466a3fc00d8f2f2df0c8554aaa","affectsGlobalScope":true,"impliedFormat":1},{"version":"c18a99f01eb788d849ad032b31cafd49de0b19e083fe775370834c5675d7df8e","affectsGlobalScope":true,"impliedFormat":1},{"version":"5247874c2a23b9a62d178ae84f2db6a1d54e6c9a2e7e057e178cc5eea13757fc","affectsGlobalScope":true,"impliedFormat":1},{"version":"cdcf9ea426ad970f96ac930cd176d5c69c6c24eebd9fc580e1572d6c6a88f62c","impliedFormat":1},{"version":"23cd712e2ce083d68afe69224587438e5914b457b8acf87073c22494d706a3d0","impliedFormat":1},{"version":"156a859e21ef3244d13afeeba4e49760a6afa035c149dda52f0c45ea8903b338","impliedFormat":1},{"version":"10ec5e82144dfac6f04fa5d1d6c11763b3e4dbbac6d99101427219ab3e2ae887","impliedFormat":1},{"version":"615754924717c0b1e293e083b83503c0a872717ad5aa60ed7f1a699eb1b4ea5c","impliedFormat":1},{"version":"074de5b2fdead0165a2757e3aaef20f27a6347b1c36adea27d51456795b37682","impliedFormat":1},{"version":"68834d631c8838c715f225509cfc3927913b9cc7a4870460b5b60c8dbdb99baf","impliedFormat":1},{"version":"4137ebf04166f3a325f056aa56101adc75e9dceb30404a1844eb8604d89770e2","impliedFormat":1},{"version":"ccab02f3920fc75c01174c47fcf67882a11daf16baf9e81701d0a94636e94556","impliedFormat":1},{"version":"3e11fce78ad8c0e1d1db4ba5f0652285509be3acdd519529bc8fcef85f7dafd9","impliedFormat":1},{"version":"ea6bc8de8b59f90a7a3960005fd01988f98fd0784e14bc6922dde2e93305ec7d","impliedFormat":1},{"version":"36107995674b29284a115e21a0618c4c2751b32a8766dd4cb3ba740308b16d59","impliedFormat":1},{"version":"914a0ae30d96d71915fc519ccb4efbf2b62c0ddfb3a3fc6129151076bc01dc60","impliedFormat":1},{"version":"9c32412007b5662fd34a8eb04292fb5314ec370d7016d1c2fb8aa193c807fe22","impliedFormat":1},{"version":"7fd1b31fd35876b0aa650811c25ec2c97a3c6387e5473eb18004bed86cdd76b6","impliedFormat":1},{"version":"4d327f7d72ad0918275cea3eee49a6a8dc8114ae1d5b7f3f5d0774de75f7439a","impliedFormat":1},{"version":"6ebe8ebb8659aaa9d1acbf3710d7dae3e923e97610238b9511c25dc39023a166","impliedFormat":1},{"version":"e85d7f8068f6a26710bff0cc8c0fc5e47f71089c3780fbede05857331d2ddec9","impliedFormat":1},{"version":"7befaf0e76b5671be1d47b77fcc65f2b0aad91cc26529df1904f4a7c46d216e9","impliedFormat":1},{"version":"0a60a292b89ca7218b8616f78e5bbd1c96b87e048849469cccb4355e98af959a","impliedFormat":1},{"version":"0b6e25234b4eec6ed96ab138d96eb70b135690d7dd01f3dd8a8ab291c35a683a","impliedFormat":1},{"version":"9666f2f84b985b62400d2e5ab0adae9ff44de9b2a34803c2c5bd3c8325b17dc0","impliedFormat":1},{"version":"40cd35c95e9cf22cfa5bd84e96408b6fcbca55295f4ff822390abb11afbc3dca","impliedFormat":1},{"version":"b1616b8959bf557feb16369c6124a97a0e74ed6f49d1df73bb4b9ddf68acf3f3","impliedFormat":1},{"version":"5b03a034c72146b61573aab280f295b015b9168470f2df05f6080a2122f9b4df","impliedFormat":1},{"version":"40b463c6766ca1b689bfcc46d26b5e295954f32ad43e37ee6953c0a677e4ae2b","impliedFormat":1},{"version":"249b9cab7f5d628b71308c7d9bb0a808b50b091e640ba3ed6e2d0516f4a8d91d","impliedFormat":1},{"version":"80aae6afc67faa5ac0b32b5b8bc8cc9f7fa299cff15cf09cc2e11fd28c6ae29e","impliedFormat":1},{"version":"f473cd2288991ff3221165dcf73cd5d24da30391f87e85b3dd4d0450c787a391","impliedFormat":1},{"version":"499e5b055a5aba1e1998f7311a6c441a369831c70905cc565ceac93c28083d53","impliedFormat":1},{"version":"8aee8b6d4f9f62cf3776cda1305fb18763e2aade7e13cea5bbe699112df85214","impliedFormat":1},{"version":"98498b101803bb3dde9f76a56e65c14b75db1cc8bec5f4db72be541570f74fc5","impliedFormat":1},{"version":"1cc2a09e1a61a5222d4174ab358a9f9de5e906afe79dbf7363d871a7edda3955","impliedFormat":1},{"version":"5d0375ca7310efb77e3ef18d068d53784faf62705e0ad04569597ae0e755c401","impliedFormat":1},{"version":"59af37caec41ecf7b2e76059c9672a49e682c1a2aa6f9d7dc78878f53aa284d6","impliedFormat":1},{"version":"addf417b9eb3f938fddf8d81e96393a165e4be0d4a8b6402292f9c634b1cb00d","impliedFormat":1},{"version":"b64d4d1c5f877f9c666e98e833f0205edb9384acc46e98a1fef344f64d6aba44","impliedFormat":1},{"version":"adf27937dba6af9f08a68c5b1d3fce0ca7d4b960c57e6d6c844e7d1a8e53adae","impliedFormat":1},{"version":"12950411eeab8563b349cb7959543d92d8d02c289ed893d78499a19becb5a8cc","impliedFormat":1},{"version":"2e85db9e6fd73cfa3d7f28e0ab6b55417ea18931423bd47b409a96e4a169e8e6","impliedFormat":1},{"version":"c46e079fe54c76f95c67fb89081b3e399da2c7d109e7dca8e4b58d83e332e605","impliedFormat":1},{"version":"c9381908473a1c92cb8c516b184e75f4d226dad95c3a85a5af35f670064d9a2f","impliedFormat":1},{"version":"c3f5289820990ab66b70c7fb5b63cb674001009ff84b13de40619619a9c8175f","affectsGlobalScope":true,"impliedFormat":1},{"version":"b3275d55fac10b799c9546804126239baf020d220136163f763b55a74e50e750","affectsGlobalScope":true,"impliedFormat":1},{"version":"fa68a0a3b7cb32c00e39ee3cd31f8f15b80cac97dce51b6ee7fc14a1e8deb30b","affectsGlobalScope":true,"impliedFormat":1},{"version":"1cf059eaf468efcc649f8cf6075d3cb98e9a35a0fe9c44419ec3d2f5428d7123","affectsGlobalScope":true,"impliedFormat":1},{"version":"6c36e755bced82df7fb6ce8169265d0a7bb046ab4e2cb6d0da0cb72b22033e89","affectsGlobalScope":true,"impliedFormat":1},{"version":"e7721c4f69f93c91360c26a0a84ee885997d748237ef78ef665b153e622b36c1","affectsGlobalScope":true,"impliedFormat":1},{"version":"7a93de4ff8a63bafe62ba86b89af1df0ccb5e40bb85b0c67d6bbcfdcf96bf3d4","affectsGlobalScope":true,"impliedFormat":1},{"version":"90e85f9bc549dfe2b5749b45fe734144e96cd5d04b38eae244028794e142a77e","affectsGlobalScope":true,"impliedFormat":1},{"version":"e0a5deeb610b2a50a6350bd23df6490036a1773a8a71d70f2f9549ab009e67ee","affectsGlobalScope":true,"impliedFormat":1},{"version":"d2ae155afe8a01cc0ae612d99117cf8ef16692ba7c4366590156fdec1bcf2d8c","impliedFormat":1},{"version":"3f5e5d9be35913db9fea42a63f3df0b7e3c8703b97670a2125587b4dbbd56d7c","impliedFormat":1},{"version":"8caeb65fdc3bfe0d13f86f67324fcb2d858ed1c55f1f0cce892eb1acfb9f3239","impliedFormat":1},{"version":"57c23df0b5f7a8e26363a3849b0bc7763f6b241207157c8e40089d1df4116f35","affectsGlobalScope":true,"impliedFormat":1},{"version":"3b8bc0c17b54081b0878673989216229e575d67a10874e84566a21025a2461ee","impliedFormat":1},{"version":"5b0db5a58b73498792a29bfebc333438e61906fef75da898b410e24e52229e6f","impliedFormat":1},{"version":"dbe055b2b29a7bab2c1ca8f259436306adb43f469dca7e639a02cd3695d3f621","impliedFormat":1},{"version":"1678b04557dca52feab73cc67610918a7f5e25bfdba3e7fa081acd625d93106d","impliedFormat":1},{"version":"e3905f6902f0b69e5eefc230daa69fdd4ab707a973ec2d086d65af1b3ea47ef0","impliedFormat":1},{"version":"2ea729503db9793f2691162fec3dd1118cab62e96d025f8eeb376d43ec293395","impliedFormat":1},{"version":"9ec87fea42b92894b0f209931a880789d43c3397d09dd99c631ae40a2f7071d1","impliedFormat":1},{"version":"c68e88cdfadfb6c8ba5fc38e58a3a166b0beae77b1f05b7d921150a32a5ffb8d","impliedFormat":1},{"version":"2bc7aa4fba46df0bd495425a7c8201437a7d465f83854fac859df2d67f664df3","impliedFormat":1},{"version":"41d17e1ad9a002feb11c8cdd2777e5bbc0cdb1e3f595d237e4dded0b6949983b","impliedFormat":1},{"version":"07e4e61e946a9c15045539ecd5f5d2d02e7aab6fa82567826857e09cf0f37c2e","affectsGlobalScope":true,"impliedFormat":1},{"version":"1c4714ccc29149efb8777a1da0b04b8d2258f5d13ddbf4cd3c3d361fb531ac86","impliedFormat":1},{"version":"3ff275f84f89f8a7c0543da838f9da9614201abc4ce74c533029825adfb4433d","impliedFormat":1},{"version":"0eb5d0cbf09de5d34542b977fd6a933bb2e0817bffe8e1a541b2f1ad1b9af1ff","impliedFormat":1},{"version":"10deca769dfed888051b1808d6746f8883a490a707f8bdf9367079146987d6d0","impliedFormat":1},{"version":"2c2bdaa1d8ead9f68628d6d9d250e46ee8e81aa4898b4769a36956ae15e060fe","impliedFormat":1},{"version":"c32c840c62d8bd7aeb3147aa6754cd2d922b990a6b6634530cb2ebdce5adc8e9","impliedFormat":1},{"version":"e1c1a0b4d1ead0de9eca52203aeb1f771f21e6238d6fcd15aa56ac2a02f1b7bf","impliedFormat":1},{"version":"82b91e4e42e6c41bc7fc1b6c2dc5eba6a2ba98375eb1f210e6ff6bba2d54177e","impliedFormat":1},{"version":"6fe28249ac0c7bc19a79aa9264baf00efbd080e868dbe1d3052033ad1c64f206","affectsGlobalScope":true,"impliedFormat":1},{"version":"cbed824fec91efefc7bbdcb8b43d1a531fdbebd0e2ef19481501ff365a93cb70","impliedFormat":1},{"version":"8e9c23ba78aabc2e0a27033f18737a6df754067731e69dc5f52823957d60a4b6","impliedFormat":1},{"version":"d0716593b3f2b0451bcf0c24cfa86dec2235c325c89f201934248b7c742715fc","impliedFormat":1},{"version":"ec501101c2a96133a6c695f934c8f6642149cc728571b29cbb7b770984c1088e","impliedFormat":1},{"version":"b214ebcf76c51b115453f69729ee8aa7b7f8eccdae2a922b568a45c2d7ff52f7","impliedFormat":1},{"version":"429c9cdfa7d126255779efd7e6d9057ced2d69c81859bbab32073bad52e9ba76","impliedFormat":1},{"version":"2991bca2cc0f0628a278df2a2ccdb8d6cbcb700f3761abbed62bba137d5b1790","impliedFormat":1},{"version":"ce8653341224f8b45ff46d2a06f2cacb96f841f768a886c9d8dd8ec0878b11bd","affectsGlobalScope":true,"impliedFormat":1},{"version":"230763250f20449fa7b3c9273e1967adb0023dc890d4be1553faca658ee65971","impliedFormat":1},{"version":"c3e9078b60cb329d1221f5878e88cecfa3e74460550e605a58fcfb41a66029ff","impliedFormat":1},{"version":"a74edb3bab7394a9dbde529d60632be590def2f5f01024dbd85441587fbfbbe0","impliedFormat":1},{"version":"0ea59f7d3e51440baa64f429253759b106cfcbaf51e474cae606e02265b37cf8","impliedFormat":1},{"version":"bc18a1991ba681f03e13285fa1d7b99b03b67ee671b7bc936254467177543890","impliedFormat":1},{"version":"00049ccc87f3f37726db03c01ca68fe74fd9c0109b68c29eb9923ebec2c76b13","impliedFormat":1},{"version":"fa94bbf532b7af8f394b95fa310980d6e20bd2d4c871c6a6cb9f70f03750a44b","impliedFormat":1},{"version":"68d3f35108e2608b1f2f28b36d19d7055f31c4465cc5692cbd06c716a9fe7973","impliedFormat":1},{"version":"a6d543044570fbeed13a7f9925a868081cd2b14ef59cdd9da6ae76d41cab03d3","affectsGlobalScope":true,"impliedFormat":1},{"version":"7fa2214bb0d64701bc6f9ce8cde2fd2ff8c571e0b23065fa04a8a5a6beb91511","impliedFormat":1},{"version":"f1c93e046fb3d9b7f8249629f4b63dc068dd839b824dd0aa39a5e68476dc9420","impliedFormat":1},{"version":"016b29bf4926b80255a108c53a1451717350059da04fcae64d1075f5e93bbb39","impliedFormat":1},{"version":"841983e39bd4cbb463be385e92fda11057cab368bf27100a801c492f1d86cbaa","impliedFormat":1},{"version":"6f5383b3df1cdf4ff1aa7fb0850f77042b5786b5e65ec9a9b6be56ebfe4d9036","impliedFormat":1},{"version":"62fc21ed9ccbd83bd1166de277a4b5daaa8d15b5fa614c75610d20f3b73fba87","impliedFormat":1},{"version":"e4156ddb25aa0e3b5303d372f26957b36778f0f6bbd4326359269873295e3058","affectsGlobalScope":true,"impliedFormat":1},{"version":"cc1b433a84cae05ddc5672d4823170af78606ad21ecef60dbc4570190cbf1357","impliedFormat":1},{"version":"9d3821bc75c59577e52643324cec92fc2145642e8d17cf7ee07a3181f21d985d","impliedFormat":1},{"version":"7f78cfb2b343838612c192cb251746e3a7c62ac7675726a47e130d9b213f6580","impliedFormat":1},{"version":"201db9cf1687fab1adf5282fcba861f382b32303dc4f67c89d59655e78a25461","impliedFormat":1},{"version":"c77fb31bc17fd241d3922a9f88c59e3361cdf76d1328ba9412fc6bf7310b638d","impliedFormat":1},{"version":"0a20eaf2e4b1e3c1e1f87f7bccb0c936375b23b022baeea750519b7c9bc6ce83","impliedFormat":1},{"version":"b484ec11ba00e3a2235562a41898d55372ccabe607986c6fa4f4aba72093749f","impliedFormat":1},{"version":"a16b91b27bd6b706c687c88cbc8a7d4ee98e5ed6043026d6b84bda923c0aed67","impliedFormat":1},{"version":"694b812e0ed11285e8822cf8131e3ce7083a500b3b1d185fff9ed1089677bd0a","impliedFormat":1},{"version":"99ab6d0d660ce4d21efb52288a39fd35bb3f556980ec5463b1ae8f304a3bbc85","impliedFormat":1},{"version":"6eeded8c7e352be6e0efb83f4935ec752513c4d22043b52522b90849a49a3a11","impliedFormat":1},{"version":"6c1ad90050ffbb151cacc68e2d06ea1a26a945659391e32651f5d42b86fd7f2c","impliedFormat":1},{"version":"55cdbeebe76a1fa18bbd7e7bf73350a2173926bd3085bb050cf5a5397025ee4e","impliedFormat":1}],"root":[116,144,145],"options":{"allowImportingTsExtensions":true,"allowJs":true,"checkJs":false,"composite":true,"declaration":true,"declarationDir":"./lib/types","emitDeclarationOnly":true,"experimentalDecorators":true,"module":99,"outDir":"./lib","rootDir":"./src","skipLibCheck":true,"strict":false,"target":99},"referencedMap":[[104,1],[105,2],[106,3],[107,4],[117,5],[118,6],[123,7],[124,8],[108,9],[109,10],[94,10],[110,10],[111,11],[112,12],[113,13],[103,14],[97,15],[98,16],[99,17],[100,18],[119,19],[120,20],[121,3],[122,21],[95,22],[96,14],[101,23],[102,24],[208,25],[209,25],[210,26],[148,27],[211,28],[212,29],[213,30],[146,10],[214,31],[215,32],[216,33],[217,34],[218,35],[219,36],[220,36],[221,37],[222,38],[223,39],[224,40],[149,10],[147,10],[225,41],[226,42],[227,43],[268,44],[228,45],[229,46],[230,45],[231,47],[232,48],[234,49],[235,50],[236,50],[237,50],[238,51],[239,52],[240,53],[241,54],[242,55],[243,56],[244,56],[245,57],[246,10],[247,10],[248,58],[249,59],[250,58],[251,60],[252,61],[253,62],[254,63],[255,64],[256,65],[257,66],[258,67],[259,68],[260,69],[261,70],[262,71],[263,72],[264,73],[265,74],[150,45],[151,10],[152,10],[153,75],[154,10],[155,31],[156,10],[199,76],[200,77],[201,78],[202,78],[203,79],[204,10],[205,28],[206,80],[207,77],[266,81],[267,82],[233,10],[91,10],[92,10],[16,10],[14,10],[15,10],[20,10],[19,10],[2,10],[21,10],[22,10],[23,10],[24,10],[25,10],[26,10],[27,10],[28,10],[3,10],[29,10],[30,10],[4,10],[31,10],[35,10],[32,10],[33,10],[34,10],[36,10],[37,10],[38,10],[5,10],[39,10],[40,10],[41,10],[42,10],[6,10],[46,10],[43,10],[44,10],[45,10],[47,10],[7,10],[48,10],[53,10],[54,10],[49,10],[50,10],[51,10],[52,10],[8,10],[58,10],[55,10],[56,10],[57,10],[59,10],[9,10],[60,10],[61,10],[62,10],[64,10],[63,10],[65,10],[66,10],[10,10],[67,10],[68,10],[69,10],[11,10],[70,10],[71,10],[72,10],[73,10],[74,10],[75,10],[12,10],[76,10],[77,10],[78,10],[79,10],[80,10],[1,10],[81,10],[82,10],[13,10],[83,10],[84,10],[85,10],[86,10],[93,10],[87,10],[88,10],[89,10],[90,10],[18,10],[17,10],[175,83],[187,84],[172,85],[188,86],[197,87],[163,88],[164,89],[162,90],[196,91],[191,92],[195,93],[166,94],[184,95],[165,96],[194,97],[160,98],[161,92],[167,99],[168,10],[174,100],[171,99],[158,101],[198,102],[189,103],[178,104],[177,99],[179,105],[182,106],[176,107],[180,108],[192,91],[169,109],[170,110],[183,111],[159,86],[186,112],[185,99],[173,110],[181,113],[190,10],[157,10],[193,114],[115,115],[114,10],[126,10],[127,16],[125,10],[128,10],[129,10],[130,10],[132,10],[133,10],[134,10],[136,10],[135,6],[131,10],[143,116],[142,16],[137,10],[138,10],[139,10],[140,6],[141,10],[116,117],[145,118],[144,119]],"latestChangedDtsFile":"./lib/types/index.d.ts","version":"6.0.3"}