@ploaness/config 1.5.0 → 1.7.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/biome-core.json +9 -3
- package/biome.json +1 -1
- package/dependency-cruiser-core.json +1 -4
- package/dist/a11y.d.ts +24 -9
- package/dist/a11y.d.ts.map +1 -1
- package/dist/a11y.js +58 -143
- package/dist/a11y.js.map +1 -1
- package/dist/access.d.ts.map +1 -1
- package/dist/access.js.map +1 -1
- package/dist/eslint-core.d.ts.map +1 -1
- package/dist/eslint-core.js +32 -17
- package/dist/eslint-core.js.map +1 -1
- package/dist/eslint-library.d.ts +3 -2
- package/dist/eslint-library.d.ts.map +1 -1
- package/dist/eslint-library.js +2 -1
- package/dist/eslint-library.js.map +1 -1
- package/dist/eslint-security.d.ts.map +1 -1
- package/dist/eslint-security.js +2 -6
- package/dist/eslint-security.js.map +1 -1
- package/dist/eslint.d.ts +5 -2
- package/dist/eslint.d.ts.map +1 -1
- package/dist/eslint.js +31 -12
- package/dist/eslint.js.map +1 -1
- package/dist/layout.d.ts +23 -0
- package/dist/layout.d.ts.map +1 -0
- package/dist/layout.js +185 -0
- package/dist/layout.js.map +1 -0
- package/dist/playwright.d.ts.map +1 -1
- package/dist/playwright.js +16 -5
- package/dist/playwright.js.map +1 -1
- package/dist/production-server.d.ts +2 -0
- package/dist/production-server.d.ts.map +1 -0
- package/dist/production-server.js +63 -0
- package/dist/production-server.js.map +1 -0
- package/dist/project-settings.d.ts.map +1 -1
- package/dist/project-settings.js +1 -1
- package/dist/project-settings.js.map +1 -1
- package/dist/security.d.ts +8 -0
- package/dist/security.d.ts.map +1 -0
- package/dist/security.js +7 -0
- package/dist/security.js.map +1 -0
- package/dist/settle.d.ts +13 -0
- package/dist/settle.d.ts.map +1 -0
- package/dist/settle.js +136 -0
- package/dist/settle.js.map +1 -0
- package/dist/vitest-core.d.ts.map +1 -1
- package/dist/vitest-core.js.map +1 -1
- package/dist/vitest-library.d.ts.map +1 -1
- package/dist/vitest-library.js +1 -1
- package/dist/vitest-library.js.map +1 -1
- package/dist/vitest-setup.js +1 -6
- package/dist/vitest-setup.js.map +1 -1
- package/package.json +17 -12
- package/pins.json +5 -5
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/** Both Playwright navigation responses and request responses expose this surface. */
|
|
2
|
+
export interface SecurityResponse {
|
|
3
|
+
readonly headers: () => Record<string, string>;
|
|
4
|
+
readonly url: () => string;
|
|
5
|
+
}
|
|
6
|
+
/** Assert the existing HTML response baseline using the response that the test actually received. */
|
|
7
|
+
export declare const expectSecurityHeaders: (response: SecurityResponse) => void;
|
|
8
|
+
//# sourceMappingURL=security.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"security.d.ts","sourceRoot":"","sources":["../src/security.ts"],"names":[],"mappings":"AAGA,sFAAsF;AACtF,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,OAAO,EAAE,MAAM,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC9C,QAAQ,CAAC,GAAG,EAAE,MAAM,MAAM,CAAA;CAC3B;AAED,qGAAqG;AACrG,eAAO,MAAM,qBAAqB,GAAI,UAAU,gBAAgB,KAAG,IAElE,CAAA"}
|
package/dist/security.js
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { expect } from '@playwright/test';
|
|
2
|
+
import { securityHeaderProblems } from '@ploaness/governance';
|
|
3
|
+
/** Assert the existing HTML response baseline using the response that the test actually received. */
|
|
4
|
+
export const expectSecurityHeaders = (response) => {
|
|
5
|
+
expect(securityHeaderProblems(response.headers()), `security headers on ${response.url()}`).toEqual([]);
|
|
6
|
+
};
|
|
7
|
+
//# sourceMappingURL=security.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"security.js","sourceRoot":"","sources":["../src/security.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAA;AACzC,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAA;AAQ7D,qGAAqG;AACrG,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,QAA0B,EAAQ,EAAE;IACxE,MAAM,CAAC,sBAAsB,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,EAAE,uBAAuB,QAAQ,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;AACzG,CAAC,CAAA"}
|
package/dist/settle.d.ts
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { Page } from '@playwright/test';
|
|
2
|
+
/**
|
|
3
|
+
* Wait for a page to finish rendering, before anything measures it.
|
|
4
|
+
*
|
|
5
|
+
* Call it after a navigation, and after a state change a scan is about to judge. A still document
|
|
6
|
+
* costs two animation frames; one that is animating costs however long its animations have left; a
|
|
7
|
+
* document that never stops changing costs the budget and no more, so a page nobody can settle slows
|
|
8
|
+
* the sweep rather than hanging it.
|
|
9
|
+
* @param page the page about to be scanned, left on whatever route it holds.
|
|
10
|
+
* @returns nothing. It resolves whether the page settled or the budget ran out.
|
|
11
|
+
*/
|
|
12
|
+
export declare const settleForScan: (page: Page) => Promise<void>;
|
|
13
|
+
//# sourceMappingURL=settle.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"settle.d.ts","sourceRoot":"","sources":["../src/settle.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAA;AA8I5C;;;;;;;;;GASG;AACH,eAAO,MAAM,aAAa,GAAU,MAAM,IAAI,KAAG,OAAO,CAAC,IAAI,CAU5D,CAAA"}
|
package/dist/settle.js
ADDED
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
// Why a scan needs a wait at all: `page.goto` resolves at the `load` event, and a React application
|
|
2
|
+
// hydrates after that. axe measured in between reads a tree still being assembled - a heading whose
|
|
3
|
+
// level has not resolved lands in `incomplete`, which a consuming project saw on one run in three -
|
|
4
|
+
// and reads contrast against text the final font has not laid out yet.
|
|
5
|
+
//
|
|
6
|
+
// WHAT IT WAITS FOR, in this order: the document's font set has answered; the element count has held
|
|
7
|
+
// steady across two consecutive animation frames; every animation that will ever end has ended; and
|
|
8
|
+
// the count has held steady once more. Fonts first, because contrast is measured on rendered pixels
|
|
9
|
+
// and a face that arrives late reflows the text being judged. The count before the animations rather
|
|
10
|
+
// than after, for the reason written beside it - an animation cannot be waited for until something has
|
|
11
|
+
// created it, and on a hydrating page the mount is what creates it. Two frames rather than one,
|
|
12
|
+
// because React yields between hydration segments and a
|
|
13
|
+
// yield that happens to straddle a frame boundary is indistinguishable from a finished render if only
|
|
14
|
+
// one frame is asked. A fixed count of frames was the first draft and was wrong in the direction that
|
|
15
|
+
// matters: it settles the pages that were never the problem and gives up on a heavy panel exactly
|
|
16
|
+
// where the defect lives.
|
|
17
|
+
//
|
|
18
|
+
// WHY ANIMATIONS ARE PART OF IT. An element count cannot see an opacity. A page that fades its content
|
|
19
|
+
// in changes no element while it does so, so the count was steady two frames after hydration and a
|
|
20
|
+
// scan then measured a half-transparent paragraph - and axe blends a partial opacity toward the
|
|
21
|
+
// background exactly as an eye does, so it reported a contrast this page never actually renders at
|
|
22
|
+
// rest. That is the harmless direction. The other one is why this is a correctness fix rather than a
|
|
23
|
+
// convenience: text animating TOWARDS a colour too pale to read was measured at its opening frame and
|
|
24
|
+
// PASSED, so the sweep built to catch contrast defects returned green on a page whose resting state is
|
|
25
|
+
// a defect. Waiting for the animations to end measures the state a reader is left looking at.
|
|
26
|
+
//
|
|
27
|
+
// An animation that never ends is excluded rather than waited on, and the distinction is the whole
|
|
28
|
+
// reason this does not simply cost the budget. A spinner has no resting state to wait for, so awaiting
|
|
29
|
+
// it would spend the ceiling below on every settle of every control of every route, in exchange for
|
|
30
|
+
// nothing. `finished` never resolves for one, which is a hang the ceiling would absorb silently. The
|
|
31
|
+
// test for it is `iterations`, which a spinner reports as `Infinity`; a paused or already-finished
|
|
32
|
+
// animation is excluded too, because it is showing the frame a reader is looking at right now.
|
|
33
|
+
//
|
|
34
|
+
// A cancelled animation REJECTS `finished` rather than resolving, and that rejection is swallowed. A
|
|
35
|
+
// cancellation is a state change like any other and the element-count check notices it; ending the
|
|
36
|
+
// whole settle over one cancelled transition would report nothing useful about the page.
|
|
37
|
+
//
|
|
38
|
+
// The two callbacks below are written inline rather than named, which is not a style preference: a
|
|
39
|
+
// named helper closing over nothing is one the shipped rules ask to be hoisted to the outer scope, and
|
|
40
|
+
// the outer scope is the one place this function may not reach.
|
|
41
|
+
//
|
|
42
|
+
// WHY NOT `networkidle`. Playwright's own documentation discourages it; it throws on expiry rather
|
|
43
|
+
// than resolving; and it answers a different question. A page can be network-idle and mid-hydration.
|
|
44
|
+
// It is also unusable here in particular: the sweep runs against `next dev`, whose every page holds a
|
|
45
|
+
// hot-reload socket open, so no page it ever visits goes idle.
|
|
46
|
+
//
|
|
47
|
+
// WHY THE CEILING IS A TIMER. `requestAnimationFrame` does not fire in a page the browser has
|
|
48
|
+
// backgrounded, so a frame-counted ceiling is not a ceiling. A throttled background timer still fires.
|
|
49
|
+
// The race is inside the page for the same reason the hit-target probe does its work in one
|
|
50
|
+
// `evaluate`: a Node-side race would leave the in-page promise pending against a context the next
|
|
51
|
+
// navigation destroys.
|
|
52
|
+
const SETTLE_BUDGET_MS = 1000;
|
|
53
|
+
// Everything this function needs is inside it. Playwright ships a page function to the browser as its
|
|
54
|
+
// own source text, so a reference to anything at module scope here would be a ReferenceError in the
|
|
55
|
+
// page rather than a compile error in this file - the one mistake this shape cannot be checked for.
|
|
56
|
+
// It is also why the animation wait below is written inline rather than as a helper of its own.
|
|
57
|
+
const settleInPage = async (budgetMs) => {
|
|
58
|
+
const quietFrames = 2;
|
|
59
|
+
// Recursive rather than a loop over a counter, because there is no mutable binding to count with:
|
|
60
|
+
// this repository bans `let` and in-place mutation in its own source as well as in a consumer's. Each
|
|
61
|
+
// step awaits a frame, so what grows is frames rather than stack - an awaited recursion returns to
|
|
62
|
+
// the microtask queue every time. The frame is awaited inline because this is its only caller.
|
|
63
|
+
const stable = async (previous, remaining) => {
|
|
64
|
+
await new Promise((resolve) => {
|
|
65
|
+
requestAnimationFrame(() => {
|
|
66
|
+
resolve();
|
|
67
|
+
});
|
|
68
|
+
});
|
|
69
|
+
const current = document.querySelectorAll('*').length;
|
|
70
|
+
if (current !== previous) {
|
|
71
|
+
await stable(current, quietFrames);
|
|
72
|
+
return;
|
|
73
|
+
}
|
|
74
|
+
if (remaining > 1) {
|
|
75
|
+
await stable(current, remaining - 1);
|
|
76
|
+
}
|
|
77
|
+
};
|
|
78
|
+
const settled = async () => {
|
|
79
|
+
// The optional call covers a document carrying no font set at all, which must skip the wait
|
|
80
|
+
// rather than fail the settle.
|
|
81
|
+
await document.fonts?.ready;
|
|
82
|
+
// The element count FIRST, and this order is the whole of it. An animation does not exist until
|
|
83
|
+
// something creates it, and on a hydrating page that something is the mount: measured before the
|
|
84
|
+
// framework has mounted, `getAnimations` answers an honest empty list, and a settle that believed
|
|
85
|
+
// it would scan the very frame the animation is about to start from. Waiting for the tree to stop
|
|
86
|
+
// changing is waiting for the mount, which is what puts the animations on the page to be found.
|
|
87
|
+
await stable(document.querySelectorAll('*').length, quietFrames);
|
|
88
|
+
await Promise.all((document.getAnimations?.() ?? [])
|
|
89
|
+
.filter((animation) => animation.playState === 'running' &&
|
|
90
|
+
animation.effect !== null &&
|
|
91
|
+
Number.isFinite(animation.effect.getComputedTiming().iterations))
|
|
92
|
+
.map(async (animation) => {
|
|
93
|
+
try {
|
|
94
|
+
await animation.finished;
|
|
95
|
+
}
|
|
96
|
+
catch {
|
|
97
|
+
// A cancelled animation rejects rather than resolving. The cancellation is a state change
|
|
98
|
+
// like any other and the count below is what notices it.
|
|
99
|
+
}
|
|
100
|
+
}));
|
|
101
|
+
// And again afterwards, because an animation that ends by revealing a panel adds elements as it
|
|
102
|
+
// finishes. This pass costs two frames on a page where nothing moved.
|
|
103
|
+
await stable(document.querySelectorAll('*').length, quietFrames);
|
|
104
|
+
};
|
|
105
|
+
const deadline = async () => {
|
|
106
|
+
await new Promise((resolve) => {
|
|
107
|
+
setTimeout(() => {
|
|
108
|
+
resolve();
|
|
109
|
+
}, budgetMs);
|
|
110
|
+
});
|
|
111
|
+
};
|
|
112
|
+
await Promise.race([settled(), deadline()]);
|
|
113
|
+
};
|
|
114
|
+
/**
|
|
115
|
+
* Wait for a page to finish rendering, before anything measures it.
|
|
116
|
+
*
|
|
117
|
+
* Call it after a navigation, and after a state change a scan is about to judge. A still document
|
|
118
|
+
* costs two animation frames; one that is animating costs however long its animations have left; a
|
|
119
|
+
* document that never stops changing costs the budget and no more, so a page nobody can settle slows
|
|
120
|
+
* the sweep rather than hanging it.
|
|
121
|
+
* @param page the page about to be scanned, left on whatever route it holds.
|
|
122
|
+
* @returns nothing. It resolves whether the page settled or the budget ran out.
|
|
123
|
+
*/
|
|
124
|
+
export const settleForScan = async (page) => {
|
|
125
|
+
try {
|
|
126
|
+
await page.evaluate(settleInPage, SETTLE_BUDGET_MS);
|
|
127
|
+
}
|
|
128
|
+
catch {
|
|
129
|
+
// A route that redirects on mount destroys the execution context while this is in flight, and a
|
|
130
|
+
// closed page cannot be asked anything. Neither is an accessibility finding, and neither should end
|
|
131
|
+
// a sweep: the scan that follows then runs on whatever the page holds, which is what every call
|
|
132
|
+
// site did before this function existed. A page that is genuinely broken still fails at `analyze`,
|
|
133
|
+
// with an axe result to read rather than a protocol error naming no route.
|
|
134
|
+
}
|
|
135
|
+
};
|
|
136
|
+
//# sourceMappingURL=settle.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"settle.js","sourceRoot":"","sources":["../src/settle.ts"],"names":[],"mappings":"AAGA,oGAAoG;AACpG,oGAAoG;AACpG,oGAAoG;AACpG,uEAAuE;AACvE,EAAE;AACF,qGAAqG;AACrG,oGAAoG;AACpG,oGAAoG;AACpG,qGAAqG;AACrG,uGAAuG;AACvG,gGAAgG;AAChG,wDAAwD;AACxD,sGAAsG;AACtG,sGAAsG;AACtG,kGAAkG;AAClG,0BAA0B;AAC1B,EAAE;AACF,uGAAuG;AACvG,mGAAmG;AACnG,gGAAgG;AAChG,mGAAmG;AACnG,qGAAqG;AACrG,sGAAsG;AACtG,uGAAuG;AACvG,8FAA8F;AAC9F,EAAE;AACF,mGAAmG;AACnG,uGAAuG;AACvG,oGAAoG;AACpG,qGAAqG;AACrG,mGAAmG;AACnG,+FAA+F;AAC/F,EAAE;AACF,qGAAqG;AACrG,mGAAmG;AACnG,yFAAyF;AACzF,EAAE;AACF,mGAAmG;AACnG,uGAAuG;AACvG,gEAAgE;AAChE,EAAE;AACF,mGAAmG;AACnG,qGAAqG;AACrG,sGAAsG;AACtG,+DAA+D;AAC/D,EAAE;AACF,8FAA8F;AAC9F,uGAAuG;AACvG,4FAA4F;AAC5F,kGAAkG;AAClG,uBAAuB;AACvB,MAAM,gBAAgB,GAAW,IAAI,CAAA;AAuBrC,sGAAsG;AACtG,oGAAoG;AACpG,oGAAoG;AACpG,gGAAgG;AAChG,MAAM,YAAY,GAAG,KAAK,EAAE,QAAgB,EAAiB,EAAE;IAC7D,MAAM,WAAW,GAAW,CAAC,CAAA;IAC7B,kGAAkG;IAClG,sGAAsG;IACtG,mGAAmG;IACnG,+FAA+F;IAC/F,MAAM,MAAM,GAAG,KAAK,EAAE,QAAgB,EAAE,SAAiB,EAAiB,EAAE;QAC1E,MAAM,IAAI,OAAO,CAAO,CAAC,OAAmB,EAAQ,EAAE;YACpD,qBAAqB,CAAC,GAAS,EAAE;gBAC/B,OAAO,EAAE,CAAA;YACX,CAAC,CAAC,CAAA;QACJ,CAAC,CAAC,CAAA;QACF,MAAM,OAAO,GAAW,QAAQ,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,MAAM,CAAA;QAC7D,IAAI,OAAO,KAAK,QAAQ,EAAE,CAAC;YACzB,MAAM,MAAM,CAAC,OAAO,EAAE,WAAW,CAAC,CAAA;YAClC,OAAM;QACR,CAAC;QACD,IAAI,SAAS,GAAG,CAAC,EAAE,CAAC;YAClB,MAAM,MAAM,CAAC,OAAO,EAAE,SAAS,GAAG,CAAC,CAAC,CAAA;QACtC,CAAC;IACH,CAAC,CAAA;IACD,MAAM,OAAO,GAAG,KAAK,IAAmB,EAAE;QACxC,4FAA4F;QAC5F,+BAA+B;QAC/B,MAAM,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAA;QAC3B,gGAAgG;QAChG,iGAAiG;QACjG,kGAAkG;QAClG,kGAAkG;QAClG,gGAAgG;QAChG,MAAM,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,WAAW,CAAC,CAAA;QAChE,MAAM,OAAO,CAAC,GAAG,CACf,CAAC,QAAQ,CAAC,aAAa,EAAE,EAAE,IAAI,EAAE,CAAC;aAC/B,MAAM,CACL,CAAC,SAAwB,EAAW,EAAE,CACpC,SAAS,CAAC,SAAS,KAAK,SAAS;YACjC,SAAS,CAAC,MAAM,KAAK,IAAI;YACzB,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC,iBAAiB,EAAE,CAAC,UAAU,CAAC,CACnE;aACA,GAAG,CAAC,KAAK,EAAE,SAAwB,EAAiB,EAAE;YACrD,IAAI,CAAC;gBACH,MAAM,SAAS,CAAC,QAAQ,CAAA;YAC1B,CAAC;YAAC,MAAM,CAAC;gBACP,0FAA0F;gBAC1F,yDAAyD;YAC3D,CAAC;QACH,CAAC,CAAC,CACL,CAAA;QACD,gGAAgG;QAChG,sEAAsE;QACtE,MAAM,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,WAAW,CAAC,CAAA;IAClE,CAAC,CAAA;IACD,MAAM,QAAQ,GAAG,KAAK,IAAmB,EAAE;QACzC,MAAM,IAAI,OAAO,CAAO,CAAC,OAAmB,EAAQ,EAAE;YACpD,UAAU,CAAC,GAAS,EAAE;gBACpB,OAAO,EAAE,CAAA;YACX,CAAC,EAAE,QAAQ,CAAC,CAAA;QACd,CAAC,CAAC,CAAA;IACJ,CAAC,CAAA;IACD,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAA;AAC7C,CAAC,CAAA;AAED;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,KAAK,EAAE,IAAU,EAAiB,EAAE;IAC/D,IAAI,CAAC;QACH,MAAM,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE,gBAAgB,CAAC,CAAA;IACrD,CAAC;IAAC,MAAM,CAAC;QACP,gGAAgG;QAChG,oGAAoG;QACpG,gGAAgG;QAChG,mGAAmG;QACnG,2EAA2E;IAC7E,CAAC;AACH,CAAC,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vitest-core.d.ts","sourceRoot":"","sources":["../src/vitest-core.ts"],"names":[],"mappings":"AAUA;;;GAGG;AACH,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,OAAO,EAAE;QAAE,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;QAAC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAA;KAAE,CAAA;IACtE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAA;IAC5B,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAA;IACvB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;CAC5B;AAWD;;;;;GAKG;AACH,eAAO,MAAM,kBAAkB,EAAE,MAAW,CAAA;AAE5C;;;;;GAKG;AACH,eAAO,MAAM,kBAAkB,EAAE,MAAsB,CAAA;AASvD;;;;;;GAMG;AACH,eAAO,MAAM,gBAAgB,QAAO,
|
|
1
|
+
{"version":3,"file":"vitest-core.d.ts","sourceRoot":"","sources":["../src/vitest-core.ts"],"names":[],"mappings":"AAUA;;;GAGG;AACH,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,OAAO,EAAE;QAAE,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;QAAC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAA;KAAE,CAAA;IACtE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAA;IAC5B,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAA;IACvB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;CAC5B;AAWD;;;;;GAKG;AACH,eAAO,MAAM,kBAAkB,EAAE,MAAW,CAAA;AAE5C;;;;;GAKG;AACH,eAAO,MAAM,kBAAkB,EAAE,MAAsB,CAAA;AASvD;;;;;;GAMG;AACH,eAAO,MAAM,gBAAgB,QAAO,MAAoE,CAAA;AAExG;;;;;;;;GAQG;AACH,eAAO,MAAM,iBAAiB,QAAO,SAAS,MAAM,EACkC,CAAA;AAEtF;;;;GAIG;AACH,eAAO,MAAM,sBAAsB,EAAE,qBAWnC,CAAA;AAEF;;;;;;GAMG;AACH,MAAM,MAAM,aAAa,GAAG,SAAS,GAAG,CAAC,gBAAgB,EAAE;IAAE,UAAU,EAAE;QAAE,OAAO,EAAE,KAAK,CAAA;KAAE,CAAA;CAAE,CAAC,CAAA;AAE9F;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,wBAAwB,EAAE,SAAS,aAAa,EAG5D,CAAA;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,aAAa,QAAO,SAAS,aAAa,EAC4B,CAAA"}
|
package/dist/vitest-core.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vitest-core.js","sourceRoot":"","sources":["../src/vitest-core.ts"],"names":[],"mappings":"AAAA,2FAA2F;AAC3F,EAAE;AACF,wGAAwG;AACxG,oGAAoG;AACpG,+CAA+C;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AACpC,OAAO,IAAI,MAAM,WAAW,CAAA;AAC5B,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AACxC,OAAO,EAAE,kBAAkB,IAAI,uBAAuB,EAAE,MAAM,sBAAsB,CAAA;AAcpF;;;;;;GAMG;AACH,MAAM,kBAAkB,GAAW,KAAK,uBAAuB,EAAE,CAAA;AAEjE;;;;;GAKG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAW,EAAE,CAAA;AAE5C;;;;;GAKG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAW,aAAa,CAAA;AAEvD,yGAAyG;AACzG,wGAAwG;AACxG,qGAAqG;AACrG,uGAAuG;AACvG,kEAAkE;AAClE,MAAM,eAAe,GAAW,aAAa,CAAA;AAE7C;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,GAAW,EAAE,
|
|
1
|
+
{"version":3,"file":"vitest-core.js","sourceRoot":"","sources":["../src/vitest-core.ts"],"names":[],"mappings":"AAAA,2FAA2F;AAC3F,EAAE;AACF,wGAAwG;AACxG,oGAAoG;AACpG,+CAA+C;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AACpC,OAAO,IAAI,MAAM,WAAW,CAAA;AAC5B,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AACxC,OAAO,EAAE,kBAAkB,IAAI,uBAAuB,EAAE,MAAM,sBAAsB,CAAA;AAcpF;;;;;;GAMG;AACH,MAAM,kBAAkB,GAAW,KAAK,uBAAuB,EAAE,CAAA;AAEjE;;;;;GAKG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAW,EAAE,CAAA;AAE5C;;;;;GAKG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAW,aAAa,CAAA;AAEvD,yGAAyG;AACzG,wGAAwG;AACxG,qGAAqG;AACrG,uGAAuG;AACvG,kEAAkE;AAClE,MAAM,eAAe,GAAW,aAAa,CAAA;AAE7C;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,GAAW,EAAE,CAAC,aAAa,CAAC,IAAI,GAAG,CAAC,iBAAiB,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAA;AAExG;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,GAAsB,EAAE,CACvD,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;AAEtF;;;;GAIG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAA0B,MAAM,CAAC,MAAM,CAAC;IACzE,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;IACpD,IAAI,EAAE,eAAe;IACrB,2FAA2F;IAC3F,4FAA4F;IAC5F,UAAU,EAAE,KAAK;IACjB,2FAA2F;IAC3F,KAAK,EAAE,OAAO;IACd,kGAAkG;IAClG,iGAAiG;IACjG,UAAU,EAAE,MAAM;CACnB,CAAC,CAAA;AAWF;;;;;;;;;;;;;;GAcG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAA6B;IAChE,SAAS;IACT,CAAC,gBAAgB,EAAE,EAAE,UAAU,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC;CACvD,CAAA;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,GAA6B,EAAE,CAC1D,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,KAAK,MAAM,CAAC,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vitest-library.d.ts","sourceRoot":"","sources":["../src/vitest-library.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"vitest-library.d.ts","sourceRoot":"","sources":["../src/vitest-library.ts"],"names":[],"mappings":"AAoCA,QAAA,MAAM,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAmB,CAAA;AAEjE,eAAe,MAAM,CAAA"}
|
package/dist/vitest-library.js
CHANGED
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
import { COVERAGE_INCLUDE } from '@ploaness/governance';
|
|
9
9
|
import { defineConfig } from 'vitest/config';
|
|
10
10
|
import { projectSettings as settings } from './project-settings.js';
|
|
11
|
-
import { COVERAGE_THRESHOLD, DETERMINISTIC_SEQUENCE, harnessSetupFile, projectSetupFiles
|
|
11
|
+
import { COVERAGE_THRESHOLD, DETERMINISTIC_SEQUENCE, harnessSetupFile, projectSetupFiles } from './vitest-core.js';
|
|
12
12
|
const declared = defineConfig({
|
|
13
13
|
resolve: { tsconfigPaths: true },
|
|
14
14
|
test: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vitest-library.js","sourceRoot":"","sources":["../src/vitest-library.ts"],"names":[],"mappings":"AAAA,oEAAoE;AACpE,EAAE;AACF,uGAAuG;AACvG,oGAAoG;AACpG,uGAAuG;AACvG,sGAAsG;AACtG,qEAAqE;AACrE,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAA;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AAC5C,OAAO,EAAE,eAAe,IAAI,QAAQ,EAAE,MAAM,uBAAuB,CAAA;AACnE,OAAO,
|
|
1
|
+
{"version":3,"file":"vitest-library.js","sourceRoot":"","sources":["../src/vitest-library.ts"],"names":[],"mappings":"AAAA,oEAAoE;AACpE,EAAE;AACF,uGAAuG;AACvG,oGAAoG;AACpG,uGAAuG;AACvG,sGAAsG;AACtG,qEAAqE;AACrE,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAA;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AAC5C,OAAO,EAAE,eAAe,IAAI,QAAQ,EAAE,MAAM,uBAAuB,CAAA;AACnE,OAAO,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAA;AAElH,MAAM,QAAQ,GAAoC,YAAY,CAAC;IAC7D,OAAO,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE;IAChC,IAAI,EAAE;QACJ,WAAW,EAAE,MAAM;QACnB,OAAO,EAAE,CAAC,8BAA8B,EAAE,4BAA4B,CAAC;QACvE,UAAU,EAAE,CAAC,gBAAgB,EAAE,EAAE,GAAG,iBAAiB,EAAE,CAAC;QACxD,QAAQ,EAAE,sBAAsB;QAChC,QAAQ,EAAE;YACR,QAAQ,EAAE,IAAI;YACd,OAAO,EAAE,CAAC,GAAG,gBAAgB,CAAC;YAC9B,OAAO,EAAE,CAAC,GAAG,QAAQ,CAAC,eAAe,CAAC;YACtC,UAAU,EAAE;gBACV,OAAO,EAAE,IAAI;gBACb,KAAK,EAAE,kBAAkB;gBACzB,QAAQ,EAAE,kBAAkB;gBAC5B,SAAS,EAAE,kBAAkB;gBAC7B,UAAU,EAAE,kBAAkB;aAC/B;SACF;KACF;CACF,CAAC,CAAA;AAEF,sGAAsG;AACtG,6FAA6F;AAC7F,MAAM,MAAM,GAAsC,EAAE,GAAG,QAAQ,EAAE,CAAA;AAEjE,eAAe,MAAM,CAAA"}
|
package/dist/vitest-setup.js
CHANGED
|
@@ -122,12 +122,7 @@ install(dns.promises, 'lookup', toLookupAttempt);
|
|
|
122
122
|
// this block exists to close, one constructor away. The prototypes are guarded too.
|
|
123
123
|
// Named without a presence check: both constructors are declared by node's own types, so an optional
|
|
124
124
|
// chain here would be a defence against a shape the runtime cannot have and the compiler already denies.
|
|
125
|
-
const resolverOwners = [
|
|
126
|
-
dns,
|
|
127
|
-
dns.promises,
|
|
128
|
-
dns.Resolver.prototype,
|
|
129
|
-
dns.promises.Resolver.prototype,
|
|
130
|
-
];
|
|
125
|
+
const resolverOwners = [dns, dns.promises, dns.Resolver.prototype, dns.promises.Resolver.prototype];
|
|
131
126
|
for (const method of RESOLVER_METHODS) {
|
|
132
127
|
for (const owner of resolverOwners) {
|
|
133
128
|
install(owner, method, toResolveAttempt);
|
package/dist/vitest-setup.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vitest-setup.js","sourceRoot":"","sources":["../src/vitest-setup.ts"],"names":[],"mappings":"AAAA,iGAAiG;AACjG,kDAAkD;AAClD,EAAE;AACF,sGAAsG;AACtG,iGAAiG;AACjG,uGAAuG;AACvG,wGAAwG;AACxG,oGAAoG;AACpG,mGAAmG;AACnG,kGAAkG;AAClG,+CAA+C;AAC/C,EAAE;AACF,wGAAwG;AACxG,4BAA4B;AAC5B,OAAO,GAAG,MAAM,UAAU,CAAA;AAC1B,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AACpC,OAAO,GAAG,MAAM,UAAU,CAAA;AAC1B,OAAO,EAAE,MAAM,SAAS,CAAA;AACxB,OAAO,EACL,oBAAoB,EACpB,iBAAiB,EACjB,SAAS,EACT,QAAQ,EACR,cAAc,EAEd,gBAAgB,EAChB,mBAAmB,GACpB,MAAM,sBAAsB,CAAA;AAU7B,sGAAsG;AACtG,wGAAwG;AACxG,sGAAsG;AACtG,MAAM,aAAa,GAAG,CAAC,KAAc,EAAwB,EAAE,CAAC,OAAO,KAAK,KAAK,UAAU,CAAA;AAE3F,oGAAoG;AACpG,+FAA+F;AAC/F,oGAAoG;AACpG,qGAAqG;AACrG,mGAAmG;AACnG,8FAA8F;AAC9F,EAAE;AACF,mGAAmG;AACnG,6EAA6E;AAC7E,KAAK,MAAM,IAAI,IAAI,mBAAmB,CAAC,UAAU,CAAC,EAAE,CAAC;IACnD,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,CAAA;AAC3B,CAAC;AAED,qGAAqG;AACrG,6FAA6F;AAC7F,MAAM,UAAU,GAAW,MAAM,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAA;AAE/D,MAAM,iBAAiB,GAAwB,cAAc,CAAC,EAAE,CAAC,iBAAiB,EAAE,CAAC,CAAA;AAErF,MAAM,MAAM,GAAG,CAAC,OAAuB,EAAQ,EAAE;IAC/C,MAAM,OAAO,GAAuB,iBAAiB,CAAC,OAAO,EAAE,iBAAiB,CAAC,CAAA;IACjF,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC1B,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,CAAA;IAC1B,CAAC;AACH,CAAC,CAAA;AAED,qGAAqG;AACrG,sGAAsG;AACtG,uGAAuG;AACvG,sGAAsG;AACtG,6DAA6D;AAC7D,MAAM,KAAK,GAAG,CAAC,QAAqB,EAAE,SAAoB,EAAe,EAAE,CACzE,IAAI,KAAK,CAAC,QAAQ,EAAE;IAClB,oGAAoG;IACpG,oGAAoG;IACpG,4CAA4C;IAC5C,KAAK,EAAE,CAAC,MAAmB,EAAE,QAAiB,EAAE,aAAiC,EAAW,EAAE;QAC5F,MAAM,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,CAAA;QAChC,MAAM,MAAM,GAAY,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,QAAQ,EAAE,aAAa,CAAC,CAAA;QACtE,OAAO,MAAM,CAAA;IACf,CAAC;IACD,GAAG,EAAE,CAAC,MAAmB,EAAE,GAAoB,EAAW,EAAE,
|
|
1
|
+
{"version":3,"file":"vitest-setup.js","sourceRoot":"","sources":["../src/vitest-setup.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ploaness/config",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.7.0",
|
|
4
4
|
"description": "Analyzer and tool configurations owned by ploaness: ESLint, Biome, TypeScript, Vitest, Stylelint, dependency-cruiser, knip.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "Herman Ciechanowiec <herman@ciechanowiec.eu>",
|
|
@@ -60,6 +60,10 @@
|
|
|
60
60
|
"./vitest-library": {
|
|
61
61
|
"types": "./dist/vitest-library.d.ts",
|
|
62
62
|
"default": "./dist/vitest-library.js"
|
|
63
|
+
},
|
|
64
|
+
"./security": {
|
|
65
|
+
"types": "./dist/security.d.ts",
|
|
66
|
+
"default": "./dist/security.js"
|
|
63
67
|
}
|
|
64
68
|
},
|
|
65
69
|
"files": [
|
|
@@ -78,27 +82,28 @@
|
|
|
78
82
|
"@axe-core/playwright": "4.13.0",
|
|
79
83
|
"@eslint-community/eslint-plugin-eslint-comments": "4.8.1",
|
|
80
84
|
"@eslint/js": "10.0.1",
|
|
81
|
-
"@next/eslint-plugin-next": "16.
|
|
82
|
-
"@playwright/test": "1.
|
|
83
|
-
"@ploaness/governance": "1.
|
|
85
|
+
"@next/eslint-plugin-next": "16.4.0",
|
|
86
|
+
"@playwright/test": "1.64.0",
|
|
87
|
+
"@ploaness/governance": "1.7.0",
|
|
84
88
|
"@testing-library/jest-dom": "7.0.1",
|
|
85
89
|
"@testing-library/react": "16.3.3",
|
|
86
90
|
"@testing-library/user-event": "14.6.7",
|
|
87
|
-
"@vitejs/plugin-react": "6.1.
|
|
91
|
+
"@vitejs/plugin-react": "6.1.2",
|
|
88
92
|
"@vitest/eslint-plugin": "1.6.27",
|
|
89
|
-
"eslint": "10.
|
|
93
|
+
"eslint": "10.12.0",
|
|
90
94
|
"eslint-config-prettier": "10.1.8",
|
|
91
95
|
"eslint-plugin-functional": "10.0.1",
|
|
92
|
-
"eslint-plugin-jsdoc": "65.
|
|
96
|
+
"eslint-plugin-jsdoc": "65.2.0",
|
|
97
|
+
"eslint-plugin-playwright": "2.12.1",
|
|
93
98
|
"eslint-plugin-regexp": "3.3.1",
|
|
94
99
|
"eslint-plugin-sonarjs": "4.2.2",
|
|
95
100
|
"eslint-plugin-testing-library": "7.16.2",
|
|
96
|
-
"eslint-plugin-unicorn": "
|
|
101
|
+
"eslint-plugin-unicorn": "77.0.0",
|
|
97
102
|
"fast-check": "4.10.2",
|
|
98
|
-
"globals": "17.
|
|
99
|
-
"jsdom": "30.1.
|
|
103
|
+
"globals": "17.13.0",
|
|
104
|
+
"jsdom": "30.1.2",
|
|
100
105
|
"stylelint-config-standard": "40.0.0",
|
|
101
|
-
"typescript-eslint": "8.71.
|
|
106
|
+
"typescript-eslint": "8.71.1",
|
|
102
107
|
"vitest": "5.0.3"
|
|
103
108
|
},
|
|
104
109
|
"engines": {
|
|
@@ -108,7 +113,7 @@
|
|
|
108
113
|
"access": "public"
|
|
109
114
|
},
|
|
110
115
|
"devDependencies": {
|
|
111
|
-
"@types/node": "26.6.
|
|
116
|
+
"@types/node": "26.6.4",
|
|
112
117
|
"typescript": "6.0.3"
|
|
113
118
|
},
|
|
114
119
|
"scripts": {
|
package/pins.json
CHANGED
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
"requiredFor": ["payload", "application"],
|
|
23
23
|
"why": "What any Next application renders with, whether or not Payload is mounted inside it. A public frontend has the same build, the same client bundle and the same React version to agree about.",
|
|
24
24
|
"versions": {
|
|
25
|
-
"next": "16.
|
|
25
|
+
"next": "16.4.0",
|
|
26
26
|
"react": "19.3.0",
|
|
27
27
|
"react-dom": "19.3.0",
|
|
28
28
|
"@types/react": "19.3.0",
|
|
@@ -34,18 +34,18 @@
|
|
|
34
34
|
"requiredFor": ["payload", "application", "library"],
|
|
35
35
|
"why": "The definitions describing the runtime every governed package compiles against. Pinned for the toolchain's reason rather than the framework's: a type package is an input to tsc, so a patch release changes what type-checks while the project stays unchanged.",
|
|
36
36
|
"versions": {
|
|
37
|
-
"@types/node": "26.6.
|
|
37
|
+
"@types/node": "26.6.4"
|
|
38
38
|
}
|
|
39
39
|
},
|
|
40
40
|
{
|
|
41
41
|
"name": "ecosystem",
|
|
42
42
|
"why": "Packages a Payload project commonly reaches for, none of which every project needs: a database driver and its types, a loader for .env, a cross-platform way to set a variable in a package script, and the bundler a project reaches for when it runs Storybook or a Vite build. ploaness owns the version of each so no two governed projects disagree about one, and forces none of them on a project that has no use for it. Being popular is not what earns a place here, or this list would become a catalogue of every library a project might like: a package belongs when its version can change what a gate decides, or when a second copy of it in one tree is a defect rather than waste. `vite` is the clearest case of the second. ploaness's own vitest and React plugin resolve a vite of their own, so a project declaring a different one installs two - and @vitejs/plugin-react declares vite as a PEER, which makes the mismatch a loading failure rather than mere duplication. ploaness cannot close that by declaring vite itself, because under the strict layout a project's own build cannot reach ploaness's copy; only the project can declare the instance its build loads, which is exactly what a pin is for.",
|
|
43
43
|
"versions": {
|
|
44
|
-
"pg": "8.23.
|
|
44
|
+
"pg": "8.23.1",
|
|
45
45
|
"@types/pg": "8.23.1",
|
|
46
|
-
"dotenv": "18.0.
|
|
46
|
+
"dotenv": "18.0.6",
|
|
47
47
|
"cross-env": "10.1.0",
|
|
48
|
-
"vite": "8.3.
|
|
48
|
+
"vite": "8.3.3"
|
|
49
49
|
}
|
|
50
50
|
}
|
|
51
51
|
]
|