@multiplatform.one/utils 6.0.4 → 6.2.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,48 @@
1
+ # @multiplatform.one/utils
2
+
3
+ Build-time and dev-environment utilities for multiplatform.one projects:
4
+ monorepo module discovery for bundlers and wait-for-service helpers. Node-only —
5
+ nothing here ships to the browser.
6
+
7
+ ## Install
8
+
9
+ ```bash
10
+ pnpm add -D @multiplatform.one/utils
11
+ ```
12
+
13
+ ## What it owns
14
+
15
+ Everything lives on the **`/dev`** subpath (the root `.` entry is intentionally
16
+ empty):
17
+
18
+ - **Bundler discovery** — `lookupTranspileModules()`, `lookupTamaguiModules()`
19
+ (aggregate `transpileModules` / `tamaguiModules` fields from workspace
20
+ `package.json` files), `lookupProjectRoot()`, `resolveConfig(keys)`
21
+ - **Wait helpers** — `waitForFrappe`, `waitForPostgres`, `waitForMariaDB`,
22
+ `waitForKeycloak` (poll until a service answers; used by `mpo wait`),
23
+ `waitServices`, `formatServiceList`
24
+
25
+ ## What it must not do
26
+
27
+ - No runtime app code, no UI — this package is for build scripts, config
28
+ files, and dev tooling
29
+
30
+ ## Usage
31
+
32
+ ```ts
33
+ // vite.config.ts / metro config
34
+ import { lookupTamaguiModules } from "@multiplatform.one/utils/dev";
35
+
36
+ const tamaguiModules = lookupTamaguiModules();
37
+ ```
38
+
39
+ ```ts
40
+ // wait for the backend before running tests
41
+ import { waitForFrappe } from "@multiplatform.one/utils/dev";
42
+
43
+ await waitForFrappe(1000); // poll every 1s until BASE_URL/api/method/ping answers
44
+ ```
45
+
46
+ ## License
47
+
48
+ Apache-2.0
package/lib/dev.cjs CHANGED
@@ -6572,7 +6572,7 @@ var require_utf32 = /* @__PURE__ */ __commonJSMin(((exports) => {
6572
6572
  }
6573
6573
  Utf32Encoder.prototype.write = function(str) {
6574
6574
  var src = Buffer.from(str, "ucs2");
6575
- var dst = Buffer.alloc(src.length * 2);
6575
+ var dst = Buffer.alloc(src.length * 2 + 4);
6576
6576
  var write32 = this.isLE ? dst.writeUInt32LE : dst.writeUInt32BE;
6577
6577
  var offset = 0;
6578
6578
  for (var i = 0; i < src.length; i += 2) {
@@ -6624,8 +6624,8 @@ var require_utf32 = /* @__PURE__ */ __commonJSMin(((exports) => {
6624
6624
  if (overflow.length > 0) {
6625
6625
  for (; i < src.length && overflow.length < 4; i++) overflow.push(src[i]);
6626
6626
  if (overflow.length === 4) {
6627
- if (isLE) codepoint = overflow[i] | overflow[i + 1] << 8 | overflow[i + 2] << 16 | overflow[i + 3] << 24;
6628
- else codepoint = overflow[i + 3] | overflow[i + 2] << 8 | overflow[i + 1] << 16 | overflow[i] << 24;
6627
+ if (isLE) codepoint = overflow[0] | overflow[1] << 8 | overflow[2] << 16 | overflow[3] << 24;
6628
+ else codepoint = overflow[3] | overflow[2] << 8 | overflow[1] << 16 | overflow[0] << 24;
6629
6629
  overflow.length = 0;
6630
6630
  offset = _writeCodepoint(dst, offset, codepoint, badChar);
6631
6631
  }
@@ -6652,7 +6652,9 @@ var require_utf32 = /* @__PURE__ */ __commonJSMin(((exports) => {
6652
6652
  return offset;
6653
6653
  }
6654
6654
  Utf32Decoder.prototype.end = function() {
6655
+ if (this.overflow.length === 0) return;
6655
6656
  this.overflow.length = 0;
6657
+ return String.fromCharCode(this.badChar);
6656
6658
  };
6657
6659
  exports.utf32 = Utf32AutoCodec;
6658
6660
  exports.ucs4 = "utf32";
@@ -7194,6 +7196,8 @@ var require_sbcs_data = /* @__PURE__ */ __commonJSMin(((exports, module) => {
7194
7196
  elot928: "iso88597",
7195
7197
  hebrew: "iso88598",
7196
7198
  hebrew8: "iso88598",
7199
+ iso88598i: "iso88598",
7200
+ iso88598e: "iso88598",
7197
7201
  turkish: "iso88599",
7198
7202
  turkish8: "iso88599",
7199
7203
  thai: "iso885911",
@@ -22626,15 +22630,95 @@ function lookupProjectRoot() {
22626
22630
  return _projectRoot;
22627
22631
  }
22628
22632
  }
22633
+ /**
22634
+ * Map every public/* workspace package (and its subpath exports) to its TS
22635
+ * source. Without this, packages whose exports point at dist (e.g. table)
22636
+ * resolve to stale builds that can reference since-moved dependencies.
22637
+ *
22638
+ * Shared by the web-extension and vscode-webview target configs (the
22639
+ * pattern originated in apps/webext).
22640
+ */
22641
+ function workspaceSourceAliases(workspaceRoot) {
22642
+ const root = workspaceRoot ?? lookupProjectRoot();
22643
+ const aliases = {};
22644
+ const publicDir = node_path.default.join(root, "public");
22645
+ if (!node_fs.default.existsSync(publicDir)) return aliases;
22646
+ function resolveSource(pkgDir, subpath) {
22647
+ return [
22648
+ node_path.default.join(pkgDir, "src", `${subpath}.ts`),
22649
+ node_path.default.join(pkgDir, "src", `${subpath}.tsx`),
22650
+ node_path.default.join(pkgDir, "src", subpath, "index.ts"),
22651
+ node_path.default.join(pkgDir, "src", subpath, "index.tsx")
22652
+ ].find((candidate) => node_fs.default.existsSync(candidate));
22653
+ }
22654
+ for (const ent of node_fs.default.readdirSync(publicDir, { withFileTypes: true })) {
22655
+ if (!ent.isDirectory()) continue;
22656
+ const pkgDir = node_path.default.join(publicDir, ent.name);
22657
+ const pkgJsonPath = node_path.default.join(pkgDir, "package.json");
22658
+ if (!node_fs.default.existsSync(pkgJsonPath)) continue;
22659
+ try {
22660
+ const pkg = JSON.parse(node_fs.default.readFileSync(pkgJsonPath, "utf8"));
22661
+ if (!pkg.name) continue;
22662
+ const main = resolveSource(pkgDir, "index");
22663
+ if (main) aliases[pkg.name] = main;
22664
+ if (pkg.exports && typeof pkg.exports === "object") for (const key of Object.keys(pkg.exports)) {
22665
+ if (key === "." || key === "./package.json" || node_path.default.extname(key)) continue;
22666
+ const subpath = key.replace(/^\.\//, "");
22667
+ const resolved = resolveSource(pkgDir, subpath);
22668
+ if (resolved) aliases[`${pkg.name}/${subpath}`] = resolved;
22669
+ }
22670
+ } catch {}
22671
+ }
22672
+ const sorted = {};
22673
+ for (const key of Object.keys(aliases).sort((a, b) => b.length - a.length)) sorted[key] = aliases[key];
22674
+ return sorted;
22675
+ }
22676
+ /**
22677
+ * one's client code imports ./vite/one-server-only.mjs, which pulls
22678
+ * node:async_hooks and can't bundle for the browser. Declaring it rollup-
22679
+ * `external` ships a literal node_modules import that can't resolve inside a
22680
+ * packaged extension (this exact failure made the webext popup load blank).
22681
+ * One publishes a no-op browser/native variant of the same module; redirect
22682
+ * to it instead of externalizing.
22683
+ */
22684
+ function oneServerOnlyBrowserStub(workspaceRoot) {
22685
+ const root = workspaceRoot ?? lookupProjectRoot();
22686
+ const stub = node_path.default.join(root, "node_modules/one/dist/esm/vite/one-server-only.native.js");
22687
+ return {
22688
+ name: "one-server-only-browser-stub",
22689
+ enforce: "pre",
22690
+ resolveId(id) {
22691
+ if (id.includes("one-server-only")) return stub;
22692
+ }
22693
+ };
22694
+ }
22695
+ /**
22696
+ * expo-modules-core ships `src/ts-declarations/` files that contain only
22697
+ * TypeScript type declarations. Rolldown incorrectly treats their
22698
+ * `import { ... }` statements as value imports (because `// @ts-nocheck`
22699
+ * prevents OXC from eliding them), then reports MISSING_EXPORT. Stub these
22700
+ * type-only files with empty modules.
22701
+ */
22702
+ function stubExpoTypeDeclarations() {
22703
+ return {
22704
+ name: "stub-expo-type-declarations",
22705
+ load(id) {
22706
+ if (id.includes("/expo-modules-core/src/ts-declarations/")) return "export {}";
22707
+ }
22708
+ };
22709
+ }
22629
22710
 
22630
22711
  //#endregion
22631
22712
  exports.formatServiceList = formatServiceList;
22632
22713
  exports.lookupProjectRoot = lookupProjectRoot;
22633
22714
  exports.lookupTamaguiModules = lookupTamaguiModules;
22634
22715
  exports.lookupTranspileModules = lookupTranspileModules;
22716
+ exports.oneServerOnlyBrowserStub = oneServerOnlyBrowserStub;
22635
22717
  exports.resolveConfig = resolveConfig;
22718
+ exports.stubExpoTypeDeclarations = stubExpoTypeDeclarations;
22636
22719
  exports.waitForFrappe = waitForFrappe;
22637
22720
  exports.waitForKeycloak = waitForKeycloak;
22638
22721
  exports.waitForMariaDB = waitForMariaDB;
22639
22722
  exports.waitForPostgres = waitForPostgres;
22640
- exports.waitServices = waitServices;
22723
+ exports.waitServices = waitServices;
22724
+ exports.workspaceSourceAliases = workspaceSourceAliases;
package/lib/dev.mjs CHANGED
@@ -6545,7 +6545,7 @@ var require_utf32 = /* @__PURE__ */ __commonJSMin(((exports) => {
6545
6545
  }
6546
6546
  Utf32Encoder.prototype.write = function(str) {
6547
6547
  var src = Buffer.from(str, "ucs2");
6548
- var dst = Buffer.alloc(src.length * 2);
6548
+ var dst = Buffer.alloc(src.length * 2 + 4);
6549
6549
  var write32 = this.isLE ? dst.writeUInt32LE : dst.writeUInt32BE;
6550
6550
  var offset = 0;
6551
6551
  for (var i = 0; i < src.length; i += 2) {
@@ -6597,8 +6597,8 @@ var require_utf32 = /* @__PURE__ */ __commonJSMin(((exports) => {
6597
6597
  if (overflow.length > 0) {
6598
6598
  for (; i < src.length && overflow.length < 4; i++) overflow.push(src[i]);
6599
6599
  if (overflow.length === 4) {
6600
- if (isLE) codepoint = overflow[i] | overflow[i + 1] << 8 | overflow[i + 2] << 16 | overflow[i + 3] << 24;
6601
- else codepoint = overflow[i + 3] | overflow[i + 2] << 8 | overflow[i + 1] << 16 | overflow[i] << 24;
6600
+ if (isLE) codepoint = overflow[0] | overflow[1] << 8 | overflow[2] << 16 | overflow[3] << 24;
6601
+ else codepoint = overflow[3] | overflow[2] << 8 | overflow[1] << 16 | overflow[0] << 24;
6602
6602
  overflow.length = 0;
6603
6603
  offset = _writeCodepoint(dst, offset, codepoint, badChar);
6604
6604
  }
@@ -6625,7 +6625,9 @@ var require_utf32 = /* @__PURE__ */ __commonJSMin(((exports) => {
6625
6625
  return offset;
6626
6626
  }
6627
6627
  Utf32Decoder.prototype.end = function() {
6628
+ if (this.overflow.length === 0) return;
6628
6629
  this.overflow.length = 0;
6630
+ return String.fromCharCode(this.badChar);
6629
6631
  };
6630
6632
  exports.utf32 = Utf32AutoCodec;
6631
6633
  exports.ucs4 = "utf32";
@@ -7167,6 +7169,8 @@ var require_sbcs_data = /* @__PURE__ */ __commonJSMin(((exports, module) => {
7167
7169
  elot928: "iso88597",
7168
7170
  hebrew: "iso88598",
7169
7171
  hebrew8: "iso88598",
7172
+ iso88598i: "iso88598",
7173
+ iso88598e: "iso88598",
7170
7174
  turkish: "iso88599",
7171
7175
  turkish8: "iso88599",
7172
7176
  thai: "iso885911",
@@ -22599,6 +22603,83 @@ function lookupProjectRoot() {
22599
22603
  return _projectRoot;
22600
22604
  }
22601
22605
  }
22606
+ /**
22607
+ * Map every public/* workspace package (and its subpath exports) to its TS
22608
+ * source. Without this, packages whose exports point at dist (e.g. table)
22609
+ * resolve to stale builds that can reference since-moved dependencies.
22610
+ *
22611
+ * Shared by the web-extension and vscode-webview target configs (the
22612
+ * pattern originated in apps/webext).
22613
+ */
22614
+ function workspaceSourceAliases(workspaceRoot) {
22615
+ const root = workspaceRoot ?? lookupProjectRoot();
22616
+ const aliases = {};
22617
+ const publicDir = path.join(root, "public");
22618
+ if (!fs.existsSync(publicDir)) return aliases;
22619
+ function resolveSource(pkgDir, subpath) {
22620
+ return [
22621
+ path.join(pkgDir, "src", `${subpath}.ts`),
22622
+ path.join(pkgDir, "src", `${subpath}.tsx`),
22623
+ path.join(pkgDir, "src", subpath, "index.ts"),
22624
+ path.join(pkgDir, "src", subpath, "index.tsx")
22625
+ ].find((candidate) => fs.existsSync(candidate));
22626
+ }
22627
+ for (const ent of fs.readdirSync(publicDir, { withFileTypes: true })) {
22628
+ if (!ent.isDirectory()) continue;
22629
+ const pkgDir = path.join(publicDir, ent.name);
22630
+ const pkgJsonPath = path.join(pkgDir, "package.json");
22631
+ if (!fs.existsSync(pkgJsonPath)) continue;
22632
+ try {
22633
+ const pkg = JSON.parse(fs.readFileSync(pkgJsonPath, "utf8"));
22634
+ if (!pkg.name) continue;
22635
+ const main = resolveSource(pkgDir, "index");
22636
+ if (main) aliases[pkg.name] = main;
22637
+ if (pkg.exports && typeof pkg.exports === "object") for (const key of Object.keys(pkg.exports)) {
22638
+ if (key === "." || key === "./package.json" || path.extname(key)) continue;
22639
+ const subpath = key.replace(/^\.\//, "");
22640
+ const resolved = resolveSource(pkgDir, subpath);
22641
+ if (resolved) aliases[`${pkg.name}/${subpath}`] = resolved;
22642
+ }
22643
+ } catch {}
22644
+ }
22645
+ const sorted = {};
22646
+ for (const key of Object.keys(aliases).sort((a, b) => b.length - a.length)) sorted[key] = aliases[key];
22647
+ return sorted;
22648
+ }
22649
+ /**
22650
+ * one's client code imports ./vite/one-server-only.mjs, which pulls
22651
+ * node:async_hooks and can't bundle for the browser. Declaring it rollup-
22652
+ * `external` ships a literal node_modules import that can't resolve inside a
22653
+ * packaged extension (this exact failure made the webext popup load blank).
22654
+ * One publishes a no-op browser/native variant of the same module; redirect
22655
+ * to it instead of externalizing.
22656
+ */
22657
+ function oneServerOnlyBrowserStub(workspaceRoot) {
22658
+ const root = workspaceRoot ?? lookupProjectRoot();
22659
+ const stub = path.join(root, "node_modules/one/dist/esm/vite/one-server-only.native.js");
22660
+ return {
22661
+ name: "one-server-only-browser-stub",
22662
+ enforce: "pre",
22663
+ resolveId(id) {
22664
+ if (id.includes("one-server-only")) return stub;
22665
+ }
22666
+ };
22667
+ }
22668
+ /**
22669
+ * expo-modules-core ships `src/ts-declarations/` files that contain only
22670
+ * TypeScript type declarations. Rolldown incorrectly treats their
22671
+ * `import { ... }` statements as value imports (because `// @ts-nocheck`
22672
+ * prevents OXC from eliding them), then reports MISSING_EXPORT. Stub these
22673
+ * type-only files with empty modules.
22674
+ */
22675
+ function stubExpoTypeDeclarations() {
22676
+ return {
22677
+ name: "stub-expo-type-declarations",
22678
+ load(id) {
22679
+ if (id.includes("/expo-modules-core/src/ts-declarations/")) return "export {}";
22680
+ }
22681
+ };
22682
+ }
22602
22683
 
22603
22684
  //#endregion
22604
- export { formatServiceList, lookupProjectRoot, lookupTamaguiModules, lookupTranspileModules, resolveConfig, waitForFrappe, waitForKeycloak, waitForMariaDB, waitForPostgres, waitServices };
22685
+ export { formatServiceList, lookupProjectRoot, lookupTamaguiModules, lookupTranspileModules, oneServerOnlyBrowserStub, resolveConfig, stubExpoTypeDeclarations, waitForFrappe, waitForKeycloak, waitForMariaDB, waitForPostgres, waitServices, workspaceSourceAliases };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@multiplatform.one/utils",
3
- "version": "6.0.4",
3
+ "version": "6.2.0",
4
4
  "description": "utilities for multiplatform.one",
5
5
  "keywords": [
6
6
  "multiplatform.one",
@@ -15,25 +15,26 @@
15
15
  "author": "BitSpur <support@risserlabs.com> (https://risserlabs.com)",
16
16
  "repository": {
17
17
  "type": "git",
18
- "url": "https://gitlab.com/bitspur/multiplatform.one/multiplatform.one"
18
+ "url": "git+https://gitlab.com/bitspur/frappe/multiplatform.one.git",
19
+ "directory": "public/utils"
19
20
  },
20
21
  "source": "src/index.ts",
21
22
  "files": [
22
- "bin",
23
23
  "lib",
24
24
  "types",
25
- "src"
25
+ "src",
26
+ "!types/.tsbuildinfo"
26
27
  ],
27
28
  "type": "module",
28
29
  "sideEffects": false,
29
30
  "main": "lib/index.cjs",
30
- "module": "lib/index.js",
31
+ "module": "lib/index.mjs",
31
32
  "types": "types/index.d.ts",
32
33
  "exports": {
33
34
  ".": {
34
35
  "source": "./src/index.ts",
35
36
  "types": "./types/index.d.ts",
36
- "import": "./lib/index.js",
37
+ "import": "./lib/index.mjs",
37
38
  "require": "./lib/index.cjs"
38
39
  },
39
40
  "./dev": {
@@ -57,6 +58,7 @@
57
58
  "@types/pg": "^8.20.0",
58
59
  "@vitest/coverage-v8": "^4.1.5",
59
60
  "typescript": "~5.9.3",
61
+ "vite": "^8.0.10",
60
62
  "vitest": "^4.1.5"
61
63
  },
62
64
  "engines": {
@@ -64,7 +66,7 @@
64
66
  },
65
67
  "scripts": {
66
68
  "typecheck": "tsc --noEmit",
67
- "build": "rm -rf lib types 2>/dev/null && tsc -b --emitDeclarationOnly && tsdown",
69
+ "build": "rm -rf lib types 2>/dev/null && tsc -p tsconfig.build.json && tsdown",
68
70
  "test": "vitest run --coverage --coverage.provider=v8 --coverage.reporter=text --coverage.reporter=lcov --coverage.reporter=html"
69
71
  }
70
72
  }
@@ -0,0 +1,139 @@
1
+ import fs from "node:fs";
2
+ import os from "node:os";
3
+ import path from "node:path";
4
+ import { afterAll, beforeAll, describe, expect, it, vi } from "vitest";
5
+
6
+ const gitState = vi.hoisted(() => ({ root: "" }));
7
+
8
+ vi.mock("node:child_process", () => ({
9
+ spawnSync: vi.fn(() => ({ stdout: `${gitState.root}\n` })),
10
+ }));
11
+
12
+ import {
13
+ lookupProjectRoot,
14
+ lookupTamaguiModules,
15
+ lookupTranspileModules,
16
+ resolveConfig,
17
+ } from "./dev";
18
+
19
+ let fixtureRoot: string;
20
+
21
+ function writePkg(dir: string, pkg: Record<string, unknown>): string {
22
+ fs.mkdirSync(dir, { recursive: true });
23
+ fs.writeFileSync(path.join(dir, "package.json"), JSON.stringify(pkg));
24
+ return dir;
25
+ }
26
+
27
+ beforeAll(() => {
28
+ fixtureRoot = fs.mkdtempSync(path.join(os.tmpdir(), "mpo-dev-spec-"));
29
+ gitState.root = fixtureRoot;
30
+ // Project root package.json with its own transpile/tamagui modules.
31
+ writePkg(fixtureRoot, {
32
+ name: "fixture-root",
33
+ transpileModules: ["root-transpile"],
34
+ tamaguiModules: ["root-tamagui"],
35
+ });
36
+ });
37
+
38
+ afterAll(() => {
39
+ fs.rmSync(fixtureRoot, { recursive: true, force: true });
40
+ });
41
+
42
+ describe("lookupProjectRoot", () => {
43
+ it("resolves the project root from git and caches it", () => {
44
+ expect(lookupProjectRoot()).toBe(fixtureRoot);
45
+ // Second call returns the cached value (same string, no re-spawn effect).
46
+ expect(lookupProjectRoot()).toBe(fixtureRoot);
47
+ });
48
+ });
49
+
50
+ describe("lookupTranspileModules", () => {
51
+ it("collects transpileModules from the project root package.json", () => {
52
+ const modules = lookupTranspileModules(undefined, { log: false });
53
+ expect(modules).toContain("root-transpile");
54
+ });
55
+
56
+ it("merges transpileModules from extra package dirs", () => {
57
+ const extra = writePkg(path.join(fixtureRoot, "pkg-a"), {
58
+ name: "pkg-a",
59
+ transpileModules: ["a-one", "a-two"],
60
+ });
61
+ const modules = lookupTranspileModules([extra], { log: false });
62
+ expect(modules).toEqual(expect.arrayContaining(["root-transpile", "a-one", "a-two"]));
63
+ });
64
+
65
+ it("ignores directories without a package.json", () => {
66
+ const missing = path.join(fixtureRoot, "does-not-exist");
67
+ const modules = lookupTranspileModules([missing], { log: false });
68
+ expect(modules).toContain("root-transpile");
69
+ expect(modules).not.toContain(undefined);
70
+ });
71
+
72
+ it("treats packages without a transpileModules field as empty", () => {
73
+ const bare = writePkg(path.join(fixtureRoot, "pkg-bare"), { name: "pkg-bare" });
74
+ const modules = lookupTranspileModules([bare], { log: false });
75
+ expect(modules).toEqual(expect.arrayContaining(["root-transpile"]));
76
+ });
77
+
78
+ it("recovers from malformed package.json instead of throwing", () => {
79
+ const broken = path.join(fixtureRoot, "pkg-broken");
80
+ fs.mkdirSync(broken, { recursive: true });
81
+ fs.writeFileSync(path.join(broken, "package.json"), "{not json");
82
+ const errorSpy = vi.spyOn(console, "error").mockImplementation(() => {});
83
+ try {
84
+ const modules = lookupTranspileModules([broken], { log: false });
85
+ expect(modules).toContain("root-transpile");
86
+ expect(errorSpy).not.toHaveBeenCalled();
87
+ // With logging enabled the parse error is reported, not thrown.
88
+ const loud = lookupTranspileModules([broken], { log: true });
89
+ expect(loud).toContain("root-transpile");
90
+ } finally {
91
+ errorSpy.mockRestore();
92
+ vi.restoreAllMocks();
93
+ }
94
+ });
95
+
96
+ it("deduplicates repeated package dirs", () => {
97
+ const extra = writePkg(path.join(fixtureRoot, "pkg-dup"), {
98
+ name: "pkg-dup",
99
+ transpileModules: ["dup-mod"],
100
+ });
101
+ const modules = lookupTranspileModules([extra, extra], { log: false });
102
+ expect(modules.filter((m) => m === "dup-mod")).toHaveLength(1);
103
+ });
104
+ });
105
+
106
+ describe("lookupTamaguiModules", () => {
107
+ it("always includes tamagui itself first", () => {
108
+ const modules = lookupTamaguiModules(undefined, { log: false });
109
+ expect(modules[0]).toBe("tamagui");
110
+ });
111
+
112
+ it("merges tamaguiModules from the root and extra package dirs", () => {
113
+ const extra = writePkg(path.join(fixtureRoot, "pkg-tam"), {
114
+ name: "pkg-tam",
115
+ tamaguiModules: ["extra-tamagui"],
116
+ });
117
+ const modules = lookupTamaguiModules([extra], { log: false });
118
+ expect(modules).toEqual(expect.arrayContaining(["tamagui", "root-tamagui", "extra-tamagui"]));
119
+ });
120
+ });
121
+
122
+ describe("resolveConfig", () => {
123
+ it("picks only env keys that are set", () => {
124
+ process.env.MPO_DEV_SPEC_SET = "value";
125
+ delete process.env.MPO_DEV_SPEC_UNSET;
126
+ try {
127
+ const config = resolveConfig(["MPO_DEV_SPEC_SET", "MPO_DEV_SPEC_UNSET"]);
128
+ expect(config).toEqual({ MPO_DEV_SPEC_SET: "value" });
129
+ expect("MPO_DEV_SPEC_UNSET" in config).toBe(false);
130
+ } finally {
131
+ delete process.env.MPO_DEV_SPEC_SET;
132
+ }
133
+ });
134
+
135
+ it("returns an empty object for no keys", () => {
136
+ expect(resolveConfig()).toEqual({});
137
+ expect(resolveConfig([])).toEqual({});
138
+ });
139
+ });
package/src/dev.ts CHANGED
@@ -1,6 +1,7 @@
1
1
  import { spawnSync } from "node:child_process";
2
2
  import fs from "node:fs";
3
3
  import path from "node:path";
4
+ import type { Plugin } from "vite";
4
5
 
5
6
  const logger = console;
6
7
 
@@ -98,4 +99,98 @@ export function lookupProjectRoot() {
98
99
  }
99
100
  }
100
101
 
102
+ /**
103
+ * Map every public/* workspace package (and its subpath exports) to its TS
104
+ * source. Without this, packages whose exports point at dist (e.g. table)
105
+ * resolve to stale builds that can reference since-moved dependencies.
106
+ *
107
+ * Shared by the web-extension and vscode-webview target configs (the
108
+ * pattern originated in apps/webext).
109
+ */
110
+ export function workspaceSourceAliases(workspaceRoot?: string): Record<string, string> {
111
+ const root = workspaceRoot ?? lookupProjectRoot();
112
+ const aliases: Record<string, string> = {};
113
+ const publicDir = path.join(root, "public");
114
+ if (!fs.existsSync(publicDir)) return aliases;
115
+
116
+ function resolveSource(pkgDir: string, subpath: string): string | undefined {
117
+ const candidates = [
118
+ path.join(pkgDir, "src", `${subpath}.ts`),
119
+ path.join(pkgDir, "src", `${subpath}.tsx`),
120
+ path.join(pkgDir, "src", subpath, "index.ts"),
121
+ path.join(pkgDir, "src", subpath, "index.tsx"),
122
+ ];
123
+ return candidates.find((candidate) => fs.existsSync(candidate));
124
+ }
125
+
126
+ for (const ent of fs.readdirSync(publicDir, { withFileTypes: true })) {
127
+ if (!ent.isDirectory()) continue;
128
+ const pkgDir = path.join(publicDir, ent.name);
129
+ const pkgJsonPath = path.join(pkgDir, "package.json");
130
+ if (!fs.existsSync(pkgJsonPath)) continue;
131
+ try {
132
+ const pkg = JSON.parse(fs.readFileSync(pkgJsonPath, "utf8")) as {
133
+ name?: string;
134
+ exports?: Record<string, unknown>;
135
+ };
136
+ if (!pkg.name) continue;
137
+ const main = resolveSource(pkgDir, "index");
138
+ if (main) aliases[pkg.name] = main;
139
+ if (pkg.exports && typeof pkg.exports === "object") {
140
+ for (const key of Object.keys(pkg.exports)) {
141
+ if (key === "." || key === "./package.json" || path.extname(key)) continue;
142
+ const subpath = key.replace(/^\.\//, "");
143
+ const resolved = resolveSource(pkgDir, subpath);
144
+ if (resolved) aliases[`${pkg.name}/${subpath}`] = resolved;
145
+ }
146
+ }
147
+ } catch {}
148
+ }
149
+ // Sort by key length descending so more-specific aliases match before
150
+ // shorter prefixes.
151
+ const sorted: Record<string, string> = {};
152
+ for (const key of Object.keys(aliases).sort((a, b) => b.length - a.length)) {
153
+ sorted[key] = aliases[key]!;
154
+ }
155
+ return sorted;
156
+ }
157
+
158
+ /**
159
+ * one's client code imports ./vite/one-server-only.mjs, which pulls
160
+ * node:async_hooks and can't bundle for the browser. Declaring it rollup-
161
+ * `external` ships a literal node_modules import that can't resolve inside a
162
+ * packaged extension (this exact failure made the webext popup load blank).
163
+ * One publishes a no-op browser/native variant of the same module; redirect
164
+ * to it instead of externalizing.
165
+ */
166
+ export function oneServerOnlyBrowserStub(workspaceRoot?: string): Plugin {
167
+ const root = workspaceRoot ?? lookupProjectRoot();
168
+ const stub = path.join(root, "node_modules/one/dist/esm/vite/one-server-only.native.js");
169
+ return {
170
+ name: "one-server-only-browser-stub",
171
+ enforce: "pre",
172
+ resolveId(id: string) {
173
+ if (id.includes("one-server-only")) return stub;
174
+ },
175
+ };
176
+ }
177
+
178
+ /**
179
+ * expo-modules-core ships `src/ts-declarations/` files that contain only
180
+ * TypeScript type declarations. Rolldown incorrectly treats their
181
+ * `import { ... }` statements as value imports (because `// @ts-nocheck`
182
+ * prevents OXC from eliding them), then reports MISSING_EXPORT. Stub these
183
+ * type-only files with empty modules.
184
+ */
185
+ export function stubExpoTypeDeclarations(): Plugin {
186
+ return {
187
+ name: "stub-expo-type-declarations",
188
+ load(id: string) {
189
+ if (id.includes("/expo-modules-core/src/ts-declarations/")) {
190
+ return "export {}";
191
+ }
192
+ },
193
+ };
194
+ }
195
+
101
196
  export * from "./wait";
@@ -0,0 +1,173 @@
1
+ import { afterEach, beforeEach, describe, expect, it, vi } from "vitest";
2
+ import axios from "axios";
3
+ import { waitForFrappe, waitForKeycloak, waitForPostgres } from "./wait";
4
+
5
+ // NOTE: waitForMariaDB is intentionally not covered here — it loads its
6
+ // driver through a bare `require("mysql2/promise")`, which bypasses vitest
7
+ // module mocks, so it cannot be exercised without touching the network.
8
+
9
+ vi.mock("axios", () => ({
10
+ default: { get: vi.fn() },
11
+ }));
12
+
13
+ const pgState = vi.hoisted(() => ({
14
+ connect: vi.fn(),
15
+ query: vi.fn(),
16
+ end: vi.fn(),
17
+ lastConfig: undefined as Record<string, unknown> | undefined,
18
+ }));
19
+
20
+ vi.mock("pg", () => ({
21
+ default: {
22
+ Client: class {
23
+ constructor(config: Record<string, unknown>) {
24
+ pgState.lastConfig = config;
25
+ }
26
+ connect = pgState.connect;
27
+ query = pgState.query;
28
+ end = pgState.end;
29
+ },
30
+ },
31
+ }));
32
+
33
+ const mockedGet = vi.mocked(axios.get);
34
+
35
+ const managedEnvKeys = [
36
+ "BASE_URL",
37
+ "POSTGRES_DATABASE",
38
+ "POSTGRES_HOSTNAME",
39
+ "POSTGRES_PASSWORD",
40
+ "POSTGRES_PORT",
41
+ "POSTGRES_USERNAME",
42
+ ] as const;
43
+
44
+ describe("wait loops", () => {
45
+ const savedEnv: Partial<Record<(typeof managedEnvKeys)[number], string | undefined>> = {};
46
+
47
+ beforeEach(() => {
48
+ vi.useFakeTimers();
49
+ for (const key of managedEnvKeys) {
50
+ savedEnv[key] = process.env[key];
51
+ delete process.env[key];
52
+ }
53
+ mockedGet.mockReset();
54
+ pgState.connect.mockReset().mockResolvedValue(undefined);
55
+ pgState.query.mockReset().mockResolvedValue({ rows: [] });
56
+ pgState.end.mockReset().mockResolvedValue(undefined);
57
+ pgState.lastConfig = undefined;
58
+ });
59
+
60
+ afterEach(() => {
61
+ vi.useRealTimers();
62
+ for (const key of managedEnvKeys) {
63
+ if (savedEnv[key] === undefined) delete process.env[key];
64
+ else process.env[key] = savedEnv[key];
65
+ }
66
+ });
67
+
68
+ describe("waitForFrappe", () => {
69
+ it("resolves immediately when the ping endpoint answers with a 2xx", async () => {
70
+ mockedGet.mockResolvedValue({ status: 200 });
71
+ await expect(waitForFrappe(1000)).resolves.toBeUndefined();
72
+ expect(mockedGet).toHaveBeenCalledTimes(1);
73
+ expect(mockedGet).toHaveBeenCalledWith("http://frappe.localhost/api/method/ping");
74
+ });
75
+
76
+ it("pings BASE_URL when set", async () => {
77
+ process.env.BASE_URL = "https://erp.example.com";
78
+ mockedGet.mockResolvedValue({ status: 200 });
79
+ await waitForFrappe(1000);
80
+ expect(mockedGet).toHaveBeenCalledWith("https://erp.example.com/api/method/ping");
81
+ });
82
+
83
+ it("retries after the interval when the request throws, then resolves", async () => {
84
+ mockedGet.mockRejectedValueOnce(new Error("ECONNREFUSED")).mockResolvedValue({ status: 200 });
85
+ const done = vi.fn();
86
+ const promise = waitForFrappe(250).then(done);
87
+ await vi.advanceTimersByTimeAsync(249);
88
+ expect(done).not.toHaveBeenCalled();
89
+ expect(mockedGet).toHaveBeenCalledTimes(1);
90
+ await vi.advanceTimersByTimeAsync(1);
91
+ await promise;
92
+ expect(mockedGet).toHaveBeenCalledTimes(2);
93
+ expect(done).toHaveBeenCalled();
94
+ });
95
+
96
+ it("treats a non-2xx response as not ready and keeps polling", async () => {
97
+ mockedGet.mockResolvedValueOnce({ status: 503 }).mockResolvedValue({ status: 200 });
98
+ const promise = waitForFrappe(100);
99
+ await vi.advanceTimersByTimeAsync(100);
100
+ await promise;
101
+ expect(mockedGet).toHaveBeenCalledTimes(2);
102
+ });
103
+ });
104
+
105
+ describe("waitForKeycloak", () => {
106
+ it("resolves when the realm discovery document answers with a 2xx", async () => {
107
+ mockedGet.mockResolvedValue({ status: 200 });
108
+ await expect(waitForKeycloak(1000)).resolves.toBeUndefined();
109
+ expect(mockedGet).toHaveBeenCalledWith(
110
+ "http://localhost:8000/auth/realms/master/.well-known/openid-configuration",
111
+ );
112
+ });
113
+
114
+ it("honors BASE_URL and retries until the endpoint is reachable", async () => {
115
+ process.env.BASE_URL = "https://auth.example.com";
116
+ mockedGet.mockRejectedValueOnce(new Error("down")).mockResolvedValue({ status: 200 });
117
+ const promise = waitForKeycloak(500);
118
+ await vi.advanceTimersByTimeAsync(500);
119
+ await promise;
120
+ expect(mockedGet).toHaveBeenCalledTimes(2);
121
+ expect(mockedGet).toHaveBeenLastCalledWith(
122
+ "https://auth.example.com/auth/realms/master/.well-known/openid-configuration",
123
+ );
124
+ });
125
+ });
126
+
127
+ describe("waitForPostgres", () => {
128
+ it("connects with defaults, probes SELECT 1, and always closes the client", async () => {
129
+ await expect(waitForPostgres(1000)).resolves.toBeUndefined();
130
+ expect(pgState.lastConfig).toEqual({
131
+ database: "postgres",
132
+ host: "localhost",
133
+ password: "postgres",
134
+ port: 5432,
135
+ user: "postgres",
136
+ });
137
+ expect(pgState.query).toHaveBeenCalledWith("SELECT 1");
138
+ expect(pgState.end).toHaveBeenCalledTimes(1);
139
+ });
140
+
141
+ it("builds the client config from POSTGRES_* env vars", async () => {
142
+ process.env.POSTGRES_DATABASE = "appdb";
143
+ process.env.POSTGRES_HOSTNAME = "db.internal";
144
+ process.env.POSTGRES_PASSWORD = "secret";
145
+ process.env.POSTGRES_PORT = "6543";
146
+ process.env.POSTGRES_USERNAME = "svc";
147
+ await waitForPostgres(1000);
148
+ expect(pgState.lastConfig).toEqual({
149
+ database: "appdb",
150
+ host: "db.internal",
151
+ password: "secret",
152
+ port: 6543,
153
+ user: "svc",
154
+ });
155
+ });
156
+
157
+ it("retries the probe query after the interval until it succeeds", async () => {
158
+ pgState.query.mockRejectedValueOnce(new Error("starting up")).mockResolvedValue({ rows: [] });
159
+ const promise = waitForPostgres(200);
160
+ await vi.advanceTimersByTimeAsync(200);
161
+ await promise;
162
+ expect(pgState.query).toHaveBeenCalledTimes(2);
163
+ expect(pgState.end).toHaveBeenCalledTimes(1);
164
+ });
165
+
166
+ it("propagates a connection failure (no retry) but still closes the client", async () => {
167
+ pgState.connect.mockRejectedValue(new Error("auth failed"));
168
+ await expect(waitForPostgres(100)).rejects.toThrow("auth failed");
169
+ expect(pgState.query).not.toHaveBeenCalled();
170
+ expect(pgState.end).toHaveBeenCalledTimes(1);
171
+ });
172
+ });
173
+ });
package/types/dev.d.ts CHANGED
@@ -1,3 +1,4 @@
1
+ import type { Plugin } from "vite";
1
2
  export interface LookupTranspileModulesOptions {
2
3
  log?: boolean;
3
4
  }
@@ -8,5 +9,31 @@ export declare function lookupTranspileModules(packageDirs?: string[], { log }?:
8
9
  export declare function lookupTamaguiModules(packageDirs?: string[], { log }?: LookupTamaguiModulesOptions): any[];
9
10
  export declare function resolveConfig(keys?: string[]): Record<string, string | undefined>;
10
11
  export declare function lookupProjectRoot(): string;
12
+ /**
13
+ * Map every public/* workspace package (and its subpath exports) to its TS
14
+ * source. Without this, packages whose exports point at dist (e.g. table)
15
+ * resolve to stale builds that can reference since-moved dependencies.
16
+ *
17
+ * Shared by the web-extension and vscode-webview target configs (the
18
+ * pattern originated in apps/webext).
19
+ */
20
+ export declare function workspaceSourceAliases(workspaceRoot?: string): Record<string, string>;
21
+ /**
22
+ * one's client code imports ./vite/one-server-only.mjs, which pulls
23
+ * node:async_hooks and can't bundle for the browser. Declaring it rollup-
24
+ * `external` ships a literal node_modules import that can't resolve inside a
25
+ * packaged extension (this exact failure made the webext popup load blank).
26
+ * One publishes a no-op browser/native variant of the same module; redirect
27
+ * to it instead of externalizing.
28
+ */
29
+ export declare function oneServerOnlyBrowserStub(workspaceRoot?: string): Plugin;
30
+ /**
31
+ * expo-modules-core ships `src/ts-declarations/` files that contain only
32
+ * TypeScript type declarations. Rolldown incorrectly treats their
33
+ * `import { ... }` statements as value imports (because `// @ts-nocheck`
34
+ * prevents OXC from eliding them), then reports MISSING_EXPORT. Stub these
35
+ * type-only files with empty modules.
36
+ */
37
+ export declare function stubExpoTypeDeclarations(): Plugin;
11
38
  export * from "./wait";
12
39
  //# sourceMappingURL=dev.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"dev.d.ts","sourceRoot":"","sources":["../src/dev.ts"],"names":[],"mappings":"AAMA,MAAM,WAAW,6BAA6B;IAC5C,GAAG,CAAC,EAAE,OAAO,CAAC;CACf;AAED,MAAM,WAAW,2BAA2B;IAC1C,GAAG,CAAC,EAAE,OAAO,CAAC;CACf;AAED,wBAAgB,sBAAsB,CACpC,WAAW,CAAC,EAAE,MAAM,EAAE,EACtB,EAAE,GAAU,EAAE,GAAE,6BAAkC,SA0BnD;AAED,wBAAgB,oBAAoB,CAClC,WAAW,CAAC,EAAE,MAAM,EAAE,EACtB,EAAE,GAAU,EAAE,GAAE,2BAAgC,SA2BjD;AAED,wBAAgB,aAAa,CAAC,IAAI,GAAE,MAAM,EAAO,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAQrF;AAGD,wBAAgB,iBAAiB,WAYhC;AAED,cAAc,QAAQ,CAAC"}
1
+ {"version":3,"file":"dev.d.ts","sourceRoot":"","sources":["../src/dev.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAInC,MAAM,WAAW,6BAA6B;IAC5C,GAAG,CAAC,EAAE,OAAO,CAAC;CACf;AAED,MAAM,WAAW,2BAA2B;IAC1C,GAAG,CAAC,EAAE,OAAO,CAAC;CACf;AAED,wBAAgB,sBAAsB,CACpC,WAAW,CAAC,EAAE,MAAM,EAAE,EACtB,EAAE,GAAU,EAAE,GAAE,6BAAkC,SA0BnD;AAED,wBAAgB,oBAAoB,CAClC,WAAW,CAAC,EAAE,MAAM,EAAE,EACtB,EAAE,GAAU,EAAE,GAAE,2BAAgC,SA2BjD;AAED,wBAAgB,aAAa,CAAC,IAAI,GAAE,MAAM,EAAO,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAQrF;AAGD,wBAAgB,iBAAiB,WAYhC;AAED;;;;;;;GAOG;AACH,wBAAgB,sBAAsB,CAAC,aAAa,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CA8CrF;AAED;;;;;;;GAOG;AACH,wBAAgB,wBAAwB,CAAC,aAAa,CAAC,EAAE,MAAM,GAAG,MAAM,CAUvE;AAED;;;;;;GAMG;AACH,wBAAgB,wBAAwB,IAAI,MAAM,CASjD;AAED,cAAc,QAAQ,CAAC"}
@@ -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.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.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.esnext.array.d.ts","../../../node_modules/typescript/lib/lib.esnext.collection.d.ts","../../../node_modules/typescript/lib/lib.esnext.intl.d.ts","../../../node_modules/typescript/lib/lib.esnext.disposable.d.ts","../../../node_modules/typescript/lib/lib.esnext.promise.d.ts","../../../node_modules/typescript/lib/lib.esnext.decorators.d.ts","../../../node_modules/typescript/lib/lib.esnext.iterator.d.ts","../../../node_modules/typescript/lib/lib.esnext.float16.d.ts","../../../node_modules/typescript/lib/lib.esnext.error.d.ts","../../../node_modules/typescript/lib/lib.esnext.sharedmemory.d.ts","../../../node_modules/typescript/lib/lib.decorators.d.ts","../../../node_modules/typescript/lib/lib.decorators.legacy.d.ts","../../../node_modules/tslib/tslib.d.ts","../../../node_modules/@types/react/global.d.ts","../../../node_modules/csstype/index.d.ts","../../../node_modules/@types/react/index.d.ts","../../../node_modules/@types/react/jsx-runtime.d.ts","../node_modules/axios/index.d.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","../../../node_modules/pg-types/index.d.ts","../../../node_modules/pg-protocol/dist/messages.d.ts","../../../node_modules/pg-protocol/dist/serializer.d.ts","../../../node_modules/pg-protocol/dist/parser.d.ts","../../../node_modules/pg-protocol/dist/index.d.ts","../../../node_modules/@types/pg/lib/type-overrides.d.ts","../../../node_modules/@types/pg/index.d.ts","../src/wait.ts","../src/dev.ts","../src/index.ts","../../../node_modules/@vitest/pretty-format/dist/index.d.ts","../../../node_modules/@vitest/utils/dist/display.d.ts","../../../node_modules/@vitest/utils/dist/types.d.ts","../../../node_modules/@vitest/utils/dist/helpers.d.ts","../../../node_modules/@vitest/utils/dist/timers.d.ts","../../../node_modules/@vitest/utils/dist/index.d.ts","../../../node_modules/@vitest/utils/dist/types.d-bcelap-c.d.ts","../../../node_modules/@vitest/utils/dist/diff.d.ts","../../../node_modules/@vitest/utils/diff.d.ts","../../../node_modules/@vitest/runner/dist/tasks.d-bh0ijn67.d.ts","../../../node_modules/@vitest/runner/dist/index.d.ts","../../../node_modules/vitest/dist/chunks/traces.d.d2t_r8rx.d.ts","../../../node_modules/@vitest/snapshot/dist/environment.d-dojxxzv9.d.ts","../../../node_modules/@vitest/snapshot/dist/rawsnapshot.d-d_x3-62x.d.ts","../../../node_modules/@vitest/snapshot/dist/index.d.ts","../../../node_modules/vitest/dist/chunks/config.d.a1h_y6jt.d.ts","../../../node_modules/vitest/dist/chunks/environment.d.crsxczp1.d.ts","../../../node_modules/vitest/dist/chunks/rpc.d.b_8spu0w.d.ts","../../../node_modules/vitest/dist/chunks/worker.d.zphpo4yb.d.ts","../../../node_modules/vitest/dist/chunks/browser.d.bcoexmfg.d.ts","../../../node_modules/@vitest/spy/optional-types.d.ts","../../../node_modules/@vitest/spy/dist/index.d.ts","../../../node_modules/tinyrainbow/dist/index.d.ts","../../../node_modules/@standard-schema/spec/dist/index.d.ts","../../../node_modules/@types/deep-eql/index.d.ts","../../../node_modules/assertion-error/index.d.ts","../../../node_modules/@types/chai/index.d.ts","../../../node_modules/vitest/node_modules/@vitest/expect/dist/index.d.ts","../../../node_modules/@vitest/runner/dist/utils.d.ts","../../../node_modules/@vitest/runner/utils.d.ts","../../../node_modules/tinybench/dist/index.d.cts","../../../node_modules/vitest/dist/chunks/benchmark.d.daahlpsq.d.ts","../../../node_modules/vitest/dist/chunks/global.d.dvssrdq5.d.ts","../../../node_modules/vitest/optional-runtime-types.d.ts","../../../node_modules/@vitest/mocker/dist/types.d-bji5eawu.d.ts","../../../node_modules/@vitest/mocker/dist/index.d-b41z0auw.d.ts","../../../node_modules/@vitest/mocker/dist/index.d.ts","../../../node_modules/vitest/dist/chunks/suite.d.udjtyagw.d.ts","../../../node_modules/vitest/dist/chunks/evaluatedmodules.d.bxj5omdx.d.ts","../../../node_modules/vitest/dist/runners.d.ts","../../../node_modules/expect-type/dist/utils.d.ts","../../../node_modules/expect-type/dist/overloads.d.ts","../../../node_modules/expect-type/dist/branding.d.ts","../../../node_modules/expect-type/dist/messages.d.ts","../../../node_modules/expect-type/dist/index.d.ts","../../../node_modules/vitest/dist/index.d.ts","../src/wait.spec.ts","../../../node_modules/vite/types/hmrpayload.d.ts","../../../node_modules/vite/types/customevent.d.ts","../../../node_modules/vite/types/hot.d.ts","../../../node_modules/vite/types/importglob.d.ts","../../../node_modules/vite/types/importmeta.d.ts","../../../node_modules/vite/client.d.ts","../../../node_modules/@types/aria-query/index.d.ts","../../../node_modules/@testing-library/jest-dom/types/matchers.d.ts","../../../node_modules/@testing-library/jest-dom/types/vitest.d.ts","../../../node_modules/@testing-library/jest-dom/vitest.d.ts"],"fileIdsList":[[91,154,162,166,169,171,172,173,186],[91,154,162,166,169,171,172,173,186,275],[91,154,162,166,169,171,172,173,186,267,276,277],[91,154,162,166,169,171,172,173,186,277],[91,154,162,166,169,171,172,173,186,246,247],[91,151,152,154,162,166,169,171,172,173,186],[91,153,154,162,166,169,171,172,173,186],[154,162,166,169,171,172,173,186],[91,154,162,166,169,171,172,173,186,194],[91,154,155,160,162,165,166,169,171,172,173,175,186,191,203],[91,154,155,156,162,165,166,169,171,172,173,186],[91,154,157,162,166,169,171,172,173,186,204],[91,154,158,159,162,166,169,171,172,173,177,186],[91,154,159,162,166,169,171,172,173,186,191,200],[91,154,160,162,165,166,169,171,172,173,175,186],[91,153,154,161,162,166,169,171,172,173,186],[91,154,162,163,166,169,171,172,173,186],[91,154,162,164,165,166,169,171,172,173,186],[91,153,154,162,165,166,169,171,172,173,186],[91,154,162,165,166,167,169,171,172,173,186,191,203],[91,154,162,165,166,167,169,171,172,173,186,191,194],[91,141,154,162,165,166,168,169,171,172,173,175,186,191,203],[91,154,162,165,166,168,169,171,172,173,175,186,191,200,203],[91,154,162,166,168,169,170,171,172,173,186,191,200,203],[89,90,91,92,93,94,95,96,97,98,99,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210],[91,154,162,165,166,169,171,172,173,186],[91,154,162,166,169,171,173,186],[91,154,162,166,169,171,172,173,174,186,203],[91,154,162,165,166,169,171,172,173,175,186,191],[91,154,162,166,169,171,172,173,177,186],[91,154,162,166,169,171,172,173,178,186],[91,154,162,165,166,169,171,172,173,181,186],[91,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210],[91,154,162,166,169,171,172,173,183,186],[91,154,162,166,169,171,172,173,184,186],[91,154,159,162,166,169,171,172,173,175,186,194],[91,154,162,165,166,169,171,172,173,186,187],[91,154,162,166,169,171,172,173,186,188,204,207],[91,154,162,165,166,169,171,172,173,186,191,193,194],[91,154,162,166,169,171,172,173,186,192,194],[91,154,162,166,169,171,172,173,186,194,204],[91,154,162,166,169,171,172,173,186,195],[91,151,154,162,166,169,171,172,173,186,191,197,203],[91,154,162,166,169,171,172,173,186,191,196],[91,154,162,165,166,169,171,172,173,186,198,199],[91,154,162,166,169,171,172,173,186,198,199],[91,154,159,162,166,169,171,172,173,175,186,191,200],[91,154,162,166,169,171,172,173,186,201],[91,154,162,166,169,171,172,173,175,186,202],[91,154,162,166,168,169,171,172,173,184,186,203],[91,154,162,166,169,171,172,173,186,204,205],[91,154,159,162,166,169,171,172,173,186,205],[91,154,162,166,169,171,172,173,186,191,206],[91,154,162,166,169,171,172,173,174,186,207],[91,154,162,166,169,171,172,173,186,208],[91,154,157,162,166,169,171,172,173,186],[91,154,159,162,166,169,171,172,173,186],[91,154,162,166,169,171,172,173,186,204],[91,141,154,162,166,169,171,172,173,186],[91,154,162,166,169,171,172,173,186,203],[91,154,162,166,169,171,172,173,186,209],[91,154,162,166,169,171,172,173,181,186],[91,154,162,166,169,171,172,173,186,199],[91,141,154,162,165,166,167,169,171,172,173,181,186,191,194,203,206,207,209],[91,154,162,166,169,171,172,173,186,191,210],[91,154,162,165,166,169,171,172,173,186,191,200,211,212,213,216,217,218],[91,154,162,166,169,171,172,173,186,218],[84,85,91,154,162,166,169,171,172,173,186],[86,91,154,162,166,169,171,172,173,186],[91,154,162,166,169,171,172,173,186,256],[91,154,162,166,169,171,172,173,186,256,257],[91,154,162,166,169,171,172,173,186,227,230,231],[91,154,162,166,169,171,172,173,186,227,230],[91,154,162,166,169,171,172,173,186,250],[91,154,162,166,169,171,172,173,186,227],[91,154,162,166,169,171,172,173,186,222,227,234,235],[91,154,162,166,169,171,172,173,186,222,227,234],[91,154,162,166,169,171,172,173,186,242],[91,154,162,166,169,171,172,173,186,229],[91,154,162,166,169,171,172,173,186,222,228],[91,154,162,166,169,171,172,173,186,222],[91,154,162,166,169,171,172,173,186,224],[91,154,162,166,169,171,172,173,186,222,223,224,225,226],[91,154,162,166,169,171,172,173,186,262,263],[91,154,162,166,169,171,172,173,186,262,263,264,265],[91,154,162,166,169,171,172,173,186,262,264],[91,154,162,166,169,171,172,173,186,262],[91,154,162,166,169,171,172,173,186,211,213,214,215],[91,154,162,166,169,171,172,173,186,211],[91,154,162,166,169,171,172,173,186,191,211,213],[91,106,109,112,113,154,162,166,169,171,172,173,186,203],[91,109,154,162,166,169,171,172,173,186,191,203],[91,109,113,154,162,166,169,171,172,173,186,203],[91,154,162,166,169,171,172,173,186,191],[91,103,154,162,166,169,171,172,173,186],[91,107,154,162,166,169,171,172,173,186],[91,105,106,109,154,162,166,169,171,172,173,186,203],[91,154,162,166,169,171,172,173,175,186,200],[91,103,154,162,166,169,171,172,173,186,211],[91,105,109,154,162,166,169,171,172,173,175,186,203],[91,100,101,102,104,108,154,162,165,166,169,171,172,173,186,191,203],[91,109,118,126,154,162,166,169,171,172,173,186],[91,101,107,154,162,166,169,171,172,173,186],[91,109,135,136,154,162,166,169,171,172,173,186],[91,101,104,109,154,162,166,169,171,172,173,186,194,203,211],[91,109,154,162,166,169,171,172,173,186],[91,105,109,154,162,166,169,171,172,173,186,203],[91,100,154,162,166,169,171,172,173,186],[91,103,104,105,107,108,109,110,111,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,136,137,138,139,140,154,162,166,169,171,172,173,186],[91,109,128,131,154,162,166,169,171,172,173,186],[91,109,118,119,120,154,162,166,169,171,172,173,186],[91,107,109,119,121,154,162,166,169,171,172,173,186],[91,108,154,162,166,169,171,172,173,186],[91,101,103,109,154,162,166,169,171,172,173,186],[91,109,113,119,121,154,162,166,169,171,172,173,186],[91,113,154,162,166,169,171,172,173,186],[91,107,109,112,154,162,166,169,171,172,173,186,203],[91,101,105,109,118,154,162,166,169,171,172,173,186],[91,109,128,154,162,166,169,171,172,173,186],[91,121,154,162,166,169,171,172,173,186],[91,103,109,135,154,162,166,169,171,172,173,186,194,209,211],[91,154,162,166,169,171,172,173,186,273],[91,154,162,166,169,171,172,173,186,269],[91,154,162,166,169,171,172,173,186,270],[91,154,162,166,169,171,172,173,186,271,272],[91,154,162,166,169,171,172,173,186,232,251,252,254],[91,154,162,166,169,171,172,173,186,232,233,240,254],[91,154,162,166,169,171,172,173,186,222,230,232,233,236,254],[91,154,162,166,169,171,172,173,186,222,232,233,236,249,253,254],[91,154,162,166,169,171,172,173,186,232,233,236,254],[91,154,162,166,169,171,172,173,186,232,251,252,253,254],[91,154,162,166,169,171,172,173,186,232,237,238,239,254],[91,154,162,166,169,171,172,173,186,222,227,230,232,233,236,237,238,239,240,241,243,249,251,252,253,254,255,258,259,260,261,266],[91,154,162,166,169,171,172,173,186,222,230,232,233,236,237,251,252,253,254,259],[91,154,162,166,169,171,172,173,186,230,243,244,245,248],[83,87,91,154,155,162,166,169,171,172,173,178,186,219],[83,87,91,154,162,166,169,171,172,173,186],[83,87,91,154,162,166,169,171,172,173,186,219,267,277],[83,87,88,91,154,162,166,169,171,172,173,186,218]],"fileInfos":[{"version":"c430d44666289dae81f30fa7b2edebf186ecc91a2d4c71266ea6ae76388792e1","affectsGlobalScope":true,"impliedFormat":1},{"version":"45b7ab580deca34ae9729e97c13cfd999df04416a79116c3bfb483804f85ded4","impliedFormat":1},{"version":"3facaf05f0c5fc569c5649dd359892c98a85557e3e0c847964caeb67076f4d75","impliedFormat":1},{"version":"e44bb8bbac7f10ecc786703fe0a6a4b952189f908707980ba8f3c8975a760962","impliedFormat":1},{"version":"5e1c4c362065a6b95ff952c0eab010f04dcd2c3494e813b493ecfd4fcb9fc0d8","impliedFormat":1},{"version":"68d73b4a11549f9c0b7d352d10e91e5dca8faa3322bfb77b661839c42b1ddec7","impliedFormat":1},{"version":"5efce4fc3c29ea84e8928f97adec086e3dc876365e0982cc8479a07954a3efd4","impliedFormat":1},{"version":"feecb1be483ed332fad555aff858affd90a48ab19ba7272ee084704eb7167569","impliedFormat":1},{"version":"ee7bad0c15b58988daa84371e0b89d313b762ab83cb5b31b8a2d1162e8eb41c2","impliedFormat":1},{"version":"27bdc30a0e32783366a5abeda841bc22757c1797de8681bbe81fbc735eeb1c10","impliedFormat":1},{"version":"8fd575e12870e9944c7e1d62e1f5a73fcf23dd8d3a321f2a2c74c20d022283fe","impliedFormat":1},{"version":"2ab096661c711e4a81cc464fa1e6feb929a54f5340b46b0a07ac6bbf857471f0","impliedFormat":1},{"version":"080941d9f9ff9307f7e27a83bcd888b7c8270716c39af943532438932ec1d0b9","affectsGlobalScope":true,"impliedFormat":1},{"version":"2e80ee7a49e8ac312cc11b77f1475804bee36b3b2bc896bead8b6e1266befb43","affectsGlobalScope":true,"impliedFormat":1},{"version":"c57796738e7f83dbc4b8e65132f11a377649c00dd3eee333f672b8f0a6bea671","affectsGlobalScope":true,"impliedFormat":1},{"version":"dc2df20b1bcdc8c2d34af4926e2c3ab15ffe1160a63e58b7e09833f616efff44","affectsGlobalScope":true,"impliedFormat":1},{"version":"515d0b7b9bea2e31ea4ec968e9edd2c39d3eebf4a2d5cbd04e88639819ae3b71","affectsGlobalScope":true,"impliedFormat":1},{"version":"0559b1f683ac7505ae451f9a96ce4c3c92bdc71411651ca6ddb0e88baaaad6a3","affectsGlobalScope":true,"impliedFormat":1},{"version":"0dc1e7ceda9b8b9b455c3a2d67b0412feab00bd2f66656cd8850e8831b08b537","affectsGlobalScope":true,"impliedFormat":1},{"version":"ce691fb9e5c64efb9547083e4a34091bcbe5bdb41027e310ebba8f7d96a98671","affectsGlobalScope":true,"impliedFormat":1},{"version":"8d697a2a929a5fcb38b7a65594020fcef05ec1630804a33748829c5ff53640d0","affectsGlobalScope":true,"impliedFormat":1},{"version":"4ff2a353abf8a80ee399af572debb8faab2d33ad38c4b4474cff7f26e7653b8d","affectsGlobalScope":true,"impliedFormat":1},{"version":"fb0f136d372979348d59b3f5020b4cdb81b5504192b1cacff5d1fbba29378aa1","affectsGlobalScope":true,"impliedFormat":1},{"version":"d15bea3d62cbbdb9797079416b8ac375ae99162a7fba5de2c6c505446486ac0a","affectsGlobalScope":true,"impliedFormat":1},{"version":"68d18b664c9d32a7336a70235958b8997ebc1c3b8505f4f1ae2b7e7753b87618","affectsGlobalScope":true,"impliedFormat":1},{"version":"eb3d66c8327153d8fa7dd03f9c58d351107fe824c79e9b56b462935176cdf12a","affectsGlobalScope":true,"impliedFormat":1},{"version":"38f0219c9e23c915ef9790ab1d680440d95419ad264816fa15009a8851e79119","affectsGlobalScope":true,"impliedFormat":1},{"version":"69ab18c3b76cd9b1be3d188eaf8bba06112ebbe2f47f6c322b5105a6fbc45a2e","affectsGlobalScope":true,"impliedFormat":1},{"version":"a680117f487a4d2f30ea46f1b4b7f58bef1480456e18ba53ee85c2746eeca012","affectsGlobalScope":true,"impliedFormat":1},{"version":"2f11ff796926e0832f9ae148008138ad583bd181899ab7dd768a2666700b1893","affectsGlobalScope":true,"impliedFormat":1},{"version":"4de680d5bb41c17f7f68e0419412ca23c98d5749dcaaea1896172f06435891fc","affectsGlobalScope":true,"impliedFormat":1},{"version":"954296b30da6d508a104a3a0b5d96b76495c709785c1d11610908e63481ee667","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac9538681b19688c8eae65811b329d3744af679e0bdfa5d842d0e32524c73e1c","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a969edff4bd52585473d24995c5ef223f6652d6ef46193309b3921d65dd4376","affectsGlobalScope":true,"impliedFormat":1},{"version":"9e9fbd7030c440b33d021da145d3232984c8bb7916f277e8ffd3dc2e3eae2bdb","affectsGlobalScope":true,"impliedFormat":1},{"version":"811ec78f7fefcabbda4bfa93b3eb67d9ae166ef95f9bff989d964061cbf81a0c","affectsGlobalScope":true,"impliedFormat":1},{"version":"717937616a17072082152a2ef351cb51f98802fb4b2fdabd32399843875974ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"d7e7d9b7b50e5f22c915b525acc5a49a7a6584cf8f62d0569e557c5cfc4b2ac2","affectsGlobalScope":true,"impliedFormat":1},{"version":"71c37f4c9543f31dfced6c7840e068c5a5aacb7b89111a4364b1d5276b852557","affectsGlobalScope":true,"impliedFormat":1},{"version":"576711e016cf4f1804676043e6a0a5414252560eb57de9faceee34d79798c850","affectsGlobalScope":true,"impliedFormat":1},{"version":"89c1b1281ba7b8a96efc676b11b264de7a8374c5ea1e6617f11880a13fc56dc6","affectsGlobalScope":true,"impliedFormat":1},{"version":"74f7fa2d027d5b33eb0471c8e82a6c87216223181ec31247c357a3e8e2fddc5b","affectsGlobalScope":true,"impliedFormat":1},{"version":"d6d7ae4d1f1f3772e2a3cde568ed08991a8ae34a080ff1151af28b7f798e22ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"063600664504610fe3e99b717a1223f8b1900087fab0b4cad1496a114744f8df","affectsGlobalScope":true,"impliedFormat":1},{"version":"934019d7e3c81950f9a8426d093458b65d5aff2c7c1511233c0fd5b941e608ab","affectsGlobalScope":true,"impliedFormat":1},{"version":"52ada8e0b6e0482b728070b7639ee42e83a9b1c22d205992756fe020fd9f4a47","affectsGlobalScope":true,"impliedFormat":1},{"version":"3bdefe1bfd4d6dee0e26f928f93ccc128f1b64d5d501ff4a8cf3c6371200e5e6","affectsGlobalScope":true,"impliedFormat":1},{"version":"59fb2c069260b4ba00b5643b907ef5d5341b167e7d1dbf58dfd895658bda2867","affectsGlobalScope":true,"impliedFormat":1},{"version":"639e512c0dfc3fad96a84caad71b8834d66329a1f28dc95e3946c9b58176c73a","affectsGlobalScope":true,"impliedFormat":1},{"version":"368af93f74c9c932edd84c58883e736c9e3d53cec1fe24c0b0ff451f529ceab1","affectsGlobalScope":true,"impliedFormat":1},{"version":"af3dd424cf267428f30ccfc376f47a2c0114546b55c44d8c0f1d57d841e28d74","affectsGlobalScope":true,"impliedFormat":1},{"version":"995c005ab91a498455ea8dfb63aa9f83fa2ea793c3d8aa344be4a1678d06d399","affectsGlobalScope":true,"impliedFormat":1},{"version":"959d36cddf5e7d572a65045b876f2956c973a586da58e5d26cde519184fd9b8a","affectsGlobalScope":true,"impliedFormat":1},{"version":"965f36eae237dd74e6cca203a43e9ca801ce38824ead814728a2807b1910117d","affectsGlobalScope":true,"impliedFormat":1},{"version":"3925a6c820dcb1a06506c90b1577db1fdbf7705d65b62b99dce4be75c637e26b","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a3d63ef2b853447ec4f749d3f368ce642264246e02911fcb1590d8c161b8005","affectsGlobalScope":true,"impliedFormat":1},{"version":"8cdf8847677ac7d20486e54dd3fcf09eda95812ac8ace44b4418da1bbbab6eb8","affectsGlobalScope":true,"impliedFormat":1},{"version":"8444af78980e3b20b49324f4a16ba35024fef3ee069a0eb67616ea6ca821c47a","affectsGlobalScope":true,"impliedFormat":1},{"version":"3287d9d085fbd618c3971944b65b4be57859f5415f495b33a6adc994edd2f004","affectsGlobalScope":true,"impliedFormat":1},{"version":"b4b67b1a91182421f5df999988c690f14d813b9850b40acd06ed44691f6727ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"df83c2a6c73228b625b0beb6669c7ee2a09c914637e2d35170723ad49c0f5cd4","affectsGlobalScope":true,"impliedFormat":1},{"version":"436aaf437562f276ec2ddbee2f2cdedac7664c1e4c1d2c36839ddd582eeb3d0a","affectsGlobalScope":true,"impliedFormat":1},{"version":"8e3c06ea092138bf9fa5e874a1fdbc9d54805d074bee1de31b99a11e2fec239d","affectsGlobalScope":true,"impliedFormat":1},{"version":"87dc0f382502f5bbce5129bdc0aea21e19a3abbc19259e0b43ae038a9fc4e326","affectsGlobalScope":true,"impliedFormat":1},{"version":"b1cb28af0c891c8c96b2d6b7be76bd394fddcfdb4709a20ba05a7c1605eea0f9","affectsGlobalScope":true,"impliedFormat":1},{"version":"2fef54945a13095fdb9b84f705f2b5994597640c46afeb2ce78352fab4cb3279","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac77cb3e8c6d3565793eb90a8373ee8033146315a3dbead3bde8db5eaf5e5ec6","affectsGlobalScope":true,"impliedFormat":1},{"version":"56e4ed5aab5f5920980066a9409bfaf53e6d21d3f8d020c17e4de584d29600ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"4ece9f17b3866cc077099c73f4983bddbcb1dc7ddb943227f1ec070f529dedd1","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a6282c8827e4b9a95f4bf4f5c205673ada31b982f50572d27103df8ceb8013c","affectsGlobalScope":true,"impliedFormat":1},{"version":"1c9319a09485199c1f7b0498f2988d6d2249793ef67edda49d1e584746be9032","affectsGlobalScope":true,"impliedFormat":1},{"version":"e3a2a0cee0f03ffdde24d89660eba2685bfbdeae955a6c67e8c4c9fd28928eeb","affectsGlobalScope":true,"impliedFormat":1},{"version":"811c71eee4aa0ac5f7adf713323a5c41b0cf6c4e17367a34fbce379e12bbf0a4","affectsGlobalScope":true,"impliedFormat":1},{"version":"51ad4c928303041605b4d7ae32e0c1ee387d43a24cd6f1ebf4a2699e1076d4fa","affectsGlobalScope":true,"impliedFormat":1},{"version":"60037901da1a425516449b9a20073aa03386cce92f7a1fd902d7602be3a7c2e9","affectsGlobalScope":true,"impliedFormat":1},{"version":"d4b1d2c51d058fc21ec2629fff7a76249dec2e36e12960ea056e3ef89174080f","affectsGlobalScope":true,"impliedFormat":1},{"version":"22adec94ef7047a6c9d1af3cb96be87a335908bf9ef386ae9fd50eeb37f44c47","affectsGlobalScope":true,"impliedFormat":1},{"version":"196cb558a13d4533a5163286f30b0509ce0210e4b316c56c38d4c0fd2fb38405","affectsGlobalScope":true,"impliedFormat":1},{"version":"73f78680d4c08509933daf80947902f6ff41b6230f94dd002ae372620adb0f60","affectsGlobalScope":true,"impliedFormat":1},{"version":"c5239f5c01bcfa9cd32f37c496cf19c61d69d37e48be9de612b541aac915805b","affectsGlobalScope":true,"impliedFormat":1},{"version":"8e7f8264d0fb4c5339605a15daadb037bf238c10b654bb3eee14208f860a32ea","affectsGlobalScope":true,"impliedFormat":1},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true,"impliedFormat":1},{"version":"a6a5253138c5432c68a1510c70fe78a644fe2e632111ba778e1978010d6edfec","impliedFormat":1},{"version":"7e29f41b158de217f94cb9676bf9cbd0cd9b5a46e1985141ed36e075c52bf6ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac51dd7d31333793807a6abaa5ae168512b6131bd41d9c5b98477fc3b7800f9f","impliedFormat":1},{"version":"dc0a7f107690ee5cd8afc8dbf05c4df78085471ce16bdd9881642ec738bc81fe","impliedFormat":1},{"version":"42c169fb8c2d42f4f668c624a9a11e719d5d07dacbebb63cbcf7ef365b0a75b3","impliedFormat":1},{"version":"343ce982b5aa0070e239051c245851c028086edd0fc2ab5e4ccec46c1e48f911","impliedFormat":99},{"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":"f9713757bcdfa4d58b48c0fb249e752c94a3eee8bf4532b906094246ac49ef88","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":"4967529644e391115ca5592184d4b63980569adf60ee685f968fd59ab1557188","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":"eab2f3179607acb3d44b2db2a76dd7d621c5039b145dc160a1ee733963f9d2f5","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},{"version":"f60e3e3060207ac982da13363181fd7ee4beecc19a7c569f0d6bb034331066c2","impliedFormat":1},{"version":"17230b34bb564a3a2e36f9d3985372ccab4ad1722df2c43f7c5c2b553f68e5db","impliedFormat":1},{"version":"6e5c9272f6b3783be7bdddaf207cccdb8e033be3d14c5beacc03ae9d27d50929","impliedFormat":1},{"version":"21ac4cf3f8d8c6e1201cb31f600be708c9a37867fc5c73b7ccf80560fae591c8","impliedFormat":1},{"version":"0dfe35191a04e8f9dc7caeb9f52f2ee07402736563d12cbccd15fb5f31ac877f","impliedFormat":1},{"version":"798367363a3274220cbed839b883fe2f52ba7197b25e8cb2ac59c1e1fd8af6b7","impliedFormat":1},{"version":"2636a309ed87d6876728d9aca846a76b372cf2a21a4fdf9940a82a2dd86687d0","impliedFormat":1},{"version":"d699041384a6c9fb5195ae4670682fb3599df388a3e57e80026a151831e6e3a7","signature":"63982fd974b5bf6b1bddad4edc68752af8ba8ea383f04cc4259718d216c16b0f"},{"version":"5961b60186c72d7891c55a035481a32ad8c149c68150030fb90132b914b595fb","signature":"43b609b15e4cc2a747a696d0c824a1cb663571b921ceaf05616b74919f037c90"},{"version":"450f0af4f4c1ecc4c7180f2e364c8a59bfed69dd350fb6b47bce8641c2a37786","signature":"d889ca31ecf859432c9e675cf056009a227f839856a8cac58a70875e2d619a8b"},{"version":"3a582c6e8906f5b094ccf0de6cc6f4f8a54b05a34f52517aba5c9c7f704f6b28","impliedFormat":99},{"version":"0528f6d21f7a02d4092895090d2dd86104bd5a3e79eced96d5a1a7dd90943d17","impliedFormat":99},{"version":"b5ce343886d23392be9c8280e9f24a87f1d7d3667f6672c2fe4aa61fa4ece7d4","impliedFormat":99},{"version":"72ce5b734c05da85c85a6f6dc05823b051d6aa41acaedeeb1d17c72f3b4efa72","impliedFormat":99},{"version":"b0857bb28fd5236ace84280f79a25093f919fd0eff13e47cc26ea03de60a7294","impliedFormat":99},{"version":"5e43e0824f10cd8c48e7a8c5c673638488925a12c31f0f9e0957965c290eb14c","impliedFormat":99},{"version":"ef13c73d6157a32933c612d476c1524dd674cf5b9a88571d7d6a0d147544d529","impliedFormat":99},{"version":"3b0a56d056d81a011e484b9c05d5e430711aaecd561a788bad1d0498aad782c7","impliedFormat":99},{"version":"05c7aef6a4e496b93c2e682cced8903c0dfe6340d04f3fe616176e2782193435","impliedFormat":99},{"version":"9443967db823b66d1682be7fc66392be7c7924e10c3e54900f456341e94591a6","impliedFormat":99},{"version":"424f71d1fae96ac2e878af92345bb87bea1d29f757228fbc190133b305643f2c","impliedFormat":99},{"version":"61bb64660ee150f3ab618340e15cca0a81664801bede7c966ca0eca3a952fe63","impliedFormat":99},{"version":"42a12f2faa483c9b48195ed794d22698162274e755f6e07219c2351c4f08d732","impliedFormat":99},{"version":"ec0c42bb0f465e4993f2bc68a6ce9df9a2dcbc7b83e21748f82f1b69561938e3","impliedFormat":99},{"version":"f50ff37a9cbbe74475f426474d9827083c7c2c138a954d28f1690df338f69291","impliedFormat":99},{"version":"61fd6c17235d530c40f543dd7c40afab091d91c1ef890baeed30db6d82b04b28","impliedFormat":99},{"version":"bcbd3becd08b4515225880abea0dbfbbf0d1181ce3af8f18f72f61edbe4febfb","impliedFormat":99},{"version":"091767bc841f937654ed597d49e023ed59850355e746ae1a6f20ab31076ee1fb","impliedFormat":99},{"version":"19c6d6135af59693698d384050b45a8a049493500add442f58e4bd7c8a255ab6","impliedFormat":99},{"version":"6a0dba12d55314638a8c51108b20fe2f68f1364a619d098918bda91c22dec154","impliedFormat":99},{"version":"c76c02846ba7d40b9b3488f0e8d75d02cbdee2f0bc5fcd55dd3bd2e1457646ea","impliedFormat":99},{"version":"4ead13a482c539b77394b2a97e3b877b809eac596390371cea490286f53b996a","impliedFormat":99},{"version":"06db2f8ba1d1dfacf04529cb731081ab23f133f29c7608ebdfbcab356996827c","impliedFormat":99},{"version":"bdd14f07b4eca0b4b5203b85b8dbc4d084c749fa590bee5ea613e1641dcd3b29","impliedFormat":99},{"version":"427fe2004642504828c1476d0af4270e6ad4db6de78c0b5da3e4c5ca95052a99","impliedFormat":1},{"version":"2eeffcee5c1661ddca53353929558037b8cf305ffb86a803512982f99bcab50d","impliedFormat":99},{"version":"9afb4cb864d297e4092a79ee2871b5d3143ea14153f62ef0bb04ede25f432030","affectsGlobalScope":true,"impliedFormat":99},{"version":"5c935b7fc4ddc1410ea1cd7cd4e35ed106a6e4920dd27a9480a40fd224359dc3","affectsGlobalScope":true,"impliedFormat":99},{"version":"ed9bb55ddcbebd5cb3eee991f57ff21438546ee40ee1c310281bd12a6c7cf65b","impliedFormat":99},{"version":"e666e31d323fef5642f87db0da48a83e58f0aaf9e3823e87eabd8ec7e0441a36","impliedFormat":99},{"version":"69bf2422313487956e4dacf049f30cb91b34968912058d244cb19e4baa24da97","impliedFormat":1},{"version":"6987dfb4b0c4e02112cc4e548e7a77b3d9ddfeffa8c8a2db13ceac361a4567d9","impliedFormat":99},{"version":"4ffba3c5848b4fe62ee59b754fd5f256ad9656a0db6d37b9a2a8cb40dfc7ac21","impliedFormat":99},{"version":"c76c02846ba7d40b9b3488f0e8d75d02cbdee2f0bc5fcd55dd3bd2e1457646ea","impliedFormat":99},{"version":"5e2ba3d18d78aebbde1f34bde356e41e9c76eeaeaeee56a37036596a9eff4211","impliedFormat":99},{"version":"8280ae8ccc0493b32d1742d585357ab9f0a508ea050af25a5a20d64010d0a5cf","impliedFormat":99},{"version":"7adfd9f9056ecd4ae6c65fde2a98654960c662714c73f048478959d04c09e144","impliedFormat":99},{"version":"32b35cf0dc3a1b1a7118b61c34ce2ad1a29695851679f9ec34e0776f2ece2a69","impliedFormat":99},{"version":"b413fbc6658fe2774f8bf9a15cf4c53e586fc38a2d5256b3b9647da242c14389","impliedFormat":99},{"version":"59e5e964b84fdb2378e9455e4e59405030e4ed2b4c6f891ce395f17796af3cbb","impliedFormat":99},{"version":"c30a41267fc04c6518b17e55dcb2b810f267af4314b0b6d7df1c33a76ce1b330","impliedFormat":1},{"version":"72422d0bac4076912385d0c10911b82e4694fc106e2d70added091f88f0824ba","impliedFormat":1},{"version":"da251b82c25bee1d93f9fd80c5a61d945da4f708ca21285541d7aff83ecb8200","impliedFormat":1},{"version":"64db14db2bf37ac089766fdb3c7e1160fabc10e9929bc2deeede7237e4419fc8","impliedFormat":1},{"version":"98b94085c9f78eba36d3d2314affe973e8994f99864b8708122750788825c771","impliedFormat":1},{"version":"90ba95a763101bb61b8a799731a2ed60b5016b8135c1a2d5186862d4b534d4a1","impliedFormat":99},{"version":"a93ad8968485f6103021c115bd63bacdb1ea2a1e3e9768039849e2e55ec233aa","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"3b89216a7e38a454985ad17bb2ff85792837dc812f2a89fa5f60ad0a2e216fa7","impliedFormat":99},{"version":"82179358c2d9d7347f1602dc9300039a2250e483137b38ebf31d4d2e5519c181","impliedFormat":99},{"version":"4e003c868b0d8f8ad200b96cbc653e18e513fa23e1c19c4fe3cc25d4394efc47","impliedFormat":99},{"version":"59f8dc89b9e724a6a667f52cdf4b90b6816ae6c9842ce176d38fcc973669009e","affectsGlobalScope":true,"impliedFormat":99},{"version":"72429cda84a47f092a3bf777bbc4ece9dda492fe0f02324aa7f197f3800089c6","affectsGlobalScope":true,"impliedFormat":99},{"version":"c8da07c75bdc3ff36752f3f33f2beb000a78a02aced96ce70ca6e807072eb913","affectsGlobalScope":true,"impliedFormat":99},{"version":"ae77d81a5541a8abb938a0efedf9ac4bea36fb3a24cc28cfa11c598863aba571","impliedFormat":1},{"version":"f329dfad7970297cbf07ddc8fce2ad4a24e2a3855917c661922ef86eb24dd1f1","impliedFormat":1},{"version":"480f05e466e86ee6c80af99695d90079f9e2956a4986e930ebd3d578688ff05c","impliedFormat":1},{"version":"c91f5e71f5332429dcfd2a2dd661535dffd8205aebb9c8a905647ff140e9b995","impliedFormat":1}],"root":[[219,221],268],"options":{"allowJs":false,"allowSyntheticDefaultImports":true,"composite":true,"declaration":true,"declarationMap":true,"downlevelIteration":true,"emitDeclarationOnly":true,"esModuleInterop":true,"importHelpers":true,"jsx":4,"module":99,"noEmitOnError":true,"noImplicitAny":false,"noImplicitReturns":false,"noUnusedLocals":false,"noUnusedParameters":false,"outDir":"./","preserveConstEnums":true,"removeComments":false,"rootDir":"../src","skipLibCheck":true,"sourceMap":true,"strict":true,"strictNullChecks":true,"target":7,"tsBuildInfoFile":"./.tsbuildinfo"},"referencedMap":[[245,1],[276,2],[277,3],[278,4],[275,1],[248,5],[246,1],[151,6],[152,6],[153,7],[91,8],[154,9],[155,10],[156,11],[89,1],[157,12],[158,13],[159,14],[160,15],[161,16],[162,17],[163,17],[164,18],[165,19],[166,20],[167,21],[92,1],[90,1],[168,22],[169,23],[170,24],[211,25],[171,26],[172,27],[173,26],[174,28],[175,29],[177,30],[178,31],[179,31],[180,31],[181,32],[182,33],[183,34],[184,35],[185,36],[186,37],[187,37],[188,38],[189,1],[190,1],[191,39],[192,40],[193,39],[194,41],[195,42],[196,43],[197,44],[198,45],[199,46],[200,47],[201,48],[202,49],[203,50],[204,51],[205,52],[206,53],[207,54],[208,55],[93,26],[94,1],[95,56],[96,57],[97,1],[98,58],[99,1],[142,59],[143,60],[144,61],[145,61],[146,62],[147,1],[148,9],[149,63],[150,60],[209,64],[210,65],[218,66],[217,67],[84,1],[86,68],[87,69],[257,70],[258,71],[256,1],[222,1],[232,72],[231,73],[250,72],[251,74],[234,75],[236,76],[235,77],[243,78],[242,1],[230,79],[229,80],[223,81],[225,82],[227,83],[226,1],[228,81],[224,1],[247,1],[176,1],[85,1],[264,84],[266,85],[265,86],[263,87],[262,1],[216,88],[213,89],[215,90],[214,1],[212,1],[252,1],[244,1],[83,1],[81,1],[82,1],[13,1],[14,1],[16,1],[15,1],[2,1],[17,1],[18,1],[19,1],[20,1],[21,1],[22,1],[23,1],[24,1],[3,1],[25,1],[26,1],[4,1],[27,1],[31,1],[28,1],[29,1],[30,1],[32,1],[33,1],[34,1],[5,1],[35,1],[36,1],[37,1],[38,1],[6,1],[42,1],[39,1],[40,1],[41,1],[43,1],[7,1],[44,1],[49,1],[50,1],[45,1],[46,1],[47,1],[48,1],[8,1],[54,1],[51,1],[52,1],[53,1],[55,1],[9,1],[56,1],[57,1],[58,1],[60,1],[59,1],[61,1],[62,1],[10,1],[63,1],[64,1],[65,1],[11,1],[66,1],[67,1],[68,1],[69,1],[70,1],[1,1],[71,1],[72,1],[12,1],[76,1],[74,1],[79,1],[78,1],[73,1],[77,1],[75,1],[80,1],[118,91],[130,92],[115,93],[131,94],[140,95],[106,96],[107,97],[105,98],[139,89],[134,99],[138,100],[109,101],[127,102],[108,103],[137,104],[103,105],[104,99],[110,106],[111,1],[117,107],[114,106],[101,108],[141,109],[132,110],[121,111],[120,106],[122,112],[125,113],[119,114],[123,115],[135,89],[112,116],[113,117],[126,118],[102,94],[129,119],[128,106],[116,117],[124,120],[133,1],[100,1],[136,121],[274,122],[270,123],[269,1],[271,124],[272,1],[273,125],[253,126],[241,127],[237,128],[238,75],[260,1],[254,129],[239,130],[259,131],[233,1],[240,132],[267,133],[261,134],[249,135],[255,1],[88,1],[220,136],[221,137],[268,138],[219,139]],"latestChangedDtsFile":"./wait.spec.d.ts","version":"5.9.3"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=wait.spec.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"wait.spec.d.ts","sourceRoot":"","sources":["../src/wait.spec.ts"],"names":[],"mappings":""}