@gjsify/module 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md ADDED
@@ -0,0 +1,28 @@
1
+ # @gjsify/module
2
+
3
+ GJS implementation of the Node.js `module` module using Gio and GLib. Provides builtinModules, isBuiltin, and createRequire.
4
+
5
+ Part of the [gjsify](https://github.com/gjsify/gjsify) project — Node.js and Web APIs for GJS (GNOME JavaScript).
6
+
7
+ ## Installation
8
+
9
+ ```bash
10
+ npm install @gjsify/module
11
+ # or
12
+ yarn add @gjsify/module
13
+ ```
14
+
15
+ ## Usage
16
+
17
+ ```typescript
18
+ import { builtinModules, isBuiltin, createRequire } from '@gjsify/module';
19
+
20
+ console.log(builtinModules);
21
+ console.log(isBuiltin('fs')); // true
22
+
23
+ const require = createRequire(import.meta.url);
24
+ ```
25
+
26
+ ## License
27
+
28
+ MIT
@@ -0,0 +1,211 @@
1
+ import "@girs/gjs";
2
+ import Gio from "@girs/gio-2.0";
3
+ import GLib from "@girs/glib-2.0";
4
+ import { resolve as resolvePath, readJSON } from "@gjsify/utils";
5
+ const builtinModules = [
6
+ "assert",
7
+ "async_hooks",
8
+ "buffer",
9
+ "child_process",
10
+ "cluster",
11
+ "console",
12
+ "constants",
13
+ "crypto",
14
+ "dgram",
15
+ "diagnostics_channel",
16
+ "dns",
17
+ "domain",
18
+ "events",
19
+ "fs",
20
+ "http",
21
+ "http2",
22
+ "https",
23
+ "inspector",
24
+ "module",
25
+ "net",
26
+ "os",
27
+ "path",
28
+ "perf_hooks",
29
+ "process",
30
+ "punycode",
31
+ "querystring",
32
+ "readline",
33
+ "repl",
34
+ "stream",
35
+ "string_decoder",
36
+ "sys",
37
+ "timers",
38
+ "tls",
39
+ "tty",
40
+ "url",
41
+ "util",
42
+ "v8",
43
+ "vm",
44
+ "wasi",
45
+ "worker_threads",
46
+ "zlib"
47
+ ];
48
+ function isBuiltin(name) {
49
+ const n = name.startsWith("node:") ? name.slice(5) : name;
50
+ const base = n.split("/")[0];
51
+ return builtinModules.includes(n) || builtinModules.includes(base);
52
+ }
53
+ function findNodeModulesDir(startDir) {
54
+ let dir = Gio.File.new_for_path(startDir);
55
+ while (dir.has_parent(null)) {
56
+ const nodeModules = dir.resolve_relative_path("node_modules");
57
+ if (nodeModules.query_exists(null)) {
58
+ return nodeModules.get_path();
59
+ }
60
+ dir = dir.get_parent();
61
+ }
62
+ return null;
63
+ }
64
+ function resolveSymlink(file) {
65
+ const info = file.query_info("standard::", Gio.FileQueryInfoFlags.NOFOLLOW_SYMLINKS, null);
66
+ if (info.get_is_symlink()) {
67
+ const target = info.get_symlink_target();
68
+ const parent = file.get_parent();
69
+ if (target && parent) {
70
+ return parent.resolve_relative_path(target).get_path();
71
+ }
72
+ }
73
+ return file.get_path();
74
+ }
75
+ function tryJsExtension(filePath) {
76
+ const withJs = Gio.File.new_for_path(filePath + ".js");
77
+ return withJs.query_exists(null) ? withJs : null;
78
+ }
79
+ function hasExtension(basename) {
80
+ return basename.includes(".");
81
+ }
82
+ function resolvePackageEntry(dirPath) {
83
+ const pkgJsonFile = resolvePath(dirPath, "package.json");
84
+ if (!pkgJsonFile.query_exists(null)) return null;
85
+ const pkg = readJSON(pkgJsonFile.get_path());
86
+ const main = pkg.main || pkg.module || "index.js";
87
+ const entryFile = resolvePath(dirPath, main);
88
+ if (entryFile.query_exists(null)) return entryFile.get_path();
89
+ if (!hasExtension(main)) {
90
+ const withJs = tryJsExtension(entryFile.get_path());
91
+ if (withJs) return withJs.get_path();
92
+ }
93
+ return null;
94
+ }
95
+ function fileUrlToPath(filenameOrURL) {
96
+ if (typeof filenameOrURL === "object" && filenameOrURL !== null && "href" in filenameOrURL) {
97
+ const urlObj = filenameOrURL;
98
+ if (urlObj.protocol && urlObj.protocol !== "file:") {
99
+ throw new TypeError("The URL must use the file: protocol");
100
+ }
101
+ return GLib.filename_from_uri(urlObj.href)[0];
102
+ }
103
+ if (typeof filenameOrURL === "string" && filenameOrURL.startsWith("file:")) {
104
+ return GLib.filename_from_uri(filenameOrURL)[0];
105
+ }
106
+ return String(filenameOrURL);
107
+ }
108
+ function resolveModulePath(id, callerDir) {
109
+ if (isBuiltin(id)) return id;
110
+ let file;
111
+ if (id.startsWith("/")) {
112
+ file = resolvePath(id);
113
+ } else if (id.startsWith(".")) {
114
+ file = resolvePath(callerDir, id);
115
+ } else {
116
+ const nodeModules = findNodeModulesDir(callerDir);
117
+ if (!nodeModules) {
118
+ throw new Error(`Cannot find module "${id}" - no node_modules directory found`);
119
+ }
120
+ file = resolvePath(nodeModules, id);
121
+ }
122
+ if (!file.query_exists(null)) {
123
+ const basename2 = file.get_basename();
124
+ if (basename2 && !hasExtension(basename2)) {
125
+ file = tryJsExtension(file.get_path()) ?? file;
126
+ }
127
+ }
128
+ if (!file.query_exists(null)) {
129
+ throw new Error(`Cannot find module "${id}"`);
130
+ }
131
+ const resolvedPath = resolveSymlink(file);
132
+ const basename = file.get_basename();
133
+ if (basename && !hasExtension(basename)) {
134
+ const entry = resolvePackageEntry(resolvedPath);
135
+ if (entry) return entry;
136
+ }
137
+ return resolvedPath;
138
+ }
139
+ function requireJsFile(filePath, cache) {
140
+ if (filePath in cache) return cache[filePath];
141
+ let file = Gio.File.new_for_path(filePath);
142
+ const dir = file.get_parent().get_path();
143
+ let basename = file.get_basename();
144
+ if (basename.endsWith(".mjs")) {
145
+ throw new Error(`Cannot require .mjs files. Use import instead. Path: "${filePath}"`);
146
+ }
147
+ if (basename.endsWith(".cjs")) {
148
+ const dest = resolvePath(dir, "__gjsify__" + basename.replace(/\.cjs$/, ".js"));
149
+ if (dest.query_exists(null)) dest.delete(null);
150
+ file.copy(dest, Gio.FileCopyFlags.NONE, null, null);
151
+ file = dest;
152
+ basename = file.get_basename();
153
+ }
154
+ const savedExports = globalThis.exports;
155
+ const savedModule = globalThis.module;
156
+ const moduleObj = { exports: {} };
157
+ globalThis.exports = moduleObj.exports;
158
+ globalThis.module = moduleObj;
159
+ try {
160
+ const { searchPath } = imports;
161
+ searchPath.unshift(dir);
162
+ imports[basename.replace(/\.(js|cjs)$/, "")];
163
+ searchPath.shift();
164
+ const result = moduleObj.exports;
165
+ cache[filePath] = result;
166
+ return result;
167
+ } finally {
168
+ globalThis.exports = savedExports;
169
+ globalThis.module = savedModule;
170
+ }
171
+ }
172
+ function createRequire(filenameOrURL) {
173
+ const filename = fileUrlToPath(filenameOrURL);
174
+ if (!filename.startsWith("/")) {
175
+ throw new TypeError(
176
+ `The argument must be a file URL object, file URL string, or absolute path string. Received "${String(filenameOrURL)}"`
177
+ );
178
+ }
179
+ const callerDir = GLib.path_get_dirname(filename);
180
+ const cache = /* @__PURE__ */ Object.create(null);
181
+ const req = function require2(id) {
182
+ const resolved = resolveModulePath(id, callerDir);
183
+ if (resolved in cache) return cache[resolved];
184
+ if (resolved.endsWith(".json")) {
185
+ const result = readJSON(resolved);
186
+ cache[resolved] = result;
187
+ return result;
188
+ }
189
+ if (isBuiltin(id)) {
190
+ throw new Error(
191
+ `createRequire: Cannot require builtin module "${id}" synchronously in GJS. Use import instead.`
192
+ );
193
+ }
194
+ return requireJsFile(resolved, cache);
195
+ };
196
+ req.resolve = function resolve(id) {
197
+ return resolveModulePath(id, callerDir);
198
+ };
199
+ req.resolve.paths = (_request) => null;
200
+ req.cache = cache;
201
+ req.extensions = /* @__PURE__ */ Object.create(null);
202
+ req.main = void 0;
203
+ return req;
204
+ }
205
+ var index_default = { builtinModules, isBuiltin, createRequire };
206
+ export {
207
+ builtinModules,
208
+ createRequire,
209
+ index_default as default,
210
+ isBuiltin
211
+ };
@@ -0,0 +1,10 @@
1
+ import '@girs/gjs';
2
+ export declare const builtinModules: string[];
3
+ export declare function isBuiltin(name: string): boolean;
4
+ export declare function createRequire(filenameOrURL: string | URL): NodeRequire;
5
+ declare const _default: {
6
+ builtinModules: string[];
7
+ isBuiltin: typeof isBuiltin;
8
+ createRequire: typeof createRequire;
9
+ };
10
+ export default _default;
package/package.json ADDED
@@ -0,0 +1,44 @@
1
+ {
2
+ "name": "@gjsify/module",
3
+ "version": "0.1.0",
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
+ "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": "gjs -m 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-beta.42",
34
+ "@girs/gjs": "^4.0.0-beta.42",
35
+ "@girs/glib-2.0": "^2.88.0-4.0.0-beta.42",
36
+ "@gjsify/utils": "^0.1.0"
37
+ },
38
+ "devDependencies": {
39
+ "@gjsify/cli": "^0.1.0",
40
+ "@gjsify/unit": "^0.1.0",
41
+ "@types/node": "^25.5.0",
42
+ "typescript": "^6.0.2"
43
+ }
44
+ }
@@ -0,0 +1,365 @@
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 ADDED
@@ -0,0 +1,276 @@
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
+
10
+ export const builtinModules = [
11
+ 'assert',
12
+ 'async_hooks',
13
+ 'buffer',
14
+ 'child_process',
15
+ 'cluster',
16
+ 'console',
17
+ 'constants',
18
+ 'crypto',
19
+ 'dgram',
20
+ 'diagnostics_channel',
21
+ 'dns',
22
+ 'domain',
23
+ 'events',
24
+ 'fs',
25
+ 'http',
26
+ 'http2',
27
+ 'https',
28
+ 'inspector',
29
+ 'module',
30
+ 'net',
31
+ 'os',
32
+ 'path',
33
+ 'perf_hooks',
34
+ 'process',
35
+ 'punycode',
36
+ 'querystring',
37
+ 'readline',
38
+ 'repl',
39
+ 'stream',
40
+ 'string_decoder',
41
+ 'sys',
42
+ 'timers',
43
+ 'tls',
44
+ 'tty',
45
+ 'url',
46
+ 'util',
47
+ 'v8',
48
+ 'vm',
49
+ 'wasi',
50
+ 'worker_threads',
51
+ 'zlib',
52
+ ];
53
+
54
+ export function isBuiltin(name: string): boolean {
55
+ const n = name.startsWith('node:') ? name.slice(5) : name;
56
+ const base = n.split('/')[0];
57
+ return builtinModules.includes(n) || builtinModules.includes(base);
58
+ }
59
+
60
+ // --- Private helpers for createRequire ---
61
+ // Resolution logic ported from @gjsify/require, cleaned up for ESM-only use
62
+
63
+ /** Walk up from startDir to find the nearest node_modules directory. */
64
+ function findNodeModulesDir(startDir: string): string | null {
65
+ let dir = Gio.File.new_for_path(startDir);
66
+ while (dir.has_parent(null)) {
67
+ const nodeModules = dir.resolve_relative_path('node_modules');
68
+ if (nodeModules.query_exists(null)) {
69
+ return nodeModules.get_path();
70
+ }
71
+ dir = dir.get_parent()!;
72
+ }
73
+ return null;
74
+ }
75
+
76
+ /** Resolve symlinks for a Gio.File, returning the real path. */
77
+ function resolveSymlink(file: Gio.File): string {
78
+ const info = file.query_info('standard::', Gio.FileQueryInfoFlags.NOFOLLOW_SYMLINKS, null);
79
+ if (info.get_is_symlink()) {
80
+ const target = info.get_symlink_target();
81
+ const parent = file.get_parent();
82
+ if (target && parent) {
83
+ return parent.resolve_relative_path(target).get_path()!;
84
+ }
85
+ }
86
+ return file.get_path()!;
87
+ }
88
+
89
+ /** Try appending .js to an extensionless path. Returns the file if found, null otherwise. */
90
+ function tryJsExtension(filePath: string): Gio.File | null {
91
+ const withJs = Gio.File.new_for_path(filePath + '.js');
92
+ return withJs.query_exists(null) ? withJs : null;
93
+ }
94
+
95
+ /** Check if a basename has a file extension. */
96
+ function hasExtension(basename: string): boolean {
97
+ return basename.includes('.');
98
+ }
99
+
100
+ /** Resolve package.json main/module entry for a directory. */
101
+ function resolvePackageEntry(dirPath: string): string | null {
102
+ const pkgJsonFile = resolvePath(dirPath, 'package.json');
103
+ if (!pkgJsonFile.query_exists(null)) return null;
104
+
105
+ const pkg = readJSON(pkgJsonFile.get_path()!) as Record<string, string>;
106
+ const main = pkg.main || pkg.module || 'index.js';
107
+ const entryFile = resolvePath(dirPath, main);
108
+
109
+ if (entryFile.query_exists(null)) return entryFile.get_path()!;
110
+
111
+ // Try .js extension fallback for extensionless main field
112
+ if (!hasExtension(main)) {
113
+ const withJs = tryJsExtension(entryFile.get_path()!);
114
+ if (withJs) return withJs.get_path()!;
115
+ }
116
+
117
+ return null;
118
+ }
119
+
120
+ /** Convert a file: URL (string or object) to an absolute path. */
121
+ function fileUrlToPath(filenameOrURL: string | URL): string {
122
+ // Duck-type URL objects (avoids dependency on global URL which may not exist in GJS)
123
+ if (typeof filenameOrURL === 'object' && filenameOrURL !== null && 'href' in filenameOrURL) {
124
+ const urlObj = filenameOrURL as { href: string; protocol?: string };
125
+ if (urlObj.protocol && urlObj.protocol !== 'file:') {
126
+ throw new TypeError('The URL must use the file: protocol');
127
+ }
128
+ return GLib.filename_from_uri(urlObj.href)[0];
129
+ }
130
+
131
+ if (typeof filenameOrURL === 'string' && filenameOrURL.startsWith('file:')) {
132
+ return GLib.filename_from_uri(filenameOrURL)[0];
133
+ }
134
+
135
+ return String(filenameOrURL);
136
+ }
137
+
138
+ /** Resolve a module specifier to an absolute file path. */
139
+ function resolveModulePath(id: string, callerDir: string): string {
140
+ if (isBuiltin(id)) return id;
141
+
142
+ let file: Gio.File;
143
+
144
+ if (id.startsWith('/')) {
145
+ file = resolvePath(id);
146
+ } else if (id.startsWith('.')) {
147
+ file = resolvePath(callerDir, id);
148
+ } else {
149
+ const nodeModules = findNodeModulesDir(callerDir);
150
+ if (!nodeModules) {
151
+ throw new Error(`Cannot find module "${id}" - no node_modules directory found`);
152
+ }
153
+ file = resolvePath(nodeModules, id);
154
+ }
155
+
156
+ // Extension fallback for extensionless paths
157
+ if (!file.query_exists(null)) {
158
+ const basename = file.get_basename();
159
+ if (basename && !hasExtension(basename)) {
160
+ file = tryJsExtension(file.get_path()!) ?? file;
161
+ }
162
+ }
163
+
164
+ if (!file.query_exists(null)) {
165
+ throw new Error(`Cannot find module "${id}"`);
166
+ }
167
+
168
+ const resolvedPath = resolveSymlink(file);
169
+
170
+ // Directory → resolve via package.json main field
171
+ const basename = file.get_basename();
172
+ if (basename && !hasExtension(basename)) {
173
+ const entry = resolvePackageEntry(resolvedPath);
174
+ if (entry) return entry;
175
+ }
176
+
177
+ return resolvedPath;
178
+ }
179
+
180
+ // --- CJS file loading via GJS imports system ---
181
+ // Ported from @gjsify/require (c) Andrea Giammarchi - ISC
182
+
183
+ /** Load a CJS .js/.cjs file using GJS's legacy imports system. */
184
+ function requireJsFile(filePath: string, cache: Record<string, unknown>): unknown {
185
+ if (filePath in cache) return cache[filePath];
186
+
187
+ let file = Gio.File.new_for_path(filePath);
188
+ const dir = file.get_parent()!.get_path()!;
189
+ let basename = file.get_basename()!;
190
+
191
+ if (basename.endsWith('.mjs')) {
192
+ throw new Error(`Cannot require .mjs files. Use import instead. Path: "${filePath}"`);
193
+ }
194
+
195
+ // GJS can't import .cjs files — copy to .js as workaround
196
+ if (basename.endsWith('.cjs')) {
197
+ const dest = resolvePath(dir, '__gjsify__' + basename.replace(/\.cjs$/, '.js'));
198
+ if (dest.query_exists(null)) dest.delete(null);
199
+ file.copy(dest, Gio.FileCopyFlags.NONE, null, null);
200
+ file = dest;
201
+ basename = file.get_basename()!;
202
+ }
203
+
204
+ // Save and replace global CJS state
205
+ const savedExports = globalThis.exports;
206
+ const savedModule = globalThis.module;
207
+ const moduleObj = { exports: {} };
208
+ globalThis.exports = moduleObj.exports;
209
+ globalThis.module = moduleObj as NodeModule;
210
+
211
+ try {
212
+ // Evaluate the file via GJS imports system
213
+ const { searchPath } = imports;
214
+ searchPath.unshift(dir);
215
+ imports[basename.replace(/\.(js|cjs)$/, '')];
216
+ searchPath.shift();
217
+
218
+ const result = moduleObj.exports;
219
+ cache[filePath] = result;
220
+ return result;
221
+ } finally {
222
+ // Always restore global state, even on error
223
+ globalThis.exports = savedExports;
224
+ globalThis.module = savedModule;
225
+ }
226
+ }
227
+
228
+ export function createRequire(filenameOrURL: string | URL): NodeRequire {
229
+ const filename = fileUrlToPath(filenameOrURL);
230
+
231
+ if (!filename.startsWith('/')) {
232
+ throw new TypeError(
233
+ 'The argument must be a file URL object, file URL string, or absolute path string. ' +
234
+ `Received "${String(filenameOrURL)}"`
235
+ );
236
+ }
237
+
238
+ const callerDir = GLib.path_get_dirname(filename);
239
+ const cache: Record<string, unknown> = Object.create(null);
240
+
241
+ const req = function require(id: string): unknown {
242
+ const resolved = resolveModulePath(id, callerDir);
243
+ if (resolved in cache) return cache[resolved];
244
+
245
+ // JSON files
246
+ if (resolved.endsWith('.json')) {
247
+ const result = readJSON(resolved);
248
+ cache[resolved] = result;
249
+ return result;
250
+ }
251
+
252
+ // Builtin modules can't be required synchronously in ESM
253
+ if (isBuiltin(id)) {
254
+ throw new Error(
255
+ `createRequire: Cannot require builtin module "${id}" synchronously in GJS. ` +
256
+ 'Use import instead.'
257
+ );
258
+ }
259
+
260
+ // .js/.cjs files via GJS imports system
261
+ return requireJsFile(resolved, cache);
262
+ } as NodeRequire;
263
+
264
+ req.resolve = function resolve(id: string): string {
265
+ return resolveModulePath(id, callerDir);
266
+ } as NodeRequire['resolve'];
267
+
268
+ req.resolve.paths = (_request: string): string[] | null => null;
269
+ req.cache = cache as NodeRequire['cache'];
270
+ req.extensions = Object.create(null) as NodeRequire['extensions'];
271
+ req.main = undefined;
272
+
273
+ return req;
274
+ }
275
+
276
+ export default { builtinModules, isBuiltin, createRequire };
package/src/test.mts ADDED
@@ -0,0 +1,4 @@
1
+ import '@gjsify/node-globals';
2
+ import { run } from '@gjsify/unit';
3
+ import testSuite from './index.spec.js';
4
+ run({ testSuite });
package/tsconfig.json ADDED
@@ -0,0 +1,31 @@
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
+ "src/**/*.spec.ts",
29
+ "src/**/*.spec.mts"
30
+ ]
31
+ }
@@ -0,0 +1 @@
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","../../../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/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/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/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,142,205,208,213,217,220,222,223,224,237],[107,111,142,205,208,213,217,220,222,223,224,237],[100,102,111,113,142,205,208,213,217,220,222,223,224,237],[105,106,111,142,205,208,213,217,220,222,223,224,237],[111,114,121,142,205,208,213,217,220,222,223,224,237],[111,121,142,205,208,213,217,220,222,223,224,237],[100,102,111,113,119,142,205,208,213,217,220,222,223,224,237],[111,115,120,142,205,208,213,217,220,222,223,224,237],[102,107,111,142,205,208,213,217,220,222,223,224,237],[111,142,205,208,213,217,220,222,223,224,237],[94,103,108,109,110,142,205,208,213,217,220,222,223,224,237],[94,100,102,103,108,111,142,205,208,213,217,220,222,223,224,237],[111,112,142,205,208,213,217,220,222,223,224,237],[102,111,142,205,208,213,217,220,222,223,224,237],[97,100,111,142,205,208,213,217,220,222,223,224,237],[100,111,142,205,208,213,217,220,222,223,224,237],[102,111,113,142,205,208,213,217,220,222,223,224,237],[98,99,111,142,205,208,213,217,220,222,223,224,237],[111,116,119,142,205,208,213,217,220,222,223,224,237],[111,119,142,205,208,213,217,220,222,223,224,237],[111,117,118,142,205,208,213,217,220,222,223,224,237],[95,102,111,142,205,208,213,217,220,222,223,224,237],[100,111,113,142,205,208,213,217,220,222,223,224,237],[96,101,111,142,205,208,213,217,220,222,223,224,237],[111,142,202,203,205,208,213,217,220,222,223,224,237],[111,142,204,205,208,213,217,220,222,223,224,237],[111,205,208,213,217,220,222,223,224,237],[111,142,205,208,213,217,220,222,223,224,237,245],[111,142,205,206,208,211,213,216,217,220,222,223,224,226,237,242,254],[111,142,205,206,207,208,213,216,217,220,222,223,224,237],[111,142,205,208,213,217,220,222,223,224,237,255],[111,142,205,208,209,210,213,217,220,222,223,224,228,237],[111,142,205,208,210,213,217,220,222,223,224,237,242,251],[111,142,205,208,211,213,216,217,220,222,223,224,226,237],[111,142,204,205,208,212,213,217,220,222,223,224,237],[111,142,205,208,213,214,217,220,222,223,224,237],[111,142,205,208,213,215,216,217,220,222,223,224,237],[111,142,204,205,208,213,216,217,220,222,223,224,237],[111,142,205,208,213,216,217,218,220,222,223,224,237,242,254],[111,142,205,208,213,216,217,218,220,222,223,224,237,242,245],[111,142,192,205,208,213,216,217,219,220,222,223,224,226,237,242,254],[111,142,205,208,213,216,217,219,220,222,223,224,226,237,242,251,254],[111,142,205,208,213,217,219,220,221,222,223,224,237,242,251,254],[111,140,141,142,143,144,145,146,147,148,149,150,193,194,195,196,197,198,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,228,229,230,231,232,233,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],[111,142,205,208,213,216,217,220,222,223,224,237],[111,142,205,208,213,217,220,222,224,237],[111,142,205,208,213,217,220,222,223,224,225,237,254],[111,142,205,208,213,216,217,220,222,223,224,226,237,242],[111,142,205,208,213,217,220,222,223,224,228,237],[111,142,205,208,213,217,220,222,223,224,229,237],[111,142,205,208,213,216,217,220,222,223,224,232,237],[111,142,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,228,229,230,231,232,233,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],[111,142,205,208,213,217,220,222,223,224,234,237],[111,142,205,208,213,217,220,222,223,224,235,237],[111,142,205,208,210,213,217,220,222,223,224,226,237,245],[111,142,205,208,213,216,217,220,222,223,224,237,238],[111,142,205,208,213,217,220,222,223,224,237,239,255,258],[111,142,205,208,213,216,217,220,222,223,224,237,242,244,245],[111,142,205,208,213,217,220,222,223,224,237,243,245],[111,142,205,208,213,217,220,222,223,224,237,245,255],[111,142,205,208,213,217,220,222,223,224,237,246],[111,142,202,205,208,213,217,220,222,223,224,237,242,248,254],[111,142,205,208,213,217,220,222,223,224,237,242,247],[111,142,205,208,213,216,217,220,222,223,224,237,249,250],[111,142,205,208,213,217,220,222,223,224,237,249,250],[111,142,205,208,210,213,217,220,222,223,224,226,237,242,251],[111,142,205,208,213,217,220,222,223,224,237,252],[111,142,205,208,213,217,220,222,223,224,226,237,253],[111,142,205,208,213,217,219,220,222,223,224,235,237,254],[111,142,205,208,213,217,220,222,223,224,237,255,256],[111,142,205,208,210,213,217,220,222,223,224,237,256],[111,142,205,208,213,217,220,222,223,224,237,242,257],[111,142,205,208,213,217,220,222,223,224,225,237,258],[111,142,205,208,213,217,220,222,223,224,237,259],[111,142,205,208,210,213,217,220,222,223,224,237],[111,142,192,205,208,213,217,220,222,223,224,237],[111,142,205,208,213,217,220,222,223,224,237,254],[111,142,205,208,213,217,220,222,223,224,237,260],[111,142,205,208,213,217,220,222,223,224,232,237],[111,142,205,208,213,217,220,222,223,224,237,250],[111,142,192,205,208,213,216,217,218,220,222,223,224,232,237,242,245,254,257,258,260],[111,142,205,208,213,217,220,222,223,224,237,242,261],[111,142,157,160,163,164,205,208,213,217,220,222,223,224,237,254],[111,142,160,205,208,213,217,220,222,223,224,237,242,254],[111,142,160,164,205,208,213,217,220,222,223,224,237,254],[111,142,205,208,213,217,220,222,223,224,237,242],[111,142,154,205,208,213,217,220,222,223,224,237],[111,142,158,205,208,213,217,220,222,223,224,237],[111,142,156,157,160,205,208,213,217,220,222,223,224,237,254],[111,142,205,208,213,217,220,222,223,224,226,237,251],[111,142,205,208,213,217,220,222,223,224,237,262],[111,142,154,205,208,213,217,220,222,223,224,237,262],[111,142,156,160,205,208,213,217,220,222,223,224,226,237,254],[111,142,151,152,153,155,159,205,208,213,216,217,220,222,223,224,237,242,254],[111,142,160,169,177,205,208,213,217,220,222,223,224,237],[111,142,152,158,205,208,213,217,220,222,223,224,237],[111,142,160,186,187,205,208,213,217,220,222,223,224,237],[111,142,152,155,160,205,208,213,217,220,222,223,224,237,245,254,262],[111,142,160,205,208,213,217,220,222,223,224,237],[111,142,156,160,205,208,213,217,220,222,223,224,237,254],[111,142,151,205,208,213,217,220,222,223,224,237],[111,142,154,155,156,158,159,160,161,162,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,187,188,189,190,191,205,208,213,217,220,222,223,224,237],[111,142,160,179,182,205,208,213,217,220,222,223,224,237],[111,142,160,169,170,171,205,208,213,217,220,222,223,224,237],[111,142,158,160,170,172,205,208,213,217,220,222,223,224,237],[111,142,159,205,208,213,217,220,222,223,224,237],[111,142,152,154,160,205,208,213,217,220,222,223,224,237],[111,142,160,164,170,172,205,208,213,217,220,222,223,224,237],[111,142,164,205,208,213,217,220,222,223,224,237],[111,142,158,160,163,205,208,213,217,220,222,223,224,237,254],[111,142,152,156,160,169,205,208,213,217,220,222,223,224,237],[111,142,160,179,205,208,213,217,220,222,223,224,237],[111,142,172,205,208,213,217,220,222,223,224,237],[111,142,154,160,186,205,208,213,217,220,222,223,224,237,245,260,262],[111,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,142,205,208,213,217,220,222,223,224,237],[100,111,113,121,138,142,205,208,213,217,220,222,223,224,237]],"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":"2085382b07f3cd64087a991b6becb50133f01238539acfd02b4056a94a5ebb9d","impliedFormat":99},{"version":"db35eb1245b36fd3ff663811086d15cb8c68f3b3dc5f5f831db3b0eefbcb033c","impliedFormat":99},{"version":"0f3c61a292d85a2e818df1f9a7c7f37846cb1a6a3a4ecf7894f8a738d4bdb192","affectsGlobalScope":true,"impliedFormat":99},{"version":"8c9787aadb580199528c52892a52d65cf5681cbf431f50c387b4452d830e8260","impliedFormat":99},{"version":"6e9045bc4cb132b149dac58eeb9689f1fdb2b2b356ebbf02b93912b7a0fdbc25","affectsGlobalScope":true,"impliedFormat":99},{"version":"a6f32a624b98546b3ab4f84f0b900206a23542430a715b764796a9b10a27f242","impliedFormat":99},{"version":"a1eeac57c42f81587bdb5ba17781055a64913a1b6896752b5b9e45ba007577a2","impliedFormat":99},{"version":"bce313ff21532aa74f970cecd12a7e2a1b3fa20579ef702c16d627327c64bd98","impliedFormat":99},{"version":"86a89e907573f6d3c8ddab189817f10eff6b0c42ec08c485888d5e8b2efa1e2c","impliedFormat":99},{"version":"e73f713456ae34abd233f29196aa99fdf404cb91164c5122bc19a3d719047cd2","impliedFormat":99},{"version":"54c3513e44305cbe56ef433417d9e42104cdc317a63c43ecf72a1849ee69ccc2","impliedFormat":99},{"version":"7b0dc352c423e02893e3dbefdc5172f227c7638cd40c35c4b1b77af3008613de","affectsGlobalScope":true,"impliedFormat":99},{"version":"409686ee569ee9b47c3588823d5871fe711069a53ee94471fd4bffcc6469ee1a","impliedFormat":99},{"version":"0add61f82f10b4bb3bf837edda13915a643fa650f577e79a03be219c656f9e18","impliedFormat":99},{"version":"4db1053ff2a3a26c56ec68803986fb9a2de7ecb26d6252e1d4b719c48398f799","impliedFormat":99},{"version":"c1bf15bba38171793cfc7112559b1714b0bcb9f79477e012dffc4bb0ef2292a1","impliedFormat":99},{"version":"6922180d916be5ec823dd103ec60bf1ec48bded8e53194a760831a877a7cff0f","impliedFormat":99},{"version":"d0cd0ed5ad50d765e2e30fd7a45ce1b054cce85ff8235d19bbe45152acd32a08","impliedFormat":99},{"version":"7a61ece44b95f226c4166f48ed58e90a7b76242588293c52bb45bd74368c7559","affectsGlobalScope":true,"impliedFormat":99},{"version":"8dd968f41e49b2b0514d16baa1199620746dd6e8017accbea9a39a4b0c2a9d28","impliedFormat":99},{"version":"21ab021acdc50115128766fc952cb9265bbe1e878a6e6712f7999cfcdd3bfbba","impliedFormat":99},{"version":"a67623830d36a6c76f01ce2b51ca3206fb07de66d89b364837eb0fdb901de445","affectsGlobalScope":true,"impliedFormat":99},{"version":"090eb5c7c46bcebe0fdde327c76833c56f3f5503fa2c9b34a908c88ac3536ee6","impliedFormat":99},{"version":"54ac9f13e2b5a9bf9c0a2ceec8135b290d6d5f1b7623f2297f3e7e7f66da5aea","affectsGlobalScope":true,"impliedFormat":99},{"version":"a8fe8ba4b9226110a43330bc743d98e3e3af394e50f018dae034d11821a4b598","impliedFormat":99},{"version":"75fdff836de566cceca1fd40f365af854fbd8139e0fb33a191f8d087c9e43d90","impliedFormat":99},{"version":"e75adffbfda3c908bb319bf8bc4c5f01c23c0a6c129df28edf57bd9e3b9fe7a8","impliedFormat":99},{"version":"981e32c1ee850a697091171963411a0a940d5c1fa1fe3ea88fb9ea7c0f841bd1","impliedFormat":99},"004cd7c170c88793a62f0b831a52c8bec5835581048d81ec483105bb6fb569c8","55aac1cafba7e50f99fb9e8628a7f634e8354534e96ea8585821215c87de20be","f88f71f98c5b98896efe89d3a38dc6ec813b7e08d168f1006c4973839d77ca08","b76aa9f47943110ec585bb2b743aecb6f000377700923632f0db301482bdd73c","af1988260c49b37553045ea830586a7aeb8e442f20579ee17b5a2ac26141ad6c","bcd5f304d453dd40284c9645b5de54e0d8c8df0f3d80f53d664d3f99782d0ef5","a7298076563ec3132348662dacd7512b67a8564714460cf092a0211bcca5ee20","c99b7291b92920c8990726218d15eb170e32f6d74c63b7a020f0812f8546d288","1981a715841b053d196bd2fa7094a40e443550be04387c5bd61bd987c862a8c1","2b9a95c45751bab93ad8f47330f6e9ca44fe49484c34678f186994e92c539819","a14f06f88503879efda49e5b1b68c5a9fea51038e587450067d74c50609f0fd1","49243f7ff940e6fa2bb1064e9db8579284331ebfdbbc40afa4c5579c11daed12","4166644865115049a8c122b6061e4af2a7df86f4062a6ea9cd33c418a8fc1e48","0f633f56c3e62663502f33a45c9e05f06c638e00f949bbaa3efcb6623af1f910","19764f46f5f49e9c0426e38e477f1ca75748f93e7314ff91fa92e4fd63df3eb8","3978e1a4e65d355befa56b48fece71e9cee3985f568ad88de880a9ebc336b03a","33eced8b3dfef79d161db0a449e4c01c0b7879e21b1df13debd371a90afe5501",{"version":"3098f9fccdbdf3483ab5aebda6e90d7ff327120475ed675e859813a195ba5a88","signature":"e4d4bbf715c8f80b6988e761c6808076aa46596a4c554b0a9515db387894cd02"},{"version":"d153a11543fd884b596587ccd97aebbeed950b26933ee000f94009f1ab142848","affectsGlobalScope":true,"impliedFormat":1},{"version":"0ccdaa19852d25ecd84eec365c3bfa16e7859cadecf6e9ca6d0dbbbee439743f","affectsGlobalScope":true,"impliedFormat":1},{"version":"438b41419b1df9f1fbe33b5e1b18f5853432be205991d1b19f5b7f351675541e","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":"24371e69a38fc33e268d4a8716dbcda430d6c2c414a99ff9669239c4b8f40dea","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":"c63b9ada8c72f95aac5db92aea07e5e87ec810353cdf63b2d78f49a58662cf6c","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":"3fad5618174d74a34ee006406d4eb37e8d07dd62eb1315dbf52f48d31a337547","impliedFormat":1},{"version":"7e49f52a159435fc8df4de9dc377ef5860732ca2dc9efec1640531d3cf5da7a3","impliedFormat":1},{"version":"dd4bde4bdc2e5394aed6855e98cf135dfdf5dd6468cad842e03116d31bbcc9bc","impliedFormat":1},{"version":"4d4e879009a84a47c05350b8dca823036ba3a29a3038efed1be76c9f81e45edf","affectsGlobalScope":true,"impliedFormat":1},{"version":"8b50a819485ffe0d237bf0d131e92178d14d11e2aa873d73615a9ec578b341f5","impliedFormat":1},{"version":"9ba13b47cb450a438e3076c4a3f6afb9dc85e17eae50f26d4b2d72c0688c9251","impliedFormat":1},{"version":"b64cd4401633ea4ecadfd700ddc8323a13b63b106ac7127c1d2726f32424622c","impliedFormat":1},{"version":"37c6e5fe5715814412b43cc9b50b24c67a63c4e04e753e0d1305970d65417a60","impliedFormat":1},{"version":"1d024184fb57c58c5c91823f9d10b4915a4867b7934e89115fd0d861a9df27c8","impliedFormat":1},{"version":"ee0e4946247f842c6dd483cbb60a5e6b484fee07996e3a7bc7343dfb68a04c5d","impliedFormat":1},{"version":"ef051f42b7e0ef5ca04552f54c4552eac84099d64b6c5ad0ef4033574b6035b8","impliedFormat":1},{"version":"853a43154f1d01b0173d9cbd74063507ece57170bad7a3b68f3fa1229ad0a92f","impliedFormat":1},{"version":"56231e3c39a031bfb0afb797690b20ed4537670c93c0318b72d5180833d98b72","impliedFormat":1},{"version":"5cc7c39031bfd8b00ad58f32143d59eb6ffc24f5d41a20931269011dccd36c5e","impliedFormat":1},{"version":"12d602a8fe4c2f2ba4f7804f5eda8ba07e0c83bf5cf0cda8baffa2e9967bfb77","affectsGlobalScope":true,"impliedFormat":1},{"version":"a856ab781967b62b288dfd85b860bef0e62f005ed4b1b8fa25c53ce17856acaf","impliedFormat":1},{"version":"cc25940cfb27aa538e60d465f98bb5068d4d7d33131861ace43f04fe6947d68f","impliedFormat":1},{"version":"8db46b61a690f15b245cf16270db044dc047dce9f93b103a59f50262f677ea1f","impliedFormat":1},{"version":"01ff95aa1443e3f7248974e5a771f513cb2ac158c8898f470a1792f817bee497","impliedFormat":1},{"version":"757227c8b345c57d76f7f0e3bbad7a91ffca23f1b2547cbed9e10025816c9cb7","impliedFormat":1},{"version":"959d0327c96dd9bb5521f3ed6af0c435996504cc8dd46baa8e12cb3b3518cef1","impliedFormat":1},{"version":"e1c1a0b4d1ead0de9eca52203aeb1f771f21e6238d6fcd15aa56ac2a02f1b7bf","impliedFormat":1},{"version":"101f482fd48cb4c7c0468dcc6d62c843d842977aea6235644b1edd05e81fbf22","impliedFormat":1},{"version":"266bee0a41e9c3ba335583e21e9277ae03822402cf5e8e1d99f5196853613b98","affectsGlobalScope":true,"impliedFormat":1},{"version":"386606f8a297988535cb1401959041cfa7f59d54b8a9ed09738e65c98684c976","impliedFormat":1},{"version":"8e9c23ba78aabc2e0a27033f18737a6df754067731e69dc5f52823957d60a4b6","impliedFormat":1},{"version":"3ef397f12387eff17f550bc484ea7c27d21d43816bbe609d495107f44b97e933","impliedFormat":1},{"version":"1023282e2ba810bc07905d3668349fbd37a26411f0c8f94a70ef3c05fe523fcf","impliedFormat":1},{"version":"b214ebcf76c51b115453f69729ee8aa7b7f8eccdae2a922b568a45c2d7ff52f7","impliedFormat":1},{"version":"429c9cdfa7d126255779efd7e6d9057ced2d69c81859bbab32073bad52e9ba76","impliedFormat":1},{"version":"e236b5eba291f51bdf32c231673e6cab81b5410850e61f51a7a524dddadc0f95","impliedFormat":1},{"version":"ce8653341224f8b45ff46d2a06f2cacb96f841f768a886c9d8dd8ec0878b11bd","affectsGlobalScope":true,"impliedFormat":1},{"version":"7f2c62938251b45715fd2a9887060ec4fbc8724727029d1cbce373747252bdd7","impliedFormat":1},{"version":"e3ace08b6bbd84655d41e244677b474fd995923ffef7149ddb68af8848b60b05","impliedFormat":1},{"version":"132580b0e86c48fab152bab850fc57a4b74fe915c8958d2ccb052b809a44b61c","impliedFormat":1},{"version":"90a278f5fab7557e69e97056c0841adf269c42697194f0bd5c5e69152637d4b3","impliedFormat":1},{"version":"69c9a5a9392e8564bd81116e1ed93b13205201fb44cb35a7fde8c9f9e21c4b23","impliedFormat":1},{"version":"5f8fc37f8434691ffac1bfd8fc2634647da2c0e84253ab5d2dd19a7718915b35","impliedFormat":1},{"version":"5981c2340fd8b076cae8efbae818d42c11ffc615994cb060b1cd390795f1be2b","impliedFormat":1},{"version":"f263485c9ca90df9fe7bb3a906db9701997dc6cae86ace1f8106ac8d2f7f677b","impliedFormat":1},{"version":"1edcf2f36fc332615846bde6dcc71a8fe526065505bc5e3dcfd65a14becdf698","affectsGlobalScope":true,"impliedFormat":1},{"version":"0250da3eb85c99624f974e77ef355cdf86f43980251bc371475c2b397ba55bcd","impliedFormat":1},{"version":"f1c93e046fb3d9b7f8249629f4b63dc068dd839b824dd0aa39a5e68476dc9420","impliedFormat":1},{"version":"3d3a5f27ffbc06c885dd4d5f9ee20de61faf877fe2c3a7051c4825903d9a7fdc","impliedFormat":1},{"version":"12806f9f085598ef930edaf2467a5fa1789a878fba077cd27e85dc5851e11834","impliedFormat":1},{"version":"1dbca38aa4b0db1f4f9e6edacc2780af7e028b733d2a98dd3598cd235ca0c97d","impliedFormat":1},{"version":"a43fe41c33d0a192a0ecaf9b92e87bef3709c9972e6d53c42c49251ccb962d69","impliedFormat":1},{"version":"a177959203c017fad3ecc4f3d96c8757a840957a4959a3ae00dab9d35961ca6c","affectsGlobalScope":true,"impliedFormat":1},{"version":"6fc727ccf9b36e257ff982ea0badeffbfc2c151802f741bddff00c6af3b784cf","impliedFormat":1},{"version":"19143c930aef7ccf248549f3e78992f2f1049118ec5d4622e95025057d8e392b","impliedFormat":1},{"version":"4844a4c9b4b1e812b257676ed8a80b3f3be0e29bf05e742cc2ea9c3c6865e6c6","impliedFormat":1},{"version":"064878a60367e0407c42fb7ba02a2ea4d83257357dc20088e549bd4d89433e9c","impliedFormat":1},{"version":"cca8917838a876e2d7016c9b6af57cbf11fdf903c5fdd8e613fa31840b2957bf","impliedFormat":1},{"version":"d91ae55e4282c22b9c21bc26bd3ef637d3fe132507b10529ae68bf76f5de785b","impliedFormat":1},{"version":"b484ec11ba00e3a2235562a41898d55372ccabe607986c6fa4f4aba72093749f","impliedFormat":1},{"version":"7e8a671604329e178bb479c8f387715ebd40a091fc4a7552a0a75c2f3a21c65c","impliedFormat":1},{"version":"41ef7992c555671a8fe54db302788adefa191ded810a50329b79d20a6772d14c","impliedFormat":1},{"version":"041a7781b9127ab568d2cdcce62c58fdea7c7407f40b8c50045d7866a2727130","impliedFormat":1},{"version":"4c5e90ddbcd177ad3f2ffc909ae217c87820f1e968f6959e4b6ba38a8cec935e","impliedFormat":1},{"version":"b70dd9a44e1ac42f030bb12e7d79117eac7cb74170d72d381a1e7913320af23a","impliedFormat":1},{"version":"55cdbeebe76a1fa18bbd7e7bf73350a2173926bd3085bb050cf5a5397025ee4e","impliedFormat":1}],"root":[139],"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],[114,5],[115,6],[120,7],[121,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],[116,19],[117,20],[118,3],[119,21],[95,22],[96,14],[101,23],[102,24],[202,25],[203,25],[204,26],[142,27],[205,28],[206,29],[207,30],[140,10],[208,31],[209,32],[210,33],[211,34],[212,35],[213,36],[214,36],[215,37],[216,38],[217,39],[218,40],[143,10],[141,10],[219,41],[220,42],[221,43],[262,44],[222,45],[223,46],[224,45],[225,47],[226,48],[228,49],[229,50],[230,50],[231,50],[232,51],[233,52],[234,53],[235,54],[236,55],[237,56],[238,56],[239,57],[240,10],[241,10],[242,58],[243,59],[244,58],[245,60],[246,61],[247,62],[248,63],[249,64],[250,65],[251,66],[252,67],[253,68],[254,69],[255,70],[256,71],[257,72],[258,73],[259,74],[144,45],[145,10],[146,10],[147,75],[148,10],[149,31],[150,10],[193,76],[194,77],[195,78],[196,78],[197,79],[198,10],[199,28],[200,80],[201,77],[260,81],[261,82],[227,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],[169,83],[181,84],[166,85],[182,86],[191,87],[157,88],[158,89],[156,90],[190,91],[185,92],[189,93],[160,94],[178,95],[159,96],[188,97],[154,98],[155,92],[161,99],[162,10],[168,100],[165,99],[152,101],[192,102],[183,103],[172,104],[171,99],[173,105],[176,106],[170,107],[174,108],[186,91],[163,109],[164,110],[177,111],[153,86],[180,112],[179,99],[167,110],[175,113],[184,10],[151,10],[187,114],[122,10],[123,16],[124,10],[125,10],[126,10],[128,10],[129,10],[130,10],[132,10],[131,6],[127,10],[138,115],[137,16],[133,10],[134,10],[135,6],[136,10],[139,116]],"latestChangedDtsFile":"./lib/types/index.d.ts","version":"6.0.2"}