doc-detective 4.35.0 → 4.36.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/dist/common/src/schemas/schemas.json +337 -337
- package/dist/common/src/types/generated/closeSurface_v3.d.ts +2 -2
- package/dist/common/src/types/generated/screenshot_v3.d.ts +1 -1
- package/dist/common/src/types/generated/step_v3.d.ts +6 -6
- package/dist/common/src/types/generated/surface_v3.d.ts +1 -1
- package/dist/common/src/types/generated/swipe_v3.d.ts +2 -2
- package/dist/common/src/types/generated/test_v3.d.ts +12 -12
- package/dist/common/src/types/generated/type_v3.d.ts +1 -1
- package/dist/core/tests/activeSurface.d.ts +46 -0
- package/dist/core/tests/activeSurface.d.ts.map +1 -0
- package/dist/core/tests/activeSurface.js +141 -0
- package/dist/core/tests/activeSurface.js.map +1 -0
- package/dist/core/tests/appSurface.d.ts +2 -0
- package/dist/core/tests/appSurface.d.ts.map +1 -1
- package/dist/core/tests/appSurface.js +24 -13
- package/dist/core/tests/appSurface.js.map +1 -1
- package/dist/core/tests/browserSessions.d.ts +3 -0
- package/dist/core/tests/browserSessions.d.ts.map +1 -1
- package/dist/core/tests/browserSessions.js +3 -0
- package/dist/core/tests/browserSessions.js.map +1 -1
- package/dist/core/tests/click.d.ts +3 -1
- package/dist/core/tests/click.d.ts.map +1 -1
- package/dist/core/tests/click.js +3 -1
- package/dist/core/tests/click.js.map +1 -1
- package/dist/core/tests/findElement.d.ts +4 -1
- package/dist/core/tests/findElement.d.ts.map +1 -1
- package/dist/core/tests/findElement.js +52 -27
- package/dist/core/tests/findElement.js.map +1 -1
- package/dist/core/tests/saveScreenshot.d.ts +4 -1
- package/dist/core/tests/saveScreenshot.d.ts.map +1 -1
- package/dist/core/tests/saveScreenshot.js +70 -54
- package/dist/core/tests/saveScreenshot.js.map +1 -1
- package/dist/core/tests/startSurface.d.ts +3 -1
- package/dist/core/tests/startSurface.d.ts.map +1 -1
- package/dist/core/tests/startSurface.js +36 -2
- package/dist/core/tests/startSurface.js.map +1 -1
- package/dist/core/tests/swipe.d.ts +4 -1
- package/dist/core/tests/swipe.d.ts.map +1 -1
- package/dist/core/tests/swipe.js +37 -25
- package/dist/core/tests/swipe.js.map +1 -1
- package/dist/core/tests/typeKeys.d.ts +3 -1
- package/dist/core/tests/typeKeys.d.ts.map +1 -1
- package/dist/core/tests/typeKeys.js +42 -36
- package/dist/core/tests/typeKeys.js.map +1 -1
- package/dist/core/tests.d.ts +3 -1
- package/dist/core/tests.d.ts.map +1 -1
- package/dist/core/tests.js +38 -9
- package/dist/core/tests.js.map +1 -1
- package/dist/hints/context.d.ts +3 -0
- package/dist/hints/context.d.ts.map +1 -1
- package/dist/hints/context.js +25 -0
- package/dist/hints/context.js.map +1 -1
- package/dist/hints/hints.d.ts.map +1 -1
- package/dist/hints/hints.js +19 -0
- package/dist/hints/hints.js.map +1 -1
- package/dist/hints/types.d.ts +7 -0
- package/dist/hints/types.d.ts.map +1 -1
- package/dist/index.cjs +684 -470
- package/dist/runtime/browserStepKeys.d.ts +37 -0
- package/dist/runtime/browserStepKeys.d.ts.map +1 -1
- package/dist/runtime/browserStepKeys.js +73 -0
- package/dist/runtime/browserStepKeys.js.map +1 -1
- package/dist/runtime/inferRuntimeNeeds.d.ts.map +1 -1
- package/dist/runtime/inferRuntimeNeeds.js +18 -11
- package/dist/runtime/inferRuntimeNeeds.js.map +1 -1
- package/package.json +1 -1
|
@@ -54,4 +54,41 @@ export declare function stepOpensBrowserSurface(step: any): boolean;
|
|
|
54
54
|
* — a browser/process-only startSurface must not trigger it.
|
|
55
55
|
*/
|
|
56
56
|
export declare function stepOpensAppSurface(step: any): boolean;
|
|
57
|
+
/**
|
|
58
|
+
* True when the step's startSurface opens at least one background PROCESS
|
|
59
|
+
* surface. Part of the non-browser-surface signal below (ADR 01081).
|
|
60
|
+
*/
|
|
61
|
+
export declare function stepOpensProcessSurface(step: any): boolean;
|
|
62
|
+
/**
|
|
63
|
+
* True when any action payload in the step names a background process with
|
|
64
|
+
* the object form (`surface: { process: … }`). Such a step writes to the
|
|
65
|
+
* process's stdin — it never needs a browser. The bare-string form stays
|
|
66
|
+
* identity-only, same as stepTargetsAppSurface.
|
|
67
|
+
*/
|
|
68
|
+
export declare function stepTargetsProcessSurface(step: any): boolean;
|
|
69
|
+
/**
|
|
70
|
+
* The step keys whose actions act on a surface and route through the
|
|
71
|
+
* active-surface resolver (ADR 01081): omitted `surface` targets the most
|
|
72
|
+
* recently active surface of ANY kind. Deliberately narrower than
|
|
73
|
+
* BROWSER_STEP_KEYS — `annotate`, cookies, `goTo`, `record`, etc. are
|
|
74
|
+
* browser-only by design and always imply a browser.
|
|
75
|
+
*/
|
|
76
|
+
export declare const SURFACE_SENSITIVE_STEP_KEYS: readonly ["click", "find", "screenshot", "swipe", "type"];
|
|
77
|
+
/**
|
|
78
|
+
* True when the step performs a surface-sensitive action WITHOUT an explicit
|
|
79
|
+
* `surface` reference — the payload shapes without one include the string /
|
|
80
|
+
* boolean / array shorthands (`find: "text"`, `screenshot: true`,
|
|
81
|
+
* `type: ["hi"]`). Such a step routes to the active surface at runtime, so
|
|
82
|
+
* browser-need classification must not unconditionally count it as a browser
|
|
83
|
+
* step (see testHasNonBrowserSurfaceSignal).
|
|
84
|
+
*/
|
|
85
|
+
export declare function stepIsSurfacelessInteraction(step: any): boolean;
|
|
86
|
+
/**
|
|
87
|
+
* True when any step in the test opens or explicitly targets a NON-browser
|
|
88
|
+
* surface (an app or a background process). In such a test, a surface-less
|
|
89
|
+
* interaction step is routed to the active surface at runtime and must not
|
|
90
|
+
* force browser provisioning; a test with no such signal keeps the browser
|
|
91
|
+
* default (byte-compatible with pre-ADR-01081 classification).
|
|
92
|
+
*/
|
|
93
|
+
export declare function testHasNonBrowserSurfaceSignal(steps: any): boolean;
|
|
57
94
|
//# sourceMappingURL=browserStepKeys.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"browserStepKeys.d.ts","sourceRoot":"","sources":["../../src/runtime/browserStepKeys.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,iBAAiB,6LAgBpB,CAAC;AAEX;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,GAAG,GAAG,OAAO,CAUxD;AAED;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,GAAG,GAAG,GAAG,EAAE,CAIxD;AAED;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,GAAG,GAAG,OAAO,CAI1D;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,GAAG,GAAG,OAAO,CAItD"}
|
|
1
|
+
{"version":3,"file":"browserStepKeys.d.ts","sourceRoot":"","sources":["../../src/runtime/browserStepKeys.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,iBAAiB,6LAgBpB,CAAC;AAEX;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,GAAG,GAAG,OAAO,CAUxD;AAED;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,GAAG,GAAG,GAAG,EAAE,CAIxD;AAED;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,GAAG,GAAG,OAAO,CAI1D;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,GAAG,GAAG,OAAO,CAItD;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,GAAG,GAAG,OAAO,CAI1D;AAED;;;;;GAKG;AACH,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,GAAG,GAAG,OAAO,CAU5D;AAED;;;;;;GAMG;AACH,eAAO,MAAM,2BAA2B,2DAM9B,CAAC;AAEX;;;;;;;GAOG;AACH,wBAAgB,4BAA4B,CAAC,IAAI,EAAE,GAAG,GAAG,OAAO,CAY/D;AAED;;;;;;GAMG;AACH,wBAAgB,8BAA8B,CAAC,KAAK,EAAE,GAAG,GAAG,OAAO,CASlE"}
|
|
@@ -87,4 +87,77 @@ export function stepOpensBrowserSurface(step) {
|
|
|
87
87
|
export function stepOpensAppSurface(step) {
|
|
88
88
|
return startSurfaceDescriptors(step).some((d) => d && typeof d === "object" && typeof d.app === "string");
|
|
89
89
|
}
|
|
90
|
+
/**
|
|
91
|
+
* True when the step's startSurface opens at least one background PROCESS
|
|
92
|
+
* surface. Part of the non-browser-surface signal below (ADR 01081).
|
|
93
|
+
*/
|
|
94
|
+
export function stepOpensProcessSurface(step) {
|
|
95
|
+
return startSurfaceDescriptors(step).some((d) => d && typeof d === "object" && typeof d.process === "string");
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* True when any action payload in the step names a background process with
|
|
99
|
+
* the object form (`surface: { process: … }`). Such a step writes to the
|
|
100
|
+
* process's stdin — it never needs a browser. The bare-string form stays
|
|
101
|
+
* identity-only, same as stepTargetsAppSurface.
|
|
102
|
+
*/
|
|
103
|
+
export function stepTargetsProcessSurface(step) {
|
|
104
|
+
if (!step || typeof step !== "object")
|
|
105
|
+
return false;
|
|
106
|
+
return Object.values(step).some((payload) => payload &&
|
|
107
|
+
typeof payload === "object" &&
|
|
108
|
+
payload.surface &&
|
|
109
|
+
typeof payload.surface === "object" &&
|
|
110
|
+
typeof payload.surface.process === "string");
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* The step keys whose actions act on a surface and route through the
|
|
114
|
+
* active-surface resolver (ADR 01081): omitted `surface` targets the most
|
|
115
|
+
* recently active surface of ANY kind. Deliberately narrower than
|
|
116
|
+
* BROWSER_STEP_KEYS — `annotate`, cookies, `goTo`, `record`, etc. are
|
|
117
|
+
* browser-only by design and always imply a browser.
|
|
118
|
+
*/
|
|
119
|
+
export const SURFACE_SENSITIVE_STEP_KEYS = [
|
|
120
|
+
"click",
|
|
121
|
+
"find",
|
|
122
|
+
"screenshot",
|
|
123
|
+
"swipe",
|
|
124
|
+
"type",
|
|
125
|
+
];
|
|
126
|
+
/**
|
|
127
|
+
* True when the step performs a surface-sensitive action WITHOUT an explicit
|
|
128
|
+
* `surface` reference — the payload shapes without one include the string /
|
|
129
|
+
* boolean / array shorthands (`find: "text"`, `screenshot: true`,
|
|
130
|
+
* `type: ["hi"]`). Such a step routes to the active surface at runtime, so
|
|
131
|
+
* browser-need classification must not unconditionally count it as a browser
|
|
132
|
+
* step (see testHasNonBrowserSurfaceSignal).
|
|
133
|
+
*/
|
|
134
|
+
export function stepIsSurfacelessInteraction(step) {
|
|
135
|
+
if (!step || typeof step !== "object")
|
|
136
|
+
return false;
|
|
137
|
+
return SURFACE_SENSITIVE_STEP_KEYS.some((key) => {
|
|
138
|
+
if (typeof step[key] === "undefined")
|
|
139
|
+
return false;
|
|
140
|
+
const payload = step[key];
|
|
141
|
+
const hasExplicitSurface = payload &&
|
|
142
|
+
typeof payload === "object" &&
|
|
143
|
+
!Array.isArray(payload) &&
|
|
144
|
+
payload.surface !== undefined;
|
|
145
|
+
return !hasExplicitSurface;
|
|
146
|
+
});
|
|
147
|
+
}
|
|
148
|
+
/**
|
|
149
|
+
* True when any step in the test opens or explicitly targets a NON-browser
|
|
150
|
+
* surface (an app or a background process). In such a test, a surface-less
|
|
151
|
+
* interaction step is routed to the active surface at runtime and must not
|
|
152
|
+
* force browser provisioning; a test with no such signal keeps the browser
|
|
153
|
+
* default (byte-compatible with pre-ADR-01081 classification).
|
|
154
|
+
*/
|
|
155
|
+
export function testHasNonBrowserSurfaceSignal(steps) {
|
|
156
|
+
if (!Array.isArray(steps))
|
|
157
|
+
return false;
|
|
158
|
+
return steps.some((step) => stepOpensAppSurface(step) ||
|
|
159
|
+
stepOpensProcessSurface(step) ||
|
|
160
|
+
stepTargetsAppSurface(step) ||
|
|
161
|
+
stepTargetsProcessSurface(step));
|
|
162
|
+
}
|
|
90
163
|
//# sourceMappingURL=browserStepKeys.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"browserStepKeys.js","sourceRoot":"","sources":["../../src/runtime/browserStepKeys.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,UAAU;IACV,OAAO;IACP,aAAa;IACb,MAAM;IACN,MAAM;IACN,YAAY;IACZ,WAAW;IACX,QAAQ;IACR,kBAAkB;IAClB,YAAY;IACZ,YAAY;IACZ,QAAQ;IACR,YAAY;IACZ,OAAO;IACP,MAAM;CACE,CAAC;AAEX;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,qBAAqB,CAAC,IAAS;IAC7C,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IACpD,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAC7B,CAAC,OAAY,EAAE,EAAE,CACf,OAAO;QACP,OAAO,OAAO,KAAK,QAAQ;QAC3B,OAAO,CAAC,OAAO;QACf,OAAO,OAAO,CAAC,OAAO,KAAK,QAAQ;QACnC,OAAO,OAAO,CAAC,OAAO,CAAC,GAAG,KAAK,QAAQ,CAC1C,CAAC;AACJ,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,uBAAuB,CAAC,IAAS;IAC/C,MAAM,GAAG,GAAG,IAAI,EAAE,YAAY,CAAC;IAC/B,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,IAAI;QAAE,OAAO,EAAE,CAAC;IACjD,OAAO,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AAC1C,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,uBAAuB,CAAC,IAAS;IAC/C,OAAO,uBAAuB,CAAC,IAAI,CAAC,CAAC,IAAI,CACvC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,OAAO,CAAC,CAAC,OAAO,KAAK,QAAQ,CACxE,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,mBAAmB,CAAC,IAAS;IAC3C,OAAO,uBAAuB,CAAC,IAAI,CAAC,CAAC,IAAI,CACvC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,OAAO,CAAC,CAAC,GAAG,KAAK,QAAQ,CACpE,CAAC;AACJ,CAAC"}
|
|
1
|
+
{"version":3,"file":"browserStepKeys.js","sourceRoot":"","sources":["../../src/runtime/browserStepKeys.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"inferRuntimeNeeds.d.ts","sourceRoot":"","sources":["../../src/runtime/inferRuntimeNeeds.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"inferRuntimeNeeds.d.ts","sourceRoot":"","sources":["../../src/runtime/inferRuntimeNeeds.ts"],"names":[],"mappings":"AAUA,MAAM,MAAM,WAAW,GAAG,QAAQ,GAAG,SAAS,GAAG,QAAQ,CAAC;AAE1D,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,GAAG,CAAC,WAAW,CAAC,CAAC;IAC3B,WAAW,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAKzB,WAAW,EAAE,OAAO,CAAC;CACtB;AAED,MAAM,WAAW,wBAAwB;IAGvC,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAQD;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,CAC/B,aAAa,EAAE,GAAG,EAClB,OAAO,GAAE,wBAA6B,GACrC,YAAY,CA6Ed"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { BROWSER_STEP_KEYS, stepTargetsAppSurface, startSurfaceDescriptors, stepOpensBrowserSurface, } from "./browserStepKeys.js";
|
|
1
|
+
import { BROWSER_STEP_KEYS, stepTargetsAppSurface, stepTargetsProcessSurface, stepIsSurfacelessInteraction, testHasNonBrowserSurfaceSignal, startSurfaceDescriptors, stepOpensBrowserSurface, } from "./browserStepKeys.js";
|
|
2
2
|
// Set view of the shared canonical list for O(1) membership checks below.
|
|
3
3
|
const BROWSER_STEP_KEY_SET = new Set(BROWSER_STEP_KEYS);
|
|
4
4
|
const SCREENSHOT_STEP_KEYS = new Set(["screenshot"]);
|
|
@@ -34,8 +34,9 @@ export function inferRuntimeNeeds(resolvedSpecs, options = {}) {
|
|
|
34
34
|
if (typeof ctx?.browser?.name === "string") {
|
|
35
35
|
addBrowserName(browsers, ctx.browser.name);
|
|
36
36
|
}
|
|
37
|
+
const ctxHasNonBrowserSignal = testHasNonBrowserSurfaceSignal(ctx?.steps);
|
|
37
38
|
for (const step of arrayOrEmpty(ctx?.steps)) {
|
|
38
|
-
const flags = classifyStep(step);
|
|
39
|
+
const flags = classifyStep(step, ctxHasNonBrowserSignal);
|
|
39
40
|
if (flags.browser)
|
|
40
41
|
sawBrowserStep = true;
|
|
41
42
|
if (flags.screenshot)
|
|
@@ -47,8 +48,9 @@ export function inferRuntimeNeeds(resolvedSpecs, options = {}) {
|
|
|
47
48
|
collectStartSurfaceEngines(step, browsers);
|
|
48
49
|
}
|
|
49
50
|
}
|
|
51
|
+
const testHasNonBrowserSignal = testHasNonBrowserSurfaceSignal(test?.steps);
|
|
50
52
|
for (const step of arrayOrEmpty(test?.steps)) {
|
|
51
|
-
const flags = classifyStep(step);
|
|
53
|
+
const flags = classifyStep(step, testHasNonBrowserSignal);
|
|
52
54
|
if (flags.browser)
|
|
53
55
|
sawBrowserStep = true;
|
|
54
56
|
if (flags.screenshot)
|
|
@@ -163,20 +165,25 @@ function collectBrowserNamesFromRunOn(runOn, set) {
|
|
|
163
165
|
}
|
|
164
166
|
}
|
|
165
167
|
}
|
|
166
|
-
function classifyStep(step) {
|
|
168
|
+
function classifyStep(step, hasNonBrowserSignal = false) {
|
|
167
169
|
if (!step || typeof step !== "object")
|
|
168
170
|
return { browser: false, screenshot: false, recording: false };
|
|
169
171
|
let browser = false;
|
|
170
172
|
let screenshot = false;
|
|
171
173
|
let recording = false;
|
|
172
|
-
//
|
|
173
|
-
//
|
|
174
|
-
// so app-only specs don't provision a browser binary
|
|
175
|
-
//
|
|
176
|
-
//
|
|
177
|
-
|
|
174
|
+
// A non-browser-targeted step drives a native app driver or a background
|
|
175
|
+
// process's stdin, not a browser — mirror the runner's `isBrowserRequired`
|
|
176
|
+
// exclusions so app/process-only specs don't provision a browser binary:
|
|
177
|
+
// explicit `surface: { app: … }` / `surface: { process: … }` payloads, and
|
|
178
|
+
// (ADR 01081) surface-less interaction steps in a test that opens or
|
|
179
|
+
// targets a non-browser surface (they route to the active surface at
|
|
180
|
+
// runtime). This gates ONLY the browser flag: an app screenshot still
|
|
181
|
+
// needs the image stack, and an app recording still needs ffmpeg.
|
|
182
|
+
const nonBrowserTargeted = stepTargetsAppSurface(step) ||
|
|
183
|
+
stepTargetsProcessSurface(step) ||
|
|
184
|
+
(hasNonBrowserSignal && stepIsSurfacelessInteraction(step));
|
|
178
185
|
for (const key of Object.keys(step)) {
|
|
179
|
-
if (!
|
|
186
|
+
if (!nonBrowserTargeted && BROWSER_STEP_KEY_SET.has(key))
|
|
180
187
|
browser = true;
|
|
181
188
|
if (SCREENSHOT_STEP_KEYS.has(key))
|
|
182
189
|
screenshot = true;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"inferRuntimeNeeds.js","sourceRoot":"","sources":["../../src/runtime/inferRuntimeNeeds.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EACjB,qBAAqB,EACrB,uBAAuB,EACvB,uBAAuB,GACxB,MAAM,sBAAsB,CAAC;AAoB9B,0EAA0E;AAC1E,MAAM,oBAAoB,GAAG,IAAI,GAAG,CAAS,iBAAiB,CAAC,CAAC;AAEhE,MAAM,oBAAoB,GAAG,IAAI,GAAG,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC;AACrD,MAAM,mBAAmB,GAAG,IAAI,GAAG,CAAC,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAC;AAE9D;;;;;;;;GAQG;AACH,MAAM,UAAU,iBAAiB,CAC/B,aAAkB,EAClB,UAAoC,EAAE;IAEtC,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAe,CAAC;IACxC,MAAM,WAAW,GAAG,IAAI,GAAG,EAAU,CAAC;IACtC,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,IAAI,MAAM,CAAC;IAElD,MAAM,KAAK,GAAU,KAAK,CAAC,OAAO,CAAC,aAAa,CAAC;QAC/C,CAAC,CAAC,aAAa;QACf,CAAC,CAAC,aAAa,IAAI,KAAK,CAAC,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC;YACrD,CAAC,CAAC,aAAa,CAAC,KAAK;YACrB,CAAC,CAAC,EAAE,CAAC;IAEP,IAAI,cAAc,GAAG,KAAK,CAAC;IAC3B,IAAI,iBAAiB,GAAG,KAAK,CAAC;IAC9B,IAAI,gBAAgB,GAAG,KAAK,CAAC;IAC7B,IAAI,gBAAgB,GAAG,KAAK,CAAC;IAE7B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,4BAA4B,CAAC,IAAI,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;QACpD,KAAK,MAAM,IAAI,IAAI,YAAY,CAAM,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC;YAClD,4BAA4B,CAAC,IAAI,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;YACpD,KAAK,MAAM,GAAG,IAAI,YAAY,CAAM,IAAI,EAAE,QAAQ,CAAC,EAAE,CAAC;gBACpD,4BAA4B,CAAC,GAAG,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;gBACnD,IAAI,OAAO,GAAG,EAAE,OAAO,EAAE,IAAI,KAAK,QAAQ,EAAE,CAAC;oBAC3C,cAAc,CAAC,QAAQ,EAAE,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;gBAC7C,CAAC;gBACD,KAAK,MAAM,IAAI,IAAI,YAAY,CAAM,GAAG,EAAE,KAAK,CAAC,EAAE,CAAC;oBACjD,MAAM,KAAK,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"inferRuntimeNeeds.js","sourceRoot":"","sources":["../../src/runtime/inferRuntimeNeeds.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EACjB,qBAAqB,EACrB,yBAAyB,EACzB,4BAA4B,EAC5B,8BAA8B,EAC9B,uBAAuB,EACvB,uBAAuB,GACxB,MAAM,sBAAsB,CAAC;AAoB9B,0EAA0E;AAC1E,MAAM,oBAAoB,GAAG,IAAI,GAAG,CAAS,iBAAiB,CAAC,CAAC;AAEhE,MAAM,oBAAoB,GAAG,IAAI,GAAG,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC;AACrD,MAAM,mBAAmB,GAAG,IAAI,GAAG,CAAC,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAC;AAE9D;;;;;;;;GAQG;AACH,MAAM,UAAU,iBAAiB,CAC/B,aAAkB,EAClB,UAAoC,EAAE;IAEtC,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAe,CAAC;IACxC,MAAM,WAAW,GAAG,IAAI,GAAG,EAAU,CAAC;IACtC,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,IAAI,MAAM,CAAC;IAElD,MAAM,KAAK,GAAU,KAAK,CAAC,OAAO,CAAC,aAAa,CAAC;QAC/C,CAAC,CAAC,aAAa;QACf,CAAC,CAAC,aAAa,IAAI,KAAK,CAAC,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC;YACrD,CAAC,CAAC,aAAa,CAAC,KAAK;YACrB,CAAC,CAAC,EAAE,CAAC;IAEP,IAAI,cAAc,GAAG,KAAK,CAAC;IAC3B,IAAI,iBAAiB,GAAG,KAAK,CAAC;IAC9B,IAAI,gBAAgB,GAAG,KAAK,CAAC;IAC7B,IAAI,gBAAgB,GAAG,KAAK,CAAC;IAE7B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,4BAA4B,CAAC,IAAI,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;QACpD,KAAK,MAAM,IAAI,IAAI,YAAY,CAAM,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC;YAClD,4BAA4B,CAAC,IAAI,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;YACpD,KAAK,MAAM,GAAG,IAAI,YAAY,CAAM,IAAI,EAAE,QAAQ,CAAC,EAAE,CAAC;gBACpD,4BAA4B,CAAC,GAAG,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;gBACnD,IAAI,OAAO,GAAG,EAAE,OAAO,EAAE,IAAI,KAAK,QAAQ,EAAE,CAAC;oBAC3C,cAAc,CAAC,QAAQ,EAAE,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;gBAC7C,CAAC;gBACD,MAAM,sBAAsB,GAAG,8BAA8B,CAC3D,GAAG,EAAE,KAAK,CACX,CAAC;gBACF,KAAK,MAAM,IAAI,IAAI,YAAY,CAAM,GAAG,EAAE,KAAK,CAAC,EAAE,CAAC;oBACjD,MAAM,KAAK,GAAG,YAAY,CAAC,IAAI,EAAE,sBAAsB,CAAC,CAAC;oBACzD,IAAI,KAAK,CAAC,OAAO;wBAAE,cAAc,GAAG,IAAI,CAAC;oBACzC,IAAI,KAAK,CAAC,UAAU;wBAAE,iBAAiB,GAAG,IAAI,CAAC;oBAC/C,IAAI,KAAK,CAAC,SAAS;wBAAE,gBAAgB,GAAG,IAAI,CAAC;oBAC7C,IAAI,aAAa,CAAC,IAAI,EAAE,WAAW,CAAC;wBAAE,gBAAgB,GAAG,IAAI,CAAC;oBAC9D,0BAA0B,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;gBAC7C,CAAC;YACH,CAAC;YACD,MAAM,uBAAuB,GAAG,8BAA8B,CAC5D,IAAI,EAAE,KAAK,CACZ,CAAC;YACF,KAAK,MAAM,IAAI,IAAI,YAAY,CAAM,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC;gBAClD,MAAM,KAAK,GAAG,YAAY,CAAC,IAAI,EAAE,uBAAuB,CAAC,CAAC;gBAC1D,IAAI,KAAK,CAAC,OAAO;oBAAE,cAAc,GAAG,IAAI,CAAC;gBACzC,IAAI,KAAK,CAAC,UAAU;oBAAE,iBAAiB,GAAG,IAAI,CAAC;gBAC/C,IAAI,KAAK,CAAC,SAAS;oBAAE,gBAAgB,GAAG,IAAI,CAAC;gBAC7C,IAAI,aAAa,CAAC,IAAI,EAAE,WAAW,CAAC;oBAAE,gBAAgB,GAAG,IAAI,CAAC;gBAC9D,0BAA0B,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;YAC7C,CAAC;QACH,CAAC;IACH,CAAC;IAED,IAAI,cAAc,EAAE,CAAC;QACnB,WAAW,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;QAC/B,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC1B,WAAW,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;QACvC,qEAAqE;QACrE,4CAA4C;QAC5C,IAAI,QAAQ,CAAC,IAAI,KAAK,CAAC;YAAE,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAChD,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE,CAAC;YAC5B,IAAI,IAAI,KAAK,QAAQ;gBAAE,WAAW,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC;YACjE,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;gBACvB,WAAW,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;gBACtC,WAAW,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;YACjC,CAAC;YACD,IAAI,IAAI,KAAK,QAAQ;gBAAE,WAAW,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC;QACjE,CAAC;IACH,CAAC;IACD,IAAI,iBAAiB,EAAE,CAAC;QACtB,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACzB,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACzB,WAAW,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;IAChC,CAAC;IACD,IAAI,gBAAgB,EAAE,CAAC;QACrB,WAAW,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC;IAC9C,CAAC;IAED,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,WAAW,EAAE,gBAAgB,EAAE,CAAC;AAClE,CAAC;AAED,2EAA2E;AAC3E,kEAAkE;AAClE,4EAA4E;AAC5E,6EAA6E;AAC7E,qEAAqE;AACrE,kDAAkD;AAClD,SAAS,aAAa,CAAC,IAAS,EAAE,WAAmB;IACnD,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IACpD,IAAI,UAAU,IAAI,IAAI,EAAE,CAAC;QACvB,MAAM,SAAS,GACb,IAAI,CAAC,QAAQ,IAAI,OAAO,IAAI,CAAC,QAAQ,KAAK,QAAQ;YAChD,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK;YACrB,CAAC,CAAC,SAAS,CAAC;QAChB,IAAI,CAAC,SAAS,IAAI,WAAW,CAAC,KAAK,MAAM;YAAE,OAAO,IAAI,CAAC;IACzD,CAAC;IACD,IAAI,SAAS,IAAI,IAAI,IAAI,IAAI,CAAC,OAAO,EAAE,QAAQ,KAAK,MAAM;QAAE,OAAO,IAAI,CAAC;IACxE,yEAAyE;IACzE,uEAAuE;IACvE,yBAAyB;IACzB,IAAI,cAAc,IAAI,IAAI,IAAI,WAAW,KAAK,MAAM,EAAE,CAAC;QACrD,KAAK,MAAM,CAAC,IAAI,uBAAuB,CAAC,IAAI,CAAC,EAAE,CAAC;YAC9C,IAAI,CAAC,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,OAAO,CAAC,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;gBAChE,OAAO,IAAI,CAAC;YACd,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,YAAY,CAAI,CAAM;IAC7B,OAAO,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAE,CAAS,CAAC,CAAC,CAAC,EAAE,CAAC;AAC5C,CAAC;AAED,SAAS,cAAc,CAAC,GAAqB,EAAE,IAAY;IACzD,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;IACtC,wEAAwE;IACxE,0EAA0E;IAC1E,2EAA2E;IAC3E,mEAAmE;IACnE,IAAI,UAAU,KAAK,QAAQ,IAAI,UAAU,KAAK,UAAU,IAAI,UAAU,KAAK,MAAM;QAC/E,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;SACf,IAAI,UAAU,KAAK,SAAS;QAAE,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IACtD,wEAAwE;IACxE,uEAAuE;IACvE,sEAAsE;IACtE,mEAAmE;SAC9D,IAAI,UAAU,KAAK,QAAQ,IAAI,UAAU,KAAK,QAAQ;QACzD,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IACpB,+DAA+D;AACjE,CAAC;AAED,4EAA4E;AAC5E,oEAAoE;AACpE,gEAAgE;AAChE,SAAS,0BAA0B,CAAC,IAAS,EAAE,GAAqB;IAClE,KAAK,MAAM,CAAC,IAAI,uBAAuB,CAAC,IAAI,CAAC,EAAE,CAAC;QAC9C,IAAI,CAAC,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,OAAO,CAAC,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;YAChE,cAAc,CAAC,GAAG,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC;QACjC,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAS,4BAA4B,CACnC,KAAU,EACV,GAAqB;IAErB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO;IAClC,KAAK,MAAM,KAAK,IAAI,KAAK,EAAE,CAAC;QAC1B,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC;YAAE,SAAS;QACvD,KAAK,MAAM,CAAC,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;YAC/B,IAAI,CAAC,IAAI,OAAO,CAAC,CAAC,IAAI,KAAK,QAAQ;gBAAE,cAAc,CAAC,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;QACnE,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAS,YAAY,CACnB,IAAS,EACT,mBAAmB,GAAG,KAAK;IAM3B,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ;QACnC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;IACjE,IAAI,OAAO,GAAG,KAAK,CAAC;IACpB,IAAI,UAAU,GAAG,KAAK,CAAC;IACvB,IAAI,SAAS,GAAG,KAAK,CAAC;IACtB,yEAAyE;IACzE,2EAA2E;IAC3E,yEAAyE;IACzE,2EAA2E;IAC3E,qEAAqE;IACrE,qEAAqE;IACrE,sEAAsE;IACtE,kEAAkE;IAClE,MAAM,kBAAkB,GACtB,qBAAqB,CAAC,IAAI,CAAC;QAC3B,yBAAyB,CAAC,IAAI,CAAC;QAC/B,CAAC,mBAAmB,IAAI,4BAA4B,CAAC,IAAI,CAAC,CAAC,CAAC;IAC9D,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QACpC,IAAI,CAAC,kBAAkB,IAAI,oBAAoB,CAAC,GAAG,CAAC,GAAG,CAAC;YAAE,OAAO,GAAG,IAAI,CAAC;QACzE,IAAI,oBAAoB,CAAC,GAAG,CAAC,GAAG,CAAC;YAAE,UAAU,GAAG,IAAI,CAAC;QACrD,IAAI,mBAAmB,CAAC,GAAG,CAAC,GAAG,CAAC;YAAE,SAAS,GAAG,IAAI,CAAC;IACrD,CAAC;IACD,0EAA0E;IAC1E,wEAAwE;IACxE,IAAI,uBAAuB,CAAC,IAAI,CAAC;QAAE,OAAO,GAAG,IAAI,CAAC;IAClD,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC;AAC5C,CAAC"}
|