@ploaness/governance 1.14.0 → 1.15.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/browser-rules.d.ts +3 -3
- package/dist/browser-rules.d.ts.map +1 -1
- package/dist/browser-rules.js +1 -1
- package/dist/browser-rules.js.map +1 -1
- package/dist/browser-run.d.ts +91 -4
- package/dist/browser-run.d.ts.map +1 -1
- package/dist/browser-run.js +151 -10
- package/dist/browser-run.js.map +1 -1
- package/dist/focus-reach.d.ts +54 -0
- package/dist/focus-reach.d.ts.map +1 -0
- package/dist/focus-reach.js +88 -0
- package/dist/focus-reach.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -0
- package/dist/index.js.map +1 -1
- package/dist/javascript-syntax.d.ts +13 -0
- package/dist/javascript-syntax.d.ts.map +1 -0
- package/dist/javascript-syntax.js +23 -0
- package/dist/javascript-syntax.js.map +1 -0
- package/dist/layout-snapshot.d.ts +12 -0
- package/dist/layout-snapshot.d.ts.map +1 -1
- package/dist/layout-snapshot.js +19 -0
- package/dist/layout-snapshot.js.map +1 -1
- package/dist/sweep-progress.d.ts +64 -0
- package/dist/sweep-progress.d.ts.map +1 -0
- package/dist/sweep-progress.js +95 -0
- package/dist/sweep-progress.js.map +1 -0
- package/package.json +1 -1
package/dist/browser-rules.d.ts
CHANGED
|
@@ -78,7 +78,7 @@ export declare const obscuringContent: (samples: readonly FocusSample[]) => stri
|
|
|
78
78
|
* @param focused the same region with the element focused by keyboard.
|
|
79
79
|
* @returns true when at least one byte differs.
|
|
80
80
|
*/
|
|
81
|
-
export declare const hasVisibleFocus: (unfocused:
|
|
81
|
+
export declare const hasVisibleFocus: (unfocused: ArrayLike<number>, focused: ArrayLike<number>) => boolean;
|
|
82
82
|
/** The contrast a focus indicator's changed pixels need against what they replaced (WCAG 1.4.11). */
|
|
83
83
|
export declare const FOCUS_CONTRAST_RATIO: number;
|
|
84
84
|
/**
|
|
@@ -90,8 +90,8 @@ export declare const FOCUS_CONTRAST_RATIO: number;
|
|
|
90
90
|
export declare const contrastRatio: (first: number, second: number) => number;
|
|
91
91
|
/** A focused element's region rendered focused and unfocused, decoded to RGBA. */
|
|
92
92
|
export interface FocusRenderings {
|
|
93
|
-
readonly unfocused:
|
|
94
|
-
readonly focused:
|
|
93
|
+
readonly unfocused: ArrayLike<number>;
|
|
94
|
+
readonly focused: ArrayLike<number>;
|
|
95
95
|
/** Device pixels per CSS pixel along one side. */
|
|
96
96
|
readonly scale: number;
|
|
97
97
|
/** The longer side of the element's visible box, in CSS pixels. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"browser-rules.d.ts","sourceRoot":"","sources":["../src/browser-rules.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAA;AAC/D,OAAO,EAOL,KAAK,cAAc,EAEpB,MAAM,sBAAsB,CAAA;AAE7B,sEAAsE;AACtE,eAAO,MAAM,kBAAkB,EAAE,MAAU,CAAA;AAE3C,sDAAsD;AACtD,eAAO,MAAM,iBAAiB,EAAE,MAAW,CAAA;AAE3C,mGAAmG;AACnG,eAAO,MAAM,iBAAiB,EAAE,MAAY,CAAA;AAI5C,4DAA4D;AAC5D,eAAO,MAAM,mBAAmB,EAAE,MAAU,CAAA;AAE5C,mGAAmG;AACnG,eAAO,MAAM,gBAAgB,EAAE,MAAU,CAAA;AAEzC,8EAA8E;AAC9E,eAAO,MAAM,qBAAqB,EAAE,SAAS,MAAM,EAMlD,CAAA;AAED,6CAA6C;AAC7C,eAAO,MAAM,cAAc,EAAE,MAAoB,CAAA;AAQjD;;;;GAIG;AACH,eAAO,MAAM,aAAa,GAAI,UAAU,cAAc,KAAG,SAAS,gBAAgB,EAe7E,CAAA;AAcL;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,GAAI,UAAU,cAAc,KAAG,SAAS,gBAAgB,EAclF,CAAA;AAKL;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,GAAI,UAAU,cAAc,KAAG,SAAS,gBAAgB,EAiBpF,CAAA;AAwBJ;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,GAAI,UAAU,cAAc,KAAG,SAAS,gBAAgB,EAmBnF,CAAA;AAIJ;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,GAAI,UAAU,cAAc,KAAG,SAAS,gBAAgB,EAwBpF,CAAA;AA8BJ;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,GAAI,UAAU,cAAc,KAAG,SAAS,MAAM,EAgB1E,CAAA;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,iBAAiB,GAAI,UAAU,cAAc,KAAG,SAAS,MAAM,EAiBxE,CAAA;AAEJ,qFAAqF;AACrF,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAA;IAC3B,4DAA4D;IAC5D,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;CAC3B;AAED;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,GAAI,SAAS,SAAS,WAAW,EAAE,KAAG,MAAM,GAAG,SAG7D,CAAA;AAEf;;;;;GAKG;AACH,eAAO,MAAM,eAAe,GAAI,WAAW,
|
|
1
|
+
{"version":3,"file":"browser-rules.d.ts","sourceRoot":"","sources":["../src/browser-rules.ts"],"names":[],"mappings":"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"}
|
package/dist/browser-rules.js
CHANGED
|
@@ -222,7 +222,7 @@ export const obscuringContent = (samples) => samples.length > 0 && samples.every
|
|
|
222
222
|
* @returns true when at least one byte differs.
|
|
223
223
|
*/
|
|
224
224
|
export const hasVisibleFocus = (unfocused, focused) => unfocused.length !== focused.length ||
|
|
225
|
-
unfocused.some((
|
|
225
|
+
Array.from(unfocused).some((value, index) => value !== focused[index]);
|
|
226
226
|
/** The contrast a focus indicator's changed pixels need against what they replaced (WCAG 1.4.11). */
|
|
227
227
|
export const FOCUS_CONTRAST_RATIO = 3;
|
|
228
228
|
const RGBA_BYTES = 4;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"browser-rules.js","sourceRoot":"","sources":["../src/browser-rules.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"browser-rules.js","sourceRoot":"","sources":["../src/browser-rules.ts"],"names":[],"mappings":"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"}
|
package/dist/browser-run.d.ts
CHANGED
|
@@ -38,6 +38,15 @@ export declare const BROWSER_ENGINES: readonly string[];
|
|
|
38
38
|
export type SweepPass = 'discovery' | 'resting' | 'interaction' | 'disclosures' | 'text-stress' | 'width-sweep' | 'dark-scheme' | 'engine';
|
|
39
39
|
/** The rule a pass that ran out of time reports. */
|
|
40
40
|
export declare const PASS_BUDGET_RULE: string;
|
|
41
|
+
/** The rule an item reports when its visit did not finish within the item's limit. */
|
|
42
|
+
export declare const ITEM_LIMIT_RULE: string;
|
|
43
|
+
/**
|
|
44
|
+
* The time one item of a pass may take before the part gives up on it and moves on.
|
|
45
|
+
* @param pass the pass.
|
|
46
|
+
* @param units how many units of work the item carries.
|
|
47
|
+
* @returns the limit in milliseconds.
|
|
48
|
+
*/
|
|
49
|
+
export declare const itemLimitMs: (pass: SweepPass, units: number) => number;
|
|
41
50
|
/**
|
|
42
51
|
* The time a pass may take, derived from the work it discovered.
|
|
43
52
|
* @param pass the pass.
|
|
@@ -45,10 +54,44 @@ export declare const PASS_BUDGET_RULE: string;
|
|
|
45
54
|
* @returns its budget in milliseconds.
|
|
46
55
|
*/
|
|
47
56
|
export declare const passBudgetMs: (pass: SweepPass, units: number) => number;
|
|
48
|
-
/**
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
57
|
+
/**
|
|
58
|
+
* How many workers a browser run spreads the sweep over, and so how many parts each pass has.
|
|
59
|
+
* @param processors the processors the machine offers.
|
|
60
|
+
* @param memoryBytes the memory it has.
|
|
61
|
+
* @returns the workers, between four and eight.
|
|
62
|
+
*/
|
|
63
|
+
export declare const sweepWorkersFor: (processors: number, memoryBytes: number) => number;
|
|
64
|
+
/** What a machine offers the sweep. */
|
|
65
|
+
export interface MachineCapacity {
|
|
66
|
+
readonly processors: number;
|
|
67
|
+
readonly memoryBytes: number;
|
|
68
|
+
}
|
|
69
|
+
/** The variable carrying the workers a run decided on to the suite and each of its workers. */
|
|
70
|
+
export declare const SWEEP_WORKERS_ENVIRONMENT_VARIABLE: string;
|
|
71
|
+
/** The `docker` arguments that report the processors and memory the browsers' machine has. */
|
|
72
|
+
export declare const dockerCapacityArguments: readonly string[];
|
|
73
|
+
/**
|
|
74
|
+
* Read what `dockerCapacityArguments` reports.
|
|
75
|
+
* @param output what `docker` wrote.
|
|
76
|
+
* @returns the capacity, or undefined when the output is not two positive whole numbers.
|
|
77
|
+
*/
|
|
78
|
+
export declare const dockerCapacityOf: (output: string) => MachineCapacity | undefined;
|
|
79
|
+
/**
|
|
80
|
+
* The workers a run can give the sweep: the fewer of what the host affords, where the runner, the servers
|
|
81
|
+
* and the test workers live, and what the browsers' machine affords. On Linux the two are one machine;
|
|
82
|
+
* Docker Desktop and Colima run the browsers in a virtual machine smaller than the host, and eight
|
|
83
|
+
* browsers in a machine of nine processors made every pass slower than four did.
|
|
84
|
+
* @param host the machine the run starts on.
|
|
85
|
+
* @param browsers the machine the browsers run on, when it is known.
|
|
86
|
+
* @returns the workers.
|
|
87
|
+
*/
|
|
88
|
+
export declare const sweepWorkersAcross: (host: MachineCapacity, browsers: MachineCapacity | undefined) => number;
|
|
89
|
+
/**
|
|
90
|
+
* The workers a run decided on, as its environment carries them.
|
|
91
|
+
* @param value the variable's value.
|
|
92
|
+
* @returns the workers, or undefined when the value is not a worker count the sweep allows.
|
|
93
|
+
*/
|
|
94
|
+
export declare const declaredSweepWorkers: (value: string | undefined) => number | undefined;
|
|
52
95
|
/** One part of a sweep pass: its zero-based index among `count` parts. */
|
|
53
96
|
export interface Shard {
|
|
54
97
|
readonly index: number;
|
|
@@ -68,11 +111,55 @@ export interface ShardItem<Item> {
|
|
|
68
111
|
* @returns its budget in milliseconds.
|
|
69
112
|
*/
|
|
70
113
|
export declare const partBudgetMs: (pass: SweepPass, units: number, shard: Shard) => number;
|
|
114
|
+
/**
|
|
115
|
+
* How many parts an engine's engine pass runs in.
|
|
116
|
+
* @param engine the engine.
|
|
117
|
+
* @param parts the parts every other pass runs in.
|
|
118
|
+
* @returns the parts, at least one.
|
|
119
|
+
*/
|
|
120
|
+
export declare const enginePassParts: (engine: string, parts: number) => number;
|
|
121
|
+
/**
|
|
122
|
+
* The run that started a pinned browser server, recorded on its container. A run that is killed outright
|
|
123
|
+
* cannot remove its container, so a later run removes it instead once this owner is gone.
|
|
124
|
+
*/
|
|
125
|
+
export interface BrowserServerOwner {
|
|
126
|
+
readonly pid: number;
|
|
127
|
+
/** When the owner process started, as `ps` reports it, which a process that later reuses the PID does not share. */
|
|
128
|
+
readonly started: string;
|
|
129
|
+
/** The machine the owner ran on: a PID means nothing on another machine sharing the Docker engine. */
|
|
130
|
+
readonly host: string;
|
|
131
|
+
}
|
|
132
|
+
/** The container labels that record a browser server's owner. */
|
|
133
|
+
export declare const BROWSER_SERVER_OWNER_LABELS: Readonly<Record<keyof BrowserServerOwner, string>>;
|
|
134
|
+
/** The `docker` arguments that list every browser server recording its owner, one per line. */
|
|
135
|
+
export declare const browserServerListingArguments: readonly string[];
|
|
136
|
+
/** A listed browser server, and its owner when the labels name one completely. */
|
|
137
|
+
export interface ListedBrowserServer {
|
|
138
|
+
readonly name: string;
|
|
139
|
+
readonly owner: BrowserServerOwner | undefined;
|
|
140
|
+
}
|
|
141
|
+
/**
|
|
142
|
+
* Read the listing `browserServerListingArguments` produces.
|
|
143
|
+
* @param listing what `docker` wrote.
|
|
144
|
+
* @returns each listed server.
|
|
145
|
+
*/
|
|
146
|
+
export declare const listedBrowserServers: (listing: string) => readonly ListedBrowserServer[];
|
|
147
|
+
/**
|
|
148
|
+
* Whether a browser server was left behind by a run that no longer exists. Only a server started on this
|
|
149
|
+
* machine is judged, and its owner is gone when no process holds the PID or the one holding it started at
|
|
150
|
+
* another time.
|
|
151
|
+
* @param owner the owner recorded on the container.
|
|
152
|
+
* @param host this machine's name.
|
|
153
|
+
* @param running when the process now holding the owner's PID started, or undefined when none does.
|
|
154
|
+
* @returns true when the server may be removed.
|
|
155
|
+
*/
|
|
156
|
+
export declare const isOrphanedBrowserServer: (owner: BrowserServerOwner, host: string, running: string | undefined) => boolean;
|
|
71
157
|
/** What starting the pinned browser server needs to know. */
|
|
72
158
|
export interface PinnedBrowserServer {
|
|
73
159
|
readonly image: string;
|
|
74
160
|
readonly name: string;
|
|
75
161
|
readonly port: number;
|
|
162
|
+
readonly owner: BrowserServerOwner;
|
|
76
163
|
/** The host's resolved `playwright-core` directory, which the container runs. */
|
|
77
164
|
readonly playwrightCore: string;
|
|
78
165
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"browser-run.d.ts","sourceRoot":"","sources":["../src/browser-run.ts"],"names":[],"mappings":"AAGA,uGAAuG;AACvG,eAAO,MAAM,0BAA0B,EAAE,MAAyB,CAAA;AAElE;;;;;;GAMG;AACH,eAAO,MAAM,qBAAqB,EAAE,MAAmC,CAAA;AAEvE,sDAAsD;AACtD,eAAO,MAAM,UAAU,EAAE,MAAe,CAAA;AAIxC;;;;GAIG;AACH,eAAO,MAAM,OAAO,GAAI,UAAU,OAAO,KAAG,MAO3C,CAAA;AAED;;;;;;GAMG;AACH,eAAO,MAAM,WAAW,GAAI,WAAW,MAAM,EAAE,WAAW,MAAM,EAAE,QAAQ,MAAM,KAAG,MACjD,CAAA;AAElC,2EAA2E;AAC3E,eAAO,MAAM,qCAAqC,EAAE,MAAoC,CAAA;AAExF;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,GAAI,SAAS,MAAM,KAAG,MAA0D,CAAA;AAE9G,4FAA4F;AAC5F,eAAO,MAAM,eAAe,EAAE,SAAS,MAAM,EAAsC,CAAA;AAEnF,2CAA2C;AAC3C,MAAM,MAAM,SAAS,GACjB,WAAW,GACX,SAAS,GACT,aAAa,GACb,aAAa,GACb,aAAa,GACb,aAAa,GACb,aAAa,GACb,QAAQ,CAAA;
|
|
1
|
+
{"version":3,"file":"browser-run.d.ts","sourceRoot":"","sources":["../src/browser-run.ts"],"names":[],"mappings":"AAGA,uGAAuG;AACvG,eAAO,MAAM,0BAA0B,EAAE,MAAyB,CAAA;AAElE;;;;;;GAMG;AACH,eAAO,MAAM,qBAAqB,EAAE,MAAmC,CAAA;AAEvE,sDAAsD;AACtD,eAAO,MAAM,UAAU,EAAE,MAAe,CAAA;AAIxC;;;;GAIG;AACH,eAAO,MAAM,OAAO,GAAI,UAAU,OAAO,KAAG,MAO3C,CAAA;AAED;;;;;;GAMG;AACH,eAAO,MAAM,WAAW,GAAI,WAAW,MAAM,EAAE,WAAW,MAAM,EAAE,QAAQ,MAAM,KAAG,MACjD,CAAA;AAElC,2EAA2E;AAC3E,eAAO,MAAM,qCAAqC,EAAE,MAAoC,CAAA;AAExF;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,GAAI,SAAS,MAAM,KAAG,MAA0D,CAAA;AAE9G,4FAA4F;AAC5F,eAAO,MAAM,eAAe,EAAE,SAAS,MAAM,EAAsC,CAAA;AAEnF,2CAA2C;AAC3C,MAAM,MAAM,SAAS,GACjB,WAAW,GACX,SAAS,GACT,aAAa,GACb,aAAa,GACb,aAAa,GACb,aAAa,GACb,aAAa,GACb,QAAQ,CAAA;AAsBZ,oDAAoD;AACpD,eAAO,MAAM,gBAAgB,EAAE,MAAsB,CAAA;AAErD,sFAAsF;AACtF,eAAO,MAAM,eAAe,EAAE,MAAqB,CAAA;AAQnD;;;;;GAKG;AACH,eAAO,MAAM,WAAW,GAAI,MAAM,SAAS,EAAE,OAAO,MAAM,KAAG,MACoC,CAAA;AAEjG;;;;;GAKG;AACH,eAAO,MAAM,YAAY,GAAI,MAAM,SAAS,EAAE,OAAO,MAAM,KAAG,MACD,CAAA;AAe7D;;;;;GAKG;AACH,eAAO,MAAM,eAAe,GAAI,YAAY,MAAM,EAAE,aAAa,MAAM,KAAG,MAIzE,CAAA;AAED,uCAAuC;AACvC,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;CAC7B;AAED,+FAA+F;AAC/F,eAAO,MAAM,kCAAkC,EAAE,MAAiC,CAAA;AAElF,8FAA8F;AAC9F,eAAO,MAAM,uBAAuB,EAAE,SAAS,MAAM,EAAoD,CAAA;AAEzG;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,GAAI,QAAQ,MAAM,KAAG,eAAe,GAAG,SAKnE,CAAA;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,kBAAkB,GAAI,MAAM,eAAe,EAAE,UAAU,eAAe,GAAG,SAAS,KAAG,MAI/F,CAAA;AAEH;;;;GAIG;AACH,eAAO,MAAM,oBAAoB,GAAI,OAAO,MAAM,GAAG,SAAS,KAAG,MAAM,GAAG,SAKzE,CAAA;AAED,0EAA0E;AAC1E,MAAM,WAAW,KAAK;IACpB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CACvB;AAED,gEAAgE;AAChE,MAAM,WAAW,SAAS,CAAC,IAAI;IAC7B,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAA;IACnB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CACvB;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,YAAY,GAAI,MAAM,SAAS,EAAE,OAAO,MAAM,EAAE,OAAO,KAAK,KAAG,MACxB,CAAA;AAQpD;;;;;GAKG;AACH,eAAO,MAAM,eAAe,GAAI,QAAQ,MAAM,EAAE,OAAO,MAAM,KAAG,MACkC,CAAA;AAKlG;;;GAGG;AACH,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;IACpB,oHAAoH;IACpH,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,sGAAsG;IACtG,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CACtB;AAED,iEAAiE;AACjE,eAAO,MAAM,2BAA2B,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,kBAAkB,EAAE,MAAM,CAAC,CAI1F,CAAA;AAID,+FAA+F;AAC/F,eAAO,MAAM,6BAA6B,EAAE,SAAS,MAAM,EAU1D,CAAA;AAED,kFAAkF;AAClF,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,KAAK,EAAE,kBAAkB,GAAG,SAAS,CAAA;CAC/C;AAKD;;;;GAIG;AACH,eAAO,MAAM,oBAAoB,GAAI,SAAS,MAAM,KAAG,SAAS,mBAAmB,EAO7E,CAAA;AAEN;;;;;;;;GAQG;AACH,eAAO,MAAM,uBAAuB,GAClC,OAAO,kBAAkB,EACzB,MAAM,MAAM,EACZ,SAAS,MAAM,GAAG,SAAS,KAC1B,OAA2D,CAAA;AAE9D,6DAA6D;AAC7D,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,KAAK,EAAE,kBAAkB,CAAA;IAClC,iFAAiF;IACjF,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAA;IAC/B;;;;OAIG;IACH,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAA;IAC/B;;;;OAIG;IACH,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CACxB;AAcD,wGAAwG;AACxG,eAAO,MAAM,mCAAmC,EAAE,MAAkC,CAAA;AAEpF;;;;;;;;GAQG;AACH,eAAO,MAAM,4BAA4B,GAAI,QAAQ,mBAAmB,KAAG,SAAS,MAAM,EAyBzF,CAAA;AAED;;;;;GAKG;AACH,eAAO,MAAM,qBAAqB,GAAI,MAAM,MAAM,EAAE,QAAQ,MAAM,KAAG,MACzB,CAAA"}
|
package/dist/browser-run.js
CHANGED
|
@@ -46,12 +46,15 @@ export const playwrightImageOf = (version) => `mcr.microsoft.com/playwright:v${v
|
|
|
46
46
|
export const BROWSER_ENGINES = ['chromium', 'firefox', 'webkit'];
|
|
47
47
|
// What one unit of each pass's work may cost, in milliseconds. A unit is what the pass multiplies:
|
|
48
48
|
// a route for discovery, a page at one viewport for the passes that load pages, a control at one
|
|
49
|
-
// viewport for the interaction
|
|
49
|
+
// viewport for the interaction and disclosure passes, a width for the sweep. A disclosure visit costs in
|
|
50
|
+
// proportion to the controls on the page: a story with eight of them took four seconds and one with 192
|
|
51
|
+
// over a minute, so a fixed cost per page left the heavy ones short of both their item's limit and the
|
|
52
|
+
// part's budget.
|
|
50
53
|
const ALLOWANCES_MS = {
|
|
51
54
|
discovery: 30_000,
|
|
52
55
|
resting: 12_000,
|
|
53
56
|
interaction: 5000,
|
|
54
|
-
disclosures:
|
|
57
|
+
disclosures: 1000,
|
|
55
58
|
'text-stress': 15_000,
|
|
56
59
|
'width-sweep': 2000,
|
|
57
60
|
'dark-scheme': 10_000,
|
|
@@ -61,6 +64,20 @@ const ALLOWANCES_MS = {
|
|
|
61
64
|
const PASS_OVERHEAD_MS = 60_000;
|
|
62
65
|
/** The rule a pass that ran out of time reports. */
|
|
63
66
|
export const PASS_BUDGET_RULE = 'pass-budget';
|
|
67
|
+
/** The rule an item reports when its visit did not finish within the item's limit. */
|
|
68
|
+
export const ITEM_LIMIT_RULE = 'item-limit';
|
|
69
|
+
// An item may take this many times its pass's allowance, and never less than the floor: generous enough
|
|
70
|
+
// for a slow agent, while a page that hangs - an axe run that never returns - holds its part for a
|
|
71
|
+
// minute or so rather than for the part's whole budget.
|
|
72
|
+
const ITEM_ALLOWANCE_FACTOR = 4;
|
|
73
|
+
const ITEM_LIMIT_FLOOR_MS = 60_000;
|
|
74
|
+
/**
|
|
75
|
+
* The time one item of a pass may take before the part gives up on it and moves on.
|
|
76
|
+
* @param pass the pass.
|
|
77
|
+
* @param units how many units of work the item carries.
|
|
78
|
+
* @returns the limit in milliseconds.
|
|
79
|
+
*/
|
|
80
|
+
export const itemLimitMs = (pass, units) => Math.max(ITEM_LIMIT_FLOOR_MS, ITEM_ALLOWANCE_FACTOR * ALLOWANCES_MS[pass] * Math.max(1, units));
|
|
64
81
|
/**
|
|
65
82
|
* The time a pass may take, derived from the work it discovered.
|
|
66
83
|
* @param pass the pass.
|
|
@@ -69,12 +86,64 @@ export const PASS_BUDGET_RULE = 'pass-budget';
|
|
|
69
86
|
*/
|
|
70
87
|
export const passBudgetMs = (pass, units) => PASS_OVERHEAD_MS + ALLOWANCES_MS[pass] * Math.max(0, units);
|
|
71
88
|
// Every sweep test loads its pages fresh and judges each one alone, so which worker runs it, and what
|
|
72
|
-
// runs beside it, cannot change a verdict
|
|
73
|
-
// because they may share database state.
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
89
|
+
// runs beside it, cannot change a verdict; the project's own specs are held to one worker separately,
|
|
90
|
+
// because they may share database state. The parts of a pass share one queue, so the sweep takes about
|
|
91
|
+
// as long as its work divided by the workers, and a machine with more to give should give it: a worker
|
|
92
|
+
// for every two processors and every two gigabytes of memory - a browser at work holds about one - but
|
|
93
|
+
// never fewer than four, which a hosted agent with four processors and sixteen gigabytes runs today,
|
|
94
|
+
// and never more than eight, beyond which one browser server is the limit rather than the machine.
|
|
95
|
+
const MIN_SWEEP_WORKERS = 4;
|
|
96
|
+
const MAX_SWEEP_WORKERS = 8;
|
|
97
|
+
const PROCESSORS_PER_WORKER = 2;
|
|
98
|
+
const BYTES_PER_GIBIBYTE = 1_073_741_824;
|
|
99
|
+
const GIBIBYTES_PER_WORKER = 2;
|
|
100
|
+
/**
|
|
101
|
+
* How many workers a browser run spreads the sweep over, and so how many parts each pass has.
|
|
102
|
+
* @param processors the processors the machine offers.
|
|
103
|
+
* @param memoryBytes the memory it has.
|
|
104
|
+
* @returns the workers, between four and eight.
|
|
105
|
+
*/
|
|
106
|
+
export const sweepWorkersFor = (processors, memoryBytes) => {
|
|
107
|
+
const byProcessors = Math.floor(processors / PROCESSORS_PER_WORKER);
|
|
108
|
+
const byMemory = Math.floor(memoryBytes / (GIBIBYTES_PER_WORKER * BYTES_PER_GIBIBYTE));
|
|
109
|
+
return Math.min(MAX_SWEEP_WORKERS, Math.max(MIN_SWEEP_WORKERS, Math.min(byProcessors, byMemory)));
|
|
110
|
+
};
|
|
111
|
+
/** The variable carrying the workers a run decided on to the suite and each of its workers. */
|
|
112
|
+
export const SWEEP_WORKERS_ENVIRONMENT_VARIABLE = 'PLOANESS_SWEEP_WORKERS';
|
|
113
|
+
/** The `docker` arguments that report the processors and memory the browsers' machine has. */
|
|
114
|
+
export const dockerCapacityArguments = ['info', '--format', '{{.NCPU}} {{.MemTotal}}'];
|
|
115
|
+
/**
|
|
116
|
+
* Read what `dockerCapacityArguments` reports.
|
|
117
|
+
* @param output what `docker` wrote.
|
|
118
|
+
* @returns the capacity, or undefined when the output is not two positive whole numbers.
|
|
119
|
+
*/
|
|
120
|
+
export const dockerCapacityOf = (output) => {
|
|
121
|
+
const [processors, memoryBytes] = output.trim().split(/\s+/u).map(Number);
|
|
122
|
+
return processors !== undefined && memoryBytes !== undefined && processors > 0 && memoryBytes > 0
|
|
123
|
+
? { processors, memoryBytes }
|
|
124
|
+
: undefined;
|
|
125
|
+
};
|
|
126
|
+
/**
|
|
127
|
+
* The workers a run can give the sweep: the fewer of what the host affords, where the runner, the servers
|
|
128
|
+
* and the test workers live, and what the browsers' machine affords. On Linux the two are one machine;
|
|
129
|
+
* Docker Desktop and Colima run the browsers in a virtual machine smaller than the host, and eight
|
|
130
|
+
* browsers in a machine of nine processors made every pass slower than four did.
|
|
131
|
+
* @param host the machine the run starts on.
|
|
132
|
+
* @param browsers the machine the browsers run on, when it is known.
|
|
133
|
+
* @returns the workers.
|
|
134
|
+
*/
|
|
135
|
+
export const sweepWorkersAcross = (host, browsers) => Math.min(sweepWorkersFor(host.processors, host.memoryBytes), browsers === undefined ? MAX_SWEEP_WORKERS : sweepWorkersFor(browsers.processors, browsers.memoryBytes));
|
|
136
|
+
/**
|
|
137
|
+
* The workers a run decided on, as its environment carries them.
|
|
138
|
+
* @param value the variable's value.
|
|
139
|
+
* @returns the workers, or undefined when the value is not a worker count the sweep allows.
|
|
140
|
+
*/
|
|
141
|
+
export const declaredSweepWorkers = (value) => {
|
|
142
|
+
const workers = Number(value);
|
|
143
|
+
return Number.isSafeInteger(workers) && workers >= MIN_SWEEP_WORKERS && workers <= MAX_SWEEP_WORKERS
|
|
144
|
+
? workers
|
|
145
|
+
: undefined;
|
|
146
|
+
};
|
|
78
147
|
/**
|
|
79
148
|
* The time one part of a pass may take. The parts take the pass's items from one queue, so each does an
|
|
80
149
|
* equal share of the work whatever items it happens to take.
|
|
@@ -84,8 +153,72 @@ export const SWEEP_SHARDS = 4;
|
|
|
84
153
|
* @returns its budget in milliseconds.
|
|
85
154
|
*/
|
|
86
155
|
export const partBudgetMs = (pass, units, shard) => passBudgetMs(pass, Math.ceil(units / shard.count));
|
|
156
|
+
// The pinned WebKit draws every page in software, so a heavy page holds a processor for seconds per frame,
|
|
157
|
+
// and as many such pages at once as the sweep has workers starve one another until one stops answering.
|
|
158
|
+
// Its engine pass runs in half as many parts, each with the budget of its larger share.
|
|
159
|
+
const SOFTWARE_DRAWN_ENGINE = 'webkit';
|
|
160
|
+
const SOFTWARE_DRAWN_SHARE = 2;
|
|
161
|
+
/**
|
|
162
|
+
* How many parts an engine's engine pass runs in.
|
|
163
|
+
* @param engine the engine.
|
|
164
|
+
* @param parts the parts every other pass runs in.
|
|
165
|
+
* @returns the parts, at least one.
|
|
166
|
+
*/
|
|
167
|
+
export const enginePassParts = (engine, parts) => engine === SOFTWARE_DRAWN_ENGINE ? Math.max(1, Math.floor(parts / SOFTWARE_DRAWN_SHARE)) : parts;
|
|
87
168
|
/** Where the container sees the host's Playwright, mounted read-only. */
|
|
88
169
|
const CONTAINER_PLAYWRIGHT = '/ploaness/playwright-core';
|
|
170
|
+
/** The container labels that record a browser server's owner. */
|
|
171
|
+
export const BROWSER_SERVER_OWNER_LABELS = {
|
|
172
|
+
pid: 'ploaness.owner.pid',
|
|
173
|
+
started: 'ploaness.owner.started',
|
|
174
|
+
host: 'ploaness.owner.host',
|
|
175
|
+
};
|
|
176
|
+
const LISTING_SEPARATOR = '|';
|
|
177
|
+
/** The `docker` arguments that list every browser server recording its owner, one per line. */
|
|
178
|
+
export const browserServerListingArguments = [
|
|
179
|
+
'ps',
|
|
180
|
+
'--all',
|
|
181
|
+
`--filter=label=${BROWSER_SERVER_OWNER_LABELS.pid}`,
|
|
182
|
+
`--format=${[
|
|
183
|
+
'{{.Names}}',
|
|
184
|
+
`{{.Label "${BROWSER_SERVER_OWNER_LABELS.pid}"}}`,
|
|
185
|
+
`{{.Label "${BROWSER_SERVER_OWNER_LABELS.started}"}}`,
|
|
186
|
+
`{{.Label "${BROWSER_SERVER_OWNER_LABELS.host}"}}`,
|
|
187
|
+
].join(LISTING_SEPARATOR)}`,
|
|
188
|
+
];
|
|
189
|
+
const ownerOf = (pid, started, host) => started !== '' && host !== '' && /^[1-9]\d*$/u.test(pid) ? { pid: Number(pid), started, host } : undefined;
|
|
190
|
+
/**
|
|
191
|
+
* Read the listing `browserServerListingArguments` produces.
|
|
192
|
+
* @param listing what `docker` wrote.
|
|
193
|
+
* @returns each listed server.
|
|
194
|
+
*/
|
|
195
|
+
export const listedBrowserServers = (listing) => listing
|
|
196
|
+
.split('\n')
|
|
197
|
+
.filter((line) => line.trim() !== '')
|
|
198
|
+
.map((line) => {
|
|
199
|
+
const [name = '', pid = '', started = '', host = ''] = line.split(LISTING_SEPARATOR);
|
|
200
|
+
return { name: name.trim(), owner: ownerOf(pid.trim(), started.trim(), host.trim()) };
|
|
201
|
+
});
|
|
202
|
+
/**
|
|
203
|
+
* Whether a browser server was left behind by a run that no longer exists. Only a server started on this
|
|
204
|
+
* machine is judged, and its owner is gone when no process holds the PID or the one holding it started at
|
|
205
|
+
* another time.
|
|
206
|
+
* @param owner the owner recorded on the container.
|
|
207
|
+
* @param host this machine's name.
|
|
208
|
+
* @param running when the process now holding the owner's PID started, or undefined when none does.
|
|
209
|
+
* @returns true when the server may be removed.
|
|
210
|
+
*/
|
|
211
|
+
export const isOrphanedBrowserServer = (owner, host, running) => running !== owner.started && owner.host === host;
|
|
212
|
+
// Headless Firefox in the image finds no native OpenGL and draws no WebGL at all, while Chromium and
|
|
213
|
+
// WebKit draw it in software, so the Firefox pass judged a page without its WebGL effects - which almost
|
|
214
|
+
// no Firefox visitor sees - and reported the error a WebGL library logs without a context. Given EGL by
|
|
215
|
+
// the environment and WebGL forced on in the autoconfig file Playwright's Firefox reads, it draws WebGL
|
|
216
|
+
// through the image's Mesa as the other engines do. The preference is written inside the container
|
|
217
|
+
// before the server starts, so no client has to send it: a server that accepted client preferences would
|
|
218
|
+
// accept a client's choice of executable as well.
|
|
219
|
+
const FIREFOX_WEBGL = 'for config in /ms-playwright/firefox-*/firefox/playwright.cfg; do ' +
|
|
220
|
+
String.raw `printf "\npref(\"webgl.force-enabled\", true);\n" >> "$config"; done; ` +
|
|
221
|
+
'exec node "$0" run-server "$@"';
|
|
89
222
|
/** The variable telling the suite its pinned browsers reach the application only through the tunnel. */
|
|
90
223
|
export const BROWSER_TUNNEL_ENVIRONMENT_VARIABLE = 'PLOANESS_BROWSER_TUNNEL';
|
|
91
224
|
/**
|
|
@@ -104,13 +237,21 @@ export const pinnedBrowserServerArguments = (server) => [
|
|
|
104
237
|
'--init',
|
|
105
238
|
'--ipc=host',
|
|
106
239
|
`--name=${server.name}`,
|
|
240
|
+
`--label=${BROWSER_SERVER_OWNER_LABELS.pid}=${String(server.owner.pid)}`,
|
|
241
|
+
`--label=${BROWSER_SERVER_OWNER_LABELS.started}=${server.owner.started}`,
|
|
242
|
+
`--label=${BROWSER_SERVER_OWNER_LABELS.host}=${server.owner.host}`,
|
|
107
243
|
server.isHostNetwork ? '--network=host' : `--publish=127.0.0.1:${String(server.port)}:${String(server.port)}`,
|
|
108
244
|
`--volume=${server.playwrightCore}:${CONTAINER_PLAYWRIGHT}:ro`,
|
|
245
|
+
// The EGL path Firefox needs for software WebGL; see FIREFOX_WEBGL.
|
|
246
|
+
'--env=MOZ_WEBGL_FORCE_EGL=1',
|
|
109
247
|
'--workdir=/tmp',
|
|
110
248
|
server.image,
|
|
111
|
-
|
|
249
|
+
// The port and the path travel as arguments of the script rather than inside it, so nothing a run
|
|
250
|
+
// chooses is ever read as shell.
|
|
251
|
+
'sh',
|
|
252
|
+
'-c',
|
|
253
|
+
FIREFOX_WEBGL,
|
|
112
254
|
`${CONTAINER_PLAYWRIGHT}/cli.js`,
|
|
113
|
-
'run-server',
|
|
114
255
|
`--port=${String(server.port)}`,
|
|
115
256
|
server.isHostNetwork ? '--host=127.0.0.1' : '--host=0.0.0.0',
|
|
116
257
|
`--path=/${server.secret}`,
|
package/dist/browser-run.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"browser-run.js","sourceRoot":"","sources":["../src/browser-run.ts"],"names":[],"mappings":"AAAA,oGAAoG;AACpG,wFAAwF;AAExF,uGAAuG;AACvG,MAAM,CAAC,MAAM,0BAA0B,GAAW,gBAAgB,CAAA;AAElE;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAW,0BAA0B,CAAA;AAEvE,sDAAsD;AACtD,MAAM,CAAC,MAAM,UAAU,GAAW,MAAM,CAAA;AAExC,MAAM,WAAW,GAAW,gFAAgF,CAAA;AAE5G;;;;GAIG;AACH,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,QAAiB,EAAU,EAAE;IACnD,IAAI,QAAQ,KAAK,UAAU,EAAE,CAAC;QAC5B,OAAO,UAAU,CAAA;IACnB,CAAC;IACD,OAAO,OAAO,QAAQ,KAAK,QAAQ,IAAI,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QACtG,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,EAAE;QAC9C,CAAC,CAAC,qBAAqB,CAAA;AAC3B,CAAC,CAAA;AAED;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,SAAiB,EAAE,SAAiB,EAAE,MAAc,EAAU,EAAE,CAC1F,SAAS,GAAG,CAAC,MAAM,GAAG,SAAS,CAAC,CAAA;AAElC,2EAA2E;AAC3E,MAAM,CAAC,MAAM,qCAAqC,GAAW,2BAA2B,CAAA;AAExF;;;;GAIG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,OAAe,EAAU,EAAE,CAAC,iCAAiC,OAAO,QAAQ,CAAA;AAE9G,4FAA4F;AAC5F,MAAM,CAAC,MAAM,eAAe,GAAsB,CAAC,UAAU,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAA;AAanF,mGAAmG;AACnG,iGAAiG;AACjG,
|
|
1
|
+
{"version":3,"file":"browser-run.js","sourceRoot":"","sources":["../src/browser-run.ts"],"names":[],"mappings":"AAAA,oGAAoG;AACpG,wFAAwF;AAExF,uGAAuG;AACvG,MAAM,CAAC,MAAM,0BAA0B,GAAW,gBAAgB,CAAA;AAElE;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAW,0BAA0B,CAAA;AAEvE,sDAAsD;AACtD,MAAM,CAAC,MAAM,UAAU,GAAW,MAAM,CAAA;AAExC,MAAM,WAAW,GAAW,gFAAgF,CAAA;AAE5G;;;;GAIG;AACH,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,QAAiB,EAAU,EAAE;IACnD,IAAI,QAAQ,KAAK,UAAU,EAAE,CAAC;QAC5B,OAAO,UAAU,CAAA;IACnB,CAAC;IACD,OAAO,OAAO,QAAQ,KAAK,QAAQ,IAAI,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QACtG,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,EAAE;QAC9C,CAAC,CAAC,qBAAqB,CAAA;AAC3B,CAAC,CAAA;AAED;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,SAAiB,EAAE,SAAiB,EAAE,MAAc,EAAU,EAAE,CAC1F,SAAS,GAAG,CAAC,MAAM,GAAG,SAAS,CAAC,CAAA;AAElC,2EAA2E;AAC3E,MAAM,CAAC,MAAM,qCAAqC,GAAW,2BAA2B,CAAA;AAExF;;;;GAIG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,OAAe,EAAU,EAAE,CAAC,iCAAiC,OAAO,QAAQ,CAAA;AAE9G,4FAA4F;AAC5F,MAAM,CAAC,MAAM,eAAe,GAAsB,CAAC,UAAU,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAA;AAanF,mGAAmG;AACnG,iGAAiG;AACjG,yGAAyG;AACzG,wGAAwG;AACxG,uGAAuG;AACvG,iBAAiB;AACjB,MAAM,aAAa,GAAwC;IACzD,SAAS,EAAE,MAAM;IACjB,OAAO,EAAE,MAAM;IACf,WAAW,EAAE,IAAI;IACjB,WAAW,EAAE,IAAI;IACjB,aAAa,EAAE,MAAM;IACrB,aAAa,EAAE,IAAI;IACnB,aAAa,EAAE,MAAM;IACrB,MAAM,EAAE,MAAM;CACf,CAAA;AAED,sFAAsF;AACtF,MAAM,gBAAgB,GAAW,MAAM,CAAA;AAEvC,oDAAoD;AACpD,MAAM,CAAC,MAAM,gBAAgB,GAAW,aAAa,CAAA;AAErD,sFAAsF;AACtF,MAAM,CAAC,MAAM,eAAe,GAAW,YAAY,CAAA;AAEnD,wGAAwG;AACxG,mGAAmG;AACnG,wDAAwD;AACxD,MAAM,qBAAqB,GAAW,CAAC,CAAA;AACvC,MAAM,mBAAmB,GAAW,MAAM,CAAA;AAE1C;;;;;GAKG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,IAAe,EAAE,KAAa,EAAU,EAAE,CACpE,IAAI,CAAC,GAAG,CAAC,mBAAmB,EAAE,qBAAqB,GAAG,aAAa,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAA;AAEjG;;;;;GAKG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,IAAe,EAAE,KAAa,EAAU,EAAE,CACrE,gBAAgB,GAAG,aAAa,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAA;AAE7D,sGAAsG;AACtG,sGAAsG;AACtG,uGAAuG;AACvG,uGAAuG;AACvG,uGAAuG;AACvG,qGAAqG;AACrG,mGAAmG;AACnG,MAAM,iBAAiB,GAAW,CAAC,CAAA;AACnC,MAAM,iBAAiB,GAAW,CAAC,CAAA;AACnC,MAAM,qBAAqB,GAAW,CAAC,CAAA;AACvC,MAAM,kBAAkB,GAAW,aAAa,CAAA;AAChD,MAAM,oBAAoB,GAAW,CAAC,CAAA;AAEtC;;;;;GAKG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,UAAkB,EAAE,WAAmB,EAAU,EAAE;IACjF,MAAM,YAAY,GAAW,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,qBAAqB,CAAC,CAAA;IAC3E,MAAM,QAAQ,GAAW,IAAI,CAAC,KAAK,CAAC,WAAW,GAAG,CAAC,oBAAoB,GAAG,kBAAkB,CAAC,CAAC,CAAA;IAC9F,OAAO,IAAI,CAAC,GAAG,CAAC,iBAAiB,EAAE,IAAI,CAAC,GAAG,CAAC,iBAAiB,EAAE,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAA;AACnG,CAAC,CAAA;AAQD,+FAA+F;AAC/F,MAAM,CAAC,MAAM,kCAAkC,GAAW,wBAAwB,CAAA;AAElF,8FAA8F;AAC9F,MAAM,CAAC,MAAM,uBAAuB,GAAsB,CAAC,MAAM,EAAE,UAAU,EAAE,yBAAyB,CAAC,CAAA;AAEzG;;;;GAIG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,MAAc,EAA+B,EAAE;IAC9E,MAAM,CAAC,UAAU,EAAE,WAAW,CAAC,GAAsB,MAAM,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;IAC5F,OAAO,UAAU,KAAK,SAAS,IAAI,WAAW,KAAK,SAAS,IAAI,UAAU,GAAG,CAAC,IAAI,WAAW,GAAG,CAAC;QAC/F,CAAC,CAAC,EAAE,UAAU,EAAE,WAAW,EAAE;QAC7B,CAAC,CAAC,SAAS,CAAA;AACf,CAAC,CAAA;AAED;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,IAAqB,EAAE,QAAqC,EAAU,EAAE,CACzG,IAAI,CAAC,GAAG,CACN,eAAe,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,EAClD,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,eAAe,CAAC,QAAQ,CAAC,UAAU,EAAE,QAAQ,CAAC,WAAW,CAAC,CACxG,CAAA;AAEH;;;;GAIG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,KAAyB,EAAsB,EAAE;IACpF,MAAM,OAAO,GAAW,MAAM,CAAC,KAAK,CAAC,CAAA;IACrC,OAAO,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC,IAAI,OAAO,IAAI,iBAAiB,IAAI,OAAO,IAAI,iBAAiB;QAClG,CAAC,CAAC,OAAO;QACT,CAAC,CAAC,SAAS,CAAA;AACf,CAAC,CAAA;AAcD;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,IAAe,EAAE,KAAa,EAAE,KAAY,EAAU,EAAE,CACnF,YAAY,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAA;AAEpD,2GAA2G;AAC3G,wGAAwG;AACxG,wFAAwF;AACxF,MAAM,qBAAqB,GAAW,QAAQ,CAAA;AAC9C,MAAM,oBAAoB,GAAW,CAAC,CAAA;AAEtC;;;;;GAKG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,MAAc,EAAE,KAAa,EAAU,EAAE,CACvE,MAAM,KAAK,qBAAqB,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,oBAAoB,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAA;AAElG,yEAAyE;AACzE,MAAM,oBAAoB,GAAW,2BAA2B,CAAA;AAchE,iEAAiE;AACjE,MAAM,CAAC,MAAM,2BAA2B,GAAuD;IAC7F,GAAG,EAAE,oBAAoB;IACzB,OAAO,EAAE,wBAAwB;IACjC,IAAI,EAAE,qBAAqB;CAC5B,CAAA;AAED,MAAM,iBAAiB,GAAW,GAAG,CAAA;AAErC,+FAA+F;AAC/F,MAAM,CAAC,MAAM,6BAA6B,GAAsB;IAC9D,IAAI;IACJ,OAAO;IACP,kBAAkB,2BAA2B,CAAC,GAAG,EAAE;IACnD,YAAY;QACV,YAAY;QACZ,aAAa,2BAA2B,CAAC,GAAG,KAAK;QACjD,aAAa,2BAA2B,CAAC,OAAO,KAAK;QACrD,aAAa,2BAA2B,CAAC,IAAI,KAAK;KACnD,CAAC,IAAI,CAAC,iBAAiB,CAAC,EAAE;CAC5B,CAAA;AAQD,MAAM,OAAO,GAAG,CAAC,GAAW,EAAE,OAAe,EAAE,IAAY,EAAkC,EAAE,CAC7F,OAAO,KAAK,EAAE,IAAI,IAAI,KAAK,EAAE,IAAI,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,SAAS,CAAA;AAE5G;;;;GAIG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,OAAe,EAAkC,EAAE,CACtF,OAAO;KACJ,KAAK,CAAC,IAAI,CAAC;KACX,MAAM,CAAC,CAAC,IAAY,EAAW,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC;KACrD,GAAG,CAAC,CAAC,IAAY,EAAuB,EAAE;IACzC,MAAM,CAAC,IAAI,GAAG,EAAE,EAAE,GAAG,GAAG,EAAE,EAAE,OAAO,GAAG,EAAE,EAAE,IAAI,GAAG,EAAE,CAAC,GAAsB,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAA;IACvG,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,OAAO,CAAC,IAAI,EAAE,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,CAAA;AACvF,CAAC,CAAC,CAAA;AAEN;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,CACrC,KAAyB,EACzB,IAAY,EACZ,OAA2B,EAClB,EAAE,CAAC,OAAO,KAAK,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,IAAI,KAAK,IAAI,CAAA;AAwB9D,qGAAqG;AACrG,yGAAyG;AACzG,wGAAwG;AACxG,wGAAwG;AACxG,mGAAmG;AACnG,yGAAyG;AACzG,kDAAkD;AAClD,MAAM,aAAa,GACjB,oEAAoE;IACpE,MAAM,CAAC,GAAG,CAAA,wEAAwE;IAClF,gCAAgC,CAAA;AAElC,wGAAwG;AACxG,MAAM,CAAC,MAAM,mCAAmC,GAAW,yBAAyB,CAAA;AAEpF;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAAC,MAA2B,EAAqB,EAAE,CAAC;IAC9F,KAAK;IACL,UAAU;IACV,MAAM;IACN,QAAQ;IACR,YAAY;IACZ,UAAU,MAAM,CAAC,IAAI,EAAE;IACvB,WAAW,2BAA2B,CAAC,GAAG,IAAI,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;IACxE,WAAW,2BAA2B,CAAC,OAAO,IAAI,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE;IACxE,WAAW,2BAA2B,CAAC,IAAI,IAAI,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE;IAClE,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,uBAAuB,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE;IAC7G,YAAY,MAAM,CAAC,cAAc,IAAI,oBAAoB,KAAK;IAC9D,oEAAoE;IACpE,6BAA6B;IAC7B,gBAAgB;IAChB,MAAM,CAAC,KAAK;IACZ,kGAAkG;IAClG,iCAAiC;IACjC,IAAI;IACJ,IAAI;IACJ,aAAa;IACb,GAAG,oBAAoB,SAAS;IAChC,UAAU,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE;IAC/B,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,gBAAgB;IAC5D,WAAW,MAAM,CAAC,MAAM,EAAE;CAC3B,CAAA;AAED;;;;;GAKG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,IAAY,EAAE,MAAc,EAAU,EAAE,CAC5E,kBAAkB,MAAM,CAAC,IAAI,CAAC,IAAI,MAAM,EAAE,CAAA"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
/** The styles of an element that can show focus, as the browser computes them. */
|
|
2
|
+
export interface IndicatorStyle {
|
|
3
|
+
readonly outlineStyle: string;
|
|
4
|
+
readonly outlineWidth: string;
|
|
5
|
+
readonly outlineOffset: string;
|
|
6
|
+
readonly outlineColor: string;
|
|
7
|
+
readonly boxShadow: string;
|
|
8
|
+
readonly borderColor: string;
|
|
9
|
+
readonly backgroundColor: string;
|
|
10
|
+
readonly color: string;
|
|
11
|
+
readonly textDecorationLine: string;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* How far beyond its box a focused element's outline and outer shadows reach.
|
|
15
|
+
* @param style the element's computed outline and box shadow while focused.
|
|
16
|
+
* @returns the reach in CSS pixels, never less than `FOCUS_RING_WIDTH`.
|
|
17
|
+
*/
|
|
18
|
+
export declare const indicatorReach: (style: IndicatorStyle) => number;
|
|
19
|
+
/** An element's box in the viewport, in CSS pixels. */
|
|
20
|
+
export interface ElementBox {
|
|
21
|
+
readonly left: number;
|
|
22
|
+
readonly top: number;
|
|
23
|
+
readonly right: number;
|
|
24
|
+
readonly bottom: number;
|
|
25
|
+
}
|
|
26
|
+
/** An element where focus can show: its box, and its styles with the focused element focused and not. */
|
|
27
|
+
export interface IndicatorElement {
|
|
28
|
+
readonly box: ElementBox;
|
|
29
|
+
readonly focused: IndicatorStyle;
|
|
30
|
+
readonly unfocused: IndicatorStyle;
|
|
31
|
+
}
|
|
32
|
+
/** A region of the viewport, in whole CSS pixels. */
|
|
33
|
+
export interface FocusRegion {
|
|
34
|
+
readonly x: number;
|
|
35
|
+
readonly y: number;
|
|
36
|
+
readonly width: number;
|
|
37
|
+
readonly height: number;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* The region of the viewport a focus indicator can show in: the focused element, and each element beside
|
|
41
|
+
* it - an ancestor or a descendant - whose outline, shadow, border, background, text colour or decoration
|
|
42
|
+
* changes with focus, each with as far as its outline and shadows reach.
|
|
43
|
+
* @param focused the focused element.
|
|
44
|
+
* @param related its ancestors and descendants.
|
|
45
|
+
* @param viewport the viewport's size.
|
|
46
|
+
* @param viewport.width its width in CSS pixels.
|
|
47
|
+
* @param viewport.height its height in CSS pixels.
|
|
48
|
+
* @returns the region, or undefined when none of it is in the viewport.
|
|
49
|
+
*/
|
|
50
|
+
export declare const focusRegion: (focused: IndicatorElement, related: readonly IndicatorElement[], viewport: {
|
|
51
|
+
readonly width: number;
|
|
52
|
+
readonly height: number;
|
|
53
|
+
}) => FocusRegion | undefined;
|
|
54
|
+
//# sourceMappingURL=focus-reach.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"focus-reach.d.ts","sourceRoot":"","sources":["../src/focus-reach.ts"],"names":[],"mappings":"AAMA,kFAAkF;AAClF,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAA;IAC7B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAA;IAC7B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAA;IAC9B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAA;IAC7B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;IAC5B,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAA;IAChC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAA;CACpC;AA2BD;;;;GAIG;AACH,eAAO,MAAM,cAAc,GAAI,OAAO,cAAc,KAAG,MAOtD,CAAA;AAED,uDAAuD;AACvD,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CACxB;AAED,yGAAyG;AACzG,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,GAAG,EAAE,UAAU,CAAA;IACxB,QAAQ,CAAC,OAAO,EAAE,cAAc,CAAA;IAChC,QAAQ,CAAC,SAAS,EAAE,cAAc,CAAA;CACnC;AAED,qDAAqD;AACrD,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAA;IAClB,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAA;IAClB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CACxB;AA6BD;;;;;;;;;;GAUG;AACH,eAAO,MAAM,WAAW,GACtB,SAAS,gBAAgB,EACzB,SAAS,SAAS,gBAAgB,EAAE,EACpC,UAAU;IAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CAAE,KAC5D,WAAW,GAAG,SAgBhB,CAAA"}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
// Where a focus indicator can show. The focus rules compare the page focused and unfocused within one
|
|
2
|
+
// region, so the region has to hold the whole indicator: an outline drawn at an offset or a ring drawn as a
|
|
3
|
+
// shadow beyond a gap lies outside the element's box, and an indicator another element draws - the card
|
|
4
|
+
// around a stretched link, the icon inside a button - lies wherever that element is.
|
|
5
|
+
import { FOCUS_RING_WIDTH } from './browser-rules.js';
|
|
6
|
+
// A computed shadow list writes each shadow's lengths together, before or after its colour, so splitting it
|
|
7
|
+
// at every comma - a colour's own commas included - leaves each shadow's lengths, and its `inset`, in one
|
|
8
|
+
// piece; a piece holding a colour's channels alone has no lengths and reaches nowhere.
|
|
9
|
+
const PIXELS = 'px';
|
|
10
|
+
const HORIZONTAL = 0;
|
|
11
|
+
const VERTICAL = 1;
|
|
12
|
+
const BLUR = 2;
|
|
13
|
+
const SPREAD = 3;
|
|
14
|
+
// The edge of an indicator at a fractional position is drawn into one more pixel.
|
|
15
|
+
const ANTIALIASING_PX = 1;
|
|
16
|
+
const pixelsOf = (length) => Number(length.slice(0, -PIXELS.length)) || 0;
|
|
17
|
+
const pieceReach = (piece) => {
|
|
18
|
+
const tokens = piece.trim().split(' ');
|
|
19
|
+
if (tokens.includes('inset')) {
|
|
20
|
+
return 0;
|
|
21
|
+
}
|
|
22
|
+
const lengths = tokens
|
|
23
|
+
.filter((token) => token.endsWith(PIXELS))
|
|
24
|
+
.map((token) => pixelsOf(token));
|
|
25
|
+
const offset = Math.max(Math.abs(lengths[HORIZONTAL] ?? 0), Math.abs(lengths[VERTICAL] ?? 0));
|
|
26
|
+
return Math.max(0, offset + (lengths[BLUR] ?? 0) + (lengths[SPREAD] ?? 0));
|
|
27
|
+
};
|
|
28
|
+
/**
|
|
29
|
+
* How far beyond its box a focused element's outline and outer shadows reach.
|
|
30
|
+
* @param style the element's computed outline and box shadow while focused.
|
|
31
|
+
* @returns the reach in CSS pixels, never less than `FOCUS_RING_WIDTH`.
|
|
32
|
+
*/
|
|
33
|
+
export const indicatorReach = (style) => {
|
|
34
|
+
const outline = style.outlineStyle === 'none' ? 0 : pixelsOf(style.outlineWidth) + pixelsOf(style.outlineOffset);
|
|
35
|
+
const shadows = style.boxShadow === 'none' ? [] : style.boxShadow.split(',').map((piece) => pieceReach(piece));
|
|
36
|
+
const reach = Math.max(0, outline, ...shadows);
|
|
37
|
+
return Math.max(FOCUS_RING_WIDTH, Math.ceil(reach) + (reach > 0 ? ANTIALIASING_PX : 0));
|
|
38
|
+
};
|
|
39
|
+
const INDICATOR_PROPERTIES = [
|
|
40
|
+
'outlineStyle',
|
|
41
|
+
'outlineWidth',
|
|
42
|
+
'outlineOffset',
|
|
43
|
+
'outlineColor',
|
|
44
|
+
'boxShadow',
|
|
45
|
+
'borderColor',
|
|
46
|
+
'backgroundColor',
|
|
47
|
+
'color',
|
|
48
|
+
'textDecorationLine',
|
|
49
|
+
];
|
|
50
|
+
const isRestyled = (element) => INDICATOR_PROPERTIES.some((property) => element.focused[property] !== element.unfocused[property]);
|
|
51
|
+
const reachedBox = (element) => {
|
|
52
|
+
const reach = Math.max(indicatorReach(element.focused), indicatorReach(element.unfocused));
|
|
53
|
+
return {
|
|
54
|
+
left: element.box.left - reach,
|
|
55
|
+
top: element.box.top - reach,
|
|
56
|
+
right: element.box.right + reach,
|
|
57
|
+
bottom: element.box.bottom + reach,
|
|
58
|
+
};
|
|
59
|
+
};
|
|
60
|
+
/**
|
|
61
|
+
* The region of the viewport a focus indicator can show in: the focused element, and each element beside
|
|
62
|
+
* it - an ancestor or a descendant - whose outline, shadow, border, background, text colour or decoration
|
|
63
|
+
* changes with focus, each with as far as its outline and shadows reach.
|
|
64
|
+
* @param focused the focused element.
|
|
65
|
+
* @param related its ancestors and descendants.
|
|
66
|
+
* @param viewport the viewport's size.
|
|
67
|
+
* @param viewport.width its width in CSS pixels.
|
|
68
|
+
* @param viewport.height its height in CSS pixels.
|
|
69
|
+
* @returns the region, or undefined when none of it is in the viewport.
|
|
70
|
+
*/
|
|
71
|
+
export const focusRegion = (focused, related, viewport) => {
|
|
72
|
+
const boxes = [
|
|
73
|
+
focused,
|
|
74
|
+
...related.filter((element) => isRestyled(element)),
|
|
75
|
+
].map((element) => reachedBox(element));
|
|
76
|
+
const lefts = boxes.map((box) => box.left);
|
|
77
|
+
const tops = boxes.map((box) => box.top);
|
|
78
|
+
const rights = boxes.map((box) => box.right);
|
|
79
|
+
const bottoms = boxes.map((box) => box.bottom);
|
|
80
|
+
const left = Math.max(0, Math.floor(Math.min(...lefts)));
|
|
81
|
+
const top = Math.max(0, Math.floor(Math.min(...tops)));
|
|
82
|
+
const right = Math.min(viewport.width, Math.ceil(Math.max(...rights)));
|
|
83
|
+
const bottom = Math.min(viewport.height, Math.ceil(Math.max(...bottoms)));
|
|
84
|
+
return right - left < 1 || bottom - top < 1
|
|
85
|
+
? undefined
|
|
86
|
+
: { x: left, y: top, width: right - left, height: bottom - top };
|
|
87
|
+
};
|
|
88
|
+
//# sourceMappingURL=focus-reach.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"focus-reach.js","sourceRoot":"","sources":["../src/focus-reach.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -43,6 +43,7 @@ export * from './editorconfig-policy.js';
|
|
|
43
43
|
export * from './environment-coherence.js';
|
|
44
44
|
export * from './environment-files.js';
|
|
45
45
|
export * from './file-roles.js';
|
|
46
|
+
export * from './focus-reach.js';
|
|
46
47
|
export * from './freshness-repair.js';
|
|
47
48
|
export * from './generated-denial.js';
|
|
48
49
|
export * from './generated-drift.js';
|
|
@@ -52,6 +53,7 @@ export * from './history-policy.js';
|
|
|
52
53
|
export * from './image-assets.js';
|
|
53
54
|
export * from './install-policy.js';
|
|
54
55
|
export * from './javascript-runtimes.js';
|
|
56
|
+
export * from './javascript-syntax.js';
|
|
55
57
|
export * from './json-shapes.js';
|
|
56
58
|
export * from './jsx-accessibility.js';
|
|
57
59
|
export * from './jsx-accessibility-scope.js';
|
|
@@ -96,6 +98,7 @@ export * from './skill-manifest.js';
|
|
|
96
98
|
export * from './source-selection.js';
|
|
97
99
|
export * from './source-text.js';
|
|
98
100
|
export * from './suppression-ceiling.js';
|
|
101
|
+
export * from './sweep-progress.js';
|
|
99
102
|
export * from './tailwind-tokens.js';
|
|
100
103
|
export * from './terraform-blocks.js';
|
|
101
104
|
export * from './terraform-files.js';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -47,6 +47,7 @@ export * from './editorconfig-policy.js';
|
|
|
47
47
|
export * from './environment-coherence.js';
|
|
48
48
|
export * from './environment-files.js';
|
|
49
49
|
export * from './file-roles.js';
|
|
50
|
+
export * from './focus-reach.js';
|
|
50
51
|
export * from './freshness-repair.js';
|
|
51
52
|
export * from './generated-denial.js';
|
|
52
53
|
export * from './generated-drift.js';
|
|
@@ -56,6 +57,7 @@ export * from './history-policy.js';
|
|
|
56
57
|
export * from './image-assets.js';
|
|
57
58
|
export * from './install-policy.js';
|
|
58
59
|
export * from './javascript-runtimes.js';
|
|
60
|
+
export * from './javascript-syntax.js';
|
|
59
61
|
export * from './json-shapes.js';
|
|
60
62
|
export * from './jsx-accessibility.js';
|
|
61
63
|
export * from './jsx-accessibility-scope.js';
|
|
@@ -100,6 +102,7 @@ export * from './skill-manifest.js';
|
|
|
100
102
|
export * from './source-selection.js';
|
|
101
103
|
export * from './source-text.js';
|
|
102
104
|
export * from './suppression-ceiling.js';
|
|
105
|
+
export * from './sweep-progress.js';
|
|
103
106
|
export * from './tailwind-tokens.js';
|
|
104
107
|
export * from './terraform-blocks.js';
|
|
105
108
|
export * from './terraform-files.js';
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/** The syntax facts needed to distinguish a call's arguments from its callee and nested function bodies. */
|
|
2
|
+
export interface JavascriptSyntaxNode {
|
|
3
|
+
readonly type: string;
|
|
4
|
+
readonly arguments?: readonly JavascriptSyntaxNode[];
|
|
5
|
+
}
|
|
6
|
+
/**
|
|
7
|
+
* Whether an expression is evaluated within a call or constructor argument in its own function body.
|
|
8
|
+
* @param node the expression being checked.
|
|
9
|
+
* @param ancestors its ancestors, from the program to its immediate parent.
|
|
10
|
+
* @returns true when an argument contains the expression without crossing a function boundary.
|
|
11
|
+
*/
|
|
12
|
+
export declare const isWithinCallArguments: (node: JavascriptSyntaxNode, ancestors: readonly JavascriptSyntaxNode[]) => boolean;
|
|
13
|
+
//# sourceMappingURL=javascript-syntax.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"javascript-syntax.d.ts","sourceRoot":"","sources":["../src/javascript-syntax.ts"],"names":[],"mappings":"AAAA,4GAA4G;AAC5G,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,oBAAoB,EAAE,CAAA;CACrD;AAQD;;;;;GAKG;AACH,eAAO,MAAM,qBAAqB,GAChC,MAAM,oBAAoB,EAC1B,WAAW,SAAS,oBAAoB,EAAE,KACzC,OAYF,CAAA"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
const FUNCTION_BOUNDARIES = new Set([
|
|
2
|
+
'FunctionDeclaration',
|
|
3
|
+
'FunctionExpression',
|
|
4
|
+
'ArrowFunctionExpression',
|
|
5
|
+
]);
|
|
6
|
+
/**
|
|
7
|
+
* Whether an expression is evaluated within a call or constructor argument in its own function body.
|
|
8
|
+
* @param node the expression being checked.
|
|
9
|
+
* @param ancestors its ancestors, from the program to its immediate parent.
|
|
10
|
+
* @returns true when an argument contains the expression without crossing a function boundary.
|
|
11
|
+
*/
|
|
12
|
+
export const isWithinCallArguments = (node, ancestors) => {
|
|
13
|
+
const parent = ancestors.at(-1);
|
|
14
|
+
if (parent === undefined || FUNCTION_BOUNDARIES.has(parent.type)) {
|
|
15
|
+
return false;
|
|
16
|
+
}
|
|
17
|
+
if ((parent.type === 'CallExpression' || parent.type === 'NewExpression') &&
|
|
18
|
+
parent.arguments?.includes(node) === true) {
|
|
19
|
+
return true;
|
|
20
|
+
}
|
|
21
|
+
return isWithinCallArguments(parent, ancestors.slice(0, -1));
|
|
22
|
+
};
|
|
23
|
+
//# sourceMappingURL=javascript-syntax.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"javascript-syntax.js","sourceRoot":"","sources":["../src/javascript-syntax.ts"],"names":[],"mappings":"AAMA,MAAM,mBAAmB,GAAwB,IAAI,GAAG,CAAS;IAC/D,qBAAqB;IACrB,oBAAoB;IACpB,yBAAyB;CAC1B,CAAC,CAAA;AAEF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,CACnC,IAA0B,EAC1B,SAA0C,EACjC,EAAE;IACX,MAAM,MAAM,GAAqC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA;IACjE,IAAI,MAAM,KAAK,SAAS,IAAI,mBAAmB,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;QACjE,OAAO,KAAK,CAAA;IACd,CAAC;IACD,IACE,CAAC,MAAM,CAAC,IAAI,KAAK,gBAAgB,IAAI,MAAM,CAAC,IAAI,KAAK,eAAe,CAAC;QACrE,MAAM,CAAC,SAAS,EAAE,QAAQ,CAAC,IAAI,CAAC,KAAK,IAAI,EACzC,CAAC;QACD,OAAO,IAAI,CAAA;IACb,CAAC;IACD,OAAO,qBAAqB,CAAC,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA;AAC9D,CAAC,CAAA"}
|
|
@@ -207,4 +207,16 @@ export declare const hasArea: (rect: LayoutRect) => boolean;
|
|
|
207
207
|
* @returns a path such as `body/main:0/div:2`.
|
|
208
208
|
*/
|
|
209
209
|
export declare const keyOf: (snapshot: LayoutSnapshot, node: LayoutNode) => string;
|
|
210
|
+
/**
|
|
211
|
+
* The font faces of a page measured twice, each as loaded as it was in either measurement.
|
|
212
|
+
*
|
|
213
|
+
* A page cannot unload a face it has loaded, but a browser can drop what it holds of one: WebKit, after
|
|
214
|
+
* a stall, can report every face of an unchanged page unloaded again while its text still renders in
|
|
215
|
+
* them. A face loaded in the first measurement is therefore not judged missing in the second. Faces
|
|
216
|
+
* are paired by position, so a font set that changed between the two is taken from the second as it is.
|
|
217
|
+
* @param first the faces of the first measurement.
|
|
218
|
+
* @param second the faces of the second.
|
|
219
|
+
* @returns the faces to judge.
|
|
220
|
+
*/
|
|
221
|
+
export declare const heldFontFaces: (first: readonly FontFaceFacts[], second: readonly FontFaceFacts[]) => readonly FontFaceFacts[];
|
|
210
222
|
//# sourceMappingURL=layout-snapshot.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"layout-snapshot.d.ts","sourceRoot":"","sources":["../src/layout-snapshot.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"layout-snapshot.d.ts","sourceRoot":"","sources":["../src/layout-snapshot.ts"],"names":[],"mappings":"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"}
|
package/dist/layout-snapshot.js
CHANGED
|
@@ -188,4 +188,23 @@ export const keyOf = (snapshot, node) => {
|
|
|
188
188
|
.indexOf(node);
|
|
189
189
|
return `${keyOf(snapshot, parent)}/${node.tag}:${String(position)}`;
|
|
190
190
|
};
|
|
191
|
+
/**
|
|
192
|
+
* The font faces of a page measured twice, each as loaded as it was in either measurement.
|
|
193
|
+
*
|
|
194
|
+
* A page cannot unload a face it has loaded, but a browser can drop what it holds of one: WebKit, after
|
|
195
|
+
* a stall, can report every face of an unchanged page unloaded again while its text still renders in
|
|
196
|
+
* them. A face loaded in the first measurement is therefore not judged missing in the second. Faces
|
|
197
|
+
* are paired by position, so a font set that changed between the two is taken from the second as it is.
|
|
198
|
+
* @param first the faces of the first measurement.
|
|
199
|
+
* @param second the faces of the second.
|
|
200
|
+
* @returns the faces to judge.
|
|
201
|
+
*/
|
|
202
|
+
export const heldFontFaces = (first, second) => first.length === second.length
|
|
203
|
+
? second.map((face, index) => {
|
|
204
|
+
const earlier = first[index];
|
|
205
|
+
return earlier?.status === 'loaded' && earlier.family === face.family && face.status === 'unloaded'
|
|
206
|
+
? { ...face, status: 'loaded' }
|
|
207
|
+
: face;
|
|
208
|
+
})
|
|
209
|
+
: second;
|
|
191
210
|
//# sourceMappingURL=layout-snapshot.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"layout-snapshot.js","sourceRoot":"","sources":["../src/layout-snapshot.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"layout-snapshot.js","sourceRoot":"","sources":["../src/layout-snapshot.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import type { Shard, SweepPass } from './browser-run.js';
|
|
2
|
+
/** The prefix of every line the sweep prints about its own progress. */
|
|
3
|
+
export declare const SWEEP_PROGRESS_MARKER: string;
|
|
4
|
+
/** How often a working part of the sweep says how far it has got. */
|
|
5
|
+
export declare const HEARTBEAT_MS: number;
|
|
6
|
+
/**
|
|
7
|
+
* Whether a line of the browser suite's output belongs in the live run log.
|
|
8
|
+
* @param line one line the suite wrote.
|
|
9
|
+
* @returns true for a test's result, the opening of the run, and the sweep's own progress.
|
|
10
|
+
*/
|
|
11
|
+
export declare const isProgressLine: (line: string) => boolean;
|
|
12
|
+
/** Where a sweep pass stands, counted across all its parallel parts. */
|
|
13
|
+
export interface PassProgress {
|
|
14
|
+
readonly engine: string;
|
|
15
|
+
readonly pass: SweepPass;
|
|
16
|
+
readonly total: number;
|
|
17
|
+
/** Items any part has finished. */
|
|
18
|
+
readonly done: number;
|
|
19
|
+
/** Items no part has taken yet. */
|
|
20
|
+
readonly waiting: number;
|
|
21
|
+
readonly elapsedMs: number;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* The line a pass prints when it starts.
|
|
25
|
+
* @param engine the browser engine.
|
|
26
|
+
* @param pass the pass.
|
|
27
|
+
* @param total how many items the pass has.
|
|
28
|
+
* @param parts how many parts share them.
|
|
29
|
+
* @returns the line.
|
|
30
|
+
*/
|
|
31
|
+
export declare const passStartLine: (engine: string, pass: SweepPass, total: number, parts: number) => string;
|
|
32
|
+
/**
|
|
33
|
+
* The line a pass prints while it works: what is done, what is under way, what waits, and how long the
|
|
34
|
+
* rest should take at the pace so far.
|
|
35
|
+
* @param progress where the pass stands.
|
|
36
|
+
* @returns the line.
|
|
37
|
+
*/
|
|
38
|
+
export declare const passProgressLine: (progress: PassProgress) => string;
|
|
39
|
+
/**
|
|
40
|
+
* The line a pass prints when its last item is done.
|
|
41
|
+
* @param engine the browser engine.
|
|
42
|
+
* @param pass the pass.
|
|
43
|
+
* @param total how many items it had.
|
|
44
|
+
* @param elapsedMs how long it took.
|
|
45
|
+
* @returns the line.
|
|
46
|
+
*/
|
|
47
|
+
export declare const passFinishLine: (engine: string, pass: SweepPass, total: number, elapsedMs: number) => string;
|
|
48
|
+
/**
|
|
49
|
+
* The lines a part prints when it ends with findings, so a reader learns what fails as soon as the part
|
|
50
|
+
* is done rather than when the whole suite reports: a heading, then each finding as the report words it.
|
|
51
|
+
* @param engine the browser engine.
|
|
52
|
+
* @param pass the pass.
|
|
53
|
+
* @param shard the part.
|
|
54
|
+
* @param findings each finding, worded as the suite's report words it.
|
|
55
|
+
* @returns the lines; none for a part without findings.
|
|
56
|
+
*/
|
|
57
|
+
export declare const partFindingLines: (engine: string, pass: SweepPass, shard: Shard, findings: readonly string[]) => readonly string[];
|
|
58
|
+
/**
|
|
59
|
+
* The interval a moment falls in, which the parts of a pass compete to report once.
|
|
60
|
+
* @param epochMs the moment, by the real clock.
|
|
61
|
+
* @returns the interval's number.
|
|
62
|
+
*/
|
|
63
|
+
export declare const heartbeatSlot: (epochMs: number) => number;
|
|
64
|
+
//# sourceMappingURL=sweep-progress.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sweep-progress.d.ts","sourceRoot":"","sources":["../src/sweep-progress.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AAExD,wEAAwE;AACxE,eAAO,MAAM,qBAAqB,EAAE,MAA2B,CAAA;AAE/D,qEAAqE;AACrE,eAAO,MAAM,YAAY,EAAE,MAAe,CAAA;AAU1C;;;;GAIG;AACH,eAAO,MAAM,cAAc,GAAI,MAAM,MAAM,KAAG,OAC4C,CAAA;AAe1F,wEAAwE;AACxE,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAA;IACxB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,mCAAmC;IACnC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,mCAAmC;IACnC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;CAC3B;AAkBD;;;;;;;GAOG;AACH,eAAO,MAAM,aAAa,GAAI,QAAQ,MAAM,EAAE,MAAM,SAAS,EAAE,OAAO,MAAM,EAAE,OAAO,MAAM,KAAG,MACQ,CAAA;AAEtG;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB,GAAI,UAAU,YAAY,KAAG,MAUzD,CAAA;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,cAAc,GAAI,QAAQ,MAAM,EAAE,MAAM,SAAS,EAAE,OAAO,MAAM,EAAE,WAAW,MAAM,KAAG,MACV,CAAA;AAEzF;;;;;;;;GAQG;AACH,eAAO,MAAM,gBAAgB,GAC3B,QAAQ,MAAM,EACd,MAAM,SAAS,EACf,OAAO,KAAK,EACZ,UAAU,SAAS,MAAM,EAAE,KAC1B,SAAS,MAAM,EAOX,CAAA;AAEP;;;;GAIG;AACH,eAAO,MAAM,aAAa,GAAI,SAAS,MAAM,KAAG,MAA4C,CAAA"}
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
/** The prefix of every line the sweep prints about its own progress. */
|
|
2
|
+
export const SWEEP_PROGRESS_MARKER = '[ploaness-sweep]';
|
|
3
|
+
/** How often a working part of the sweep says how far it has got. */
|
|
4
|
+
export const HEARTBEAT_MS = 60_000;
|
|
5
|
+
const MS_PER_SECOND = 1000;
|
|
6
|
+
const SECONDS_PER_MINUTE = 60;
|
|
7
|
+
const SECONDS_WIDTH = 2;
|
|
8
|
+
// Playwright's list reporter: a result line per test, and the line that opens the run.
|
|
9
|
+
const TEST_RESULT = /^\s*(?:[-x×✓✘]|ok)\s+\d+\s+\[/u;
|
|
10
|
+
const RUN_OPENING = /^\s*Running \d+ tests? using \d+ workers?/u;
|
|
11
|
+
/**
|
|
12
|
+
* Whether a line of the browser suite's output belongs in the live run log.
|
|
13
|
+
* @param line one line the suite wrote.
|
|
14
|
+
* @returns true for a test's result, the opening of the run, and the sweep's own progress.
|
|
15
|
+
*/
|
|
16
|
+
export const isProgressLine = (line) => line.includes(SWEEP_PROGRESS_MARKER) || TEST_RESULT.test(line) || RUN_OPENING.test(line);
|
|
17
|
+
// The passes in the order a Chromium run takes them; Firefox and WebKit run the engine pass alone.
|
|
18
|
+
const CHROMIUM_PASSES = [
|
|
19
|
+
'discovery',
|
|
20
|
+
'resting',
|
|
21
|
+
'interaction',
|
|
22
|
+
'disclosures',
|
|
23
|
+
'text-stress',
|
|
24
|
+
'width-sweep',
|
|
25
|
+
'dark-scheme',
|
|
26
|
+
];
|
|
27
|
+
const PERCENT = 100;
|
|
28
|
+
const duration = (ms) => {
|
|
29
|
+
const seconds = Math.floor(ms / MS_PER_SECOND);
|
|
30
|
+
const minutes = Math.floor(seconds / SECONDS_PER_MINUTE);
|
|
31
|
+
return minutes === 0
|
|
32
|
+
? `${String(seconds)}s`
|
|
33
|
+
: `${String(minutes)}m ${String(seconds % SECONDS_PER_MINUTE).padStart(SECONDS_WIDTH, '0')}s`;
|
|
34
|
+
};
|
|
35
|
+
// Which of an engine's passes this is, so a reader knows how much of the engine's work is behind it.
|
|
36
|
+
const headingOf = (engine, pass) => {
|
|
37
|
+
const index = CHROMIUM_PASSES.indexOf(pass);
|
|
38
|
+
const position = index === -1 ? 'pass 1 of 1' : `pass ${String(index + 1)} of ${String(CHROMIUM_PASSES.length)}`;
|
|
39
|
+
return `${SWEEP_PROGRESS_MARKER} ${engine} ${pass} (${position})`;
|
|
40
|
+
};
|
|
41
|
+
/**
|
|
42
|
+
* The line a pass prints when it starts.
|
|
43
|
+
* @param engine the browser engine.
|
|
44
|
+
* @param pass the pass.
|
|
45
|
+
* @param total how many items the pass has.
|
|
46
|
+
* @param parts how many parts share them.
|
|
47
|
+
* @returns the line.
|
|
48
|
+
*/
|
|
49
|
+
export const passStartLine = (engine, pass, total, parts) => `${headingOf(engine, pass)}: started, ${String(total)} items across ${String(parts)} parallel parts`;
|
|
50
|
+
/**
|
|
51
|
+
* The line a pass prints while it works: what is done, what is under way, what waits, and how long the
|
|
52
|
+
* rest should take at the pace so far.
|
|
53
|
+
* @param progress where the pass stands.
|
|
54
|
+
* @returns the line.
|
|
55
|
+
*/
|
|
56
|
+
export const passProgressLine = (progress) => {
|
|
57
|
+
const { done, total, waiting, elapsedMs } = progress;
|
|
58
|
+
const working = Math.max(0, total - waiting - done);
|
|
59
|
+
const share = total === 0 ? PERCENT : Math.floor((done / total) * PERCENT);
|
|
60
|
+
const left = done === 0 ? 'estimating what is left' : `about ${duration((elapsedMs / done) * (total - done))} left`;
|
|
61
|
+
return (`${headingOf(progress.engine, progress.pass)}: ${String(done)}/${String(total)} done (${String(share)}%), ` +
|
|
62
|
+
`${String(working)} in progress, ${String(waiting)} waiting · ${duration(elapsedMs)} elapsed, ${left}`);
|
|
63
|
+
};
|
|
64
|
+
/**
|
|
65
|
+
* The line a pass prints when its last item is done.
|
|
66
|
+
* @param engine the browser engine.
|
|
67
|
+
* @param pass the pass.
|
|
68
|
+
* @param total how many items it had.
|
|
69
|
+
* @param elapsedMs how long it took.
|
|
70
|
+
* @returns the line.
|
|
71
|
+
*/
|
|
72
|
+
export const passFinishLine = (engine, pass, total, elapsedMs) => `${headingOf(engine, pass)}: finished ${String(total)} items in ${duration(elapsedMs)}`;
|
|
73
|
+
/**
|
|
74
|
+
* The lines a part prints when it ends with findings, so a reader learns what fails as soon as the part
|
|
75
|
+
* is done rather than when the whole suite reports: a heading, then each finding as the report words it.
|
|
76
|
+
* @param engine the browser engine.
|
|
77
|
+
* @param pass the pass.
|
|
78
|
+
* @param shard the part.
|
|
79
|
+
* @param findings each finding, worded as the suite's report words it.
|
|
80
|
+
* @returns the lines; none for a part without findings.
|
|
81
|
+
*/
|
|
82
|
+
export const partFindingLines = (engine, pass, shard, findings) => findings.length === 0
|
|
83
|
+
? []
|
|
84
|
+
: [
|
|
85
|
+
`${headingOf(engine, pass)} part ${String(shard.index + 1)} of ${String(shard.count)}: ` +
|
|
86
|
+
`${String(findings.length)} ${findings.length === 1 ? 'finding' : 'findings'}`,
|
|
87
|
+
...findings.map((finding) => `${SWEEP_PROGRESS_MARKER} ${finding}`),
|
|
88
|
+
];
|
|
89
|
+
/**
|
|
90
|
+
* The interval a moment falls in, which the parts of a pass compete to report once.
|
|
91
|
+
* @param epochMs the moment, by the real clock.
|
|
92
|
+
* @returns the interval's number.
|
|
93
|
+
*/
|
|
94
|
+
export const heartbeatSlot = (epochMs) => Math.floor(epochMs / HEARTBEAT_MS);
|
|
95
|
+
//# sourceMappingURL=sweep-progress.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sweep-progress.js","sourceRoot":"","sources":["../src/sweep-progress.ts"],"names":[],"mappings":"AASA,wEAAwE;AACxE,MAAM,CAAC,MAAM,qBAAqB,GAAW,kBAAkB,CAAA;AAE/D,qEAAqE;AACrE,MAAM,CAAC,MAAM,YAAY,GAAW,MAAM,CAAA;AAE1C,MAAM,aAAa,GAAW,IAAI,CAAA;AAClC,MAAM,kBAAkB,GAAW,EAAE,CAAA;AACrC,MAAM,aAAa,GAAW,CAAC,CAAA;AAE/B,uFAAuF;AACvF,MAAM,WAAW,GAAW,gCAAgC,CAAA;AAC5D,MAAM,WAAW,GAAW,4CAA4C,CAAA;AAExE;;;;GAIG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,IAAY,EAAW,EAAE,CACtD,IAAI,CAAC,QAAQ,CAAC,qBAAqB,CAAC,IAAI,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AAE1F,mGAAmG;AACnG,MAAM,eAAe,GAAyB;IAC5C,WAAW;IACX,SAAS;IACT,aAAa;IACb,aAAa;IACb,aAAa;IACb,aAAa;IACb,aAAa;CACd,CAAA;AAED,MAAM,OAAO,GAAW,GAAG,CAAA;AAc3B,MAAM,QAAQ,GAAG,CAAC,EAAU,EAAU,EAAE;IACtC,MAAM,OAAO,GAAW,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,aAAa,CAAC,CAAA;IACtD,MAAM,OAAO,GAAW,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,kBAAkB,CAAC,CAAA;IAChE,OAAO,OAAO,KAAK,CAAC;QAClB,CAAC,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG;QACvB,CAAC,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,MAAM,CAAC,OAAO,GAAG,kBAAkB,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,GAAG,CAAC,GAAG,CAAA;AACjG,CAAC,CAAA;AAED,qGAAqG;AACrG,MAAM,SAAS,GAAG,CAAC,MAAc,EAAE,IAAe,EAAU,EAAE;IAC5D,MAAM,KAAK,GAAW,eAAe,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;IACnD,MAAM,QAAQ,GACZ,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,QAAQ,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,OAAO,MAAM,CAAC,eAAe,CAAC,MAAM,CAAC,EAAE,CAAA;IACjG,OAAO,GAAG,qBAAqB,IAAI,MAAM,IAAI,IAAI,KAAK,QAAQ,GAAG,CAAA;AACnE,CAAC,CAAA;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,MAAc,EAAE,IAAe,EAAE,KAAa,EAAE,KAAa,EAAU,EAAE,CACrG,GAAG,SAAS,CAAC,MAAM,EAAE,IAAI,CAAC,cAAc,MAAM,CAAC,KAAK,CAAC,iBAAiB,MAAM,CAAC,KAAK,CAAC,iBAAiB,CAAA;AAEtG;;;;;GAKG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,QAAsB,EAAU,EAAE;IACjE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,GAAiB,QAAQ,CAAA;IAClE,MAAM,OAAO,GAAW,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,GAAG,OAAO,GAAG,IAAI,CAAC,CAAA;IAC3D,MAAM,KAAK,GAAW,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,GAAG,KAAK,CAAC,GAAG,OAAO,CAAC,CAAA;IAClF,MAAM,IAAI,GACR,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,yBAAyB,CAAC,CAAC,CAAC,SAAS,QAAQ,CAAC,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC,OAAO,CAAA;IACxG,OAAO,CACL,GAAG,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,IAAI,CAAC,KAAK,MAAM,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,UAAU,MAAM,CAAC,KAAK,CAAC,MAAM;QAC3G,GAAG,MAAM,CAAC,OAAO,CAAC,iBAAiB,MAAM,CAAC,OAAO,CAAC,cAAc,QAAQ,CAAC,SAAS,CAAC,aAAa,IAAI,EAAE,CACvG,CAAA;AACH,CAAC,CAAA;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,MAAc,EAAE,IAAe,EAAE,KAAa,EAAE,SAAiB,EAAU,EAAE,CAC1G,GAAG,SAAS,CAAC,MAAM,EAAE,IAAI,CAAC,cAAc,MAAM,CAAC,KAAK,CAAC,aAAa,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAA;AAEzF;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAC9B,MAAc,EACd,IAAe,EACf,KAAY,EACZ,QAA2B,EACR,EAAE,CACrB,QAAQ,CAAC,MAAM,KAAK,CAAC;IACnB,CAAC,CAAC,EAAE;IACJ,CAAC,CAAC;QACE,GAAG,SAAS,CAAC,MAAM,EAAE,IAAI,CAAC,SAAS,MAAM,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,OAAO,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI;YACtF,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,EAAE;QAChF,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAe,EAAU,EAAE,CAAC,GAAG,qBAAqB,MAAM,OAAO,EAAE,CAAC;KACtF,CAAA;AAEP;;;;GAIG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,OAAe,EAAU,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,YAAY,CAAC,CAAA"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ploaness/governance",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.15.0",
|
|
4
4
|
"description": "Pure, unit-tested governance rules for ploaness. No filesystem, process, or network access.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "Herman Ciechanowiec <herman@ciechanowiec.eu>",
|