From a28faaabe8d225b8f5df4c93b12b0220e7bab72a Mon Sep 17 00:00:00 2001 From: David Hunt Date: Thu, 28 Nov 2024 05:11:21 +1300 Subject: [PATCH] fix: snippets now fully supported --- .changeset/rare-garlics-accept.md | 6 + packages/main/README.md | 15 +- .../main/gherkin-example/example.feature.js | 128 +- packages/main/package.json | 22 +- packages/main/src/index.ts | 37 +- packages/main/src/render.ts | 18 +- packages/main/src/steps.ts | 60 +- packages/main/tests/test.feature | 47 +- packages/main/tests/tests.steps.ts | 4 + packages/playwright/package.json | 16 +- pnpm-lock.yaml | 2039 +++++++++++++++-- 11 files changed, 2045 insertions(+), 347 deletions(-) create mode 100644 .changeset/rare-garlics-accept.md diff --git a/.changeset/rare-garlics-accept.md b/.changeset/rare-garlics-accept.md new file mode 100644 index 0000000..329183a --- /dev/null +++ b/.changeset/rare-garlics-accept.md @@ -0,0 +1,6 @@ +--- +"@quickpickle/playwright": patch +"quickpickle": patch +--- + +Snippets are now well supported, producing async/await javascript with appropriate variables. diff --git a/packages/main/README.md b/packages/main/README.md index 8e9c3b2..dd9d374 100644 --- a/packages/main/README.md +++ b/packages/main/README.md @@ -39,7 +39,7 @@ by parsing them with the official [Gherkin Parser] and running them as Vitest te - [x] [profiles] *(use Vitest [workspaces])* - [x] [rerun] *(press "f" in [watch mode terminal])* - [x] [retry] *(use Vitest [retry option])* -- [ ] [snippets] *poor support* **[PLANNED]** +- [x] [snippets] *(only async/await javascript is supported)* - [x] [transpiling] **100% support through Vite (the reason for this package)** [Gherkin 6]: https://cucumber.io/docs/gherkin/reference/ @@ -446,21 +446,14 @@ come to notice: ### Unsupported CucumberJS Features -#### Planned for feature completeness: - -- [snippets] full support, including proper variables - - Snippets are currently not well supported, as they don't yet include the proper variables or language formatting. - -#### Other unsupported features: - -- return "skipped" in step definitions or hooks to skip a step definition or hook +- return "skipped" in step definitions or hooks to skip a step definition or hook *(use `world.context.skip()`)* - [setDefaultTimeout] *(use [testTimeout] in Vitest config)* - [setDefinitionFunctionWrapper] *(use Before and After hooks)* - [setParallelCanAssign] *(use @concurrent and @sequential [special tags])* - attachments with [world.attach], [world.log], and [world.link] *not supported, use Vitest [reporters]* - [dry run] *not supported, but you can use `vitest list` which is similar* -- [filtering] full support, including CucumberJS tag matching with "and", "not", etc. +- [custom snippet formats] *(only async/await javascript is supported)* +- [filtering] CucumberJS tag matching with "and", "not", etc. In Vitest it is only possible to match the name of the test. With QuickPickle tests the name does include the tags, so running `vitest -t "@some-tag"` does work, but you can't specify that it should run all tests *without* a certain tag. diff --git a/packages/main/gherkin-example/example.feature.js b/packages/main/gherkin-example/example.feature.js index ded0fee..55e5553 100644 --- a/packages/main/gherkin-example/example.feature.js +++ b/packages/main/gherkin-example/example.feature.js @@ -33,8 +33,8 @@ const initScenario = async(context, scenario, tags, steps) => { state.info.scenario = scenario; state.info.tags = [...tags]; await applyHooks('before', state); - await gherkinStep(`a common precondition`, state, 10, -1); - await gherkinStep(`another common precondition`, state, 11, -2); + await gherkinStep('Context', `a common precondition`, state, 10, -1); + await gherkinStep('Context', `another common precondition`, state, 11, -2); return state; } @@ -42,9 +42,9 @@ describe('Feature: QuickPickle\'s Comprehensive Gherkin Syntax Example', () => { test('Scenario: Basic scenario example\' (@tag @multiple_tags @scenario_tag)', async (context) => { let state = await initScenario(context, 'Basic scenario example\'', ['@tag', '@multiple_tags', '@scenario_tag'], [`an initial context'`,`an action is performed'`,`a verifiable outcome is achieved'`]); - await gherkinStep(`an initial context'`, state, 15, 1); - await gherkinStep(`an action is performed'`, state, 16, 2); - await gherkinStep(`a verifiable outcome is achieved'`, state, 17, 3); + await gherkinStep('Context', `an initial context'`, state, 15, 1); + await gherkinStep('Action', `an action is performed'`, state, 16, 2); + await gherkinStep('Outcome', `a verifiable outcome is achieved'`, state, 17, 3); await afterScenario(state); }); @@ -56,22 +56,22 @@ describe('Feature: QuickPickle\'s Comprehensive Gherkin Syntax Example', () => { 'Scenario Outline: Parameterized scenario for $_0, \'$_1\', "$_2" (@tag @multiple_tags @concurrent)', async ({ _0, _1, _2 }, context) => { let state = await initScenario(context, `Parameterized scenario for ${_0}, '${_1}', "${_2}"`, ['@tag', '@multiple_tags', '@concurrent'], [`a 'precondition' with ${_0}`,`an "action" is taken with ${_1}`,`the \`outcome\` is ${_2}`]); - await gherkinStep(`a 'precondition' with ${_0}`, state, 21, 1); - await gherkinStep(`an "action" is taken with ${_1}`, state, 22, 2); - await gherkinStep(`the \`outcome\` is ${_2}`, state, 23, 3); + await gherkinStep('Context', `a 'precondition' with ${_0}`, state, 21, 1); + await gherkinStep('Action', `an "action" is taken with ${_1}`, state, 22, 2); + await gherkinStep('Outcome', `the \`outcome\` is ${_2}`, state, 23, 3); await afterScenario(state); } ); test('Scenario: Scenario with various DataTable types (@tag @multiple_tags @data_table)', async (context) => { let state = await initScenario(context, 'Scenario with various DataTable types', ['@tag', '@multiple_tags', '@data_table'], [`a list of strings:`,`a list of integers:`,`a map of string to string:`,`a list of maps:`,`a map of string to list of string:`,`they are processed`,`the system behaves correctly`]); - await gherkinStep(`a list of strings:`, state, 33, 1, undefined, [["Apple'"],["Banana`"],["Cherry\""]]); - await gherkinStep(`a list of integers:`, state, 37, 2, undefined, [["1"],["2"],["3"]]); - await gherkinStep(`a map of string to string:`, state, 41, 3, undefined, [["key1'","value1'"],["key2`","value2\""]]); - await gherkinStep(`a list of maps:`, state, 44, 4, undefined, [["name'","age`","role\""],["Alice'","30","admin\""],["Bob`","25","user\""]]); - await gherkinStep(`a map of string to list of string:`, state, 48, 5, undefined, [["fruits","Apple, Banana, Cherry"],["vegetables","Carrot, Potato, Onion"]]); - await gherkinStep(`they are processed`, state, 51, 6); - await gherkinStep(`the system behaves correctly`, state, 52, 7); + await gherkinStep('Context', `a list of strings:`, state, 33, 1, undefined, [["Apple'"],["Banana`"],["Cherry\""]]); + await gherkinStep('Context', `a list of integers:`, state, 37, 2, undefined, [["1"],["2"],["3"]]); + await gherkinStep('Context', `a map of string to string:`, state, 41, 3, undefined, [["key1'","value1'"],["key2`","value2\""]]); + await gherkinStep('Context', `a list of maps:`, state, 44, 4, undefined, [["name'","age`","role\""],["Alice'","30","admin\""],["Bob`","25","user\""]]); + await gherkinStep('Context', `a map of string to list of string:`, state, 48, 5, undefined, [["fruits","Apple, Banana, Cherry"],["vegetables","Carrot, Potato, Onion"]]); + await gherkinStep('Action', `they are processed`, state, 51, 6); + await gherkinStep('Outcome', `the system behaves correctly`, state, 52, 7); await afterScenario(state); }); @@ -80,58 +80,58 @@ describe('Feature: QuickPickle\'s Comprehensive Gherkin Syntax Example', () => { const initRuleScenario = async (context, scenario, tags, steps) => { let state = await initScenario(context, scenario, tags, steps); state.info.rule = 'Business rule description\''; - await gherkinStep(`a specific rule context`, state, 59, -1); - await gherkinStep(`another specific rule context`, state, 60, -2); + await gherkinStep('Context', `a specific rule context`, state, 59, -1); + await gherkinStep('Context', `another specific rule context`, state, 60, -2); return state; } test('Example: Rule example scenario\' (@tag @multiple_tags @rule_tag)', async (context) => { let state = await initRuleScenario(context, 'Rule example scenario\'', ['@tag', '@multiple_tags', '@rule_tag'], [`a specific rule context`,`a rule-related action occurs`,`the rule outcome is observed`]); - await gherkinStep(`a specific rule context`, state, 63, 1); - await gherkinStep(`a rule-related action occurs`, state, 64, 2); - await gherkinStep(`the rule outcome is observed`, state, 65, 3); + await gherkinStep('Context', `a specific rule context`, state, 63, 1); + await gherkinStep('Action', `a rule-related action occurs`, state, 64, 2); + await gherkinStep('Outcome', `the rule outcome is observed`, state, 65, 3); await afterScenario(state); }); test('Scenario: Also a rule example\' (@tag @multiple_tags @rule_tag)', async (context) => { let state = await initRuleScenario(context, 'Also a rule example\'', ['@tag', '@multiple_tags', '@rule_tag'], [`a Rule statement`,`a scenario is below it`,`it is a child of the Rule, even if it isn't indented`]); - await gherkinStep(`a Rule statement`, state, 68, 1); - await gherkinStep(`a scenario is below it`, state, 69, 2); - await gherkinStep(`it is a child of the Rule, even if it isn't indented`, state, 70, 3); + await gherkinStep('Context', `a Rule statement`, state, 68, 1); + await gherkinStep('Action', `a scenario is below it`, state, 69, 2); + await gherkinStep('Outcome', `it is a child of the Rule, even if it isn't indented`, state, 70, 3); await afterScenario(state); }); test.todo.skip('Scenario: Scenario with doc string (@tag @multiple_tags @rule_tag @wip @skip)', async (context) => { let state = await initRuleScenario(context, 'Scenario with doc string', ['@tag', '@multiple_tags', '@rule_tag', '@wip', '@skip'], [`a document with the following content:`,`the document is processed`,`the system handles it correctly`]); - await gherkinStep(`a document with the following content:`, state, 76, 1, undefined, {"content":"This is a doc string.\nIt can contain multiple lines.\nUseful for specifying larger text inputs."}); - await gherkinStep(`the document is processed`, state, 82, 2); - await gherkinStep(`the system handles it correctly`, state, 83, 3); + await gherkinStep('Context', `a document with the following content:`, state, 76, 1, undefined, {"content":"This is a doc string.\nIt can contain multiple lines.\nUseful for specifying larger text inputs."}); + await gherkinStep('Action', `the document is processed`, state, 82, 2); + await gherkinStep('Outcome', `the system handles it correctly`, state, 83, 3); await afterScenario(state); }); test('Scenario: Scenario with content type doc string (@tag @multiple_tags @rule_tag)', async (context) => { let state = await initRuleScenario(context, 'Scenario with content type doc string', ['@tag', '@multiple_tags', '@rule_tag'], [`a document with the following Markdown content:`]); - await gherkinStep(`a document with the following Markdown content:`, state, 86, 1, undefined, {"content":"Lorem Ipsum\n===============\nLorem ipsum dolor sit amet,\nconsectetur adipiscing elit.","mediaType":"markdown"}); + await gherkinStep('Context', `a document with the following Markdown content:`, state, 86, 1, undefined, {"content":"Lorem Ipsum\n===============\nLorem ipsum dolor sit amet,\nconsectetur adipiscing elit.","mediaType":"markdown"}); await afterScenario(state); }); test.sequential('Scenario: Scenario with And and But steps (@tag @multiple_tags @rule_tag @sequential)', async (context) => { let state = await initRuleScenario(context, 'Scenario with And and But steps', ['@tag', '@multiple_tags', '@rule_tag', '@sequential'], [`an initial state`,`some additional context`,`an action is performed`,`another action is performed`,`some assertion is made`,`some exception is also handled`]); - await gherkinStep(`an initial state`, state, 95, 1); - await gherkinStep(`some additional context`, state, 96, 2); - await gherkinStep(`an action is performed`, state, 97, 3); - await gherkinStep(`another action is performed`, state, 98, 4); - await gherkinStep(`some assertion is made`, state, 99, 5); - await gherkinStep(`some exception is also handled`, state, 100, 6); + await gherkinStep('Context', `an initial state`, state, 95, 1); + await gherkinStep('Context', `some additional context`, state, 96, 2); + await gherkinStep('Action', `an action is performed`, state, 97, 3); + await gherkinStep('Action', `another action is performed`, state, 98, 4); + await gherkinStep('Outcome', `some assertion is made`, state, 99, 5); + await gherkinStep('Outcome', `some exception is also handled`, state, 100, 6); await afterScenario(state); }); test.fails('Scenario: Failing scenario example (@tag @multiple_tags @rule_tag @fails)', async (context) => { let state = await initRuleScenario(context, 'Failing scenario example', ['@tag', '@multiple_tags', '@rule_tag', '@fails'], [`a condition that will fail`,`an impossible action is attempted`,`an unreachable assertion is made`]); - await gherkinStep(`a condition that will fail`, state, 104, 1); - await gherkinStep(`an impossible action is attempted`, state, 105, 2); - await gherkinStep(`an unreachable assertion is made`, state, 106, 3); + await gherkinStep('Context', `a condition that will fail`, state, 104, 1); + await gherkinStep('Action', `an impossible action is attempted`, state, 105, 2); + await gherkinStep('Outcome', `an unreachable assertion is made`, state, 106, 3); await afterScenario(state); }); @@ -150,17 +150,17 @@ describe('Feature: QuickPickle\'s Comprehensive Gherkin Syntax Example', () => { test('Example: This rule doesn\'t nest (@tag @multiple_tags)', async (context) => { let state = await initRuleScenario(context, 'This rule doesn\'t nest', ['@tag', '@multiple_tags'], [`a Rule statement`,`another Rule is indented below it`,`the indented Rule is NOT a child of the previous Rule`]); - await gherkinStep(`a Rule statement`, state, 112, 1); - await gherkinStep(`another Rule is indented below it`, state, 113, 2); - await gherkinStep(`the indented Rule is NOT a child of the previous Rule`, state, 114, 3); + await gherkinStep('Context', `a Rule statement`, state, 112, 1); + await gherkinStep('Action', `another Rule is indented below it`, state, 113, 2); + await gherkinStep('Outcome', `the indented Rule is NOT a child of the previous Rule`, state, 114, 3); await afterScenario(state); }); test('Scenario: Exploded tags make multiple tests (@tag @multiple_tags @1a)', async (context) => { let state = await initRuleScenario(context, 'Exploded tags make multiple tests', ['@tag', '@multiple_tags', '@1a'], [`an explodedTags config of [[ '@1a','@1b' ], [ '@2a','@2b' ]]`,`this Scenario is run`,`it should be split into 2 tests`]); - await gherkinStep(`an explodedTags config of [[ '@1a','@1b' ], [ '@2a','@2b' ]]`, state, 118, 1, 1); - await gherkinStep(`this Scenario is run`, state, 119, 2, 1); - await gherkinStep(`it should be split into 2 tests`, state, 120, 3, 1); + await gherkinStep('Context', `an explodedTags config of [[ '@1a','@1b' ], [ '@2a','@2b' ]]`, state, 118, 1, 1); + await gherkinStep('Action', `this Scenario is run`, state, 119, 2, 1); + await gherkinStep('Outcome', `it should be split into 2 tests`, state, 120, 3, 1); await afterScenario(state); }); @@ -168,17 +168,17 @@ describe('Feature: QuickPickle\'s Comprehensive Gherkin Syntax Example', () => { test('Scenario: Exploded tags make multiple tests (@tag @multiple_tags @1b)', async (context) => { let state = await initRuleScenario(context, 'Exploded tags make multiple tests', ['@tag', '@multiple_tags', '@1b'], [`an explodedTags config of [[ '@1a','@1b' ], [ '@2a','@2b' ]]`,`this Scenario is run`,`it should be split into 2 tests`]); - await gherkinStep(`an explodedTags config of [[ '@1a','@1b' ], [ '@2a','@2b' ]]`, state, 118, 1, 2); - await gherkinStep(`this Scenario is run`, state, 119, 2, 2); - await gherkinStep(`it should be split into 2 tests`, state, 120, 3, 2); + await gherkinStep('Context', `an explodedTags config of [[ '@1a','@1b' ], [ '@2a','@2b' ]]`, state, 118, 1, 2); + await gherkinStep('Action', `this Scenario is run`, state, 119, 2, 2); + await gherkinStep('Outcome', `it should be split into 2 tests`, state, 120, 3, 2); await afterScenario(state); }); test('Scenario: More tags make more tests (@tag @multiple_tags @tag3 @1a @2a)', async (context) => { let state = await initRuleScenario(context, 'More tags make more tests', ['@tag', '@multiple_tags', '@tag3', '@1a', '@2a'], [`an explodedTags config of [[ '@1a','@1b' ], [ '@2a','@2b' ]]`,`this Scenario is run`,`it should be split into 4 tests`]); - await gherkinStep(`an explodedTags config of [[ '@1a','@1b' ], [ '@2a','@2b' ]]`, state, 124, 1, 1); - await gherkinStep(`this Scenario is run`, state, 125, 2, 1); - await gherkinStep(`it should be split into 4 tests`, state, 126, 3, 1); + await gherkinStep('Context', `an explodedTags config of [[ '@1a','@1b' ], [ '@2a','@2b' ]]`, state, 124, 1, 1); + await gherkinStep('Action', `this Scenario is run`, state, 125, 2, 1); + await gherkinStep('Outcome', `it should be split into 4 tests`, state, 126, 3, 1); await afterScenario(state); }); @@ -186,9 +186,9 @@ describe('Feature: QuickPickle\'s Comprehensive Gherkin Syntax Example', () => { test('Scenario: More tags make more tests (@tag @multiple_tags @tag3 @1a @2b)', async (context) => { let state = await initRuleScenario(context, 'More tags make more tests', ['@tag', '@multiple_tags', '@tag3', '@1a', '@2b'], [`an explodedTags config of [[ '@1a','@1b' ], [ '@2a','@2b' ]]`,`this Scenario is run`,`it should be split into 4 tests`]); - await gherkinStep(`an explodedTags config of [[ '@1a','@1b' ], [ '@2a','@2b' ]]`, state, 124, 1, 2); - await gherkinStep(`this Scenario is run`, state, 125, 2, 2); - await gherkinStep(`it should be split into 4 tests`, state, 126, 3, 2); + await gherkinStep('Context', `an explodedTags config of [[ '@1a','@1b' ], [ '@2a','@2b' ]]`, state, 124, 1, 2); + await gherkinStep('Action', `this Scenario is run`, state, 125, 2, 2); + await gherkinStep('Outcome', `it should be split into 4 tests`, state, 126, 3, 2); await afterScenario(state); }); @@ -196,9 +196,9 @@ describe('Feature: QuickPickle\'s Comprehensive Gherkin Syntax Example', () => { test('Scenario: More tags make more tests (@tag @multiple_tags @tag3 @1b @2a)', async (context) => { let state = await initRuleScenario(context, 'More tags make more tests', ['@tag', '@multiple_tags', '@tag3', '@1b', '@2a'], [`an explodedTags config of [[ '@1a','@1b' ], [ '@2a','@2b' ]]`,`this Scenario is run`,`it should be split into 4 tests`]); - await gherkinStep(`an explodedTags config of [[ '@1a','@1b' ], [ '@2a','@2b' ]]`, state, 124, 1, 3); - await gherkinStep(`this Scenario is run`, state, 125, 2, 3); - await gherkinStep(`it should be split into 4 tests`, state, 126, 3, 3); + await gherkinStep('Context', `an explodedTags config of [[ '@1a','@1b' ], [ '@2a','@2b' ]]`, state, 124, 1, 3); + await gherkinStep('Action', `this Scenario is run`, state, 125, 2, 3); + await gherkinStep('Outcome', `it should be split into 4 tests`, state, 126, 3, 3); await afterScenario(state); }); @@ -206,9 +206,9 @@ describe('Feature: QuickPickle\'s Comprehensive Gherkin Syntax Example', () => { test('Scenario: More tags make more tests (@tag @multiple_tags @tag3 @1b @2b)', async (context) => { let state = await initRuleScenario(context, 'More tags make more tests', ['@tag', '@multiple_tags', '@tag3', '@1b', '@2b'], [`an explodedTags config of [[ '@1a','@1b' ], [ '@2a','@2b' ]]`,`this Scenario is run`,`it should be split into 4 tests`]); - await gherkinStep(`an explodedTags config of [[ '@1a','@1b' ], [ '@2a','@2b' ]]`, state, 124, 1, 4); - await gherkinStep(`this Scenario is run`, state, 125, 2, 4); - await gherkinStep(`it should be split into 4 tests`, state, 126, 3, 4); + await gherkinStep('Context', `an explodedTags config of [[ '@1a','@1b' ], [ '@2a','@2b' ]]`, state, 124, 1, 4); + await gherkinStep('Action', `this Scenario is run`, state, 125, 2, 4); + await gherkinStep('Outcome', `it should be split into 4 tests`, state, 126, 3, 4); await afterScenario(state); }); @@ -221,9 +221,9 @@ describe('Feature: QuickPickle\'s Comprehensive Gherkin Syntax Example', () => { 'Scenario Outline: Search Ordering: $_0 ($_1) $_2 (@tag @multiple_tags)', async ({ _0, _1, _2 }, context) => { let state = await initRuleScenario(context, `Search Ordering: ${_0} (${_1}) ${_2}`, ['@tag', '@multiple_tags'], [`I search for "${_0}" and get results from 500 books`,`I should see search results with these metrics:`,`next I should see search results with these metrics:`]); - await gherkinStep(`I search for "${_0}" and get results from 500 books`, state, 129, 1); - await gherkinStep(`I should see search results with these metrics:`, state, 130, 2, undefined, [["Book Importance","Match Quality","score"],["primary","exact","3+5=8"]]); - await gherkinStep(`next I should see search results with these metrics:`, state, 133, 3, undefined, [["secondary","exact","2+5=7"]]); + await gherkinStep('Action', `I search for "${_0}" and get results from 500 books`, state, 129, 1); + await gherkinStep('Outcome', `I should see search results with these metrics:`, state, 130, 2, undefined, [["Book Importance","Match Quality","score"],["primary","exact","3+5=8"]]); + await gherkinStep('Outcome', `next I should see search results with these metrics:`, state, 133, 3, undefined, [["secondary","exact","2+5=7"]]); await afterScenario(state); } ); @@ -236,16 +236,16 @@ describe('Feature: QuickPickle\'s Comprehensive Gherkin Syntax Example', () => { 'Scenario Outline: `someone` is ${sneaky} \\${with} \\\\${backslashes} \\\\\\${and} \\$\\{other} \\`things\\\\` \'like\' \\\'quotes\\\\\' (@tag @multiple_tags)', async ({ _0, _1, _2 }, context) => { let state = await initRuleScenario(context, `\`someone\` is \$\{sneaky} \\\$\{with} \\\\\$\{backslashes} \\\\\\\$\{and} \\$\\{other} \\\`things\\\\\` 'like' \\'quotes\\\\'`, ['@tag', '@multiple_tags'], [`a "string with \\"quotes\\""`,`\`someone\` is \$\{sneaky} \\\$\{with} \\\\\$\{backslashes} \\\\\\\$\{and} \\$\\{other} \\\`things\\\\\` 'like' \\'quotes\\\\'`]); - await gherkinStep(`a "string with \\"quotes\\""`, state, 143, 1); - await gherkinStep(`\`someone\` is \$\{sneaky} \\\$\{with} \\\\\$\{backslashes} \\\\\\\$\{and} \\$\\{other} \\\`things\\\\\` 'like' \\'quotes\\\\'`, state, 144, 2); + await gherkinStep('Context', `a "string with \\"quotes\\""`, state, 143, 1); + await gherkinStep('Context', `\`someone\` is \$\{sneaky} \\\$\{with} \\\\\$\{backslashes} \\\\\\\$\{and} \\$\\{other} \\\`things\\\\\` 'like' \\'quotes\\\\'`, state, 144, 2); await afterScenario(state); } ); test('Scenario: `someone` is ${sneaky} \\${with} \\\\${backslashes} \\\\\\${and} \\$\\{other} \\`things\\\\` \'like\' \\\'quotes\\\\\' (@tag @multiple_tags)', async (context) => { let state = await initRuleScenario(context, '`someone` is ${sneaky} \\${with} \\\\${backslashes} \\\\\\${and} \\$\\{other} \\`things\\\\` \'like\' \\\'quotes\\\\\'', ['@tag', '@multiple_tags'], [`a "string with \\"quotes\\""`,`\`someone\` is \$\{sneaky} \\\$\{with} \\\\\$\{backslashes} \\\\\\\$\{and} \\$\\{other} \\\`things\\\\\` 'like' \\'quotes\\\\'`]); - await gherkinStep(`a "string with \\"quotes\\""`, state, 152, 1); - await gherkinStep(`\`someone\` is \$\{sneaky} \\\$\{with} \\\\\$\{backslashes} \\\\\\\$\{and} \\$\\{other} \\\`things\\\\\` 'like' \\'quotes\\\\'`, state, 153, 2); + await gherkinStep('Context', `a "string with \\"quotes\\""`, state, 152, 1); + await gherkinStep('Context', `\`someone\` is \$\{sneaky} \\\$\{with} \\\\\$\{backslashes} \\\\\\\$\{and} \\$\\{other} \\\`things\\\\\` 'like' \\'quotes\\\\'`, state, 153, 2); await afterScenario(state); }); diff --git a/packages/main/package.json b/packages/main/package.json index 081a4f2..d0241ea 100644 --- a/packages/main/package.json +++ b/packages/main/package.json @@ -41,25 +41,25 @@ "test": "vitest --run" }, "dependencies": { - "@cucumber/cucumber": "^11.0.1", - "@cucumber/cucumber-expressions": "^16.1.2", + "@cucumber/cucumber": "^11.1.0", + "@cucumber/cucumber-expressions": "^17.1.0", "@cucumber/gherkin": "^29.0.0", "@cucumber/messages": "^22.0.0", - "@cucumber/tag-expressions": "^6.1.0", + "@cucumber/tag-expressions": "^6.1.1", "lodash-es": "^4.17.21" }, "devDependencies": { "@rollup/plugin-replace": "^6.0.1", "@rollup/plugin-terser": "^0.4.4", - "@rollup/plugin-typescript": "^12.1.0", - "@types/lodash": "^4.14.194", + "@rollup/plugin-typescript": "^12.1.1", + "@types/lodash": "^4.17.13", "@types/lodash-es": "^4.17.12", - "@types/node": "^18.16.3", - "@vitest/browser": "^2.1.2", - "playwright": "^1.48.0", - "rollup": "^3.20.7", - "typescript": "^5.6.2", - "vitest": "^2.1.2" + "@types/node": "^18.19.66", + "@vitest/browser": "^2.1.6", + "playwright": "^1.49.0", + "rollup": "^3.29.5", + "typescript": "^5.7.2", + "vitest": "^2.1.6" }, "peerDependencies": { "vitest": "^1.0.0 || >=2.0.0" diff --git a/packages/main/src/index.ts b/packages/main/src/index.ts index 6c842b0..095b332 100644 --- a/packages/main/src/index.ts +++ b/packages/main/src/index.ts @@ -54,26 +54,31 @@ export function formatStack(text:string, line:string) { return stack.join('\n') } -export const gherkinStep = async (step: string, state: any, line: number, stepIdx:number, explodeIdx?:number, data?:any): Promise => { - const stepDefinitionMatch: StepDefinitionMatch = findStepDefinitionMatch(step); - - // Set the state info - state.info.step = step - state.info.line = line - state.info.stepIdx = stepIdx - state.info.explodedIdx = explodeIdx - - // Sort out the DataTable or DocString - if (Array.isArray(data)) { - data = new DataTable(data) - } - else if (data?.hasOwnProperty('content')) { - data = new DocString(data.content, data.mediaType) - } +export const gherkinStep = async (stepType:"Context"|"Action"|"Outcome", step: string, state: any, line: number, stepIdx:number, explodeIdx?:number, data?:any): Promise => { try { + // Set the state info + state.info.stepType = stepType + state.info.step = step + state.info.line = line + state.info.stepIdx = stepIdx + state.info.explodedIdx = explodeIdx + + // Sort out the DataTable or DocString + let dataType = '' + if (Array.isArray(data)) { + data = new DataTable(data) + dataType = 'dataTable' + } + else if (data?.hasOwnProperty('content')) { + data = new DocString(data.content, data.mediaType) + dataType = 'docString' + } + await applyHooks('beforeStep', state); + try { + const stepDefinitionMatch: StepDefinitionMatch = findStepDefinitionMatch(step, { stepType, dataType }); await stepDefinitionMatch.stepDefinition.f(state, ...stepDefinitionMatch.parameters, data); } catch(e:any) { diff --git a/packages/main/src/render.ts b/packages/main/src/render.ts index bca84cc..3a3455d 100644 --- a/packages/main/src/render.ts +++ b/packages/main/src/render.ts @@ -208,17 +208,29 @@ function renderSteps(steps:Step[], config:QuickPickleConfig, sp = ' ', exploded let data = JSON.stringify(step.dataTable.rows.map(r => { return r.cells.map(c => c.value) })) - return `${sp}await gherkinStep(${tl(step.text)}, state, ${step.location.line}, ${minus}${idx+1}, ${explodedText || 'undefined'}, ${data});` + return `${sp}await gherkinStep('${getStepType(steps, idx)}', ${tl(step.text)}, state, ${step.location.line}, ${minus}${idx+1}, ${explodedText || 'undefined'}, ${data});` } else if (step.docString) { let data = JSON.stringify(pick(step.docString, ['content','mediaType'])) - return `${sp}await gherkinStep(${tl(step.text)}, state, ${step.location.line}, ${minus}${idx+1}, ${explodedText || 'undefined'}, ${data});` + return `${sp}await gherkinStep('${getStepType(steps, idx)}', ${tl(step.text)}, state, ${step.location.line}, ${minus}${idx+1}, ${explodedText || 'undefined'}, ${data});` } - return `${sp}await gherkinStep(${tl(step.text)}, state, ${step.location.line}, ${minus}${idx+1}${explodedText ? `, ${explodedText}` : ''});` + return `${sp}await gherkinStep('${getStepType(steps, idx)}', ${tl(step.text)}, state, ${step.location.line}, ${minus}${idx+1}${explodedText ? `, ${explodedText}` : ''});` }).join('\n') } +function getStepType(steps:Step[], idx:number) { + switch (steps[idx].keywordType) { + case 'Context': + case 'Action': + case 'Outcome': + return steps[idx].keywordType + default: + if (idx) return getStepType(steps, idx-1) + return 'Context' + } +} + /** * Escapes quotation marks in a string for the purposes of this rendering function. * @param t string diff --git a/packages/main/src/steps.ts b/packages/main/src/steps.ts index 948bd71..06179b1 100644 --- a/packages/main/src/steps.ts +++ b/packages/main/src/steps.ts @@ -1,4 +1,4 @@ -import { ExpressionFactory, ParameterTypeRegistry, Expression, ParameterType } from '@cucumber/cucumber-expressions'; +import { ExpressionFactory, ParameterTypeRegistry, Expression, ParameterType, CucumberExpressionGenerator, GeneratedExpression } from '@cucumber/cucumber-expressions'; import { IParameterTypeDefinition } from '@cucumber/cucumber/lib/support_code_library_builder/types'; interface StepDefinition { @@ -31,6 +31,8 @@ const typeName: Record = { const parameterTypeRegistry = new ParameterTypeRegistry(); const expressionFactory = new ExpressionFactory(parameterTypeRegistry); +const cucumberExpressionGenerator = new CucumberExpressionGenerator(() => parameterTypeRegistry.parameterTypes) + const buildParameterType = (type:IParameterTypeDefinition): ParameterType => { return new ParameterType( type.name, @@ -65,17 +67,18 @@ const findStepDefinitionMatches = (step:string): StepDefinitionMatch[] => { }, []); }; -export const findStepDefinitionMatch = (step:string): StepDefinitionMatch => { +type SnippetData = { + stepType:'Context'|'Action'|'Outcome' + dataType:string +} +export const findStepDefinitionMatch = (step:string, snippetData:SnippetData): StepDefinitionMatch => { const stepDefinitionMatches = findStepDefinitionMatches(step); + // If it's not found if (!stepDefinitionMatches || stepDefinitionMatches.length === 0) { + let snippet = getSnippet(step, snippetData); throw new Error(`Undefined. Implement with the following snippet: - - Given('${step}', (world, ...params) => { - // Write code here that turns the phrase above into concrete actions - throw new Error('Not yet implemented!'); - return state; - }); +${snippet} `); } @@ -85,3 +88,44 @@ export const findStepDefinitionMatch = (step:string): StepDefinitionMatch => { return stepDefinitionMatches[0]; }; + +function getSnippet(step:string, { stepType, dataType }:SnippetData):string { + + const generatedExpressions = cucumberExpressionGenerator.generateExpressions(step); + const stepParameterNames = dataType ? [dataType] : [] + + let functionName:string = 'Given' + if (stepType === 'Action') functionName = 'When' + if (stepType === 'Outcome') functionName = 'Then' + + let implementation = "throw new Error('Not yet implemented')" + + const definitionChoices = generatedExpressions.map( + (generatedExpression, index) => { + const prefix = index === 0 ? '' : '// ' + const allParameterNames = ['world'].concat( + generatedExpression.parameterNames, + stepParameterNames + ) + return `${prefix + functionName}('${escapeSpecialCharacters( + generatedExpression + )}', async function (${allParameterNames.join(', ')}) {\n` + } + ) + + return ( + `${definitionChoices.join('')} // Write code here that turns the phrase above into concrete actions\n` + + ` ${implementation}\n` + + '});' + ) + +} + +function escapeSpecialCharacters(generatedExpression: GeneratedExpression) { + let source = generatedExpression.source + // double up any backslashes because we're in a javascript string + source = source.replace(/\\/g, '\\\\') + // escape any single quotes because that's our quote delimiter + source = source.replace(/'/g, "\\'") + return source +} \ No newline at end of file diff --git a/packages/main/tests/test.feature b/packages/main/tests/test.feature index 0e68abd..13ea126 100644 --- a/packages/main/tests/test.feature +++ b/packages/main/tests/test.feature @@ -173,4 +173,49 @@ Feature: Basic Test Example: a custom parameter only matches its exact regex Given a number 1 When I push all the numbers right - Then the error 1 should contain "Undefined. Implement with the following snippet:" \ No newline at end of file + Then the error 1 should contain "Undefined. Implement with the following snippet:" + + @snippets @soft + Rule: Snippets must be helpful + + Example: a custom parameter works + Given the phrase goes up + Then error 1 should contain the following text: + """js + Given('the phrase goes {updown}', async function (world, updown) { + // Write code here that turns the phrase above into concrete actions + throw new Error('Not yet implemented') + }); + """ + And clear error 1 + + Example: multiple parameters work + When a phrase with "first" and "second" + Then error 1 should contain the following text: + ```js + When('a phrase with {string} and {string}', async function (world, string, string2) { + // Write code here that turns the phrase above into concrete actions + throw new Error('Not yet implemented') + }); + ``` + And clear error 1 + + Example: DataTables work + And a step with a DataTable: + | key | value | + | 1 | data table | + And error 1 should contain "Given('a step with a DataTable:', async function (world, dataTable)" + And clear error 1 + + Example: DocStrings should work + Then a step with a DocString: + """ + this is a DocString. + """ + Then error 1 should contain "Then('a step with a DocString:', async function (world, docString)" + And clear error 1 + + Example: no variables should work + Given this step is undefined + Then error 1 should contain "Given('this step is undefined', async function (world) {" + And clear error 1 diff --git a/packages/main/tests/tests.steps.ts b/packages/main/tests/tests.steps.ts index ac65d44..c3ee5cd 100644 --- a/packages/main/tests/tests.steps.ts +++ b/packages/main/tests/tests.steps.ts @@ -68,6 +68,10 @@ Then('(the )error {int} should contain {string}', async (world, idx, expected) = let error = world.info.errors[idx-1] await expect(error.message).toContain(expected) }) +Then('(the )error {int} should contain the following text:', async (world, idx, expected) => { + let error = world.info.errors[idx-1] + await expect(error.message).toContain(expected.toString()) +}) Then('the stack for error {int} should contain {string}', async (world, idx, expected) => { let stack = world.info.errors[idx-1].stack.split('\n')[0] await expect(stack).toContain(expected) diff --git a/packages/playwright/package.json b/packages/playwright/package.json index d275469..6df311d 100644 --- a/packages/playwright/package.json +++ b/packages/playwright/package.json @@ -66,26 +66,26 @@ }, "author": "David Hunt", "dependencies": { - "@playwright/test": "^1.48.0", + "@playwright/test": "^1.49.0", "lodash-es": "^4.17.21", "pixelmatch": "^6.0.0", - "playwright": "^1.48.0", + "playwright": "^1.49.0", "pngjs": "^7.0.0", "quickpickle": "workspace:^", - "vite": "^5.0.11" + "vite": "^5.4.11" }, "devDependencies": { "@rollup/plugin-replace": "^6.0.1", - "@rollup/plugin-typescript": "^12.1.0", + "@rollup/plugin-typescript": "^12.1.1", "@types/jest-image-snapshot": "^6.4.0", "@types/lodash-es": "^4.17.12", "@types/pixelmatch": "^5.2.6", "@types/pngjs": "^6.0.5", "fast-glob": "^3.3.2", "js-yaml": "^4.1.0", - "playwright-core": "^1.48.0", - "rollup": "^3.20.7", - "typescript": "^5.6.2", - "vitest": "^2.1.2" + "playwright-core": "^1.49.0", + "rollup": "^3.29.5", + "typescript": "^5.7.2", + "vitest": "^2.1.6" } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 3d24ac8..a2e615a 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -20,7 +20,7 @@ importers: version: 9.12.0 vitest: specifier: ^2.1.2 - version: 2.1.2(@types/node@22.7.4)(@vitest/browser@2.1.2)(jsdom@25.0.1)(msw@2.4.9(typescript@5.6.2))(terser@5.34.1) + version: 2.1.2(@types/node@22.10.0)(@vitest/browser@2.1.2)(jsdom@25.0.1)(msw@2.6.6(@types/node@22.10.0)(typescript@5.7.2))(terser@5.36.0) packages/components: dependencies: @@ -30,19 +30,19 @@ importers: devDependencies: '@vitest/browser': specifier: ^2.1.2 - version: 2.1.2(@vitest/spy@2.1.2)(playwright@1.48.0)(typescript@5.6.2)(vite@5.4.8(@types/node@22.7.4)(terser@5.34.1))(vitest@2.1.2) + version: 2.1.2(@vitest/spy@2.1.6)(playwright@1.49.0)(typescript@5.7.2)(vite@5.4.11(@types/node@22.10.0)(terser@5.36.0))(vitest@2.1.2) vitest: specifier: ^2.1.2 - version: 2.1.2(@types/node@22.7.4)(@vitest/browser@2.1.2)(jsdom@25.0.1)(msw@2.4.9(typescript@5.6.2))(terser@5.34.1) + version: 2.1.2(@types/node@22.10.0)(@vitest/browser@2.1.2)(jsdom@25.0.1)(msw@2.4.9(typescript@5.7.2))(terser@5.36.0) packages/main: dependencies: '@cucumber/cucumber': - specifier: ^11.0.1 - version: 11.0.1 + specifier: ^11.1.0 + version: 11.1.0 '@cucumber/cucumber-expressions': - specifier: ^16.1.2 - version: 16.1.2 + specifier: ^17.1.0 + version: 17.1.0 '@cucumber/gherkin': specifier: ^29.0.0 version: 29.0.0 @@ -50,8 +50,8 @@ importers: specifier: ^22.0.0 version: 22.0.0 '@cucumber/tag-expressions': - specifier: ^6.1.0 - version: 6.1.0 + specifier: ^6.1.1 + version: 6.1.1 lodash-es: specifier: ^4.17.21 version: 4.17.21 @@ -63,38 +63,38 @@ importers: specifier: ^0.4.4 version: 0.4.4(rollup@3.29.5) '@rollup/plugin-typescript': - specifier: ^12.1.0 - version: 12.1.0(rollup@3.29.5)(tslib@2.7.0)(typescript@5.6.2) + specifier: ^12.1.1 + version: 12.1.1(rollup@3.29.5)(tslib@2.7.0)(typescript@5.7.2) '@types/lodash': - specifier: ^4.14.194 - version: 4.17.10 + specifier: ^4.17.13 + version: 4.17.13 '@types/lodash-es': specifier: ^4.17.12 version: 4.17.12 '@types/node': - specifier: ^18.16.3 - version: 18.19.54 + specifier: ^18.19.66 + version: 18.19.66 '@vitest/browser': - specifier: ^2.1.2 - version: 2.1.2(@vitest/spy@2.1.2)(playwright@1.48.0)(typescript@5.6.2)(vite@5.4.8(@types/node@18.19.54)(terser@5.34.1))(vitest@2.1.2) + specifier: ^2.1.6 + version: 2.1.6(@types/node@18.19.66)(playwright@1.49.0)(typescript@5.7.2)(vite@6.0.1(@types/node@18.19.66)(terser@5.36.0)(yaml@2.6.1))(vitest@2.1.6) playwright: - specifier: ^1.48.0 - version: 1.48.0 + specifier: ^1.49.0 + version: 1.49.0 rollup: - specifier: ^3.20.7 + specifier: ^3.29.5 version: 3.29.5 typescript: - specifier: ^5.6.2 - version: 5.6.2 + specifier: ^5.7.2 + version: 5.7.2 vitest: - specifier: ^2.1.2 - version: 2.1.2(@types/node@18.19.54)(@vitest/browser@2.1.2)(jsdom@25.0.1)(msw@2.4.9(typescript@5.6.2))(terser@5.34.1) + specifier: ^2.1.6 + version: 2.1.6(@types/node@18.19.66)(@vitest/browser@2.1.6)(jsdom@25.0.1)(msw@2.6.6(@types/node@18.19.66)(typescript@5.7.2))(terser@5.36.0)(yaml@2.6.1) packages/playwright: dependencies: '@playwright/test': - specifier: ^1.48.0 - version: 1.48.0 + specifier: ^1.49.0 + version: 1.49.0 lodash-es: specifier: ^4.17.21 version: 4.17.21 @@ -102,8 +102,8 @@ importers: specifier: ^6.0.0 version: 6.0.0 playwright: - specifier: ^1.48.0 - version: 1.48.0 + specifier: ^1.49.0 + version: 1.49.0 pngjs: specifier: ^7.0.0 version: 7.0.0 @@ -111,15 +111,15 @@ importers: specifier: workspace:^ version: link:../main vite: - specifier: ^5.0.11 - version: 5.4.8(@types/node@22.7.4)(terser@5.34.1) + specifier: ^5.4.11 + version: 5.4.11(@types/node@22.10.0)(terser@5.36.0) devDependencies: '@rollup/plugin-replace': specifier: ^6.0.1 version: 6.0.1(rollup@3.29.5) '@rollup/plugin-typescript': - specifier: ^12.1.0 - version: 12.1.0(rollup@3.29.5)(tslib@2.7.0)(typescript@5.6.2) + specifier: ^12.1.1 + version: 12.1.1(rollup@3.29.5)(tslib@2.7.0)(typescript@5.7.2) '@types/jest-image-snapshot': specifier: ^6.4.0 version: 6.4.0 @@ -139,17 +139,17 @@ importers: specifier: ^4.1.0 version: 4.1.0 playwright-core: - specifier: ^1.48.0 - version: 1.48.0 + specifier: ^1.49.0 + version: 1.49.0 rollup: - specifier: ^3.20.7 + specifier: ^3.29.5 version: 3.29.5 typescript: - specifier: ^5.6.2 - version: 5.6.2 + specifier: ^5.7.2 + version: 5.7.2 vitest: - specifier: ^2.1.2 - version: 2.1.2(@types/node@22.7.4)(@vitest/browser@2.1.2)(jsdom@25.0.1)(msw@2.4.9(typescript@5.6.2))(terser@5.34.1) + specifier: ^2.1.6 + version: 2.1.6(@types/node@22.10.0)(@vitest/browser@2.1.6)(jsdom@25.0.1)(msw@2.6.6(@types/node@22.10.0)(typescript@5.7.2))(terser@5.36.0)(yaml@2.6.1) packages/svelte: dependencies: @@ -165,19 +165,19 @@ importers: devDependencies: '@sveltejs/adapter-auto': specifier: ^3.0.0 - version: 3.2.5(@sveltejs/kit@2.6.2(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.8(@types/node@22.7.4)(terser@5.34.1)))(svelte@4.2.19)(vite@5.4.8(@types/node@22.7.4)(terser@5.34.1))) + version: 3.2.5(@sveltejs/kit@2.6.2(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.8(@types/node@22.7.4)(terser@5.36.0)))(svelte@4.2.19)(vite@5.4.8(@types/node@22.7.4)(terser@5.36.0))) '@sveltejs/kit': specifier: ^2.0.0 - version: 2.6.2(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.8(@types/node@22.7.4)(terser@5.34.1)))(svelte@4.2.19)(vite@5.4.8(@types/node@22.7.4)(terser@5.34.1)) + version: 2.6.2(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.8(@types/node@22.7.4)(terser@5.36.0)))(svelte@4.2.19)(vite@5.4.8(@types/node@22.7.4)(terser@5.36.0)) '@sveltejs/package': specifier: ^2.0.0 version: 2.3.5(svelte@4.2.19)(typescript@5.6.2) '@sveltejs/vite-plugin-svelte': specifier: ^3.0.0 - version: 3.1.2(svelte@4.2.19)(vite@5.4.8(@types/node@22.7.4)(terser@5.34.1)) + version: 3.1.2(svelte@4.2.19)(vite@5.4.8(@types/node@22.7.4)(terser@5.36.0)) '@testing-library/svelte': specifier: ^5.2.1 - version: 5.2.3(svelte@4.2.19)(vite@5.4.8(@types/node@22.7.4)(terser@5.34.1))(vitest@2.1.2) + version: 5.2.3(svelte@4.2.19)(vite@5.4.8(@types/node@22.7.4)(terser@5.36.0))(vitest@2.1.2) '@types/lodash-es': specifier: ^4.17.12 version: 4.17.12 @@ -198,7 +198,7 @@ importers: version: 4.2.19 svelte-check: specifier: ^4.0.0 - version: 4.0.4(svelte@4.2.19)(typescript@5.6.2) + version: 4.0.4(picomatch@4.0.2)(svelte@4.2.19)(typescript@5.6.2) ts-node: specifier: ^10.9.2 version: 10.9.2(@types/node@22.7.4)(typescript@5.6.2) @@ -207,13 +207,13 @@ importers: version: 5.6.2 vite: specifier: ^5.0.11 - version: 5.4.8(@types/node@22.7.4)(terser@5.34.1) + version: 5.4.8(@types/node@22.7.4)(terser@5.36.0) vite-node: specifier: ^2.1.1 - version: 2.1.2(@types/node@22.7.4)(terser@5.34.1) + version: 2.1.2(@types/node@22.7.4)(terser@5.36.0) vitest: specifier: ^2.0.0 - version: 2.1.2(@types/node@22.7.4)(@vitest/browser@2.1.2)(jsdom@25.0.1)(msw@2.4.9(typescript@5.6.2))(terser@5.34.1) + version: 2.1.2(@types/node@22.7.4)(@vitest/browser@2.1.2)(jsdom@25.0.1)(msw@2.6.6(@types/node@22.7.4)(typescript@5.6.2))(terser@5.36.0) packages: @@ -221,25 +221,28 @@ packages: resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} engines: {node: '>=6.0.0'} - '@babel/code-frame@7.24.7': - resolution: {integrity: sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==} - engines: {node: '>=6.9.0'} - - '@babel/helper-validator-identifier@7.24.7': - resolution: {integrity: sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==} + '@babel/code-frame@7.26.2': + resolution: {integrity: sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==} engines: {node: '>=6.9.0'} - '@babel/highlight@7.24.7': - resolution: {integrity: sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw==} + '@babel/helper-validator-identifier@7.25.9': + resolution: {integrity: sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==} engines: {node: '>=6.9.0'} '@babel/runtime@7.25.6': resolution: {integrity: sha512-VBj9MYyDb9tuLq7yzqjgzt6Q+IBQLrGZfdjOekyEirZPHxXWoTSGUTMrpsfi58Up73d13NfYLv8HT9vmznjzhQ==} engines: {node: '>=6.9.0'} + '@babel/runtime@7.26.0': + resolution: {integrity: sha512-FDSOghenHTiToteC/QRlv2q3DhPZ/oOXTBoirfWNx1Cx3TMVcGWQtMMmQcSvb/JjpNeGzx8Pq/b4fKEJuWm1sw==} + engines: {node: '>=6.9.0'} + '@bundled-es-modules/cookie@2.0.0': resolution: {integrity: sha512-Or6YHg/kamKHpxULAdSqhGqnWFneIXu1NKvvfBBzKGwpVsYuFIQ5aBPHDnnoR3ghW1nvSkALd+EF9iMtY7Vjxw==} + '@bundled-es-modules/cookie@2.0.1': + resolution: {integrity: sha512-8o+5fRPLNbjbdGRRmJj3h6Hh1AQJf2dk3qQ/5ZFb+PXkRNiSoMGGUKlsgLfrxneb72axVJyIYji64E2+nNfYyw==} + '@bundled-es-modules/statuses@1.0.1': resolution: {integrity: sha512-yn7BklA5acgcBr+7w064fGV+SGIFySjCKpqjcWgBAIfrAkY+4GQTJJHQMeT3V/sgz23VTEVV8TtOmkvJAhFVfg==} @@ -323,6 +326,11 @@ packages: engines: {node: 18 || 20 || >=22} hasBin: true + '@cucumber/cucumber@11.1.0': + resolution: {integrity: sha512-INDycPL2AR1Ky3X+81n2MfChvVe8Z8we52GG6I0lld34755Dn3xsiM7a2g9eCr6wRX8+9vnOom1D7Pbc2238RQ==} + engines: {node: 18 || 20 || 22 || >=23} + hasBin: true + '@cucumber/gherkin-streams@5.0.1': resolution: {integrity: sha512-/7VkIE/ASxIP/jd4Crlp4JHXqdNFxPGQokqWqsaCCiqBiu5qHoKMxcWNlp9njVL/n9yN4S08OmY3ZR8uC5x74Q==} hasBin: true @@ -346,6 +354,11 @@ packages: peerDependencies: '@cucumber/messages': '>=18' + '@cucumber/junit-xml-formatter@0.6.0': + resolution: {integrity: sha512-++PAuxliQhq7yr2Bn9P0fwBUo46OoKAK5f6M4PrwoHBqIsl/6pUS4mqpviuBrgZ8RD7BTrmASk4lUDJClAz/qA==} + peerDependencies: + '@cucumber/messages': '*' + '@cucumber/message-streams@4.0.1': resolution: {integrity: sha512-Kxap9uP5jD8tHUZVjTWgzxemi/0uOsbGjd4LBOSxcJoOCRbESFwemUzilJuzNTB8pcTQUh8D5oudUyxfkJOKmA==} peerDependencies: @@ -357,151 +370,313 @@ packages: '@cucumber/messages@24.1.0': resolution: {integrity: sha512-hxVHiBurORcobhVk80I9+JkaKaNXkW6YwGOEFIh/2aO+apAN+5XJgUUWjng9NwqaQrW1sCFuawLB1AuzmBaNdQ==} + '@cucumber/query@13.0.2': + resolution: {integrity: sha512-ykjwL99F5ZmJ3XnIRPe/eA8LvfSTc+C6ZZXrD5QrAfhfMRomBNpZT03MNnxrJ92ge18eDbculhclrIJQiVJCJg==} + peerDependencies: + '@cucumber/messages': '*' + '@cucumber/tag-expressions@6.1.0': resolution: {integrity: sha512-+3DwRumrCJG27AtzCIL37A/X+A/gSfxOPLg8pZaruh5SLumsTmpvilwroVWBT2fPzmno/tGXypeK5a7NHU4RzA==} + '@cucumber/tag-expressions@6.1.1': + resolution: {integrity: sha512-0oj5KTzf2DsR3DhL3hYeI9fP3nyKzs7TQdpl54uJelJ3W3Hlyyet2Hib+8LK7kNnqJsXENnJg9zahRYyrtvNEg==} + '@esbuild/aix-ppc64@0.21.5': resolution: {integrity: sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==} engines: {node: '>=12'} cpu: [ppc64] os: [aix] + '@esbuild/aix-ppc64@0.24.0': + resolution: {integrity: sha512-WtKdFM7ls47zkKHFVzMz8opM7LkcsIp9amDUBIAWirg70RM71WRSjdILPsY5Uv1D42ZpUfaPILDlfactHgsRkw==} + engines: {node: '>=18'} + cpu: [ppc64] + os: [aix] + '@esbuild/android-arm64@0.21.5': resolution: {integrity: sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==} engines: {node: '>=12'} cpu: [arm64] os: [android] + '@esbuild/android-arm64@0.24.0': + resolution: {integrity: sha512-Vsm497xFM7tTIPYK9bNTYJyF/lsP590Qc1WxJdlB6ljCbdZKU9SY8i7+Iin4kyhV/KV5J2rOKsBQbB77Ab7L/w==} + engines: {node: '>=18'} + cpu: [arm64] + os: [android] + '@esbuild/android-arm@0.21.5': resolution: {integrity: sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==} engines: {node: '>=12'} cpu: [arm] os: [android] + '@esbuild/android-arm@0.24.0': + resolution: {integrity: sha512-arAtTPo76fJ/ICkXWetLCc9EwEHKaeya4vMrReVlEIUCAUncH7M4bhMQ+M9Vf+FFOZJdTNMXNBrWwW+OXWpSew==} + engines: {node: '>=18'} + cpu: [arm] + os: [android] + '@esbuild/android-x64@0.21.5': resolution: {integrity: sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==} engines: {node: '>=12'} cpu: [x64] os: [android] + '@esbuild/android-x64@0.24.0': + resolution: {integrity: sha512-t8GrvnFkiIY7pa7mMgJd7p8p8qqYIz1NYiAoKc75Zyv73L3DZW++oYMSHPRarcotTKuSs6m3hTOa5CKHaS02TQ==} + engines: {node: '>=18'} + cpu: [x64] + os: [android] + '@esbuild/darwin-arm64@0.21.5': resolution: {integrity: sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==} engines: {node: '>=12'} cpu: [arm64] os: [darwin] + '@esbuild/darwin-arm64@0.24.0': + resolution: {integrity: sha512-CKyDpRbK1hXwv79soeTJNHb5EiG6ct3efd/FTPdzOWdbZZfGhpbcqIpiD0+vwmpu0wTIL97ZRPZu8vUt46nBSw==} + engines: {node: '>=18'} + cpu: [arm64] + os: [darwin] + '@esbuild/darwin-x64@0.21.5': resolution: {integrity: sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==} engines: {node: '>=12'} cpu: [x64] os: [darwin] + '@esbuild/darwin-x64@0.24.0': + resolution: {integrity: sha512-rgtz6flkVkh58od4PwTRqxbKH9cOjaXCMZgWD905JOzjFKW+7EiUObfd/Kav+A6Gyud6WZk9w+xu6QLytdi2OA==} + engines: {node: '>=18'} + cpu: [x64] + os: [darwin] + '@esbuild/freebsd-arm64@0.21.5': resolution: {integrity: sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==} engines: {node: '>=12'} cpu: [arm64] os: [freebsd] + '@esbuild/freebsd-arm64@0.24.0': + resolution: {integrity: sha512-6Mtdq5nHggwfDNLAHkPlyLBpE5L6hwsuXZX8XNmHno9JuL2+bg2BX5tRkwjyfn6sKbxZTq68suOjgWqCicvPXA==} + engines: {node: '>=18'} + cpu: [arm64] + os: [freebsd] + '@esbuild/freebsd-x64@0.21.5': resolution: {integrity: sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==} engines: {node: '>=12'} cpu: [x64] os: [freebsd] + '@esbuild/freebsd-x64@0.24.0': + resolution: {integrity: sha512-D3H+xh3/zphoX8ck4S2RxKR6gHlHDXXzOf6f/9dbFt/NRBDIE33+cVa49Kil4WUjxMGW0ZIYBYtaGCa2+OsQwQ==} + engines: {node: '>=18'} + cpu: [x64] + os: [freebsd] + '@esbuild/linux-arm64@0.21.5': resolution: {integrity: sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==} engines: {node: '>=12'} cpu: [arm64] os: [linux] + '@esbuild/linux-arm64@0.24.0': + resolution: {integrity: sha512-TDijPXTOeE3eaMkRYpcy3LarIg13dS9wWHRdwYRnzlwlA370rNdZqbcp0WTyyV/k2zSxfko52+C7jU5F9Tfj1g==} + engines: {node: '>=18'} + cpu: [arm64] + os: [linux] + '@esbuild/linux-arm@0.21.5': resolution: {integrity: sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==} engines: {node: '>=12'} cpu: [arm] os: [linux] + '@esbuild/linux-arm@0.24.0': + resolution: {integrity: sha512-gJKIi2IjRo5G6Glxb8d3DzYXlxdEj2NlkixPsqePSZMhLudqPhtZ4BUrpIuTjJYXxvF9njql+vRjB2oaC9XpBw==} + engines: {node: '>=18'} + cpu: [arm] + os: [linux] + '@esbuild/linux-ia32@0.21.5': resolution: {integrity: sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==} engines: {node: '>=12'} cpu: [ia32] os: [linux] + '@esbuild/linux-ia32@0.24.0': + resolution: {integrity: sha512-K40ip1LAcA0byL05TbCQ4yJ4swvnbzHscRmUilrmP9Am7//0UjPreh4lpYzvThT2Quw66MhjG//20mrufm40mA==} + engines: {node: '>=18'} + cpu: [ia32] + os: [linux] + '@esbuild/linux-loong64@0.21.5': resolution: {integrity: sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==} engines: {node: '>=12'} cpu: [loong64] os: [linux] + '@esbuild/linux-loong64@0.24.0': + resolution: {integrity: sha512-0mswrYP/9ai+CU0BzBfPMZ8RVm3RGAN/lmOMgW4aFUSOQBjA31UP8Mr6DDhWSuMwj7jaWOT0p0WoZ6jeHhrD7g==} + engines: {node: '>=18'} + cpu: [loong64] + os: [linux] + '@esbuild/linux-mips64el@0.21.5': resolution: {integrity: sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==} engines: {node: '>=12'} cpu: [mips64el] os: [linux] + '@esbuild/linux-mips64el@0.24.0': + resolution: {integrity: sha512-hIKvXm0/3w/5+RDtCJeXqMZGkI2s4oMUGj3/jM0QzhgIASWrGO5/RlzAzm5nNh/awHE0A19h/CvHQe6FaBNrRA==} + engines: {node: '>=18'} + cpu: [mips64el] + os: [linux] + '@esbuild/linux-ppc64@0.21.5': resolution: {integrity: sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==} engines: {node: '>=12'} cpu: [ppc64] os: [linux] + '@esbuild/linux-ppc64@0.24.0': + resolution: {integrity: sha512-HcZh5BNq0aC52UoocJxaKORfFODWXZxtBaaZNuN3PUX3MoDsChsZqopzi5UupRhPHSEHotoiptqikjN/B77mYQ==} + engines: {node: '>=18'} + cpu: [ppc64] + os: [linux] + '@esbuild/linux-riscv64@0.21.5': resolution: {integrity: sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==} engines: {node: '>=12'} cpu: [riscv64] os: [linux] + '@esbuild/linux-riscv64@0.24.0': + resolution: {integrity: sha512-bEh7dMn/h3QxeR2KTy1DUszQjUrIHPZKyO6aN1X4BCnhfYhuQqedHaa5MxSQA/06j3GpiIlFGSsy1c7Gf9padw==} + engines: {node: '>=18'} + cpu: [riscv64] + os: [linux] + '@esbuild/linux-s390x@0.21.5': resolution: {integrity: sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==} engines: {node: '>=12'} cpu: [s390x] os: [linux] + '@esbuild/linux-s390x@0.24.0': + resolution: {integrity: sha512-ZcQ6+qRkw1UcZGPyrCiHHkmBaj9SiCD8Oqd556HldP+QlpUIe2Wgn3ehQGVoPOvZvtHm8HPx+bH20c9pvbkX3g==} + engines: {node: '>=18'} + cpu: [s390x] + os: [linux] + '@esbuild/linux-x64@0.21.5': resolution: {integrity: sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==} engines: {node: '>=12'} cpu: [x64] os: [linux] + '@esbuild/linux-x64@0.24.0': + resolution: {integrity: sha512-vbutsFqQ+foy3wSSbmjBXXIJ6PL3scghJoM8zCL142cGaZKAdCZHyf+Bpu/MmX9zT9Q0zFBVKb36Ma5Fzfa8xA==} + engines: {node: '>=18'} + cpu: [x64] + os: [linux] + '@esbuild/netbsd-x64@0.21.5': resolution: {integrity: sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==} engines: {node: '>=12'} cpu: [x64] os: [netbsd] + '@esbuild/netbsd-x64@0.24.0': + resolution: {integrity: sha512-hjQ0R/ulkO8fCYFsG0FZoH+pWgTTDreqpqY7UnQntnaKv95uP5iW3+dChxnx7C3trQQU40S+OgWhUVwCjVFLvg==} + engines: {node: '>=18'} + cpu: [x64] + os: [netbsd] + + '@esbuild/openbsd-arm64@0.24.0': + resolution: {integrity: sha512-MD9uzzkPQbYehwcN583yx3Tu5M8EIoTD+tUgKF982WYL9Pf5rKy9ltgD0eUgs8pvKnmizxjXZyLt0z6DC3rRXg==} + engines: {node: '>=18'} + cpu: [arm64] + os: [openbsd] + '@esbuild/openbsd-x64@0.21.5': resolution: {integrity: sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==} engines: {node: '>=12'} cpu: [x64] os: [openbsd] + '@esbuild/openbsd-x64@0.24.0': + resolution: {integrity: sha512-4ir0aY1NGUhIC1hdoCzr1+5b43mw99uNwVzhIq1OY3QcEwPDO3B7WNXBzaKY5Nsf1+N11i1eOfFcq+D/gOS15Q==} + engines: {node: '>=18'} + cpu: [x64] + os: [openbsd] + '@esbuild/sunos-x64@0.21.5': resolution: {integrity: sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==} engines: {node: '>=12'} cpu: [x64] os: [sunos] + '@esbuild/sunos-x64@0.24.0': + resolution: {integrity: sha512-jVzdzsbM5xrotH+W5f1s+JtUy1UWgjU0Cf4wMvffTB8m6wP5/kx0KiaLHlbJO+dMgtxKV8RQ/JvtlFcdZ1zCPA==} + engines: {node: '>=18'} + cpu: [x64] + os: [sunos] + '@esbuild/win32-arm64@0.21.5': resolution: {integrity: sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==} engines: {node: '>=12'} cpu: [arm64] os: [win32] + '@esbuild/win32-arm64@0.24.0': + resolution: {integrity: sha512-iKc8GAslzRpBytO2/aN3d2yb2z8XTVfNV0PjGlCxKo5SgWmNXx82I/Q3aG1tFfS+A2igVCY97TJ8tnYwpUWLCA==} + engines: {node: '>=18'} + cpu: [arm64] + os: [win32] + '@esbuild/win32-ia32@0.21.5': resolution: {integrity: sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==} engines: {node: '>=12'} cpu: [ia32] os: [win32] + '@esbuild/win32-ia32@0.24.0': + resolution: {integrity: sha512-vQW36KZolfIudCcTnaTpmLQ24Ha1RjygBo39/aLkM2kmjkWmZGEJ5Gn9l5/7tzXA42QGIoWbICfg6KLLkIw6yw==} + engines: {node: '>=18'} + cpu: [ia32] + os: [win32] + '@esbuild/win32-x64@0.21.5': resolution: {integrity: sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==} engines: {node: '>=12'} cpu: [x64] os: [win32] + '@esbuild/win32-x64@0.24.0': + resolution: {integrity: sha512-7IAFPrjSQIJrGsK6flwg7NFmwBoSTyF3rl7If0hNUFQU4ilTsEPL6GuMuU9BfIWVVGuRnuIidkSMC+c0Otu8IA==} + engines: {node: '>=18'} + cpu: [x64] + os: [win32] + '@inquirer/confirm@3.2.0': resolution: {integrity: sha512-oOIwPs0Dvq5220Z8lGL/6LHRTEr9TgLHmiI99Rj1PJ1p1czTys+olrgBqZk4E2qC0YTzeHprxSQmoHioVdJ7Lw==} engines: {node: '>=18'} + '@inquirer/confirm@5.0.2': + resolution: {integrity: sha512-KJLUHOaKnNCYzwVbryj3TNBxyZIrr56fR5N45v6K9IPrbT6B7DcudBMfylkV1A8PUdJE15mybkEQyp2/ZUpxUA==} + engines: {node: '>=18'} + peerDependencies: + '@types/node': '>=18' + + '@inquirer/core@10.1.0': + resolution: {integrity: sha512-I+ETk2AL+yAVbvuKx5AJpQmoaWhpiTFOg/UJb7ZkMAK4blmtG8ATh5ct+T/8xNld0CZG/2UhtkdMwpgvld92XQ==} + engines: {node: '>=18'} + '@inquirer/core@9.2.1': resolution: {integrity: sha512-F2VBt7W/mwqEU4bL0RnHNZmC/OxzNx9cOYxHqnXX3MP6ruYvZUZAW9imgN9+h/uBT/oP8Gh888J2OZSbjSeWcg==} engines: {node: '>=18'} @@ -510,6 +685,10 @@ packages: resolution: {integrity: sha512-m+Trk77mp54Zma6xLkLuY+mvanPxlE4A7yNKs2HBiyZ4UkVs28Mv5c/pgWrHeInx+USHeX/WEPzjrWrcJiQgjw==} engines: {node: '>=18'} + '@inquirer/figures@1.0.8': + resolution: {integrity: sha512-tKd+jsmhq21AP1LhexC0pPwsCxEhGgAkg28byjJAd+xhmIs8LUX8JbUc3vBf3PhLxWiB5EvyBE5X7JSPAqMAqg==} + engines: {node: '>=18'} + '@inquirer/type@1.5.5': resolution: {integrity: sha512-MzICLu4yS7V8AA61sANROZ9vT1H3ooca5dSmI1FjZkzq7o/koMsRfQSzRtFo+F3Ao4Sf1C0bpLKejpKB/+j6MA==} engines: {node: '>=18'} @@ -518,6 +697,12 @@ packages: resolution: {integrity: sha512-XvJRx+2KR3YXyYtPUUy+qd9i7p+GO9Ko6VIIpWlBrpWwXDv8WLFeHTxz35CfQFUiBMLXlGHhGzys7lqit9gWag==} engines: {node: '>=18'} + '@inquirer/type@3.0.1': + resolution: {integrity: sha512-+ksJMIy92sOAiAccGpcKZUc3bYO07cADnscIxHBknEm3uNts3movSmBofc1908BNy5edKscxYeAdaX1NXkHS6A==} + engines: {node: '>=18'} + peerDependencies: + '@types/node': '>=18' + '@isaacs/cliui@8.0.2': resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} engines: {node: '>=12'} @@ -568,6 +753,10 @@ packages: resolution: {integrity: sha512-SSnyl/4ni/2ViHKkiZb8eajA/eN1DNFaHjhGiLUdZvDz6PKF4COSf/17xqSz64nOo2Ia29SA6B2KNCsyCbVmaQ==} engines: {node: '>=18'} + '@mswjs/interceptors@0.37.1': + resolution: {integrity: sha512-SvE+tSpcX884RJrPCskXxoS965Ky/pYABDEhWW6oeSRhpUDLrS5nTvT5n1LLSDVDYvty4imVmXsy+3/ROVuknA==} + engines: {node: '>=18'} + '@nodelib/fs.scandir@2.1.5': resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} engines: {node: '>= 8'} @@ -593,14 +782,17 @@ packages: resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} engines: {node: '>=14'} - '@playwright/test@1.48.0': - resolution: {integrity: sha512-W5lhqPUVPqhtc/ySvZI5Q8X2ztBOUgZ8LbAFy0JQgrXZs2xaILrUcNO3rQjwbLPfGK13+rZsDa1FpG+tqYkT5w==} + '@playwright/test@1.49.0': + resolution: {integrity: sha512-DMulbwQURa8rNIQrf94+jPJQ4FmOVdpE5ZppRNvWVjvhC+6sOeo28r8MgIpQRYouXRtt/FCCXU7zn20jnHR4Qw==} engines: {node: '>=18'} hasBin: true '@polka/url@1.0.0-next.25': resolution: {integrity: sha512-j7P6Rgr3mmtdkeDGTe0E/aYyWEWVtc5yFXtHCRHs28/jptDEWfaVOc5T7cblqy1XKPPfCxJc/8DwQ5YgLOZOVQ==} + '@polka/url@1.0.0-next.28': + resolution: {integrity: sha512-8LduaNlMZGwdZ6qWrKlfa+2M4gahzFkprZiAt2TF8uS0qQgBizKXpXURqvTJ4WtmupWxaLqjRb2UCTe72mu+Aw==} + '@rollup/plugin-replace@6.0.1': resolution: {integrity: sha512-2sPh9b73dj5IxuMmDAsQWVFT7mR+yoHweBaXG2W/R8vQ+IWZlnaI7BR7J6EguVQUp1hd8Z7XuozpDjEKQAAC2Q==} engines: {node: '>=14.0.0'} @@ -619,8 +811,8 @@ packages: rollup: optional: true - '@rollup/plugin-typescript@12.1.0': - resolution: {integrity: sha512-Kzs8KGJofe7cfTRODsnG1jNGxSvU8gVoNNd7Z/QaY25AYwe2LSSUpx/kPxqF38NYkpR8de3m51r9uwJpDlz6dg==} + '@rollup/plugin-typescript@12.1.1': + resolution: {integrity: sha512-t7O653DpfB5MbFrqPe/VcKFFkvRuFNp9qId3xq4Eth5xlyymzxNpye2z8Hrl0RIMuXTSr5GGcFpkdlMeacUiFQ==} engines: {node: '>=14.0.0'} peerDependencies: rollup: ^2.14.0||^3.0.0||^4.0.0 @@ -641,86 +833,185 @@ packages: rollup: optional: true + '@rollup/pluginutils@5.1.3': + resolution: {integrity: sha512-Pnsb6f32CD2W3uCaLZIzDmeFyQ2b8UWMFI7xtwUezpcGBDVDW6y9XgAWIlARiGAo6eNF5FK5aQTr0LFyNyqq5A==} + engines: {node: '>=14.0.0'} + peerDependencies: + rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true + '@rollup/rollup-android-arm-eabi@4.24.0': resolution: {integrity: sha512-Q6HJd7Y6xdB48x8ZNVDOqsbh2uByBhgK8PiQgPhwkIw/HC/YX5Ghq2mQY5sRMZWHb3VsFkWooUVOZHKr7DmDIA==} cpu: [arm] os: [android] + '@rollup/rollup-android-arm-eabi@4.27.4': + resolution: {integrity: sha512-2Y3JT6f5MrQkICUyRVCw4oa0sutfAsgaSsb0Lmmy1Wi2y7X5vT9Euqw4gOsCyy0YfKURBg35nhUKZS4mDcfULw==} + cpu: [arm] + os: [android] + '@rollup/rollup-android-arm64@4.24.0': resolution: {integrity: sha512-ijLnS1qFId8xhKjT81uBHuuJp2lU4x2yxa4ctFPtG+MqEE6+C5f/+X/bStmxapgmwLwiL3ih122xv8kVARNAZA==} cpu: [arm64] os: [android] + '@rollup/rollup-android-arm64@4.27.4': + resolution: {integrity: sha512-wzKRQXISyi9UdCVRqEd0H4cMpzvHYt1f/C3CoIjES6cG++RHKhrBj2+29nPF0IB5kpy9MS71vs07fvrNGAl/iA==} + cpu: [arm64] + os: [android] + '@rollup/rollup-darwin-arm64@4.24.0': resolution: {integrity: sha512-bIv+X9xeSs1XCk6DVvkO+S/z8/2AMt/2lMqdQbMrmVpgFvXlmde9mLcbQpztXm1tajC3raFDqegsH18HQPMYtA==} cpu: [arm64] os: [darwin] + '@rollup/rollup-darwin-arm64@4.27.4': + resolution: {integrity: sha512-PlNiRQapift4LNS8DPUHuDX/IdXiLjf8mc5vdEmUR0fF/pyy2qWwzdLjB+iZquGr8LuN4LnUoSEvKRwjSVYz3Q==} + cpu: [arm64] + os: [darwin] + '@rollup/rollup-darwin-x64@4.24.0': resolution: {integrity: sha512-X6/nOwoFN7RT2svEQWUsW/5C/fYMBe4fnLK9DQk4SX4mgVBiTA9h64kjUYPvGQ0F/9xwJ5U5UfTbl6BEjaQdBQ==} cpu: [x64] os: [darwin] + '@rollup/rollup-darwin-x64@4.27.4': + resolution: {integrity: sha512-o9bH2dbdgBDJaXWJCDTNDYa171ACUdzpxSZt+u/AAeQ20Nk5x+IhA+zsGmrQtpkLiumRJEYef68gcpn2ooXhSQ==} + cpu: [x64] + os: [darwin] + + '@rollup/rollup-freebsd-arm64@4.27.4': + resolution: {integrity: sha512-NBI2/i2hT9Q+HySSHTBh52da7isru4aAAo6qC3I7QFVsuhxi2gM8t/EI9EVcILiHLj1vfi+VGGPaLOUENn7pmw==} + cpu: [arm64] + os: [freebsd] + + '@rollup/rollup-freebsd-x64@4.27.4': + resolution: {integrity: sha512-wYcC5ycW2zvqtDYrE7deary2P2UFmSh85PUpAx+dwTCO9uw3sgzD6Gv9n5X4vLaQKsrfTSZZ7Z7uynQozPVvWA==} + cpu: [x64] + os: [freebsd] + '@rollup/rollup-linux-arm-gnueabihf@4.24.0': resolution: {integrity: sha512-0KXvIJQMOImLCVCz9uvvdPgfyWo93aHHp8ui3FrtOP57svqrF/roSSR5pjqL2hcMp0ljeGlU4q9o/rQaAQ3AYA==} cpu: [arm] os: [linux] + '@rollup/rollup-linux-arm-gnueabihf@4.27.4': + resolution: {integrity: sha512-9OwUnK/xKw6DyRlgx8UizeqRFOfi9mf5TYCw1uolDaJSbUmBxP85DE6T4ouCMoN6pXw8ZoTeZCSEfSaYo+/s1w==} + cpu: [arm] + os: [linux] + '@rollup/rollup-linux-arm-musleabihf@4.24.0': resolution: {integrity: sha512-it2BW6kKFVh8xk/BnHfakEeoLPv8STIISekpoF+nBgWM4d55CZKc7T4Dx1pEbTnYm/xEKMgy1MNtYuoA8RFIWw==} cpu: [arm] os: [linux] + '@rollup/rollup-linux-arm-musleabihf@4.27.4': + resolution: {integrity: sha512-Vgdo4fpuphS9V24WOV+KwkCVJ72u7idTgQaBoLRD0UxBAWTF9GWurJO9YD9yh00BzbkhpeXtm6na+MvJU7Z73A==} + cpu: [arm] + os: [linux] + '@rollup/rollup-linux-arm64-gnu@4.24.0': resolution: {integrity: sha512-i0xTLXjqap2eRfulFVlSnM5dEbTVque/3Pi4g2y7cxrs7+a9De42z4XxKLYJ7+OhE3IgxvfQM7vQc43bwTgPwA==} cpu: [arm64] os: [linux] + '@rollup/rollup-linux-arm64-gnu@4.27.4': + resolution: {integrity: sha512-pleyNgyd1kkBkw2kOqlBx+0atfIIkkExOTiifoODo6qKDSpnc6WzUY5RhHdmTdIJXBdSnh6JknnYTtmQyobrVg==} + cpu: [arm64] + os: [linux] + '@rollup/rollup-linux-arm64-musl@4.24.0': resolution: {integrity: sha512-9E6MKUJhDuDh604Qco5yP/3qn3y7SLXYuiC0Rpr89aMScS2UAmK1wHP2b7KAa1nSjWJc/f/Lc0Wl1L47qjiyQw==} cpu: [arm64] os: [linux] + '@rollup/rollup-linux-arm64-musl@4.27.4': + resolution: {integrity: sha512-caluiUXvUuVyCHr5DxL8ohaaFFzPGmgmMvwmqAITMpV/Q+tPoaHZ/PWa3t8B2WyoRcIIuu1hkaW5KkeTDNSnMA==} + cpu: [arm64] + os: [linux] + '@rollup/rollup-linux-powerpc64le-gnu@4.24.0': resolution: {integrity: sha512-2XFFPJ2XMEiF5Zi2EBf4h73oR1V/lycirxZxHZNc93SqDN/IWhYYSYj8I9381ikUFXZrz2v7r2tOVk2NBwxrWw==} cpu: [ppc64] os: [linux] + '@rollup/rollup-linux-powerpc64le-gnu@4.27.4': + resolution: {integrity: sha512-FScrpHrO60hARyHh7s1zHE97u0KlT/RECzCKAdmI+LEoC1eDh/RDji9JgFqyO+wPDb86Oa/sXkily1+oi4FzJQ==} + cpu: [ppc64] + os: [linux] + '@rollup/rollup-linux-riscv64-gnu@4.24.0': resolution: {integrity: sha512-M3Dg4hlwuntUCdzU7KjYqbbd+BLq3JMAOhCKdBE3TcMGMZbKkDdJ5ivNdehOssMCIokNHFOsv7DO4rlEOfyKpg==} cpu: [riscv64] os: [linux] + '@rollup/rollup-linux-riscv64-gnu@4.27.4': + resolution: {integrity: sha512-qyyprhyGb7+RBfMPeww9FlHwKkCXdKHeGgSqmIXw9VSUtvyFZ6WZRtnxgbuz76FK7LyoN8t/eINRbPUcvXB5fw==} + cpu: [riscv64] + os: [linux] + '@rollup/rollup-linux-s390x-gnu@4.24.0': resolution: {integrity: sha512-mjBaoo4ocxJppTorZVKWFpy1bfFj9FeCMJqzlMQGjpNPY9JwQi7OuS1axzNIk0nMX6jSgy6ZURDZ2w0QW6D56g==} cpu: [s390x] os: [linux] + '@rollup/rollup-linux-s390x-gnu@4.27.4': + resolution: {integrity: sha512-PFz+y2kb6tbh7m3A7nA9++eInGcDVZUACulf/KzDtovvdTizHpZaJty7Gp0lFwSQcrnebHOqxF1MaKZd7psVRg==} + cpu: [s390x] + os: [linux] + '@rollup/rollup-linux-x64-gnu@4.24.0': resolution: {integrity: sha512-ZXFk7M72R0YYFN5q13niV0B7G8/5dcQ9JDp8keJSfr3GoZeXEoMHP/HlvqROA3OMbMdfr19IjCeNAnPUG93b6A==} cpu: [x64] os: [linux] + '@rollup/rollup-linux-x64-gnu@4.27.4': + resolution: {integrity: sha512-Ni8mMtfo+o/G7DVtweXXV/Ol2TFf63KYjTtoZ5f078AUgJTmaIJnj4JFU7TK/9SVWTaSJGxPi5zMDgK4w+Ez7Q==} + cpu: [x64] + os: [linux] + '@rollup/rollup-linux-x64-musl@4.24.0': resolution: {integrity: sha512-w1i+L7kAXZNdYl+vFvzSZy8Y1arS7vMgIy8wusXJzRrPyof5LAb02KGr1PD2EkRcl73kHulIID0M501lN+vobQ==} cpu: [x64] os: [linux] + '@rollup/rollup-linux-x64-musl@4.27.4': + resolution: {integrity: sha512-5AeeAF1PB9TUzD+3cROzFTnAJAcVUGLuR8ng0E0WXGkYhp6RD6L+6szYVX+64Rs0r72019KHZS1ka1q+zU/wUw==} + cpu: [x64] + os: [linux] + '@rollup/rollup-win32-arm64-msvc@4.24.0': resolution: {integrity: sha512-VXBrnPWgBpVDCVY6XF3LEW0pOU51KbaHhccHw6AS6vBWIC60eqsH19DAeeObl+g8nKAz04QFdl/Cefta0xQtUQ==} cpu: [arm64] os: [win32] + '@rollup/rollup-win32-arm64-msvc@4.27.4': + resolution: {integrity: sha512-yOpVsA4K5qVwu2CaS3hHxluWIK5HQTjNV4tWjQXluMiiiu4pJj4BN98CvxohNCpcjMeTXk/ZMJBRbgRg8HBB6A==} + cpu: [arm64] + os: [win32] + '@rollup/rollup-win32-ia32-msvc@4.24.0': resolution: {integrity: sha512-xrNcGDU0OxVcPTH/8n/ShH4UevZxKIO6HJFK0e15XItZP2UcaiLFd5kiX7hJnqCbSztUF8Qot+JWBC/QXRPYWQ==} cpu: [ia32] os: [win32] + '@rollup/rollup-win32-ia32-msvc@4.27.4': + resolution: {integrity: sha512-KtwEJOaHAVJlxV92rNYiG9JQwQAdhBlrjNRp7P9L8Cb4Rer3in+0A+IPhJC9y68WAi9H0sX4AiG2NTsVlmqJeQ==} + cpu: [ia32] + os: [win32] + '@rollup/rollup-win32-x64-msvc@4.24.0': resolution: {integrity: sha512-fbMkAF7fufku0N2dE5TBXcNlg0pt0cJue4xBRE2Qc5Vqikxr4VCgKj/ht6SMdFcOacVA9rqF70APJ8RN/4vMJw==} cpu: [x64] os: [win32] + '@rollup/rollup-win32-x64-msvc@4.27.4': + resolution: {integrity: sha512-3j4jx1TppORdTAoBJRd+/wJRGCPC0ETWkXOecJ6PPZLj6SptXkrXcNqdj0oclbKML6FkQltdz7bBA3rUSirZug==} + cpu: [x64] + os: [win32] + '@sinclair/typebox@0.27.8': resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==} @@ -823,14 +1114,14 @@ packages: '@types/jest-image-snapshot@6.4.0': resolution: {integrity: sha512-8TQ/EgqFCX0UWSpH488zAc21fCkJNpZPnnp3xWFMqElxApoJV5QOoqajnVRV7AhfF0rbQWTVyc04KG7tXnzCPA==} - '@types/jest@29.5.13': - resolution: {integrity: sha512-wd+MVEZCHt23V0/L642O5APvspWply/rGY5BcW4SUETo2UzPU3Z26qr8jC2qxpimI2jjx9h7+2cj2FwIr01bXg==} + '@types/jest@29.5.14': + resolution: {integrity: sha512-ZN+4sdnLUbo8EVvVc2ao0GFW6oVrQRPn4K2lglySj7APvSrgzxHiNNK99us4WDMi57xxA2yggblIAMNhXOotLQ==} '@types/lodash-es@4.17.12': resolution: {integrity: sha512-0NgftHUcV4v34VhXm8QBSftKVXtbkBG3ViCjs6+eJ5a6y6Mi/jiFGPc1sC7QK+9BFhWrURE3EOggmWaSxL9OzQ==} - '@types/lodash@4.17.10': - resolution: {integrity: sha512-YpS0zzoduEhuOWjAotS6A5AVCva7X4lVlYLF0FYHAY9sdraBfnatttHItlWeZdGhuEkf+OzMNg2ZYAx8t+52uQ==} + '@types/lodash@4.17.13': + resolution: {integrity: sha512-lfx+dftrEZcdBPczf9d0Qv0x+j/rfNCMuC6OcfXmO8gkfeNAY88PgKUbvG56whcN23gc27yenwF6oJZXGFpYxg==} '@types/mute-stream@0.0.4': resolution: {integrity: sha512-CPM9nzrCPPJHQNA9keH9CVkVI+WR5kMa+7XEs5jcGQ0VoAGnLv242w8lIVgwAEfmE4oufJRaTc9PNLQl0ioAow==} @@ -838,8 +1129,11 @@ packages: '@types/node@12.20.55': resolution: {integrity: sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==} - '@types/node@18.19.54': - resolution: {integrity: sha512-+BRgt0G5gYjTvdLac9sIeE0iZcJxi4Jc4PV5EUzqi+88jmQLr+fRZdv2tCTV7IHKSGxM6SaLoOXQWWUiLUItMw==} + '@types/node@18.19.66': + resolution: {integrity: sha512-14HmtUdGxFUalGRfLLn9Gc1oNWvWh5zNbsyOLo5JV6WARSeN1QcEBKRnZm9QqNfrutgsl/hY4eJW63aZ44aBCg==} + + '@types/node@22.10.0': + resolution: {integrity: sha512-XC70cRZVElFHfIUB40FgZOBbgJYFKKMa5nb9lxcwYstFG/Mi+/Y0bGS+rs6Dmhmkpq4pnNiLiuZAbc02YCOnmA==} '@types/node@22.7.4': resolution: {integrity: sha512-y+NPi1rFzDs1NdQHHToqeiX2TIS79SWEAw9GYhkkx8bD0ChpfqC+n2j5OXOCpzfojBEBt6DnEnnG9MY0zk1XLg==} @@ -892,9 +1186,27 @@ packages: webdriverio: optional: true + '@vitest/browser@2.1.6': + resolution: {integrity: sha512-GTBY78bkRd5BL3jnwQr9J+uIkZjpvRzq0G1uHNy2GeJYfTvmYFh4QE5W2HH6AfEKLFQwPXHFiXgI2o4CEtAtJw==} + peerDependencies: + playwright: '*' + safaridriver: '*' + vitest: 2.1.6 + webdriverio: '*' + peerDependenciesMeta: + playwright: + optional: true + safaridriver: + optional: true + webdriverio: + optional: true + '@vitest/expect@2.1.2': resolution: {integrity: sha512-FEgtlN8mIUSEAAnlvn7mP8vzaWhEaAEvhSXCqrsijM7K6QqjB11qoRZYEd4AKSCDz8p0/+yH5LzhZ47qt+EyPg==} + '@vitest/expect@2.1.6': + resolution: {integrity: sha512-9M1UR9CAmrhJOMoSwVnPh2rELPKhYo0m/CSgqw9PyStpxtkwhmdM6XYlXGKeYyERY1N6EIuzkQ7e3Lm1WKCoUg==} + '@vitest/mocker@2.1.2': resolution: {integrity: sha512-ExElkCGMS13JAJy+812fw1aCv2QO/LBK6CyO4WOPAzLTmve50gydOlWhgdBJPx2ztbADUq3JVI0C5U+bShaeEA==} peerDependencies: @@ -907,21 +1219,47 @@ packages: vite: optional: true + '@vitest/mocker@2.1.6': + resolution: {integrity: sha512-MHZp2Z+Q/A3am5oD4WSH04f9B0T7UvwEb+v5W0kCYMhtXGYbdyl2NUk1wdSMqGthmhpiThPDp/hEoVwu16+u1A==} + peerDependencies: + msw: ^2.4.9 + vite: ^5.0.0 || ^6.0.0 + peerDependenciesMeta: + msw: + optional: true + vite: + optional: true + '@vitest/pretty-format@2.1.2': resolution: {integrity: sha512-FIoglbHrSUlOJPDGIrh2bjX1sNars5HbxlcsFKCtKzu4+5lpsRhOCVcuzp0fEhAGHkPZRIXVNzPcpSlkoZ3LuA==} + '@vitest/pretty-format@2.1.6': + resolution: {integrity: sha512-exZyLcEnHgDMKc54TtHca4McV4sKT+NKAe9ix/yhd/qkYb/TP8HTyXRFDijV19qKqTZM0hPL4753zU/U8L/gAA==} + '@vitest/runner@2.1.2': resolution: {integrity: sha512-UCsPtvluHO3u7jdoONGjOSil+uON5SSvU9buQh3lP7GgUXHp78guN1wRmZDX4wGK6J10f9NUtP6pO+SFquoMlw==} + '@vitest/runner@2.1.6': + resolution: {integrity: sha512-SjkRGSFyrA82m5nz7To4CkRSEVWn/rwQISHoia/DB8c6IHIhaE/UNAo+7UfeaeJRE979XceGl00LNkIz09RFsA==} + '@vitest/snapshot@2.1.2': resolution: {integrity: sha512-xtAeNsZ++aRIYIUsek7VHzry/9AcxeULlegBvsdLncLmNCR6tR8SRjn8BbDP4naxtccvzTqZ+L1ltZlRCfBZFA==} + '@vitest/snapshot@2.1.6': + resolution: {integrity: sha512-5JTWHw8iS9l3v4/VSuthCndw1lN/hpPB+mlgn1BUhFbobeIUj1J1V/Bj2t2ovGEmkXLTckFjQddsxS5T6LuVWw==} + '@vitest/spy@2.1.2': resolution: {integrity: sha512-GSUi5zoy+abNRJwmFhBDC0yRuVUn8WMlQscvnbbXdKLXX9dE59YbfwXxuJ/mth6eeqIzofU8BB5XDo/Ns/qK2A==} + '@vitest/spy@2.1.6': + resolution: {integrity: sha512-oTFObV8bd4SDdRka5O+mSh5w9irgx5IetrD5i+OsUUsk/shsBoHifwCzy45SAORzAhtNiprUVaK3hSCCzZh1jQ==} + '@vitest/utils@2.1.2': resolution: {integrity: sha512-zMO2KdYy6mx56btx9JvAqAZ6EyS3g49krMPPrgOp1yxGZiA93HumGk+bZ5jIZtOg5/VBYl5eBmGRQHqq4FG6uQ==} + '@vitest/utils@2.1.6': + resolution: {integrity: sha512-ixNkFy3k4vokOUTU2blIUvOgKq/N2PW8vKIjZZYsGJCMX69MRa9J2sKqX5hY/k5O5Gty3YJChepkqZ3KM9LyIQ==} + acorn-walk@8.3.4: resolution: {integrity: sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g==} engines: {node: '>=0.4.0'} @@ -931,6 +1269,11 @@ packages: engines: {node: '>=0.4.0'} hasBin: true + acorn@8.14.0: + resolution: {integrity: sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==} + engines: {node: '>=0.4.0'} + hasBin: true + agent-base@7.1.1: resolution: {integrity: sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==} engines: {node: '>= 14'} @@ -955,10 +1298,6 @@ packages: resolution: {integrity: sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==} engines: {node: '>=12'} - ansi-styles@3.2.1: - resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} - engines: {node: '>=4'} - ansi-styles@4.3.0: resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} engines: {node: '>=8'} @@ -990,6 +1329,9 @@ packages: resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} engines: {node: '>=8'} + assert@2.1.0: + resolution: {integrity: sha512-eLHpSK/Y4nhMJ07gDaAzoX/XAKS8PSaojml3M0DM4JpV1LAi5JOJ/p6H/XWrl8L+DzVEvVCW1z3vWAaB9oTsQw==} + assertion-error-formatter@3.0.0: resolution: {integrity: sha512-6YyAVLrEze0kQ7CmJfUgrLHb+Y7XghmL2Ie7ijVa2Y9ynP3LV+VDiwFk62Dn0qtqbmY0BT0ss6p1xxpiF2PYbQ==} @@ -1000,6 +1342,10 @@ packages: asynckit@0.4.0: resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} + available-typed-arrays@1.0.7: + resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==} + engines: {node: '>= 0.4'} + axobject-query@4.1.0: resolution: {integrity: sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==} engines: {node: '>= 0.4'} @@ -1025,6 +1371,10 @@ packages: resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==} engines: {node: '>=8'} + call-bind@1.0.7: + resolution: {integrity: sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==} + engines: {node: '>= 0.4'} + capital-case@1.0.4: resolution: {integrity: sha512-ds37W8CytHgwnhGGTi88pcPyR15qoNkOpYwmMMfnWqqWgESapLqvDx6huFjQ5vqWSn2Z06173XNA7LtMOeUh1A==} @@ -1032,9 +1382,9 @@ packages: resolution: {integrity: sha512-pT1ZgP8rPNqUgieVaEY+ryQr6Q4HXNg8Ei9UnLUrjN4IA7dvQC5JB+/kxVcPNDHyBcc/26CXPkbNzq3qwrOEKA==} engines: {node: '>=12'} - chalk@2.4.2: - resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} - engines: {node: '>=4'} + chai@5.1.2: + resolution: {integrity: sha512-aGtmf24DW6MLHHG5gCx4zaI3uBq3KRtxeVs0DjFH6Z0rDNbsvTxFASFvdj79pxjxZ8/5u3PIiN3IwEIQkiiuPw==} + engines: {node: '>=12'} chalk@4.1.2: resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} @@ -1073,16 +1423,10 @@ packages: code-red@1.0.4: resolution: {integrity: sha512-7qJWqItLA8/VPVlKJlFXU+NBlo/qyfs39aJcuMT/2ere32ZqvF5OSxgdM5xOfJJ7O429gg2HM47y8v9P+9wrNw==} - color-convert@1.9.3: - resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} - color-convert@2.0.1: resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} engines: {node: '>=7.0.0'} - color-name@1.1.3: - resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} - color-name@1.1.4: resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} @@ -1113,14 +1457,18 @@ packages: resolution: {integrity: sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w==} engines: {node: '>= 0.6'} + cookie@0.7.2: + resolution: {integrity: sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==} + engines: {node: '>= 0.6'} + create-require@1.1.1: resolution: {integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==} cross-spawn@5.1.0: resolution: {integrity: sha512-pTgQJ5KC0d2hcY8eyL1IzlBPYjTkyH72XRZPnLyKus2mBfNjQs3klqbJU2VILqZryAZUt9JOb3h/mWMy23/f5A==} - cross-spawn@7.0.3: - resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} + cross-spawn@7.0.6: + resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==} engines: {node: '>= 8'} css-tree@2.3.1: @@ -1158,6 +1506,14 @@ packages: resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==} engines: {node: '>=0.10.0'} + define-data-property@1.1.4: + resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==} + engines: {node: '>= 0.4'} + + define-properties@1.2.1: + resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==} + engines: {node: '>= 0.4'} + delayed-stream@1.0.0: resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} engines: {node: '>=0.4.0'} @@ -1211,11 +1567,27 @@ packages: error-stack-parser@2.1.4: resolution: {integrity: sha512-Sk5V6wVazPhq5MhpO+AUxJn5x7XSXGl1R93Vn7i+zS15KDVxQijejNCrz8340/2bgLBjR9GtEG8ZVKONDjcqGQ==} + es-define-property@1.0.0: + resolution: {integrity: sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==} + engines: {node: '>= 0.4'} + + es-errors@1.3.0: + resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} + engines: {node: '>= 0.4'} + + es-module-lexer@1.5.4: + resolution: {integrity: sha512-MVNK56NiMrOwitFB7cqDwq0CQutbw+0BvLshJSse0MUNU+y1FC3bUS/AQg7oUng+/wKrrki7JfmwtVHkVfPLlw==} + esbuild@0.21.5: resolution: {integrity: sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==} engines: {node: '>=12'} hasBin: true + esbuild@0.24.0: + resolution: {integrity: sha512-FuLPevChGDshgSicjisSooU0cemp/sGXR841D5LHMB7mTVOmsEHcAxaH3irL53+8YDIeVNQEySh4DaYU/iuPqQ==} + engines: {node: '>=18'} + hasBin: true + escalade@3.2.0: resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} engines: {node: '>=6'} @@ -1242,6 +1614,10 @@ packages: estree-walker@3.0.3: resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==} + expect-type@1.1.0: + resolution: {integrity: sha512-bFi65yM+xZgk+u/KRIpekdSYkTB5W1pEf0Lt8Q8Msh7b+eQ7LXVtIB1Bkm4fvclDEL1b2CZkMhv2mOeF8tMdkA==} + engines: {node: '>=12.0.0'} + expect@29.7.0: resolution: {integrity: sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -1280,12 +1656,15 @@ packages: resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} engines: {node: '>=8'} + for-each@0.3.3: + resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==} + foreground-child@3.3.0: resolution: {integrity: sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==} engines: {node: '>=14'} - form-data@4.0.0: - resolution: {integrity: sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==} + form-data@4.0.1: + resolution: {integrity: sha512-tzN8e4TX8+kkxGPK8D5u0FNmjPUjw3lwC9lSLxxoB/+GtsJG91CO8bSWy73APlgAZzZbXEYZJuxjkHH2w+Ezhw==} engines: {node: '>= 6'} fs-extra@7.0.1: @@ -1319,7 +1698,11 @@ packages: get-func-name@2.0.2: resolution: {integrity: sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==} - glob-parent@5.1.2: + get-intrinsic@1.2.4: + resolution: {integrity: sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==} + engines: {node: '>= 0.4'} + + glob-parent@5.1.2: resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} engines: {node: '>= 6'} @@ -1346,6 +1729,9 @@ packages: globrex@0.1.2: resolution: {integrity: sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==} + gopd@1.0.1: + resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} + graceful-fs@4.2.11: resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} @@ -1357,14 +1743,25 @@ packages: resolution: {integrity: sha512-Qr4RtTm30xvEdqUXbSBVWDu+PrTokJOwe/FU+VdfJPk+MXAPoeOzKpRyrDTnZIJwAkQ4oBLTU53nu0HrkF/Z2A==} engines: {node: '>=8'} - has-flag@3.0.0: - resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} - engines: {node: '>=4'} - has-flag@4.0.0: resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} engines: {node: '>=8'} + has-property-descriptors@1.0.2: + resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==} + + has-proto@1.0.3: + resolution: {integrity: sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==} + engines: {node: '>= 0.4'} + + has-symbols@1.0.3: + resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} + engines: {node: '>= 0.4'} + + has-tostringtag@1.0.2: + resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==} + engines: {node: '>= 0.4'} + hasown@2.0.2: resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} engines: {node: '>= 0.4'} @@ -1424,9 +1821,17 @@ packages: resolution: {integrity: sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==} engines: {node: '>=10'} + is-arguments@1.1.1: + resolution: {integrity: sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==} + engines: {node: '>= 0.4'} + is-arrayish@0.2.1: resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} + is-callable@1.2.7: + resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} + engines: {node: '>= 0.4'} + is-core-module@2.15.1: resolution: {integrity: sha512-z0vtXSwucUJtANQWldhbtbt7BnL0vxiFjIdDLAatwhDYty2bad6s+rijD6Ri4YuYJubLzIJLUidCh09e1djEVQ==} engines: {node: '>= 0.4'} @@ -1439,6 +1844,10 @@ packages: resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} engines: {node: '>=8'} + is-generator-function@1.0.10: + resolution: {integrity: sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==} + engines: {node: '>= 0.4'} + is-glob@4.0.3: resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} engines: {node: '>=0.10.0'} @@ -1447,6 +1856,10 @@ packages: resolution: {integrity: sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==} engines: {node: '>=10'} + is-nan@1.3.2: + resolution: {integrity: sha512-E+zBKpQ2t6MEo1VsonYmluk9NxGrbzpeeLC2xIViuO2EjU2xsXsBPwTr3Ykv9l08UYEVEdWeRZNouaZqF6RN0w==} + engines: {node: '>= 0.4'} + is-node-process@1.2.0: resolution: {integrity: sha512-Vg4o6/fqPxIjtxgUH5QLJhwZ7gW5diGCVlXpuUfELC62CuxM1iHcRe51f2W1FDy04Ai4KJkagKjx3XaqyfRKXw==} @@ -1472,6 +1885,10 @@ packages: resolution: {integrity: sha512-2AT6j+gXe/1ueqbW6fLZJiIw3F8iXGJtt0yDrZaBhAZEG1raiTxKWU+IPqMCzQAXOUCKdA4UDMgacKH25XG2Cw==} engines: {node: '>=4'} + is-typed-array@1.1.13: + resolution: {integrity: sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==} + engines: {node: '>= 0.4'} + is-windows@1.0.2: resolution: {integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==} engines: {node: '>=0.10.0'} @@ -1560,6 +1977,9 @@ packages: loupe@3.1.1: resolution: {integrity: sha512-edNu/8D5MKVfGVFRhFf8aAxiTM6Wumfz5XsaatSxlD3w4R1d/WEKUTydCdPGbl9K7QG/Ca3GnDV2sIKIpXRQcw==} + loupe@3.1.2: + resolution: {integrity: sha512-23I4pFZHmAemUnz8WZXbYRSKYj801VDaNv9ETuMh7IrMc7VuVVSo+Z9iLE3ni30+U48iDWfi30d3twAXBYmnCg==} + lower-case@2.0.2: resolution: {integrity: sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==} @@ -1584,6 +2004,9 @@ packages: magic-string@0.30.11: resolution: {integrity: sha512-+Wri9p0QHMy+545hKww7YAu5NyzF8iomPL/RQazugQ9+Ez4Ic3mERMd8ZTX5rfK944j+560ZJi8iAwgak1Ac7A==} + magic-string@0.30.14: + resolution: {integrity: sha512-5c99P1WKTed11ZC0HMJOj6CDIue6F8ySu+bJL+85q1zBEIY8IklrJ1eiKC2NDRh3Ct3FcvmJPyQHb9erXMTJNw==} + make-error@1.3.6: resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==} @@ -1649,10 +2072,24 @@ packages: typescript: optional: true + msw@2.6.6: + resolution: {integrity: sha512-npfIIVRHKQX3Lw4aLWX4wBh+lQwpqdZNyJYB5K/+ktK8NhtkdsTxGK7WDrgknozcVyRI7TOqY6yBS9j2FTR+YQ==} + engines: {node: '>=18'} + hasBin: true + peerDependencies: + typescript: '>= 4.8.x' + peerDependenciesMeta: + typescript: + optional: true + mute-stream@1.0.0: resolution: {integrity: sha512-avsJQhyd+680gKXyG/sQc0nXaC6rBkPOfyHYcFb9+hdkqQkR9bdnkJ0AMZhke0oesPqIO+mFFJ+IdBc7mst4IA==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + mute-stream@2.0.0: + resolution: {integrity: sha512-WWdIxpyjEn+FhQJQQv9aQAYlHoNVdzIzUySNV1gHUPDSdZJ3yZn7pAAbQcV7B56Mvu881q9FZV+0Vx2xC44VWA==} + engines: {node: ^18.17.0 || >=20.5.0} + mz@2.7.0: resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==} @@ -1661,6 +2098,11 @@ packages: engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true + nanoid@3.3.8: + resolution: {integrity: sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==} + engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} + hasBin: true + no-case@3.0.4: resolution: {integrity: sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==} @@ -1687,6 +2129,18 @@ packages: resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} engines: {node: '>=0.10.0'} + object-is@1.1.6: + resolution: {integrity: sha512-F8cZ+KfGlSGi09lJT7/Nd6KJZ9ygtvYC0/UYYLI9nmQKLMnydpB9yvbv9K1uSkEu7FU9vYPmVwLg328tX+ot3Q==} + engines: {node: '>= 0.4'} + + object-keys@1.1.1: + resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} + engines: {node: '>= 0.4'} + + object.assign@4.1.5: + resolution: {integrity: sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==} + engines: {node: '>= 0.4'} + once@1.4.0: resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} @@ -1720,8 +2174,8 @@ packages: resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} engines: {node: '>=6'} - package-json-from-dist@1.0.0: - resolution: {integrity: sha512-dATvCeZN/8wQsGywez1mzHtTlP22H8OEfPrVMLNr4/eGa+ijtLn/6M5f0dY8UKNrC2O9UCU6SSoG3qRKnt7STw==} + package-json-from-dist@1.0.1: + resolution: {integrity: sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==} package-manager-detector@0.2.1: resolution: {integrity: sha512-/hVW2fZvAdEas+wyKh0SnlZ2mx0NIa1+j11YaQkogEJkcMErbwchHCuo8z7lEtajZJQZ6rgZNVTWMVVd71Bjng==} @@ -1734,8 +2188,8 @@ packages: resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} engines: {node: '>=8'} - parse5@7.1.2: - resolution: {integrity: sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==} + parse5@7.2.1: + resolution: {integrity: sha512-BuBYQYlv1ckiPdQi/ohiivi9Sagc9JG+Ozs0r7b/0iK3sKmrb0b9FdWdBbOdx6hBCM/F9Ir82ofnBhtZOjCRPQ==} pascal-case@3.1.2: resolution: {integrity: sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==} @@ -1775,10 +2229,17 @@ packages: picocolors@1.1.0: resolution: {integrity: sha512-TQ92mBOW0l3LeMeyLV6mzy/kWr8lkd/hp3mTg7wYK7zJhuBStmGMBG0BdeDZS/dZx1IukaX6Bk11zcln25o1Aw==} + picocolors@1.1.1: + resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} + picomatch@2.3.1: resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} engines: {node: '>=8.6'} + picomatch@4.0.2: + resolution: {integrity: sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==} + engines: {node: '>=12'} + pify@4.0.1: resolution: {integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==} engines: {node: '>=6'} @@ -1792,11 +2253,21 @@ packages: engines: {node: '>=18'} hasBin: true + playwright-core@1.49.0: + resolution: {integrity: sha512-R+3KKTQF3npy5GTiKH/T+kdhoJfJojjHESR1YEWhYuEKRVfVaxH3+4+GvXE5xyCngCxhxnykk0Vlah9v8fs3jA==} + engines: {node: '>=18'} + hasBin: true + playwright@1.48.0: resolution: {integrity: sha512-qPqFaMEHuY/ug8o0uteYJSRfMGFikhUysk8ZvAtfKmUK3kc/6oNl/y3EczF8OFGYIi/Ex2HspMfzYArk6+XQSA==} engines: {node: '>=18'} hasBin: true + playwright@1.49.0: + resolution: {integrity: sha512-eKpmys0UFDnfNb3vfsf8Vx2LEOtflgRebl0Im2eQQnYMA4Aqd+Zw8bEOB+7ZKvN76901mRnqdsiOGKxzVTbi7A==} + engines: {node: '>=18'} + hasBin: true + pngjs@7.0.0: resolution: {integrity: sha512-LKWqWJRhstyYo9pGvgor/ivk2w94eSjE3RGVuzLGlr3NmD8bf7RcYGze1mNdEHRP6TRP6rMuDHk5t44hnTRyow==} engines: {node: '>=14.19.0'} @@ -1806,10 +2277,18 @@ packages: engines: {node: '>=18.12'} hasBin: true + possible-typed-array-names@1.0.0: + resolution: {integrity: sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==} + engines: {node: '>= 0.4'} + postcss@8.4.45: resolution: {integrity: sha512-7KTLTdzdZZYscUc65XmjFiB73vBhBfbPztCYdUNvlaso9PrzjzcmjqBPR0lNGkcVlcO4BjiO5rK/qNz+XAen1Q==} engines: {node: ^10 || ^12 || >=14} + postcss@8.4.49: + resolution: {integrity: sha512-OCVPnIObs4N29kxTjzLfUryOkvZEq+pf8jTF0lg8E7uETuWHA+v7j3c/xJmiqpX450191LlmZfUKkXxkTry7nA==} + engines: {node: ^10 || ^12 || >=14} + prettier@2.8.8: resolution: {integrity: sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==} engines: {node: '>=10.13.0'} @@ -1933,6 +2412,11 @@ packages: engines: {node: '>=18.0.0', npm: '>=8.0.0'} hasBin: true + rollup@4.27.4: + resolution: {integrity: sha512-RLKxqHEMjh/RGLsDxAEsaLO3mWgyoU6x9w6n1ikAzet4B3gI2/3yP6PWY2p9QzRTh6MfEIXB3MwsOY0Iv3vNrw==} + engines: {node: '>=18.0.0', npm: '>=8.0.0'} + hasBin: true + rrweb-cssom@0.7.1: resolution: {integrity: sha512-TrEMa7JGdVm0UThDJSx7ddw5nVm3UJS9o9CCIZ72B1vSyEZoziDqBYP3XIoi/12lKrJR8rE3jeFHMok2F/Mnsg==} @@ -1976,6 +2460,10 @@ packages: set-cookie-parser@2.7.0: resolution: {integrity: sha512-lXLOiqpkUumhRdFF3k1osNXCy9akgx/dyPZ5p8qAg9seJzXr5ZrlqZuWIMuY6ejOsVLE6flJ5/h3lsn57fQ/PQ==} + set-function-length@1.2.2: + resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==} + engines: {node: '>= 0.4'} + shebang-command@1.2.0: resolution: {integrity: sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==} engines: {node: '>=0.10.0'} @@ -2006,6 +2494,10 @@ packages: resolution: {integrity: sha512-94Bdh3cC2PKrbgSOUqTiGPWVZeSiXfKOVZNJniWoqrWrRkB1CJzBU3NEbiTsPcYy1lDsANA/THzS+9WBiy5nfQ==} engines: {node: '>= 10'} + sirv@3.0.0: + resolution: {integrity: sha512-BPwJGUeDaDCHihkORDchNyyTvWFhcusy1XMmhEVTQTwGeybFbp8YEmB+njbPnth1FibULBSBVwCQni25XlCUDg==} + engines: {node: '>=18'} + slash@3.0.0: resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} engines: {node: '>=8'} @@ -2062,6 +2554,9 @@ packages: std-env@3.7.0: resolution: {integrity: sha512-JPbdCEQLj1w5GilpiHAx3qJvFndqybBysA3qUOnznweH4QbNYUsW/ea8QzSrnh0vNsezMMw5bcVool8lM0gwzg==} + std-env@3.8.0: + resolution: {integrity: sha512-Bc3YwwCB+OzldMxOXJIIvC6cPRWr/LxOp48CdQTOkPyk/t4JWWJbrilwBd7RJzKV8QW7tJkcgAmeuLLJugl5/w==} + strict-event-emitter@0.5.1: resolution: {integrity: sha512-vMgjE/GGEPEFnhFub6pa4FmJBRBVOLpIII2hvCZ8Kzb7K0hlHo7mQv6xYrBvCL2LtAIBwFUK8wvuJgTVSQ5MFQ==} @@ -2089,10 +2584,6 @@ packages: resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} engines: {node: '>=4'} - supports-color@5.5.0: - resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} - engines: {node: '>=4'} - supports-color@7.2.0: resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} engines: {node: '>=8'} @@ -2136,8 +2627,8 @@ packages: resolution: {integrity: sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg==} engines: {node: '>=8'} - terser@5.34.1: - resolution: {integrity: sha512-FsJZ7iZLd/BXkz+4xrRTGJ26o/6VTjQytUk8b8OxkwcD2I+79VPJlz7qss1+zE7h8GNIScFqXcDyJ/KqBYZFVA==} + terser@5.36.0: + resolution: {integrity: sha512-IYV9eNMuFAV4THUspIRXkLakHnV6XO7FEdtKjf/mDyrnqUg9LnlOn6/RwRvM9SZjR4GUq8Nk8zj67FzVARr74w==} engines: {node: '>=10'} hasBin: true @@ -2160,10 +2651,17 @@ packages: tinyexec@0.3.0: resolution: {integrity: sha512-tVGE0mVJPGb0chKhqmsoosjsS+qUnJVGJpZgsHYQcGoPlG3B51R3PouqTgEGH2Dc9jjFyOqOpix6ZHNMXp1FZg==} + tinyexec@0.3.1: + resolution: {integrity: sha512-WiCJLEECkO18gwqIp6+hJg0//p23HXp4S+gGtAKu3mI2F2/sXC4FvHvXvB0zJVVaTPhx1/tOwdbRsa1sOBIKqQ==} + tinypool@1.0.1: resolution: {integrity: sha512-URZYihUbRPcGv95En+sz6MfghfIc2OJ1sv/RmhWZLouPY0/8Vo80viwPvg3dlaS9fuq7fQMEfgRRK7BBZThBEA==} engines: {node: ^18.0.0 || >=20.0.0} + tinypool@1.0.2: + resolution: {integrity: sha512-al6n+QEANGFOMf/dmUMsuS5/r9B06uwlyNjZZql/zv8J7ybHCgoihBNORZCY2mzUuAnomQa2JdhyHKzZxPCrFA==} + engines: {node: ^18.0.0 || >=20.0.0} + tinyrainbow@1.2.0: resolution: {integrity: sha512-weEDEq7Z5eTHPDh4xjX789+fHfF+P8boiFB+0vbWzpbnbsEr/GRaohi/uMKxg8RZMXnl1ItAi/IUHWMsjDV7kQ==} engines: {node: '>=14.0.0'} @@ -2172,11 +2670,11 @@ packages: resolution: {integrity: sha512-n1cw8k1k0x4pgA2+9XrOkFydTerNcJ1zWCO5Nn9scWHTD+5tp8dghT2x1uduQePZTZgd3Tupf+x9BxJjeJi77Q==} engines: {node: '>=14.0.0'} - tldts-core@6.1.50: - resolution: {integrity: sha512-na2EcZqmdA2iV9zHV7OHQDxxdciEpxrjbkp+aHmZgnZKHzoElLajP59np5/4+sare9fQBfixgvXKx8ev1d7ytw==} + tldts-core@6.1.64: + resolution: {integrity: sha512-uqnl8vGV16KsyflHOzqrYjjArjfXaU6rMPXYy2/ZWoRKCkXtghgB4VwTDXUG+t0OTGeSewNAG31/x1gCTfLt+Q==} - tldts@6.1.50: - resolution: {integrity: sha512-q9GOap6q3KCsLMdOjXhWU5jVZ8/1dIib898JBRLsN+tBhENpBDcAVQbE0epADOjw11FhQQy9AcbqKGBQPUfTQA==} + tldts@6.1.64: + resolution: {integrity: sha512-ph4AE5BXWIOsSy9stpoeo7bYe/Cy7VfpciIH4RhVZUPItCJmhqWCN0EVzxd8BOHiyNb42vuJc6NWTjJkg91Tuw==} hasBin: true tmp@0.0.33: @@ -2247,17 +2745,29 @@ packages: resolution: {integrity: sha512-yOGpmOAL7CkKe/91I5O3gPICmJNLJ1G4zFYVAsRHg7M64biSnPtRj0WNQt++bRkjYOqjWXrhnUw1utzmVErAdg==} engines: {node: '>=16'} + type-fest@4.29.0: + resolution: {integrity: sha512-RPYt6dKyemXJe7I6oNstcH24myUGSReicxcHTvCLgzm4e0n8y05dGvcGB15/SoPRBmhlMthWQ9pvKyL81ko8nQ==} + engines: {node: '>=16'} + typescript@5.6.2: resolution: {integrity: sha512-NW8ByodCSNCwZeghjN3o+JX5OFH0Ojg6sadjEKY4huZ52TqbJTJnDo5+Tw98lSy63NZvi4n+ez5m2u5d4PkZyw==} engines: {node: '>=14.17'} hasBin: true + typescript@5.7.2: + resolution: {integrity: sha512-i5t66RHxDvVN40HfDd1PsEThGNnlMCMT3jMUuoh9/0TaqWevNontacunWyN02LA9/fIbEWlcHZcgTKb9QoaLfg==} + engines: {node: '>=14.17'} + hasBin: true + undici-types@5.26.5: resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} undici-types@6.19.8: resolution: {integrity: sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==} + undici-types@6.20.0: + resolution: {integrity: sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==} + universalify@0.1.2: resolution: {integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==} engines: {node: '>= 4.0.0'} @@ -2275,6 +2785,9 @@ packages: util-arity@1.1.0: resolution: {integrity: sha512-kkyIsXKwemfSy8ZEoaIz06ApApnWsk5hQO0vLjZS6UkBiGiW++Jsyb8vSBoc0WKlffGoGs5yYy/j5pp8zckrFA==} + util@0.12.5: + resolution: {integrity: sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==} + uuid@9.0.0: resolution: {integrity: sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg==} hasBin: true @@ -2294,6 +2807,42 @@ packages: engines: {node: ^18.0.0 || >=20.0.0} hasBin: true + vite-node@2.1.6: + resolution: {integrity: sha512-DBfJY0n9JUwnyLxPSSUmEePT21j8JZp/sR9n+/gBwQU6DcQOioPdb8/pibWfXForbirSagZCilseYIwaL3f95A==} + engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} + hasBin: true + + vite@5.4.11: + resolution: {integrity: sha512-c7jFQRklXua0mTzneGW9QVyxFjUgwcihC4bXEtujIo2ouWCe1Ajt/amn2PCxYnhYfd5k09JX3SB7OYWFKYqj8Q==} + engines: {node: ^18.0.0 || >=20.0.0} + hasBin: true + peerDependencies: + '@types/node': ^18.0.0 || >=20.0.0 + less: '*' + lightningcss: ^1.21.0 + sass: '*' + sass-embedded: '*' + stylus: '*' + sugarss: '*' + terser: ^5.4.0 + peerDependenciesMeta: + '@types/node': + optional: true + less: + optional: true + lightningcss: + optional: true + sass: + optional: true + sass-embedded: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true + vite@5.4.8: resolution: {integrity: sha512-FqrItQ4DT1NC4zCUqMB4c4AZORMKIa0m8/URVCZ77OZ/QSNeJ54bU1vrFADbDsuwfIPcgknRkmqakQcgnL4GiQ==} engines: {node: ^18.0.0 || >=20.0.0} @@ -2325,6 +2874,46 @@ packages: terser: optional: true + vite@6.0.1: + resolution: {integrity: sha512-Ldn6gorLGr4mCdFnmeAOLweJxZ34HjKnDm4HGo6P66IEqTxQb36VEdFJQENKxWjupNfoIjvRUnswjn1hpYEpjQ==} + engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} + hasBin: true + peerDependencies: + '@types/node': ^18.0.0 || ^20.0.0 || >=22.0.0 + jiti: '>=1.21.0' + less: '*' + lightningcss: ^1.21.0 + sass: '*' + sass-embedded: '*' + stylus: '*' + sugarss: '*' + terser: ^5.16.0 + tsx: ^4.8.1 + yaml: ^2.4.2 + peerDependenciesMeta: + '@types/node': + optional: true + jiti: + optional: true + less: + optional: true + lightningcss: + optional: true + sass: + optional: true + sass-embedded: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true + tsx: + optional: true + yaml: + optional: true + vitefu@0.2.5: resolution: {integrity: sha512-SgHtMLoqaeeGnd2evZ849ZbACbnwQCIwRH57t18FxcXoZop0uQu0uzlIhJBlF/eWVzuce0sHeqPcDo+evVcg8Q==} peerDependencies: @@ -2358,6 +2947,31 @@ packages: jsdom: optional: true + vitest@2.1.6: + resolution: {integrity: sha512-isUCkvPL30J4c5O5hgONeFRsDmlw6kzFEdLQHLezmDdKQHy8Ke/B/dgdTMEgU0vm+iZ0TjW8GuK83DiahBoKWQ==} + engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} + hasBin: true + peerDependencies: + '@edge-runtime/vm': '*' + '@types/node': ^18.0.0 || ^20.0.0 || >=22.0.0 + '@vitest/browser': 2.1.6 + '@vitest/ui': 2.1.6 + happy-dom: '*' + jsdom: '*' + peerDependenciesMeta: + '@edge-runtime/vm': + optional: true + '@types/node': + optional: true + '@vitest/browser': + optional: true + '@vitest/ui': + optional: true + happy-dom: + optional: true + jsdom: + optional: true + w3c-xmlserializer@5.0.0: resolution: {integrity: sha512-o8qghlI8NZHU1lLPrpi2+Uq7abh4GGPpYANlalzWxyWteJOCsr/P+oPBA49TOLu5FTZO4d3F9MnWJfiMo4BkmA==} engines: {node: '>=18'} @@ -2378,6 +2992,10 @@ packages: resolution: {integrity: sha512-1lfMEm2IEr7RIV+f4lUNPOqfFL+pO+Xw3fJSqmjX9AbXcXcYOkCe1P6+9VBZB6n94af16NfZf+sSk0JCBZC9aw==} engines: {node: '>=18'} + which-typed-array@1.1.15: + resolution: {integrity: sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==} + engines: {node: '>= 0.4'} + which@1.3.1: resolution: {integrity: sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==} hasBin: true @@ -2445,6 +3063,11 @@ packages: engines: {node: '>= 14'} hasBin: true + yaml@2.6.1: + resolution: {integrity: sha512-7r0XPzioN/Q9kXBro/XPnA6kznR73DHq+GXh5ON7ZozRO6aMjbmiBuKste2wslTFkC5d1dw0GooOCepZXJ2SAg==} + engines: {node: '>= 14'} + hasBin: true + yargs-parser@21.1.1: resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} engines: {node: '>=12'} @@ -2471,21 +3094,19 @@ snapshots: '@jridgewell/gen-mapping': 0.3.5 '@jridgewell/trace-mapping': 0.3.25 - '@babel/code-frame@7.24.7': + '@babel/code-frame@7.26.2': dependencies: - '@babel/highlight': 7.24.7 - picocolors: 1.1.0 + '@babel/helper-validator-identifier': 7.25.9 + js-tokens: 4.0.0 + picocolors: 1.1.1 - '@babel/helper-validator-identifier@7.24.7': {} + '@babel/helper-validator-identifier@7.25.9': {} - '@babel/highlight@7.24.7': + '@babel/runtime@7.25.6': dependencies: - '@babel/helper-validator-identifier': 7.24.7 - chalk: 2.4.2 - js-tokens: 4.0.0 - picocolors: 1.1.0 + regenerator-runtime: 0.14.1 - '@babel/runtime@7.25.6': + '@babel/runtime@7.26.0': dependencies: regenerator-runtime: 0.14.1 @@ -2493,6 +3114,10 @@ snapshots: dependencies: cookie: 0.5.0 + '@bundled-es-modules/cookie@2.0.1': + dependencies: + cookie: 0.7.2 + '@bundled-es-modules/statuses@1.0.1': dependencies: statuses: 2.0.1 @@ -2706,6 +3331,50 @@ snapshots: yaml: 2.5.1 yup: 1.2.0 + '@cucumber/cucumber@11.1.0': + dependencies: + '@cucumber/ci-environment': 10.0.1 + '@cucumber/cucumber-expressions': 17.1.0 + '@cucumber/gherkin': 28.0.0 + '@cucumber/gherkin-streams': 5.0.1(@cucumber/gherkin@28.0.0)(@cucumber/message-streams@4.0.1(@cucumber/messages@24.1.0))(@cucumber/messages@24.1.0) + '@cucumber/gherkin-utils': 9.0.0 + '@cucumber/html-formatter': 21.6.0(@cucumber/messages@24.1.0) + '@cucumber/junit-xml-formatter': 0.6.0(@cucumber/messages@24.1.0) + '@cucumber/message-streams': 4.0.1(@cucumber/messages@24.1.0) + '@cucumber/messages': 24.1.0 + '@cucumber/tag-expressions': 6.1.0 + assertion-error-formatter: 3.0.0 + capital-case: 1.0.4 + chalk: 4.1.2 + cli-table3: 0.6.3 + commander: 10.0.1 + debug: 4.3.7(supports-color@8.1.1) + error-stack-parser: 2.1.4 + figures: 3.2.0 + glob: 10.4.5 + has-ansi: 4.0.1 + indent-string: 4.0.0 + is-installed-globally: 0.4.0 + is-stream: 2.0.1 + knuth-shuffle-seeded: 1.0.6 + lodash.merge: 4.6.2 + lodash.mergewith: 4.6.2 + luxon: 3.2.1 + mime: 3.0.0 + mkdirp: 2.1.6 + mz: 2.7.0 + progress: 2.0.3 + read-pkg-up: 7.0.1 + resolve-pkg: 2.0.0 + semver: 7.5.3 + string-argv: 0.3.1 + supports-color: 8.1.1 + tmp: 0.2.3 + type-fest: 4.29.0 + util-arity: 1.1.0 + yaml: 2.6.1 + yup: 1.2.0 + '@cucumber/gherkin-streams@5.0.1(@cucumber/gherkin@28.0.0)(@cucumber/message-streams@4.0.1(@cucumber/messages@24.1.0))(@cucumber/messages@24.1.0)': dependencies: '@cucumber/gherkin': 28.0.0 @@ -2734,6 +3403,13 @@ snapshots: dependencies: '@cucumber/messages': 24.1.0 + '@cucumber/junit-xml-formatter@0.6.0(@cucumber/messages@24.1.0)': + dependencies: + '@cucumber/messages': 24.1.0 + '@cucumber/query': 13.0.2(@cucumber/messages@24.1.0) + '@teppeis/multimaps': 3.0.0 + xmlbuilder: 15.1.1 + '@cucumber/message-streams@4.0.1(@cucumber/messages@24.1.0)': dependencies: '@cucumber/messages': 24.1.0 @@ -2752,88 +3428,232 @@ snapshots: reflect-metadata: 0.2.1 uuid: 9.0.1 + '@cucumber/query@13.0.2(@cucumber/messages@24.1.0)': + dependencies: + '@cucumber/messages': 24.1.0 + '@teppeis/multimaps': 3.0.0 + assert: 2.1.0 + '@cucumber/tag-expressions@6.1.0': {} + '@cucumber/tag-expressions@6.1.1': {} + '@esbuild/aix-ppc64@0.21.5': optional: true + '@esbuild/aix-ppc64@0.24.0': + optional: true + '@esbuild/android-arm64@0.21.5': optional: true + '@esbuild/android-arm64@0.24.0': + optional: true + '@esbuild/android-arm@0.21.5': optional: true + '@esbuild/android-arm@0.24.0': + optional: true + '@esbuild/android-x64@0.21.5': optional: true + '@esbuild/android-x64@0.24.0': + optional: true + '@esbuild/darwin-arm64@0.21.5': optional: true + '@esbuild/darwin-arm64@0.24.0': + optional: true + '@esbuild/darwin-x64@0.21.5': optional: true + '@esbuild/darwin-x64@0.24.0': + optional: true + '@esbuild/freebsd-arm64@0.21.5': optional: true + '@esbuild/freebsd-arm64@0.24.0': + optional: true + '@esbuild/freebsd-x64@0.21.5': optional: true + '@esbuild/freebsd-x64@0.24.0': + optional: true + '@esbuild/linux-arm64@0.21.5': optional: true + '@esbuild/linux-arm64@0.24.0': + optional: true + '@esbuild/linux-arm@0.21.5': optional: true + '@esbuild/linux-arm@0.24.0': + optional: true + '@esbuild/linux-ia32@0.21.5': optional: true + '@esbuild/linux-ia32@0.24.0': + optional: true + '@esbuild/linux-loong64@0.21.5': optional: true + '@esbuild/linux-loong64@0.24.0': + optional: true + '@esbuild/linux-mips64el@0.21.5': optional: true + '@esbuild/linux-mips64el@0.24.0': + optional: true + '@esbuild/linux-ppc64@0.21.5': optional: true + '@esbuild/linux-ppc64@0.24.0': + optional: true + '@esbuild/linux-riscv64@0.21.5': optional: true + '@esbuild/linux-riscv64@0.24.0': + optional: true + '@esbuild/linux-s390x@0.21.5': optional: true + '@esbuild/linux-s390x@0.24.0': + optional: true + '@esbuild/linux-x64@0.21.5': optional: true - '@esbuild/netbsd-x64@0.21.5': + '@esbuild/linux-x64@0.24.0': optional: true - '@esbuild/openbsd-x64@0.21.5': + '@esbuild/netbsd-x64@0.21.5': optional: true - '@esbuild/sunos-x64@0.21.5': + '@esbuild/netbsd-x64@0.24.0': optional: true - '@esbuild/win32-arm64@0.21.5': + '@esbuild/openbsd-arm64@0.24.0': + optional: true + + '@esbuild/openbsd-x64@0.21.5': + optional: true + + '@esbuild/openbsd-x64@0.24.0': + optional: true + + '@esbuild/sunos-x64@0.21.5': + optional: true + + '@esbuild/sunos-x64@0.24.0': + optional: true + + '@esbuild/win32-arm64@0.21.5': + optional: true + + '@esbuild/win32-arm64@0.24.0': optional: true '@esbuild/win32-ia32@0.21.5': optional: true + '@esbuild/win32-ia32@0.24.0': + optional: true + '@esbuild/win32-x64@0.21.5': optional: true + '@esbuild/win32-x64@0.24.0': + optional: true + '@inquirer/confirm@3.2.0': dependencies: '@inquirer/core': 9.2.1 '@inquirer/type': 1.5.5 + '@inquirer/confirm@5.0.2(@types/node@18.19.66)': + dependencies: + '@inquirer/core': 10.1.0(@types/node@18.19.66) + '@inquirer/type': 3.0.1(@types/node@18.19.66) + '@types/node': 18.19.66 + + '@inquirer/confirm@5.0.2(@types/node@22.10.0)': + dependencies: + '@inquirer/core': 10.1.0(@types/node@22.10.0) + '@inquirer/type': 3.0.1(@types/node@22.10.0) + '@types/node': 22.10.0 + optional: true + + '@inquirer/confirm@5.0.2(@types/node@22.7.4)': + dependencies: + '@inquirer/core': 10.1.0(@types/node@22.7.4) + '@inquirer/type': 3.0.1(@types/node@22.7.4) + '@types/node': 22.7.4 + optional: true + + '@inquirer/core@10.1.0(@types/node@18.19.66)': + dependencies: + '@inquirer/figures': 1.0.8 + '@inquirer/type': 3.0.1(@types/node@18.19.66) + ansi-escapes: 4.3.2 + cli-width: 4.1.0 + mute-stream: 2.0.0 + signal-exit: 4.1.0 + strip-ansi: 6.0.1 + wrap-ansi: 6.2.0 + yoctocolors-cjs: 2.1.2 + transitivePeerDependencies: + - '@types/node' + + '@inquirer/core@10.1.0(@types/node@22.10.0)': + dependencies: + '@inquirer/figures': 1.0.8 + '@inquirer/type': 3.0.1(@types/node@22.10.0) + ansi-escapes: 4.3.2 + cli-width: 4.1.0 + mute-stream: 2.0.0 + signal-exit: 4.1.0 + strip-ansi: 6.0.1 + wrap-ansi: 6.2.0 + yoctocolors-cjs: 2.1.2 + transitivePeerDependencies: + - '@types/node' + optional: true + + '@inquirer/core@10.1.0(@types/node@22.7.4)': + dependencies: + '@inquirer/figures': 1.0.8 + '@inquirer/type': 3.0.1(@types/node@22.7.4) + ansi-escapes: 4.3.2 + cli-width: 4.1.0 + mute-stream: 2.0.0 + signal-exit: 4.1.0 + strip-ansi: 6.0.1 + wrap-ansi: 6.2.0 + yoctocolors-cjs: 2.1.2 + transitivePeerDependencies: + - '@types/node' + optional: true + '@inquirer/core@9.2.1': dependencies: '@inquirer/figures': 1.0.7 '@inquirer/type': 2.0.0 '@types/mute-stream': 0.0.4 - '@types/node': 22.7.4 + '@types/node': 22.10.0 '@types/wrap-ansi': 3.0.0 ansi-escapes: 4.3.2 cli-width: 4.1.0 @@ -2845,6 +3665,8 @@ snapshots: '@inquirer/figures@1.0.7': {} + '@inquirer/figures@1.0.8': {} + '@inquirer/type@1.5.5': dependencies: mute-stream: 1.0.0 @@ -2853,6 +3675,20 @@ snapshots: dependencies: mute-stream: 1.0.0 + '@inquirer/type@3.0.1(@types/node@18.19.66)': + dependencies: + '@types/node': 18.19.66 + + '@inquirer/type@3.0.1(@types/node@22.10.0)': + dependencies: + '@types/node': 22.10.0 + optional: true + + '@inquirer/type@3.0.1(@types/node@22.7.4)': + dependencies: + '@types/node': 22.7.4 + optional: true + '@isaacs/cliui@8.0.2': dependencies: string-width: 5.1.2 @@ -2875,7 +3711,7 @@ snapshots: '@jest/schemas': 29.6.3 '@types/istanbul-lib-coverage': 2.0.6 '@types/istanbul-reports': 3.0.4 - '@types/node': 22.7.4 + '@types/node': 22.10.0 '@types/yargs': 17.0.33 chalk: 4.1.2 @@ -2931,6 +3767,15 @@ snapshots: outvariant: 1.4.3 strict-event-emitter: 0.5.1 + '@mswjs/interceptors@0.37.1': + dependencies: + '@open-draft/deferred-promise': 2.2.0 + '@open-draft/logger': 0.3.0 + '@open-draft/until': 2.1.0 + is-node-process: 1.2.0 + outvariant: 1.4.3 + strict-event-emitter: 0.5.1 + '@nodelib/fs.scandir@2.1.5': dependencies: '@nodelib/fs.stat': 2.0.5 @@ -2955,12 +3800,14 @@ snapshots: '@pkgjs/parseargs@0.11.0': optional: true - '@playwright/test@1.48.0': + '@playwright/test@1.49.0': dependencies: - playwright: 1.48.0 + playwright: 1.49.0 '@polka/url@1.0.0-next.25': {} + '@polka/url@1.0.0-next.28': {} + '@rollup/plugin-replace@6.0.1(rollup@3.29.5)': dependencies: '@rollup/pluginutils': 5.1.0(rollup@3.29.5) @@ -2972,15 +3819,15 @@ snapshots: dependencies: serialize-javascript: 6.0.2 smob: 1.5.0 - terser: 5.34.1 + terser: 5.36.0 optionalDependencies: rollup: 3.29.5 - '@rollup/plugin-typescript@12.1.0(rollup@3.29.5)(tslib@2.7.0)(typescript@5.6.2)': + '@rollup/plugin-typescript@12.1.1(rollup@3.29.5)(tslib@2.7.0)(typescript@5.7.2)': dependencies: - '@rollup/pluginutils': 5.1.0(rollup@3.29.5) + '@rollup/pluginutils': 5.1.3(rollup@3.29.5) resolve: 1.22.8 - typescript: 5.6.2 + typescript: 5.7.2 optionalDependencies: rollup: 3.29.5 tslib: 2.7.0 @@ -2993,64 +3840,126 @@ snapshots: optionalDependencies: rollup: 3.29.5 + '@rollup/pluginutils@5.1.3(rollup@3.29.5)': + dependencies: + '@types/estree': 1.0.6 + estree-walker: 2.0.2 + picomatch: 4.0.2 + optionalDependencies: + rollup: 3.29.5 + '@rollup/rollup-android-arm-eabi@4.24.0': optional: true + '@rollup/rollup-android-arm-eabi@4.27.4': + optional: true + '@rollup/rollup-android-arm64@4.24.0': optional: true + '@rollup/rollup-android-arm64@4.27.4': + optional: true + '@rollup/rollup-darwin-arm64@4.24.0': optional: true + '@rollup/rollup-darwin-arm64@4.27.4': + optional: true + '@rollup/rollup-darwin-x64@4.24.0': optional: true + '@rollup/rollup-darwin-x64@4.27.4': + optional: true + + '@rollup/rollup-freebsd-arm64@4.27.4': + optional: true + + '@rollup/rollup-freebsd-x64@4.27.4': + optional: true + '@rollup/rollup-linux-arm-gnueabihf@4.24.0': optional: true + '@rollup/rollup-linux-arm-gnueabihf@4.27.4': + optional: true + '@rollup/rollup-linux-arm-musleabihf@4.24.0': optional: true + '@rollup/rollup-linux-arm-musleabihf@4.27.4': + optional: true + '@rollup/rollup-linux-arm64-gnu@4.24.0': optional: true + '@rollup/rollup-linux-arm64-gnu@4.27.4': + optional: true + '@rollup/rollup-linux-arm64-musl@4.24.0': optional: true + '@rollup/rollup-linux-arm64-musl@4.27.4': + optional: true + '@rollup/rollup-linux-powerpc64le-gnu@4.24.0': optional: true + '@rollup/rollup-linux-powerpc64le-gnu@4.27.4': + optional: true + '@rollup/rollup-linux-riscv64-gnu@4.24.0': optional: true + '@rollup/rollup-linux-riscv64-gnu@4.27.4': + optional: true + '@rollup/rollup-linux-s390x-gnu@4.24.0': optional: true + '@rollup/rollup-linux-s390x-gnu@4.27.4': + optional: true + '@rollup/rollup-linux-x64-gnu@4.24.0': optional: true + '@rollup/rollup-linux-x64-gnu@4.27.4': + optional: true + '@rollup/rollup-linux-x64-musl@4.24.0': optional: true + '@rollup/rollup-linux-x64-musl@4.27.4': + optional: true + '@rollup/rollup-win32-arm64-msvc@4.24.0': optional: true + '@rollup/rollup-win32-arm64-msvc@4.27.4': + optional: true + '@rollup/rollup-win32-ia32-msvc@4.24.0': optional: true + '@rollup/rollup-win32-ia32-msvc@4.27.4': + optional: true + '@rollup/rollup-win32-x64-msvc@4.24.0': optional: true + '@rollup/rollup-win32-x64-msvc@4.27.4': + optional: true + '@sinclair/typebox@0.27.8': {} - '@sveltejs/adapter-auto@3.2.5(@sveltejs/kit@2.6.2(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.8(@types/node@22.7.4)(terser@5.34.1)))(svelte@4.2.19)(vite@5.4.8(@types/node@22.7.4)(terser@5.34.1)))': + '@sveltejs/adapter-auto@3.2.5(@sveltejs/kit@2.6.2(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.8(@types/node@22.7.4)(terser@5.36.0)))(svelte@4.2.19)(vite@5.4.8(@types/node@22.7.4)(terser@5.36.0)))': dependencies: - '@sveltejs/kit': 2.6.2(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.8(@types/node@22.7.4)(terser@5.34.1)))(svelte@4.2.19)(vite@5.4.8(@types/node@22.7.4)(terser@5.34.1)) + '@sveltejs/kit': 2.6.2(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.8(@types/node@22.7.4)(terser@5.36.0)))(svelte@4.2.19)(vite@5.4.8(@types/node@22.7.4)(terser@5.36.0)) import-meta-resolve: 4.1.0 - '@sveltejs/kit@2.6.2(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.8(@types/node@22.7.4)(terser@5.34.1)))(svelte@4.2.19)(vite@5.4.8(@types/node@22.7.4)(terser@5.34.1))': + '@sveltejs/kit@2.6.2(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.8(@types/node@22.7.4)(terser@5.36.0)))(svelte@4.2.19)(vite@5.4.8(@types/node@22.7.4)(terser@5.36.0))': dependencies: - '@sveltejs/vite-plugin-svelte': 3.1.2(svelte@4.2.19)(vite@5.4.8(@types/node@22.7.4)(terser@5.34.1)) + '@sveltejs/vite-plugin-svelte': 3.1.2(svelte@4.2.19)(vite@5.4.8(@types/node@22.7.4)(terser@5.36.0)) '@types/cookie': 0.6.0 cookie: 0.7.1 devalue: 5.1.1 @@ -3064,7 +3973,7 @@ snapshots: sirv: 2.0.4 svelte: 4.2.19 tiny-glob: 0.2.9 - vite: 5.4.8(@types/node@22.7.4)(terser@5.34.1) + vite: 5.4.8(@types/node@22.7.4)(terser@5.36.0) '@sveltejs/package@2.3.5(svelte@4.2.19)(typescript@5.6.2)': dependencies: @@ -3077,26 +3986,26 @@ snapshots: transitivePeerDependencies: - typescript - '@sveltejs/vite-plugin-svelte-inspector@2.1.0(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.8(@types/node@22.7.4)(terser@5.34.1)))(svelte@4.2.19)(vite@5.4.8(@types/node@22.7.4)(terser@5.34.1))': + '@sveltejs/vite-plugin-svelte-inspector@2.1.0(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.8(@types/node@22.7.4)(terser@5.36.0)))(svelte@4.2.19)(vite@5.4.8(@types/node@22.7.4)(terser@5.36.0))': dependencies: - '@sveltejs/vite-plugin-svelte': 3.1.2(svelte@4.2.19)(vite@5.4.8(@types/node@22.7.4)(terser@5.34.1)) + '@sveltejs/vite-plugin-svelte': 3.1.2(svelte@4.2.19)(vite@5.4.8(@types/node@22.7.4)(terser@5.36.0)) debug: 4.3.7(supports-color@8.1.1) svelte: 4.2.19 - vite: 5.4.8(@types/node@22.7.4)(terser@5.34.1) + vite: 5.4.8(@types/node@22.7.4)(terser@5.36.0) transitivePeerDependencies: - supports-color - '@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.8(@types/node@22.7.4)(terser@5.34.1))': + '@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.8(@types/node@22.7.4)(terser@5.36.0))': dependencies: - '@sveltejs/vite-plugin-svelte-inspector': 2.1.0(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.8(@types/node@22.7.4)(terser@5.34.1)))(svelte@4.2.19)(vite@5.4.8(@types/node@22.7.4)(terser@5.34.1)) + '@sveltejs/vite-plugin-svelte-inspector': 2.1.0(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.8(@types/node@22.7.4)(terser@5.36.0)))(svelte@4.2.19)(vite@5.4.8(@types/node@22.7.4)(terser@5.36.0)) debug: 4.3.7(supports-color@8.1.1) deepmerge: 4.3.1 kleur: 4.1.5 magic-string: 0.30.11 svelte: 4.2.19 svelte-hmr: 0.16.0(svelte@4.2.19) - vite: 5.4.8(@types/node@22.7.4)(terser@5.34.1) - vitefu: 0.2.5(vite@5.4.8(@types/node@22.7.4)(terser@5.34.1)) + vite: 5.4.8(@types/node@22.7.4)(terser@5.36.0) + vitefu: 0.2.5(vite@5.4.8(@types/node@22.7.4)(terser@5.36.0)) transitivePeerDependencies: - supports-color @@ -3104,8 +4013,8 @@ snapshots: '@testing-library/dom@10.4.0': dependencies: - '@babel/code-frame': 7.24.7 - '@babel/runtime': 7.25.6 + '@babel/code-frame': 7.26.2 + '@babel/runtime': 7.26.0 '@types/aria-query': 5.0.4 aria-query: 5.3.0 chalk: 4.1.2 @@ -3113,13 +4022,13 @@ snapshots: lz-string: 1.5.0 pretty-format: 27.5.1 - '@testing-library/svelte@5.2.3(svelte@4.2.19)(vite@5.4.8(@types/node@22.7.4)(terser@5.34.1))(vitest@2.1.2)': + '@testing-library/svelte@5.2.3(svelte@4.2.19)(vite@5.4.8(@types/node@22.7.4)(terser@5.36.0))(vitest@2.1.2)': dependencies: '@testing-library/dom': 10.4.0 svelte: 4.2.19 optionalDependencies: - vite: 5.4.8(@types/node@22.7.4)(terser@5.34.1) - vitest: 2.1.2(@types/node@22.7.4)(@vitest/browser@2.1.2)(jsdom@25.0.1)(msw@2.4.9(typescript@5.6.2))(terser@5.34.1) + vite: 5.4.8(@types/node@22.7.4)(terser@5.36.0) + vitest: 2.1.2(@types/node@22.7.4)(@vitest/browser@2.1.2)(jsdom@25.0.1)(msw@2.6.6(@types/node@22.7.4)(typescript@5.6.2))(terser@5.36.0) '@testing-library/user-event@14.5.2(@testing-library/dom@10.4.0)': dependencies: @@ -3153,31 +4062,35 @@ snapshots: '@types/jest-image-snapshot@6.4.0': dependencies: - '@types/jest': 29.5.13 + '@types/jest': 29.5.14 '@types/pixelmatch': 5.2.6 ssim.js: 3.5.0 - '@types/jest@29.5.13': + '@types/jest@29.5.14': dependencies: expect: 29.7.0 pretty-format: 29.7.0 '@types/lodash-es@4.17.12': dependencies: - '@types/lodash': 4.17.10 + '@types/lodash': 4.17.13 - '@types/lodash@4.17.10': {} + '@types/lodash@4.17.13': {} '@types/mute-stream@0.0.4': dependencies: - '@types/node': 22.7.4 + '@types/node': 22.10.0 '@types/node@12.20.55': {} - '@types/node@18.19.54': + '@types/node@18.19.66': dependencies: undici-types: 5.26.5 + '@types/node@22.10.0': + dependencies: + undici-types: 6.20.0 + '@types/node@22.7.4': dependencies: undici-types: 6.19.8 @@ -3186,11 +4099,11 @@ snapshots: '@types/pixelmatch@5.2.6': dependencies: - '@types/node': 22.7.4 + '@types/node': 22.10.0 '@types/pngjs@6.0.5': dependencies: - '@types/node': 22.7.4 + '@types/node': 22.10.0 '@types/stack-utils@2.0.3': {} @@ -3210,17 +4123,17 @@ snapshots: dependencies: '@types/yargs-parser': 21.0.3 - '@vitest/browser@2.1.2(@vitest/spy@2.1.2)(playwright@1.48.0)(typescript@5.6.2)(vite@5.4.8(@types/node@18.19.54)(terser@5.34.1))(vitest@2.1.2)': + '@vitest/browser@2.1.2(@vitest/spy@2.1.2)(playwright@1.48.0)(typescript@5.7.2)(vite@5.4.11(@types/node@22.10.0)(terser@5.36.0))(vitest@2.1.2)': dependencies: '@testing-library/dom': 10.4.0 '@testing-library/user-event': 14.5.2(@testing-library/dom@10.4.0) - '@vitest/mocker': 2.1.2(@vitest/spy@2.1.2)(msw@2.4.9(typescript@5.6.2))(vite@5.4.8(@types/node@18.19.54)(terser@5.34.1)) + '@vitest/mocker': 2.1.2(@vitest/spy@2.1.2)(msw@2.4.9(typescript@5.7.2))(vite@5.4.11(@types/node@22.10.0)(terser@5.36.0)) '@vitest/utils': 2.1.2 magic-string: 0.30.11 - msw: 2.4.9(typescript@5.6.2) + msw: 2.4.9(typescript@5.7.2) sirv: 2.0.4 tinyrainbow: 1.2.0 - vitest: 2.1.2(@types/node@18.19.54)(@vitest/browser@2.1.2)(jsdom@25.0.1)(msw@2.4.9(typescript@5.6.2))(terser@5.34.1) + vitest: 2.1.2(@types/node@22.10.0)(@vitest/browser@2.1.2)(jsdom@25.0.1)(msw@2.6.6(@types/node@22.10.0)(typescript@5.7.2))(terser@5.36.0) ws: 8.18.0 optionalDependencies: playwright: 1.48.0 @@ -3230,21 +4143,44 @@ snapshots: - typescript - utf-8-validate - vite + optional: true - '@vitest/browser@2.1.2(@vitest/spy@2.1.2)(playwright@1.48.0)(typescript@5.6.2)(vite@5.4.8(@types/node@22.7.4)(terser@5.34.1))(vitest@2.1.2)': + '@vitest/browser@2.1.2(@vitest/spy@2.1.6)(playwright@1.49.0)(typescript@5.6.2)(vite@5.4.8(@types/node@22.7.4)(terser@5.36.0))(vitest@2.1.2)': dependencies: '@testing-library/dom': 10.4.0 '@testing-library/user-event': 14.5.2(@testing-library/dom@10.4.0) - '@vitest/mocker': 2.1.2(@vitest/spy@2.1.2)(msw@2.4.9(typescript@5.6.2))(vite@5.4.8(@types/node@22.7.4)(terser@5.34.1)) + '@vitest/mocker': 2.1.2(@vitest/spy@2.1.6)(msw@2.4.9(typescript@5.6.2))(vite@5.4.8(@types/node@22.7.4)(terser@5.36.0)) '@vitest/utils': 2.1.2 magic-string: 0.30.11 msw: 2.4.9(typescript@5.6.2) sirv: 2.0.4 tinyrainbow: 1.2.0 - vitest: 2.1.2(@types/node@22.7.4)(@vitest/browser@2.1.2)(jsdom@25.0.1)(msw@2.4.9(typescript@5.6.2))(terser@5.34.1) + vitest: 2.1.2(@types/node@22.7.4)(@vitest/browser@2.1.2)(jsdom@25.0.1)(msw@2.6.6(@types/node@22.7.4)(typescript@5.6.2))(terser@5.36.0) ws: 8.18.0 optionalDependencies: - playwright: 1.48.0 + playwright: 1.49.0 + transitivePeerDependencies: + - '@vitest/spy' + - bufferutil + - typescript + - utf-8-validate + - vite + optional: true + + '@vitest/browser@2.1.2(@vitest/spy@2.1.6)(playwright@1.49.0)(typescript@5.7.2)(vite@5.4.11(@types/node@22.10.0)(terser@5.36.0))(vitest@2.1.2)': + dependencies: + '@testing-library/dom': 10.4.0 + '@testing-library/user-event': 14.5.2(@testing-library/dom@10.4.0) + '@vitest/mocker': 2.1.2(@vitest/spy@2.1.6)(msw@2.4.9(typescript@5.7.2))(vite@5.4.11(@types/node@22.10.0)(terser@5.36.0)) + '@vitest/utils': 2.1.2 + magic-string: 0.30.11 + msw: 2.4.9(typescript@5.7.2) + sirv: 2.0.4 + tinyrainbow: 1.2.0 + vitest: 2.1.2(@types/node@22.10.0)(@vitest/browser@2.1.2)(jsdom@25.0.1)(msw@2.4.9(typescript@5.7.2))(terser@5.36.0) + ws: 8.18.0 + optionalDependencies: + playwright: 1.49.0 transitivePeerDependencies: - '@vitest/spy' - bufferutil @@ -3252,6 +4188,49 @@ snapshots: - utf-8-validate - vite + '@vitest/browser@2.1.6(@types/node@18.19.66)(playwright@1.49.0)(typescript@5.7.2)(vite@6.0.1(@types/node@18.19.66)(terser@5.36.0)(yaml@2.6.1))(vitest@2.1.6)': + dependencies: + '@testing-library/dom': 10.4.0 + '@testing-library/user-event': 14.5.2(@testing-library/dom@10.4.0) + '@vitest/mocker': 2.1.6(msw@2.6.6(@types/node@18.19.66)(typescript@5.7.2))(vite@6.0.1(@types/node@18.19.66)(terser@5.36.0)(yaml@2.6.1)) + '@vitest/utils': 2.1.6 + magic-string: 0.30.14 + msw: 2.6.6(@types/node@18.19.66)(typescript@5.7.2) + sirv: 3.0.0 + tinyrainbow: 1.2.0 + vitest: 2.1.6(@types/node@18.19.66)(@vitest/browser@2.1.6)(jsdom@25.0.1)(msw@2.6.6(@types/node@18.19.66)(typescript@5.7.2))(terser@5.36.0)(yaml@2.6.1) + ws: 8.18.0 + optionalDependencies: + playwright: 1.49.0 + transitivePeerDependencies: + - '@types/node' + - bufferutil + - typescript + - utf-8-validate + - vite + + '@vitest/browser@2.1.6(@types/node@22.10.0)(playwright@1.49.0)(typescript@5.7.2)(vite@5.4.11(@types/node@22.10.0)(terser@5.36.0))(vitest@2.1.6)': + dependencies: + '@testing-library/dom': 10.4.0 + '@testing-library/user-event': 14.5.2(@testing-library/dom@10.4.0) + '@vitest/mocker': 2.1.6(msw@2.6.6(@types/node@22.10.0)(typescript@5.7.2))(vite@5.4.11(@types/node@22.10.0)(terser@5.36.0)) + '@vitest/utils': 2.1.6 + magic-string: 0.30.14 + msw: 2.6.6(@types/node@22.10.0)(typescript@5.7.2) + sirv: 3.0.0 + tinyrainbow: 1.2.0 + vitest: 2.1.6(@types/node@22.10.0)(@vitest/browser@2.1.6)(jsdom@25.0.1)(msw@2.6.6(@types/node@22.10.0)(typescript@5.7.2))(terser@5.36.0)(yaml@2.6.1) + ws: 8.18.0 + optionalDependencies: + playwright: 1.49.0 + transitivePeerDependencies: + - '@types/node' + - bufferutil + - typescript + - utf-8-validate + - vite + optional: true + '@vitest/expect@2.1.2': dependencies: '@vitest/spy': 2.1.2 @@ -3259,55 +4238,145 @@ snapshots: chai: 5.1.1 tinyrainbow: 1.2.0 - '@vitest/mocker@2.1.2(@vitest/spy@2.1.2)(msw@2.4.9(typescript@5.6.2))(vite@5.4.8(@types/node@18.19.54)(terser@5.34.1))': + '@vitest/expect@2.1.6': + dependencies: + '@vitest/spy': 2.1.6 + '@vitest/utils': 2.1.6 + chai: 5.1.2 + tinyrainbow: 1.2.0 + + '@vitest/mocker@2.1.2(@vitest/spy@2.1.2)(msw@2.4.9(typescript@5.7.2))(vite@5.4.11(@types/node@22.10.0)(terser@5.36.0))': dependencies: '@vitest/spy': 2.1.2 estree-walker: 3.0.3 magic-string: 0.30.11 optionalDependencies: - msw: 2.4.9(typescript@5.6.2) - vite: 5.4.8(@types/node@18.19.54)(terser@5.34.1) + msw: 2.4.9(typescript@5.7.2) + vite: 5.4.11(@types/node@22.10.0)(terser@5.36.0) + + '@vitest/mocker@2.1.2(@vitest/spy@2.1.2)(msw@2.6.6(@types/node@22.10.0)(typescript@5.7.2))(vite@5.4.11(@types/node@22.10.0)(terser@5.36.0))': + dependencies: + '@vitest/spy': 2.1.2 + estree-walker: 3.0.3 + magic-string: 0.30.11 + optionalDependencies: + msw: 2.6.6(@types/node@22.10.0)(typescript@5.7.2) + vite: 5.4.11(@types/node@22.10.0)(terser@5.36.0) - '@vitest/mocker@2.1.2(@vitest/spy@2.1.2)(msw@2.4.9(typescript@5.6.2))(vite@5.4.8(@types/node@22.7.4)(terser@5.34.1))': + '@vitest/mocker@2.1.2(@vitest/spy@2.1.2)(msw@2.6.6(@types/node@22.7.4)(typescript@5.6.2))(vite@5.4.11(@types/node@22.7.4)(terser@5.36.0))': dependencies: '@vitest/spy': 2.1.2 estree-walker: 3.0.3 magic-string: 0.30.11 + optionalDependencies: + msw: 2.6.6(@types/node@22.7.4)(typescript@5.6.2) + vite: 5.4.11(@types/node@22.7.4)(terser@5.36.0) + + '@vitest/mocker@2.1.2(@vitest/spy@2.1.6)(msw@2.4.9(typescript@5.6.2))(vite@5.4.8(@types/node@22.7.4)(terser@5.36.0))': + dependencies: + '@vitest/spy': 2.1.6 + estree-walker: 3.0.3 + magic-string: 0.30.11 optionalDependencies: msw: 2.4.9(typescript@5.6.2) - vite: 5.4.8(@types/node@22.7.4)(terser@5.34.1) + vite: 5.4.8(@types/node@22.7.4)(terser@5.36.0) + optional: true + + '@vitest/mocker@2.1.2(@vitest/spy@2.1.6)(msw@2.4.9(typescript@5.7.2))(vite@5.4.11(@types/node@22.10.0)(terser@5.36.0))': + dependencies: + '@vitest/spy': 2.1.6 + estree-walker: 3.0.3 + magic-string: 0.30.11 + optionalDependencies: + msw: 2.4.9(typescript@5.7.2) + vite: 5.4.11(@types/node@22.10.0)(terser@5.36.0) + + '@vitest/mocker@2.1.6(msw@2.6.6(@types/node@18.19.66)(typescript@5.7.2))(vite@6.0.1(@types/node@18.19.66)(terser@5.36.0)(yaml@2.6.1))': + dependencies: + '@vitest/spy': 2.1.6 + estree-walker: 3.0.3 + magic-string: 0.30.14 + optionalDependencies: + msw: 2.6.6(@types/node@18.19.66)(typescript@5.7.2) + vite: 6.0.1(@types/node@18.19.66)(terser@5.36.0)(yaml@2.6.1) + + '@vitest/mocker@2.1.6(msw@2.6.6(@types/node@22.10.0)(typescript@5.7.2))(vite@5.4.11(@types/node@22.10.0)(terser@5.36.0))': + dependencies: + '@vitest/spy': 2.1.6 + estree-walker: 3.0.3 + magic-string: 0.30.14 + optionalDependencies: + msw: 2.6.6(@types/node@22.10.0)(typescript@5.7.2) + vite: 5.4.11(@types/node@22.10.0)(terser@5.36.0) + optional: true + + '@vitest/mocker@2.1.6(msw@2.6.6(@types/node@22.10.0)(typescript@5.7.2))(vite@6.0.1(@types/node@22.10.0)(terser@5.36.0)(yaml@2.6.1))': + dependencies: + '@vitest/spy': 2.1.6 + estree-walker: 3.0.3 + magic-string: 0.30.14 + optionalDependencies: + msw: 2.6.6(@types/node@22.10.0)(typescript@5.7.2) + vite: 6.0.1(@types/node@22.10.0)(terser@5.36.0)(yaml@2.6.1) '@vitest/pretty-format@2.1.2': dependencies: tinyrainbow: 1.2.0 + '@vitest/pretty-format@2.1.6': + dependencies: + tinyrainbow: 1.2.0 + '@vitest/runner@2.1.2': dependencies: '@vitest/utils': 2.1.2 pathe: 1.1.2 + '@vitest/runner@2.1.6': + dependencies: + '@vitest/utils': 2.1.6 + pathe: 1.1.2 + '@vitest/snapshot@2.1.2': dependencies: '@vitest/pretty-format': 2.1.2 magic-string: 0.30.11 pathe: 1.1.2 + '@vitest/snapshot@2.1.6': + dependencies: + '@vitest/pretty-format': 2.1.6 + magic-string: 0.30.14 + pathe: 1.1.2 + '@vitest/spy@2.1.2': dependencies: tinyspy: 3.0.2 + '@vitest/spy@2.1.6': + dependencies: + tinyspy: 3.0.2 + '@vitest/utils@2.1.2': dependencies: '@vitest/pretty-format': 2.1.2 loupe: 3.1.1 tinyrainbow: 1.2.0 + '@vitest/utils@2.1.6': + dependencies: + '@vitest/pretty-format': 2.1.6 + loupe: 3.1.2 + tinyrainbow: 1.2.0 + acorn-walk@8.3.4: dependencies: acorn: 8.12.1 acorn@8.12.1: {} + acorn@8.14.0: {} + agent-base@7.1.1: dependencies: debug: 4.3.7(supports-color@8.1.1) @@ -3327,10 +4396,6 @@ snapshots: ansi-regex@6.1.0: {} - ansi-styles@3.2.1: - dependencies: - color-convert: 1.9.3 - ansi-styles@4.3.0: dependencies: color-convert: 2.0.1 @@ -3355,6 +4420,14 @@ snapshots: array-union@2.1.0: {} + assert@2.1.0: + dependencies: + call-bind: 1.0.7 + is-nan: 1.3.2 + object-is: 1.1.6 + object.assign: 4.1.5 + util: 0.12.5 + assertion-error-formatter@3.0.0: dependencies: diff: 4.0.2 @@ -3366,6 +4439,10 @@ snapshots: asynckit@0.4.0: optional: true + available-typed-arrays@1.0.7: + dependencies: + possible-typed-array-names: 1.0.0 + axobject-query@4.1.0: {} balanced-match@1.0.2: {} @@ -3386,6 +4463,14 @@ snapshots: cac@6.7.14: {} + call-bind@1.0.7: + dependencies: + es-define-property: 1.0.0 + es-errors: 1.3.0 + function-bind: 1.1.2 + get-intrinsic: 1.2.4 + set-function-length: 1.2.2 + capital-case@1.0.4: dependencies: no-case: 3.0.4 @@ -3400,11 +4485,13 @@ snapshots: loupe: 3.1.1 pathval: 2.0.0 - chalk@2.4.2: + chai@5.1.2: dependencies: - ansi-styles: 3.2.1 - escape-string-regexp: 1.0.5 - supports-color: 5.5.0 + assertion-error: 2.0.1 + check-error: 2.1.1 + deep-eql: 5.0.2 + loupe: 3.1.2 + pathval: 2.0.0 chalk@4.1.2: dependencies: @@ -3445,16 +4532,10 @@ snapshots: estree-walker: 3.0.3 periscopic: 3.1.0 - color-convert@1.9.3: - dependencies: - color-name: 1.1.3 - color-convert@2.0.1: dependencies: color-name: 1.1.4 - color-name@1.1.3: {} - color-name@1.1.4: {} combined-stream@1.0.8: @@ -3474,6 +4555,8 @@ snapshots: cookie@0.7.1: {} + cookie@0.7.2: {} + create-require@1.1.1: {} cross-spawn@5.1.0: @@ -3482,7 +4565,7 @@ snapshots: shebang-command: 1.2.0 which: 1.3.1 - cross-spawn@7.0.3: + cross-spawn@7.0.6: dependencies: path-key: 3.1.1 shebang-command: 2.0.0 @@ -3519,6 +4602,18 @@ snapshots: deepmerge@4.3.1: {} + define-data-property@1.1.4: + dependencies: + es-define-property: 1.0.0 + es-errors: 1.3.0 + gopd: 1.0.1 + + define-properties@1.2.1: + dependencies: + define-data-property: 1.1.4 + has-property-descriptors: 1.0.2 + object-keys: 1.1.1 + delayed-stream@1.0.0: optional: true @@ -3560,6 +4655,14 @@ snapshots: dependencies: stackframe: 1.3.4 + es-define-property@1.0.0: + dependencies: + get-intrinsic: 1.2.4 + + es-errors@1.3.0: {} + + es-module-lexer@1.5.4: {} + esbuild@0.21.5: optionalDependencies: '@esbuild/aix-ppc64': 0.21.5 @@ -3586,6 +4689,33 @@ snapshots: '@esbuild/win32-ia32': 0.21.5 '@esbuild/win32-x64': 0.21.5 + esbuild@0.24.0: + optionalDependencies: + '@esbuild/aix-ppc64': 0.24.0 + '@esbuild/android-arm': 0.24.0 + '@esbuild/android-arm64': 0.24.0 + '@esbuild/android-x64': 0.24.0 + '@esbuild/darwin-arm64': 0.24.0 + '@esbuild/darwin-x64': 0.24.0 + '@esbuild/freebsd-arm64': 0.24.0 + '@esbuild/freebsd-x64': 0.24.0 + '@esbuild/linux-arm': 0.24.0 + '@esbuild/linux-arm64': 0.24.0 + '@esbuild/linux-ia32': 0.24.0 + '@esbuild/linux-loong64': 0.24.0 + '@esbuild/linux-mips64el': 0.24.0 + '@esbuild/linux-ppc64': 0.24.0 + '@esbuild/linux-riscv64': 0.24.0 + '@esbuild/linux-s390x': 0.24.0 + '@esbuild/linux-x64': 0.24.0 + '@esbuild/netbsd-x64': 0.24.0 + '@esbuild/openbsd-arm64': 0.24.0 + '@esbuild/openbsd-x64': 0.24.0 + '@esbuild/sunos-x64': 0.24.0 + '@esbuild/win32-arm64': 0.24.0 + '@esbuild/win32-ia32': 0.24.0 + '@esbuild/win32-x64': 0.24.0 + escalade@3.2.0: {} escape-string-regexp@1.0.5: {} @@ -3602,6 +4732,8 @@ snapshots: dependencies: '@types/estree': 1.0.5 + expect-type@1.1.0: {} + expect@29.7.0: dependencies: '@jest/expect-utils': 29.7.0 @@ -3630,7 +4762,9 @@ snapshots: dependencies: reusify: 1.0.4 - fdir@6.3.0: {} + fdir@6.3.0(picomatch@4.0.2): + optionalDependencies: + picomatch: 4.0.2 figures@3.2.0: dependencies: @@ -3645,12 +4779,16 @@ snapshots: locate-path: 5.0.0 path-exists: 4.0.0 + for-each@0.3.3: + dependencies: + is-callable: 1.2.7 + foreground-child@3.3.0: dependencies: - cross-spawn: 7.0.3 + cross-spawn: 7.0.6 signal-exit: 4.1.0 - form-data@4.0.0: + form-data@4.0.1: dependencies: asynckit: 0.4.0 combined-stream: 1.0.8 @@ -3683,6 +4821,14 @@ snapshots: get-func-name@2.0.2: {} + get-intrinsic@1.2.4: + dependencies: + es-errors: 1.3.0 + function-bind: 1.1.2 + has-proto: 1.0.3 + has-symbols: 1.0.3 + hasown: 2.0.2 + glob-parent@5.1.2: dependencies: is-glob: 4.0.3 @@ -3693,7 +4839,7 @@ snapshots: jackspeak: 3.4.3 minimatch: 9.0.5 minipass: 7.1.2 - package-json-from-dist: 1.0.0 + package-json-from-dist: 1.0.1 path-scurry: 1.11.1 glob@8.1.0: @@ -3721,6 +4867,10 @@ snapshots: globrex@0.1.2: {} + gopd@1.0.1: + dependencies: + get-intrinsic: 1.2.4 + graceful-fs@4.2.11: {} graphql@16.9.0: {} @@ -3729,10 +4879,20 @@ snapshots: dependencies: ansi-regex: 4.1.1 - has-flag@3.0.0: {} - has-flag@4.0.0: {} + has-property-descriptors@1.0.2: + dependencies: + es-define-property: 1.0.0 + + has-proto@1.0.3: {} + + has-symbols@1.0.3: {} + + has-tostringtag@1.0.2: + dependencies: + has-symbols: 1.0.3 + hasown@2.0.2: dependencies: function-bind: 1.1.2 @@ -3792,8 +4952,15 @@ snapshots: ini@2.0.0: {} + is-arguments@1.1.1: + dependencies: + call-bind: 1.0.7 + has-tostringtag: 1.0.2 + is-arrayish@0.2.1: {} + is-callable@1.2.7: {} + is-core-module@2.15.1: dependencies: hasown: 2.0.2 @@ -3802,6 +4969,10 @@ snapshots: is-fullwidth-code-point@3.0.0: {} + is-generator-function@1.0.10: + dependencies: + has-tostringtag: 1.0.2 + is-glob@4.0.3: dependencies: is-extglob: 2.1.1 @@ -3811,6 +4982,11 @@ snapshots: global-dirs: 3.0.1 is-path-inside: 3.0.3 + is-nan@1.3.2: + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + is-node-process@1.2.0: {} is-number@7.0.0: {} @@ -3830,6 +5006,10 @@ snapshots: dependencies: better-path-resolve: 1.0.0 + is-typed-array@1.1.13: + dependencies: + which-typed-array: 1.1.15 + is-windows@1.0.2: {} isexe@2.0.0: {} @@ -3858,7 +5038,7 @@ snapshots: jest-message-util@29.7.0: dependencies: - '@babel/code-frame': 7.24.7 + '@babel/code-frame': 7.26.2 '@jest/types': 29.6.3 '@types/stack-utils': 2.0.3 chalk: 4.1.2 @@ -3871,7 +5051,7 @@ snapshots: jest-util@29.7.0: dependencies: '@jest/types': 29.6.3 - '@types/node': 22.7.4 + '@types/node': 22.10.0 chalk: 4.1.2 ci-info: 3.9.0 graceful-fs: 4.2.11 @@ -3893,13 +5073,13 @@ snapshots: cssstyle: 4.1.0 data-urls: 5.0.0 decimal.js: 10.4.3 - form-data: 4.0.0 + form-data: 4.0.1 html-encoding-sniffer: 4.0.0 http-proxy-agent: 7.0.2 https-proxy-agent: 7.0.5 is-potential-custom-element-name: 1.0.1 nwsapi: 2.2.13 - parse5: 7.1.2 + parse5: 7.2.1 rrweb-cssom: 0.7.1 saxes: 6.0.0 symbol-tree: 3.2.4 @@ -3949,6 +5129,8 @@ snapshots: dependencies: get-func-name: 2.0.2 + loupe@3.1.2: {} + lower-case@2.0.2: dependencies: tslib: 2.7.0 @@ -3972,6 +5154,10 @@ snapshots: dependencies: '@jridgewell/sourcemap-codec': 1.5.0 + magic-string@0.30.14: + dependencies: + '@jridgewell/sourcemap-codec': 1.5.0 + make-error@1.3.6: {} mdn-data@2.0.30: {} @@ -4032,9 +5218,111 @@ snapshots: yargs: 17.7.2 optionalDependencies: typescript: 5.6.2 + optional: true + + msw@2.4.9(typescript@5.7.2): + dependencies: + '@bundled-es-modules/cookie': 2.0.0 + '@bundled-es-modules/statuses': 1.0.1 + '@bundled-es-modules/tough-cookie': 0.1.6 + '@inquirer/confirm': 3.2.0 + '@mswjs/interceptors': 0.35.9 + '@open-draft/until': 2.1.0 + '@types/cookie': 0.6.0 + '@types/statuses': 2.0.5 + chalk: 4.1.2 + graphql: 16.9.0 + headers-polyfill: 4.0.3 + is-node-process: 1.2.0 + outvariant: 1.4.3 + path-to-regexp: 6.3.0 + strict-event-emitter: 0.5.1 + type-fest: 4.26.1 + yargs: 17.7.2 + optionalDependencies: + typescript: 5.7.2 + + msw@2.6.6(@types/node@18.19.66)(typescript@5.7.2): + dependencies: + '@bundled-es-modules/cookie': 2.0.1 + '@bundled-es-modules/statuses': 1.0.1 + '@bundled-es-modules/tough-cookie': 0.1.6 + '@inquirer/confirm': 5.0.2(@types/node@18.19.66) + '@mswjs/interceptors': 0.37.1 + '@open-draft/deferred-promise': 2.2.0 + '@open-draft/until': 2.1.0 + '@types/cookie': 0.6.0 + '@types/statuses': 2.0.5 + chalk: 4.1.2 + graphql: 16.9.0 + headers-polyfill: 4.0.3 + is-node-process: 1.2.0 + outvariant: 1.4.3 + path-to-regexp: 6.3.0 + strict-event-emitter: 0.5.1 + type-fest: 4.29.0 + yargs: 17.7.2 + optionalDependencies: + typescript: 5.7.2 + transitivePeerDependencies: + - '@types/node' + + msw@2.6.6(@types/node@22.10.0)(typescript@5.7.2): + dependencies: + '@bundled-es-modules/cookie': 2.0.1 + '@bundled-es-modules/statuses': 1.0.1 + '@bundled-es-modules/tough-cookie': 0.1.6 + '@inquirer/confirm': 5.0.2(@types/node@22.10.0) + '@mswjs/interceptors': 0.37.1 + '@open-draft/deferred-promise': 2.2.0 + '@open-draft/until': 2.1.0 + '@types/cookie': 0.6.0 + '@types/statuses': 2.0.5 + chalk: 4.1.2 + graphql: 16.9.0 + headers-polyfill: 4.0.3 + is-node-process: 1.2.0 + outvariant: 1.4.3 + path-to-regexp: 6.3.0 + strict-event-emitter: 0.5.1 + type-fest: 4.29.0 + yargs: 17.7.2 + optionalDependencies: + typescript: 5.7.2 + transitivePeerDependencies: + - '@types/node' + optional: true + + msw@2.6.6(@types/node@22.7.4)(typescript@5.6.2): + dependencies: + '@bundled-es-modules/cookie': 2.0.1 + '@bundled-es-modules/statuses': 1.0.1 + '@bundled-es-modules/tough-cookie': 0.1.6 + '@inquirer/confirm': 5.0.2(@types/node@22.7.4) + '@mswjs/interceptors': 0.37.1 + '@open-draft/deferred-promise': 2.2.0 + '@open-draft/until': 2.1.0 + '@types/cookie': 0.6.0 + '@types/statuses': 2.0.5 + chalk: 4.1.2 + graphql: 16.9.0 + headers-polyfill: 4.0.3 + is-node-process: 1.2.0 + outvariant: 1.4.3 + path-to-regexp: 6.3.0 + strict-event-emitter: 0.5.1 + type-fest: 4.29.0 + yargs: 17.7.2 + optionalDependencies: + typescript: 5.6.2 + transitivePeerDependencies: + - '@types/node' + optional: true mute-stream@1.0.0: {} + mute-stream@2.0.0: {} + mz@2.7.0: dependencies: any-promise: 1.3.0 @@ -4043,6 +5331,8 @@ snapshots: nanoid@3.3.7: {} + nanoid@3.3.8: {} + no-case@3.0.4: dependencies: lower-case: 2.0.2 @@ -4073,6 +5363,20 @@ snapshots: object-assign@4.1.1: {} + object-is@1.1.6: + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + + object-keys@1.1.1: {} + + object.assign@4.1.5: + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + has-symbols: 1.0.3 + object-keys: 1.1.1 + once@1.4.0: dependencies: wrappy: 1.0.2 @@ -4099,7 +5403,7 @@ snapshots: p-try@2.2.0: {} - package-json-from-dist@1.0.0: {} + package-json-from-dist@1.0.1: {} package-manager-detector@0.2.1: {} @@ -4109,12 +5413,12 @@ snapshots: parse-json@5.2.0: dependencies: - '@babel/code-frame': 7.24.7 + '@babel/code-frame': 7.26.2 error-ex: 1.3.2 json-parse-even-better-errors: 2.3.1 lines-and-columns: 1.2.4 - parse5@7.1.2: + parse5@7.2.1: dependencies: entities: 4.5.0 optional: true @@ -4151,8 +5455,12 @@ snapshots: picocolors@1.1.0: {} + picocolors@1.1.1: {} + picomatch@2.3.1: {} + picomatch@4.0.2: {} + pify@4.0.1: {} pixelmatch@6.0.0: @@ -4161,22 +5469,38 @@ snapshots: playwright-core@1.48.0: {} + playwright-core@1.49.0: {} + playwright@1.48.0: dependencies: playwright-core: 1.48.0 optionalDependencies: fsevents: 2.3.2 + playwright@1.49.0: + dependencies: + playwright-core: 1.49.0 + optionalDependencies: + fsevents: 2.3.2 + pngjs@7.0.0: {} pnpm@9.12.0: {} + possible-typed-array-names@1.0.0: {} + postcss@8.4.45: dependencies: nanoid: 3.3.7 picocolors: 1.1.0 source-map-js: 1.2.1 + postcss@8.4.49: + dependencies: + nanoid: 3.3.8 + picocolors: 1.1.1 + source-map-js: 1.2.1 + prettier@2.8.8: {} pretty-format@27.5.1: @@ -4213,11 +5537,11 @@ snapshots: quickpickle@1.2.3: dependencies: - '@cucumber/cucumber': 11.0.1 + '@cucumber/cucumber': 11.1.0 '@cucumber/cucumber-expressions': 16.1.2 '@cucumber/gherkin': 29.0.0 '@cucumber/messages': 22.0.0 - '@cucumber/tag-expressions': 6.1.0 + '@cucumber/tag-expressions': 6.1.1 lodash-es: 4.17.21 randombytes@2.1.0: @@ -4308,6 +5632,30 @@ snapshots: '@rollup/rollup-win32-x64-msvc': 4.24.0 fsevents: 2.3.3 + rollup@4.27.4: + dependencies: + '@types/estree': 1.0.6 + optionalDependencies: + '@rollup/rollup-android-arm-eabi': 4.27.4 + '@rollup/rollup-android-arm64': 4.27.4 + '@rollup/rollup-darwin-arm64': 4.27.4 + '@rollup/rollup-darwin-x64': 4.27.4 + '@rollup/rollup-freebsd-arm64': 4.27.4 + '@rollup/rollup-freebsd-x64': 4.27.4 + '@rollup/rollup-linux-arm-gnueabihf': 4.27.4 + '@rollup/rollup-linux-arm-musleabihf': 4.27.4 + '@rollup/rollup-linux-arm64-gnu': 4.27.4 + '@rollup/rollup-linux-arm64-musl': 4.27.4 + '@rollup/rollup-linux-powerpc64le-gnu': 4.27.4 + '@rollup/rollup-linux-riscv64-gnu': 4.27.4 + '@rollup/rollup-linux-s390x-gnu': 4.27.4 + '@rollup/rollup-linux-x64-gnu': 4.27.4 + '@rollup/rollup-linux-x64-musl': 4.27.4 + '@rollup/rollup-win32-arm64-msvc': 4.27.4 + '@rollup/rollup-win32-ia32-msvc': 4.27.4 + '@rollup/rollup-win32-x64-msvc': 4.27.4 + fsevents: 2.3.3 + rrweb-cssom@0.7.1: optional: true @@ -4344,6 +5692,15 @@ snapshots: set-cookie-parser@2.7.0: {} + set-function-length@1.2.2: + dependencies: + define-data-property: 1.1.4 + es-errors: 1.3.0 + function-bind: 1.1.2 + get-intrinsic: 1.2.4 + gopd: 1.0.1 + has-property-descriptors: 1.0.2 + shebang-command@1.2.0: dependencies: shebang-regex: 1.0.0 @@ -4368,6 +5725,12 @@ snapshots: mrmime: 2.0.0 totalist: 3.0.1 + sirv@3.0.0: + dependencies: + '@polka/url': 1.0.0-next.28 + mrmime: 2.0.0 + totalist: 3.0.1 + slash@3.0.0: {} smob@1.5.0: {} @@ -4416,6 +5779,8 @@ snapshots: std-env@3.7.0: {} + std-env@3.8.0: {} + strict-event-emitter@0.5.1: {} string-argv@0.3.1: {} @@ -4442,10 +5807,6 @@ snapshots: strip-bom@3.0.0: {} - supports-color@5.5.0: - dependencies: - has-flag: 3.0.0 - supports-color@7.2.0: dependencies: has-flag: 4.0.0 @@ -4456,11 +5817,11 @@ snapshots: supports-preserve-symlinks-flag@1.0.0: {} - svelte-check@4.0.4(svelte@4.2.19)(typescript@5.6.2): + svelte-check@4.0.4(picomatch@4.0.2)(svelte@4.2.19)(typescript@5.6.2): dependencies: '@jridgewell/trace-mapping': 0.3.25 chokidar: 4.0.1 - fdir: 6.3.0 + fdir: 6.3.0(picomatch@4.0.2) picocolors: 1.1.0 sade: 1.8.1 svelte: 4.2.19 @@ -4501,10 +5862,10 @@ snapshots: term-size@2.2.1: {} - terser@5.34.1: + terser@5.36.0: dependencies: '@jridgewell/source-map': 0.3.6 - acorn: 8.12.1 + acorn: 8.14.0 commander: 2.20.3 source-map-support: 0.5.21 @@ -4527,18 +5888,22 @@ snapshots: tinyexec@0.3.0: {} + tinyexec@0.3.1: {} + tinypool@1.0.1: {} + tinypool@1.0.2: {} + tinyrainbow@1.2.0: {} tinyspy@3.0.2: {} - tldts-core@6.1.50: + tldts-core@6.1.64: optional: true - tldts@6.1.50: + tldts@6.1.64: dependencies: - tldts-core: 6.1.50 + tldts-core: 6.1.64 optional: true tmp@0.0.33: @@ -4564,7 +5929,7 @@ snapshots: tough-cookie@5.0.0: dependencies: - tldts: 6.1.50 + tldts: 6.1.64 optional: true tr46@5.0.0: @@ -4602,12 +5967,18 @@ snapshots: type-fest@4.26.1: {} + type-fest@4.29.0: {} + typescript@5.6.2: {} + typescript@5.7.2: {} + undici-types@5.26.5: {} undici-types@6.19.8: {} + undici-types@6.20.0: {} + universalify@0.1.2: {} universalify@0.2.0: {} @@ -4623,6 +5994,14 @@ snapshots: util-arity@1.1.0: {} + util@0.12.5: + dependencies: + inherits: 2.0.4 + is-arguments: 1.1.1 + is-generator-function: 1.0.10 + is-typed-array: 1.1.13 + which-typed-array: 1.1.15 + uuid@9.0.0: {} uuid@9.0.1: {} @@ -4634,14 +6013,50 @@ snapshots: spdx-correct: 3.2.0 spdx-expression-parse: 3.0.1 - vite-node@2.1.2(@types/node@18.19.54)(terser@5.34.1): + vite-node@2.1.2(@types/node@22.10.0)(terser@5.36.0): + dependencies: + cac: 6.7.14 + debug: 4.3.7(supports-color@8.1.1) + pathe: 1.1.2 + vite: 5.4.8(@types/node@22.10.0)(terser@5.36.0) + transitivePeerDependencies: + - '@types/node' + - less + - lightningcss + - sass + - sass-embedded + - stylus + - sugarss + - supports-color + - terser + + vite-node@2.1.2(@types/node@22.7.4)(terser@5.36.0): + dependencies: + cac: 6.7.14 + debug: 4.3.7(supports-color@8.1.1) + pathe: 1.1.2 + vite: 5.4.8(@types/node@22.7.4)(terser@5.36.0) + transitivePeerDependencies: + - '@types/node' + - less + - lightningcss + - sass + - sass-embedded + - stylus + - sugarss + - supports-color + - terser + + vite-node@2.1.6(@types/node@18.19.66)(terser@5.36.0)(yaml@2.6.1): dependencies: cac: 6.7.14 debug: 4.3.7(supports-color@8.1.1) + es-module-lexer: 1.5.4 pathe: 1.1.2 - vite: 5.4.8(@types/node@18.19.54)(terser@5.34.1) + vite: 6.0.1(@types/node@18.19.66)(terser@5.36.0)(yaml@2.6.1) transitivePeerDependencies: - '@types/node' + - jiti - less - lightningcss - sass @@ -4650,15 +6065,19 @@ snapshots: - sugarss - supports-color - terser + - tsx + - yaml - vite-node@2.1.2(@types/node@22.7.4)(terser@5.34.1): + vite-node@2.1.6(@types/node@22.10.0)(terser@5.36.0)(yaml@2.6.1): dependencies: cac: 6.7.14 debug: 4.3.7(supports-color@8.1.1) + es-module-lexer: 1.5.4 pathe: 1.1.2 - vite: 5.4.8(@types/node@22.7.4)(terser@5.34.1) + vite: 6.0.1(@types/node@22.10.0)(terser@5.36.0)(yaml@2.6.1) transitivePeerDependencies: - '@types/node' + - jiti - less - lightningcss - sass @@ -4667,18 +6086,40 @@ snapshots: - sugarss - supports-color - terser + - tsx + - yaml + + vite@5.4.11(@types/node@22.10.0)(terser@5.36.0): + dependencies: + esbuild: 0.21.5 + postcss: 8.4.49 + rollup: 4.27.4 + optionalDependencies: + '@types/node': 22.10.0 + fsevents: 2.3.3 + terser: 5.36.0 + + vite@5.4.11(@types/node@22.7.4)(terser@5.36.0): + dependencies: + esbuild: 0.21.5 + postcss: 8.4.49 + rollup: 4.27.4 + optionalDependencies: + '@types/node': 22.7.4 + fsevents: 2.3.3 + terser: 5.36.0 - vite@5.4.8(@types/node@18.19.54)(terser@5.34.1): + vite@5.4.8(@types/node@22.10.0)(terser@5.36.0): dependencies: esbuild: 0.21.5 postcss: 8.4.45 rollup: 4.24.0 optionalDependencies: - '@types/node': 18.19.54 + '@types/node': 22.10.0 fsevents: 2.3.3 - terser: 5.34.1 + terser: 5.36.0 - vite@5.4.8(@types/node@22.7.4)(terser@5.34.1): + vite@5.4.8(@types/node@22.7.4)(terser@5.36.0): dependencies: esbuild: 0.21.5 postcss: 8.4.45 @@ -4686,16 +6127,74 @@ snapshots: optionalDependencies: '@types/node': 22.7.4 fsevents: 2.3.3 - terser: 5.34.1 + terser: 5.36.0 + + vite@6.0.1(@types/node@18.19.66)(terser@5.36.0)(yaml@2.6.1): + dependencies: + esbuild: 0.24.0 + postcss: 8.4.49 + rollup: 4.27.4 + optionalDependencies: + '@types/node': 18.19.66 + fsevents: 2.3.3 + terser: 5.36.0 + yaml: 2.6.1 + + vite@6.0.1(@types/node@22.10.0)(terser@5.36.0)(yaml@2.6.1): + dependencies: + esbuild: 0.24.0 + postcss: 8.4.49 + rollup: 4.27.4 + optionalDependencies: + '@types/node': 22.10.0 + fsevents: 2.3.3 + terser: 5.36.0 + yaml: 2.6.1 + + vitefu@0.2.5(vite@5.4.8(@types/node@22.7.4)(terser@5.36.0)): + optionalDependencies: + vite: 5.4.8(@types/node@22.7.4)(terser@5.36.0) - vitefu@0.2.5(vite@5.4.8(@types/node@22.7.4)(terser@5.34.1)): + vitest@2.1.2(@types/node@22.10.0)(@vitest/browser@2.1.2)(jsdom@25.0.1)(msw@2.4.9(typescript@5.7.2))(terser@5.36.0): + dependencies: + '@vitest/expect': 2.1.2 + '@vitest/mocker': 2.1.2(@vitest/spy@2.1.2)(msw@2.4.9(typescript@5.7.2))(vite@5.4.11(@types/node@22.10.0)(terser@5.36.0)) + '@vitest/pretty-format': 2.1.2 + '@vitest/runner': 2.1.2 + '@vitest/snapshot': 2.1.2 + '@vitest/spy': 2.1.2 + '@vitest/utils': 2.1.2 + chai: 5.1.1 + debug: 4.3.7(supports-color@8.1.1) + magic-string: 0.30.11 + pathe: 1.1.2 + std-env: 3.7.0 + tinybench: 2.9.0 + tinyexec: 0.3.0 + tinypool: 1.0.1 + tinyrainbow: 1.2.0 + vite: 5.4.11(@types/node@22.10.0)(terser@5.36.0) + vite-node: 2.1.2(@types/node@22.10.0)(terser@5.36.0) + why-is-node-running: 2.3.0 optionalDependencies: - vite: 5.4.8(@types/node@22.7.4)(terser@5.34.1) + '@types/node': 22.10.0 + '@vitest/browser': 2.1.2(@vitest/spy@2.1.6)(playwright@1.49.0)(typescript@5.7.2)(vite@5.4.11(@types/node@22.10.0)(terser@5.36.0))(vitest@2.1.2) + jsdom: 25.0.1 + transitivePeerDependencies: + - less + - lightningcss + - msw + - sass + - sass-embedded + - stylus + - sugarss + - supports-color + - terser - vitest@2.1.2(@types/node@18.19.54)(@vitest/browser@2.1.2)(jsdom@25.0.1)(msw@2.4.9(typescript@5.6.2))(terser@5.34.1): + vitest@2.1.2(@types/node@22.10.0)(@vitest/browser@2.1.2)(jsdom@25.0.1)(msw@2.6.6(@types/node@22.10.0)(typescript@5.7.2))(terser@5.36.0): dependencies: '@vitest/expect': 2.1.2 - '@vitest/mocker': 2.1.2(@vitest/spy@2.1.2)(msw@2.4.9(typescript@5.6.2))(vite@5.4.8(@types/node@18.19.54)(terser@5.34.1)) + '@vitest/mocker': 2.1.2(@vitest/spy@2.1.2)(msw@2.6.6(@types/node@22.10.0)(typescript@5.7.2))(vite@5.4.11(@types/node@22.10.0)(terser@5.36.0)) '@vitest/pretty-format': 2.1.2 '@vitest/runner': 2.1.2 '@vitest/snapshot': 2.1.2 @@ -4710,12 +6209,12 @@ snapshots: tinyexec: 0.3.0 tinypool: 1.0.1 tinyrainbow: 1.2.0 - vite: 5.4.8(@types/node@18.19.54)(terser@5.34.1) - vite-node: 2.1.2(@types/node@18.19.54)(terser@5.34.1) + vite: 5.4.11(@types/node@22.10.0)(terser@5.36.0) + vite-node: 2.1.2(@types/node@22.10.0)(terser@5.36.0) why-is-node-running: 2.3.0 optionalDependencies: - '@types/node': 18.19.54 - '@vitest/browser': 2.1.2(@vitest/spy@2.1.2)(playwright@1.48.0)(typescript@5.6.2)(vite@5.4.8(@types/node@18.19.54)(terser@5.34.1))(vitest@2.1.2) + '@types/node': 22.10.0 + '@vitest/browser': 2.1.2(@vitest/spy@2.1.2)(playwright@1.48.0)(typescript@5.7.2)(vite@5.4.11(@types/node@22.10.0)(terser@5.36.0))(vitest@2.1.2) jsdom: 25.0.1 transitivePeerDependencies: - less @@ -4728,10 +6227,10 @@ snapshots: - supports-color - terser - vitest@2.1.2(@types/node@22.7.4)(@vitest/browser@2.1.2)(jsdom@25.0.1)(msw@2.4.9(typescript@5.6.2))(terser@5.34.1): + vitest@2.1.2(@types/node@22.7.4)(@vitest/browser@2.1.2)(jsdom@25.0.1)(msw@2.6.6(@types/node@22.7.4)(typescript@5.6.2))(terser@5.36.0): dependencies: '@vitest/expect': 2.1.2 - '@vitest/mocker': 2.1.2(@vitest/spy@2.1.2)(msw@2.4.9(typescript@5.6.2))(vite@5.4.8(@types/node@22.7.4)(terser@5.34.1)) + '@vitest/mocker': 2.1.2(@vitest/spy@2.1.2)(msw@2.6.6(@types/node@22.7.4)(typescript@5.6.2))(vite@5.4.11(@types/node@22.7.4)(terser@5.36.0)) '@vitest/pretty-format': 2.1.2 '@vitest/runner': 2.1.2 '@vitest/snapshot': 2.1.2 @@ -4746,14 +6245,92 @@ snapshots: tinyexec: 0.3.0 tinypool: 1.0.1 tinyrainbow: 1.2.0 - vite: 5.4.8(@types/node@22.7.4)(terser@5.34.1) - vite-node: 2.1.2(@types/node@22.7.4)(terser@5.34.1) + vite: 5.4.11(@types/node@22.7.4)(terser@5.36.0) + vite-node: 2.1.2(@types/node@22.7.4)(terser@5.36.0) why-is-node-running: 2.3.0 optionalDependencies: '@types/node': 22.7.4 - '@vitest/browser': 2.1.2(@vitest/spy@2.1.2)(playwright@1.48.0)(typescript@5.6.2)(vite@5.4.8(@types/node@22.7.4)(terser@5.34.1))(vitest@2.1.2) + '@vitest/browser': 2.1.2(@vitest/spy@2.1.6)(playwright@1.49.0)(typescript@5.6.2)(vite@5.4.8(@types/node@22.7.4)(terser@5.36.0))(vitest@2.1.2) + jsdom: 25.0.1 + transitivePeerDependencies: + - less + - lightningcss + - msw + - sass + - sass-embedded + - stylus + - sugarss + - supports-color + - terser + + vitest@2.1.6(@types/node@18.19.66)(@vitest/browser@2.1.6)(jsdom@25.0.1)(msw@2.6.6(@types/node@18.19.66)(typescript@5.7.2))(terser@5.36.0)(yaml@2.6.1): + dependencies: + '@vitest/expect': 2.1.6 + '@vitest/mocker': 2.1.6(msw@2.6.6(@types/node@18.19.66)(typescript@5.7.2))(vite@6.0.1(@types/node@18.19.66)(terser@5.36.0)(yaml@2.6.1)) + '@vitest/pretty-format': 2.1.6 + '@vitest/runner': 2.1.6 + '@vitest/snapshot': 2.1.6 + '@vitest/spy': 2.1.6 + '@vitest/utils': 2.1.6 + chai: 5.1.2 + debug: 4.3.7(supports-color@8.1.1) + expect-type: 1.1.0 + magic-string: 0.30.14 + pathe: 1.1.2 + std-env: 3.8.0 + tinybench: 2.9.0 + tinyexec: 0.3.1 + tinypool: 1.0.2 + tinyrainbow: 1.2.0 + vite: 6.0.1(@types/node@18.19.66)(terser@5.36.0)(yaml@2.6.1) + vite-node: 2.1.6(@types/node@18.19.66)(terser@5.36.0)(yaml@2.6.1) + why-is-node-running: 2.3.0 + optionalDependencies: + '@types/node': 18.19.66 + '@vitest/browser': 2.1.6(@types/node@18.19.66)(playwright@1.49.0)(typescript@5.7.2)(vite@6.0.1(@types/node@18.19.66)(terser@5.36.0)(yaml@2.6.1))(vitest@2.1.6) + jsdom: 25.0.1 + transitivePeerDependencies: + - jiti + - less + - lightningcss + - msw + - sass + - sass-embedded + - stylus + - sugarss + - supports-color + - terser + - tsx + - yaml + + vitest@2.1.6(@types/node@22.10.0)(@vitest/browser@2.1.6)(jsdom@25.0.1)(msw@2.6.6(@types/node@22.10.0)(typescript@5.7.2))(terser@5.36.0)(yaml@2.6.1): + dependencies: + '@vitest/expect': 2.1.6 + '@vitest/mocker': 2.1.6(msw@2.6.6(@types/node@22.10.0)(typescript@5.7.2))(vite@6.0.1(@types/node@22.10.0)(terser@5.36.0)(yaml@2.6.1)) + '@vitest/pretty-format': 2.1.6 + '@vitest/runner': 2.1.6 + '@vitest/snapshot': 2.1.6 + '@vitest/spy': 2.1.6 + '@vitest/utils': 2.1.6 + chai: 5.1.2 + debug: 4.3.7(supports-color@8.1.1) + expect-type: 1.1.0 + magic-string: 0.30.14 + pathe: 1.1.2 + std-env: 3.8.0 + tinybench: 2.9.0 + tinyexec: 0.3.1 + tinypool: 1.0.2 + tinyrainbow: 1.2.0 + vite: 6.0.1(@types/node@22.10.0)(terser@5.36.0)(yaml@2.6.1) + vite-node: 2.1.6(@types/node@22.10.0)(terser@5.36.0)(yaml@2.6.1) + why-is-node-running: 2.3.0 + optionalDependencies: + '@types/node': 22.10.0 + '@vitest/browser': 2.1.6(@types/node@22.10.0)(playwright@1.49.0)(typescript@5.7.2)(vite@5.4.11(@types/node@22.10.0)(terser@5.36.0))(vitest@2.1.6) jsdom: 25.0.1 transitivePeerDependencies: + - jiti - less - lightningcss - msw @@ -4763,6 +6340,8 @@ snapshots: - sugarss - supports-color - terser + - tsx + - yaml w3c-xmlserializer@5.0.0: dependencies: @@ -4786,6 +6365,14 @@ snapshots: webidl-conversions: 7.0.0 optional: true + which-typed-array@1.1.15: + dependencies: + available-typed-arrays: 1.0.7 + call-bind: 1.0.7 + for-each: 0.3.3 + gopd: 1.0.1 + has-tostringtag: 1.0.2 + which@1.3.1: dependencies: isexe: 2.0.0 @@ -4837,6 +6424,8 @@ snapshots: yaml@2.5.1: {} + yaml@2.6.1: {} + yargs-parser@21.1.1: {} yargs@17.7.2: