@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 +48 -0
- package/lib/dev.cjs +88 -4
- package/lib/dev.mjs +85 -4
- package/package.json +9 -7
- package/src/dev.spec.ts +139 -0
- package/src/dev.ts +95 -0
- package/src/waitLoops.spec.ts +173 -0
- package/types/dev.d.ts +27 -0
- package/types/dev.d.ts.map +1 -1
- package/types/.tsbuildinfo +0 -1
- package/types/wait.spec.d.ts +0 -2
- package/types/wait.spec.d.ts.map +0 -1
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[
|
|
6628
|
-
else codepoint = overflow[
|
|
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[
|
|
6601
|
-
else codepoint = overflow[
|
|
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
|
|
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
|
|
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.
|
|
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.
|
|
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 -
|
|
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
|
}
|
package/src/dev.spec.ts
ADDED
|
@@ -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
|
package/types/dev.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dev.d.ts","sourceRoot":"","sources":["../src/dev.ts"],"names":[],"mappings":"
|
|
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"}
|
package/types/.tsbuildinfo
DELETED
|
@@ -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"}
|
package/types/wait.spec.d.ts
DELETED
package/types/wait.spec.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"wait.spec.d.ts","sourceRoot":"","sources":["../src/wait.spec.ts"],"names":[],"mappings":""}
|