diff --git a/h/static/scripts/group-forms/components/CreateGroupForm.tsx b/h/static/scripts/group-forms/components/CreateGroupForm.tsx
index 9e25931e978..6a2b3dce7a3 100644
--- a/h/static/scripts/group-forms/components/CreateGroupForm.tsx
+++ b/h/static/scripts/group-forms/components/CreateGroupForm.tsx
@@ -6,11 +6,21 @@ function Star() {
return *;
}
-function CharacterCounter({ value, limit }: { value: number; limit: number }) {
+function CharacterCounter({
+ value,
+ limit,
+ testid,
+}: {
+ value: number;
+ limit: number;
+ testid: string;
+}) {
return (
- {value}/{limit}
+
+ {value}/{limit}
+
);
}
@@ -46,13 +56,21 @@ export default function CreateGroupForm() {
-
+
-
+
diff --git a/h/static/scripts/group-forms/components/test/CreateGroupForm-test.js b/h/static/scripts/group-forms/components/test/CreateGroupForm-test.js
new file mode 100644
index 00000000000..6419d748165
--- /dev/null
+++ b/h/static/scripts/group-forms/components/test/CreateGroupForm-test.js
@@ -0,0 +1,23 @@
+import { mount } from 'enzyme';
+
+import CreateGroupForm from '../CreateGroupForm';
+
+describe('CreateGroupForm', () => {
+ const createWrapper = () => mount();
+
+ [
+ { counter: 'name', limit: 25 },
+ { counter: 'description', limit: 250 },
+ ].forEach(({ counter, limit }) => {
+ describe(`${counter} character counter`, () => {
+ it(`initially renders 0/${limit}`, () => {
+ const wrapper = createWrapper();
+ const counterEl = wrapper.find(
+ `[data-testid="character-counter-${counter}"]`,
+ );
+
+ assert.equal(counterEl.text(), `0/${limit}`);
+ });
+ });
+ });
+});
diff --git a/h/static/scripts/tests/bootstrap.js b/h/static/scripts/tests/bootstrap.js
index 7b6d76f812a..1a8106c0845 100644
--- a/h/static/scripts/tests/bootstrap.js
+++ b/h/static/scripts/tests/bootstrap.js
@@ -1,4 +1,6 @@
import { assert } from 'chai';
+import { configure } from 'enzyme';
+import { Adapter } from 'enzyme-adapter-preact-pure';
import sinon from 'sinon';
// Expose the sinon assertions.
@@ -8,3 +10,6 @@ sinon.assert.expose(assert, { prefix: null });
// karma-sinon plugins
globalThis.assert = assert;
globalThis.sinon = sinon;
+
+// Configure Enzyme for UI tests.
+configure({ adapter: new Adapter() });
diff --git a/package.json b/package.json
index aa2d11531df..13e26fd57c4 100644
--- a/package.json
+++ b/package.json
@@ -47,6 +47,8 @@
"babel-plugin-mockable-imports": "^2.0.1",
"chai": "^5.1.1",
"diff": "^5.2.0",
+ "enzyme": "^3.11.0",
+ "enzyme-adapter-preact-pure": "^4.1.0",
"eslint": "^8.57.0",
"eslint-config-hypothesis": "2.6",
"eslint-plugin-mocha": "^10.4.3",
diff --git a/rollup-tests.config.js b/rollup-tests.config.js
index 7f088fdb589..931ecef8dfa 100644
--- a/rollup-tests.config.js
+++ b/rollup-tests.config.js
@@ -10,6 +10,11 @@ export default {
sourcemap: true,
},
treeshake: false,
+ // Suppress a warning (https://rollupjs.org/guide/en/#error-this-is-undefined)
+ // due to https://github.com/babel/babel/issues/9149.
+ //
+ // Any code string other than "undefined" which evaluates to `undefined` will work here.
+ context: 'void(0)',
plugins: [
nodeResolve({
browser: true,
@@ -22,11 +27,25 @@ export default {
// configuration for the `virtual` plugin above.
preferBuiltins: false,
}),
- commonjs(),
+ commonjs({
+ include: 'node_modules/**',
+ }),
babel({
babelHelpers: 'bundled',
exclude: 'node_modules/**',
extensions: ['.js', '.ts', '.tsx'],
+ presets: [
+ [
+ '@babel/preset-react',
+ {
+ // Turn off the `development` setting in tests to prevent warnings
+ // about `this`. See https://github.com/babel/babel/issues/9149.
+ development: false,
+ runtime: 'automatic',
+ importSource: 'preact',
+ },
+ ],
+ ],
plugins: ['mockable-imports'],
}),
],
diff --git a/yarn.lock b/yarn.lock
index 4d173387689..c882a15e92c 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -2588,6 +2588,20 @@ __metadata:
languageName: node
linkType: hard
+"array.prototype.filter@npm:^1.0.0":
+ version: 1.0.4
+ resolution: "array.prototype.filter@npm:1.0.4"
+ dependencies:
+ call-bind: ^1.0.7
+ define-properties: ^1.2.1
+ es-abstract: ^1.23.2
+ es-array-method-boxes-properly: ^1.0.0
+ es-object-atoms: ^1.0.0
+ is-string: ^1.0.7
+ checksum: 7c45e93251f5347204d5324e0b9f6ddc847785ed3710492f41fdb00c6f8adee500e217b564a913ccbab69b7d8199949a31c0b044026fc8df6c0361df61a71c37
+ languageName: node
+ linkType: hard
+
"array.prototype.findlast@npm:^1.2.5":
version: 1.2.5
resolution: "array.prototype.findlast@npm:1.2.5"
@@ -2602,6 +2616,18 @@ __metadata:
languageName: node
linkType: hard
+"array.prototype.flat@npm:^1.2.3":
+ version: 1.3.2
+ resolution: "array.prototype.flat@npm:1.3.2"
+ dependencies:
+ call-bind: ^1.0.2
+ define-properties: ^1.2.0
+ es-abstract: ^1.22.1
+ es-shim-unscopables: ^1.0.0
+ checksum: 5d6b4bf102065fb3f43764bfff6feb3295d372ce89591e6005df3d0ce388527a9f03c909af6f2a973969a4d178ab232ffc9236654149173e0e187ec3a1a6b87b
+ languageName: node
+ linkType: hard
+
"array.prototype.flatmap@npm:^1.3.2":
version: 1.3.2
resolution: "array.prototype.flatmap@npm:1.3.2"
@@ -3132,6 +3158,35 @@ __metadata:
languageName: node
linkType: hard
+"cheerio-select@npm:^2.1.0":
+ version: 2.1.0
+ resolution: "cheerio-select@npm:2.1.0"
+ dependencies:
+ boolbase: ^1.0.0
+ css-select: ^5.1.0
+ css-what: ^6.1.0
+ domelementtype: ^2.3.0
+ domhandler: ^5.0.3
+ domutils: ^3.0.1
+ checksum: 843d6d479922f28a6c5342c935aff1347491156814de63c585a6eb73baf7bb4185c1b4383a1195dca0f12e3946d737c7763bcef0b9544c515d905c5c44c5308b
+ languageName: node
+ linkType: hard
+
+"cheerio@npm:^1.0.0-rc.3":
+ version: 1.0.0-rc.12
+ resolution: "cheerio@npm:1.0.0-rc.12"
+ dependencies:
+ cheerio-select: ^2.1.0
+ dom-serializer: ^2.0.0
+ domhandler: ^5.0.3
+ domutils: ^3.0.1
+ htmlparser2: ^8.0.1
+ parse5: ^7.0.0
+ parse5-htmlparser2-tree-adapter: ^7.0.0
+ checksum: 5d4c1b7a53cf22d3a2eddc0aff70cf23cbb30d01a4c79013e703a012475c02461aa1fcd99127e8d83a02216386ed6942b2c8103845fd0812300dd199e6e7e054
+ languageName: node
+ linkType: hard
+
"chokidar@npm:>=3.0.0 <4.0.0, chokidar@npm:^3.5.1":
version: 3.5.3
resolution: "chokidar@npm:3.5.3"
@@ -3264,7 +3319,7 @@ __metadata:
languageName: node
linkType: hard
-"commander@npm:^2.20.0":
+"commander@npm:^2.19.0, commander@npm:^2.20.0":
version: 2.20.3
resolution: "commander@npm:2.20.3"
checksum: ab8c07884e42c3a8dbc5dd9592c606176c7eb5c1ca5ff274bcf907039b2c41de3626f684ea75ccf4d361ba004bbaff1f577d5384c155f3871e456bdf27becf9e
@@ -3401,6 +3456,19 @@ __metadata:
languageName: node
linkType: hard
+"css-select@npm:^5.1.0":
+ version: 5.1.0
+ resolution: "css-select@npm:5.1.0"
+ dependencies:
+ boolbase: ^1.0.0
+ css-what: ^6.1.0
+ domhandler: ^5.0.2
+ domutils: ^3.0.1
+ nth-check: ^2.0.1
+ checksum: 2772c049b188d3b8a8159907192e926e11824aea525b8282981f72ba3f349cf9ecd523fdf7734875ee2cb772246c22117fc062da105b6d59afe8dcd5c99c9bda
+ languageName: node
+ linkType: hard
+
"css-tree@npm:^1.1.2, css-tree@npm:^1.1.3":
version: 1.1.3
resolution: "css-tree@npm:1.1.3"
@@ -3418,6 +3486,13 @@ __metadata:
languageName: node
linkType: hard
+"css-what@npm:^6.1.0":
+ version: 6.1.0
+ resolution: "css-what@npm:6.1.0"
+ checksum: b975e547e1e90b79625918f84e67db5d33d896e6de846c9b584094e529f0c63e2ab85ee33b9daffd05bff3a146a1916bec664e18bb76dd5f66cbff9fc13b2bbe
+ languageName: node
+ linkType: hard
+
"cssesc@npm:^3.0.0":
version: 3.0.0
resolution: "cssesc@npm:3.0.0"
@@ -3640,6 +3715,13 @@ __metadata:
languageName: node
linkType: hard
+"discontinuous-range@npm:1.0.0":
+ version: 1.0.0
+ resolution: "discontinuous-range@npm:1.0.0"
+ checksum: 8ee88d7082445b6eadc7c03bebe6dc978f96760c45e9f65d16ca66174d9e086a9e3855ee16acf65625e1a07a846a17de674f02a5964a6aebe5963662baf8b5c8
+ languageName: node
+ linkType: hard
+
"dlv@npm:^1.1.3":
version: 1.1.3
resolution: "dlv@npm:1.1.3"
@@ -3688,6 +3770,17 @@ __metadata:
languageName: node
linkType: hard
+"dom-serializer@npm:^2.0.0":
+ version: 2.0.0
+ resolution: "dom-serializer@npm:2.0.0"
+ dependencies:
+ domelementtype: ^2.3.0
+ domhandler: ^5.0.2
+ entities: ^4.2.0
+ checksum: cd1810544fd8cdfbd51fa2c0c1128ec3a13ba92f14e61b7650b5de421b88205fd2e3f0cc6ace82f13334114addb90ed1c2f23074a51770a8e9c1273acbc7f3e6
+ languageName: node
+ linkType: hard
+
"domelementtype@npm:^2.0.1, domelementtype@npm:^2.2.0":
version: 2.2.0
resolution: "domelementtype@npm:2.2.0"
@@ -3695,6 +3788,13 @@ __metadata:
languageName: node
linkType: hard
+"domelementtype@npm:^2.3.0":
+ version: 2.3.0
+ resolution: "domelementtype@npm:2.3.0"
+ checksum: ee837a318ff702622f383409d1f5b25dd1024b692ef64d3096ff702e26339f8e345820f29a68bcdcea8cfee3531776b3382651232fbeae95612d6f0a75efb4f6
+ languageName: node
+ linkType: hard
+
"domhandler@npm:^4.2.0":
version: 4.2.2
resolution: "domhandler@npm:4.2.2"
@@ -3704,6 +3804,15 @@ __metadata:
languageName: node
linkType: hard
+"domhandler@npm:^5.0.2, domhandler@npm:^5.0.3":
+ version: 5.0.3
+ resolution: "domhandler@npm:5.0.3"
+ dependencies:
+ domelementtype: ^2.3.0
+ checksum: 0f58f4a6af63e6f3a4320aa446d28b5790a009018707bce2859dcb1d21144c7876482b5188395a188dfa974238c019e0a1e610d2fc269a12b2c192ea2b0b131c
+ languageName: node
+ linkType: hard
+
"domutils@npm:^2.6.0":
version: 2.8.0
resolution: "domutils@npm:2.8.0"
@@ -3715,6 +3824,17 @@ __metadata:
languageName: node
linkType: hard
+"domutils@npm:^3.0.1":
+ version: 3.1.0
+ resolution: "domutils@npm:3.1.0"
+ dependencies:
+ dom-serializer: ^2.0.0
+ domelementtype: ^2.3.0
+ domhandler: ^5.0.3
+ checksum: e5757456ddd173caa411cfc02c2bb64133c65546d2c4081381a3bafc8a57411a41eed70494551aa58030be9e58574fcc489828bebd673863d39924fb4878f416
+ languageName: node
+ linkType: hard
+
"duplexify@npm:^4.1.1":
version: 4.1.2
resolution: "duplexify@npm:4.1.2"
@@ -3857,6 +3977,13 @@ __metadata:
languageName: node
linkType: hard
+"entities@npm:^4.2.0, entities@npm:^4.4.0":
+ version: 4.5.0
+ resolution: "entities@npm:4.5.0"
+ checksum: 853f8ebd5b425d350bffa97dd6958143179a5938352ccae092c62d1267c4e392a039be1bae7d51b6e4ffad25f51f9617531fedf5237f15df302ccfb452cbf2d7
+ languageName: node
+ linkType: hard
+
"env-paths@npm:^2.2.0":
version: 2.2.1
resolution: "env-paths@npm:2.2.1"
@@ -3864,6 +3991,56 @@ __metadata:
languageName: node
linkType: hard
+"enzyme-adapter-preact-pure@npm:^4.1.0":
+ version: 4.1.0
+ resolution: "enzyme-adapter-preact-pure@npm:4.1.0"
+ peerDependencies:
+ enzyme: ^3.11.0
+ preact: ^10.0.0
+ checksum: 95ba3234e8ec2b31c5570a094fe2bce9bcb717dc2437738f2134e7f3682ca799f59a1a3803a1a3b06ef14ef20018d03100a5e7eb462f5b3064bd0cd9a936f740
+ languageName: node
+ linkType: hard
+
+"enzyme-shallow-equal@npm:^1.0.1":
+ version: 1.0.7
+ resolution: "enzyme-shallow-equal@npm:1.0.7"
+ dependencies:
+ hasown: ^2.0.0
+ object-is: ^1.1.5
+ checksum: ecbdf5a897ba33e699316f1456c7865b8140a6fc7916b700721964fe169e750be35f1fff5184a80e35b39e793523d678f4f4d12f48fce15145d206f5db01daa9
+ languageName: node
+ linkType: hard
+
+"enzyme@npm:^3.11.0":
+ version: 3.11.0
+ resolution: "enzyme@npm:3.11.0"
+ dependencies:
+ array.prototype.flat: ^1.2.3
+ cheerio: ^1.0.0-rc.3
+ enzyme-shallow-equal: ^1.0.1
+ function.prototype.name: ^1.1.2
+ has: ^1.0.3
+ html-element-map: ^1.2.0
+ is-boolean-object: ^1.0.1
+ is-callable: ^1.1.5
+ is-number-object: ^1.0.4
+ is-regex: ^1.0.5
+ is-string: ^1.0.5
+ is-subset: ^0.1.1
+ lodash.escape: ^4.0.1
+ lodash.isequal: ^4.5.0
+ object-inspect: ^1.7.0
+ object-is: ^1.0.2
+ object.assign: ^4.1.0
+ object.entries: ^1.1.1
+ object.values: ^1.1.1
+ raf: ^3.4.1
+ rst-selector-parser: ^2.2.3
+ string.prototype.trim: ^1.2.1
+ checksum: 69ae80049c3f405122b8e619f1cf8b04f32b3cc2b6134c29ed8c0f05e87a0b15080f1121096ec211954a710f4787300af9157078c863012de87eee16e98e64ea
+ languageName: node
+ linkType: hard
+
"err-code@npm:^2.0.2":
version: 2.0.3
resolution: "err-code@npm:2.0.3"
@@ -4117,6 +4294,13 @@ __metadata:
languageName: node
linkType: hard
+"es-array-method-boxes-properly@npm:^1.0.0":
+ version: 1.0.0
+ resolution: "es-array-method-boxes-properly@npm:1.0.0"
+ checksum: 2537fcd1cecf187083890bc6f5236d3a26bf39237433587e5bf63392e88faae929dbba78ff0120681a3f6f81c23fe3816122982c160d63b38c95c830b633b826
+ languageName: node
+ linkType: hard
+
"es-define-property@npm:^1.0.0":
version: 1.0.0
resolution: "es-define-property@npm:1.0.0"
@@ -4807,6 +4991,18 @@ __metadata:
languageName: node
linkType: hard
+"function.prototype.name@npm:^1.1.2, function.prototype.name@npm:^1.1.6":
+ version: 1.1.6
+ resolution: "function.prototype.name@npm:1.1.6"
+ dependencies:
+ call-bind: ^1.0.2
+ define-properties: ^1.2.0
+ es-abstract: ^1.22.1
+ functions-have-names: ^1.2.3
+ checksum: 7a3f9bd98adab09a07f6e1f03da03d3f7c26abbdeaeee15223f6c04a9fb5674792bdf5e689dac19b97ac71de6aad2027ba3048a9b883aa1b3173eed6ab07f479
+ languageName: node
+ linkType: hard
+
"function.prototype.name@npm:^1.1.5":
version: 1.1.5
resolution: "function.prototype.name@npm:1.1.5"
@@ -4819,18 +5015,6 @@ __metadata:
languageName: node
linkType: hard
-"function.prototype.name@npm:^1.1.6":
- version: 1.1.6
- resolution: "function.prototype.name@npm:1.1.6"
- dependencies:
- call-bind: ^1.0.2
- define-properties: ^1.2.0
- es-abstract: ^1.22.1
- functions-have-names: ^1.2.3
- checksum: 7a3f9bd98adab09a07f6e1f03da03d3f7c26abbdeaeee15223f6c04a9fb5674792bdf5e689dac19b97ac71de6aad2027ba3048a9b883aa1b3173eed6ab07f479
- languageName: node
- linkType: hard
-
"functions-have-names@npm:^1.2.2, functions-have-names@npm:^1.2.3":
version: 1.2.3
resolution: "functions-have-names@npm:1.2.3"
@@ -5296,6 +5480,8 @@ __metadata:
chai: ^5.1.1
classnames: ^2.5.1
diff: ^5.2.0
+ enzyme: ^3.11.0
+ enzyme-adapter-preact-pure: ^4.1.0
escape-html: ^1.0.3
eslint: ^8.57.0
eslint-config-hypothesis: 2.6
@@ -5480,6 +5666,28 @@ __metadata:
languageName: node
linkType: hard
+"html-element-map@npm:^1.2.0":
+ version: 1.3.1
+ resolution: "html-element-map@npm:1.3.1"
+ dependencies:
+ array.prototype.filter: ^1.0.0
+ call-bind: ^1.0.2
+ checksum: 7408da008d37bfa76b597e298ae0ed530258065deb29fbd73d40f7cbd123b654d1022a7a8cfbe713e57d90c5bef844399f5c8a46cde7d55c91d305024c921d08
+ languageName: node
+ linkType: hard
+
+"htmlparser2@npm:^8.0.1":
+ version: 8.0.2
+ resolution: "htmlparser2@npm:8.0.2"
+ dependencies:
+ domelementtype: ^2.3.0
+ domhandler: ^5.0.3
+ domutils: ^3.0.1
+ entities: ^4.4.0
+ checksum: 29167a0f9282f181da8a6d0311b76820c8a59bc9e3c87009e21968264c2987d2723d6fde5a964d4b7b6cba663fca96ffb373c06d8223a85f52a6089ced942700
+ languageName: node
+ linkType: hard
+
"http-cache-semantics@npm:^4.1.1":
version: 4.1.1
resolution: "http-cache-semantics@npm:4.1.1"
@@ -5740,7 +5948,7 @@ __metadata:
languageName: node
linkType: hard
-"is-boolean-object@npm:^1.1.0":
+"is-boolean-object@npm:^1.0.1, is-boolean-object@npm:^1.1.0":
version: 1.1.2
resolution: "is-boolean-object@npm:1.1.2"
dependencies:
@@ -5759,7 +5967,7 @@ __metadata:
languageName: node
linkType: hard
-"is-callable@npm:^1.1.3, is-callable@npm:^1.2.7":
+"is-callable@npm:^1.1.3, is-callable@npm:^1.1.5, is-callable@npm:^1.2.7":
version: 1.2.7
resolution: "is-callable@npm:1.2.7"
checksum: 61fd57d03b0d984e2ed3720fb1c7a897827ea174bd44402878e059542ea8c4aeedee0ea0985998aa5cc2736b2fa6e271c08587addb5b3959ac52cf665173d1ac
@@ -5963,7 +6171,7 @@ __metadata:
languageName: node
linkType: hard
-"is-regex@npm:^1.1.4":
+"is-regex@npm:^1.0.5, is-regex@npm:^1.1.4":
version: 1.1.4
resolution: "is-regex@npm:1.1.4"
dependencies:
@@ -6023,6 +6231,13 @@ __metadata:
languageName: node
linkType: hard
+"is-subset@npm:^0.1.1":
+ version: 0.1.1
+ resolution: "is-subset@npm:0.1.1"
+ checksum: 97b8d7852af165269b7495095691a6ce6cf20bdfa1f846f97b4560ee190069686107af4e277fbd93aa0845c4d5db704391460ff6e9014aeb73264ba87893df44
+ languageName: node
+ linkType: hard
+
"is-symbol@npm:^1.0.2, is-symbol@npm:^1.0.3":
version: 1.0.4
resolution: "is-symbol@npm:1.0.4"
@@ -6444,6 +6659,20 @@ __metadata:
languageName: node
linkType: hard
+"lodash.escape@npm:^4.0.1":
+ version: 4.0.1
+ resolution: "lodash.escape@npm:4.0.1"
+ checksum: fcb54f457497256964d619d5cccbd80a961916fca60df3fe0fa3e7f052715c2944c0ed5aefb4f9e047d127d44aa2d55555f3350cb42c6549e9e293fb30b41e7f
+ languageName: node
+ linkType: hard
+
+"lodash.flattendeep@npm:^4.4.0":
+ version: 4.4.0
+ resolution: "lodash.flattendeep@npm:4.4.0"
+ checksum: 8521c919acac3d4bcf0aaf040c1ca9cb35d6c617e2d72e9b4d51c9a58b4366622cd6077441a18be626c3f7b28227502b3bf042903d447b056ee7e0b11d45c722
+ languageName: node
+ linkType: hard
+
"lodash.get@npm:^4.4.2":
version: 4.4.2
resolution: "lodash.get@npm:4.4.2"
@@ -6451,6 +6680,13 @@ __metadata:
languageName: node
linkType: hard
+"lodash.isequal@npm:^4.5.0":
+ version: 4.5.0
+ resolution: "lodash.isequal@npm:4.5.0"
+ checksum: da27515dc5230eb1140ba65ff8de3613649620e8656b19a6270afe4866b7bd461d9ba2ac8a48dcc57f7adac4ee80e1de9f965d89d4d81a0ad52bb3eec2609644
+ languageName: node
+ linkType: hard
+
"lodash.merge@npm:^4.6.2":
version: 4.6.2
resolution: "lodash.merge@npm:4.6.2"
@@ -6885,6 +7121,13 @@ __metadata:
languageName: node
linkType: hard
+"moo@npm:^0.5.0":
+ version: 0.5.2
+ resolution: "moo@npm:0.5.2"
+ checksum: 5a41ddf1059fd0feb674d917c4774e41c877f1ca980253be4d3aae1a37f4bc513f88815041243f36f5cf67a62fb39324f3f997cf7fb17b6cb00767c165e7c499
+ languageName: node
+ linkType: hard
+
"ms@npm:2.0.0":
version: 2.0.0
resolution: "ms@npm:2.0.0"
@@ -6947,6 +7190,23 @@ __metadata:
languageName: node
linkType: hard
+"nearley@npm:^2.7.10":
+ version: 2.20.1
+ resolution: "nearley@npm:2.20.1"
+ dependencies:
+ commander: ^2.19.0
+ moo: ^0.5.0
+ railroad-diagrams: ^1.0.0
+ randexp: 0.4.6
+ bin:
+ nearley-railroad: bin/nearley-railroad.js
+ nearley-test: bin/nearley-test.js
+ nearley-unparse: bin/nearley-unparse.js
+ nearleyc: bin/nearleyc.js
+ checksum: 42c2c330c13c7991b48221c5df00f4352c2f8851636ae4d1f8ca3c8e193fc1b7668c78011d1cad88cca4c1c4dc087425420629c19cc286d7598ec15533aaef26
+ languageName: node
+ linkType: hard
+
"negotiator@npm:0.6.3, negotiator@npm:^0.6.3":
version: 0.6.3
resolution: "negotiator@npm:0.6.3"
@@ -7075,6 +7335,15 @@ __metadata:
languageName: node
linkType: hard
+"nth-check@npm:^2.0.1":
+ version: 2.1.1
+ resolution: "nth-check@npm:2.1.1"
+ dependencies:
+ boolbase: ^1.0.0
+ checksum: 5afc3dafcd1573b08877ca8e6148c52abd565f1d06b1eb08caf982e3fa289a82f2cae697ffb55b5021e146d60443f1590a5d6b944844e944714a5b549675bcd3
+ languageName: node
+ linkType: hard
+
"object-assign@npm:^4, object-assign@npm:^4.0.1, object-assign@npm:^4.1.1":
version: 4.1.1
resolution: "object-assign@npm:4.1.1"
@@ -7110,6 +7379,23 @@ __metadata:
languageName: node
linkType: hard
+"object-inspect@npm:^1.7.0":
+ version: 1.13.2
+ resolution: "object-inspect@npm:1.13.2"
+ checksum: 9f850b3c045db60e0e97746e809ee4090d6ce62195af17dd1e9438ac761394a7d8ec4f7906559aea5424eaf61e35d3e53feded2ccd5f62fcc7d9670d3c8eb353
+ languageName: node
+ linkType: hard
+
+"object-is@npm:^1.0.2, object-is@npm:^1.1.5":
+ version: 1.1.6
+ resolution: "object-is@npm:1.1.6"
+ dependencies:
+ call-bind: ^1.0.7
+ define-properties: ^1.2.1
+ checksum: 3ea22759967e6f2380a2cbbd0f737b42dc9ddb2dfefdb159a1b927fea57335e1b058b564bfa94417db8ad58cddab33621a035de6f5e5ad56d89f2dd03e66c6a1
+ languageName: node
+ linkType: hard
+
"object-keys@npm:^1.0.12, object-keys@npm:^1.1.1":
version: 1.1.1
resolution: "object-keys@npm:1.1.1"
@@ -7117,6 +7403,18 @@ __metadata:
languageName: node
linkType: hard
+"object.assign@npm:^4.1.0, object.assign@npm:^4.1.5":
+ version: 4.1.5
+ resolution: "object.assign@npm:4.1.5"
+ dependencies:
+ call-bind: ^1.0.5
+ define-properties: ^1.2.1
+ has-symbols: ^1.0.3
+ object-keys: ^1.1.1
+ checksum: f9aeac0541661370a1fc86e6a8065eb1668d3e771f7dbb33ee54578201336c057b21ee61207a186dd42db0c62201d91aac703d20d12a79fc79c353eed44d4e25
+ languageName: node
+ linkType: hard
+
"object.assign@npm:^4.1.2":
version: 4.1.2
resolution: "object.assign@npm:4.1.2"
@@ -7141,18 +7439,6 @@ __metadata:
languageName: node
linkType: hard
-"object.assign@npm:^4.1.5":
- version: 4.1.5
- resolution: "object.assign@npm:4.1.5"
- dependencies:
- call-bind: ^1.0.5
- define-properties: ^1.2.1
- has-symbols: ^1.0.3
- object-keys: ^1.1.1
- checksum: f9aeac0541661370a1fc86e6a8065eb1668d3e771f7dbb33ee54578201336c057b21ee61207a186dd42db0c62201d91aac703d20d12a79fc79c353eed44d4e25
- languageName: node
- linkType: hard
-
"object.defaults@npm:^1.1.0":
version: 1.1.0
resolution: "object.defaults@npm:1.1.0"
@@ -7165,7 +7451,7 @@ __metadata:
languageName: node
linkType: hard
-"object.entries@npm:^1.1.8":
+"object.entries@npm:^1.1.1, object.entries@npm:^1.1.8":
version: 1.1.8
resolution: "object.entries@npm:1.1.8"
dependencies:
@@ -7208,7 +7494,7 @@ __metadata:
languageName: node
linkType: hard
-"object.values@npm:^1.2.0":
+"object.values@npm:^1.1.1, object.values@npm:^1.2.0":
version: 1.2.0
resolution: "object.values@npm:1.2.0"
dependencies:
@@ -7312,6 +7598,25 @@ __metadata:
languageName: node
linkType: hard
+"parse5-htmlparser2-tree-adapter@npm:^7.0.0":
+ version: 7.0.0
+ resolution: "parse5-htmlparser2-tree-adapter@npm:7.0.0"
+ dependencies:
+ domhandler: ^5.0.2
+ parse5: ^7.0.0
+ checksum: fc5d01e07733142a1baf81de5c2a9c41426c04b7ab29dd218acb80cd34a63177c90aff4a4aee66cf9f1d0aeecff1389adb7452ad6f8af0a5888e3e9ad6ef733d
+ languageName: node
+ linkType: hard
+
+"parse5@npm:^7.0.0":
+ version: 7.1.2
+ resolution: "parse5@npm:7.1.2"
+ dependencies:
+ entities: ^4.4.0
+ checksum: 59465dd05eb4c5ec87b76173d1c596e152a10e290b7abcda1aecf0f33be49646ea74840c69af975d7887543ea45564801736356c568d6b5e71792fd0f4055713
+ languageName: node
+ linkType: hard
+
"parseurl@npm:~1.3.3":
version: 1.3.3
resolution: "parseurl@npm:1.3.3"
@@ -7397,6 +7702,13 @@ __metadata:
languageName: node
linkType: hard
+"performance-now@npm:^2.1.0":
+ version: 2.1.0
+ resolution: "performance-now@npm:2.1.0"
+ checksum: 534e641aa8f7cba160f0afec0599b6cecefbb516a2e837b512be0adbe6c1da5550e89c78059c7fabc5c9ffdf6627edabe23eb7c518c4500067a898fa65c2b550
+ languageName: node
+ linkType: hard
+
"picocolors@npm:^1.0.0":
version: 1.0.0
resolution: "picocolors@npm:1.0.0"
@@ -7625,6 +7937,22 @@ __metadata:
languageName: node
linkType: hard
+"raf@npm:^3.4.1":
+ version: 3.4.1
+ resolution: "raf@npm:3.4.1"
+ dependencies:
+ performance-now: ^2.1.0
+ checksum: 50ba284e481c8185dbcf45fc4618ba3aec580bb50c9121385d5698cb6012fe516d2015b1df6dd407a7b7c58d44be8086108236affbce1861edd6b44637c8cd52
+ languageName: node
+ linkType: hard
+
+"railroad-diagrams@npm:^1.0.0":
+ version: 1.0.0
+ resolution: "railroad-diagrams@npm:1.0.0"
+ checksum: 9e312af352b5ed89c2118edc0c06cef2cc039681817f65266719606e4e91ff6ae5374c707cc9033fe29a82c2703edf3c63471664f97f0167c85daf6f93496319
+ languageName: node
+ linkType: hard
+
"rambda@npm:^7.4.0":
version: 7.5.0
resolution: "rambda@npm:7.5.0"
@@ -7632,6 +7960,16 @@ __metadata:
languageName: node
linkType: hard
+"randexp@npm:0.4.6":
+ version: 0.4.6
+ resolution: "randexp@npm:0.4.6"
+ dependencies:
+ discontinuous-range: 1.0.0
+ ret: ~0.1.10
+ checksum: 3c0d440a3f89d6d36844aa4dd57b5cdb0cab938a41956a16da743d3a3578ab32538fc41c16cc0984b6938f2ae4cbc0216967e9829e52191f70e32690d8e3445d
+ languageName: node
+ linkType: hard
+
"randombytes@npm:^2.1.0":
version: 2.1.0
resolution: "randombytes@npm:2.1.0"
@@ -8008,6 +8346,13 @@ __metadata:
languageName: node
linkType: hard
+"ret@npm:~0.1.10":
+ version: 0.1.15
+ resolution: "ret@npm:0.1.15"
+ checksum: d76a9159eb8c946586567bd934358dfc08a36367b3257f7a3d7255fdd7b56597235af23c6afa0d7f0254159e8051f93c918809962ebd6df24ca2a83dbe4d4151
+ languageName: node
+ linkType: hard
+
"retry@npm:^0.12.0":
version: 0.12.0
resolution: "retry@npm:0.12.0"
@@ -8103,6 +8448,16 @@ __metadata:
languageName: node
linkType: hard
+"rst-selector-parser@npm:^2.2.3":
+ version: 2.2.3
+ resolution: "rst-selector-parser@npm:2.2.3"
+ dependencies:
+ lodash.flattendeep: ^4.4.0
+ nearley: ^2.7.10
+ checksum: fbfb2f6a7d4c9b3e013ef555ac06e5dba444e0d37dc959b94c507b6c34093ef10fe98141338d9cac58e5ae0f9453a5ef7f85af3d5e6386b237c1b3552debe4a0
+ languageName: node
+ linkType: hard
+
"run-parallel@npm:^1.1.9":
version: 1.2.0
resolution: "run-parallel@npm:1.2.0"
@@ -8590,18 +8945,7 @@ __metadata:
languageName: node
linkType: hard
-"string.prototype.trim@npm:^1.2.8":
- version: 1.2.8
- resolution: "string.prototype.trim@npm:1.2.8"
- dependencies:
- call-bind: ^1.0.2
- define-properties: ^1.2.0
- es-abstract: ^1.22.1
- checksum: 49eb1a862a53aba73c3fb6c2a53f5463173cb1f4512374b623bcd6b43ad49dd559a06fb5789bdec771a40fc4d2a564411c0a75d35fb27e76bbe738c211ecff07
- languageName: node
- linkType: hard
-
-"string.prototype.trim@npm:^1.2.9":
+"string.prototype.trim@npm:^1.2.1, string.prototype.trim@npm:^1.2.9":
version: 1.2.9
resolution: "string.prototype.trim@npm:1.2.9"
dependencies:
@@ -8613,6 +8957,17 @@ __metadata:
languageName: node
linkType: hard
+"string.prototype.trim@npm:^1.2.8":
+ version: 1.2.8
+ resolution: "string.prototype.trim@npm:1.2.8"
+ dependencies:
+ call-bind: ^1.0.2
+ define-properties: ^1.2.0
+ es-abstract: ^1.22.1
+ checksum: 49eb1a862a53aba73c3fb6c2a53f5463173cb1f4512374b623bcd6b43ad49dd559a06fb5789bdec771a40fc4d2a564411c0a75d35fb27e76bbe738c211ecff07
+ languageName: node
+ linkType: hard
+
"string.prototype.trimend@npm:^1.0.4":
version: 1.0.4
resolution: "string.prototype.trimend@npm:1.0.4"