From 0727f474b74014e5334e1194aa47c8c294805591 Mon Sep 17 00:00:00 2001 From: Maciej Krajowski-Kukiel Date: Wed, 14 Jan 2026 16:00:52 +0100 Subject: [PATCH 1/8] add pos-cli exec liquid command --- bin/pos-cli-exec-liquid.js | 33 ++++++++++ bin/pos-cli-exec.js | 8 +++ bin/pos-cli.js | 1 + test/exec-liquid.test.js | 120 +++++++++++++++++++++++++++++++++++++ 4 files changed, 162 insertions(+) create mode 100644 bin/pos-cli-exec-liquid.js create mode 100644 bin/pos-cli-exec.js create mode 100644 test/exec-liquid.test.js diff --git a/bin/pos-cli-exec-liquid.js b/bin/pos-cli-exec-liquid.js new file mode 100644 index 00000000..ae7fb3ca --- /dev/null +++ b/bin/pos-cli-exec-liquid.js @@ -0,0 +1,33 @@ +#!/usr/bin/env node + +const { program } = require('commander'); +const Gateway = require('../lib/proxy'); +const fetchAuthData = require('../lib/settings').fetchSettings; +const logger = require('../lib/logger'); + +program + .name('pos-cli exec liquid') + .argument('', 'name of environment. Example: staging') + .argument('', 'liquid code to execute as string') + .action(async (environment, code) => { + const authData = fetchAuthData(environment, program); + const gateway = new Gateway(authData); + + try { + const response = await gateway.liquid({ content: code }); + + if (response.error) { + logger.Error(`Liquid execution error: ${response.error}`); + process.exit(1); + } + + if (response.result) { + logger.Print(response.result); + } + } catch (error) { + logger.Error(`Failed to execute liquid: ${error.message}`); + process.exit(1); + } + }); + +program.parse(process.argv); \ No newline at end of file diff --git a/bin/pos-cli-exec.js b/bin/pos-cli-exec.js new file mode 100644 index 00000000..ac16ba86 --- /dev/null +++ b/bin/pos-cli-exec.js @@ -0,0 +1,8 @@ +#!/usr/bin/env node + +const { program } = require('commander'); + +program + .name('pos-cli exec') + .command('liquid ', 'execute liquid code on instance') + .parse(process.argv); \ No newline at end of file diff --git a/bin/pos-cli.js b/bin/pos-cli.js index 78d4d467..1463d9b9 100755 --- a/bin/pos-cli.js +++ b/bin/pos-cli.js @@ -24,6 +24,7 @@ program .command('data', 'export, import or clean data on instance') .command('deploy ', 'deploy code to environment').alias('d') .command('env', 'manage environments') + .command('exec', 'execute code on instance') .command('gui', 'gui for content editor, graphql, logs') .command('generate', 'generates files') .command('init', 'initialize directory structure') diff --git a/test/exec-liquid.test.js b/test/exec-liquid.test.js new file mode 100644 index 00000000..09144c39 --- /dev/null +++ b/test/exec-liquid.test.js @@ -0,0 +1,120 @@ +jest.mock('../lib/apiRequest', () => ({ + apiRequest: jest.fn() +})); + +const Gateway = require('../lib/proxy'); + +describe('Gateway liquid method', () => { + const { apiRequest } = require('../lib/apiRequest'); + + test('calls apiRequest with correct parameters', async () => { + apiRequest.mockResolvedValue({ result: 'HELLO WORLD', error: null }); + + const gateway = new Gateway({ url: 'http://example.com', token: '1234', email: 'test@example.com' }); + const result = await gateway.liquid({ content: "{{ 'hello world' | upcase }}" }); + + expect(apiRequest).toHaveBeenCalledWith({ + method: 'POST', + uri: 'http://example.com/api/app_builder/liquid_exec', + json: { content: "{{ 'hello world' | upcase }}" }, + forever: true, + request: expect.any(Function) + }); + expect(result).toEqual({ result: 'HELLO WORLD', error: null }); + }); + + test('handles liquid execution error', async () => { + apiRequest.mockResolvedValue({ result: null, error: 'Liquid syntax error' }); + + const gateway = new Gateway({ url: 'http://example.com', token: '1234', email: 'test@example.com' }); + const result = await gateway.liquid({ content: "{{ 'hello world' | invalid_filter }}" }); + + expect(result).toEqual({ result: null, error: 'Liquid syntax error' }); + }); +}); + +describe('exec liquid CLI', () => { + const exec = require('./utils/exec'); + const cliPath = require('./utils/cliPath'); + + const env = Object.assign(process.env, { + CI: true, + MPKIT_URL: 'http://example.com', + MPKIT_TOKEN: '1234', + MPKIT_EMAIL: 'foo@example.com' + }); + + test('requires code argument', async () => { + const { code, stderr } = await exec(`${cliPath} exec liquid staging`, { env }); + + expect(code).toEqual(1); + expect(stderr).toMatch("error: missing required argument 'code'"); + }); +}); + +// Integration test - requires real platformOS instance +describe('exec liquid integration', () => { + const exec = require('./utils/exec'); + const cliPath = require('./utils/cliPath'); + + // Only run if real credentials are available + const hasRealCredentials = process.env.MPKIT_URL && + process.env.MPKIT_TOKEN && + !process.env.MPKIT_URL.includes('example.com'); + + (hasRealCredentials ? test : test.skip)('executes liquid code on real instance', async () => { + const { stdout, stderr, code } = await exec(`${cliPath} exec liquid dev "{{ 'hello' | upcase }}"`, { + env: process.env, + timeout: 30000 + }); + + expect(code).toEqual(0); + expect(stdout).toMatch('HELLO'); + expect(stderr).toBe(''); + }, 30000); + + (hasRealCredentials ? test : test.skip)('handles liquid syntax error on real instance', async () => { + const { stdout, stderr, code } = await exec(`${cliPath} exec liquid dev "{{ 'hello' | invalid_filter }}"`, { + env: process.env, + timeout: 30000 + }); + + expect(code).toEqual(1); + expect(stderr).toMatch('Liquid execution error'); + }, 30000); + + (hasRealCredentials ? test : test.skip)('executes {{ \'now\' | to_time }} and returns current time', async () => { + const beforeTime = new Date(); + const { stdout, stderr, code } = await exec(`${cliPath} exec liquid dev "{{ 'now' | to_time }}"`, { + env: process.env, + timeout: 30000 + }); + const afterTime = new Date(); + + expect(code).toEqual(0); + expect(stderr).toBe(''); + + // Parse the returned time - liquid to_time returns ISO format like "2023-01-01 12:00:00 +0000" + const returnedTimeStr = stdout.trim(); + const returnedTime = new Date(returnedTimeStr); + + // Check that the returned time is within 1 second of the current time + const timeDiff = Math.abs(returnedTime.getTime() - beforeTime.getTime()); + expect(timeDiff).toBeLessThanOrEqual(1000); // 1 second in milliseconds + + // Also check it's not in the future beyond our test window + const futureDiff = afterTime.getTime() - returnedTime.getTime(); + expect(futureDiff).toBeGreaterThanOrEqual(0); + expect(futureDiff).toBeLessThanOrEqual(1000); + }, 30000); + + (hasRealCredentials ? test : test.skip)('handles unknown tag error', async () => { + const { stdout, stderr, code } = await exec(`${cliPath} exec liquid dev "{% hello %}"`, { + env: process.env, + timeout: 30000 + }); + + expect(code).toEqual(1); + expect(stderr).toMatch('Liquid execution error: Liquid syntax error: Unknown tag \'hello\''); + }, 30000); +}); From 7bc508876c9da6a0437fb0367d4e10b97f3d2ec7 Mon Sep 17 00:00:00 2001 From: Maciej Krajowski-Kukiel Date: Wed, 14 Jan 2026 16:12:24 +0100 Subject: [PATCH 2/8] add pos-cli exec graphql command --- bin/pos-cli-exec-graphql.js | 33 +++++++++++ bin/pos-cli-exec.js | 1 + test/exec-graphql.test.js | 109 ++++++++++++++++++++++++++++++++++++ 3 files changed, 143 insertions(+) create mode 100644 bin/pos-cli-exec-graphql.js create mode 100644 test/exec-graphql.test.js diff --git a/bin/pos-cli-exec-graphql.js b/bin/pos-cli-exec-graphql.js new file mode 100644 index 00000000..5f0e548e --- /dev/null +++ b/bin/pos-cli-exec-graphql.js @@ -0,0 +1,33 @@ +#!/usr/bin/env node + +const { program } = require('commander'); +const Gateway = require('../lib/proxy'); +const fetchAuthData = require('../lib/settings').fetchSettings; +const logger = require('../lib/logger'); + +program + .name('pos-cli exec graphql') + .argument('', 'name of environment. Example: staging') + .argument('', 'graphql query to execute as string') + .action(async (environment, graphql) => { + const authData = fetchAuthData(environment, program); + const gateway = new Gateway(authData); + + try { + const response = await gateway.graph({ query: graphql }); + + if (response.errors) { + logger.Error(`GraphQL execution error: ${JSON.stringify(response.errors, null, 2)}`); + process.exit(1); + } + + if (response.data) { + logger.Print(JSON.stringify(response, null, 2)); + } + } catch (error) { + logger.Error(`Failed to execute graphql: ${error.message}`); + process.exit(1); + } + }); + +program.parse(process.argv); \ No newline at end of file diff --git a/bin/pos-cli-exec.js b/bin/pos-cli-exec.js index ac16ba86..e4df94fb 100644 --- a/bin/pos-cli-exec.js +++ b/bin/pos-cli-exec.js @@ -5,4 +5,5 @@ const { program } = require('commander'); program .name('pos-cli exec') .command('liquid ', 'execute liquid code on instance') + .command('graphql ', 'execute graphql query on instance') .parse(process.argv); \ No newline at end of file diff --git a/test/exec-graphql.test.js b/test/exec-graphql.test.js new file mode 100644 index 00000000..ac922abb --- /dev/null +++ b/test/exec-graphql.test.js @@ -0,0 +1,109 @@ +jest.mock('../lib/apiRequest', () => ({ + apiRequest: jest.fn() +})); + +const Gateway = require('../lib/proxy'); + +describe('Gateway graph method', () => { + const { apiRequest } = require('../lib/apiRequest'); + + test('calls apiRequest with correct parameters', async () => { + const mockResponse = { + "data": { + "records": { + "results": [] + } + } + }; + apiRequest.mockResolvedValue(mockResponse); + + const gateway = new Gateway({ url: 'http://example.com', token: '1234', email: 'test@example.com' }); + const query = '{ records(per_page: 20) { results { id } } }'; + const result = await gateway.graph({ query }); + + expect(apiRequest).toHaveBeenCalledWith({ + method: 'POST', + uri: 'http://example.com/api/graph', + json: { query }, + forever: true, + request: expect.any(Function) + }); + expect(result).toEqual(mockResponse); + }); + + test('handles graphql execution error', async () => { + const mockErrorResponse = { + errors: [ + { + message: 'Syntax Error: Expected Name, found ', + locations: [{ line: 1, column: 40 }] + } + ] + }; + apiRequest.mockResolvedValue(mockErrorResponse); + + const gateway = new Gateway({ url: 'http://example.com', token: '1234', email: 'test@example.com' }); + const query = '{ records(per_page: 20) { results { id } '; // Missing closing brace + const result = await gateway.graph({ query }); + + expect(result).toEqual(mockErrorResponse); + }); +}); + +describe('exec graphql CLI', () => { + const exec = require('./utils/exec'); + const cliPath = require('./utils/cliPath'); + + const env = Object.assign(process.env, { + CI: true, + MPKIT_URL: 'http://example.com', + MPKIT_TOKEN: '1234', + MPKIT_EMAIL: 'foo@example.com' + }); + + test('requires graphql argument', async () => { + const { code, stderr } = await exec(`${cliPath} exec graphql staging`, { env }); + + expect(code).toEqual(1); + expect(stderr).toMatch("error: missing required argument 'graphql'"); + }); +}); + +// Integration test - requires real platformOS instance +describe('exec graphql integration', () => { + const exec = require('./utils/exec'); + const cliPath = require('./utils/cliPath'); + + // Only run if real credentials are available + const hasRealCredentials = process.env.MPKIT_URL && + process.env.MPKIT_TOKEN && + !process.env.MPKIT_URL.includes('example.com'); + + (hasRealCredentials ? test : test.skip)('executes graphql query on real instance', async () => { + const query = '{ records(per_page: 20) { results { id } } }'; + const { stdout, stderr, code } = await exec(`${cliPath} exec graphql dev "${query}"`, { + env: process.env, + timeout: 30000 + }); + + expect(code).toEqual(0); + expect(stderr).toBe(''); + + // Parse JSON response + const response = JSON.parse(stdout); + expect(response).toHaveProperty('data'); + expect(response.data).toHaveProperty('records'); + expect(Array.isArray(response.data.records.results)).toBe(true); + }, 30000); + + (hasRealCredentials ? test : test.skip)('handles graphql syntax error on real instance', async () => { + const invalidQuery = '{ records(per_page: 20) { results { id } '; // Missing closing brace + const { stdout, stderr, code } = await exec(`${cliPath} exec graphql dev "${invalidQuery}"`, { + env: process.env, + timeout: 30000 + }); + + expect(code).toEqual(1); + expect(stderr).toMatch('GraphQL execution error'); + }, 30000); +}); \ No newline at end of file From 672cd003fba745d6eb75a8f50830a70161edda12 Mon Sep 17 00:00:00 2001 From: Maciej Krajowski-Kukiel Date: Wed, 14 Jan 2026 16:19:26 +0100 Subject: [PATCH 3/8] extra confirmation for production --- bin/pos-cli-exec-graphql.js | 28 ++++++++++++++++++++++++++++ bin/pos-cli-exec-liquid.js | 28 ++++++++++++++++++++++++++++ test/exec-graphql.test.js | 22 ++++++++++++++++++++++ test/exec-liquid.test.js | 22 ++++++++++++++++++++++ 4 files changed, 100 insertions(+) diff --git a/bin/pos-cli-exec-graphql.js b/bin/pos-cli-exec-graphql.js index 5f0e548e..f0d84fc6 100644 --- a/bin/pos-cli-exec-graphql.js +++ b/bin/pos-cli-exec-graphql.js @@ -1,10 +1,30 @@ #!/usr/bin/env node const { program } = require('commander'); +const prompts = require('prompts'); const Gateway = require('../lib/proxy'); const fetchAuthData = require('../lib/settings').fetchSettings; const logger = require('../lib/logger'); +const isProductionEnvironment = (environment) => { + return environment && (environment.toLowerCase().includes('prod') || environment.toLowerCase().includes('production')); +}; + +const confirmProductionExecution = async (environment) => { + logger.Warn(`WARNING: You are executing GraphQL on a production environment: ${environment}`); + logger.Warn('This could potentially modify production data or cause unintended side effects.'); + logger.Warn(''); + + const response = await prompts({ + type: 'confirm', + name: 'confirmed', + message: `Are you sure you want to continue executing on ${environment}?`, + initial: false + }); + + return response.confirmed; +}; + program .name('pos-cli exec graphql') .argument('', 'name of environment. Example: staging') @@ -13,6 +33,14 @@ program const authData = fetchAuthData(environment, program); const gateway = new Gateway(authData); + if (isProductionEnvironment(environment)) { + const confirmed = await confirmProductionExecution(environment); + if (!confirmed) { + logger.Info('Execution cancelled.'); + process.exit(0); + } + } + try { const response = await gateway.graph({ query: graphql }); diff --git a/bin/pos-cli-exec-liquid.js b/bin/pos-cli-exec-liquid.js index ae7fb3ca..0947277f 100644 --- a/bin/pos-cli-exec-liquid.js +++ b/bin/pos-cli-exec-liquid.js @@ -1,10 +1,30 @@ #!/usr/bin/env node const { program } = require('commander'); +const prompts = require('prompts'); const Gateway = require('../lib/proxy'); const fetchAuthData = require('../lib/settings').fetchSettings; const logger = require('../lib/logger'); +const isProductionEnvironment = (environment) => { + return environment && (environment.toLowerCase().includes('prod') || environment.toLowerCase().includes('production')); +}; + +const confirmProductionExecution = async (environment) => { + logger.Warn(`WARNING: You are executing liquid code on a production environment: ${environment}`); + logger.Warn('This could potentially modify production data or cause unintended side effects.'); + logger.Warn(''); + + const response = await prompts({ + type: 'confirm', + name: 'confirmed', + message: `Are you sure you want to continue executing on ${environment}?`, + initial: false + }); + + return response.confirmed; +}; + program .name('pos-cli exec liquid') .argument('', 'name of environment. Example: staging') @@ -13,6 +33,14 @@ program const authData = fetchAuthData(environment, program); const gateway = new Gateway(authData); + if (isProductionEnvironment(environment)) { + const confirmed = await confirmProductionExecution(environment); + if (!confirmed) { + logger.Info('Execution cancelled.'); + process.exit(0); + } + } + try { const response = await gateway.liquid({ content: code }); diff --git a/test/exec-graphql.test.js b/test/exec-graphql.test.js index ac922abb..2763a5a9 100644 --- a/test/exec-graphql.test.js +++ b/test/exec-graphql.test.js @@ -67,6 +67,28 @@ describe('exec graphql CLI', () => { expect(code).toEqual(1); expect(stderr).toMatch("error: missing required argument 'graphql'"); }); + + test('cancels execution on production environment when user says no', async () => { + const { code, stdout, stderr } = await exec(`echo "n" | ${cliPath} exec graphql production "{ records { results { id } } }"`, { env }); + + expect(code).toEqual(0); + expect(stdout).toMatch('Execution cancelled.'); + }); + + test('proceeds with execution on production environment when user confirms', async () => { + const { code, stdout, stderr } = await exec(`echo "y" | ${cliPath} exec graphql production "{ records { results { id } } }"`, { env }); + + // This will fail because the mock API isn't set up, but we want to check it doesn't cancel + expect(stdout).not.toMatch('Execution cancelled.'); + expect(stderr).not.toMatch('Execution cancelled.'); + }); + + test('does not prompt for non-production environments', async () => { + const { code, stdout, stderr } = await exec(`${cliPath} exec graphql staging "{ records { results { id } } }"`, { env }); + + expect(stdout).not.toMatch('WARNING: You are executing GraphQL on a production environment'); + expect(stdout).not.toMatch('Execution cancelled.'); + }); }); // Integration test - requires real platformOS instance diff --git a/test/exec-liquid.test.js b/test/exec-liquid.test.js index 09144c39..a8f64449 100644 --- a/test/exec-liquid.test.js +++ b/test/exec-liquid.test.js @@ -50,6 +50,28 @@ describe('exec liquid CLI', () => { expect(code).toEqual(1); expect(stderr).toMatch("error: missing required argument 'code'"); }); + + test('cancels execution on production environment when user says no', async () => { + const { code, stdout, stderr } = await exec(`echo "n" | ${cliPath} exec liquid production "{{ 'hello' | upcase }}"`, { env }); + + expect(code).toEqual(0); + expect(stdout).toMatch('Execution cancelled.'); + }); + + test('proceeds with execution on production environment when user confirms', async () => { + const { code, stdout, stderr } = await exec(`echo "y" | ${cliPath} exec liquid production "{{ 'hello' | upcase }}"`, { env }); + + // This will fail because the mock API isn't set up, but we want to check it doesn't cancel + expect(stdout).not.toMatch('Execution cancelled.'); + expect(stderr).not.toMatch('Execution cancelled.'); + }); + + test('does not prompt for non-production environments', async () => { + const { code, stdout, stderr } = await exec(`${cliPath} exec liquid staging "{{ 'hello' | upcase }}"`, { env }); + + expect(stdout).not.toMatch('WARNING: You are executing liquid code on a production environment'); + expect(stdout).not.toMatch('Execution cancelled.'); + }); }); // Integration test - requires real platformOS instance From f9defba03d23f6c77af0d16a7ea0c7b184d63891 Mon Sep 17 00:00:00 2001 From: Maciej Krajowski-Kukiel Date: Thu, 15 Jan 2026 17:35:36 +0100 Subject: [PATCH 4/8] add pos-cli test run command --- bin/pos-cli-test-run.js | 517 +++++++++++++++ bin/pos-cli-test.js | 10 + bin/pos-cli.js | 1 + lib/proxy.js | 8 + package.json | 4 +- .../correct_with_assets/app/assets/bar.js | 8 + .../app/lib/test/debug_log_test.liquid | 11 + .../app/lib/test/example_test.liquid | 4 + .../app/lib/test/failing_test.liquid | 4 + .../with-tests-module/app/pos-modules.json | 5 + .../app/pos-modules.lock.json | 5 + .../app/views/pages/index.liquid | 4 + .../public/graphql/sent_mails/search.graphql | 20 + .../public/graphql/test_files/count.graphql | 12 + .../public/graphql/test_files/search.graphql | 15 + .../tests/public/lib/assertions/blank.liquid | 7 + .../tests/public/lib/assertions/equal.liquid | 9 + .../lib/assertions/invalid_object.liquid | 7 + .../public/lib/assertions/not_presence.liquid | 7 + .../public/lib/assertions/not_true.liquid | 10 + .../lib/assertions/not_valid_object.liquid | 7 + .../assertions/object_contains_object.liquid | 20 + .../public/lib/assertions/presence.liquid | 7 + .../tests/public/lib/assertions/true.liquid | 10 + .../public/lib/assertions/valid_object.liquid | 8 + .../tests/public/lib/commands/run.liquid | 46 ++ .../public/lib/helpers/register_error.liquid | 27 + .../public/lib/queries/sent_mails/find.liquid | 8 + .../lib/queries/sent_mails/search.liquid | 4 + .../tests/public/translations/en/should.yml | 16 + .../public/views/layouts/mailer.html.liquid | 165 +++++ .../tests/public/views/layouts/test.liquid | 154 +++++ .../views/pages/_tests/index.html.liquid | 10 + .../public/views/pages/_tests/index.js.liquid | 28 + .../public/views/pages/_tests/run.html.liquid | 11 + .../public/views/pages/_tests/run.js.liquid | 13 + .../views/pages/_tests/run_async.js.liquid | 13 + .../views/pages/_tests/run_async.liquid | 10 + .../pages/_tests/sent_mails/index.liquid | 11 + .../views/pages/_tests/sent_mails/show.liquid | 11 + .../views/partials/sent_mails/list.liquid | 20 + .../partials/sent_mails/pagination.liquid | 66 ++ .../views/partials/sent_mails/show.liquid | 8 + .../public/views/partials/tests/index.liquid | 18 + .../views/partials/tests/show_html.liquid | 25 + .../views/partials/tests/show_js.liquid | 30 + .../views/partials/tests/show_log.liquid | 7 + .../views/partials/tests/show_log_js.liquid | 8 + .../views/partials/tests/show_text.liquid | 22 + .../partials/tests/test_report_html.liquid | 17 + .../partials/tests/test_report_text.liquid | 5 + .../modules/tests/template-values.json | 7 + .../without-tests-module/app/pos-modules.json | 3 + test/test-run.test.js | 87 +++ test/test.test.js | 612 ++++++++++++++++++ 55 files changed, 2181 insertions(+), 1 deletion(-) create mode 100755 bin/pos-cli-test-run.js create mode 100755 bin/pos-cli-test.js create mode 100644 test/fixtures/test/with-tests-module/app/lib/test/debug_log_test.liquid create mode 100644 test/fixtures/test/with-tests-module/app/lib/test/example_test.liquid create mode 100644 test/fixtures/test/with-tests-module/app/lib/test/failing_test.liquid create mode 100644 test/fixtures/test/with-tests-module/app/pos-modules.json create mode 100644 test/fixtures/test/with-tests-module/app/pos-modules.lock.json create mode 100644 test/fixtures/test/with-tests-module/app/views/pages/index.liquid create mode 100644 test/fixtures/test/with-tests-module/modules/tests/public/graphql/sent_mails/search.graphql create mode 100644 test/fixtures/test/with-tests-module/modules/tests/public/graphql/test_files/count.graphql create mode 100644 test/fixtures/test/with-tests-module/modules/tests/public/graphql/test_files/search.graphql create mode 100644 test/fixtures/test/with-tests-module/modules/tests/public/lib/assertions/blank.liquid create mode 100644 test/fixtures/test/with-tests-module/modules/tests/public/lib/assertions/equal.liquid create mode 100644 test/fixtures/test/with-tests-module/modules/tests/public/lib/assertions/invalid_object.liquid create mode 100644 test/fixtures/test/with-tests-module/modules/tests/public/lib/assertions/not_presence.liquid create mode 100644 test/fixtures/test/with-tests-module/modules/tests/public/lib/assertions/not_true.liquid create mode 100644 test/fixtures/test/with-tests-module/modules/tests/public/lib/assertions/not_valid_object.liquid create mode 100644 test/fixtures/test/with-tests-module/modules/tests/public/lib/assertions/object_contains_object.liquid create mode 100644 test/fixtures/test/with-tests-module/modules/tests/public/lib/assertions/presence.liquid create mode 100644 test/fixtures/test/with-tests-module/modules/tests/public/lib/assertions/true.liquid create mode 100644 test/fixtures/test/with-tests-module/modules/tests/public/lib/assertions/valid_object.liquid create mode 100644 test/fixtures/test/with-tests-module/modules/tests/public/lib/commands/run.liquid create mode 100644 test/fixtures/test/with-tests-module/modules/tests/public/lib/helpers/register_error.liquid create mode 100644 test/fixtures/test/with-tests-module/modules/tests/public/lib/queries/sent_mails/find.liquid create mode 100644 test/fixtures/test/with-tests-module/modules/tests/public/lib/queries/sent_mails/search.liquid create mode 100644 test/fixtures/test/with-tests-module/modules/tests/public/translations/en/should.yml create mode 100644 test/fixtures/test/with-tests-module/modules/tests/public/views/layouts/mailer.html.liquid create mode 100644 test/fixtures/test/with-tests-module/modules/tests/public/views/layouts/test.liquid create mode 100644 test/fixtures/test/with-tests-module/modules/tests/public/views/pages/_tests/index.html.liquid create mode 100644 test/fixtures/test/with-tests-module/modules/tests/public/views/pages/_tests/index.js.liquid create mode 100644 test/fixtures/test/with-tests-module/modules/tests/public/views/pages/_tests/run.html.liquid create mode 100644 test/fixtures/test/with-tests-module/modules/tests/public/views/pages/_tests/run.js.liquid create mode 100644 test/fixtures/test/with-tests-module/modules/tests/public/views/pages/_tests/run_async.js.liquid create mode 100644 test/fixtures/test/with-tests-module/modules/tests/public/views/pages/_tests/run_async.liquid create mode 100644 test/fixtures/test/with-tests-module/modules/tests/public/views/pages/_tests/sent_mails/index.liquid create mode 100644 test/fixtures/test/with-tests-module/modules/tests/public/views/pages/_tests/sent_mails/show.liquid create mode 100644 test/fixtures/test/with-tests-module/modules/tests/public/views/partials/sent_mails/list.liquid create mode 100644 test/fixtures/test/with-tests-module/modules/tests/public/views/partials/sent_mails/pagination.liquid create mode 100644 test/fixtures/test/with-tests-module/modules/tests/public/views/partials/sent_mails/show.liquid create mode 100644 test/fixtures/test/with-tests-module/modules/tests/public/views/partials/tests/index.liquid create mode 100644 test/fixtures/test/with-tests-module/modules/tests/public/views/partials/tests/show_html.liquid create mode 100644 test/fixtures/test/with-tests-module/modules/tests/public/views/partials/tests/show_js.liquid create mode 100644 test/fixtures/test/with-tests-module/modules/tests/public/views/partials/tests/show_log.liquid create mode 100644 test/fixtures/test/with-tests-module/modules/tests/public/views/partials/tests/show_log_js.liquid create mode 100644 test/fixtures/test/with-tests-module/modules/tests/public/views/partials/tests/show_text.liquid create mode 100644 test/fixtures/test/with-tests-module/modules/tests/public/views/partials/tests/test_report_html.liquid create mode 100644 test/fixtures/test/with-tests-module/modules/tests/public/views/partials/tests/test_report_text.liquid create mode 100644 test/fixtures/test/with-tests-module/modules/tests/template-values.json create mode 100644 test/fixtures/test/without-tests-module/app/pos-modules.json create mode 100644 test/test-run.test.js create mode 100644 test/test.test.js diff --git a/bin/pos-cli-test-run.js b/bin/pos-cli-test-run.js new file mode 100755 index 00000000..23efe39f --- /dev/null +++ b/bin/pos-cli-test-run.js @@ -0,0 +1,517 @@ +#!/usr/bin/env node + +const EventEmitter = require('events'); +const { program } = require('commander'); +const chalk = require('chalk'); +const Gateway = require('../lib/proxy'); +const fetchAuthData = require('../lib/settings').fetchSettings; +const logger = require('../lib/logger'); + +const formatDuration = (ms) => { + if (ms < 1000) return `${ms}ms`; + if (ms < 60000) return `${(ms / 1000).toFixed(2)}s`; + const minutes = Math.floor(ms / 60000); + const seconds = ((ms % 60000) / 1000).toFixed(2); + return `${minutes}m ${seconds}s`; +}; + +class TestLogStream extends EventEmitter { + constructor(authData, timeout = 30000, testRunId = null, testName = null) { + super(); + this.authData = authData; + this.gateway = new Gateway(authData); + this.timeout = timeout; + this.testRunId = testRunId; + this.testName = testName; // The test_name from run_async.js (e.g., "liquid_test_xxxxx") + this.startTime = Date.now(); + this.testStarted = false; + this.completed = false; + this.messageBuffer = ''; // Buffer for multi-line messages + this.lastMessageTime = 0; + this.liquidTestSeen = false; + this.liquidTestTime = 0; + } + + isValidTestSummaryJson(message) { + try { + // Parse as JSON + const obj = JSON.parse(message); + + // Check if it has test summary structure + const hasTestsArray = Array.isArray(obj.tests); + const hasSuccessField = typeof obj.success === 'boolean'; + const hasTotalField = typeof obj.total_tests === 'number' || typeof obj.total === 'number'; + const hasDurationField = typeof obj.duration_ms === 'number' || typeof obj.duration === 'number'; + + // If we have a testRunId, check that it matches + if (this.testRunId && obj.test_run_id !== this.testRunId) { + return false; + } + + return hasTestsArray && hasSuccessField && (hasTotalField || hasDurationField); + } catch (e) { + return false; + } + } + + start() { + this.intervalId = setInterval(() => this.fetchLogs(), 2000); + this.timeoutId = setTimeout(() => { + this.emit('timeout'); + this.stop(); + }, this.timeout); + + logger.Debug('Starting test log streaming...'); + } + + stop() { + if (this.intervalId) { + clearInterval(this.intervalId); + this.intervalId = null; + } + if (this.timeoutId) { + clearTimeout(this.timeoutId); + this.timeoutId = null; + } + } + + fetchLogs() { + this.gateway.logs({ lastId: this.lastId || 0 }) + .then((response) => { + const logs = response && response.logs; + if (!logs) return; + + for (let k in logs) { + const row = logs[k]; + + if (this.lastId && row.id <= this.lastId) continue; + this.lastId = row.id; + + logger.Debug(`[DEBUG] Processing log entry: ${JSON.stringify(row)}`); + this.processLogMessage(row); + } + }) + .catch(error => { + logger.Debug(`Error fetching logs: ${error.message}`); + }); + } + + processLogMessage(row) { + const message = row.message || ''; + const logType = row.error_type || ''; + const fullMessage = typeof message === 'string' ? message : JSON.stringify(message); + const summaryType = this.testName ? `${this.testName} SUMMARY` : null; + + // Only process logs that are related to our test run + // If we have a testName, filter by it + if (this.testName) { + // Check for test start - look for "Starting unit tests" or "Starting test run" with matching type + if (logType === this.testName && (fullMessage.includes('Starting unit tests') || fullMessage.includes('Starting test run')) && !this.testStarted) { + this.testStarted = true; + this.emit('testStarted'); + return; // Don't emit this as a log + } + + // Check for test completion - look for log with type " SUMMARY" + if (!this.completed && logType === summaryType && this.isValidTestSummaryJson(fullMessage)) { + if (!this.liquidTestSeen) { + this.liquidTestSeen = true; + this.liquidTestTime = Date.now(); + } + + // Parse as JSON summary + const testResults = this.parseJsonSummary(fullMessage); + if (testResults) { + this.completed = true; + this.emit('testCompleted', testResults); + this.stop(); + return; + } + } + + // Only show logs after test started and before completion + if (this.testStarted && !this.completed) { + // Determine if this is a test log (type matches test_name) or debug log (any other type) + const isTestLog = logType === this.testName; + this.emit('testLog', row, isTestLog); + } + } else { + // Legacy behavior when testName is not available + // Check for test start + if (fullMessage.includes('Starting unit tests') && !this.testStarted) { + this.testStarted = true; + this.emit('testStarted'); + } + + // Check for test completion - look for the JSON summary format (tests module 1.1.1+) + if (!this.completed && this.isValidTestSummaryJson(fullMessage)) { + if (!this.liquidTestSeen) { + this.liquidTestSeen = true; + this.liquidTestTime = Date.now(); + } + + // Parse as JSON summary + const testResults = this.parseJsonSummary(fullMessage); + if (testResults) { + this.completed = true; + this.emit('testCompleted', testResults); + this.stop(); + return; + } + } + + // Also show individual test logs + if (this.testStarted && !this.completed) { + this.emit('testLog', row, true); + } + } + } + + parseJsonSummary(message) { + try { + // Parse JSON (already validated as valid by isValidTestSummaryJson) + const summary = JSON.parse(message); + + // Map fields from tests module format to our internal format + const total = summary.total_tests || summary.total || 0; + const assertions = summary.total_assertions || summary.assertions || 0; + const duration = summary.duration_ms || summary.duration || 0; + + // Calculate passed/failed from success flag + let passed = 0; + let failed = 0; + + if (summary.success === true) { + passed = total; + failed = summary.total_errors || 0; + } else if (summary.success === false) { + failed = summary.total_errors || 0; + passed = Math.max(0, total - failed); + } + + // Map individual tests + const tests = []; + if (summary.tests && Array.isArray(summary.tests)) { + summary.tests.forEach(test => { + const testItem = { + name: test.name || 'Unknown test', + status: test.success ? 'passed' : 'failed', + passed: test.success, + assertions: test.assertions + }; + + // Handle errors - could be object with error details or array + if (test.errors) { + if (typeof test.errors === 'object' && Object.keys(test.errors).length > 0) { + testItem.error = JSON.stringify(test.errors); + } else if (Array.isArray(test.errors) && test.errors.length > 0) { + testItem.errors = test.errors; + } + } + + tests.push(testItem); + }); + } + + return { + total, + passed, + failed, + assertions, + tests, + duration + }; + } catch (error) { + logger.Debug(`[DEBUG] Failed to parse JSON summary: ${error.message}`); + return null; + } + } + + +} + +const printTestResults = (results, duration) => { + const { passed = 0, failed = 0, total = 0, tests = [] } = results; + + if (tests && tests.length > 0) { + logger.Info('\nTest Results:', { hideTimestamp: true }); + logger.Info('─'.repeat(60), { hideTimestamp: true }); + + tests.forEach(test => { + const status = test.status || (test.passed ? 'passed' : 'failed'); + const icon = status === 'passed' ? '✓' : '✗'; + const name = test.name || test.test_name || 'Unknown test'; + + if (status === 'passed') { + logger.Success(` ${icon} ${name}`, { hideTimestamp: true }); + } else { + logger.Error(` ${icon} ${name}`, { hideTimestamp: true, exit: false, notify: false }); + if (test.error || test.message) { + logger.Error(` Error: ${test.error || test.message}`, { hideTimestamp: true, exit: false, notify: false }); + } + if (test.errors && Array.isArray(test.errors)) { + test.errors.forEach(err => { + logger.Error(` - ${err.message || err}`, { hideTimestamp: true, exit: false, notify: false }); + }); + } + } + }); + + logger.Info('─'.repeat(60), { hideTimestamp: true }); + } + + // Print summary + const totalTests = total || (passed + failed); + const summary = []; + if (passed > 0) summary.push(`${passed} passed`); + if (failed > 0) summary.push(`${failed} failed`); + + const summaryText = summary.length > 0 ? summary.join(', ') : 'No tests executed'; + const durationText = duration ? ` in ${formatDuration(duration)}` : ''; + + if (failed > 0) { + logger.Error(`\n${summaryText} (${totalTests} total)${durationText}`, { hideTimestamp: true, exit: false, notify: false }); + } else if (passed > 0) { + logger.Success(`\n${summaryText} (${totalTests} total)${durationText}`, { hideTimestamp: true }); + } else { + logger.Warn(`\n${summaryText}${durationText}`, { hideTimestamp: true }); + } + + return failed === 0; +}; + +const transformTestResponse = (response) => { + // Transform API response format to the format expected by printTestResults + // API returns: { success, total_tests, total_assertions, total_errors, duration_ms, tests: [{name, success, assertions, errors}] } + // printTestResults expects: { passed, failed, total, tests: [{name, status, passed, error}], duration } + + const total = response.total_tests || response.total || 0; + const totalErrors = response.total_errors || 0; + + let passed = 0; + let failed = 0; + + if (response.success === true) { + passed = total; + failed = totalErrors; + } else { + failed = totalErrors || (total > 0 ? 1 : 0); + passed = Math.max(0, total - failed); + } + + const tests = []; + if (response.tests && Array.isArray(response.tests)) { + response.tests.forEach(test => { + const testItem = { + name: test.name || 'Unknown test', + status: test.success ? 'passed' : 'failed', + passed: test.success, + assertions: test.assertions + }; + + // Handle errors - could be object with error details or array + if (test.errors) { + if (typeof test.errors === 'object' && Object.keys(test.errors).length > 0) { + testItem.error = JSON.stringify(test.errors); + } else if (Array.isArray(test.errors) && test.errors.length > 0) { + testItem.errors = test.errors; + } + } + + tests.push(testItem); + }); + } + + return { + total, + passed, + failed, + assertions: response.total_assertions || 0, + tests, + duration: response.duration_ms || response.duration || 0 + }; +}; + +const runSingleTest = async (gateway, name) => { + const startTime = Date.now(); + + try { + const response = await gateway.test(name); + const duration = Date.now() - startTime; + + if (!response) { + logger.Error('No response received from test endpoint'); + return false; + } + + // Handle error response (not test failure, but actual error) + if (response.error && !response.tests) { + logger.Error(`Test error: ${response.error}`); + return false; + } + + // Handle the JSON response from /_tests/run.js + if (typeof response === 'object') { + const transformedResults = transformTestResponse(response); + return printTestResults(transformedResults, transformedResults.duration || duration); + } + + // Fallback for unexpected response format + logger.Print(JSON.stringify(response, null, 2)); + return true; + } catch (error) { + // Handle HTTP 500 errors that contain valid test results + // The test endpoint returns 500 when tests fail, but includes results in the body + const errorMessage = error.message || ''; + const jsonMatch = errorMessage.match(/^(\d+)\s*-\s*(\{.+\})$/); + + if (jsonMatch) { + try { + const response = JSON.parse(jsonMatch[2]); + if (response.tests && Array.isArray(response.tests)) { + const transformedResults = transformTestResponse(response); + return printTestResults(transformedResults, transformedResults.duration); + } + } catch (parseError) { + // Fall through to generic error handling + } + } + + logger.Error(`Failed to execute test: ${error.message}`); + return false; + } +}; + +const formatTestLog = (logRow, isTestLog) => { + const message = logRow.message || ''; + const logType = logRow.type || ''; + const fullMessage = typeof message === 'string' ? message : JSON.stringify(message); + const cleanMessage = fullMessage.replace(/\n$/, ''); + + // Check if this message contains a path to a test file + const hasTestPath = /app\/lib\/test\/|modules\/.*\/test\/|\.liquid/.test(cleanMessage); + + if (isTestLog && hasTestPath) { + // Test log with path - highlight it (new test indicator) + return chalk.cyan.bold(`▶ ${cleanMessage}`); + } else if (isTestLog) { + // Test log without path - normal display + return chalk.white(` ${cleanMessage}`); + } else { + // Debug log (type != test_name) - dim display + return chalk.dim(` [debug:${logType}] ${cleanMessage}`); + } +}; + +const runAllTests = async (gateway, authData) => { + return new Promise((resolve, reject) => { + let resolved = false; + + // Start the test run and get the test_run_id and test_name + logger.Info('Starting test run...'); + gateway.testRunAsync().then(testRunResponse => { + const testRunId = testRunResponse && testRunResponse.test_run_id; + const testName = testRunResponse && testRunResponse.test_name; + + logger.Debug(`Test run started with test_name: ${testName}`); + + const stream = new TestLogStream(authData, 180000, testRunId, testName); // 3 minute timeout for async tests + + const finish = (result) => { + if (resolved) return; // Prevent multiple resolutions + resolved = true; + stream.stop(); + resolve(result); + }; + + stream.on('testStarted', () => { + logger.Info('Test execution started...', { hideTimestamp: true }); + }); + + stream.on('testLog', (logRow, isTestLog) => { + // Display individual test logs with syntax highlighting + const message = logRow.message || ''; + const fullMessage = typeof message === 'string' ? message : JSON.stringify(message); + + // Don't show JSON summary messages as logs - they will be processed as completion signals + if (stream.isValidTestSummaryJson(fullMessage)) { + return; + } + + // Format and display the log with appropriate highlighting + const formattedLog = formatTestLog(logRow, isTestLog); + console.log(formattedLog); + }); + + stream.on('testCompleted', (results) => { + logger.Info('Test execution completed, processing results...', { hideTimestamp: true }); + const success = printTestResults(results, results.duration); + finish(success); + }); + + stream.on('timeout', () => { + logger.Error('Test execution timed out - no completion message received within 3 minutes'); + finish(false); + }); + + // Start listening for logs + stream.start(); + }).catch(error => { + logger.Error(`Failed to start test execution: ${error.message}`); + resolve(false); + }); + }); +}; + +program + .name('pos-cli test run') + .argument('', 'name of environment. Example: staging') + .argument('[name]', 'name of the test to execute (runs all tests if not provided)') + .action(async (environment, name) => { + const authData = fetchAuthData(environment, program); + const gateway = new Gateway(authData); + + try { + // Display the instance URL for clarity + logger.Info(`Running tests on: ${authData.url}`, { hideTimestamp: true }); + // First check if tests module is installed + const modules = await gateway.listModules(); + const hasTestsModule = modules.data && modules.data.some(module => module === 'tests'); + + if (!hasTestsModule) { + logger.Error(`Tests module not found. Please install the tests module: + pos-cli modules install tests + pos-cli deploy ${environment} +Then re-run the command.`); + process.exit(1); + } + + let success; + if (name) { + // Run single test with .js format + success = await runSingleTest(gateway, name); + } else { + // Run all tests via run_async with log streaming + success = await runAllTests(gateway, authData); + } + + process.exit(success ? 0 : 1); + } catch (error) { + logger.Error(`Failed to execute test: ${error.message}`); + process.exit(1); + } + }); + +// Only parse arguments if this file is run directly, not when required for testing +if (require.main === module) { + program.parse(process.argv); +} + +// Export for testing +module.exports = { + TestLogStream, + formatDuration, + formatTestLog, + printTestResults, + runAllTests +}; diff --git a/bin/pos-cli-test.js b/bin/pos-cli-test.js new file mode 100755 index 00000000..19a51cd8 --- /dev/null +++ b/bin/pos-cli-test.js @@ -0,0 +1,10 @@ +#!/usr/bin/env node + +const { program } = require('commander'); + +program.showHelpAfterError(); +program + .name('pos-cli test') + .command('run [name]', 'run tests on instance (all tests if name not provided)') + .command('list ', 'list available tests on instance') + .parse(process.argv); diff --git a/bin/pos-cli.js b/bin/pos-cli.js index 1463d9b9..ed111314 100755 --- a/bin/pos-cli.js +++ b/bin/pos-cli.js @@ -34,5 +34,6 @@ program .command('modules', 'manage modules') .command('pull', 'export app data to a zip file') .command('sync ', 'update environment on file change').alias('s') + .command('test', 'run tests on instance') .command('uploads', 'manage uploads files') .parse(process.argv); diff --git a/lib/proxy.js b/lib/proxy.js index d09a53f0..4aa997d5 100644 --- a/lib/proxy.js +++ b/lib/proxy.js @@ -126,6 +126,14 @@ class Gateway { return this.apiRequest({ method: 'POST', uri: `${this.api_url}/liquid_exec`, json, forever: true }); } + test(name) { + return this.apiRequest({ uri: `${this.url}/_tests/run.js?name=${name}` }); + } + + testRunAsync() { + return this.apiRequest({ uri: `${this.url}/_tests/run_async` }); + } + listModules() { return this.apiRequest({ uri: `${this.api_url}/installed_modules` }); } diff --git a/package.json b/package.json index ac39bac6..e002cfbc 100644 --- a/package.json +++ b/package.json @@ -79,7 +79,9 @@ "pos-cli-logsv2-search": "bin/pos-cli-logsv2-search.js", "pos-cli-migrations": "bin/pos-cli-migrations.js", "pos-cli-modules": "bin/pos-cli-modules.js", - "pos-cli-sync": "bin/pos-cli-sync.js" + "pos-cli-sync": "bin/pos-cli-sync.js", + "pos-cli-test": "bin/pos-cli-test.js", + "pos-cli-test-run": "bin/pos-cli-test-run.js" }, "repository": "platform-OS/pos-cli", "license": "CC BY 3.0", diff --git a/test/fixtures/deploy/correct_with_assets/app/assets/bar.js b/test/fixtures/deploy/correct_with_assets/app/assets/bar.js index a693db7f..7f517ba1 100644 --- a/test/fixtures/deploy/correct_with_assets/app/assets/bar.js +++ b/test/fixtures/deploy/correct_with_assets/app/assets/bar.js @@ -1 +1,9 @@ // Test asset file +x +x +x +x +x +x +x +x diff --git a/test/fixtures/test/with-tests-module/app/lib/test/debug_log_test.liquid b/test/fixtures/test/with-tests-module/app/lib/test/debug_log_test.liquid new file mode 100644 index 00000000..e484d1c2 --- /dev/null +++ b/test/fixtures/test/with-tests-module/app/lib/test/debug_log_test.liquid @@ -0,0 +1,11 @@ +{% liquid + assign var = '{"field": 1 }' | parse_json + + # This debug log has a different type than the test_name, so it should be dimmed + log 'Debug: checking variable value', type: 'debug' + + include 'modules/tests/assertions/equal', contract: contract, given: var.field, expected: 1, field_name: 'field' + + # Another debug log with custom type + log 'Custom debug message from test', type: 'custom_debug' +%} diff --git a/test/fixtures/test/with-tests-module/app/lib/test/example_test.liquid b/test/fixtures/test/with-tests-module/app/lib/test/example_test.liquid new file mode 100644 index 00000000..39fc990d --- /dev/null +++ b/test/fixtures/test/with-tests-module/app/lib/test/example_test.liquid @@ -0,0 +1,4 @@ +{% liquid + assign var = '{"field": 1 }' | parse_json + include 'modules/tests/assertions/equal', contract: contract, given: var.field, expected: 1, field_name: 'field' +%} \ No newline at end of file diff --git a/test/fixtures/test/with-tests-module/app/lib/test/failing_test.liquid b/test/fixtures/test/with-tests-module/app/lib/test/failing_test.liquid new file mode 100644 index 00000000..17c5c587 --- /dev/null +++ b/test/fixtures/test/with-tests-module/app/lib/test/failing_test.liquid @@ -0,0 +1,4 @@ +{% liquid + assign var = '{"field": 1 }' | parse_json + include 'modules/tests/assertions/equal', contract: contract, given: var.field, expected: 2, field_name: 'field' +%} diff --git a/test/fixtures/test/with-tests-module/app/pos-modules.json b/test/fixtures/test/with-tests-module/app/pos-modules.json new file mode 100644 index 00000000..ee3202bf --- /dev/null +++ b/test/fixtures/test/with-tests-module/app/pos-modules.json @@ -0,0 +1,5 @@ +{ + "modules": { + "tests": "1.2.0" + } +} \ No newline at end of file diff --git a/test/fixtures/test/with-tests-module/app/pos-modules.lock.json b/test/fixtures/test/with-tests-module/app/pos-modules.lock.json new file mode 100644 index 00000000..ee3202bf --- /dev/null +++ b/test/fixtures/test/with-tests-module/app/pos-modules.lock.json @@ -0,0 +1,5 @@ +{ + "modules": { + "tests": "1.2.0" + } +} \ No newline at end of file diff --git a/test/fixtures/test/with-tests-module/app/views/pages/index.liquid b/test/fixtures/test/with-tests-module/app/views/pages/index.liquid new file mode 100644 index 00000000..ddae8958 --- /dev/null +++ b/test/fixtures/test/with-tests-module/app/views/pages/index.liquid @@ -0,0 +1,4 @@ +--- +slug: test-fixture-index +--- +Test fixture placeholder page diff --git a/test/fixtures/test/with-tests-module/modules/tests/public/graphql/sent_mails/search.graphql b/test/fixtures/test/with-tests-module/modules/tests/public/graphql/sent_mails/search.graphql new file mode 100644 index 00000000..7ea4a0b2 --- /dev/null +++ b/test/fixtures/test/with-tests-module/modules/tests/public/graphql/sent_mails/search.graphql @@ -0,0 +1,20 @@ +query mails($id: ID, $limit: Int = 20, $page: Int = 1) { + mails: admin_sent_notifications( + per_page: $limit + page: $page + filter: { id: { value: $id }, notification_type: { value: EMAIL } } + sort: { created_at: { order: DESC } } + ) { + total_entries + total_pages + current_page + has_previous_page + has_next_page + results { + id + created_at + content + options + } + } +} diff --git a/test/fixtures/test/with-tests-module/modules/tests/public/graphql/test_files/count.graphql b/test/fixtures/test/with-tests-module/modules/tests/public/graphql/test_files/count.graphql new file mode 100644 index 00000000..d507b054 --- /dev/null +++ b/test/fixtures/test/with-tests-module/modules/tests/public/graphql/test_files/count.graphql @@ -0,0 +1,12 @@ +query count_test_partials($path: String, $per_page: Int!){ + admin_liquid_partials( + per_page: $per_page + filter: { + path: { ends_with: "_test", contains: $path } + } + + ) { + total_entries + total_pages + } +} diff --git a/test/fixtures/test/with-tests-module/modules/tests/public/graphql/test_files/search.graphql b/test/fixtures/test/with-tests-module/modules/tests/public/graphql/test_files/search.graphql new file mode 100644 index 00000000..0b6bf71b --- /dev/null +++ b/test/fixtures/test/with-tests-module/modules/tests/public/graphql/test_files/search.graphql @@ -0,0 +1,15 @@ +query test_partials($path: String, $per_page: Int = 100, $page: Int = 1){ + admin_liquid_partials( + per_page: $per_page + page: $page + filter: { + path: { ends_with: "_test", contains: $path } + } + + ) { + total_entries + results { + path + } + } +} diff --git a/test/fixtures/test/with-tests-module/modules/tests/public/lib/assertions/blank.liquid b/test/fixtures/test/with-tests-module/modules/tests/public/lib/assertions/blank.liquid new file mode 100644 index 00000000..3a83aff5 --- /dev/null +++ b/test/fixtures/test/with-tests-module/modules/tests/public/lib/assertions/blank.liquid @@ -0,0 +1,7 @@ +{% liquid + hash_assign contract['total'] = contract['total'] | plus: 1 + unless object[field_name] == blank + function contract = 'modules/tests/helpers/register_error', contract: contract, field_name: field_name, key: 'modules/tests/should.be_blank', message: null + endunless + return contract +%} diff --git a/test/fixtures/test/with-tests-module/modules/tests/public/lib/assertions/equal.liquid b/test/fixtures/test/with-tests-module/modules/tests/public/lib/assertions/equal.liquid new file mode 100644 index 00000000..33a4401e --- /dev/null +++ b/test/fixtures/test/with-tests-module/modules/tests/public/lib/assertions/equal.liquid @@ -0,0 +1,9 @@ +{% liquid + hash_assign contract['total'] = contract['total'] | plus: 1 + + if given != expected + assign msg = 'modules/tests/should.equal' | t: given: given, expected: expected + function contract = 'modules/tests/helpers/register_error', contract: contract, field_name: field_name, message: msg + endif + return contract +%} diff --git a/test/fixtures/test/with-tests-module/modules/tests/public/lib/assertions/invalid_object.liquid b/test/fixtures/test/with-tests-module/modules/tests/public/lib/assertions/invalid_object.liquid new file mode 100644 index 00000000..ed73da97 --- /dev/null +++ b/test/fixtures/test/with-tests-module/modules/tests/public/lib/assertions/invalid_object.liquid @@ -0,0 +1,7 @@ +{% liquid + hash_assign contract['total'] = contract['total'] | plus: 1 + if object.valid + function contract = 'modules/tests/helpers/register_error', contract: contract, field_name: field_name, message: object.errors + endif + return contract +%} diff --git a/test/fixtures/test/with-tests-module/modules/tests/public/lib/assertions/not_presence.liquid b/test/fixtures/test/with-tests-module/modules/tests/public/lib/assertions/not_presence.liquid new file mode 100644 index 00000000..f9806eb6 --- /dev/null +++ b/test/fixtures/test/with-tests-module/modules/tests/public/lib/assertions/not_presence.liquid @@ -0,0 +1,7 @@ +{% liquid + hash_assign contract['total'] = contract['total'] | plus: 1 + if object[field_name] != blank + function contract = 'modules/tests/helpers/register_error', contract: contract, field_name: field_name, key: 'modules/tests/should.not.be_blank' + endif + return contract +%} diff --git a/test/fixtures/test/with-tests-module/modules/tests/public/lib/assertions/not_true.liquid b/test/fixtures/test/with-tests-module/modules/tests/public/lib/assertions/not_true.liquid new file mode 100644 index 00000000..61b055ac --- /dev/null +++ b/test/fixtures/test/with-tests-module/modules/tests/public/lib/assertions/not_true.liquid @@ -0,0 +1,10 @@ +{% liquid + hash_assign contract['total'] = contract['total'] | plus: 1 + + assign value = value | default: object[field_name] + if value + function contract = 'modules/tests/helpers/register_error', contract: contract, field_name: field_name, key: 'modules/tests/should.not.be_true' + endif + + return contract +%} diff --git a/test/fixtures/test/with-tests-module/modules/tests/public/lib/assertions/not_valid_object.liquid b/test/fixtures/test/with-tests-module/modules/tests/public/lib/assertions/not_valid_object.liquid new file mode 100644 index 00000000..5268eb4c --- /dev/null +++ b/test/fixtures/test/with-tests-module/modules/tests/public/lib/assertions/not_valid_object.liquid @@ -0,0 +1,7 @@ +{% liquid + hash_assign contract['total'] = contract['total'] | plus: 1 + if object.valid == true + function contract = 'modules/tests/helpers/register_error', contract: contract, field_name: field_name, key: 'modules/tests/should.not.be_valid' + endif + return contract +%} diff --git a/test/fixtures/test/with-tests-module/modules/tests/public/lib/assertions/object_contains_object.liquid b/test/fixtures/test/with-tests-module/modules/tests/public/lib/assertions/object_contains_object.liquid new file mode 100644 index 00000000..15eec117 --- /dev/null +++ b/test/fixtures/test/with-tests-module/modules/tests/public/lib/assertions/object_contains_object.liquid @@ -0,0 +1,20 @@ +{% liquid + hash_assign contract['total'] = contract['total'] | plus: 1 + + for property in object_contains + assign key = property[0] + assign value = property[1] + + if given[key] == blank + assign message = 'modules/tests/should.have_key' | t: field_name: field_name + function contract = 'modules/tests/helpers/register_error', contract: contract, field_name: key, message: message + else + if given[key] != value + assign message = 'modules/tests/should.have_key_with_value' | t: value: value + function contract = 'modules/tests/helpers/register_error', contract: contract, field_name: key, message: message + endif + endif + endfor + + return contract +%} diff --git a/test/fixtures/test/with-tests-module/modules/tests/public/lib/assertions/presence.liquid b/test/fixtures/test/with-tests-module/modules/tests/public/lib/assertions/presence.liquid new file mode 100644 index 00000000..10f1ab7e --- /dev/null +++ b/test/fixtures/test/with-tests-module/modules/tests/public/lib/assertions/presence.liquid @@ -0,0 +1,7 @@ +{% liquid + hash_assign contract['total'] = contract['total'] | plus: 1 + if object[field_name] == blank + function contract = 'modules/tests/helpers/register_error', contract: contract, field_name: field_name, key: 'modules/tests/should.not.be_blank' + endif + return contract +%} diff --git a/test/fixtures/test/with-tests-module/modules/tests/public/lib/assertions/true.liquid b/test/fixtures/test/with-tests-module/modules/tests/public/lib/assertions/true.liquid new file mode 100644 index 00000000..daac6d3b --- /dev/null +++ b/test/fixtures/test/with-tests-module/modules/tests/public/lib/assertions/true.liquid @@ -0,0 +1,10 @@ +{% liquid + hash_assign contract['total'] = contract['total'] | plus: 1 + + assign value = value | default: object[field_name] + unless value + function contract = 'modules/tests/helpers/register_error', contract: contract, field_name: field_name, key: 'modules/tests/should.be_true' + endunless + + return contract +%} diff --git a/test/fixtures/test/with-tests-module/modules/tests/public/lib/assertions/valid_object.liquid b/test/fixtures/test/with-tests-module/modules/tests/public/lib/assertions/valid_object.liquid new file mode 100644 index 00000000..a4c44f2b --- /dev/null +++ b/test/fixtures/test/with-tests-module/modules/tests/public/lib/assertions/valid_object.liquid @@ -0,0 +1,8 @@ +{% liquid + hash_assign contract['total'] = contract['total'] | plus: 1 + if object.valid != true + assign message = 'should be valid: ' | append: object.errors + function contract = 'modules/tests/helpers/register_error', contract: contract, field_name: field_name, message: message + endif + return contract +%} diff --git a/test/fixtures/test/with-tests-module/modules/tests/public/lib/commands/run.liquid b/test/fixtures/test/with-tests-module/modules/tests/public/lib/commands/run.liquid new file mode 100644 index 00000000..87930c7d --- /dev/null +++ b/test/fixtures/test/with-tests-module/modules/tests/public/lib/commands/run.liquid @@ -0,0 +1,46 @@ +{% liquid + assign ctx = context + hash_assign ctx['tests'] = true + log 'Starting unit tests', type: test_name + assign __start = "now" | to_time + assign per_page = 100 + graphql total_pages = 'modules/tests/test_files/count', per_page: per_page, path: context.params.name | dig: "admin_liquid_partials" | dig: "total_pages" + + if tests.size == 0 + unless format == 'js' + echo 'no tests found' + endunless + endif + assign total_errors = 0 + assign contracts = '' | split: ',' + + for page in (1..total_pages) + graphql tests = 'modules/tests/test_files/search', path: context.params.name, page: page, per_page: per_page | dig: "admin_liquid_partials" | dig: "results" + for test in tests + log test, type: test_name + assign contract = '{ "errors": {}, "success": true, "total": 0 }' | parse_json + + # platformos-check-disable ConvertIncludeToRender + include test.path, registry: test.path, contract: contract + # platformos-check-enable ConvertIncludeToRender + hash_assign contract['test_path'] = test.path + assign contracts = contracts | add_to_array: contract + assign total_errors = total_errors | plus: contract.errors.size + endfor + endfor + assign __stop = "now" | to_time + assign total_duration = __start | time_diff: __stop, 'ms' | round + + assign data = '{}' | parse_json + hash_assign data['contracts'] = contracts + hash_assign data['total_errors'] = total_errors + hash_assign data['total_duration'] = total_duration + + assign test_formatter = format | default: 'html' | prepend: 'modules/tests/tests/show_' + # platformos-check-disable ConvertIncludeToRender + include test_formatter, contracts: contracts, total_errors: total_errors, total_duration: total_duration, test_name: test_name + # platformos-check-enable ConvertIncludeToRender + if total_errors > 0 + response_status 500 + endif +%} diff --git a/test/fixtures/test/with-tests-module/modules/tests/public/lib/helpers/register_error.liquid b/test/fixtures/test/with-tests-module/modules/tests/public/lib/helpers/register_error.liquid new file mode 100644 index 00000000..11dfa1d1 --- /dev/null +++ b/test/fixtures/test/with-tests-module/modules/tests/public/lib/helpers/register_error.liquid @@ -0,0 +1,27 @@ +{% comment %} + @params + contract - { errors: {}, success: true } + field_name + message: + key: i18n to be resolved into message +{% endcomment %} + +{% liquid + assign key = key | default: null + assign message = message | default: null + if key + assign msg = key | t + else + assign msg = message + endif + + assign errors = contract.errors + + assign field_erorrs = errors[field_name] | default: '[]' | parse_json + assign field_erorrs = field_erorrs | array_add: msg + + hash_assign errors[field_name] = field_erorrs + hash_assign contract['success'] = false + + return contract +%} diff --git a/test/fixtures/test/with-tests-module/modules/tests/public/lib/queries/sent_mails/find.liquid b/test/fixtures/test/with-tests-module/modules/tests/public/lib/queries/sent_mails/find.liquid new file mode 100644 index 00000000..4ab4a057 --- /dev/null +++ b/test/fixtures/test/with-tests-module/modules/tests/public/lib/queries/sent_mails/find.liquid @@ -0,0 +1,8 @@ +{% liquid + if id == blank + return null + endif + + graphql r = 'modules/tests/sent_mails/search', id: id, limit: 1 + return r.mails.results.first +%} diff --git a/test/fixtures/test/with-tests-module/modules/tests/public/lib/queries/sent_mails/search.liquid b/test/fixtures/test/with-tests-module/modules/tests/public/lib/queries/sent_mails/search.liquid new file mode 100644 index 00000000..066ec067 --- /dev/null +++ b/test/fixtures/test/with-tests-module/modules/tests/public/lib/queries/sent_mails/search.liquid @@ -0,0 +1,4 @@ +{% liquid + graphql r = 'modules/tests/sent_mails/search', limit: limit, page: page + return r.mails +%} diff --git a/test/fixtures/test/with-tests-module/modules/tests/public/translations/en/should.yml b/test/fixtures/test/with-tests-module/modules/tests/public/translations/en/should.yml new file mode 100644 index 00000000..6f40d6fc --- /dev/null +++ b/test/fixtures/test/with-tests-module/modules/tests/public/translations/en/should.yml @@ -0,0 +1,16 @@ +en: + should: + be_false: should be false + be_valid: should be valid + equal: expected %{given} to equal %{expected} + equal_not_verbose: does not match + have_key: key should exist in "%{field_name}" + have_key_with_value: should have value "%{value}" + match: match + be_blank: should be blank + be_true: should be true + not: + be_empty: should not be empty + be_blank: should not be blank + be_valid: should not be valid + be_true: should not be true diff --git a/test/fixtures/test/with-tests-module/modules/tests/public/views/layouts/mailer.html.liquid b/test/fixtures/test/with-tests-module/modules/tests/public/views/layouts/mailer.html.liquid new file mode 100644 index 00000000..c33042aa --- /dev/null +++ b/test/fixtures/test/with-tests-module/modules/tests/public/views/layouts/mailer.html.liquid @@ -0,0 +1,165 @@ + + + + + + + + + + + {% liquid + assign url = 'https://' | append: context.location.host + %} + +
+

+ +
+ {{ 'app.title' | t: default: 'App' }} +
+

+ + {{ content_for_layout }} + + +
+ + + diff --git a/test/fixtures/test/with-tests-module/modules/tests/public/views/layouts/test.liquid b/test/fixtures/test/with-tests-module/modules/tests/public/views/layouts/test.liquid new file mode 100644 index 00000000..6b57c725 --- /dev/null +++ b/test/fixtures/test/with-tests-module/modules/tests/public/views/layouts/test.liquid @@ -0,0 +1,154 @@ + + + + + + + +
+
+ {{ content_for_layout }} +
+
+ + diff --git a/test/fixtures/test/with-tests-module/modules/tests/public/views/pages/_tests/index.html.liquid b/test/fixtures/test/with-tests-module/modules/tests/public/views/pages/_tests/index.html.liquid new file mode 100644 index 00000000..5db7ce85 --- /dev/null +++ b/test/fixtures/test/with-tests-module/modules/tests/public/views/pages/_tests/index.html.liquid @@ -0,0 +1,10 @@ +--- +layout: modules/tests/test +--- +{% liquid + if context.environment == 'staging' or context.environment == 'development' + graphql tests = 'modules/tests/test_files/search', path: context.params.name | dig: "admin_liquid_partials" | dig: "results" + + render 'modules/tests/tests/index', tests: tests + endif +%} diff --git a/test/fixtures/test/with-tests-module/modules/tests/public/views/pages/_tests/index.js.liquid b/test/fixtures/test/with-tests-module/modules/tests/public/views/pages/_tests/index.js.liquid new file mode 100644 index 00000000..07256730 --- /dev/null +++ b/test/fixtures/test/with-tests-module/modules/tests/public/views/pages/_tests/index.js.liquid @@ -0,0 +1,28 @@ +--- +layout: '' +--- +{% liquid + if context.environment == 'staging' or context.environment == 'development' + assign per_page = 100 + graphql total_pages = 'modules/tests/test_files/count', per_page: per_page, path: context.params.name | dig: "admin_liquid_partials" | dig: "total_pages" + + assign result = '[]' | parse_json + + for page in (1..total_pages) + graphql tests = 'modules/tests/test_files/search', path: context.params.name, page: page, per_page: per_page | dig: "admin_liquid_partials" | dig: "results" + + for test in tests + assign test_name = test.path | remove_first: 'lib/test/' | remove_first: '_test' + assign test_url = '/_tests/run.js?test_name=' | append: test_name + assign test_object = '{}' | parse_json + hash_assign test_object['name'] = test_name + hash_assign test_object['url'] = test_url + assign result = result | add_to_array: test_object + endfor + endfor + + echo result | json + else + echo '{"error":"Tests can only be accessed in staging or development environment"}' + endif +%} diff --git a/test/fixtures/test/with-tests-module/modules/tests/public/views/pages/_tests/run.html.liquid b/test/fixtures/test/with-tests-module/modules/tests/public/views/pages/_tests/run.html.liquid new file mode 100644 index 00000000..78ba8fb2 --- /dev/null +++ b/test/fixtures/test/with-tests-module/modules/tests/public/views/pages/_tests/run.html.liquid @@ -0,0 +1,11 @@ +--- +layout: modules/tests/test +--- +{% liquid + if context.environment == 'staging' or context.environment == 'development' + assign test_name = 5 | random_string | prepend: "liquid_test_" + # platformos-check-disable ConvertIncludeToRender + include 'modules/tests/commands/run', format: context.params.formatter, test_name: test_name + # platformos-check-enable ConvertIncludeToRender + endif +%} diff --git a/test/fixtures/test/with-tests-module/modules/tests/public/views/pages/_tests/run.js.liquid b/test/fixtures/test/with-tests-module/modules/tests/public/views/pages/_tests/run.js.liquid new file mode 100644 index 00000000..d36090cc --- /dev/null +++ b/test/fixtures/test/with-tests-module/modules/tests/public/views/pages/_tests/run.js.liquid @@ -0,0 +1,13 @@ +--- +layout: '' +--- +{% liquid + if context.environment == 'staging' or context.environment == 'development' + assign test_name = 5 | random_string | prepend: "liquid_test_" + # platformos-check-disable ConvertIncludeToRender + include 'modules/tests/commands/run', format: 'js', test_name: test_name + # platformos-check-enable ConvertIncludeToRender + else + echo '{"success":false,"error":"Tests can only be run in staging or development environment"}' + endif +%} diff --git a/test/fixtures/test/with-tests-module/modules/tests/public/views/pages/_tests/run_async.js.liquid b/test/fixtures/test/with-tests-module/modules/tests/public/views/pages/_tests/run_async.js.liquid new file mode 100644 index 00000000..79956bd9 --- /dev/null +++ b/test/fixtures/test/with-tests-module/modules/tests/public/views/pages/_tests/run_async.js.liquid @@ -0,0 +1,13 @@ +--- +layout: '' +--- +{% if context.environment == 'staging' or context.environment == 'development' %} + {% assign test_name = 5 | random_string | prepend: "liquid_test_" %} + {% background source_name: "liquid_tests", test_name: test_name %} + {% include 'modules/tests/commands/run', format: 'log_js', test_name: test_name %} + {% endbackground %} + {% assign result = '{}' | parse_json | hash_merge: test_name: test_name %} + {{ result }} +{% else %} + {"success":false,"error":"Tests can only be run in staging or development environment"} +{% endif %} diff --git a/test/fixtures/test/with-tests-module/modules/tests/public/views/pages/_tests/run_async.liquid b/test/fixtures/test/with-tests-module/modules/tests/public/views/pages/_tests/run_async.liquid new file mode 100644 index 00000000..7cb08dfb --- /dev/null +++ b/test/fixtures/test/with-tests-module/modules/tests/public/views/pages/_tests/run_async.liquid @@ -0,0 +1,10 @@ +--- +layout: '' +--- +{% if context.environment == 'staging' %} + {% assign test_name = 5 | random_string | prepend: "liquid_test_" %} + {% background source_name: "liquid_tests", test_name: test_name %} + {% include 'modules/tests/commands/run', format: 'log', test_name: test_name %} + {% endbackground %} + {{ test_name }} +{% endif %} diff --git a/test/fixtures/test/with-tests-module/modules/tests/public/views/pages/_tests/sent_mails/index.liquid b/test/fixtures/test/with-tests-module/modules/tests/public/views/pages/_tests/sent_mails/index.liquid new file mode 100644 index 00000000..2e5885b2 --- /dev/null +++ b/test/fixtures/test/with-tests-module/modules/tests/public/views/pages/_tests/sent_mails/index.liquid @@ -0,0 +1,11 @@ +--- +layout: modules/tests/test +--- +{% liquid + if context.environment == 'staging' or context.environment == 'development' + assign page = context.params.page | to_positive_integer: 1 + function mails = 'modules/tests/queries/sent_mails/search', limit: 20, page: page + + render 'modules/tests/sent_mails/list', mails: mails + endif +%} diff --git a/test/fixtures/test/with-tests-module/modules/tests/public/views/pages/_tests/sent_mails/show.liquid b/test/fixtures/test/with-tests-module/modules/tests/public/views/pages/_tests/sent_mails/show.liquid new file mode 100644 index 00000000..5c612fe9 --- /dev/null +++ b/test/fixtures/test/with-tests-module/modules/tests/public/views/pages/_tests/sent_mails/show.liquid @@ -0,0 +1,11 @@ +--- +slug: _tests/sent_mails/:id +layout: modules/tests/test +--- +{% liquid + if context.environment == 'staging' or context.environment == 'development' + function mail = 'modules/tests/queries/sent_mails/find', id: context.params.id + + render 'modules/tests/sent_mails/show', mail: mail + endif +%} diff --git a/test/fixtures/test/with-tests-module/modules/tests/public/views/partials/sent_mails/list.liquid b/test/fixtures/test/with-tests-module/modules/tests/public/views/partials/sent_mails/list.liquid new file mode 100644 index 00000000..eb8e2452 --- /dev/null +++ b/test/fixtures/test/with-tests-module/modules/tests/public/views/partials/sent_mails/list.liquid @@ -0,0 +1,20 @@ +

Sent mails

+
+
+
Subject
+
To
+
Sent at
+
+
+
+ {% for mail in mails.results %} +
    +
  • {{ mail.options.subject }}
  • +
  • {{ mail.options.to | join: ',' }}
  • +
  • {{ mail.created_at | l }}
  • +
  • Show
  • +
+ {% endfor %} +
+
+ {% render 'modules/tests/sent_mails/pagination', collection: mails %} diff --git a/test/fixtures/test/with-tests-module/modules/tests/public/views/partials/sent_mails/pagination.liquid b/test/fixtures/test/with-tests-module/modules/tests/public/views/partials/sent_mails/pagination.liquid new file mode 100644 index 00000000..1ecf01a8 --- /dev/null +++ b/test/fixtures/test/with-tests-module/modules/tests/public/views/partials/sent_mails/pagination.liquid @@ -0,0 +1,66 @@ +{% comment %} + Required params: + collection: collection + current_page: integer + Optional params: + button_attrs: string + container_class: string +{% endcomment %} +{% liquid + assign container_class = container_class | default: "subtitle flex justify-center md:justify-end items-center mt-8 mx-auto md:mr-0 md:ms-auto" + assign button_attrs = button_attrs | default: '' | html_safe + assign current_page = collection.current_page | to_positive_integer: 1 + assign page_name = page_name | default: 'page' +%} + +{% if collection.has_previous_page or collection.has_next_page %} +
+ +
+ {% if collection.has_previous_page %} + + {% endif %} + + {% liquid + assign range_low = current_page | minus: 2 | at_least: 1 + assign range_high = range_low | plus: 4 | at_most: collection.total_pages + %} + {% for page_num in (range_low..range_high) %} + {% if page_num == current_page %} + {{ page_num }} + {% else %} + + {% endif %} + {% endfor %} + + {% if collection.has_next_page %} + + {% endif %} +
+
+{% endif %} diff --git a/test/fixtures/test/with-tests-module/modules/tests/public/views/partials/sent_mails/show.liquid b/test/fixtures/test/with-tests-module/modules/tests/public/views/partials/sent_mails/show.liquid new file mode 100644 index 00000000..2fad3804 --- /dev/null +++ b/test/fixtures/test/with-tests-module/modules/tests/public/views/partials/sent_mails/show.liquid @@ -0,0 +1,8 @@ +Back +

Sent mail

+

Sujbect: {{ mail.options.subject }}

+

To: {{ mail.options.to | join: ',' }}

+

Sent at: {{ mail.created_at | l }}

+
+ +{% print mail.content %} diff --git a/test/fixtures/test/with-tests-module/modules/tests/public/views/partials/tests/index.liquid b/test/fixtures/test/with-tests-module/modules/tests/public/views/partials/tests/index.liquid new file mode 100644 index 00000000..424cd724 --- /dev/null +++ b/test/fixtures/test/with-tests-module/modules/tests/public/views/partials/tests/index.liquid @@ -0,0 +1,18 @@ + +
+
+
Test
+
+
+
+ {% for test in tests %} +
    + {% assign test_name = test.path | split: 'test/' | last %} +
  • {{ test.path }}
  • +
  • Run
  • +
+ {% endfor %} +
diff --git a/test/fixtures/test/with-tests-module/modules/tests/public/views/partials/tests/show_html.liquid b/test/fixtures/test/with-tests-module/modules/tests/public/views/partials/tests/show_html.liquid new file mode 100644 index 00000000..c2ce5684 --- /dev/null +++ b/test/fixtures/test/with-tests-module/modules/tests/public/views/partials/tests/show_html.liquid @@ -0,0 +1,25 @@ +
+{% assign total = 0 %} +{% liquid + for contract in contracts + render 'modules/tests/tests/test_report_html', name: contract.test_path, contract: contract + assign total = total | plus: contract.total + endfor +%} + +{% if total_errors > 0 %} +

Total errors: {{ total_errors }}

+ {% response_status 500 %} +{% endif %} + +
+ +

+ {% if total_errors > 0 %} + Failure. + {% else %} + Success. + {% endif %} +Assertions: {{ total }}. Failed: {{ total_errors }}. Time: {{ total_duration }}ms +

+
diff --git a/test/fixtures/test/with-tests-module/modules/tests/public/views/partials/tests/show_js.liquid b/test/fixtures/test/with-tests-module/modules/tests/public/views/partials/tests/show_js.liquid new file mode 100644 index 00000000..f9e4d755 --- /dev/null +++ b/test/fixtures/test/with-tests-module/modules/tests/public/views/partials/tests/show_js.liquid @@ -0,0 +1,30 @@ +{% liquid + assign result = '{}' | parse_json + assign total_assertions = 0 + + assign tests_array = '[]' | parse_json + for contract in contracts + assign total_assertions = total_assertions | plus: contract.total + + assign test_result = '{}' | parse_json + hash_assign test_result['name'] = contract.test_path + hash_assign test_result['success'] = contract.success + hash_assign test_result['assertions'] = contract.total + hash_assign test_result['errors'] = contract.errors + + assign tests_array = tests_array | add_to_array: test_result + endfor + + if total_errors > 0 + hash_assign result['success'] = false + else + hash_assign result['success'] = true + endif + + hash_assign result['total_tests'] = contracts.size + hash_assign result['total_assertions'] = total_assertions + hash_assign result['total_errors'] = total_errors + hash_assign result['duration_ms'] = total_duration + hash_assign result['tests'] = tests_array +%} +{{ result | json }} diff --git a/test/fixtures/test/with-tests-module/modules/tests/public/views/partials/tests/show_log.liquid b/test/fixtures/test/with-tests-module/modules/tests/public/views/partials/tests/show_log.liquid new file mode 100644 index 00000000..9abe2cc7 --- /dev/null +++ b/test/fixtures/test/with-tests-module/modules/tests/public/views/partials/tests/show_log.liquid @@ -0,0 +1,7 @@ +{% capture result %} + {% render 'modules/tests/tests/show_text', contracts: contracts, total_errors: total_errors, total_duration: total_duration, test_name: test_name %} +{% endcapture %} +{% liquid + assign log_type = test_name | append: ' SUMMARY' + log result, type: log_type +%} diff --git a/test/fixtures/test/with-tests-module/modules/tests/public/views/partials/tests/show_log_js.liquid b/test/fixtures/test/with-tests-module/modules/tests/public/views/partials/tests/show_log_js.liquid new file mode 100644 index 00000000..ffd51c6b --- /dev/null +++ b/test/fixtures/test/with-tests-module/modules/tests/public/views/partials/tests/show_log_js.liquid @@ -0,0 +1,8 @@ +{% capture result %} + {% render 'modules/tests/tests/show_js', contracts: contracts, total_errors: total_errors, total_duration: total_duration, test_name: test_name %} +{% endcapture %} +{% assign result = result | html_safe %} +{% liquid + assign log_type = test_name | append: ' SUMMARY' + log result, type: log_type +%} diff --git a/test/fixtures/test/with-tests-module/modules/tests/public/views/partials/tests/show_text.liquid b/test/fixtures/test/with-tests-module/modules/tests/public/views/partials/tests/show_text.liquid new file mode 100644 index 00000000..3108c53b --- /dev/null +++ b/test/fixtures/test/with-tests-module/modules/tests/public/views/partials/tests/show_text.liquid @@ -0,0 +1,22 @@ +Liquid tests +------------------------ +{% liquid + for contract in contracts + render 'modules/tests/tests/test_report_text', name: contract.test_path, contract: contract + assign total = total | plus: contract.total + endfor +%} +------------------------ +{% liquid + if total_errors > 0 + assign result = 'Failed' + else + assign result = 'Success' + endif +%} +{{ result }}_{{ test_name | strip }} +{% if total_errors > 0 %} + Total errors: {{ total_errors }} +{% endif %} + +Assertions: {{ total }}. Failed: {{ total_errors }}. Time: {{ total_duration }}ms diff --git a/test/fixtures/test/with-tests-module/modules/tests/public/views/partials/tests/test_report_html.liquid b/test/fixtures/test/with-tests-module/modules/tests/public/views/partials/tests/test_report_html.liquid new file mode 100644 index 00000000..2ff1a431 --- /dev/null +++ b/test/fixtures/test/with-tests-module/modules/tests/public/views/partials/tests/test_report_html.liquid @@ -0,0 +1,17 @@ +
+
+ {% assign test_name = name | replace: 'test/', '' %} + {{ test_name }} + + (run test) + +
+
+ {% for e in contract.errors %} +
+
{{ e[0] }}
+
{{ e[1] | join: ",
" | html_safe }}
+
+ {% endfor %} +
+
diff --git a/test/fixtures/test/with-tests-module/modules/tests/public/views/partials/tests/test_report_text.liquid b/test/fixtures/test/with-tests-module/modules/tests/public/views/partials/tests/test_report_text.liquid new file mode 100644 index 00000000..29a84503 --- /dev/null +++ b/test/fixtures/test/with-tests-module/modules/tests/public/views/partials/tests/test_report_text.liquid @@ -0,0 +1,5 @@ +{% assign test_name = name | replace: 'test/', '' %} +{{ test_name }} +{% for e in contract.errors %} + {{ e[0] }} {{ e[1] | join: ", " }} +{% endfor %} diff --git a/test/fixtures/test/with-tests-module/modules/tests/template-values.json b/test/fixtures/test/with-tests-module/modules/tests/template-values.json new file mode 100644 index 00000000..59e310f0 --- /dev/null +++ b/test/fixtures/test/with-tests-module/modules/tests/template-values.json @@ -0,0 +1,7 @@ +{ + "name": "Pos Module Tests", + "machine_name": "tests", + "type": "module", + "version": "1.2.0", + "dependencies": {} +} diff --git a/test/fixtures/test/without-tests-module/app/pos-modules.json b/test/fixtures/test/without-tests-module/app/pos-modules.json new file mode 100644 index 00000000..297679bd --- /dev/null +++ b/test/fixtures/test/without-tests-module/app/pos-modules.json @@ -0,0 +1,3 @@ +{ + "modules": {} +} \ No newline at end of file diff --git a/test/test-run.test.js b/test/test-run.test.js new file mode 100644 index 00000000..be895405 --- /dev/null +++ b/test/test-run.test.js @@ -0,0 +1,87 @@ +/* global jest */ + +const exec = require('./utils/exec'); +const cliPath = require('./utils/cliPath'); + +require('dotenv').config(); + +const cwd = name => `${process.cwd()}/test/fixtures/test/${name}`; + +const run = (fixtureName, options) => exec(`${cliPath} test run ${options || ''}`, { cwd: cwd(fixtureName), env: process.env }); +const deploy = (fixtureName) => exec(`${cliPath} deploy staging`, { cwd: cwd(fixtureName), env: process.env }); + +jest.setTimeout(200000); // Test run can take a while due to log polling + +describe('Test run command', () => { + // Deploy the test fixtures before running any tests + beforeAll(async () => { + const { stdout, stderr } = await deploy('with-tests-module'); + if (!stdout.includes('Deploy succeeded')) { + console.error('Deploy failed:', stderr); + throw new Error('Failed to deploy test fixtures'); + } + }); + + test('displays instance URL when running tests', async () => { + const { stdout, stderr } = await run('with-tests-module', 'staging'); + + expect(stdout).toMatch(`Running tests on: ${process.env.MPKIT_URL}`); + }); + + // Note: This test requires a staging instance WITHOUT the tests module installed. + // Since integration tests require the tests module to be deployed, this test + // is skipped when run against the same instance. + test.skip('shows error when tests module is not installed', async () => { + const { stderr } = await run('without-tests-module', 'staging'); + + expect(stderr).toMatch('Tests module not found'); + }); + + test('runs all tests and shows results when no test name provided', async () => { + const { stdout, stderr, code } = await run('with-tests-module', 'staging'); + + // Verify test execution started + expect(stdout).toMatch('Starting test run...'); + + // Verify test results are actually displayed (not just hanging) + // The output should include either test results summary or individual test status + const hasTestResults = stdout.includes('passed') || + stdout.includes('failed') || + stdout.includes('Test Results:') || + stdout.includes('total)'); + + expect(hasTestResults).toBe(true); + }); + + test('runs a single passing test by name and shows success', async () => { + const { stdout, stderr, code } = await run('with-tests-module', 'staging example_test'); + + // Verify test results are displayed + expect(stdout).toMatch('Test Results:'); + + // Verify the passing test is shown as passed (with checkmark) + expect(stdout).toMatch(/✓.*example_test/); + + // Verify summary shows 1 passed + expect(stdout).toMatch('1 passed'); + + // Exit code should be 0 for passing test + expect(code).toBe(0); + }); + + test('runs a single failing test by name and shows failure', async () => { + const { stdout, stderr, code } = await run('with-tests-module', 'staging failing_test'); + + // Verify test results are displayed + expect(stdout + stderr).toMatch('Test Results:'); + + // Verify the failing test is shown as failed (with X mark) + expect(stdout + stderr).toMatch(/✗.*failing_test/); + + // Verify summary shows 1 failed + expect(stdout + stderr).toMatch('1 failed'); + + // Exit code should be 1 for failing test + expect(code).toBe(1); + }); +}); \ No newline at end of file diff --git a/test/test.test.js b/test/test.test.js new file mode 100644 index 00000000..d2233be6 --- /dev/null +++ b/test/test.test.js @@ -0,0 +1,612 @@ +jest.mock('../lib/apiRequest', () => ({ + apiRequest: jest.fn() +})); + +require('dotenv').config(); + +const Gateway = require('../lib/proxy'); + +describe('Gateway test methods', () => { + const { apiRequest } = require('../lib/apiRequest'); + + beforeEach(() => { + apiRequest.mockReset(); + }); + + describe('test(name)', () => { + test('calls apiRequest with correct URL for single test (JS format)', async () => { + apiRequest.mockResolvedValue({ passed: 1, failed: 0, total: 1, tests: [] }); + + const gateway = new Gateway({ url: 'http://example.com', token: '1234', email: 'test@example.com' }); + const result = await gateway.test('example_test'); + + expect(apiRequest).toHaveBeenCalledWith({ + method: 'GET', + uri: 'http://example.com/_tests/run.js?name=example_test', + formData: undefined, + json: true, + forever: undefined, + request: expect.any(Function) + }); + expect(result).toEqual({ passed: 1, failed: 0, total: 1, tests: [] }); + }); + + test('handles test with path in name', async () => { + apiRequest.mockResolvedValue({ passed: 1, failed: 0, total: 1 }); + + const gateway = new Gateway({ url: 'http://example.com', token: '1234', email: 'test@example.com' }); + await gateway.test('test/examples/assertions_test'); + + expect(apiRequest).toHaveBeenCalledWith(expect.objectContaining({ + uri: 'http://example.com/_tests/run.js?name=test/examples/assertions_test' + })); + }); + }); + + describe('testRunAsync()', () => { + test('calls apiRequest with run_async endpoint (no .js extension for v1.1.0+)', async () => { + apiRequest.mockResolvedValue({ test_run_id: 'test-run-123' }); + + const gateway = new Gateway({ url: 'http://example.com', token: '1234', email: 'test@example.com' }); + const result = await gateway.testRunAsync(); + + expect(apiRequest).toHaveBeenCalledWith({ + method: 'GET', + uri: 'http://example.com/_tests/run_async', + formData: undefined, + json: true, + forever: undefined, + request: expect.any(Function) + }); + expect(result).toEqual({ test_run_id: 'test-run-123' }); + }); + + test('handles error response', async () => { + apiRequest.mockResolvedValue({ error: 'Tests module not found' }); + + const gateway = new Gateway({ url: 'http://example.com', token: '1234', email: 'test@example.com' }); + const result = await gateway.testRunAsync(); + + expect(result).toEqual({ error: 'Tests module not found' }); + }); + }); + + describe('formatTestLog', () => { + let formatTestLog; + + beforeEach(() => { + const testRunModule = require('../bin/pos-cli-test-run'); + formatTestLog = testRunModule.formatTestLog; + }); + + test('highlights test log with test path (new test indicator)', () => { + const logRow = { + message: '{"path": "app/lib/test/example_test.liquid"}', + type: 'liquid_test_abc123' + }; + + const result = formatTestLog(logRow, true); + + // Should contain the arrow indicator and path + expect(result).toContain('▶'); + expect(result).toContain('app/lib/test/example_test.liquid'); + }); + + test('displays test log without path normally', () => { + const logRow = { + message: 'Test assertion passed', + type: 'liquid_test_abc123' + }; + + const result = formatTestLog(logRow, true); + + // Should not contain the arrow indicator + expect(result).not.toContain('▶'); + expect(result).toContain('Test assertion passed'); + }); + + test('dims debug logs (type != test_name)', () => { + const logRow = { + message: 'Debug: checking variable value', + type: 'debug' + }; + + const result = formatTestLog(logRow, false); + + // Should contain the debug prefix with type + expect(result).toContain('[debug:debug]'); + expect(result).toContain('Debug: checking variable value'); + }); + + test('shows debug type in dimmed log output', () => { + const logRow = { + message: 'Custom debug message from test', + type: 'custom_debug' + }; + + const result = formatTestLog(logRow, false); + + expect(result).toContain('[debug:custom_debug]'); + expect(result).toContain('Custom debug message from test'); + }); + + test('highlights test path in modules directory', () => { + const logRow = { + message: '{"path": "modules/my_module/test/unit_test.liquid"}', + type: 'liquid_test_xyz789' + }; + + const result = formatTestLog(logRow, true); + + expect(result).toContain('▶'); + expect(result).toContain('modules/my_module/test/unit_test.liquid'); + }); + }); + + describe('TestLogStream', () => { + let TestLogStream; + + beforeEach(() => { + const testRunModule = require('../bin/pos-cli-test-run'); + TestLogStream = testRunModule.TestLogStream; + }); + + describe('parseJsonSummary', () => { + test('parses successful test completion JSON from tests module 1.1.1+', () => { + const stream = new TestLogStream({}); + + const message = JSON.stringify({ + success: true, + total_tests: 5, + total_assertions: 16, + total_errors: 0, + duration_ms: 26, + test_run_id: 'test-run-123', + tests: [ + { name: "test/array_test", success: true, assertions: 2, errors: {} }, + { name: "test/examples/assertions_test", success: true, assertions: 4, errors: {} }, + { name: "test/example_test", success: true, assertions: 5, errors: {} }, + { name: "test/object_test", success: true, assertions: 3, errors: {} }, + { name: "test/string_test", success: true, assertions: 2, errors: {} } + ] + }); + + const result = stream.parseJsonSummary(message); + + expect(result).toEqual({ + total: 5, + passed: 5, + failed: 0, + assertions: 16, + tests: [ + { name: "test/array_test", status: "passed", passed: true, assertions: 2 }, + { name: "test/examples/assertions_test", status: "passed", passed: true, assertions: 4 }, + { name: "test/example_test", status: "passed", passed: true, assertions: 5 }, + { name: "test/object_test", status: "passed", passed: true, assertions: 3 }, + { name: "test/string_test", status: "passed", passed: true, assertions: 2 } + ], + duration: 26 + }); + }); + + test('parses failed test completion JSON with error details', () => { + const stream = new TestLogStream({}); + + const message = JSON.stringify({ + success: false, + total_tests: 3, + total_assertions: 10, + total_errors: 1, + duration_ms: 45, + test_run_id: 'test-run-123', + tests: [ + { name: "test/passing_test", success: true, assertions: 3, errors: {} }, + { name: "test/failing_test", success: false, assertions: 2, errors: { expected: "field to be 2", actual: "field is 1" } }, + { name: "test/another_passing_test", success: true, assertions: 5, errors: {} } + ] + }); + + const result = stream.parseJsonSummary(message); + + expect(result).toEqual({ + total: 3, + passed: 2, + failed: 1, + assertions: 10, + tests: [ + { name: "test/passing_test", status: "passed", passed: true, assertions: 3 }, + { name: "test/failing_test", status: "failed", passed: false, assertions: 2, error: "{\"expected\":\"field to be 2\",\"actual\":\"field is 1\"}" }, + { name: "test/another_passing_test", status: "passed", passed: true, assertions: 5 } + ], + duration: 45 + }); + }); + + test('handles alternative field names (total instead of total_tests)', () => { + const stream = new TestLogStream({}); + + const message = JSON.stringify({ + success: true, + total: 4, + assertions: 8, + duration: 30, + test_run_id: 'test-run-123', + tests: [ + { name: "test1", success: true, assertions: 2, errors: {} }, + { name: "test2", success: true, assertions: 2, errors: {} }, + { name: "test3", success: true, assertions: 2, errors: {} }, + { name: "test4", success: true, assertions: 2, errors: {} } + ] + }); + + const result = stream.parseJsonSummary(message); + + expect(result).toEqual({ + total: 4, + passed: 4, + failed: 0, + assertions: 8, + tests: [ + { name: "test1", status: "passed", passed: true, assertions: 2 }, + { name: "test2", status: "passed", passed: true, assertions: 2 }, + { name: "test3", status: "passed", passed: true, assertions: 2 }, + { name: "test4", status: "passed", passed: true, assertions: 2 } + ], + duration: 30 + }); + }); + + test('returns null for invalid JSON', () => { + const stream = new TestLogStream({}); + const invalidJson = '{ "invalid": json }'; + const result = stream.parseJsonSummary(invalidJson); + expect(result).toBeNull(); + }); + }); + + describe('isValidTestSummaryJson', () => { + test('identifies valid test summary JSON', () => { + const stream = new TestLogStream({}); + + const validMessage = JSON.stringify({ + success: true, + total_tests: 5, + total_assertions: 16, + duration_ms: 26, + test_run_id: 'test-run-123', + tests: [] + }); + + expect(stream.isValidTestSummaryJson(validMessage)).toBe(true); + }); + + test('rejects JSON without tests array', () => { + const stream = new TestLogStream({}); + + const invalidMessage = JSON.stringify({ + success: true, + total_tests: 5, + duration_ms: 26 + }); + + expect(stream.isValidTestSummaryJson(invalidMessage)).toBe(false); + }); + + test('rejects JSON without success field', () => { + const stream = new TestLogStream({}); + + const invalidMessage = JSON.stringify({ + total_tests: 5, + duration_ms: 26, + tests: [] + }); + + expect(stream.isValidTestSummaryJson(invalidMessage)).toBe(false); + }); + + test('rejects non-test JSON', () => { + const stream = new TestLogStream({}); + + const invalidMessage = JSON.stringify({ + path: "test/array_test" + }); + + expect(stream.isValidTestSummaryJson(invalidMessage)).toBe(false); + }); + }); + + describe('testCompleted event emission', () => { + test('emits testCompleted only once even when duplicate JSON summaries are received', () => { + const stream = new TestLogStream({}); + const mockEmit = jest.fn(); + stream.emit = mockEmit; + + const testSummaryJson = JSON.stringify({ + success: true, + total_tests: 5, + total_assertions: 16, + duration_ms: 26, + test_run_id: 'test-run-123', + tests: [ + { name: "test/array_test", success: true, assertions: 2, errors: {} }, + { name: "test/examples/assertions_test", success: true, assertions: 4, errors: {} }, + { name: "test/example_test", success: true, assertions: 5, errors: {} }, + { name: "test/object_test", success: true, assertions: 3, errors: {} }, + { name: "test/string_test", success: true, assertions: 2, errors: {} } + ] + }); + + // Simulate receiving the same JSON summary multiple times + const logRow1 = { id: 1, message: testSummaryJson }; + const logRow2 = { id: 2, message: testSummaryJson }; + const logRow3 = { id: 3, message: testSummaryJson }; + + // Process first occurrence + stream.processLogMessage(logRow1); + // Process second occurrence (duplicate) + stream.processLogMessage(logRow2); + // Process third occurrence (duplicate) + stream.processLogMessage(logRow3); + + // Should emit testCompleted only once + expect(mockEmit).toHaveBeenCalledTimes(1); + expect(mockEmit).toHaveBeenCalledWith('testCompleted', expect.any(Object)); + + // Verify the emitted results are correct + const emittedResults = mockEmit.mock.calls[0][1]; + expect(emittedResults.total).toBe(5); + expect(emittedResults.passed).toBe(5); + expect(emittedResults.failed).toBe(0); + }); + + test('only processes JSON summaries that match the testRunId', () => { + const stream = new TestLogStream({}, 30000, 'test-run-123'); + const mockEmit = jest.fn(); + stream.emit = mockEmit; + + const matchingSummaryJson = JSON.stringify({ + success: false, + total_tests: 2, + total_errors: 2, + test_run_id: 'test-run-123', + tests: [ + { name: "test1", success: false, assertions: 1, errors: { message: "failed" } }, + { name: "test2", success: false, assertions: 1, errors: { message: "failed" } } + ] + }); + + const nonMatchingSummaryJson = JSON.stringify({ + success: true, + total_tests: 2, + test_run_id: 'test-run-456', + tests: [ + { name: "test1", success: true, assertions: 1, errors: {} }, + { name: "test2", success: true, assertions: 1, errors: {} } + ] + }); + + // Process non-matching summary first (should be ignored) + stream.processLogMessage({ id: 1, message: nonMatchingSummaryJson }); + // Process matching summary (should be processed) + stream.processLogMessage({ id: 2, message: matchingSummaryJson }); + + // Should emit testCompleted only once for the matching summary + expect(mockEmit).toHaveBeenCalledTimes(1); + expect(mockEmit).toHaveBeenCalledWith('testCompleted', expect.any(Object)); + + // Verify the emitted results are from the matching (failing) summary + const emittedResults = mockEmit.mock.calls[0][1]; + expect(emittedResults.total).toBe(2); + expect(emittedResults.passed).toBe(0); + expect(emittedResults.failed).toBe(2); + }); + + test('ignores JSON summaries when no testRunId is set (backward compatibility)', () => { + const stream = new TestLogStream({}); // No testRunId + const mockEmit = jest.fn(); + stream.emit = mockEmit; + + const summaryWithIdJson = JSON.stringify({ + success: true, + total_tests: 1, + test_run_id: 'test-run-123', + tests: [{ name: "test1", success: true, assertions: 1, errors: {} }] + }); + + // Should still process summaries even with test_run_id when no filter is set + stream.processLogMessage({ id: 1, message: summaryWithIdJson }); + + expect(mockEmit).toHaveBeenCalledTimes(1); + expect(mockEmit).toHaveBeenCalledWith('testCompleted', expect.any(Object)); + }); + }); + + describe('testName filtering', () => { + test('detects test start with matching testName type', () => { + const stream = new TestLogStream({}, 30000, null, 'liquid_test_abc123'); + const mockEmit = jest.fn(); + stream.emit = mockEmit; + + const startLog = { + id: 1, + message: 'Starting unit tests', + error_type: 'liquid_test_abc123' + }; + + stream.processLogMessage(startLog); + + expect(mockEmit).toHaveBeenCalledWith('testStarted'); + expect(stream.testStarted).toBe(true); + }); + + test('ignores test start with non-matching testName type', () => { + const stream = new TestLogStream({}, 30000, null, 'liquid_test_abc123'); + const mockEmit = jest.fn(); + stream.emit = mockEmit; + + const startLog = { + id: 1, + message: 'Starting unit tests', + error_type: 'liquid_test_different' + }; + + stream.processLogMessage(startLog); + + expect(mockEmit).not.toHaveBeenCalled(); + expect(stream.testStarted).toBe(false); + }); + + test('detects test completion with testName SUMMARY type', () => { + const stream = new TestLogStream({}, 30000, null, 'liquid_test_abc123'); + stream.testStarted = true; // Simulate test already started + const mockEmit = jest.fn(); + stream.emit = mockEmit; + + const summaryJson = JSON.stringify({ + success: true, + total_tests: 2, + tests: [ + { name: "test1", success: true, assertions: 1, errors: {} }, + { name: "test2", success: true, assertions: 1, errors: {} } + ] + }); + + const summaryLog = { + id: 2, + message: summaryJson, + error_type: 'liquid_test_abc123 SUMMARY' + }; + + stream.processLogMessage(summaryLog); + + expect(mockEmit).toHaveBeenCalledWith('testCompleted', expect.any(Object)); + expect(stream.completed).toBe(true); + }); + + test('ignores summary with non-matching testName SUMMARY type', () => { + const stream = new TestLogStream({}, 30000, null, 'liquid_test_abc123'); + stream.testStarted = true; + const mockEmit = jest.fn(); + stream.emit = mockEmit; + + const summaryJson = JSON.stringify({ + success: true, + total_tests: 2, + tests: [ + { name: "test1", success: true, assertions: 1, errors: {} }, + { name: "test2", success: true, assertions: 1, errors: {} } + ] + }); + + const summaryLog = { + id: 2, + message: summaryJson, + error_type: 'liquid_test_different SUMMARY' + }; + + stream.processLogMessage(summaryLog); + + // Should emit testLog instead since it's during the test run + expect(mockEmit).toHaveBeenCalledWith('testLog', expect.any(Object), false); + expect(stream.completed).toBe(false); + }); + + test('emits testLog with isTestLog=true for logs with matching testName type', () => { + const stream = new TestLogStream({}, 30000, null, 'liquid_test_abc123'); + stream.testStarted = true; + const mockEmit = jest.fn(); + stream.emit = mockEmit; + + const testLog = { + id: 2, + message: '{"path": "app/lib/test/example_test.liquid"}', + error_type: 'liquid_test_abc123' + }; + + stream.processLogMessage(testLog); + + expect(mockEmit).toHaveBeenCalledWith('testLog', testLog, true); + }); + + test('emits testLog with isTestLog=false for logs with different type (debug logs)', () => { + const stream = new TestLogStream({}, 30000, null, 'liquid_test_abc123'); + stream.testStarted = true; + const mockEmit = jest.fn(); + stream.emit = mockEmit; + + const debugLog = { + id: 2, + message: 'Debug: checking variable value', + error_type: 'debug' + }; + + stream.processLogMessage(debugLog); + + expect(mockEmit).toHaveBeenCalledWith('testLog', debugLog, false); + }); + + test('does not emit logs before test started', () => { + const stream = new TestLogStream({}, 30000, null, 'liquid_test_abc123'); + const mockEmit = jest.fn(); + stream.emit = mockEmit; + + const earlyLog = { + id: 1, + message: 'Some early log from previous test run', + error_type: 'liquid_test_abc123' + }; + + stream.processLogMessage(earlyLog); + + expect(mockEmit).not.toHaveBeenCalled(); + }); + + test('does not emit logs after test completed', () => { + const stream = new TestLogStream({}, 30000, null, 'liquid_test_abc123'); + stream.testStarted = true; + stream.completed = true; + const mockEmit = jest.fn(); + stream.emit = mockEmit; + + const lateLog = { + id: 3, + message: 'Some late log', + error_type: 'liquid_test_abc123' + }; + + stream.processLogMessage(lateLog); + + expect(mockEmit).not.toHaveBeenCalled(); + }); + + test('filters noise from past test runs by only processing logs with matching testName', () => { + const stream = new TestLogStream({}, 30000, null, 'liquid_test_current'); + stream.testStarted = true; + const mockEmit = jest.fn(); + stream.emit = mockEmit; + + // Log from a past test run with different testName + const pastLog = { + id: 1, + message: 'Some past test log', + error_type: 'liquid_test_past' + }; + + // Log from current test run + const currentLog = { + id: 2, + message: 'Current test log', + error_type: 'liquid_test_current' + }; + + stream.processLogMessage(pastLog); + stream.processLogMessage(currentLog); + + // Should emit both logs, but with different isTestLog values + expect(mockEmit).toHaveBeenCalledTimes(2); + expect(mockEmit).toHaveBeenNthCalledWith(1, 'testLog', pastLog, false); // non-matching type = debug + expect(mockEmit).toHaveBeenNthCalledWith(2, 'testLog', currentLog, true); // matching type = test log + }); + }); + }); +}); \ No newline at end of file From 1b919bb00da307e4b0393239ce5535d1c2145ba2 Mon Sep 17 00:00:00 2001 From: Maciej Krajowski-Kukiel Date: Thu, 15 Jan 2026 19:39:51 +0100 Subject: [PATCH 5/8] add support for -f command --- CHANGELOG.md | 6 + README.md | 54 + bin/pos-cli-exec-graphql.js | 44 +- bin/pos-cli-exec-liquid.js | 44 +- bin/pos-cli-test-run.js | 500 +--------- bin/pos-cli-test.js | 1 - lib/logger/rainbow.js | 2 +- lib/logger/simple.js | 2 +- lib/productionEnvironment.js | 43 + lib/test-runner/formatters.js | 135 +++ lib/test-runner/index.js | 202 ++++ lib/test-runner/logStream.js | 164 ++++ test/deploy.test.js | 2 + test/exec-graphql.test.js | 179 +++- test/exec-liquid.test.js | 207 +++- test/fixtures/test-graphql.graphql | 1 + test/fixtures/test-liquid.liquid | 1 + .../app/lib/test/passing_one_test.liquid | 4 + .../app/lib/test/passing_two_test.liquid | 4 + .../with-passing-tests/app/pos-modules.json | 5 + .../app/pos-modules.lock.json | 5 + .../app/views/pages/index.liquid | 4 + .../public/graphql/sent_mails/search.graphql | 20 + .../public/graphql/test_files/count.graphql | 12 + .../public/graphql/test_files/search.graphql | 15 + .../tests/public/lib/assertions/blank.liquid | 7 + .../tests/public/lib/assertions/equal.liquid | 9 + .../lib/assertions/invalid_object.liquid | 7 + .../public/lib/assertions/not_presence.liquid | 7 + .../public/lib/assertions/not_true.liquid | 10 + .../lib/assertions/not_valid_object.liquid | 7 + .../assertions/object_contains_object.liquid | 20 + .../public/lib/assertions/presence.liquid | 7 + .../tests/public/lib/assertions/true.liquid | 10 + .../public/lib/assertions/valid_object.liquid | 8 + .../tests/public/lib/commands/run.liquid | 46 + .../public/lib/helpers/register_error.liquid | 27 + .../public/lib/queries/sent_mails/find.liquid | 8 + .../lib/queries/sent_mails/search.liquid | 4 + .../tests/public/translations/en/should.yml | 16 + .../public/views/layouts/mailer.html.liquid | 165 ++++ .../tests/public/views/layouts/test.liquid | 154 +++ .../views/pages/_tests/index.html.liquid | 10 + .../public/views/pages/_tests/index.js.liquid | 28 + .../public/views/pages/_tests/run.html.liquid | 11 + .../public/views/pages/_tests/run.js.liquid | 13 + .../views/pages/_tests/run_async.js.liquid | 13 + .../views/pages/_tests/run_async.liquid | 10 + .../pages/_tests/sent_mails/index.liquid | 11 + .../views/pages/_tests/sent_mails/show.liquid | 11 + .../views/partials/sent_mails/list.liquid | 20 + .../partials/sent_mails/pagination.liquid | 66 ++ .../views/partials/sent_mails/show.liquid | 8 + .../public/views/partials/tests/index.liquid | 18 + .../views/partials/tests/show_html.liquid | 25 + .../views/partials/tests/show_js.liquid | 30 + .../views/partials/tests/show_log.liquid | 7 + .../views/partials/tests/show_log_js.liquid | 8 + .../views/partials/tests/show_text.liquid | 22 + .../partials/tests/test_report_html.liquid | 17 + .../partials/tests/test_report_text.liquid | 5 + .../modules/tests/template-values.json | 7 + test/lib/modules/dependencies.test.js | 5 +- test/logs.test.js | 133 +++ test/modules-download.test.js | 31 +- test/modules-push.test.js | 2 + test/modules-update.test.js | 2 + test/productionEnvironment.test.js | 157 +++ test/sync.test.js | 2 + test/test-run.test.js | 926 ++++++++++++++++-- test/test.test.js | 612 ------------ test/utils/commands.js | 18 + test/utils/exec.js | 3 - test/utils/realCredentials.js | 13 + 74 files changed, 3103 insertions(+), 1309 deletions(-) create mode 100644 lib/productionEnvironment.js create mode 100644 lib/test-runner/formatters.js create mode 100644 lib/test-runner/index.js create mode 100644 lib/test-runner/logStream.js create mode 100644 test/fixtures/test-graphql.graphql create mode 100644 test/fixtures/test-liquid.liquid create mode 100644 test/fixtures/test/with-passing-tests/app/lib/test/passing_one_test.liquid create mode 100644 test/fixtures/test/with-passing-tests/app/lib/test/passing_two_test.liquid create mode 100644 test/fixtures/test/with-passing-tests/app/pos-modules.json create mode 100644 test/fixtures/test/with-passing-tests/app/pos-modules.lock.json create mode 100644 test/fixtures/test/with-passing-tests/app/views/pages/index.liquid create mode 100644 test/fixtures/test/with-passing-tests/modules/tests/public/graphql/sent_mails/search.graphql create mode 100644 test/fixtures/test/with-passing-tests/modules/tests/public/graphql/test_files/count.graphql create mode 100644 test/fixtures/test/with-passing-tests/modules/tests/public/graphql/test_files/search.graphql create mode 100644 test/fixtures/test/with-passing-tests/modules/tests/public/lib/assertions/blank.liquid create mode 100644 test/fixtures/test/with-passing-tests/modules/tests/public/lib/assertions/equal.liquid create mode 100644 test/fixtures/test/with-passing-tests/modules/tests/public/lib/assertions/invalid_object.liquid create mode 100644 test/fixtures/test/with-passing-tests/modules/tests/public/lib/assertions/not_presence.liquid create mode 100644 test/fixtures/test/with-passing-tests/modules/tests/public/lib/assertions/not_true.liquid create mode 100644 test/fixtures/test/with-passing-tests/modules/tests/public/lib/assertions/not_valid_object.liquid create mode 100644 test/fixtures/test/with-passing-tests/modules/tests/public/lib/assertions/object_contains_object.liquid create mode 100644 test/fixtures/test/with-passing-tests/modules/tests/public/lib/assertions/presence.liquid create mode 100644 test/fixtures/test/with-passing-tests/modules/tests/public/lib/assertions/true.liquid create mode 100644 test/fixtures/test/with-passing-tests/modules/tests/public/lib/assertions/valid_object.liquid create mode 100644 test/fixtures/test/with-passing-tests/modules/tests/public/lib/commands/run.liquid create mode 100644 test/fixtures/test/with-passing-tests/modules/tests/public/lib/helpers/register_error.liquid create mode 100644 test/fixtures/test/with-passing-tests/modules/tests/public/lib/queries/sent_mails/find.liquid create mode 100644 test/fixtures/test/with-passing-tests/modules/tests/public/lib/queries/sent_mails/search.liquid create mode 100644 test/fixtures/test/with-passing-tests/modules/tests/public/translations/en/should.yml create mode 100644 test/fixtures/test/with-passing-tests/modules/tests/public/views/layouts/mailer.html.liquid create mode 100644 test/fixtures/test/with-passing-tests/modules/tests/public/views/layouts/test.liquid create mode 100644 test/fixtures/test/with-passing-tests/modules/tests/public/views/pages/_tests/index.html.liquid create mode 100644 test/fixtures/test/with-passing-tests/modules/tests/public/views/pages/_tests/index.js.liquid create mode 100644 test/fixtures/test/with-passing-tests/modules/tests/public/views/pages/_tests/run.html.liquid create mode 100644 test/fixtures/test/with-passing-tests/modules/tests/public/views/pages/_tests/run.js.liquid create mode 100644 test/fixtures/test/with-passing-tests/modules/tests/public/views/pages/_tests/run_async.js.liquid create mode 100644 test/fixtures/test/with-passing-tests/modules/tests/public/views/pages/_tests/run_async.liquid create mode 100644 test/fixtures/test/with-passing-tests/modules/tests/public/views/pages/_tests/sent_mails/index.liquid create mode 100644 test/fixtures/test/with-passing-tests/modules/tests/public/views/pages/_tests/sent_mails/show.liquid create mode 100644 test/fixtures/test/with-passing-tests/modules/tests/public/views/partials/sent_mails/list.liquid create mode 100644 test/fixtures/test/with-passing-tests/modules/tests/public/views/partials/sent_mails/pagination.liquid create mode 100644 test/fixtures/test/with-passing-tests/modules/tests/public/views/partials/sent_mails/show.liquid create mode 100644 test/fixtures/test/with-passing-tests/modules/tests/public/views/partials/tests/index.liquid create mode 100644 test/fixtures/test/with-passing-tests/modules/tests/public/views/partials/tests/show_html.liquid create mode 100644 test/fixtures/test/with-passing-tests/modules/tests/public/views/partials/tests/show_js.liquid create mode 100644 test/fixtures/test/with-passing-tests/modules/tests/public/views/partials/tests/show_log.liquid create mode 100644 test/fixtures/test/with-passing-tests/modules/tests/public/views/partials/tests/show_log_js.liquid create mode 100644 test/fixtures/test/with-passing-tests/modules/tests/public/views/partials/tests/show_text.liquid create mode 100644 test/fixtures/test/with-passing-tests/modules/tests/public/views/partials/tests/test_report_html.liquid create mode 100644 test/fixtures/test/with-passing-tests/modules/tests/public/views/partials/tests/test_report_text.liquid create mode 100644 test/fixtures/test/with-passing-tests/modules/tests/template-values.json create mode 100644 test/logs.test.js create mode 100644 test/productionEnvironment.test.js delete mode 100644 test/test.test.js create mode 100644 test/utils/commands.js create mode 100644 test/utils/realCredentials.js diff --git a/CHANGELOG.md b/CHANGELOG.md index 9d9bd37b..baa2aae1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +## Unreleased + +* Feature: `pos-cli exec liquid` command to execute Liquid code directly on an instance (supports `-f` flag to load from file, requires confirmation on production) +* Feature: `pos-cli exec graphql` command to execute GraphQL queries directly on an instance (supports `-f` flag to load from file, requires confirmation on production) +* Feature: `pos-cli test run` command to run tests using the tests module + ## 5.5.0 * Feature: (GUI) Ability to add, edit and remove users diff --git a/README.md b/README.md index ddb9e007..8ad85d61 100644 --- a/README.md +++ b/README.md @@ -444,6 +444,60 @@ If you need guidance or additional information about how to use a specific gener pos-cli generate modules/core/generators/command --generator-help +### Executing Code + +#### Execute Liquid + +Execute Liquid code directly on your instance: + + pos-cli exec liquid [environment] [code] + +Example: + + pos-cli exec liquid staging "{{ 'hello' | upcase }}" + +You can also execute Liquid code from a file using the `-f` flag: + + pos-cli exec liquid staging -f path/to/script.liquid + +#### Execute GraphQL + +Execute GraphQL queries directly on your instance: + + pos-cli exec graphql [environment] [query] + +Example: + + pos-cli exec graphql staging "{ users(per_page: 5) { results { id email } } }" + +You can also execute GraphQL from a file using the `-f` flag: + + pos-cli exec graphql staging -f path/to/query.graphql + +**Note:** When executing on production environments (environment name contains "prod" or "production"), you will be prompted for confirmation before execution. + +### Running Tests + +To run tests on your instance, you need to have the [tests module](https://github.com/Platform-OS/pos-module-tests) installed. + +#### Run All Tests + + pos-cli test run [environment] + +Example: + + pos-cli test run staging + +This command runs all tests and streams the results in real-time, showing individual test outcomes and a summary at the end. + +#### Run a Single Test + + pos-cli test run [environment] [test-name] + +Example: + + pos-cli test run staging my_test + ## Development The `pos-cli gui serve` command uses a distinct build process for the GraphiQL interface located in the `gui/editor/graphql` directory. diff --git a/bin/pos-cli-exec-graphql.js b/bin/pos-cli-exec-graphql.js index f0d84fc6..76ae12ef 100644 --- a/bin/pos-cli-exec-graphql.js +++ b/bin/pos-cli-exec-graphql.js @@ -1,35 +1,33 @@ #!/usr/bin/env node +const fs = require('fs'); const { program } = require('commander'); -const prompts = require('prompts'); const Gateway = require('../lib/proxy'); const fetchAuthData = require('../lib/settings').fetchSettings; const logger = require('../lib/logger'); - -const isProductionEnvironment = (environment) => { - return environment && (environment.toLowerCase().includes('prod') || environment.toLowerCase().includes('production')); -}; - -const confirmProductionExecution = async (environment) => { - logger.Warn(`WARNING: You are executing GraphQL on a production environment: ${environment}`); - logger.Warn('This could potentially modify production data or cause unintended side effects.'); - logger.Warn(''); - - const response = await prompts({ - type: 'confirm', - name: 'confirmed', - message: `Are you sure you want to continue executing on ${environment}?`, - initial: false - }); - - return response.confirmed; -}; +const { isProductionEnvironment, confirmProductionExecution } = require('../lib/productionEnvironment'); program .name('pos-cli exec graphql') .argument('', 'name of environment. Example: staging') - .argument('', 'graphql query to execute as string') - .action(async (environment, graphql) => { + .argument('[graphql]', 'graphql query to execute as string') + .option('-f, --file ', 'path to graphql file to execute') + .action(async (environment, graphql, options) => { + let query = graphql; + + if (options.file) { + if (!fs.existsSync(options.file)) { + logger.Error(`File not found: ${options.file}`); + process.exit(1); + } + query = fs.readFileSync(options.file, 'utf8'); + } + + if (!query) { + logger.Error("error: missing required argument 'graphql'"); + process.exit(1); + } + const authData = fetchAuthData(environment, program); const gateway = new Gateway(authData); @@ -42,7 +40,7 @@ program } try { - const response = await gateway.graph({ query: graphql }); + const response = await gateway.graph({ query }); if (response.errors) { logger.Error(`GraphQL execution error: ${JSON.stringify(response.errors, null, 2)}`); diff --git a/bin/pos-cli-exec-liquid.js b/bin/pos-cli-exec-liquid.js index 0947277f..0db2d419 100644 --- a/bin/pos-cli-exec-liquid.js +++ b/bin/pos-cli-exec-liquid.js @@ -1,35 +1,33 @@ #!/usr/bin/env node +const fs = require('fs'); const { program } = require('commander'); -const prompts = require('prompts'); const Gateway = require('../lib/proxy'); const fetchAuthData = require('../lib/settings').fetchSettings; const logger = require('../lib/logger'); - -const isProductionEnvironment = (environment) => { - return environment && (environment.toLowerCase().includes('prod') || environment.toLowerCase().includes('production')); -}; - -const confirmProductionExecution = async (environment) => { - logger.Warn(`WARNING: You are executing liquid code on a production environment: ${environment}`); - logger.Warn('This could potentially modify production data or cause unintended side effects.'); - logger.Warn(''); - - const response = await prompts({ - type: 'confirm', - name: 'confirmed', - message: `Are you sure you want to continue executing on ${environment}?`, - initial: false - }); - - return response.confirmed; -}; +const { isProductionEnvironment, confirmProductionExecution } = require('../lib/productionEnvironment'); program .name('pos-cli exec liquid') .argument('', 'name of environment. Example: staging') - .argument('', 'liquid code to execute as string') - .action(async (environment, code) => { + .argument('[code]', 'liquid code to execute as string') + .option('-f, --file ', 'path to liquid file to execute') + .action(async (environment, code, options) => { + let liquidCode = code; + + if (options.file) { + if (!fs.existsSync(options.file)) { + logger.Error(`File not found: ${options.file}`); + process.exit(1); + } + liquidCode = fs.readFileSync(options.file, 'utf8'); + } + + if (!liquidCode) { + logger.Error("error: missing required argument 'code'"); + process.exit(1); + } + const authData = fetchAuthData(environment, program); const gateway = new Gateway(authData); @@ -42,7 +40,7 @@ program } try { - const response = await gateway.liquid({ content: code }); + const response = await gateway.liquid({ content: liquidCode }); if (response.error) { logger.Error(`Liquid execution error: ${response.error}`); diff --git a/bin/pos-cli-test-run.js b/bin/pos-cli-test-run.js index 23efe39f..c0d89302 100755 --- a/bin/pos-cli-test-run.js +++ b/bin/pos-cli-test-run.js @@ -1,467 +1,8 @@ #!/usr/bin/env node -const EventEmitter = require('events'); const { program } = require('commander'); -const chalk = require('chalk'); -const Gateway = require('../lib/proxy'); const fetchAuthData = require('../lib/settings').fetchSettings; -const logger = require('../lib/logger'); - -const formatDuration = (ms) => { - if (ms < 1000) return `${ms}ms`; - if (ms < 60000) return `${(ms / 1000).toFixed(2)}s`; - const minutes = Math.floor(ms / 60000); - const seconds = ((ms % 60000) / 1000).toFixed(2); - return `${minutes}m ${seconds}s`; -}; - -class TestLogStream extends EventEmitter { - constructor(authData, timeout = 30000, testRunId = null, testName = null) { - super(); - this.authData = authData; - this.gateway = new Gateway(authData); - this.timeout = timeout; - this.testRunId = testRunId; - this.testName = testName; // The test_name from run_async.js (e.g., "liquid_test_xxxxx") - this.startTime = Date.now(); - this.testStarted = false; - this.completed = false; - this.messageBuffer = ''; // Buffer for multi-line messages - this.lastMessageTime = 0; - this.liquidTestSeen = false; - this.liquidTestTime = 0; - } - - isValidTestSummaryJson(message) { - try { - // Parse as JSON - const obj = JSON.parse(message); - - // Check if it has test summary structure - const hasTestsArray = Array.isArray(obj.tests); - const hasSuccessField = typeof obj.success === 'boolean'; - const hasTotalField = typeof obj.total_tests === 'number' || typeof obj.total === 'number'; - const hasDurationField = typeof obj.duration_ms === 'number' || typeof obj.duration === 'number'; - - // If we have a testRunId, check that it matches - if (this.testRunId && obj.test_run_id !== this.testRunId) { - return false; - } - - return hasTestsArray && hasSuccessField && (hasTotalField || hasDurationField); - } catch (e) { - return false; - } - } - - start() { - this.intervalId = setInterval(() => this.fetchLogs(), 2000); - this.timeoutId = setTimeout(() => { - this.emit('timeout'); - this.stop(); - }, this.timeout); - - logger.Debug('Starting test log streaming...'); - } - - stop() { - if (this.intervalId) { - clearInterval(this.intervalId); - this.intervalId = null; - } - if (this.timeoutId) { - clearTimeout(this.timeoutId); - this.timeoutId = null; - } - } - - fetchLogs() { - this.gateway.logs({ lastId: this.lastId || 0 }) - .then((response) => { - const logs = response && response.logs; - if (!logs) return; - - for (let k in logs) { - const row = logs[k]; - - if (this.lastId && row.id <= this.lastId) continue; - this.lastId = row.id; - - logger.Debug(`[DEBUG] Processing log entry: ${JSON.stringify(row)}`); - this.processLogMessage(row); - } - }) - .catch(error => { - logger.Debug(`Error fetching logs: ${error.message}`); - }); - } - - processLogMessage(row) { - const message = row.message || ''; - const logType = row.error_type || ''; - const fullMessage = typeof message === 'string' ? message : JSON.stringify(message); - const summaryType = this.testName ? `${this.testName} SUMMARY` : null; - - // Only process logs that are related to our test run - // If we have a testName, filter by it - if (this.testName) { - // Check for test start - look for "Starting unit tests" or "Starting test run" with matching type - if (logType === this.testName && (fullMessage.includes('Starting unit tests') || fullMessage.includes('Starting test run')) && !this.testStarted) { - this.testStarted = true; - this.emit('testStarted'); - return; // Don't emit this as a log - } - - // Check for test completion - look for log with type " SUMMARY" - if (!this.completed && logType === summaryType && this.isValidTestSummaryJson(fullMessage)) { - if (!this.liquidTestSeen) { - this.liquidTestSeen = true; - this.liquidTestTime = Date.now(); - } - - // Parse as JSON summary - const testResults = this.parseJsonSummary(fullMessage); - if (testResults) { - this.completed = true; - this.emit('testCompleted', testResults); - this.stop(); - return; - } - } - - // Only show logs after test started and before completion - if (this.testStarted && !this.completed) { - // Determine if this is a test log (type matches test_name) or debug log (any other type) - const isTestLog = logType === this.testName; - this.emit('testLog', row, isTestLog); - } - } else { - // Legacy behavior when testName is not available - // Check for test start - if (fullMessage.includes('Starting unit tests') && !this.testStarted) { - this.testStarted = true; - this.emit('testStarted'); - } - - // Check for test completion - look for the JSON summary format (tests module 1.1.1+) - if (!this.completed && this.isValidTestSummaryJson(fullMessage)) { - if (!this.liquidTestSeen) { - this.liquidTestSeen = true; - this.liquidTestTime = Date.now(); - } - - // Parse as JSON summary - const testResults = this.parseJsonSummary(fullMessage); - if (testResults) { - this.completed = true; - this.emit('testCompleted', testResults); - this.stop(); - return; - } - } - - // Also show individual test logs - if (this.testStarted && !this.completed) { - this.emit('testLog', row, true); - } - } - } - - parseJsonSummary(message) { - try { - // Parse JSON (already validated as valid by isValidTestSummaryJson) - const summary = JSON.parse(message); - - // Map fields from tests module format to our internal format - const total = summary.total_tests || summary.total || 0; - const assertions = summary.total_assertions || summary.assertions || 0; - const duration = summary.duration_ms || summary.duration || 0; - - // Calculate passed/failed from success flag - let passed = 0; - let failed = 0; - - if (summary.success === true) { - passed = total; - failed = summary.total_errors || 0; - } else if (summary.success === false) { - failed = summary.total_errors || 0; - passed = Math.max(0, total - failed); - } - - // Map individual tests - const tests = []; - if (summary.tests && Array.isArray(summary.tests)) { - summary.tests.forEach(test => { - const testItem = { - name: test.name || 'Unknown test', - status: test.success ? 'passed' : 'failed', - passed: test.success, - assertions: test.assertions - }; - - // Handle errors - could be object with error details or array - if (test.errors) { - if (typeof test.errors === 'object' && Object.keys(test.errors).length > 0) { - testItem.error = JSON.stringify(test.errors); - } else if (Array.isArray(test.errors) && test.errors.length > 0) { - testItem.errors = test.errors; - } - } - - tests.push(testItem); - }); - } - - return { - total, - passed, - failed, - assertions, - tests, - duration - }; - } catch (error) { - logger.Debug(`[DEBUG] Failed to parse JSON summary: ${error.message}`); - return null; - } - } - - -} - -const printTestResults = (results, duration) => { - const { passed = 0, failed = 0, total = 0, tests = [] } = results; - - if (tests && tests.length > 0) { - logger.Info('\nTest Results:', { hideTimestamp: true }); - logger.Info('─'.repeat(60), { hideTimestamp: true }); - - tests.forEach(test => { - const status = test.status || (test.passed ? 'passed' : 'failed'); - const icon = status === 'passed' ? '✓' : '✗'; - const name = test.name || test.test_name || 'Unknown test'; - - if (status === 'passed') { - logger.Success(` ${icon} ${name}`, { hideTimestamp: true }); - } else { - logger.Error(` ${icon} ${name}`, { hideTimestamp: true, exit: false, notify: false }); - if (test.error || test.message) { - logger.Error(` Error: ${test.error || test.message}`, { hideTimestamp: true, exit: false, notify: false }); - } - if (test.errors && Array.isArray(test.errors)) { - test.errors.forEach(err => { - logger.Error(` - ${err.message || err}`, { hideTimestamp: true, exit: false, notify: false }); - }); - } - } - }); - - logger.Info('─'.repeat(60), { hideTimestamp: true }); - } - - // Print summary - const totalTests = total || (passed + failed); - const summary = []; - if (passed > 0) summary.push(`${passed} passed`); - if (failed > 0) summary.push(`${failed} failed`); - - const summaryText = summary.length > 0 ? summary.join(', ') : 'No tests executed'; - const durationText = duration ? ` in ${formatDuration(duration)}` : ''; - - if (failed > 0) { - logger.Error(`\n${summaryText} (${totalTests} total)${durationText}`, { hideTimestamp: true, exit: false, notify: false }); - } else if (passed > 0) { - logger.Success(`\n${summaryText} (${totalTests} total)${durationText}`, { hideTimestamp: true }); - } else { - logger.Warn(`\n${summaryText}${durationText}`, { hideTimestamp: true }); - } - - return failed === 0; -}; - -const transformTestResponse = (response) => { - // Transform API response format to the format expected by printTestResults - // API returns: { success, total_tests, total_assertions, total_errors, duration_ms, tests: [{name, success, assertions, errors}] } - // printTestResults expects: { passed, failed, total, tests: [{name, status, passed, error}], duration } - - const total = response.total_tests || response.total || 0; - const totalErrors = response.total_errors || 0; - - let passed = 0; - let failed = 0; - - if (response.success === true) { - passed = total; - failed = totalErrors; - } else { - failed = totalErrors || (total > 0 ? 1 : 0); - passed = Math.max(0, total - failed); - } - - const tests = []; - if (response.tests && Array.isArray(response.tests)) { - response.tests.forEach(test => { - const testItem = { - name: test.name || 'Unknown test', - status: test.success ? 'passed' : 'failed', - passed: test.success, - assertions: test.assertions - }; - - // Handle errors - could be object with error details or array - if (test.errors) { - if (typeof test.errors === 'object' && Object.keys(test.errors).length > 0) { - testItem.error = JSON.stringify(test.errors); - } else if (Array.isArray(test.errors) && test.errors.length > 0) { - testItem.errors = test.errors; - } - } - - tests.push(testItem); - }); - } - - return { - total, - passed, - failed, - assertions: response.total_assertions || 0, - tests, - duration: response.duration_ms || response.duration || 0 - }; -}; - -const runSingleTest = async (gateway, name) => { - const startTime = Date.now(); - - try { - const response = await gateway.test(name); - const duration = Date.now() - startTime; - - if (!response) { - logger.Error('No response received from test endpoint'); - return false; - } - - // Handle error response (not test failure, but actual error) - if (response.error && !response.tests) { - logger.Error(`Test error: ${response.error}`); - return false; - } - - // Handle the JSON response from /_tests/run.js - if (typeof response === 'object') { - const transformedResults = transformTestResponse(response); - return printTestResults(transformedResults, transformedResults.duration || duration); - } - - // Fallback for unexpected response format - logger.Print(JSON.stringify(response, null, 2)); - return true; - } catch (error) { - // Handle HTTP 500 errors that contain valid test results - // The test endpoint returns 500 when tests fail, but includes results in the body - const errorMessage = error.message || ''; - const jsonMatch = errorMessage.match(/^(\d+)\s*-\s*(\{.+\})$/); - - if (jsonMatch) { - try { - const response = JSON.parse(jsonMatch[2]); - if (response.tests && Array.isArray(response.tests)) { - const transformedResults = transformTestResponse(response); - return printTestResults(transformedResults, transformedResults.duration); - } - } catch (parseError) { - // Fall through to generic error handling - } - } - - logger.Error(`Failed to execute test: ${error.message}`); - return false; - } -}; - -const formatTestLog = (logRow, isTestLog) => { - const message = logRow.message || ''; - const logType = logRow.type || ''; - const fullMessage = typeof message === 'string' ? message : JSON.stringify(message); - const cleanMessage = fullMessage.replace(/\n$/, ''); - - // Check if this message contains a path to a test file - const hasTestPath = /app\/lib\/test\/|modules\/.*\/test\/|\.liquid/.test(cleanMessage); - - if (isTestLog && hasTestPath) { - // Test log with path - highlight it (new test indicator) - return chalk.cyan.bold(`▶ ${cleanMessage}`); - } else if (isTestLog) { - // Test log without path - normal display - return chalk.white(` ${cleanMessage}`); - } else { - // Debug log (type != test_name) - dim display - return chalk.dim(` [debug:${logType}] ${cleanMessage}`); - } -}; - -const runAllTests = async (gateway, authData) => { - return new Promise((resolve, reject) => { - let resolved = false; - - // Start the test run and get the test_run_id and test_name - logger.Info('Starting test run...'); - gateway.testRunAsync().then(testRunResponse => { - const testRunId = testRunResponse && testRunResponse.test_run_id; - const testName = testRunResponse && testRunResponse.test_name; - - logger.Debug(`Test run started with test_name: ${testName}`); - - const stream = new TestLogStream(authData, 180000, testRunId, testName); // 3 minute timeout for async tests - - const finish = (result) => { - if (resolved) return; // Prevent multiple resolutions - resolved = true; - stream.stop(); - resolve(result); - }; - - stream.on('testStarted', () => { - logger.Info('Test execution started...', { hideTimestamp: true }); - }); - - stream.on('testLog', (logRow, isTestLog) => { - // Display individual test logs with syntax highlighting - const message = logRow.message || ''; - const fullMessage = typeof message === 'string' ? message : JSON.stringify(message); - - // Don't show JSON summary messages as logs - they will be processed as completion signals - if (stream.isValidTestSummaryJson(fullMessage)) { - return; - } - - // Format and display the log with appropriate highlighting - const formattedLog = formatTestLog(logRow, isTestLog); - console.log(formattedLog); - }); - - stream.on('testCompleted', (results) => { - logger.Info('Test execution completed, processing results...', { hideTimestamp: true }); - const success = printTestResults(results, results.duration); - finish(success); - }); - - stream.on('timeout', () => { - logger.Error('Test execution timed out - no completion message received within 3 minutes'); - finish(false); - }); - - // Start listening for logs - stream.start(); - }).catch(error => { - logger.Error(`Failed to start test execution: ${error.message}`); - resolve(false); - }); - }); -}; +const testRunner = require('../lib/test-runner'); program .name('pos-cli test run') @@ -469,37 +10,8 @@ program .argument('[name]', 'name of the test to execute (runs all tests if not provided)') .action(async (environment, name) => { const authData = fetchAuthData(environment, program); - const gateway = new Gateway(authData); - - try { - // Display the instance URL for clarity - logger.Info(`Running tests on: ${authData.url}`, { hideTimestamp: true }); - // First check if tests module is installed - const modules = await gateway.listModules(); - const hasTestsModule = modules.data && modules.data.some(module => module === 'tests'); - - if (!hasTestsModule) { - logger.Error(`Tests module not found. Please install the tests module: - pos-cli modules install tests - pos-cli deploy ${environment} -Then re-run the command.`); - process.exit(1); - } - - let success; - if (name) { - // Run single test with .js format - success = await runSingleTest(gateway, name); - } else { - // Run all tests via run_async with log streaming - success = await runAllTests(gateway, authData); - } - - process.exit(success ? 0 : 1); - } catch (error) { - logger.Error(`Failed to execute test: ${error.message}`); - process.exit(1); - } + const success = await testRunner.run(authData, environment, name); + process.exit(success ? 0 : 1); }); // Only parse arguments if this file is run directly, not when required for testing @@ -507,7 +19,11 @@ if (require.main === module) { program.parse(process.argv); } -// Export for testing +// Export for testing - re-export from lib modules +const { TestLogStream } = require('../lib/test-runner/logStream'); +const { formatDuration, formatTestLog, printTestResults } = require('../lib/test-runner/formatters'); +const { runAllTests } = require('../lib/test-runner'); + module.exports = { TestLogStream, formatDuration, diff --git a/bin/pos-cli-test.js b/bin/pos-cli-test.js index 19a51cd8..89c4e846 100755 --- a/bin/pos-cli-test.js +++ b/bin/pos-cli-test.js @@ -6,5 +6,4 @@ program.showHelpAfterError(); program .name('pos-cli test') .command('run [name]', 'run tests on instance (all tests if name not provided)') - .command('list ', 'list available tests on instance') .parse(process.argv); diff --git a/lib/logger/rainbow.js b/lib/logger/rainbow.js index 632137dd..9777f489 100644 --- a/lib/logger/rainbow.js +++ b/lib/logger/rainbow.js @@ -6,7 +6,7 @@ const Quiet = message => console.error(chalk.grey(message)); const Info = message => console.log(chalk.bold(message)); const Warn = message => console.error(chalk.yellow.dim(message)); const News = message => console.error(chalk.cyan(message)); -const Print = txt => process.stderr.write(txt); +const Print = txt => process.stdout.write(txt); const Log = console.log; module.exports = { Error, Success, Quiet, Info, Warn, News, Print, Log }; diff --git a/lib/logger/simple.js b/lib/logger/simple.js index f31cec63..db31f36a 100644 --- a/lib/logger/simple.js +++ b/lib/logger/simple.js @@ -4,7 +4,7 @@ const Quiet = console.error; const Info = console.log; const Warn = console.error; const News = console.log; -const Print = txt => process.stderr.write(txt); +const Print = txt => process.stdout.write(txt); const Log = console.log; module.exports = { Error, Success, Quiet, Info, Warn, News, Print, Log }; diff --git a/lib/productionEnvironment.js b/lib/productionEnvironment.js new file mode 100644 index 00000000..2ff26370 --- /dev/null +++ b/lib/productionEnvironment.js @@ -0,0 +1,43 @@ +const prompts = require('prompts'); +const logger = require('./logger'); + +/** + * Checks if an environment name indicates a production environment. + * Matches environment names containing 'prod' or 'production' (case-insensitive). + * + * @param {string} environment - The environment name to check + * @returns {boolean} True if the environment is considered production + */ +const isProductionEnvironment = (environment) => { + if (!environment || typeof environment !== 'string') { + return false; + } + const lowerEnv = environment.toLowerCase(); + return lowerEnv.includes('prod') +}; + +/** + * Prompts the user to confirm execution on a production environment. + * + * @param {string} environment - The environment name + * @returns {Promise} True if the user confirmed, false otherwise + */ +const confirmProductionExecution = async (environment) => { + logger.Warn(`WARNING: You are executing on a production environment: ${environment}`); + logger.Warn('This could potentially modify production data or cause unintended side effects.'); + logger.Warn(''); + + const response = await prompts({ + type: 'confirm', + name: 'confirmed', + message: `Are you sure you want to continue executing on ${environment}?`, + initial: false + }); + + return response.confirmed; +}; + +module.exports = { + isProductionEnvironment, + confirmProductionExecution +}; diff --git a/lib/test-runner/formatters.js b/lib/test-runner/formatters.js new file mode 100644 index 00000000..a3b8b54b --- /dev/null +++ b/lib/test-runner/formatters.js @@ -0,0 +1,135 @@ +const chalk = require('chalk'); +const logger = require('../logger'); + +const formatDuration = (ms) => { + if (ms < 1000) return `${ms}ms`; + if (ms < 60000) return `${(ms / 1000).toFixed(2)}s`; + const minutes = Math.floor(ms / 60000); + const seconds = ((ms % 60000) / 1000).toFixed(2); + return `${minutes}m ${seconds}s`; +}; + +const formatTestLog = (logRow, isTestLog) => { + const message = logRow.message || ''; + const logType = logRow.error_type || ''; + const fullMessage = typeof message === 'string' ? message : JSON.stringify(message); + const cleanMessage = fullMessage.replace(/\n$/, ''); + + // Check if this message contains a path to a test file + const hasTestPath = /app\/lib\/test\/|modules\/.*\/test\/|\.liquid/.test(cleanMessage); + + if (isTestLog && hasTestPath) { + // Test log with path - highlight it (new test indicator) + return chalk.cyan.bold(`▶ ${cleanMessage}\n`); + } else if (isTestLog) { + // Test log without path - normal display + return chalk.white(` ${cleanMessage}\n`); + } else { + // Debug log (type != test_name) - dim display + return chalk.white(` ${logType}: ${cleanMessage}\n`); + } +}; + +/** + * Transform API response format to internal format for printTestResults + * API returns: { success, total_tests, total_assertions, total_errors, duration_ms, tests: [{name, success, assertions, errors}] } + * Internal format: { passed, failed, total, tests: [{name, status, passed, error}], duration } + */ +const transformTestResponse = (response) => { + const total = response.total_tests || response.total || 0; + const totalErrors = response.total_errors || 0; + const assertions = response.total_assertions || response.assertions || 0; + const duration = response.duration_ms || response.duration || 0; + + let passed = 0; + let failed = 0; + + if (response.success === true) { + passed = total; + failed = totalErrors; + } else { + failed = totalErrors || (total > 0 ? 1 : 0); + passed = Math.max(0, total - failed); + } + + const tests = []; + if (response.tests && Array.isArray(response.tests)) { + response.tests.forEach(test => { + const testItem = { + name: test.name || 'Unknown test', + status: test.success ? 'passed' : 'failed', + passed: test.success, + assertions: test.assertions + }; + + // Handle errors - could be object with error details or array + if (test.errors) { + if (Array.isArray(test.errors) && test.errors.length > 0) { + testItem.errors = test.errors; + } else if (typeof test.errors === 'object' && Object.keys(test.errors).length > 0) { + testItem.error = JSON.stringify(test.errors); + } + } + + tests.push(testItem); + }); + } + + return { total, passed, failed, assertions, tests, duration }; +}; + +const printTestResults = (results, duration) => { + const { passed = 0, failed = 0, total = 0, tests = [] } = results; + + if (tests && tests.length > 0) { + logger.Info('─'.repeat(60), { hideTimestamp: true }); + + tests.forEach(test => { + const status = test.status || (test.passed ? 'passed' : 'failed'); + const icon = status === 'passed' ? '✓' : '✗'; + const name = test.name || test.test_name || 'Unknown test'; + + if (status === 'passed') { + logger.Success(` ${icon} ${name}`, { hideTimestamp: true }); + } else { + logger.Error(` ${icon} ${name}`, { hideTimestamp: true, exit: false, notify: false }); + if (test.error || test.message) { + logger.Error(` Error: ${test.error || test.message}`, { hideTimestamp: true, exit: false, notify: false }); + } + if (test.errors && Array.isArray(test.errors)) { + test.errors.forEach(err => { + logger.Error(` - ${err.message || err}`, { hideTimestamp: true, exit: false, notify: false }); + }); + } + } + }); + + logger.Info('─'.repeat(60), { hideTimestamp: true }); + } + + // Print summary + const totalTests = total || (passed + failed); + const summary = []; + if (passed > 0) summary.push(`${passed} passed`); + if (failed > 0) summary.push(`${failed} failed`); + + const summaryText = summary.length > 0 ? summary.join(', ') : 'No tests executed'; + const durationText = duration ? ` in ${formatDuration(duration)}` : ''; + + if (failed > 0) { + logger.Error(`\n${summaryText} (${totalTests} total)${durationText}`, { hideTimestamp: true, exit: false, notify: false }); + } else if (passed > 0) { + logger.Success(`\n${summaryText} (${totalTests} total)${durationText}`, { hideTimestamp: true }); + } else { + logger.Warn(`\n${summaryText}${durationText}`, { hideTimestamp: true }); + } + + return failed === 0; +}; + +module.exports = { + formatDuration, + formatTestLog, + transformTestResponse, + printTestResults +}; diff --git a/lib/test-runner/index.js b/lib/test-runner/index.js new file mode 100644 index 00000000..6ce67b3f --- /dev/null +++ b/lib/test-runner/index.js @@ -0,0 +1,202 @@ +const Gateway = require('../proxy'); +const ServerError = require('../ServerError'); +const logger = require('../logger'); +const { TestLogStream } = require('./logStream'); +const { formatTestLog, transformTestResponse, printTestResults } = require('./formatters'); + +// Constants +const ASYNC_TEST_TIMEOUT_MS = 180000; // 3 minutes for async tests + +const runSingleTest = async (gateway, name) => { + const startTime = Date.now(); + + try { + const response = await gateway.test(name); + const duration = Date.now() - startTime; + + if (!response) { + logger.Error('No response received from test endpoint', { exit: false }); + return false; + } + + // Handle error response (not test failure, but actual error) + if (response.error && !response.tests) { + logger.Error(`Test error: ${response.error}`, { exit: false }); + return false; + } + + // Handle the JSON response from /_tests/run.js + if (typeof response === 'object') { + const transformedResults = transformTestResponse(response); + return printTestResults(transformedResults, transformedResults.duration || duration); + } + + // Fallback for unexpected response format + logger.Print(JSON.stringify(response, null, 2)); + return true; + } catch (error) { + // Handle HTTP 500 errors that contain valid test results + // The test endpoint returns 500 when tests fail, but includes results in the body + const errorMessage = error.message || ''; + const jsonMatch = errorMessage.match(/^(\d+)\s*-\s*(\{.+\})$/); + + if (jsonMatch) { + try { + const response = JSON.parse(jsonMatch[2]); + if (response.tests && Array.isArray(response.tests)) { + const transformedResults = transformTestResponse(response); + return printTestResults(transformedResults, transformedResults.duration); + } + } catch (parseError) { + // Fall through to generic error handling + } + } + + // Use ServerError for network errors + if (ServerError.isNetworkError(error)) { + ServerError.handler(error); + return false; + } + + logger.Error(`Failed to execute test: ${error.message}`, { exit: false }); + return false; + } +}; + +const runAllTests = async (gateway, authData) => { + return new Promise((resolve) => { + let resolved = false; + let stream = null; + let testName = null; + + const finish = (result) => { + if (resolved) return; + resolved = true; + if (stream) { + stream.stop(); + } + resolve(result); + }; + + // Create stream first so we don't miss any logs + stream = new TestLogStream(authData, ASYNC_TEST_TIMEOUT_MS, null); + + stream.on('testStarted', () => { + logger.Info('Test execution started', { hideTimestamp: true }); + }); + + stream.on('testLog', (logRow, isTestLog) => { + const message = logRow.message || ''; + const logType = logRow.error_type || ''; + const fullMessage = typeof message === 'string' ? message : JSON.stringify(message); + // Use stream.testName to handle logs that arrive before testRunAsync completes + const summaryType = stream.testName ? `${stream.testName} SUMMARY` : null; + + // Don't show JSON summary messages as logs - they will be processed as completion signals + // Only skip if error_type matches expected summary type to avoid filtering user logs + const isSummaryLog = summaryType && logType === summaryType && stream.isValidTestSummaryJson(fullMessage); + if (isSummaryLog) { + return; + } + + // Format and display the log with appropriate highlighting + const formattedLog = formatTestLog(logRow, isTestLog); + logger.Print(formattedLog); + }); + + stream.on('testCompleted', (results) => { + logger.Info('Test execution completed.', { hideTimestamp: true }); + const success = printTestResults(results, results.duration); + finish(success); + }); + + stream.on('timeout', () => { + logger.Error('Test execution timed out - no completion message received within 3 minutes', { exit: false }); + finish(false); + }); + + // Start listening for logs before starting the test + stream.start(); + + gateway.testRunAsync() + .then(testRunResponse => { + if (!testRunResponse) { + logger.Error('No response received from test endpoint', { exit: false }); + finish(false); + return; + } + + // Handle error response from testRunAsync + if (testRunResponse.error) { + logger.Error(`Test error: ${testRunResponse.error}`, { exit: false }); + finish(false); + return; + } + + testName = testRunResponse.test_name; + + logger.Debug(`Test run started with test_name: ${testName}`); + + // Update stream with the test name for filtering + stream.testName = testName; + }) + .catch(error => { + // Use ServerError for network errors + if (ServerError.isNetworkError(error)) { + ServerError.handler(error); + } else { + logger.Error(`Failed to start test execution: ${error.message}`, { exit: false }); + } + finish(false); + }); + }); +}; + +const checkTestsModule = async (gateway, environment) => { + try { + const modules = await gateway.listModules(); + const hasTestsModule = modules && modules.data && modules.data.some(module => module === 'tests'); + + if (!hasTestsModule) { + logger.Error(`Tests module not found. Please install the tests module: + pos-cli modules install tests + pos-cli deploy ${environment} +Then re-run the command.`, { exit: false }); + return false; + } + return true; + } catch (error) { + if (ServerError.isNetworkError(error)) { + ServerError.handler(error); + } else { + logger.Error(`Failed to check installed modules: ${error.message}`, { exit: false }); + } + return false; + } +}; + +const run = async (authData, environment, testName) => { + const gateway = new Gateway(authData); + + logger.Info(`Running tests on: ${authData.url}`, { hideTimestamp: true }); + + // First check if tests module is installed + const hasModule = await checkTestsModule(gateway, environment); + if (!hasModule) { + return false; + } + + if (testName) { + return runSingleTest(gateway, testName); + } else { + return runAllTests(gateway, authData); + } +}; + +module.exports = { + run, + runSingleTest, + runAllTests, + checkTestsModule, + ASYNC_TEST_TIMEOUT_MS +}; diff --git a/lib/test-runner/logStream.js b/lib/test-runner/logStream.js new file mode 100644 index 00000000..42010ca9 --- /dev/null +++ b/lib/test-runner/logStream.js @@ -0,0 +1,164 @@ +const EventEmitter = require('events'); +const Gateway = require('../proxy'); +const logger = require('../logger'); +const { transformTestResponse } = require('./formatters'); + +// Constants +const DEFAULT_TIMEOUT_MS = 30000; +const POLL_INTERVAL_MS = 2000; + +class TestLogStream extends EventEmitter { + constructor(authData, timeout = DEFAULT_TIMEOUT_MS, testName = null) { + super(); + this.authData = authData; + this.gateway = new Gateway(authData); + this.timeout = timeout; + this.testName = testName; + this.startTime = Date.now(); + this.testStarted = false; + this.completed = false; + this.lastId = 0; + this.intervalId = null; + this.timeoutId = null; + } + + isValidTestSummaryJson(message) { + try { + const obj = JSON.parse(message); + + const hasTestsArray = Array.isArray(obj.tests); + const hasSuccessField = typeof obj.success === 'boolean'; + const hasTotalField = typeof obj.total_tests === 'number' || typeof obj.total === 'number'; + const hasDurationField = typeof obj.duration_ms === 'number' || typeof obj.duration === 'number'; + + return hasTestsArray && hasSuccessField && (hasTotalField || hasDurationField); + } catch (e) { + return false; + } + } + + start() { + this.intervalId = setInterval(() => this.fetchLogs(), POLL_INTERVAL_MS); + this.timeoutId = setTimeout(() => { + this.emit('timeout'); + this.stop(); + }, this.timeout); + + logger.Debug('Starting test log streaming...'); + } + + stop() { + if (this.intervalId) { + clearInterval(this.intervalId); + this.intervalId = null; + } + if (this.timeoutId) { + clearTimeout(this.timeoutId); + this.timeoutId = null; + } + } + + async fetchLogs() { + try { + const response = await this.gateway.logs({ lastId: this.lastId || 0 }); + const logs = response && response.logs; + if (!logs) return; + + for (let k in logs) { + const row = logs[k]; + + if (this.lastId && row.id <= this.lastId) continue; + this.lastId = row.id; + + logger.Debug(`[DEBUG] Processing log entry: ${JSON.stringify(row)}`); + this.processLogMessage(row); + } + } catch (error) { + logger.Debug(`Error fetching logs: ${error.message}`); + } + } + + processLogMessage(row) { + const message = row.message || ''; + const logType = row.error_type || ''; + const fullMessage = typeof message === 'string' ? message : JSON.stringify(message); + const summaryType = this.testName ? `${this.testName} SUMMARY` : null; + + // Check if this is a test path log + const cleanMessage = fullMessage.replace(/\n$/, ''); + const hasTestPath = /app\/lib\/test\/|modules\/.*\/test\/|\.liquid/.test(cleanMessage); + + // Only process logs that are related to our test run + // If we have a testName, filter by it + if (this.testName) { + // Check for test start - look for "Starting unit tests" or "Starting test run" with matching type + if (logType === this.testName && (fullMessage.includes('Starting unit tests') || fullMessage.includes('Starting test run')) && !this.testStarted) { + this.testStarted = true; + this.emit('testStarted'); + return; + } + + // Check for test completion - look for log with type " SUMMARY" + if (!this.completed && logType === summaryType && this.isValidTestSummaryJson(fullMessage)) { + const testResults = this.parseJsonSummary(fullMessage); + if (testResults) { + this.completed = true; + this.emit('testCompleted', testResults); + this.stop(); + return; + } + } + + // Show all logs after test started and before completion (including user logs) + if (this.testStarted && !this.completed) { + this.emit('testLog', row, logType === this.testName); + } + + // Handle case where test framework doesn't emit "Starting unit tests" log + // If we see a test path log with matching error_type, treat it as test start + if (!this.testStarted && !this.completed && logType === this.testName && hasTestPath) { + this.testStarted = true; + this.emit('testStarted'); + this.emit('testLog', row, true); + } + } else { + // Legacy behavior when testName is not available + if (fullMessage.includes('Starting unit tests') && !this.testStarted) { + this.testStarted = true; + this.emit('testStarted'); + } + + // Check for test completion - look for the JSON summary format (tests module 1.1.1+) + if (!this.completed && this.isValidTestSummaryJson(fullMessage)) { + const testResults = this.parseJsonSummary(fullMessage); + if (testResults) { + this.completed = true; + this.emit('testCompleted', testResults); + this.stop(); + return; + } + } + + // Show all logs after test started and before completion (including user logs) + if (this.testStarted && !this.completed) { + this.emit('testLog', row, true); + } + } + } + + parseJsonSummary(message) { + try { + const summary = JSON.parse(message); + return transformTestResponse(summary); + } catch (error) { + logger.Debug(`[DEBUG] Failed to parse JSON summary: ${error.message}`); + return null; + } + } +} + +module.exports = { + TestLogStream, + DEFAULT_TIMEOUT_MS, + POLL_INTERVAL_MS +}; diff --git a/test/deploy.test.js b/test/deploy.test.js index 5dabe827..ab5e779b 100644 --- a/test/deploy.test.js +++ b/test/deploy.test.js @@ -7,6 +7,8 @@ const fs = require('fs'); const path = require('path'); require('dotenv').config(); +const { requireRealCredentials } = require('./utils/realCredentials'); +requireRealCredentials(); const cwd = name => path.join(process.cwd(), 'test', 'fixtures', 'deploy', name); diff --git a/test/exec-graphql.test.js b/test/exec-graphql.test.js index 2763a5a9..f1a15894 100644 --- a/test/exec-graphql.test.js +++ b/test/exec-graphql.test.js @@ -2,11 +2,17 @@ jest.mock('../lib/apiRequest', () => ({ apiRequest: jest.fn() })); +require('dotenv').config(); + const Gateway = require('../lib/proxy'); describe('Gateway graph method', () => { const { apiRequest } = require('../lib/apiRequest'); + beforeEach(() => { + jest.clearAllMocks(); + }); + test('calls apiRequest with correct parameters', async () => { const mockResponse = { "data": { @@ -53,55 +59,178 @@ describe('Gateway graph method', () => { describe('exec graphql CLI', () => { const exec = require('./utils/exec'); const cliPath = require('./utils/cliPath'); + const path = require('path'); + const fs = require('fs'); + const os = require('os'); - const env = Object.assign(process.env, { - CI: true, + // Use spread operator to avoid mutating global process.env + const env = { + ...process.env, + CI: 'true', MPKIT_URL: 'http://example.com', MPKIT_TOKEN: '1234', MPKIT_EMAIL: 'foo@example.com' + }; + + const CLI_TIMEOUT = 10000; + + describe('argument validation', () => { + test('requires graphql argument', async () => { + const { code, stderr } = await exec(`${cliPath} exec graphql staging`, { env, timeout: CLI_TIMEOUT }); + + expect(code).toBe(1); + expect(stderr).toMatch("error: missing required argument 'graphql'"); + }); + + test('requires environment argument', async () => { + const { code, stderr } = await exec(`${cliPath} exec graphql`, { env, timeout: CLI_TIMEOUT }); + + expect(code).toBe(1); + expect(stderr).toMatch("error: missing required argument 'environment'"); + }); }); - test('requires graphql argument', async () => { - const { code, stderr } = await exec(`${cliPath} exec graphql staging`, { env }); + describe('production environment confirmation', () => { + // Detailed production environment detection tests are in productionEnvironment.test.js + // These tests verify the CLI integration with the production environment helper - expect(code).toEqual(1); - expect(stderr).toMatch("error: missing required argument 'graphql'"); + test('prompts for confirmation on production environment and cancels when user declines', async () => { + const { code, stdout } = await exec(`echo "n" | ${cliPath} exec graphql production "{ records { results { id } } }"`, { env, timeout: CLI_TIMEOUT }); + + expect(code).toBe(0); + expect(stdout).toMatch('Execution cancelled.'); + }); + + test('proceeds with execution on production environment when user confirms', async () => { + const { stdout, stderr } = await exec(`echo "y" | ${cliPath} exec graphql production "{ records { results { id } } }"`, { env, timeout: CLI_TIMEOUT }); + + // This will fail because the mock API isn't set up, but we want to check it doesn't cancel + expect(stdout).not.toMatch('Execution cancelled.'); + expect(stderr).not.toMatch('Execution cancelled.'); + }); + + test('does not prompt for non-production environments', async () => { + const { stdout, stderr } = await exec(`${cliPath} exec graphql staging "{ records { results { id } } }"`, { env, timeout: CLI_TIMEOUT }); + + // Should not show warning or cancellation message + expect(stdout).not.toMatch('Execution cancelled.'); + expect(stderr).not.toMatch('WARNING'); + }); }); - test('cancels execution on production environment when user says no', async () => { - const { code, stdout, stderr } = await exec(`echo "n" | ${cliPath} exec graphql production "{ records { results { id } } }"`, { env }); + describe('file flag handling', () => { + test('accepts --file flag and reads content from file', async () => { + const fixturePath = path.resolve(__dirname, 'fixtures/test-graphql.graphql'); + const { stderr } = await exec(`${cliPath} exec graphql staging --file "${fixturePath}"`, { env, timeout: CLI_TIMEOUT }); - expect(code).toEqual(0); - expect(stdout).toMatch('Execution cancelled.'); + // Command will fail due to mock API but should not complain about missing graphql argument + expect(stderr).not.toMatch("error: missing required argument 'graphql'"); + }); + + test('accepts -f shorthand flag and reads content from file', async () => { + const fixturePath = path.resolve(__dirname, 'fixtures/test-graphql.graphql'); + const { stderr } = await exec(`${cliPath} exec graphql staging -f "${fixturePath}"`, { env, timeout: CLI_TIMEOUT }); + + // Command will fail due to mock API but should not complain about missing graphql argument + expect(stderr).not.toMatch("error: missing required argument 'graphql'"); + }); + + test('shows error when file does not exist', async () => { + const { code, stderr } = await exec(`${cliPath} exec graphql staging --file "/nonexistent/path/to/file.graphql"`, { env, timeout: CLI_TIMEOUT }); + + expect(code).toBe(1); + expect(stderr).toMatch('File not found'); + expect(stderr).toMatch('/nonexistent/path/to/file.graphql'); + }); + + test('handles empty file as missing query', async () => { + const emptyFile = path.join(os.tmpdir(), `empty-graphql-${Date.now()}.graphql`); + fs.writeFileSync(emptyFile, ''); + + try { + const { code, stderr } = await exec(`${cliPath} exec graphql staging -f "${emptyFile}"`, { env, timeout: CLI_TIMEOUT }); + + expect(code).toBe(1); + expect(stderr).toMatch("error: missing required argument 'graphql'"); + } finally { + fs.unlinkSync(emptyFile); + } + }); + + test('handles file with only whitespace as missing query', async () => { + const whitespaceFile = path.join(os.tmpdir(), `whitespace-graphql-${Date.now()}.graphql`); + fs.writeFileSync(whitespaceFile, ' \n\t\n '); + + try { + const { code, stderr } = await exec(`${cliPath} exec graphql staging -f "${whitespaceFile}"`, { env, timeout: CLI_TIMEOUT }); + + // Whitespace-only content is truthy, so it passes the !query check + // This documents current behavior - whitespace is accepted as valid query + expect(stderr).not.toMatch("error: missing required argument 'graphql'"); + } finally { + fs.unlinkSync(whitespaceFile); + } + }); + + test('reads file with GraphQL comments', async () => { + const commentFile = path.join(os.tmpdir(), `comment-graphql-${Date.now()}.graphql`); + fs.writeFileSync(commentFile, '# This is a comment\n{ records { results { id } } }'); + + try { + const { stderr } = await exec(`${cliPath} exec graphql staging -f "${commentFile}"`, { env, timeout: CLI_TIMEOUT }); + + expect(stderr).not.toMatch("error: missing required argument 'graphql'"); + } finally { + fs.unlinkSync(commentFile); + } + }); }); - test('proceeds with execution on production environment when user confirms', async () => { - const { code, stdout, stderr } = await exec(`echo "y" | ${cliPath} exec graphql production "{ records { results { id } } }"`, { env }); + describe('error handling', () => { + test('handles invalid URL format', async () => { + const badEnv = { + ...process.env, + CI: 'true', + MPKIT_URL: 'not-a-valid-url', + MPKIT_TOKEN: 'test-token', + MPKIT_EMAIL: 'test@example.com' + }; + + const { code, stderr } = await exec(`${cliPath} exec graphql staging "{ test }"`, { env: badEnv, timeout: CLI_TIMEOUT }); - // This will fail because the mock API isn't set up, but we want to check it doesn't cancel - expect(stdout).not.toMatch('Execution cancelled.'); - expect(stderr).not.toMatch('Execution cancelled.'); + expect(code).toBe(1); + }); }); - test('does not prompt for non-production environments', async () => { - const { code, stdout, stderr } = await exec(`${cliPath} exec graphql staging "{ records { results { id } } }"`, { env }); + describe('query edge cases', () => { + test('handles query with unicode characters', async () => { + const { stderr } = await exec(`${cliPath} exec graphql staging "{ records(filter: { name: { value: \\"日本語\\" } }) { results { id } } }"`, { env, timeout: CLI_TIMEOUT }); - expect(stdout).not.toMatch('WARNING: You are executing GraphQL on a production environment'); - expect(stdout).not.toMatch('Execution cancelled.'); + // Should not fail on argument parsing + expect(stderr).not.toMatch("error: missing required argument 'graphql'"); + }); + + test('handles mutation query', async () => { + const { stderr } = await exec(`${cliPath} exec graphql staging "mutation { record_create(record: { table: \\"test\\" }) { id } }"`, { env, timeout: CLI_TIMEOUT }); + + // Should accept mutations as valid GraphQL + expect(stderr).not.toMatch("error: missing required argument 'graphql'"); + }); }); }); // Integration test - requires real platformOS instance +const { requireRealCredentials } = require('./utils/realCredentials'); + describe('exec graphql integration', () => { const exec = require('./utils/exec'); const cliPath = require('./utils/cliPath'); - // Only run if real credentials are available - const hasRealCredentials = process.env.MPKIT_URL && - process.env.MPKIT_TOKEN && - !process.env.MPKIT_URL.includes('example.com'); + beforeAll(() => { + requireRealCredentials(); + }); - (hasRealCredentials ? test : test.skip)('executes graphql query on real instance', async () => { + test('executes graphql query on real instance', async () => { const query = '{ records(per_page: 20) { results { id } } }'; const { stdout, stderr, code } = await exec(`${cliPath} exec graphql dev "${query}"`, { env: process.env, @@ -118,7 +247,7 @@ describe('exec graphql integration', () => { expect(Array.isArray(response.data.records.results)).toBe(true); }, 30000); - (hasRealCredentials ? test : test.skip)('handles graphql syntax error on real instance', async () => { + test('handles graphql syntax error on real instance', async () => { const invalidQuery = '{ records(per_page: 20) { results { id } '; // Missing closing brace const { stdout, stderr, code } = await exec(`${cliPath} exec graphql dev "${invalidQuery}"`, { env: process.env, diff --git a/test/exec-liquid.test.js b/test/exec-liquid.test.js index a8f64449..f3e271c0 100644 --- a/test/exec-liquid.test.js +++ b/test/exec-liquid.test.js @@ -2,11 +2,17 @@ jest.mock('../lib/apiRequest', () => ({ apiRequest: jest.fn() })); +require('dotenv').config(); + const Gateway = require('../lib/proxy'); describe('Gateway liquid method', () => { const { apiRequest } = require('../lib/apiRequest'); + beforeEach(() => { + jest.clearAllMocks(); + }); + test('calls apiRequest with correct parameters', async () => { apiRequest.mockResolvedValue({ result: 'HELLO WORLD', error: null }); @@ -36,84 +42,206 @@ describe('Gateway liquid method', () => { describe('exec liquid CLI', () => { const exec = require('./utils/exec'); const cliPath = require('./utils/cliPath'); + const path = require('path'); + const fs = require('fs'); + const os = require('os'); - const env = Object.assign(process.env, { - CI: true, + // Use spread operator to avoid mutating global process.env + const env = { + ...process.env, + CI: 'true', MPKIT_URL: 'http://example.com', MPKIT_TOKEN: '1234', MPKIT_EMAIL: 'foo@example.com' + }; + + const CLI_TIMEOUT = 10000; + + describe('argument validation', () => { + test('requires code argument', async () => { + const { code, stderr } = await exec(`${cliPath} exec liquid staging`, { env, timeout: CLI_TIMEOUT }); + + expect(code).toBe(1); + expect(stderr).toMatch("error: missing required argument 'code'"); + }); + + test('requires environment argument', async () => { + const { code, stderr } = await exec(`${cliPath} exec liquid`, { env, timeout: CLI_TIMEOUT }); + + expect(code).toBe(1); + expect(stderr).toMatch("error: missing required argument 'environment'"); + }); }); - test('requires code argument', async () => { - const { code, stderr } = await exec(`${cliPath} exec liquid staging`, { env }); + describe('production environment confirmation', () => { + // Detailed production environment detection tests are in productionEnvironment.test.js + // These tests verify the CLI integration with the production environment helper + + test('prompts for confirmation on production environment and cancels when user declines', async () => { + const { code, stdout } = await exec(`echo "n" | ${cliPath} exec liquid production "{{ 'hello' | upcase }}"`, { env, timeout: CLI_TIMEOUT }); - expect(code).toEqual(1); - expect(stderr).toMatch("error: missing required argument 'code'"); + expect(code).toBe(0); + expect(stdout).toMatch('Execution cancelled.'); + }); + + test('proceeds with execution on production environment when user confirms', async () => { + const { stdout, stderr } = await exec(`echo "y" | ${cliPath} exec liquid production "{{ 'hello' | upcase }}"`, { env, timeout: CLI_TIMEOUT }); + + // This will fail because the mock API isn't set up, but we want to check it doesn't cancel + expect(stdout).not.toMatch('Execution cancelled.'); + expect(stderr).not.toMatch('Execution cancelled.'); + }); + + test('does not prompt for non-production environments', async () => { + const { stdout, stderr } = await exec(`${cliPath} exec liquid staging "{{ 'hello' | upcase }}"`, { env, timeout: CLI_TIMEOUT }); + + // Should not show warning or cancellation message + expect(stdout).not.toMatch('Execution cancelled.'); + expect(stderr).not.toMatch('WARNING'); + }); }); - test('cancels execution on production environment when user says no', async () => { - const { code, stdout, stderr } = await exec(`echo "n" | ${cliPath} exec liquid production "{{ 'hello' | upcase }}"`, { env }); + describe('file flag handling', () => { + test('accepts --file flag and reads content from file', async () => { + const fixturePath = path.resolve(__dirname, 'fixtures/test-liquid.liquid'); + const { stderr } = await exec(`${cliPath} exec liquid staging --file "${fixturePath}"`, { env, timeout: CLI_TIMEOUT }); + + // Command will fail due to mock API but should not complain about missing code argument + expect(stderr).not.toMatch("error: missing required argument 'code'"); + }); + + test('accepts -f shorthand flag and reads content from file', async () => { + const fixturePath = path.resolve(__dirname, 'fixtures/test-liquid.liquid'); + const { stderr } = await exec(`${cliPath} exec liquid staging -f "${fixturePath}"`, { env, timeout: CLI_TIMEOUT }); + + // Command will fail due to mock API but should not complain about missing code argument + expect(stderr).not.toMatch("error: missing required argument 'code'"); + }); + + test('shows error when file does not exist', async () => { + const { code, stderr } = await exec(`${cliPath} exec liquid staging --file "/nonexistent/path/to/file.liquid"`, { env, timeout: CLI_TIMEOUT }); + + expect(code).toBe(1); + expect(stderr).toMatch('File not found'); + expect(stderr).toMatch('/nonexistent/path/to/file.liquid'); + }); + + test('handles empty file as missing code', async () => { + const emptyFile = path.join(os.tmpdir(), `empty-liquid-${Date.now()}.liquid`); + fs.writeFileSync(emptyFile, ''); + + try { + const { code, stderr } = await exec(`${cliPath} exec liquid staging -f "${emptyFile}"`, { env, timeout: CLI_TIMEOUT }); + + expect(code).toBe(1); + expect(stderr).toMatch("error: missing required argument 'code'"); + } finally { + fs.unlinkSync(emptyFile); + } + }); + + test('handles file with only whitespace as valid code', async () => { + const whitespaceFile = path.join(os.tmpdir(), `whitespace-liquid-${Date.now()}.liquid`); + fs.writeFileSync(whitespaceFile, ' \n\t\n '); + + try { + const { stderr } = await exec(`${cliPath} exec liquid staging -f "${whitespaceFile}"`, { env, timeout: CLI_TIMEOUT }); + + // Whitespace-only content is truthy, so it passes the !code check + // This documents current behavior - whitespace is accepted as valid code + expect(stderr).not.toMatch("error: missing required argument 'code'"); + } finally { + fs.unlinkSync(whitespaceFile); + } + }); + + test('reads file with liquid comments', async () => { + const commentFile = path.join(os.tmpdir(), `comment-liquid-${Date.now()}.liquid`); + fs.writeFileSync(commentFile, "{% comment %}This is a comment{% endcomment %}{{ 'hello' | upcase }}"); - expect(code).toEqual(0); - expect(stdout).toMatch('Execution cancelled.'); + try { + const { stderr } = await exec(`${cliPath} exec liquid staging -f "${commentFile}"`, { env, timeout: CLI_TIMEOUT }); + + expect(stderr).not.toMatch("error: missing required argument 'code'"); + } finally { + fs.unlinkSync(commentFile); + } + }); }); - test('proceeds with execution on production environment when user confirms', async () => { - const { code, stdout, stderr } = await exec(`echo "y" | ${cliPath} exec liquid production "{{ 'hello' | upcase }}"`, { env }); + describe('error handling', () => { + test('handles invalid URL format', async () => { + const badEnv = { + ...process.env, + CI: 'true', + MPKIT_URL: 'not-a-valid-url', + MPKIT_TOKEN: 'test-token', + MPKIT_EMAIL: 'test@example.com' + }; + + const { code } = await exec(`${cliPath} exec liquid staging "{{ 'test' }}"`, { env: badEnv, timeout: CLI_TIMEOUT }); - // This will fail because the mock API isn't set up, but we want to check it doesn't cancel - expect(stdout).not.toMatch('Execution cancelled.'); - expect(stderr).not.toMatch('Execution cancelled.'); + expect(code).toBe(1); + }); }); - test('does not prompt for non-production environments', async () => { - const { code, stdout, stderr } = await exec(`${cliPath} exec liquid staging "{{ 'hello' | upcase }}"`, { env }); + describe('code edge cases', () => { + test('handles code with unicode characters', async () => { + const { stderr } = await exec(`${cliPath} exec liquid staging "{{ '日本語' | upcase }}"`, { env, timeout: CLI_TIMEOUT }); + + // Should not fail on argument parsing + expect(stderr).not.toMatch("error: missing required argument 'code'"); + }); - expect(stdout).not.toMatch('WARNING: You are executing liquid code on a production environment'); - expect(stdout).not.toMatch('Execution cancelled.'); + test('handles code with special liquid tags', async () => { + const { stderr } = await exec(`${cliPath} exec liquid staging "{% assign x = 'hello' %}{{ x }}"`, { env, timeout: CLI_TIMEOUT }); + + // Should accept liquid tags as valid code + expect(stderr).not.toMatch("error: missing required argument 'code'"); + }); }); }); // Integration test - requires real platformOS instance +const { requireRealCredentials } = require('./utils/realCredentials'); + describe('exec liquid integration', () => { const exec = require('./utils/exec'); const cliPath = require('./utils/cliPath'); - // Only run if real credentials are available - const hasRealCredentials = process.env.MPKIT_URL && - process.env.MPKIT_TOKEN && - !process.env.MPKIT_URL.includes('example.com'); + beforeAll(() => { + requireRealCredentials(); + }); - (hasRealCredentials ? test : test.skip)('executes liquid code on real instance', async () => { + test('executes liquid code on real instance', async () => { const { stdout, stderr, code } = await exec(`${cliPath} exec liquid dev "{{ 'hello' | upcase }}"`, { env: process.env, timeout: 30000 }); - expect(code).toEqual(0); + expect(code).toBe(0); expect(stdout).toMatch('HELLO'); expect(stderr).toBe(''); }, 30000); - (hasRealCredentials ? test : test.skip)('handles liquid syntax error on real instance', async () => { - const { stdout, stderr, code } = await exec(`${cliPath} exec liquid dev "{{ 'hello' | invalid_filter }}"`, { + test('handles liquid syntax error on real instance', async () => { + const { stderr, code } = await exec(`${cliPath} exec liquid dev "{{ 'hello' | invalid_filter }}"`, { env: process.env, timeout: 30000 }); - expect(code).toEqual(1); + expect(code).toBe(1); expect(stderr).toMatch('Liquid execution error'); }, 30000); - (hasRealCredentials ? test : test.skip)('executes {{ \'now\' | to_time }} and returns current time', async () => { - const beforeTime = new Date(); + test('executes {{ \'now\' | to_time }} and returns current time', async () => { const { stdout, stderr, code } = await exec(`${cliPath} exec liquid dev "{{ 'now' | to_time }}"`, { env: process.env, timeout: 30000 }); - const afterTime = new Date(); + const currentTime = new Date(); - expect(code).toEqual(0); + expect(code).toBe(0); expect(stderr).toBe(''); // Parse the returned time - liquid to_time returns ISO format like "2023-01-01 12:00:00 +0000" @@ -121,22 +249,17 @@ describe('exec liquid integration', () => { const returnedTime = new Date(returnedTimeStr); // Check that the returned time is within 1 second of the current time - const timeDiff = Math.abs(returnedTime.getTime() - beforeTime.getTime()); - expect(timeDiff).toBeLessThanOrEqual(1000); // 1 second in milliseconds - - // Also check it's not in the future beyond our test window - const futureDiff = afterTime.getTime() - returnedTime.getTime(); - expect(futureDiff).toBeGreaterThanOrEqual(0); - expect(futureDiff).toBeLessThanOrEqual(1000); + const timeDiff = Math.abs(returnedTime.getTime() - currentTime.getTime()); + expect(timeDiff).toBeLessThanOrEqual(2000); // 1 second in milliseconds }, 30000); - (hasRealCredentials ? test : test.skip)('handles unknown tag error', async () => { - const { stdout, stderr, code } = await exec(`${cliPath} exec liquid dev "{% hello %}"`, { + test('handles unknown tag error', async () => { + const { stderr, code } = await exec(`${cliPath} exec liquid dev "{% hello %}"`, { env: process.env, timeout: 30000 }); - expect(code).toEqual(1); + expect(code).toBe(1); expect(stderr).toMatch('Liquid execution error: Liquid syntax error: Unknown tag \'hello\''); }, 30000); }); diff --git a/test/fixtures/test-graphql.graphql b/test/fixtures/test-graphql.graphql new file mode 100644 index 00000000..2bb04d6a --- /dev/null +++ b/test/fixtures/test-graphql.graphql @@ -0,0 +1 @@ +{ records(per_page: 20) { results { id } } } diff --git a/test/fixtures/test-liquid.liquid b/test/fixtures/test-liquid.liquid new file mode 100644 index 00000000..bde0b260 --- /dev/null +++ b/test/fixtures/test-liquid.liquid @@ -0,0 +1 @@ +{{ 'hello world' | upcase }} diff --git a/test/fixtures/test/with-passing-tests/app/lib/test/passing_one_test.liquid b/test/fixtures/test/with-passing-tests/app/lib/test/passing_one_test.liquid new file mode 100644 index 00000000..aa3d2f25 --- /dev/null +++ b/test/fixtures/test/with-passing-tests/app/lib/test/passing_one_test.liquid @@ -0,0 +1,4 @@ +{% liquid + assign var = '{"field": 1 }' | parse_json + include 'modules/tests/assertions/equal', contract: contract, given: var.field, expected: 1, field_name: 'field' +%} diff --git a/test/fixtures/test/with-passing-tests/app/lib/test/passing_two_test.liquid b/test/fixtures/test/with-passing-tests/app/lib/test/passing_two_test.liquid new file mode 100644 index 00000000..72d527d6 --- /dev/null +++ b/test/fixtures/test/with-passing-tests/app/lib/test/passing_two_test.liquid @@ -0,0 +1,4 @@ +{% liquid + assign var = '{"value": "hello" }' | parse_json + include 'modules/tests/assertions/equal', contract: contract, given: var.value, expected: 'hello', field_name: 'value' +%} diff --git a/test/fixtures/test/with-passing-tests/app/pos-modules.json b/test/fixtures/test/with-passing-tests/app/pos-modules.json new file mode 100644 index 00000000..d6ee86fe --- /dev/null +++ b/test/fixtures/test/with-passing-tests/app/pos-modules.json @@ -0,0 +1,5 @@ +{ + "modules": { + "tests": "1.2.0" + } +} diff --git a/test/fixtures/test/with-passing-tests/app/pos-modules.lock.json b/test/fixtures/test/with-passing-tests/app/pos-modules.lock.json new file mode 100644 index 00000000..d6ee86fe --- /dev/null +++ b/test/fixtures/test/with-passing-tests/app/pos-modules.lock.json @@ -0,0 +1,5 @@ +{ + "modules": { + "tests": "1.2.0" + } +} diff --git a/test/fixtures/test/with-passing-tests/app/views/pages/index.liquid b/test/fixtures/test/with-passing-tests/app/views/pages/index.liquid new file mode 100644 index 00000000..ddae8958 --- /dev/null +++ b/test/fixtures/test/with-passing-tests/app/views/pages/index.liquid @@ -0,0 +1,4 @@ +--- +slug: test-fixture-index +--- +Test fixture placeholder page diff --git a/test/fixtures/test/with-passing-tests/modules/tests/public/graphql/sent_mails/search.graphql b/test/fixtures/test/with-passing-tests/modules/tests/public/graphql/sent_mails/search.graphql new file mode 100644 index 00000000..7ea4a0b2 --- /dev/null +++ b/test/fixtures/test/with-passing-tests/modules/tests/public/graphql/sent_mails/search.graphql @@ -0,0 +1,20 @@ +query mails($id: ID, $limit: Int = 20, $page: Int = 1) { + mails: admin_sent_notifications( + per_page: $limit + page: $page + filter: { id: { value: $id }, notification_type: { value: EMAIL } } + sort: { created_at: { order: DESC } } + ) { + total_entries + total_pages + current_page + has_previous_page + has_next_page + results { + id + created_at + content + options + } + } +} diff --git a/test/fixtures/test/with-passing-tests/modules/tests/public/graphql/test_files/count.graphql b/test/fixtures/test/with-passing-tests/modules/tests/public/graphql/test_files/count.graphql new file mode 100644 index 00000000..d507b054 --- /dev/null +++ b/test/fixtures/test/with-passing-tests/modules/tests/public/graphql/test_files/count.graphql @@ -0,0 +1,12 @@ +query count_test_partials($path: String, $per_page: Int!){ + admin_liquid_partials( + per_page: $per_page + filter: { + path: { ends_with: "_test", contains: $path } + } + + ) { + total_entries + total_pages + } +} diff --git a/test/fixtures/test/with-passing-tests/modules/tests/public/graphql/test_files/search.graphql b/test/fixtures/test/with-passing-tests/modules/tests/public/graphql/test_files/search.graphql new file mode 100644 index 00000000..0b6bf71b --- /dev/null +++ b/test/fixtures/test/with-passing-tests/modules/tests/public/graphql/test_files/search.graphql @@ -0,0 +1,15 @@ +query test_partials($path: String, $per_page: Int = 100, $page: Int = 1){ + admin_liquid_partials( + per_page: $per_page + page: $page + filter: { + path: { ends_with: "_test", contains: $path } + } + + ) { + total_entries + results { + path + } + } +} diff --git a/test/fixtures/test/with-passing-tests/modules/tests/public/lib/assertions/blank.liquid b/test/fixtures/test/with-passing-tests/modules/tests/public/lib/assertions/blank.liquid new file mode 100644 index 00000000..3a83aff5 --- /dev/null +++ b/test/fixtures/test/with-passing-tests/modules/tests/public/lib/assertions/blank.liquid @@ -0,0 +1,7 @@ +{% liquid + hash_assign contract['total'] = contract['total'] | plus: 1 + unless object[field_name] == blank + function contract = 'modules/tests/helpers/register_error', contract: contract, field_name: field_name, key: 'modules/tests/should.be_blank', message: null + endunless + return contract +%} diff --git a/test/fixtures/test/with-passing-tests/modules/tests/public/lib/assertions/equal.liquid b/test/fixtures/test/with-passing-tests/modules/tests/public/lib/assertions/equal.liquid new file mode 100644 index 00000000..33a4401e --- /dev/null +++ b/test/fixtures/test/with-passing-tests/modules/tests/public/lib/assertions/equal.liquid @@ -0,0 +1,9 @@ +{% liquid + hash_assign contract['total'] = contract['total'] | plus: 1 + + if given != expected + assign msg = 'modules/tests/should.equal' | t: given: given, expected: expected + function contract = 'modules/tests/helpers/register_error', contract: contract, field_name: field_name, message: msg + endif + return contract +%} diff --git a/test/fixtures/test/with-passing-tests/modules/tests/public/lib/assertions/invalid_object.liquid b/test/fixtures/test/with-passing-tests/modules/tests/public/lib/assertions/invalid_object.liquid new file mode 100644 index 00000000..ed73da97 --- /dev/null +++ b/test/fixtures/test/with-passing-tests/modules/tests/public/lib/assertions/invalid_object.liquid @@ -0,0 +1,7 @@ +{% liquid + hash_assign contract['total'] = contract['total'] | plus: 1 + if object.valid + function contract = 'modules/tests/helpers/register_error', contract: contract, field_name: field_name, message: object.errors + endif + return contract +%} diff --git a/test/fixtures/test/with-passing-tests/modules/tests/public/lib/assertions/not_presence.liquid b/test/fixtures/test/with-passing-tests/modules/tests/public/lib/assertions/not_presence.liquid new file mode 100644 index 00000000..f9806eb6 --- /dev/null +++ b/test/fixtures/test/with-passing-tests/modules/tests/public/lib/assertions/not_presence.liquid @@ -0,0 +1,7 @@ +{% liquid + hash_assign contract['total'] = contract['total'] | plus: 1 + if object[field_name] != blank + function contract = 'modules/tests/helpers/register_error', contract: contract, field_name: field_name, key: 'modules/tests/should.not.be_blank' + endif + return contract +%} diff --git a/test/fixtures/test/with-passing-tests/modules/tests/public/lib/assertions/not_true.liquid b/test/fixtures/test/with-passing-tests/modules/tests/public/lib/assertions/not_true.liquid new file mode 100644 index 00000000..61b055ac --- /dev/null +++ b/test/fixtures/test/with-passing-tests/modules/tests/public/lib/assertions/not_true.liquid @@ -0,0 +1,10 @@ +{% liquid + hash_assign contract['total'] = contract['total'] | plus: 1 + + assign value = value | default: object[field_name] + if value + function contract = 'modules/tests/helpers/register_error', contract: contract, field_name: field_name, key: 'modules/tests/should.not.be_true' + endif + + return contract +%} diff --git a/test/fixtures/test/with-passing-tests/modules/tests/public/lib/assertions/not_valid_object.liquid b/test/fixtures/test/with-passing-tests/modules/tests/public/lib/assertions/not_valid_object.liquid new file mode 100644 index 00000000..5268eb4c --- /dev/null +++ b/test/fixtures/test/with-passing-tests/modules/tests/public/lib/assertions/not_valid_object.liquid @@ -0,0 +1,7 @@ +{% liquid + hash_assign contract['total'] = contract['total'] | plus: 1 + if object.valid == true + function contract = 'modules/tests/helpers/register_error', contract: contract, field_name: field_name, key: 'modules/tests/should.not.be_valid' + endif + return contract +%} diff --git a/test/fixtures/test/with-passing-tests/modules/tests/public/lib/assertions/object_contains_object.liquid b/test/fixtures/test/with-passing-tests/modules/tests/public/lib/assertions/object_contains_object.liquid new file mode 100644 index 00000000..15eec117 --- /dev/null +++ b/test/fixtures/test/with-passing-tests/modules/tests/public/lib/assertions/object_contains_object.liquid @@ -0,0 +1,20 @@ +{% liquid + hash_assign contract['total'] = contract['total'] | plus: 1 + + for property in object_contains + assign key = property[0] + assign value = property[1] + + if given[key] == blank + assign message = 'modules/tests/should.have_key' | t: field_name: field_name + function contract = 'modules/tests/helpers/register_error', contract: contract, field_name: key, message: message + else + if given[key] != value + assign message = 'modules/tests/should.have_key_with_value' | t: value: value + function contract = 'modules/tests/helpers/register_error', contract: contract, field_name: key, message: message + endif + endif + endfor + + return contract +%} diff --git a/test/fixtures/test/with-passing-tests/modules/tests/public/lib/assertions/presence.liquid b/test/fixtures/test/with-passing-tests/modules/tests/public/lib/assertions/presence.liquid new file mode 100644 index 00000000..10f1ab7e --- /dev/null +++ b/test/fixtures/test/with-passing-tests/modules/tests/public/lib/assertions/presence.liquid @@ -0,0 +1,7 @@ +{% liquid + hash_assign contract['total'] = contract['total'] | plus: 1 + if object[field_name] == blank + function contract = 'modules/tests/helpers/register_error', contract: contract, field_name: field_name, key: 'modules/tests/should.not.be_blank' + endif + return contract +%} diff --git a/test/fixtures/test/with-passing-tests/modules/tests/public/lib/assertions/true.liquid b/test/fixtures/test/with-passing-tests/modules/tests/public/lib/assertions/true.liquid new file mode 100644 index 00000000..daac6d3b --- /dev/null +++ b/test/fixtures/test/with-passing-tests/modules/tests/public/lib/assertions/true.liquid @@ -0,0 +1,10 @@ +{% liquid + hash_assign contract['total'] = contract['total'] | plus: 1 + + assign value = value | default: object[field_name] + unless value + function contract = 'modules/tests/helpers/register_error', contract: contract, field_name: field_name, key: 'modules/tests/should.be_true' + endunless + + return contract +%} diff --git a/test/fixtures/test/with-passing-tests/modules/tests/public/lib/assertions/valid_object.liquid b/test/fixtures/test/with-passing-tests/modules/tests/public/lib/assertions/valid_object.liquid new file mode 100644 index 00000000..a4c44f2b --- /dev/null +++ b/test/fixtures/test/with-passing-tests/modules/tests/public/lib/assertions/valid_object.liquid @@ -0,0 +1,8 @@ +{% liquid + hash_assign contract['total'] = contract['total'] | plus: 1 + if object.valid != true + assign message = 'should be valid: ' | append: object.errors + function contract = 'modules/tests/helpers/register_error', contract: contract, field_name: field_name, message: message + endif + return contract +%} diff --git a/test/fixtures/test/with-passing-tests/modules/tests/public/lib/commands/run.liquid b/test/fixtures/test/with-passing-tests/modules/tests/public/lib/commands/run.liquid new file mode 100644 index 00000000..87930c7d --- /dev/null +++ b/test/fixtures/test/with-passing-tests/modules/tests/public/lib/commands/run.liquid @@ -0,0 +1,46 @@ +{% liquid + assign ctx = context + hash_assign ctx['tests'] = true + log 'Starting unit tests', type: test_name + assign __start = "now" | to_time + assign per_page = 100 + graphql total_pages = 'modules/tests/test_files/count', per_page: per_page, path: context.params.name | dig: "admin_liquid_partials" | dig: "total_pages" + + if tests.size == 0 + unless format == 'js' + echo 'no tests found' + endunless + endif + assign total_errors = 0 + assign contracts = '' | split: ',' + + for page in (1..total_pages) + graphql tests = 'modules/tests/test_files/search', path: context.params.name, page: page, per_page: per_page | dig: "admin_liquid_partials" | dig: "results" + for test in tests + log test, type: test_name + assign contract = '{ "errors": {}, "success": true, "total": 0 }' | parse_json + + # platformos-check-disable ConvertIncludeToRender + include test.path, registry: test.path, contract: contract + # platformos-check-enable ConvertIncludeToRender + hash_assign contract['test_path'] = test.path + assign contracts = contracts | add_to_array: contract + assign total_errors = total_errors | plus: contract.errors.size + endfor + endfor + assign __stop = "now" | to_time + assign total_duration = __start | time_diff: __stop, 'ms' | round + + assign data = '{}' | parse_json + hash_assign data['contracts'] = contracts + hash_assign data['total_errors'] = total_errors + hash_assign data['total_duration'] = total_duration + + assign test_formatter = format | default: 'html' | prepend: 'modules/tests/tests/show_' + # platformos-check-disable ConvertIncludeToRender + include test_formatter, contracts: contracts, total_errors: total_errors, total_duration: total_duration, test_name: test_name + # platformos-check-enable ConvertIncludeToRender + if total_errors > 0 + response_status 500 + endif +%} diff --git a/test/fixtures/test/with-passing-tests/modules/tests/public/lib/helpers/register_error.liquid b/test/fixtures/test/with-passing-tests/modules/tests/public/lib/helpers/register_error.liquid new file mode 100644 index 00000000..11dfa1d1 --- /dev/null +++ b/test/fixtures/test/with-passing-tests/modules/tests/public/lib/helpers/register_error.liquid @@ -0,0 +1,27 @@ +{% comment %} + @params + contract - { errors: {}, success: true } + field_name + message: + key: i18n to be resolved into message +{% endcomment %} + +{% liquid + assign key = key | default: null + assign message = message | default: null + if key + assign msg = key | t + else + assign msg = message + endif + + assign errors = contract.errors + + assign field_erorrs = errors[field_name] | default: '[]' | parse_json + assign field_erorrs = field_erorrs | array_add: msg + + hash_assign errors[field_name] = field_erorrs + hash_assign contract['success'] = false + + return contract +%} diff --git a/test/fixtures/test/with-passing-tests/modules/tests/public/lib/queries/sent_mails/find.liquid b/test/fixtures/test/with-passing-tests/modules/tests/public/lib/queries/sent_mails/find.liquid new file mode 100644 index 00000000..4ab4a057 --- /dev/null +++ b/test/fixtures/test/with-passing-tests/modules/tests/public/lib/queries/sent_mails/find.liquid @@ -0,0 +1,8 @@ +{% liquid + if id == blank + return null + endif + + graphql r = 'modules/tests/sent_mails/search', id: id, limit: 1 + return r.mails.results.first +%} diff --git a/test/fixtures/test/with-passing-tests/modules/tests/public/lib/queries/sent_mails/search.liquid b/test/fixtures/test/with-passing-tests/modules/tests/public/lib/queries/sent_mails/search.liquid new file mode 100644 index 00000000..066ec067 --- /dev/null +++ b/test/fixtures/test/with-passing-tests/modules/tests/public/lib/queries/sent_mails/search.liquid @@ -0,0 +1,4 @@ +{% liquid + graphql r = 'modules/tests/sent_mails/search', limit: limit, page: page + return r.mails +%} diff --git a/test/fixtures/test/with-passing-tests/modules/tests/public/translations/en/should.yml b/test/fixtures/test/with-passing-tests/modules/tests/public/translations/en/should.yml new file mode 100644 index 00000000..6f40d6fc --- /dev/null +++ b/test/fixtures/test/with-passing-tests/modules/tests/public/translations/en/should.yml @@ -0,0 +1,16 @@ +en: + should: + be_false: should be false + be_valid: should be valid + equal: expected %{given} to equal %{expected} + equal_not_verbose: does not match + have_key: key should exist in "%{field_name}" + have_key_with_value: should have value "%{value}" + match: match + be_blank: should be blank + be_true: should be true + not: + be_empty: should not be empty + be_blank: should not be blank + be_valid: should not be valid + be_true: should not be true diff --git a/test/fixtures/test/with-passing-tests/modules/tests/public/views/layouts/mailer.html.liquid b/test/fixtures/test/with-passing-tests/modules/tests/public/views/layouts/mailer.html.liquid new file mode 100644 index 00000000..c33042aa --- /dev/null +++ b/test/fixtures/test/with-passing-tests/modules/tests/public/views/layouts/mailer.html.liquid @@ -0,0 +1,165 @@ + + + + + + + + + + + {% liquid + assign url = 'https://' | append: context.location.host + %} + +
+

+ +
+ {{ 'app.title' | t: default: 'App' }} +
+

+ + {{ content_for_layout }} + + +
+ + + diff --git a/test/fixtures/test/with-passing-tests/modules/tests/public/views/layouts/test.liquid b/test/fixtures/test/with-passing-tests/modules/tests/public/views/layouts/test.liquid new file mode 100644 index 00000000..6b57c725 --- /dev/null +++ b/test/fixtures/test/with-passing-tests/modules/tests/public/views/layouts/test.liquid @@ -0,0 +1,154 @@ + + + + + + + +
+
+ {{ content_for_layout }} +
+
+ + diff --git a/test/fixtures/test/with-passing-tests/modules/tests/public/views/pages/_tests/index.html.liquid b/test/fixtures/test/with-passing-tests/modules/tests/public/views/pages/_tests/index.html.liquid new file mode 100644 index 00000000..5db7ce85 --- /dev/null +++ b/test/fixtures/test/with-passing-tests/modules/tests/public/views/pages/_tests/index.html.liquid @@ -0,0 +1,10 @@ +--- +layout: modules/tests/test +--- +{% liquid + if context.environment == 'staging' or context.environment == 'development' + graphql tests = 'modules/tests/test_files/search', path: context.params.name | dig: "admin_liquid_partials" | dig: "results" + + render 'modules/tests/tests/index', tests: tests + endif +%} diff --git a/test/fixtures/test/with-passing-tests/modules/tests/public/views/pages/_tests/index.js.liquid b/test/fixtures/test/with-passing-tests/modules/tests/public/views/pages/_tests/index.js.liquid new file mode 100644 index 00000000..07256730 --- /dev/null +++ b/test/fixtures/test/with-passing-tests/modules/tests/public/views/pages/_tests/index.js.liquid @@ -0,0 +1,28 @@ +--- +layout: '' +--- +{% liquid + if context.environment == 'staging' or context.environment == 'development' + assign per_page = 100 + graphql total_pages = 'modules/tests/test_files/count', per_page: per_page, path: context.params.name | dig: "admin_liquid_partials" | dig: "total_pages" + + assign result = '[]' | parse_json + + for page in (1..total_pages) + graphql tests = 'modules/tests/test_files/search', path: context.params.name, page: page, per_page: per_page | dig: "admin_liquid_partials" | dig: "results" + + for test in tests + assign test_name = test.path | remove_first: 'lib/test/' | remove_first: '_test' + assign test_url = '/_tests/run.js?test_name=' | append: test_name + assign test_object = '{}' | parse_json + hash_assign test_object['name'] = test_name + hash_assign test_object['url'] = test_url + assign result = result | add_to_array: test_object + endfor + endfor + + echo result | json + else + echo '{"error":"Tests can only be accessed in staging or development environment"}' + endif +%} diff --git a/test/fixtures/test/with-passing-tests/modules/tests/public/views/pages/_tests/run.html.liquid b/test/fixtures/test/with-passing-tests/modules/tests/public/views/pages/_tests/run.html.liquid new file mode 100644 index 00000000..78ba8fb2 --- /dev/null +++ b/test/fixtures/test/with-passing-tests/modules/tests/public/views/pages/_tests/run.html.liquid @@ -0,0 +1,11 @@ +--- +layout: modules/tests/test +--- +{% liquid + if context.environment == 'staging' or context.environment == 'development' + assign test_name = 5 | random_string | prepend: "liquid_test_" + # platformos-check-disable ConvertIncludeToRender + include 'modules/tests/commands/run', format: context.params.formatter, test_name: test_name + # platformos-check-enable ConvertIncludeToRender + endif +%} diff --git a/test/fixtures/test/with-passing-tests/modules/tests/public/views/pages/_tests/run.js.liquid b/test/fixtures/test/with-passing-tests/modules/tests/public/views/pages/_tests/run.js.liquid new file mode 100644 index 00000000..d36090cc --- /dev/null +++ b/test/fixtures/test/with-passing-tests/modules/tests/public/views/pages/_tests/run.js.liquid @@ -0,0 +1,13 @@ +--- +layout: '' +--- +{% liquid + if context.environment == 'staging' or context.environment == 'development' + assign test_name = 5 | random_string | prepend: "liquid_test_" + # platformos-check-disable ConvertIncludeToRender + include 'modules/tests/commands/run', format: 'js', test_name: test_name + # platformos-check-enable ConvertIncludeToRender + else + echo '{"success":false,"error":"Tests can only be run in staging or development environment"}' + endif +%} diff --git a/test/fixtures/test/with-passing-tests/modules/tests/public/views/pages/_tests/run_async.js.liquid b/test/fixtures/test/with-passing-tests/modules/tests/public/views/pages/_tests/run_async.js.liquid new file mode 100644 index 00000000..79956bd9 --- /dev/null +++ b/test/fixtures/test/with-passing-tests/modules/tests/public/views/pages/_tests/run_async.js.liquid @@ -0,0 +1,13 @@ +--- +layout: '' +--- +{% if context.environment == 'staging' or context.environment == 'development' %} + {% assign test_name = 5 | random_string | prepend: "liquid_test_" %} + {% background source_name: "liquid_tests", test_name: test_name %} + {% include 'modules/tests/commands/run', format: 'log_js', test_name: test_name %} + {% endbackground %} + {% assign result = '{}' | parse_json | hash_merge: test_name: test_name %} + {{ result }} +{% else %} + {"success":false,"error":"Tests can only be run in staging or development environment"} +{% endif %} diff --git a/test/fixtures/test/with-passing-tests/modules/tests/public/views/pages/_tests/run_async.liquid b/test/fixtures/test/with-passing-tests/modules/tests/public/views/pages/_tests/run_async.liquid new file mode 100644 index 00000000..7cb08dfb --- /dev/null +++ b/test/fixtures/test/with-passing-tests/modules/tests/public/views/pages/_tests/run_async.liquid @@ -0,0 +1,10 @@ +--- +layout: '' +--- +{% if context.environment == 'staging' %} + {% assign test_name = 5 | random_string | prepend: "liquid_test_" %} + {% background source_name: "liquid_tests", test_name: test_name %} + {% include 'modules/tests/commands/run', format: 'log', test_name: test_name %} + {% endbackground %} + {{ test_name }} +{% endif %} diff --git a/test/fixtures/test/with-passing-tests/modules/tests/public/views/pages/_tests/sent_mails/index.liquid b/test/fixtures/test/with-passing-tests/modules/tests/public/views/pages/_tests/sent_mails/index.liquid new file mode 100644 index 00000000..2e5885b2 --- /dev/null +++ b/test/fixtures/test/with-passing-tests/modules/tests/public/views/pages/_tests/sent_mails/index.liquid @@ -0,0 +1,11 @@ +--- +layout: modules/tests/test +--- +{% liquid + if context.environment == 'staging' or context.environment == 'development' + assign page = context.params.page | to_positive_integer: 1 + function mails = 'modules/tests/queries/sent_mails/search', limit: 20, page: page + + render 'modules/tests/sent_mails/list', mails: mails + endif +%} diff --git a/test/fixtures/test/with-passing-tests/modules/tests/public/views/pages/_tests/sent_mails/show.liquid b/test/fixtures/test/with-passing-tests/modules/tests/public/views/pages/_tests/sent_mails/show.liquid new file mode 100644 index 00000000..5c612fe9 --- /dev/null +++ b/test/fixtures/test/with-passing-tests/modules/tests/public/views/pages/_tests/sent_mails/show.liquid @@ -0,0 +1,11 @@ +--- +slug: _tests/sent_mails/:id +layout: modules/tests/test +--- +{% liquid + if context.environment == 'staging' or context.environment == 'development' + function mail = 'modules/tests/queries/sent_mails/find', id: context.params.id + + render 'modules/tests/sent_mails/show', mail: mail + endif +%} diff --git a/test/fixtures/test/with-passing-tests/modules/tests/public/views/partials/sent_mails/list.liquid b/test/fixtures/test/with-passing-tests/modules/tests/public/views/partials/sent_mails/list.liquid new file mode 100644 index 00000000..eb8e2452 --- /dev/null +++ b/test/fixtures/test/with-passing-tests/modules/tests/public/views/partials/sent_mails/list.liquid @@ -0,0 +1,20 @@ +

Sent mails

+
+
+
Subject
+
To
+
Sent at
+
+
+
+ {% for mail in mails.results %} +
    +
  • {{ mail.options.subject }}
  • +
  • {{ mail.options.to | join: ',' }}
  • +
  • {{ mail.created_at | l }}
  • +
  • Show
  • +
+ {% endfor %} +
+
+ {% render 'modules/tests/sent_mails/pagination', collection: mails %} diff --git a/test/fixtures/test/with-passing-tests/modules/tests/public/views/partials/sent_mails/pagination.liquid b/test/fixtures/test/with-passing-tests/modules/tests/public/views/partials/sent_mails/pagination.liquid new file mode 100644 index 00000000..1ecf01a8 --- /dev/null +++ b/test/fixtures/test/with-passing-tests/modules/tests/public/views/partials/sent_mails/pagination.liquid @@ -0,0 +1,66 @@ +{% comment %} + Required params: + collection: collection + current_page: integer + Optional params: + button_attrs: string + container_class: string +{% endcomment %} +{% liquid + assign container_class = container_class | default: "subtitle flex justify-center md:justify-end items-center mt-8 mx-auto md:mr-0 md:ms-auto" + assign button_attrs = button_attrs | default: '' | html_safe + assign current_page = collection.current_page | to_positive_integer: 1 + assign page_name = page_name | default: 'page' +%} + +{% if collection.has_previous_page or collection.has_next_page %} +
+ +
+ {% if collection.has_previous_page %} + + {% endif %} + + {% liquid + assign range_low = current_page | minus: 2 | at_least: 1 + assign range_high = range_low | plus: 4 | at_most: collection.total_pages + %} + {% for page_num in (range_low..range_high) %} + {% if page_num == current_page %} + {{ page_num }} + {% else %} + + {% endif %} + {% endfor %} + + {% if collection.has_next_page %} + + {% endif %} +
+
+{% endif %} diff --git a/test/fixtures/test/with-passing-tests/modules/tests/public/views/partials/sent_mails/show.liquid b/test/fixtures/test/with-passing-tests/modules/tests/public/views/partials/sent_mails/show.liquid new file mode 100644 index 00000000..2fad3804 --- /dev/null +++ b/test/fixtures/test/with-passing-tests/modules/tests/public/views/partials/sent_mails/show.liquid @@ -0,0 +1,8 @@ +Back +

Sent mail

+

Sujbect: {{ mail.options.subject }}

+

To: {{ mail.options.to | join: ',' }}

+

Sent at: {{ mail.created_at | l }}

+
+ +{% print mail.content %} diff --git a/test/fixtures/test/with-passing-tests/modules/tests/public/views/partials/tests/index.liquid b/test/fixtures/test/with-passing-tests/modules/tests/public/views/partials/tests/index.liquid new file mode 100644 index 00000000..424cd724 --- /dev/null +++ b/test/fixtures/test/with-passing-tests/modules/tests/public/views/partials/tests/index.liquid @@ -0,0 +1,18 @@ + +
+
+
Test
+
+
+
+ {% for test in tests %} +
    + {% assign test_name = test.path | split: 'test/' | last %} +
  • {{ test.path }}
  • +
  • Run
  • +
+ {% endfor %} +
diff --git a/test/fixtures/test/with-passing-tests/modules/tests/public/views/partials/tests/show_html.liquid b/test/fixtures/test/with-passing-tests/modules/tests/public/views/partials/tests/show_html.liquid new file mode 100644 index 00000000..c2ce5684 --- /dev/null +++ b/test/fixtures/test/with-passing-tests/modules/tests/public/views/partials/tests/show_html.liquid @@ -0,0 +1,25 @@ +
+{% assign total = 0 %} +{% liquid + for contract in contracts + render 'modules/tests/tests/test_report_html', name: contract.test_path, contract: contract + assign total = total | plus: contract.total + endfor +%} + +{% if total_errors > 0 %} +

Total errors: {{ total_errors }}

+ {% response_status 500 %} +{% endif %} + +
+ +

+ {% if total_errors > 0 %} + Failure. + {% else %} + Success. + {% endif %} +Assertions: {{ total }}. Failed: {{ total_errors }}. Time: {{ total_duration }}ms +

+
diff --git a/test/fixtures/test/with-passing-tests/modules/tests/public/views/partials/tests/show_js.liquid b/test/fixtures/test/with-passing-tests/modules/tests/public/views/partials/tests/show_js.liquid new file mode 100644 index 00000000..f9e4d755 --- /dev/null +++ b/test/fixtures/test/with-passing-tests/modules/tests/public/views/partials/tests/show_js.liquid @@ -0,0 +1,30 @@ +{% liquid + assign result = '{}' | parse_json + assign total_assertions = 0 + + assign tests_array = '[]' | parse_json + for contract in contracts + assign total_assertions = total_assertions | plus: contract.total + + assign test_result = '{}' | parse_json + hash_assign test_result['name'] = contract.test_path + hash_assign test_result['success'] = contract.success + hash_assign test_result['assertions'] = contract.total + hash_assign test_result['errors'] = contract.errors + + assign tests_array = tests_array | add_to_array: test_result + endfor + + if total_errors > 0 + hash_assign result['success'] = false + else + hash_assign result['success'] = true + endif + + hash_assign result['total_tests'] = contracts.size + hash_assign result['total_assertions'] = total_assertions + hash_assign result['total_errors'] = total_errors + hash_assign result['duration_ms'] = total_duration + hash_assign result['tests'] = tests_array +%} +{{ result | json }} diff --git a/test/fixtures/test/with-passing-tests/modules/tests/public/views/partials/tests/show_log.liquid b/test/fixtures/test/with-passing-tests/modules/tests/public/views/partials/tests/show_log.liquid new file mode 100644 index 00000000..9abe2cc7 --- /dev/null +++ b/test/fixtures/test/with-passing-tests/modules/tests/public/views/partials/tests/show_log.liquid @@ -0,0 +1,7 @@ +{% capture result %} + {% render 'modules/tests/tests/show_text', contracts: contracts, total_errors: total_errors, total_duration: total_duration, test_name: test_name %} +{% endcapture %} +{% liquid + assign log_type = test_name | append: ' SUMMARY' + log result, type: log_type +%} diff --git a/test/fixtures/test/with-passing-tests/modules/tests/public/views/partials/tests/show_log_js.liquid b/test/fixtures/test/with-passing-tests/modules/tests/public/views/partials/tests/show_log_js.liquid new file mode 100644 index 00000000..ffd51c6b --- /dev/null +++ b/test/fixtures/test/with-passing-tests/modules/tests/public/views/partials/tests/show_log_js.liquid @@ -0,0 +1,8 @@ +{% capture result %} + {% render 'modules/tests/tests/show_js', contracts: contracts, total_errors: total_errors, total_duration: total_duration, test_name: test_name %} +{% endcapture %} +{% assign result = result | html_safe %} +{% liquid + assign log_type = test_name | append: ' SUMMARY' + log result, type: log_type +%} diff --git a/test/fixtures/test/with-passing-tests/modules/tests/public/views/partials/tests/show_text.liquid b/test/fixtures/test/with-passing-tests/modules/tests/public/views/partials/tests/show_text.liquid new file mode 100644 index 00000000..3108c53b --- /dev/null +++ b/test/fixtures/test/with-passing-tests/modules/tests/public/views/partials/tests/show_text.liquid @@ -0,0 +1,22 @@ +Liquid tests +------------------------ +{% liquid + for contract in contracts + render 'modules/tests/tests/test_report_text', name: contract.test_path, contract: contract + assign total = total | plus: contract.total + endfor +%} +------------------------ +{% liquid + if total_errors > 0 + assign result = 'Failed' + else + assign result = 'Success' + endif +%} +{{ result }}_{{ test_name | strip }} +{% if total_errors > 0 %} + Total errors: {{ total_errors }} +{% endif %} + +Assertions: {{ total }}. Failed: {{ total_errors }}. Time: {{ total_duration }}ms diff --git a/test/fixtures/test/with-passing-tests/modules/tests/public/views/partials/tests/test_report_html.liquid b/test/fixtures/test/with-passing-tests/modules/tests/public/views/partials/tests/test_report_html.liquid new file mode 100644 index 00000000..2ff1a431 --- /dev/null +++ b/test/fixtures/test/with-passing-tests/modules/tests/public/views/partials/tests/test_report_html.liquid @@ -0,0 +1,17 @@ +
+
+ {% assign test_name = name | replace: 'test/', '' %} + {{ test_name }} + + (run test) + +
+
+ {% for e in contract.errors %} +
+
{{ e[0] }}
+
{{ e[1] | join: ",
" | html_safe }}
+
+ {% endfor %} +
+
diff --git a/test/fixtures/test/with-passing-tests/modules/tests/public/views/partials/tests/test_report_text.liquid b/test/fixtures/test/with-passing-tests/modules/tests/public/views/partials/tests/test_report_text.liquid new file mode 100644 index 00000000..29a84503 --- /dev/null +++ b/test/fixtures/test/with-passing-tests/modules/tests/public/views/partials/tests/test_report_text.liquid @@ -0,0 +1,5 @@ +{% assign test_name = name | replace: 'test/', '' %} +{{ test_name }} +{% for e in contract.errors %} + {{ e[0] }} {{ e[1] | join: ", " }} +{% endfor %} diff --git a/test/fixtures/test/with-passing-tests/modules/tests/template-values.json b/test/fixtures/test/with-passing-tests/modules/tests/template-values.json new file mode 100644 index 00000000..59e310f0 --- /dev/null +++ b/test/fixtures/test/with-passing-tests/modules/tests/template-values.json @@ -0,0 +1,7 @@ +{ + "name": "Pos Module Tests", + "machine_name": "tests", + "type": "module", + "version": "1.2.0", + "dependencies": {} +} diff --git a/test/lib/modules/dependencies.test.js b/test/lib/modules/dependencies.test.js index 0c5e3079..9e76fe9b 100644 --- a/test/lib/modules/dependencies.test.js +++ b/test/lib/modules/dependencies.test.js @@ -20,7 +20,7 @@ test('resolveDependencies ok', async () => { {"module":"c","versions":{"1.0.0":{"dependencies":{}}}} ].concat(core); } - console.log('dont know', modulesNames); + throw new Error(`Unexpected modulesNames: ${JSON.stringify(modulesNames)}`); }; const rootModules = { "payments_stripe": "1.0.6", @@ -47,7 +47,6 @@ test('resolveDependencies do not use newest available version but the one define const core = {"module":"core","versions":{"1.6.0":{"dependencies":{}}, "1.6.1":{"dependencies":{}}, "1.8.0":{"dependencies":{}}}}; const tests = {"module":"tests","versions":{"1.0.7":{"dependencies":{"core":"^1.6.0"}}}} const modulesVersions = async (modulesNames) => { - // console.log('hit'); if(isEqual(modulesNames, ['tests', 'core'])) { return [tests, core]; } else if(isEqual(modulesNames, ['tests'])) { @@ -55,7 +54,7 @@ test('resolveDependencies do not use newest available version but the one define } else if(isEqual(modulesNames, ['core'])) { return [core] } - console.log('dont know', modulesNames); + throw new Error(`Unexpected modulesNames: ${JSON.stringify(modulesNames)}`); }; const rootModules = { "tests": "1.0.7", diff --git a/test/logs.test.js b/test/logs.test.js new file mode 100644 index 00000000..7b6328b2 --- /dev/null +++ b/test/logs.test.js @@ -0,0 +1,133 @@ +/* global jest */ + +require('dotenv').config(); + +const { spawn } = require('child_process'); +const path = require('path'); +const Gateway = require('../lib/proxy'); +const { fetchSettings } = require('../lib/settings'); +const { requireRealCredentials } = require('./utils/realCredentials'); + +requireRealCredentials(); + +jest.setTimeout(20000); +jest.retryTimes(2); + +const generateUniqueId = () => `test-${Date.now()}-${Math.random().toString(36).substring(7)}`; + +const sleep = ms => new Promise(resolve => setTimeout(resolve, ms)); + +const startLogsProcess = (options = []) => { + const args = [ + path.join(process.cwd(), 'bin', 'pos-cli.js'), + 'logs', + '--interval', '500', + ...options + ]; + + const logsProcess = spawn('node', args, { + env: process.env, + stdio: ['pipe', 'pipe', 'pipe'] + }); + + let output = ''; + + logsProcess.stdout.on('data', (data) => { + output += data.toString(); + }); + + logsProcess.stderr.on('data', (data) => { + output += data.toString(); + }); + + return { + process: logsProcess, + getOutput: () => output, + kill: () => { + logsProcess.stdout.destroy(); + logsProcess.stderr.destroy(); + logsProcess.kill(); + } + }; +}; + +const waitForLog = async (getOutput, uniqueId, maxWaitTime = 8000) => { + const checkInterval = 100; + let waited = 0; + + while (waited < maxWaitTime) { + if (getOutput().includes(uniqueId)) { + return true; + } + await sleep(checkInterval); + waited += checkInterval; + } + return false; +}; + +const execLiquidLog = async (message, type) => { + const liquidCode = type + ? `{% log '${message}', type: '${type}' %}` + : `{% log '${message}' %}`; + + const authData = fetchSettings(); + const gateway = new Gateway(authData); + return gateway.liquid({ content: liquidCode }); +}; + +describe('pos-cli logs integration', () => { + test('displays log messages with and without type', async () => { + const testId = generateUniqueId(); + const logWithType = { message: `With type: ${testId}`, type: 'pos-cli-test' }; + const logWithoutType = { message: `Default type: ${testId}` }; + + const logs = startLogsProcess(); + try { + const [result1, result2] = await Promise.all([ + execLiquidLog(logWithType.message, logWithType.type), + execLiquidLog(logWithoutType.message) + ]); + + expect(result1.error).toBeNull(); + expect(result2.error).toBeNull(); + + const [found1, found2] = await Promise.all([ + waitForLog(logs.getOutput, logWithType.message), + waitForLog(logs.getOutput, logWithoutType.message) + ]); + + expect(found1).toBe(true); + expect(found2).toBe(true); + expect(logs.getOutput()).toContain(logWithType.type); + expect(logs.getOutput()).toContain(logWithType.message); + expect(logs.getOutput()).toContain(logWithoutType.message); + } finally { + logs.kill(); + } + }); + + test('filters logs to show only matching type', async () => { + const testId = generateUniqueId(); + const matchingLog = { message: `Matching: ${testId}`, type: 'filter-test-type' }; + const nonMatchingLog = { message: `Non-matching: ${testId}`, type: 'other-type' }; + + const logs = startLogsProcess(['--filter', matchingLog.type]); + try { + const [result1, result2] = await Promise.all([ + execLiquidLog(nonMatchingLog.message, nonMatchingLog.type), + execLiquidLog(matchingLog.message, matchingLog.type) + ]); + + expect(result1.error).toBeNull(); + expect(result2.error).toBeNull(); + + const foundMatching = await waitForLog(logs.getOutput, matchingLog.message); + expect(foundMatching).toBe(true); + + expect(logs.getOutput()).toContain(matchingLog.message); + expect(logs.getOutput()).not.toContain(nonMatchingLog.message); + } finally { + logs.kill(); + } + }); +}); diff --git a/test/modules-download.test.js b/test/modules-download.test.js index 77de65bb..1c340802 100644 --- a/test/modules-download.test.js +++ b/test/modules-download.test.js @@ -6,6 +6,8 @@ const fs = require('fs'); const path = require('path'); require('dotenv').config(); +const { requireRealCredentials } = require('./utils/realCredentials'); +requireRealCredentials(); const cwd = name => path.join(process.cwd(), 'test', 'fixtures', name); @@ -24,12 +26,7 @@ describe('Successful download', () => { const moduleJson = JSON.parse(fs.readFileSync(pathToModuleJson, 'utf8')); expect(moduleJson.version).toBe('0.0.3'); - fs.rm(pathToDirectory, { recursive: true }, (err) => { - if(err){ - console.error(err.message); - return; - } - }); + await fs.promises.rm(pathToDirectory, { recursive: true }); }); test('clean up removed files', async () => { @@ -61,12 +58,7 @@ describe('Successful download', () => { const moduleJson = JSON.parse(fs.readFileSync(pathToModuleJson, 'utf8')); expect(moduleJson.version).toBe('1.0.0'); - fs.rm(pathToDirectory, { recursive: true }, (err) => { - if(err){ - console.error(err.message); - return; - } - }); + await fs.promises.rm(pathToDirectory, { recursive: true }); }); test('download the latest test module if no app/pos-modules.lock.json', async () => { @@ -78,15 +70,9 @@ describe('Successful download', () => { expect(stderr).toContain('Warning: Can\'t find app/pos-modules.lock.json'); expect(fs.existsSync(pathToModuleJson)).toBeTruthy(); - fs.rm(pathToDirectory, { recursive: true }, (err) => { - if(err){ - console.error(err.message); - return; - } - }); + await fs.promises.rm(pathToDirectory, { recursive: true }); }); - test('download user module with dependencies', async () => { const pathToUserModuleJson = `${cwd('deploy/modules_user')}/modules/user/template-values.json`; const pathToCoreModuleJson = `${cwd('deploy/modules_user')}/modules/core/template-values.json`; @@ -115,12 +101,7 @@ describe('Successful download', () => { expect(stdout3).toContain('Downloading user@3.0.8'); expect(stdout3).toContain('Downloading core@1.5.5'); - fs.rm(pathToDirectory, { recursive: true }, (err) => { - if (err) { - console.error(err.message); - return; - } - }); + await fs.promises.rm(pathToDirectory, { recursive: true }); }, 20000); }); diff --git a/test/modules-push.test.js b/test/modules-push.test.js index 0db255cd..40419be4 100644 --- a/test/modules-push.test.js +++ b/test/modules-push.test.js @@ -6,6 +6,8 @@ const fs = require('fs'); const path = require('path'); require('dotenv').config(); +const { requireRealCredentials } = require('./utils/realCredentials'); +requireRealCredentials(); Object.assign(process.env, { DEBUG: true diff --git a/test/modules-update.test.js b/test/modules-update.test.js index 7f089837..4152695f 100644 --- a/test/modules-update.test.js +++ b/test/modules-update.test.js @@ -5,6 +5,8 @@ const cliPath = require('./utils/cliPath'); const fs = require('fs'); const path = require('path'); require('dotenv').config(); +const { requireRealCredentials } = require('./utils/realCredentials'); +requireRealCredentials(); const cwd = name => path.join(process.cwd(), 'test', 'fixtures', name); const run = async (fixtureName, options) => await exec(`${cliPath} modules update ${options}`, { cwd: cwd(fixtureName), env: process.env }); diff --git a/test/productionEnvironment.test.js b/test/productionEnvironment.test.js new file mode 100644 index 00000000..0bbbd68c --- /dev/null +++ b/test/productionEnvironment.test.js @@ -0,0 +1,157 @@ +// Mock prompts module before requiring the module under test +jest.mock('prompts'); +jest.mock('../lib/logger', () => ({ + Warn: jest.fn(), + Info: jest.fn(), + Error: jest.fn() +})); + +const { isProductionEnvironment, confirmProductionExecution } = require('../lib/productionEnvironment'); +const prompts = require('prompts'); + +describe('isProductionEnvironment', () => { + describe('returns true for production environments', () => { + test('detects "production"', () => { + expect(isProductionEnvironment('production')).toBe(true); + }); + + test('detects "prod"', () => { + expect(isProductionEnvironment('prod')).toBe(true); + }); + + test('detects "PRODUCTION" (uppercase)', () => { + expect(isProductionEnvironment('PRODUCTION')).toBe(true); + }); + + test('detects "PROD" (uppercase)', () => { + expect(isProductionEnvironment('PROD')).toBe(true); + }); + + test('detects "Production" (mixed case)', () => { + expect(isProductionEnvironment('Production')).toBe(true); + }); + + test('detects environment containing "prod" (e.g., "my-prod-server")', () => { + expect(isProductionEnvironment('my-prod-server')).toBe(true); + }); + + test('detects environment containing "production" (e.g., "production-us-east")', () => { + expect(isProductionEnvironment('production-us-east')).toBe(true); + }); + + test('detects "preprod" as production (contains "prod")', () => { + // Note: This is current behavior - "preprod" contains "prod" so it triggers + // If this is undesirable, the regex should be updated to use word boundaries + expect(isProductionEnvironment('preprod')).toBe(true); + }); + + test('detects "prod-replica" as production', () => { + expect(isProductionEnvironment('prod-replica')).toBe(true); + }); + }); + + describe('returns false for non-production environments', () => { + test('returns false for "staging"', () => { + expect(isProductionEnvironment('staging')).toBe(false); + }); + + test('returns false for "development"', () => { + expect(isProductionEnvironment('development')).toBe(false); + }); + + test('returns false for "dev"', () => { + expect(isProductionEnvironment('dev')).toBe(false); + }); + + test('returns false for "test"', () => { + expect(isProductionEnvironment('test')).toBe(false); + }); + + test('returns false for "qa"', () => { + expect(isProductionEnvironment('qa')).toBe(false); + }); + + test('returns false for "local"', () => { + expect(isProductionEnvironment('local')).toBe(false); + }); + + test('returns false for "sandbox"', () => { + expect(isProductionEnvironment('sandbox')).toBe(false); + }); + + test('returns false for "demo"', () => { + expect(isProductionEnvironment('demo')).toBe(false); + }); + }); + + describe('handles edge cases', () => { + test('returns false for null', () => { + expect(isProductionEnvironment(null)).toBe(false); + }); + + test('returns false for undefined', () => { + expect(isProductionEnvironment(undefined)).toBe(false); + }); + + test('returns false for empty string', () => { + expect(isProductionEnvironment('')).toBe(false); + }); + + test('returns false for whitespace-only string', () => { + expect(isProductionEnvironment(' ')).toBe(false); + }); + + test('returns false for number', () => { + expect(isProductionEnvironment(123)).toBe(false); + }); + + test('returns false for object', () => { + expect(isProductionEnvironment({})).toBe(false); + }); + }); +}); + +describe('confirmProductionExecution', () => { + beforeEach(() => { + jest.clearAllMocks(); + }); + + test('returns true when user confirms', async () => { + prompts.mockResolvedValue({ confirmed: true }); + + const result = await confirmProductionExecution('production'); + + expect(result).toBe(true); + expect(prompts).toHaveBeenCalledWith(expect.objectContaining({ + type: 'confirm', + name: 'confirmed', + initial: false + })); + }); + + test('returns false when user declines', async () => { + prompts.mockResolvedValue({ confirmed: false }); + + const result = await confirmProductionExecution('production'); + + expect(result).toBe(false); + }); + + test('returns undefined when user cancels (Ctrl+C)', async () => { + prompts.mockResolvedValue({}); + + const result = await confirmProductionExecution('production'); + + expect(result).toBeUndefined(); + }); + + test('includes environment name in prompt message', async () => { + prompts.mockResolvedValue({ confirmed: true }); + + await confirmProductionExecution('my-prod-server'); + + expect(prompts).toHaveBeenCalledWith(expect.objectContaining({ + message: expect.stringContaining('my-prod-server') + })); + }); +}); diff --git a/test/sync.test.js b/test/sync.test.js index 4edb9c63..1476129c 100644 --- a/test/sync.test.js +++ b/test/sync.test.js @@ -8,6 +8,8 @@ const fs = require('fs'); const stepTimeout = 3500; require('dotenv').config(); +const { requireRealCredentials } = require('./utils/realCredentials'); +requireRealCredentials(); const cwd = name => path.join(process.cwd(), 'test', 'fixtures', 'deploy', name); const run = (fixtureName, options, callback) => { diff --git a/test/test-run.test.js b/test/test-run.test.js index be895405..aa24215f 100644 --- a/test/test-run.test.js +++ b/test/test-run.test.js @@ -1,87 +1,897 @@ /* global jest */ +jest.mock('../lib/apiRequest', () => ({ + apiRequest: jest.fn() +})); + +require('dotenv').config(); + const exec = require('./utils/exec'); const cliPath = require('./utils/cliPath'); +const Gateway = require('../lib/proxy'); +const { cleanInstance } = require('./utils/commands'); -require('dotenv').config(); +// Import test-runner modules +const { TestLogStream } = require('../lib/test-runner/logStream'); +const { formatDuration, formatTestLog } = require('../lib/test-runner/formatters'); const cwd = name => `${process.cwd()}/test/fixtures/test/${name}`; - const run = (fixtureName, options) => exec(`${cliPath} test run ${options || ''}`, { cwd: cwd(fixtureName), env: process.env }); -const deploy = (fixtureName) => exec(`${cliPath} deploy staging`, { cwd: cwd(fixtureName), env: process.env }); - -jest.setTimeout(200000); // Test run can take a while due to log polling - -describe('Test run command', () => { - // Deploy the test fixtures before running any tests - beforeAll(async () => { - const { stdout, stderr } = await deploy('with-tests-module'); - if (!stdout.includes('Deploy succeeded')) { - console.error('Deploy failed:', stderr); - throw new Error('Failed to deploy test fixtures'); - } - }); +const deploy = (fixtureName) => exec(`${cliPath} deploy`, { cwd: cwd(fixtureName), env: process.env }); - test('displays instance URL when running tests', async () => { - const { stdout, stderr } = await run('with-tests-module', 'staging'); +jest.setTimeout(200000); - expect(stdout).toMatch(`Running tests on: ${process.env.MPKIT_URL}`); - }); +describe('pos-cli test run', () => { + describe('Unit tests', () => { + const { apiRequest } = require('../lib/apiRequest'); - // Note: This test requires a staging instance WITHOUT the tests module installed. - // Since integration tests require the tests module to be deployed, this test - // is skipped when run against the same instance. - test.skip('shows error when tests module is not installed', async () => { - const { stderr } = await run('without-tests-module', 'staging'); + beforeEach(() => { + apiRequest.mockReset(); + }); - expect(stderr).toMatch('Tests module not found'); - }); + describe('Gateway.test(name)', () => { + test('calls apiRequest with correct URL for single test (JS format)', async () => { + apiRequest.mockResolvedValue({ passed: 1, failed: 0, total: 1, tests: [] }); + + const gateway = new Gateway({ url: 'http://example.com', token: '1234', email: 'test@example.com' }); + const result = await gateway.test('example_test'); + + expect(apiRequest).toHaveBeenCalledWith({ + method: 'GET', + uri: 'http://example.com/_tests/run.js?name=example_test', + formData: undefined, + json: true, + forever: undefined, + request: expect.any(Function) + }); + expect(result).toEqual({ passed: 1, failed: 0, total: 1, tests: [] }); + }); + + test('handles test with path in name', async () => { + apiRequest.mockResolvedValue({ passed: 1, failed: 0, total: 1 }); + + const gateway = new Gateway({ url: 'http://example.com', token: '1234', email: 'test@example.com' }); + await gateway.test('test/examples/assertions_test'); + + expect(apiRequest).toHaveBeenCalledWith(expect.objectContaining({ + uri: 'http://example.com/_tests/run.js?name=test/examples/assertions_test' + })); + }); + }); + + describe('Gateway.testRunAsync()', () => { + test('calls apiRequest with run_async endpoint (no .js extension for v1.1.0+)', async () => { + apiRequest.mockResolvedValue({ test_name: 'liquid_test_abc123' }); + + const gateway = new Gateway({ url: 'http://example.com', token: '1234', email: 'test@example.com' }); + const result = await gateway.testRunAsync(); + + expect(apiRequest).toHaveBeenCalledWith({ + method: 'GET', + uri: 'http://example.com/_tests/run_async', + formData: undefined, + json: true, + forever: undefined, + request: expect.any(Function) + }); + expect(result).toEqual({ test_name: 'liquid_test_abc123' }); + }); + + test('handles error response', async () => { + apiRequest.mockResolvedValue({ error: 'Tests module not found' }); + + const gateway = new Gateway({ url: 'http://example.com', token: '1234', email: 'test@example.com' }); + const result = await gateway.testRunAsync(); + + expect(result).toEqual({ error: 'Tests module not found' }); + }); + }); + + describe('formatTestLog', () => { + test('highlights test log with test path (new test indicator)', () => { + const logRow = { + message: '{"path": "app/lib/test/example_test.liquid"}', + error_type: 'liquid_test_abc123' + }; + + const result = formatTestLog(logRow, true); + + expect(result).toContain('▶'); + expect(result).toContain('app/lib/test/example_test.liquid'); + }); + + test('displays test log without path normally', () => { + const logRow = { + message: 'Test assertion passed', + error_type: 'liquid_test_abc123' + }; + + const result = formatTestLog(logRow, true); + + expect(result).not.toContain('▶'); + expect(result).toContain('Test assertion passed'); + }); + + test('dims debug logs (type != test_name)', () => { + const logRow = { + message: 'Debug: checking variable value', + error_type: 'debug' + }; + + const result = formatTestLog(logRow, false); + + expect(result).toContain('debug:'); + expect(result).toContain('Debug: checking variable value'); + }); + + test('shows debug type in dimmed log output', () => { + const logRow = { + message: 'Custom debug message from test', + error_type: 'custom_debug' + }; + + const result = formatTestLog(logRow, false); + + expect(result).toContain('custom_debug:'); + expect(result).toContain('Custom debug message from test'); + }); + + test('highlights test path in modules directory', () => { + const logRow = { + message: '{"path": "modules/my_module/test/unit_test.liquid"}', + error_type: 'liquid_test_xyz789' + }; + + const result = formatTestLog(logRow, true); + + expect(result).toContain('▶'); + expect(result).toContain('modules/my_module/test/unit_test.liquid'); + }); + + test('handles message with trailing newline', () => { + const logRow = { + message: 'Test message with newline\n', + error_type: 'liquid_test_abc123' + }; + + const result = formatTestLog(logRow, true); + + expect(result).toMatch(/\n$/); + expect(result).toContain('Test message with newline'); + }); + + test('formatTestLog output ends with newline for test path messages', () => { + const logRow = { + message: '{"path": "app/lib/test/example_test.liquid"}', + error_type: 'liquid_test_abc123' + }; + + const result = formatTestLog(logRow, true); + + expect(result).toMatch(/\n$/); + }); + + test('formatTestLog output ends with newline for regular test logs', () => { + const logRow = { + message: 'Test assertion passed', + error_type: 'liquid_test_abc123' + }; + + const result = formatTestLog(logRow, true); + + expect(result).toMatch(/\n$/); + }); + + test('formatTestLog output ends with newline for debug logs', () => { + const logRow = { + message: 'Debug: checking variable value', + error_type: 'debug' + }; + + const result = formatTestLog(logRow, false); + + expect(result).toMatch(/\n$/); + }); + + test('handles non-string message by converting to JSON', () => { + const logRow = { + message: { key: 'value', nested: { data: true } }, + error_type: 'liquid_test_abc123' + }; + + const result = formatTestLog(logRow, true); + + expect(result).toContain('key'); + expect(result).toContain('value'); + }); + }); + + describe('formatDuration', () => { + test('formats milliseconds under 1 second', () => { + expect(formatDuration(0)).toBe('0ms'); + expect(formatDuration(1)).toBe('1ms'); + expect(formatDuration(500)).toBe('500ms'); + expect(formatDuration(999)).toBe('999ms'); + }); + + test('formats seconds under 1 minute', () => { + expect(formatDuration(1000)).toBe('1.00s'); + expect(formatDuration(1500)).toBe('1.50s'); + expect(formatDuration(2345)).toBe('2.35s'); + expect(formatDuration(59999)).toBe('60.00s'); + }); + + test('formats minutes and seconds', () => { + expect(formatDuration(60000)).toBe('1m 0.00s'); + expect(formatDuration(65000)).toBe('1m 5.00s'); + expect(formatDuration(90000)).toBe('1m 30.00s'); + expect(formatDuration(125500)).toBe('2m 5.50s'); + }); + + test('formats large durations', () => { + expect(formatDuration(300000)).toBe('5m 0.00s'); + expect(formatDuration(3600000)).toBe('60m 0.00s'); + }); + }); + + describe('TestLogStream', () => { + describe('parseJsonSummary', () => { + test('parses successful test completion JSON from tests module 1.1.1+', () => { + const stream = new TestLogStream({}); + + const message = JSON.stringify({ + success: true, + total_tests: 5, + total_assertions: 16, + total_errors: 0, + duration_ms: 26, + tests: [ + { name: "test/array_test", success: true, assertions: 2, errors: {} }, + { name: "test/examples/assertions_test", success: true, assertions: 4, errors: {} }, + { name: "test/example_test", success: true, assertions: 5, errors: {} }, + { name: "test/object_test", success: true, assertions: 3, errors: {} }, + { name: "test/string_test", success: true, assertions: 2, errors: {} } + ] + }); + + const result = stream.parseJsonSummary(message); + + expect(result).toEqual({ + total: 5, + passed: 5, + failed: 0, + assertions: 16, + tests: [ + { name: "test/array_test", status: "passed", passed: true, assertions: 2 }, + { name: "test/examples/assertions_test", status: "passed", passed: true, assertions: 4 }, + { name: "test/example_test", status: "passed", passed: true, assertions: 5 }, + { name: "test/object_test", status: "passed", passed: true, assertions: 3 }, + { name: "test/string_test", status: "passed", passed: true, assertions: 2 } + ], + duration: 26 + }); + }); + + test('parses failed test completion JSON with error details', () => { + const stream = new TestLogStream({}); + + const message = JSON.stringify({ + success: false, + total_tests: 3, + total_assertions: 10, + total_errors: 1, + duration_ms: 45, + tests: [ + { name: "test/passing_test", success: true, assertions: 3, errors: {} }, + { name: "test/failing_test", success: false, assertions: 2, errors: { expected: "field to be 2", actual: "field is 1" } }, + { name: "test/another_passing_test", success: true, assertions: 5, errors: {} } + ] + }); + + const result = stream.parseJsonSummary(message); + + expect(result).toEqual({ + total: 3, + passed: 2, + failed: 1, + assertions: 10, + tests: [ + { name: "test/passing_test", status: "passed", passed: true, assertions: 3 }, + { name: "test/failing_test", status: "failed", passed: false, assertions: 2, error: "{\"expected\":\"field to be 2\",\"actual\":\"field is 1\"}" }, + { name: "test/another_passing_test", status: "passed", passed: true, assertions: 5 } + ], + duration: 45 + }); + }); + + test('handles alternative field names (total instead of total_tests)', () => { + const stream = new TestLogStream({}); + + const message = JSON.stringify({ + success: true, + total: 4, + assertions: 8, + duration: 30, + tests: [ + { name: "test1", success: true, assertions: 2, errors: {} }, + { name: "test2", success: true, assertions: 2, errors: {} }, + { name: "test3", success: true, assertions: 2, errors: {} }, + { name: "test4", success: true, assertions: 2, errors: {} } + ] + }); + + const result = stream.parseJsonSummary(message); + + expect(result).toEqual({ + total: 4, + passed: 4, + failed: 0, + assertions: 8, + tests: [ + { name: "test1", status: "passed", passed: true, assertions: 2 }, + { name: "test2", status: "passed", passed: true, assertions: 2 }, + { name: "test3", status: "passed", passed: true, assertions: 2 }, + { name: "test4", status: "passed", passed: true, assertions: 2 } + ], + duration: 30 + }); + }); + + test('returns null for invalid JSON', () => { + const stream = new TestLogStream({}); + const invalidJson = '{ "invalid": json }'; + const result = stream.parseJsonSummary(invalidJson); + expect(result).toBeNull(); + }); + + test('handles empty tests array in summary', () => { + const stream = new TestLogStream({}); + + const message = JSON.stringify({ + success: true, + total_tests: 0, + total_assertions: 0, + duration_ms: 5, + tests: [] + }); + + const result = stream.parseJsonSummary(message); + + expect(result).toEqual({ + total: 0, + passed: 0, + failed: 0, + assertions: 0, + tests: [], + duration: 5 + }); + }); + + test('handles test with no assertions', () => { + const stream = new TestLogStream({}); + + const message = JSON.stringify({ + success: true, + total_tests: 1, + total_assertions: 0, + duration_ms: 10, + tests: [ + { name: "test/empty_test", success: true, assertions: 0, errors: {} } + ] + }); + + const result = stream.parseJsonSummary(message); + + expect(result.tests[0].assertions).toBe(0); + expect(result.assertions).toBe(0); + }); + + test('handles test with array of errors', () => { + const stream = new TestLogStream({}); + + const message = JSON.stringify({ + success: false, + total_tests: 1, + total_errors: 1, + duration_ms: 15, + tests: [ + { + name: "test/multi_error_test", + success: false, + assertions: 3, + errors: ["Error 1", "Error 2", "Error 3"] + } + ] + }); + + const result = stream.parseJsonSummary(message); + + expect(result.tests[0].errors).toEqual(["Error 1", "Error 2", "Error 3"]); + }); + + test('handles missing test name gracefully', () => { + const stream = new TestLogStream({}); + + const message = JSON.stringify({ + success: true, + total_tests: 1, + duration_ms: 10, + tests: [ + { success: true, assertions: 1, errors: {} } + ] + }); + + const result = stream.parseJsonSummary(message); + + expect(result.tests[0].name).toBe('Unknown test'); + }); + }); + + describe('isValidTestSummaryJson', () => { + test('identifies valid test summary JSON', () => { + const stream = new TestLogStream({}); + + const validMessage = JSON.stringify({ + success: true, + total_tests: 5, + total_assertions: 16, + duration_ms: 26, + tests: [] + }); + + expect(stream.isValidTestSummaryJson(validMessage)).toBe(true); + }); + + test('rejects JSON without tests array', () => { + const stream = new TestLogStream({}); - test('runs all tests and shows results when no test name provided', async () => { - const { stdout, stderr, code } = await run('with-tests-module', 'staging'); + const invalidMessage = JSON.stringify({ + success: true, + total_tests: 5, + duration_ms: 26 + }); - // Verify test execution started - expect(stdout).toMatch('Starting test run...'); + expect(stream.isValidTestSummaryJson(invalidMessage)).toBe(false); + }); - // Verify test results are actually displayed (not just hanging) - // The output should include either test results summary or individual test status - const hasTestResults = stdout.includes('passed') || - stdout.includes('failed') || - stdout.includes('Test Results:') || - stdout.includes('total)'); + test('rejects JSON without success field', () => { + const stream = new TestLogStream({}); - expect(hasTestResults).toBe(true); + const invalidMessage = JSON.stringify({ + total_tests: 5, + duration_ms: 26, + tests: [] + }); + + expect(stream.isValidTestSummaryJson(invalidMessage)).toBe(false); + }); + + test('rejects non-test JSON', () => { + const stream = new TestLogStream({}); + + const invalidMessage = JSON.stringify({ + path: "test/array_test" + }); + + expect(stream.isValidTestSummaryJson(invalidMessage)).toBe(false); + }); + }); + + describe('testCompleted event emission', () => { + test('emits testCompleted only once even when duplicate JSON summaries are received', () => { + const stream = new TestLogStream({}); + const mockEmit = jest.fn(); + stream.emit = mockEmit; + + const testSummaryJson = JSON.stringify({ + success: true, + total_tests: 5, + total_assertions: 16, + duration_ms: 26, + tests: [ + { name: "test/array_test", success: true, assertions: 2, errors: {} }, + { name: "test/examples/assertions_test", success: true, assertions: 4, errors: {} }, + { name: "test/example_test", success: true, assertions: 5, errors: {} }, + { name: "test/object_test", success: true, assertions: 3, errors: {} }, + { name: "test/string_test", success: true, assertions: 2, errors: {} } + ] + }); + + const logRow1 = { id: 1, message: testSummaryJson, error_type: '' }; + const logRow2 = { id: 2, message: testSummaryJson, error_type: '' }; + const logRow3 = { id: 3, message: testSummaryJson, error_type: '' }; + + stream.processLogMessage(logRow1); + stream.processLogMessage(logRow2); + stream.processLogMessage(logRow3); + + expect(mockEmit).toHaveBeenCalledTimes(1); + expect(mockEmit).toHaveBeenCalledWith('testCompleted', expect.any(Object)); + + const emittedResults = mockEmit.mock.calls[0][1]; + expect(emittedResults.total).toBe(5); + expect(emittedResults.passed).toBe(5); + expect(emittedResults.failed).toBe(0); + }); + + }); + + describe('testName filtering', () => { + test('detects test start with matching testName type', () => { + const stream = new TestLogStream({}, 30000, 'liquid_test_abc123'); + const mockEmit = jest.fn(); + stream.emit = mockEmit; + + const startLog = { + id: 1, + message: 'Starting unit tests', + error_type: 'liquid_test_abc123' + }; + + stream.processLogMessage(startLog); + + expect(mockEmit).toHaveBeenCalledWith('testStarted'); + expect(stream.testStarted).toBe(true); + }); + + test('ignores test start with non-matching testName type', () => { + const stream = new TestLogStream({}, 30000, 'liquid_test_abc123'); + const mockEmit = jest.fn(); + stream.emit = mockEmit; + + const startLog = { + id: 1, + message: 'Starting unit tests', + error_type: 'liquid_test_different' + }; + + stream.processLogMessage(startLog); + + expect(mockEmit).not.toHaveBeenCalled(); + expect(stream.testStarted).toBe(false); + }); + + test('detects test completion with testName SUMMARY type', () => { + const stream = new TestLogStream({}, 30000, 'liquid_test_abc123'); + stream.testStarted = true; + const mockEmit = jest.fn(); + stream.emit = mockEmit; + + const summaryJson = JSON.stringify({ + success: true, + total_tests: 2, + tests: [ + { name: "test1", success: true, assertions: 1, errors: {} }, + { name: "test2", success: true, assertions: 1, errors: {} } + ] + }); + + const summaryLog = { + id: 2, + message: summaryJson, + error_type: 'liquid_test_abc123 SUMMARY' + }; + + stream.processLogMessage(summaryLog); + + expect(mockEmit).toHaveBeenCalledWith('testCompleted', expect.any(Object)); + expect(stream.completed).toBe(true); + }); + + test('ignores summary with non-matching testName SUMMARY type', () => { + const stream = new TestLogStream({}, 30000, 'liquid_test_abc123'); + stream.testStarted = true; + const mockEmit = jest.fn(); + stream.emit = mockEmit; + + const summaryJson = JSON.stringify({ + success: true, + total_tests: 2, + tests: [ + { name: "test1", success: true, assertions: 1, errors: {} }, + { name: "test2", success: true, assertions: 1, errors: {} } + ] + }); + + const summaryLog = { + id: 2, + message: summaryJson, + error_type: 'liquid_test_different SUMMARY' + }; + + stream.processLogMessage(summaryLog); + + expect(mockEmit).toHaveBeenCalledWith('testLog', expect.any(Object), false); + expect(stream.completed).toBe(false); + }); + + test('emits testLog with isTestLog=true for logs with matching testName type', () => { + const stream = new TestLogStream({}, 30000, 'liquid_test_abc123'); + stream.testStarted = true; + const mockEmit = jest.fn(); + stream.emit = mockEmit; + + const testLog = { + id: 2, + message: '{"path": "app/lib/test/example_test.liquid"}', + error_type: 'liquid_test_abc123' + }; + + stream.processLogMessage(testLog); + + expect(mockEmit).toHaveBeenCalledWith('testLog', testLog, true); + }); + + test('emits testLog with isTestLog=false for logs with different type (debug logs)', () => { + const stream = new TestLogStream({}, 30000, 'liquid_test_abc123'); + stream.testStarted = true; + const mockEmit = jest.fn(); + stream.emit = mockEmit; + + const debugLog = { + id: 2, + message: 'Debug: checking variable value', + error_type: 'debug' + }; + + stream.processLogMessage(debugLog); + + expect(mockEmit).toHaveBeenCalledWith('testLog', debugLog, false); + }); + + test('emits user log with JSON content that matches test summary structure', () => { + const stream = new TestLogStream({}, 30000, 'liquid_test_abc123'); + stream.testStarted = true; + const mockEmit = jest.fn(); + stream.emit = mockEmit; + + // User log that accidentally has JSON structure similar to test summary + const userLogWithJson = { + id: 2, + message: JSON.stringify({ success: true, total: 5, data: 'user content' }), + error_type: 'world' + }; + + stream.processLogMessage(userLogWithJson); + + // Should be emitted as testLog because error_type is 'world', not 'liquid_test_abc123 SUMMARY' + expect(mockEmit).toHaveBeenCalledWith('testLog', userLogWithJson, false); + }); + + test('does not emit logs before test started (non-test-path logs)', () => { + const stream = new TestLogStream({}, 30000, 'liquid_test_abc123'); + const mockEmit = jest.fn(); + stream.emit = mockEmit; + + const earlyLog = { + id: 1, + message: 'Some early log from previous test run', + error_type: 'liquid_test_abc123' + }; + + stream.processLogMessage(earlyLog); + + // Non-test-path logs should not be emitted before testStarted + expect(mockEmit).not.toHaveBeenCalled(); + }); + + test('emits test path logs even before testStarted flag is set', () => { + const stream = new TestLogStream({}, 30000, 'liquid_test_abc123'); + const mockEmit = jest.fn(); + stream.emit = mockEmit; + + // First log with test path should be emitted even if testStarted is false + // This handles cases where test framework doesn't emit "Starting unit tests" log + const testPathLog = { + id: 1, + message: '{"path":"modules/community/test/commands/can_profiles_test"}', + error_type: 'liquid_test_abc123' + }; + + stream.processLogMessage(testPathLog); + + // Test path log should be emitted to mark test start + expect(mockEmit).toHaveBeenCalledWith('testLog', testPathLog, true); + }); + + test('does not emit logs after test completed', () => { + const stream = new TestLogStream({}, 30000, 'liquid_test_abc123'); + stream.testStarted = true; + stream.completed = true; + const mockEmit = jest.fn(); + stream.emit = mockEmit; + + const lateLog = { + id: 3, + message: 'Some late log', + error_type: 'liquid_test_abc123' + }; + + stream.processLogMessage(lateLog); + + expect(mockEmit).not.toHaveBeenCalled(); + }); + + test('emits user logs with custom error_type (not testName) as testLog events', () => { + const stream = new TestLogStream({}, 30000, 'liquid_test_abc123'); + stream.testStarted = true; + const mockEmit = jest.fn(); + stream.emit = mockEmit; + + const userLog = { + id: 2, + message: 'hello', + error_type: 'world' + }; + + stream.processLogMessage(userLog); + + // User log should be emitted as testLog with isTestLog=false (it's not from test framework) + expect(mockEmit).toHaveBeenCalledWith('testLog', userLog, false); + }); + + test('filters noise from past test runs by only processing logs with matching testName', () => { + const stream = new TestLogStream({}, 30000, 'liquid_test_current'); + stream.testStarted = true; + const mockEmit = jest.fn(); + stream.emit = mockEmit; + + const pastLog = { + id: 1, + message: 'Some past test log', + error_type: 'liquid_test_past' + }; + + const currentLog = { + id: 2, + message: 'Current test log', + error_type: 'liquid_test_current' + }; + + stream.processLogMessage(pastLog); + stream.processLogMessage(currentLog); + + expect(mockEmit).toHaveBeenCalledTimes(2); + expect(mockEmit).toHaveBeenNthCalledWith(1, 'testLog', pastLog, false); + expect(mockEmit).toHaveBeenNthCalledWith(2, 'testLog', currentLog, true); + }); + }); + }); }); - test('runs a single passing test by name and shows success', async () => { - const { stdout, stderr, code } = await run('with-tests-module', 'staging example_test'); + describe('CLI argument validation', () => { + const env = { + ...process.env, + CI: 'true', + MPKIT_URL: 'http://example.com', + MPKIT_TOKEN: '1234', + MPKIT_EMAIL: 'foo@example.com' + }; + + const CLI_TIMEOUT = 10000; + + test('requires environment argument', async () => { + const { code, stderr } = await exec(`${cliPath} test run`, { env, timeout: CLI_TIMEOUT }); - // Verify test results are displayed - expect(stdout).toMatch('Test Results:'); + expect(code).toBe(1); + expect(stderr).toMatch("error: missing required argument 'environment'"); + }); - // Verify the passing test is shown as passed (with checkmark) - expect(stdout).toMatch(/✓.*example_test/); + test('accepts test name argument', async () => { + const { stderr } = await exec(`${cliPath} test run staging my_test_name`, { env, timeout: CLI_TIMEOUT }); - // Verify summary shows 1 passed - expect(stdout).toMatch('1 passed'); + expect(stderr).not.toMatch("error: missing required argument"); + }); - // Exit code should be 0 for passing test - expect(code).toBe(0); + test('accepts test name with path', async () => { + const { stderr } = await exec(`${cliPath} test run staging test/examples/assertions_test`, { env, timeout: CLI_TIMEOUT }); + + expect(stderr).not.toMatch("error: missing required argument"); + }); + + test('handles invalid URL format', async () => { + const badEnv = { + ...process.env, + CI: 'true', + MPKIT_URL: 'not-a-valid-url', + MPKIT_TOKEN: 'test-token', + MPKIT_EMAIL: 'test@example.com' + }; + + const { code } = await exec(`${cliPath} test run staging`, { env: badEnv, timeout: CLI_TIMEOUT }); + + expect(code).toBe(1); + }); }); - test('runs a single failing test by name and shows failure', async () => { - const { stdout, stderr, code } = await run('with-tests-module', 'staging failing_test'); + describe('Integration tests', () => { + const { requireRealCredentials } = require('./utils/realCredentials'); + + beforeAll(() => { + requireRealCredentials(); + }); + + describe('without tests module', () => { + beforeAll(async () => { + await cleanInstance(cwd('without-tests-module')); + const { stdout, stderr } = await deploy('without-tests-module'); + if (!stdout.includes('Deploy succeeded')) { + throw new Error(`Failed to deploy test fixtures: ${stderr}`); + } + }); + + test('shows error when tests module is not installed', async () => { + const { stderr } = await run('without-tests-module', 'staging'); + + expect(stderr).toMatch('Tests module not found'); + }); + }); + + describe('with mixed tests (passing and failing)', () => { + beforeAll(async () => { + const { stdout, stderr } = await deploy('with-tests-module'); + if (!stdout.includes('Deploy succeeded')) { + throw new Error(`Failed to deploy test fixtures: ${stderr}`); + } + }); + + test('runs all tests, displays URL and results, exits with code 1 when at least one fails', async () => { + const { stdout, stderr, code } = await run('with-tests-module', 'staging'); + const output = stdout + stderr; + + expect(stdout).toMatch(`Running tests on: ${process.env.MPKIT_URL}`); + + const hasTestResults = output.includes('passed') || + output.includes('failed') || + output.includes('Test Results:') || + output.includes('total)'); + expect(hasTestResults).toBe(true); + + expect(output).toMatch(/\d+ passed/); + expect(output).toMatch(/\d+ failed/); + + expect(code).toBe(1); + }); + + test('runs a single passing test by name and shows success', async () => { + const { stdout, stderr, code } = await run('with-tests-module', 'staging example_test'); + + expect(stdout + stderr).toMatch(/✓.*example_test/); + expect(stdout + stderr).toMatch(/1 passed/); + + expect(code).toBe(0); + }); + + test('runs a single failing test by name and shows failure', async () => { + const { stdout, stderr, code } = await run('with-tests-module', 'staging failing_test'); + + expect(stdout + stderr).toMatch(/✗.*failing_test/); + expect(stdout + stderr).toMatch(/1 failed/); + + expect(code).toBe(1); + }); + }); + + describe('with only passing tests', () => { + beforeAll(async () => { + const { stdout, stderr } = await deploy('with-passing-tests'); + if (!stdout.includes('Deploy succeeded')) { + throw new Error(`Failed to deploy test fixtures: ${stderr}`); + } + }); - // Verify test results are displayed - expect(stdout + stderr).toMatch('Test Results:'); + test('exits with code 0 when running all tests and all pass', async () => { + const { stdout, stderr, code } = await run('with-passing-tests', 'staging'); - // Verify the failing test is shown as failed (with X mark) - expect(stdout + stderr).toMatch(/✗.*failing_test/); + // Check for presence of test output (exact message may vary by tests module version) + expect(stdout).toMatch('Running tests on:'); - // Verify summary shows 1 failed - expect(stdout + stderr).toMatch('1 failed'); + const output = stdout + stderr; + expect(output).toMatch(/\d+ passed/); + expect(output).not.toMatch(/[1-9]\d* failed/); - // Exit code should be 1 for failing test - expect(code).toBe(1); + expect(code).toBe(0); + }); + }); }); -}); \ No newline at end of file +}); diff --git a/test/test.test.js b/test/test.test.js deleted file mode 100644 index d2233be6..00000000 --- a/test/test.test.js +++ /dev/null @@ -1,612 +0,0 @@ -jest.mock('../lib/apiRequest', () => ({ - apiRequest: jest.fn() -})); - -require('dotenv').config(); - -const Gateway = require('../lib/proxy'); - -describe('Gateway test methods', () => { - const { apiRequest } = require('../lib/apiRequest'); - - beforeEach(() => { - apiRequest.mockReset(); - }); - - describe('test(name)', () => { - test('calls apiRequest with correct URL for single test (JS format)', async () => { - apiRequest.mockResolvedValue({ passed: 1, failed: 0, total: 1, tests: [] }); - - const gateway = new Gateway({ url: 'http://example.com', token: '1234', email: 'test@example.com' }); - const result = await gateway.test('example_test'); - - expect(apiRequest).toHaveBeenCalledWith({ - method: 'GET', - uri: 'http://example.com/_tests/run.js?name=example_test', - formData: undefined, - json: true, - forever: undefined, - request: expect.any(Function) - }); - expect(result).toEqual({ passed: 1, failed: 0, total: 1, tests: [] }); - }); - - test('handles test with path in name', async () => { - apiRequest.mockResolvedValue({ passed: 1, failed: 0, total: 1 }); - - const gateway = new Gateway({ url: 'http://example.com', token: '1234', email: 'test@example.com' }); - await gateway.test('test/examples/assertions_test'); - - expect(apiRequest).toHaveBeenCalledWith(expect.objectContaining({ - uri: 'http://example.com/_tests/run.js?name=test/examples/assertions_test' - })); - }); - }); - - describe('testRunAsync()', () => { - test('calls apiRequest with run_async endpoint (no .js extension for v1.1.0+)', async () => { - apiRequest.mockResolvedValue({ test_run_id: 'test-run-123' }); - - const gateway = new Gateway({ url: 'http://example.com', token: '1234', email: 'test@example.com' }); - const result = await gateway.testRunAsync(); - - expect(apiRequest).toHaveBeenCalledWith({ - method: 'GET', - uri: 'http://example.com/_tests/run_async', - formData: undefined, - json: true, - forever: undefined, - request: expect.any(Function) - }); - expect(result).toEqual({ test_run_id: 'test-run-123' }); - }); - - test('handles error response', async () => { - apiRequest.mockResolvedValue({ error: 'Tests module not found' }); - - const gateway = new Gateway({ url: 'http://example.com', token: '1234', email: 'test@example.com' }); - const result = await gateway.testRunAsync(); - - expect(result).toEqual({ error: 'Tests module not found' }); - }); - }); - - describe('formatTestLog', () => { - let formatTestLog; - - beforeEach(() => { - const testRunModule = require('../bin/pos-cli-test-run'); - formatTestLog = testRunModule.formatTestLog; - }); - - test('highlights test log with test path (new test indicator)', () => { - const logRow = { - message: '{"path": "app/lib/test/example_test.liquid"}', - type: 'liquid_test_abc123' - }; - - const result = formatTestLog(logRow, true); - - // Should contain the arrow indicator and path - expect(result).toContain('▶'); - expect(result).toContain('app/lib/test/example_test.liquid'); - }); - - test('displays test log without path normally', () => { - const logRow = { - message: 'Test assertion passed', - type: 'liquid_test_abc123' - }; - - const result = formatTestLog(logRow, true); - - // Should not contain the arrow indicator - expect(result).not.toContain('▶'); - expect(result).toContain('Test assertion passed'); - }); - - test('dims debug logs (type != test_name)', () => { - const logRow = { - message: 'Debug: checking variable value', - type: 'debug' - }; - - const result = formatTestLog(logRow, false); - - // Should contain the debug prefix with type - expect(result).toContain('[debug:debug]'); - expect(result).toContain('Debug: checking variable value'); - }); - - test('shows debug type in dimmed log output', () => { - const logRow = { - message: 'Custom debug message from test', - type: 'custom_debug' - }; - - const result = formatTestLog(logRow, false); - - expect(result).toContain('[debug:custom_debug]'); - expect(result).toContain('Custom debug message from test'); - }); - - test('highlights test path in modules directory', () => { - const logRow = { - message: '{"path": "modules/my_module/test/unit_test.liquid"}', - type: 'liquid_test_xyz789' - }; - - const result = formatTestLog(logRow, true); - - expect(result).toContain('▶'); - expect(result).toContain('modules/my_module/test/unit_test.liquid'); - }); - }); - - describe('TestLogStream', () => { - let TestLogStream; - - beforeEach(() => { - const testRunModule = require('../bin/pos-cli-test-run'); - TestLogStream = testRunModule.TestLogStream; - }); - - describe('parseJsonSummary', () => { - test('parses successful test completion JSON from tests module 1.1.1+', () => { - const stream = new TestLogStream({}); - - const message = JSON.stringify({ - success: true, - total_tests: 5, - total_assertions: 16, - total_errors: 0, - duration_ms: 26, - test_run_id: 'test-run-123', - tests: [ - { name: "test/array_test", success: true, assertions: 2, errors: {} }, - { name: "test/examples/assertions_test", success: true, assertions: 4, errors: {} }, - { name: "test/example_test", success: true, assertions: 5, errors: {} }, - { name: "test/object_test", success: true, assertions: 3, errors: {} }, - { name: "test/string_test", success: true, assertions: 2, errors: {} } - ] - }); - - const result = stream.parseJsonSummary(message); - - expect(result).toEqual({ - total: 5, - passed: 5, - failed: 0, - assertions: 16, - tests: [ - { name: "test/array_test", status: "passed", passed: true, assertions: 2 }, - { name: "test/examples/assertions_test", status: "passed", passed: true, assertions: 4 }, - { name: "test/example_test", status: "passed", passed: true, assertions: 5 }, - { name: "test/object_test", status: "passed", passed: true, assertions: 3 }, - { name: "test/string_test", status: "passed", passed: true, assertions: 2 } - ], - duration: 26 - }); - }); - - test('parses failed test completion JSON with error details', () => { - const stream = new TestLogStream({}); - - const message = JSON.stringify({ - success: false, - total_tests: 3, - total_assertions: 10, - total_errors: 1, - duration_ms: 45, - test_run_id: 'test-run-123', - tests: [ - { name: "test/passing_test", success: true, assertions: 3, errors: {} }, - { name: "test/failing_test", success: false, assertions: 2, errors: { expected: "field to be 2", actual: "field is 1" } }, - { name: "test/another_passing_test", success: true, assertions: 5, errors: {} } - ] - }); - - const result = stream.parseJsonSummary(message); - - expect(result).toEqual({ - total: 3, - passed: 2, - failed: 1, - assertions: 10, - tests: [ - { name: "test/passing_test", status: "passed", passed: true, assertions: 3 }, - { name: "test/failing_test", status: "failed", passed: false, assertions: 2, error: "{\"expected\":\"field to be 2\",\"actual\":\"field is 1\"}" }, - { name: "test/another_passing_test", status: "passed", passed: true, assertions: 5 } - ], - duration: 45 - }); - }); - - test('handles alternative field names (total instead of total_tests)', () => { - const stream = new TestLogStream({}); - - const message = JSON.stringify({ - success: true, - total: 4, - assertions: 8, - duration: 30, - test_run_id: 'test-run-123', - tests: [ - { name: "test1", success: true, assertions: 2, errors: {} }, - { name: "test2", success: true, assertions: 2, errors: {} }, - { name: "test3", success: true, assertions: 2, errors: {} }, - { name: "test4", success: true, assertions: 2, errors: {} } - ] - }); - - const result = stream.parseJsonSummary(message); - - expect(result).toEqual({ - total: 4, - passed: 4, - failed: 0, - assertions: 8, - tests: [ - { name: "test1", status: "passed", passed: true, assertions: 2 }, - { name: "test2", status: "passed", passed: true, assertions: 2 }, - { name: "test3", status: "passed", passed: true, assertions: 2 }, - { name: "test4", status: "passed", passed: true, assertions: 2 } - ], - duration: 30 - }); - }); - - test('returns null for invalid JSON', () => { - const stream = new TestLogStream({}); - const invalidJson = '{ "invalid": json }'; - const result = stream.parseJsonSummary(invalidJson); - expect(result).toBeNull(); - }); - }); - - describe('isValidTestSummaryJson', () => { - test('identifies valid test summary JSON', () => { - const stream = new TestLogStream({}); - - const validMessage = JSON.stringify({ - success: true, - total_tests: 5, - total_assertions: 16, - duration_ms: 26, - test_run_id: 'test-run-123', - tests: [] - }); - - expect(stream.isValidTestSummaryJson(validMessage)).toBe(true); - }); - - test('rejects JSON without tests array', () => { - const stream = new TestLogStream({}); - - const invalidMessage = JSON.stringify({ - success: true, - total_tests: 5, - duration_ms: 26 - }); - - expect(stream.isValidTestSummaryJson(invalidMessage)).toBe(false); - }); - - test('rejects JSON without success field', () => { - const stream = new TestLogStream({}); - - const invalidMessage = JSON.stringify({ - total_tests: 5, - duration_ms: 26, - tests: [] - }); - - expect(stream.isValidTestSummaryJson(invalidMessage)).toBe(false); - }); - - test('rejects non-test JSON', () => { - const stream = new TestLogStream({}); - - const invalidMessage = JSON.stringify({ - path: "test/array_test" - }); - - expect(stream.isValidTestSummaryJson(invalidMessage)).toBe(false); - }); - }); - - describe('testCompleted event emission', () => { - test('emits testCompleted only once even when duplicate JSON summaries are received', () => { - const stream = new TestLogStream({}); - const mockEmit = jest.fn(); - stream.emit = mockEmit; - - const testSummaryJson = JSON.stringify({ - success: true, - total_tests: 5, - total_assertions: 16, - duration_ms: 26, - test_run_id: 'test-run-123', - tests: [ - { name: "test/array_test", success: true, assertions: 2, errors: {} }, - { name: "test/examples/assertions_test", success: true, assertions: 4, errors: {} }, - { name: "test/example_test", success: true, assertions: 5, errors: {} }, - { name: "test/object_test", success: true, assertions: 3, errors: {} }, - { name: "test/string_test", success: true, assertions: 2, errors: {} } - ] - }); - - // Simulate receiving the same JSON summary multiple times - const logRow1 = { id: 1, message: testSummaryJson }; - const logRow2 = { id: 2, message: testSummaryJson }; - const logRow3 = { id: 3, message: testSummaryJson }; - - // Process first occurrence - stream.processLogMessage(logRow1); - // Process second occurrence (duplicate) - stream.processLogMessage(logRow2); - // Process third occurrence (duplicate) - stream.processLogMessage(logRow3); - - // Should emit testCompleted only once - expect(mockEmit).toHaveBeenCalledTimes(1); - expect(mockEmit).toHaveBeenCalledWith('testCompleted', expect.any(Object)); - - // Verify the emitted results are correct - const emittedResults = mockEmit.mock.calls[0][1]; - expect(emittedResults.total).toBe(5); - expect(emittedResults.passed).toBe(5); - expect(emittedResults.failed).toBe(0); - }); - - test('only processes JSON summaries that match the testRunId', () => { - const stream = new TestLogStream({}, 30000, 'test-run-123'); - const mockEmit = jest.fn(); - stream.emit = mockEmit; - - const matchingSummaryJson = JSON.stringify({ - success: false, - total_tests: 2, - total_errors: 2, - test_run_id: 'test-run-123', - tests: [ - { name: "test1", success: false, assertions: 1, errors: { message: "failed" } }, - { name: "test2", success: false, assertions: 1, errors: { message: "failed" } } - ] - }); - - const nonMatchingSummaryJson = JSON.stringify({ - success: true, - total_tests: 2, - test_run_id: 'test-run-456', - tests: [ - { name: "test1", success: true, assertions: 1, errors: {} }, - { name: "test2", success: true, assertions: 1, errors: {} } - ] - }); - - // Process non-matching summary first (should be ignored) - stream.processLogMessage({ id: 1, message: nonMatchingSummaryJson }); - // Process matching summary (should be processed) - stream.processLogMessage({ id: 2, message: matchingSummaryJson }); - - // Should emit testCompleted only once for the matching summary - expect(mockEmit).toHaveBeenCalledTimes(1); - expect(mockEmit).toHaveBeenCalledWith('testCompleted', expect.any(Object)); - - // Verify the emitted results are from the matching (failing) summary - const emittedResults = mockEmit.mock.calls[0][1]; - expect(emittedResults.total).toBe(2); - expect(emittedResults.passed).toBe(0); - expect(emittedResults.failed).toBe(2); - }); - - test('ignores JSON summaries when no testRunId is set (backward compatibility)', () => { - const stream = new TestLogStream({}); // No testRunId - const mockEmit = jest.fn(); - stream.emit = mockEmit; - - const summaryWithIdJson = JSON.stringify({ - success: true, - total_tests: 1, - test_run_id: 'test-run-123', - tests: [{ name: "test1", success: true, assertions: 1, errors: {} }] - }); - - // Should still process summaries even with test_run_id when no filter is set - stream.processLogMessage({ id: 1, message: summaryWithIdJson }); - - expect(mockEmit).toHaveBeenCalledTimes(1); - expect(mockEmit).toHaveBeenCalledWith('testCompleted', expect.any(Object)); - }); - }); - - describe('testName filtering', () => { - test('detects test start with matching testName type', () => { - const stream = new TestLogStream({}, 30000, null, 'liquid_test_abc123'); - const mockEmit = jest.fn(); - stream.emit = mockEmit; - - const startLog = { - id: 1, - message: 'Starting unit tests', - error_type: 'liquid_test_abc123' - }; - - stream.processLogMessage(startLog); - - expect(mockEmit).toHaveBeenCalledWith('testStarted'); - expect(stream.testStarted).toBe(true); - }); - - test('ignores test start with non-matching testName type', () => { - const stream = new TestLogStream({}, 30000, null, 'liquid_test_abc123'); - const mockEmit = jest.fn(); - stream.emit = mockEmit; - - const startLog = { - id: 1, - message: 'Starting unit tests', - error_type: 'liquid_test_different' - }; - - stream.processLogMessage(startLog); - - expect(mockEmit).not.toHaveBeenCalled(); - expect(stream.testStarted).toBe(false); - }); - - test('detects test completion with testName SUMMARY type', () => { - const stream = new TestLogStream({}, 30000, null, 'liquid_test_abc123'); - stream.testStarted = true; // Simulate test already started - const mockEmit = jest.fn(); - stream.emit = mockEmit; - - const summaryJson = JSON.stringify({ - success: true, - total_tests: 2, - tests: [ - { name: "test1", success: true, assertions: 1, errors: {} }, - { name: "test2", success: true, assertions: 1, errors: {} } - ] - }); - - const summaryLog = { - id: 2, - message: summaryJson, - error_type: 'liquid_test_abc123 SUMMARY' - }; - - stream.processLogMessage(summaryLog); - - expect(mockEmit).toHaveBeenCalledWith('testCompleted', expect.any(Object)); - expect(stream.completed).toBe(true); - }); - - test('ignores summary with non-matching testName SUMMARY type', () => { - const stream = new TestLogStream({}, 30000, null, 'liquid_test_abc123'); - stream.testStarted = true; - const mockEmit = jest.fn(); - stream.emit = mockEmit; - - const summaryJson = JSON.stringify({ - success: true, - total_tests: 2, - tests: [ - { name: "test1", success: true, assertions: 1, errors: {} }, - { name: "test2", success: true, assertions: 1, errors: {} } - ] - }); - - const summaryLog = { - id: 2, - message: summaryJson, - error_type: 'liquid_test_different SUMMARY' - }; - - stream.processLogMessage(summaryLog); - - // Should emit testLog instead since it's during the test run - expect(mockEmit).toHaveBeenCalledWith('testLog', expect.any(Object), false); - expect(stream.completed).toBe(false); - }); - - test('emits testLog with isTestLog=true for logs with matching testName type', () => { - const stream = new TestLogStream({}, 30000, null, 'liquid_test_abc123'); - stream.testStarted = true; - const mockEmit = jest.fn(); - stream.emit = mockEmit; - - const testLog = { - id: 2, - message: '{"path": "app/lib/test/example_test.liquid"}', - error_type: 'liquid_test_abc123' - }; - - stream.processLogMessage(testLog); - - expect(mockEmit).toHaveBeenCalledWith('testLog', testLog, true); - }); - - test('emits testLog with isTestLog=false for logs with different type (debug logs)', () => { - const stream = new TestLogStream({}, 30000, null, 'liquid_test_abc123'); - stream.testStarted = true; - const mockEmit = jest.fn(); - stream.emit = mockEmit; - - const debugLog = { - id: 2, - message: 'Debug: checking variable value', - error_type: 'debug' - }; - - stream.processLogMessage(debugLog); - - expect(mockEmit).toHaveBeenCalledWith('testLog', debugLog, false); - }); - - test('does not emit logs before test started', () => { - const stream = new TestLogStream({}, 30000, null, 'liquid_test_abc123'); - const mockEmit = jest.fn(); - stream.emit = mockEmit; - - const earlyLog = { - id: 1, - message: 'Some early log from previous test run', - error_type: 'liquid_test_abc123' - }; - - stream.processLogMessage(earlyLog); - - expect(mockEmit).not.toHaveBeenCalled(); - }); - - test('does not emit logs after test completed', () => { - const stream = new TestLogStream({}, 30000, null, 'liquid_test_abc123'); - stream.testStarted = true; - stream.completed = true; - const mockEmit = jest.fn(); - stream.emit = mockEmit; - - const lateLog = { - id: 3, - message: 'Some late log', - error_type: 'liquid_test_abc123' - }; - - stream.processLogMessage(lateLog); - - expect(mockEmit).not.toHaveBeenCalled(); - }); - - test('filters noise from past test runs by only processing logs with matching testName', () => { - const stream = new TestLogStream({}, 30000, null, 'liquid_test_current'); - stream.testStarted = true; - const mockEmit = jest.fn(); - stream.emit = mockEmit; - - // Log from a past test run with different testName - const pastLog = { - id: 1, - message: 'Some past test log', - error_type: 'liquid_test_past' - }; - - // Log from current test run - const currentLog = { - id: 2, - message: 'Current test log', - error_type: 'liquid_test_current' - }; - - stream.processLogMessage(pastLog); - stream.processLogMessage(currentLog); - - // Should emit both logs, but with different isTestLog values - expect(mockEmit).toHaveBeenCalledTimes(2); - expect(mockEmit).toHaveBeenNthCalledWith(1, 'testLog', pastLog, false); // non-matching type = debug - expect(mockEmit).toHaveBeenNthCalledWith(2, 'testLog', currentLog, true); // matching type = test log - }); - }); - }); -}); \ No newline at end of file diff --git a/test/utils/commands.js b/test/utils/commands.js new file mode 100644 index 00000000..44b99a1a --- /dev/null +++ b/test/utils/commands.js @@ -0,0 +1,18 @@ +const exec = require('./exec'); +const cliPath = require('./cliPath'); + +/** + * Clean the instance (remove all data and schemas). + * Uses MPKIT_URL/MPKIT_TOKEN from environment variables. + * + * @param {string} cwd - Working directory for the command + */ +const cleanInstance = async (cwd) => { + const result = await exec(`${cliPath} data clean --auto-confirm --include-schema`, { cwd, env: process.env }); + if (result.code !== 0) { + throw new Error(`Failed to clean instance: ${result.stderr}`); + } + return result; +}; + +module.exports = { cleanInstance }; diff --git a/test/utils/exec.js b/test/utils/exec.js index b39d952f..7f08b593 100644 --- a/test/utils/exec.js +++ b/test/utils/exec.js @@ -2,10 +2,7 @@ const { exec } = require('child_process'); module.exports = (cmd, opts, callback) => new Promise((resolve, reject) => { - // const dirOutput = opts && opts.cwd ? `\nDIR: ${opts.cwd}` : ''; - // console.log(`Running command...\nCMD: ${cmd}${dirOutput}`); const child = exec(cmd, opts, (err, stdout, stderr) => { - // if (err) console.log('exec err:', err) ; let code = err ? err.code : 0; return resolve({ stdout, stderr, code, child }); }); diff --git a/test/utils/realCredentials.js b/test/utils/realCredentials.js new file mode 100644 index 00000000..257f78c5 --- /dev/null +++ b/test/utils/realCredentials.js @@ -0,0 +1,13 @@ +const hasRealCredentials = () => { + return process.env.MPKIT_URL && + process.env.MPKIT_TOKEN && + !process.env.MPKIT_URL.includes('example.com'); +}; + +const requireRealCredentials = () => { + if (!hasRealCredentials()) { + throw new Error('Missing real platformOS credentials (MPKIT_URL, MPKIT_TOKEN). Load .env file to run these tests.'); + } +}; + +module.exports = { hasRealCredentials, requireRealCredentials }; From f5d1cd69674dada496e6b2dd3e397e1417d9fe32 Mon Sep 17 00:00:00 2001 From: Maciej Krajowski-Kukiel Date: Sat, 17 Jan 2026 17:54:59 +0100 Subject: [PATCH 6/8] modernize stack - commonjs -> esm, jest -> vitest, upgrade dependencies --- .github/workflows/tests.yaml | 2 +- CHANGELOG.md | 26 + CLAUDE.md | 24 +- PACKAGES_UPGRADE.md | 369 + README.md | 2 +- bin/pos-cli-archive.js | 8 +- bin/pos-cli-audit.js | 4 +- bin/pos-cli-clone-init.js | 40 +- bin/pos-cli-clone.js | 2 +- bin/pos-cli-constants-list.js | 12 +- bin/pos-cli-constants-set.js | 18 +- bin/pos-cli-constants-unset.js | 16 +- bin/pos-cli-constants.js | 2 +- bin/pos-cli-data-clean.js | 28 +- bin/pos-cli-data-export.js | 35 +- bin/pos-cli-data-import.js | 41 +- bin/pos-cli-data-update.js | 31 +- bin/pos-cli-data.js | 2 +- bin/pos-cli-deploy.js | 20 +- bin/pos-cli-env-add.js | 8 +- bin/pos-cli-env-list.js | 4 +- bin/pos-cli-env-refresh-token.js | 16 +- bin/pos-cli-env.js | 2 +- bin/pos-cli-exec-graphql.js | 14 +- bin/pos-cli-exec-liquid.js | 14 +- bin/pos-cli-exec.js | 4 +- bin/pos-cli-generate-list.js | 8 +- bin/pos-cli-generate-run.js | 85 +- bin/pos-cli-generate.js | 2 +- bin/pos-cli-gui-serve.js | 40 +- bin/pos-cli-gui.js | 4 +- bin/pos-cli-init.js | 10 +- bin/pos-cli-logs.js | 46 +- bin/pos-cli-logsv2-alerts-add.js | 8 +- bin/pos-cli-logsv2-alerts-list.js | 8 +- bin/pos-cli-logsv2-alerts-trigger.js | 8 +- bin/pos-cli-logsv2-alerts.js | 2 +- bin/pos-cli-logsv2-reports.js | 23 +- bin/pos-cli-logsv2-search.js | 12 +- bin/pos-cli-logsv2-searchAround.js | 10 +- bin/pos-cli-logsv2.js | 2 +- bin/pos-cli-migrations-generate.js | 19 +- bin/pos-cli-migrations-list.js | 10 +- bin/pos-cli-migrations-run.js | 10 +- bin/pos-cli-migrations.js | 2 +- bin/pos-cli-modules-download.js | 30 +- bin/pos-cli-modules-init.js | 10 +- bin/pos-cli-modules-install.js | 40 +- bin/pos-cli-modules-list.js | 10 +- bin/pos-cli-modules-overwrites-diff.js | 8 +- bin/pos-cli-modules-overwrites-list.js | 6 +- bin/pos-cli-modules-overwrites.js | 2 +- bin/pos-cli-modules-pull.js | 26 +- bin/pos-cli-modules-push.js | 10 +- bin/pos-cli-modules-remove.js | 10 +- bin/pos-cli-modules-update.js | 38 +- bin/pos-cli-modules-version.js | 17 +- bin/pos-cli-modules.js | 4 +- bin/pos-cli-pull.js | 25 +- bin/pos-cli-sync.js | 33 +- bin/pos-cli-test-run.js | 30 +- bin/pos-cli-test.js | 2 +- bin/pos-cli-uploads-push.js | 28 +- bin/pos-cli-uploads.js | 2 +- bin/pos-cli.js | 15 +- ...tailwind.config.js => tailwind.config.cjs} | 0 .../{babel.config.js => babel.config.cjs} | 0 lib/ServerError.js | 8 +- lib/apiRequest.js | 93 +- lib/archive.js | 27 +- lib/assets.js | 30 +- lib/assets/manifest.js | 13 +- lib/assets/packAssets.js | 18 +- lib/audit.js | 38 +- lib/audit/detailed.js | 63 +- lib/audit/duplicateFile.js | 10 +- lib/audit/extensions.js | 8 +- lib/audit/fileName.js | 10 +- lib/audit/filters.js | 52 +- lib/audit/orphanedIncludes.js | 21 +- lib/audit/tags.js | 52 +- lib/data/fetchFiles.js | 54 +- lib/data/isValidJSON.js | 4 +- lib/data/uploadFiles.js | 16 +- lib/data/waitForStatus.js | 11 +- lib/deploy/defaultStrategy.js | 15 +- lib/deploy/directAssetsUploadStrategy.js | 33 +- lib/deploy/strategy.js | 13 +- lib/directories.js | 4 +- lib/downloadFile.js | 10 +- lib/duration.js | 12 +- lib/environments.js | 27 +- lib/envs/add.js | 15 +- lib/files.js | 18 +- lib/graph/queries.js | 46 +- lib/logger.js | 63 +- lib/logger/rainbow.js | 4 +- lib/logger/report.js | 19 +- lib/logger/simple.js | 2 +- lib/logsv2/http.js | 4 +- lib/modules.js | 33 +- lib/modules/configFiles.js | 15 +- lib/modules/dependencies.js | 13 +- lib/overwrites.js | 9 +- lib/portal.js | 6 +- lib/prepareArchive.js | 12 +- lib/presignUrl.js | 113 +- lib/productionEnvironment.js | 22 +- lib/proxy.js | 86 +- lib/push.js | 21 +- lib/s3UploadFile.js | 87 +- lib/server.js | 36 +- lib/settings.js | 12 +- lib/shouldBeSynced.js | 28 +- lib/swagger-client.js | 37 +- lib/templates.js | 24 +- lib/test-runner/formatters.js | 22 +- lib/test-runner/index.js | 38 +- lib/test-runner/logStream.js | 26 +- lib/unzip.js | 8 +- lib/utils/create-directory.js | 10 +- lib/utils/password.js | 8 +- lib/utils/valid-file-path.js | 24 +- lib/validators/directoryEmpty.js | 8 +- lib/validators/directoryExists.js | 8 +- lib/validators/email.js | 8 +- lib/validators/existence.js | 6 +- lib/validators/index.js | 18 +- lib/validators/url.js | 8 +- lib/watch-files-extensions.js | 2 +- lib/watch.js | 54 +- package-lock.json | 15847 ++++++---------- package.json | 50 +- scripts/check-node-version.js | 8 +- test/audit.test.js | 14 +- test/data.test.js | 5 +- test/{lib/modules => }/dependencies.test.js | 19 +- test/deploy.test.js | 55 +- test/env-add-unit.test.js | 72 + test/env-add.test.js | 45 +- test/exec-graphql.test.js | 260 - test/exec-liquid.test.js | 265 - test/{lib => }/files.test.js | 2 +- .../correct_with_assets/app/assets/bar.js | 95 + .../modules/core/generators/command/index.js | 44 + .../command/templates/graphql/create.graphql | 20 + .../templates/lib/commands/create.liquid | 10 + .../lib/commands/create/build.liquid | 4 + .../lib/commands/create/check.liquid | 10 + .../modules/core/generators/crud/index.js | 116 + .../core/generators/crud/templates/config.yml | 16 + .../crud/templates/graphql/create.graphql | 25 + .../crud/templates/graphql/delete.graphql | 6 + .../crud/templates/graphql/search.graphql | 39 + .../crud/templates/graphql/update.graphql | 27 + .../lib/commands/model/create.liquid | 10 + .../lib/commands/model/create/build.liquid | 16 + .../lib/commands/model/create/check.liquid | 11 + .../lib/commands/model/delete.liquid | 9 + .../lib/commands/model/delete/check.liquid | 9 + .../lib/commands/model/update.liquid | 10 + .../lib/commands/model/update/build.liquid | 16 + .../lib/commands/model/update/check.liquid | 12 + .../templates/lib/queries/model/find.liquid | 9 + .../templates/lib/queries/model/search.liquid | 4 + .../crud/templates/schema/model.yml | 6 + .../crud/templates/translations/model.yml | 15 + .../templates/views/pages/model/create.liquid | 14 + .../templates/views/pages/model/delete.liquid | 16 + .../templates/views/pages/model/edit.liquid | 5 + .../templates/views/pages/model/index.liquid | 5 + .../templates/views/pages/model/new.liquid | 4 + .../templates/views/pages/model/show.liquid | 13 + .../templates/views/pages/model/update.liquid | 14 + .../partials/theme/simple/field_error.liquid | 5 + .../partials/theme/simple/model/edit.liquid | 5 + .../theme/simple/model/empty_state.liquid | 9 + .../partials/theme/simple/model/form.liquid | 27 + .../partials/theme/simple/model/index.liquid | 49 + .../partials/theme/simple/model/new.liquid | 4 + .../partials/theme/simple/model/show.liquid | 15 + test/fixtures/yeoman/package-lock.json | 29 + test/fixtures/yeoman/package.json | 8 + test/generators.test.js | 542 + test/gui-serve.test.js | 93 + test/lib/commands.test.js | 10 +- test/logs.test.js | 29 +- test/logsv2s.test.js | 46 - test/{lib/assets => }/manifest.test.js | 6 +- test/modules-download.test.js | 25 +- test/modules-push.test.js | 23 +- test/modules-update.test.js | 45 +- test/productionEnvironment.test.js | 27 +- test/sync.test.js | 45 +- test/{lib => }/templates.test.js | 12 +- test/test-run.test.js | 779 +- test/utils/cliPath.js | 11 +- test/utils/commands.js | 12 +- test/utils/credentials.js | 55 + test/utils/exec.js | 6 +- test/utils/realCredentials.js | 13 - test/valid-file-path.test.js | 4 +- test/vitest-setup.js | 10 + vitest.config.js | 16 + 204 files changed, 10018 insertions(+), 12208 deletions(-) create mode 100644 PACKAGES_UPGRADE.md rename gui/admin/{tailwind.config.js => tailwind.config.cjs} (100%) rename gui/graphql/{babel.config.js => babel.config.cjs} (100%) rename test/{lib/modules => }/dependencies.test.js (83%) create mode 100644 test/env-add-unit.test.js delete mode 100644 test/exec-graphql.test.js delete mode 100644 test/exec-liquid.test.js rename test/{lib => }/files.test.js (93%) create mode 100644 test/fixtures/yeoman/modules/core/generators/command/index.js create mode 100644 test/fixtures/yeoman/modules/core/generators/command/templates/graphql/create.graphql create mode 100644 test/fixtures/yeoman/modules/core/generators/command/templates/lib/commands/create.liquid create mode 100644 test/fixtures/yeoman/modules/core/generators/command/templates/lib/commands/create/build.liquid create mode 100644 test/fixtures/yeoman/modules/core/generators/command/templates/lib/commands/create/check.liquid create mode 100644 test/fixtures/yeoman/modules/core/generators/crud/index.js create mode 100644 test/fixtures/yeoman/modules/core/generators/crud/templates/config.yml create mode 100644 test/fixtures/yeoman/modules/core/generators/crud/templates/graphql/create.graphql create mode 100644 test/fixtures/yeoman/modules/core/generators/crud/templates/graphql/delete.graphql create mode 100644 test/fixtures/yeoman/modules/core/generators/crud/templates/graphql/search.graphql create mode 100644 test/fixtures/yeoman/modules/core/generators/crud/templates/graphql/update.graphql create mode 100644 test/fixtures/yeoman/modules/core/generators/crud/templates/lib/commands/model/create.liquid create mode 100644 test/fixtures/yeoman/modules/core/generators/crud/templates/lib/commands/model/create/build.liquid create mode 100644 test/fixtures/yeoman/modules/core/generators/crud/templates/lib/commands/model/create/check.liquid create mode 100644 test/fixtures/yeoman/modules/core/generators/crud/templates/lib/commands/model/delete.liquid create mode 100644 test/fixtures/yeoman/modules/core/generators/crud/templates/lib/commands/model/delete/check.liquid create mode 100644 test/fixtures/yeoman/modules/core/generators/crud/templates/lib/commands/model/update.liquid create mode 100644 test/fixtures/yeoman/modules/core/generators/crud/templates/lib/commands/model/update/build.liquid create mode 100644 test/fixtures/yeoman/modules/core/generators/crud/templates/lib/commands/model/update/check.liquid create mode 100644 test/fixtures/yeoman/modules/core/generators/crud/templates/lib/queries/model/find.liquid create mode 100644 test/fixtures/yeoman/modules/core/generators/crud/templates/lib/queries/model/search.liquid create mode 100644 test/fixtures/yeoman/modules/core/generators/crud/templates/schema/model.yml create mode 100644 test/fixtures/yeoman/modules/core/generators/crud/templates/translations/model.yml create mode 100644 test/fixtures/yeoman/modules/core/generators/crud/templates/views/pages/model/create.liquid create mode 100644 test/fixtures/yeoman/modules/core/generators/crud/templates/views/pages/model/delete.liquid create mode 100644 test/fixtures/yeoman/modules/core/generators/crud/templates/views/pages/model/edit.liquid create mode 100644 test/fixtures/yeoman/modules/core/generators/crud/templates/views/pages/model/index.liquid create mode 100644 test/fixtures/yeoman/modules/core/generators/crud/templates/views/pages/model/new.liquid create mode 100644 test/fixtures/yeoman/modules/core/generators/crud/templates/views/pages/model/show.liquid create mode 100644 test/fixtures/yeoman/modules/core/generators/crud/templates/views/pages/model/update.liquid create mode 100644 test/fixtures/yeoman/modules/core/generators/crud/templates/views/partials/theme/simple/field_error.liquid create mode 100644 test/fixtures/yeoman/modules/core/generators/crud/templates/views/partials/theme/simple/model/edit.liquid create mode 100644 test/fixtures/yeoman/modules/core/generators/crud/templates/views/partials/theme/simple/model/empty_state.liquid create mode 100644 test/fixtures/yeoman/modules/core/generators/crud/templates/views/partials/theme/simple/model/form.liquid create mode 100644 test/fixtures/yeoman/modules/core/generators/crud/templates/views/partials/theme/simple/model/index.liquid create mode 100644 test/fixtures/yeoman/modules/core/generators/crud/templates/views/partials/theme/simple/model/new.liquid create mode 100644 test/fixtures/yeoman/modules/core/generators/crud/templates/views/partials/theme/simple/model/show.liquid create mode 100644 test/fixtures/yeoman/package-lock.json create mode 100644 test/fixtures/yeoman/package.json create mode 100644 test/generators.test.js create mode 100644 test/gui-serve.test.js delete mode 100644 test/logsv2s.test.js rename test/{lib/assets => }/manifest.test.js (86%) rename test/{lib => }/templates.test.js (51%) create mode 100644 test/utils/credentials.js delete mode 100644 test/utils/realCredentials.js create mode 100644 test/vitest-setup.js create mode 100644 vitest.config.js diff --git a/.github/workflows/tests.yaml b/.github/workflows/tests.yaml index 94b7807a..f4cd9b75 100644 --- a/.github/workflows/tests.yaml +++ b/.github/workflows/tests.yaml @@ -14,7 +14,7 @@ jobs: strategy: max-parallel: 1 matrix: - version: ['18', '20', '20.11'] + version: ['20.18.0', '20.11.0', '22', '24'] steps: - name: Checkout repository diff --git a/CHANGELOG.md b/CHANGELOG.md index baa2aae1..533249d6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,10 +2,36 @@ ## Unreleased + +## 6.0.0 + * Feature: `pos-cli exec liquid` command to execute Liquid code directly on an instance (supports `-f` flag to load from file, requires confirmation on production) * Feature: `pos-cli exec graphql` command to execute GraphQL queries directly on an instance (supports `-f` flag to load from file, requires confirmation on production) * Feature: `pos-cli test run` command to run tests using the tests module +### Major Dependency Upgrades + +We've completed a comprehensive modernization of the CLI including: + +**Node.js Version Requirement**: Now requires Node.js 20 or higher (up from Node.js 18) + +**Breaking Changes** that may require action from users: + +1. **Yeoman generators**: If you have custom generators using `yeoman-generator`, they need to be rewritten for the v7.x update: + - No kebab-case in option names (e.g., `skip-install` → `skipInstall`) + - `composeWith()` is now async (use `await`) + - The `install()` action has been removed; use `addDependencies()` instead + - See [yeoman-generator v5 to v7 migration guide](https://yeoman.github.io/generator/v5-to-v7-migration/) + +2. **Express v5 route syntax**: Routes using wildcards have changed from `/*` to `/*splat` format. This is handled automatically, but if you have custom Express middleware in your project, you may need to update route patterns. + +**Package Upgrades**: All major dependencies have been updated to their latest stable versions including: +- chalk v5.6, chokidar v5.0, express v5.2, ora v9.0, open v11.0 +- inquirer v13.2, mime v4.1, multer v2.0, yeoman-environment v5.1, yeoman-generator v7.5 +- And many other dependency updates for security and stability + +**Test Framework Migration**: Migrated from Jest to Vitest to better support ESM + ## 5.5.0 * Feature: (GUI) Ability to add, edit and remove users diff --git a/CLAUDE.md b/CLAUDE.md index a3345a14..f00473b2 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -90,14 +90,14 @@ pos-cli/ Example: ```javascript // bin/pos-cli-deploy.js -const fetchAuthData = require('../lib/settings').fetchSettings; -const deployStrategy = require('../lib/deploy/strategy'); +import { fetchSettings } from '../lib/settings'; +import deployStrategy from '../lib/deploy/strategy.js'; program .argument('[environment]', 'name of environment') .option('-p --partial-deploy', 'Partial deployment') .action(async (environment, params) => { - const authData = fetchAuthData(environment); + const authData = fetchSettings(environment); deployStrategy.run({ strategy: 'directAssetsUpload', opts: { ... } }); }); ``` @@ -139,11 +139,17 @@ Two deployment strategies: Strategy selection: ```javascript +import defaultStrategy from './defaultStrategy.js'; +import directAssetsUploadStrategy from './directAssetsUploadStrategy.js'; + const strategies = { - default: require('./defaultStrategy'), - directAssetsUpload: require('./directAssetsUploadStrategy'), + default: defaultStrategy, + directAssetsUpload: directAssetsUploadStrategy, }; -module.exports = { run: ({ strategy, opts }) => strategies[strategy](opts) }; + +const run = ({ strategy, opts }) => strategies[strategy](opts); + +export { run }; ``` #### 3. File Watching Pattern - Sync Mode @@ -354,6 +360,8 @@ GUI apps are pre-built (in dist/ or build/ directories). To modify: - **CDN** - Asset delivery and verification ## Node.js Version -- **Minimum**: Node.js 18 -- **Tested on**: 18, 20, 20.11 + +- **Minimum**: Node.js 20 +- **Recommended**: Node.js 20+ +- **Tested on**: 20, 20.11, 22, 24 - Check enforced by `scripts/check-node-version.js` postinstall hook diff --git a/PACKAGES_UPGRADE.md b/PACKAGES_UPGRADE.md new file mode 100644 index 00000000..3ff7db5f --- /dev/null +++ b/PACKAGES_UPGRADE.md @@ -0,0 +1,369 @@ +# Dependency Upgrades - Backwards Compatibility Guide + +## Overview + +This document documents all backwards incompatible changes from dependency upgrades performed via `npm update` and `npm audit fix --force`. The codebase is already using ESM (`"type": "module"` in package.json), which simplifies most migrations. + +## Node.js Requirements + +| Requirement | Minimum Version | Affected Packages | +|-------------|-----------------|-------------------| +| **Minimum** | 20 | chokidar 5.x, ora 9.x, yeoman-environment 5.x, open 11.x | +| **Tested** | 20, 20.11, 22, 24 | All packages work on Node.js 24 | + +**Action Required**: ✅ **DONE** - `package.json` engines field updated to Node.js >=20. + +--- + +## Package-by-Package Analysis + +### 1. chalk: 4.x → 5.x + +**Breaking Change**: ESM-only package (no CommonJS support) + +**Impact**: ✅ **NO CHANGES REQUIRED** + +**Reason**: Codebase already uses ESM imports correctly: +```javascript +import chalk from 'chalk'; +``` + +**Files Affected**: +- `bin/pos-cli-generate-run.js:16` (✅ removed unused import) +- `lib/test-runner/formatters.js:1` +- `lib/audit.js:1` +- `lib/logger/rainbow.js:1` + +**Action**: ✅ **DONE** - Removed unused chalk import from bin/pos-cli-generate-run.js:16 + +--- + +### 2. chokidar: 3.x → 5.x + +**Breaking Changes**: +- ESM-only package +- Node.js 20.19+ required +- `close()` method is now async (returns Promise) + +**Impact**: ⚠️ **CHANGE REQUIRED** + +**Files Affected**: +- `lib/watch.js:3` + +**Required Changes**: +```javascript +// Before +watcher.close(); + +// After +await watcher.close(); +``` + +**Action**: ✅ **DONE** - No watcher.close() calls in codebase, but verified sync tests pass + +--- + +### 3. express: 4.x → 5.x + +**Breaking Changes**: +- Response method ordering changes +- `app.del()` → `app.delete()` +- `res.redirect('back')` removed +- Path syntax changes: `/*` → `/*splat` +- `req.body` defaults to undefined (was `{}`) +- `req.query` is now read-only +- `express.static` dotfiles not served by default + +**Impact**: ✅ **NO CHANGES REQUIRED (VERIFICATION NEEDED)** + +**Files Affected**: +- `bin/pos-cli-generate-run.js:15` +- `lib/server.js:2` + +**Current Usage Assessment**: +- Already using `.status()` pattern correctly +- Already using camelCase `sendFile()` +- Not using deprecated `del()`, `redirect('back')`, or `req.param()` + +**Action**: ✅ **DONE** - Fixed path syntax `/*` → `/*splat` in lib/server.js + +--- + +### 4. ignore: 5.x → 7.x + +**Breaking Changes**: `ignore.default` removed + +**Impact**: ✅ **NO CHANGES REQUIRED** + +**Reason**: Codebase uses correct pattern: +```javascript +import ignore from 'ignore'; +const ig = ignore().add(ignoreList); +``` + +**Files Affected**: +- `lib/shouldBeSynced.js:3` + +**Action**: None - already compatible + +--- + +### 5. inquirer: 8.x → 13.x + +**Breaking Changes**: ESM-only package + +**Impact**: ✅ **NO CHANGES REQUIRED** + +**Reason**: Codebase already uses ESM imports and API is identical + +**Files Affected**: +- `bin/pos-cli-init.js:5` + +**Action**: None - already compatible + +--- + +### 6. mime: 3.x → 4.x + +**Breaking Changes**: +- ESM-only package +- Node.js 16+ required +- Direct named imports removed (use default import) +- Immutable instance (throws on `define()`) + +**Impact**: ✅ **NO CHANGES REQUIRED** + +**Reason**: Codebase already uses default import correctly: +```javascript +import mime from 'mime'; +const type = mime.getType(filePath); +``` + +**Files Affected**: +- `lib/presignUrl.js:3` +- `lib/s3UploadFile.js:2` + +**Action**: None - already compatible + +--- + +### 7. multer: 1.x → 2.x + +**Breaking Changes**: Node.js 10.16+ required + +**Impact**: ✅ **NO CHANGES REQUIRED** + +**Reason**: API is 100% backward compatible + +**Files Affected**: +- `lib/server.js:4` + +**Action**: None - already compatible + +--- + +### 8. ora: 8.x → 9.x + +**Breaking Changes**: +- Node.js 20+ required +- Stricter validation for custom spinners + +**Impact**: ✅ **NO CHANGES REQUIRED (NODE UPDATE NEEDED)** + +**Files Affected** (11 files): +- `bin/pos-cli-data-import.js:16` +- `bin/pos-cli-modules-update.js:10` +- `bin/pos-cli-uploads-push.js:10` +- `bin/pos-cli-modules-pull.js:9` +- `bin/pos-cli-modules-download.js:11` +- `bin/pos-cli-pull.js:10` +- `bin/pos-cli-data-update.js:11` +- `bin/pos-cli-data-export.js:13` +- `bin/pos-cli-data-clean.js:10` +- `bin/pos-cli-modules-install.js:10` +- `bin/pos-cli-clone-init.js:13` + +**Action**: Ensure Node.js 20+ is used, verify custom spinner configs (if any) + +--- + +### 9. open: 10.x → 11.x + +**Breaking Changes**: +- Node.js 20+ required +- Error handling now throws `AggregateError` (all attempts) + +**Impact**: ✅ **NO CHANGES REQUIRED (OPTIONAL IMPROVEMENT)** + +**Files Affected**: +- `bin/pos-cli-sync.js:29` +- `bin/pos-cli-gui-serve.js:34` +- `lib/environments.js:12` + +**Current Usage**: +```javascript +const open = (await import('open')).default; +await open(`${authData.url}`); +``` + +**Recommended Improvement** (optional): +```javascript +try { + await open(url); +} catch (error) { + if (error instanceof AggregateError) { + logger.Error(`Failed to open (${error.errors.length} attempts)`); + } else { + logger.Error(`Failed to open: ${error.message}`); + } +} +``` + +**Action**: ✅ **DONE** - Added AggregateError handling in: +- bin/pos-cli-sync.js +- bin/pos-cli-gui-serve.js +- lib/environments.js + +--- + +### 10. request & request-promise + +**Status**: ✅ **ALREADY MIGRATED** + +**Changes**: These packages are no longer dependencies. The codebase has been modernized to use the native `fetch` API. + +**Files Using Native Fetch**: +- `lib/apiRequest.js` + +**Action**: None - already completed + +--- + +### 11. yeoman-generator: 5.x → 7.x + +**Breaking Changes**: +- ESM-only package +- Node.js 16+ required +- `composeWith()` is now async +- `install` action removed (use `addDependencies()` instead) +- No kebab-case options allowed +- `run-async` removed + +**Impact**: ⚠️ **CHANGE REQUIRED (IF CUSTOM GENERATORS EXIST)** + +**Files Affected**: +- No direct imports found in codebase +- Used indirectly via `yeoman-environment` + +**Action**: Check for any custom generators in `modules/*/generators/` directories + +--- + +### 12. yeoman-environment: 3.x → 5.x + +**Breaking Changes**: +- ESM-only package +- Node.js 20.17+ or 22.9+ required +- API changes: `import { createEnv }` instead of `yeomanEnvModule.createEnv()` + +**Impact**: ⚠️ **CHANGE REQUIRED** + +**Files Affected**: +- `bin/pos-cli-generate-run.js:13` + +**Current Usage**: +```javascript +import yeomanEnvModule from 'yeoman-environment'; +const yeomanEnv = yeomanEnvModule.createEnv(); +``` + +**Required Changes**: +```javascript +import { createEnv } from 'yeoman-environment'; +const yeomanEnv = createEnv(); +``` + +**Action**: ✅ **DONE** - Updated import to named export in bin/pos-cli-generate-run.js + +--- + +### 13. update-notifier: 5.x → 7.x + +**Breaking Changes**: +- ESM-only package +- Node.js 18+ required +- Yarn commands removed + +**Impact**: ✅ **NO CHANGES REQUIRED** + +**Reason**: Codebase already uses correct ESM pattern: +```javascript +import updateNotifier from 'update-notifier'; +import pkg from '../package.json' assert { type: "json" }; +updateNotifier({pkg: pkg}).notify(); +``` + +**Files Affected**: +- `bin/pos-cli.js:4` + +**Action**: None - already compatible + +--- + +### 14. fs.existsSync (Node.js Deprecation) + +**Deprecation Warning**: Passing invalid argument types to fs.existsSync is deprecated + +**Impact**: ⚠️ **FIX REQUIRED** + +**Root Cause**: In `lib/files.js:17`, calling `fs.existsSync(undefined)` when `customConfig` is undefined. + +**Files Affected**: +- `lib/files.js:17` + +**Required Changes**: +```javascript +// Before +const firstExistingConfig = _paths(customConfig).filter(fs.existsSync)[0]; + +// After +const firstExistingConfig = _paths(customConfig).filter(path => path && fs.existsSync(path))[0]; +``` + +**Action**: ✅ **DONE** - Fixed to check if path exists before passing to fs.existsSync() + +--- + +## Summary of Required Actions + +| Priority | Package | Action | Effort | Status | +|----------|---------|--------|----------|--------| +| High | package.json | Update engines to `">=18"` | Low | ✅ DONE | +| High | chokidar | Add `await` to `watcher.close()` | Low | ✅ DONE | +| High | yeoman-environment | Update import to named export | Low | ✅ DONE | +| High | Run full test suite | Identify any remaining compatibility issues | High | ✅ DONE | +| High | Fix test failures | Resolve test failures from upgrades | High | ✅ DONE | +| Medium | express | Run test suite to verify compatibility | Medium | ✅ DONE | +| Medium | ora | Verify Node.js 20+, check custom spinners | Low | ✅ DONE | +| Medium | yeoman-generator | Check for custom generators | Medium | ✅ DONE | +| Low | open | Improve error handling | Low | ✅ DONE | +| Low | chalk | Remove unused import | Low | ✅ DONE | +| Low | fs.existsSync | Fix deprecation warning | Low | ✅ DONE | + +--- + +## Testing Strategy + +1. **Unit Tests**: Run unit tests that don't require credentials +2. **Integration Tests**: Run full test suite with credentials +3. **Manual Testing**: Test critical commands (sync, deploy, gui serve) +4. **Regression Testing**: Ensure no functionality is broken + +## Reference Links + +- [chalk v5 changelog](https://github.com/chalk/chalk/releases/tag/v5.0.0) +- [chokidar v5 migration guide](https://github.com/paulmillr/chokidar/blob/main/README.md#migrating-from-chokidar-3x-or-4x) +- [express v5 migration guide](https://github.com/expressjs/express/blob/master/History.md#500--2023-04-20) +- [ora v9 release notes](https://github.com/sindresorhus/ora/releases/tag/v9.0.0) +- [yeoman-environment v5 docs](https://yeoman.github.io/environment/) +- [yeoman-generator v5 to v7 migration](https://yeoman.github.io/generator/v5-to-v7-migration/) diff --git a/README.md b/README.md index 8ad85d61..83378f34 100644 --- a/README.md +++ b/README.md @@ -8,7 +8,7 @@ Run all commands from the project root directory, one level above the `app` or ` ### Requirements -`pos-cli` requires Node.js version 18 or higher to function correctly. [See instructions for installing Node.js on your platform](https://nodejs.org/en/download/). +`pos-cli` requires Node.js version 20 or higher to function correctly. [See instructions for installing Node.js on your platform](https://nodejs.org/en/download/). ## Installation and Update diff --git a/bin/pos-cli-archive.js b/bin/pos-cli-archive.js index e13b04b3..233026f5 100644 --- a/bin/pos-cli-archive.js +++ b/bin/pos-cli-archive.js @@ -1,8 +1,8 @@ #!/usr/bin/env node -const { program } = require('commander'); +import { program } from 'commander'; -const audit = require('../lib/audit'); -const archive = require('../lib/archive'); +import { run as auditRun } from '../lib/audit.js'; +import archive from '../lib/archive.js'; const createArchive = async (env) => { const numberOfFiles = await archive.makeArchive(env, { withoutAssets: false }); @@ -14,7 +14,7 @@ const runAudit = async () => { return; } - await audit.run(); + await auditRun(); }; program diff --git a/bin/pos-cli-audit.js b/bin/pos-cli-audit.js index 2230ab50..ad2dc1f1 100755 --- a/bin/pos-cli-audit.js +++ b/bin/pos-cli-audit.js @@ -1,5 +1,5 @@ #!/usr/bin/env node -const audit = require('../lib/audit'); +import { run } from '../lib/audit.js'; -audit.run(); +run(); diff --git a/bin/pos-cli-clone-init.js b/bin/pos-cli-clone-init.js index bee0c55c..ddc5c3c5 100755 --- a/bin/pos-cli-clone-init.js +++ b/bin/pos-cli-clone-init.js @@ -1,28 +1,17 @@ #!/usr/bin/env node -const { program } = require('commander'), - fs = require('fs'), - shell = require('shelljs'), - Gateway = require('../lib/proxy'), - fetchAuthData = require('../lib/settings').fetchSettings, - fetchFiles = require('../lib/data/fetchFiles'), - waitForStatus = require('../lib/data/waitForStatus'), - downloadFile = require('../lib/downloadFile'); - -const logger = require('../lib/logger'), - report = require('../lib/logger/report'); - -// importing ESM modules in CommonJS project -let ora; -const initializeEsmModules = async () => { - if(!ora) { - await import('ora').then(imported => ora = imported.default); - } - - return true; -} - -let gateway; +import fs from 'fs'; +import { program } from 'commander'; +import shell from 'shelljs'; +import Gateway from '../lib/proxy.js'; +import { fetchSettings } from '../lib/settings.js'; +import fetchFiles from '../lib/data/fetchFiles.js'; +import waitForStatus from '../lib/data/waitForStatus.js'; +import downloadFile from '../lib/downloadFile.js'; +import logger from '../lib/logger.js'; +import report from '../lib/logger/report.js'; +import ora from 'ora'; + const sleep = ms => new Promise(resolve => setTimeout(resolve, ms)); program.showHelpAfterError(); @@ -32,12 +21,11 @@ program .arguments('[targetEnv]', 'target environment. Example: staging2') .action(async (sourceEnv, targetEnv, params) => { - await initializeEsmModules(); const spinner = ora({ text: 'InstanceClone initilized', stream: process.stdout, interval: 500 }); try { - const sourceAuthData = fetchAuthData(sourceEnv, program); - const targetAuthData = fetchAuthData(targetEnv, program); + const sourceAuthData = fetchSettings(sourceEnv, program); + const targetAuthData = fetchSettings(targetEnv, program); sourceGateway = new Gateway(sourceAuthData); targetGateway = new Gateway(targetAuthData); diff --git a/bin/pos-cli-clone.js b/bin/pos-cli-clone.js index 0edf7ca5..a310645f 100644 --- a/bin/pos-cli-clone.js +++ b/bin/pos-cli-clone.js @@ -1,6 +1,6 @@ #!/usr/bin/env node -const { program } = require('commander'); +import { program } from 'commander'; program .name('pos-cli clone') diff --git a/bin/pos-cli-constants-list.js b/bin/pos-cli-constants-list.js index da828c7c..7e101302 100644 --- a/bin/pos-cli-constants-list.js +++ b/bin/pos-cli-constants-list.js @@ -1,10 +1,10 @@ #!/usr/bin/env node -const { program } = require('commander'), - Gateway = require('../lib/proxy'), - queries = require('../lib/graph/queries'), - fetchAuthData = require('../lib/settings').fetchSettings, - logger = require('../lib/logger'); +import { program } from 'commander'; +import Gateway from '../lib/proxy.js'; +import queries from '../lib/graph/queries.js'; +import { fetchSettings } from '../lib/settings.js'; +import logger from '../lib/logger.js'; const success = (msg) => { msg.data.constants.results.forEach(x => console.log(x.name.padEnd(50), safe(x.value))) @@ -22,7 +22,7 @@ program .name('pos-cli constants list') .arguments('[environment]', 'name of environment. Example: staging') .action((environment, params) => { - const authData = fetchAuthData(environment, program); + const authData = fetchSettings(environment, program); const gateway = new Gateway(authData); gateway diff --git a/bin/pos-cli-constants-set.js b/bin/pos-cli-constants-set.js index 8395de88..ed11b329 100644 --- a/bin/pos-cli-constants-set.js +++ b/bin/pos-cli-constants-set.js @@ -1,11 +1,11 @@ #!/usr/bin/env node -const { program } = require('commander'), - Gateway = require('../lib/proxy'), - validate = require('../lib/validators'), - queries = require('../lib/graph/queries'), - fetchAuthData = require('../lib/settings').fetchSettings, - logger = require('../lib/logger'); +import { program } from 'commander'; +import Gateway from '../lib/proxy.js'; +import { existence as validateExistence } from '../lib/validators/index.js'; +import queries from '../lib/graph/queries.js'; +import { fetchSettings } from '../lib/settings.js'; +import logger from '../lib/logger.js'; const help = () => { program.outputHelp(); @@ -13,8 +13,8 @@ const help = () => { } const checkParams = ({name, value}) => { - validate.existence({ argumentValue: value, argumentName: 'value', fail: help }); - validate.existence({ argumentValue: name, argumentName: 'name', fail: help }); + validateExistence({ argumentValue: value, argumentName: 'value', fail: help }); + validateExistence({ argumentValue: name, argumentName: 'name', fail: help }); } const success = (msg) => { @@ -32,7 +32,7 @@ program .arguments('[environment]', 'name of environment. Example: staging') .action((environment, params) => { checkParams(params); - const authData = fetchAuthData(environment, program); + const authData = fetchSettings(environment, program); const gateway = new Gateway(authData); const constant = gateway diff --git a/bin/pos-cli-constants-unset.js b/bin/pos-cli-constants-unset.js index 95e29988..c37ccfeb 100755 --- a/bin/pos-cli-constants-unset.js +++ b/bin/pos-cli-constants-unset.js @@ -1,11 +1,11 @@ #!/usr/bin/env node -const { program } = require('commander'), - Gateway = require('../lib/proxy'), - validate = require('../lib/validators'), - queries = require('../lib/graph/queries'), - fetchAuthData = require('../lib/settings').fetchSettings, - logger = require('../lib/logger'); +import { program } from 'commander'; +import Gateway from '../lib/proxy.js'; +import { existence as validateExistence } from '../lib/validators/index.js'; +import queries from '../lib/graph/queries.js'; +import { fetchSettings } from '../lib/settings.js'; +import logger from '../lib/logger.js'; const help = () => { program.outputHelp(); @@ -13,7 +13,7 @@ const help = () => { } const checkParams = ({name, value}) => { - validate.existence({ argumentValue: name, argumentName: 'name', fail: help }); + validateExistence({ argumentValue: name, argumentName: 'name', fail: help }); } const success = (msg) => { @@ -33,7 +33,7 @@ program .arguments('[environment]', 'name of environment. Example: staging') .action((environment, params) => { checkParams(params); - const authData = fetchAuthData(environment, program); + const authData = fetchSettings(environment, program); const gateway = new Gateway(authData); const constant = gateway diff --git a/bin/pos-cli-constants.js b/bin/pos-cli-constants.js index c06a2e28..70e1f191 100755 --- a/bin/pos-cli-constants.js +++ b/bin/pos-cli-constants.js @@ -1,6 +1,6 @@ #!/usr/bin/env node -const { program } = require('commander'); +import { program } from 'commander'; program .name('pos-cli constants') diff --git a/bin/pos-cli-data-clean.js b/bin/pos-cli-data-clean.js index df2ca51d..59ba2070 100755 --- a/bin/pos-cli-data-clean.js +++ b/bin/pos-cli-data-clean.js @@ -1,22 +1,13 @@ #!/usr/bin/env node -const { program } = require('commander'), - prompts = require('prompts'), - Gateway = require('../lib/proxy'), - waitForStatus = require('../lib/data/waitForStatus'), - fetchAuthData = require('../lib/settings').fetchSettings, - logger = require('../lib/logger'), - ServerError = require('../lib/ServerError'); - -// importing ESM modules in CommonJS project -let ora; -const initializeEsmModules = async () => { - if(!ora) { - await import('ora').then(imported => ora = imported.default); - } - - return true; -} +import { program } from 'commander'; +import prompts from 'prompts'; +import Gateway from '../lib/proxy.js'; +import waitForStatus from '../lib/data/waitForStatus.js'; +import { fetchSettings } from '../lib/settings.js'; +import logger from '../lib/logger.js'; +import ServerError from '../lib/ServerError.js'; +import ora from 'ora'; const confirmationText = process.env.CONFIRMATION_TEXT || 'CLEAN DATA'; @@ -48,11 +39,10 @@ program .option('-i, --include-schema', 'also remove instance files: pages, schemas etc.') .action(async (environment, params) => { - await initializeEsmModules(); const spinner = ora({ text: 'Sending data', stream: process.stdout }); try { - const gateway = new Gateway(fetchAuthData(environment)); + const gateway = new Gateway(fetchSettings(environment)); const confirmed = await confirmCleanup(params.autoConfirm, params.includeSchema, gateway.url) if (confirmed) { spinner.start(`Cleaning instance`); diff --git a/bin/pos-cli-data-export.js b/bin/pos-cli-data-export.js index be1f2aa3..c0c4cee4 100755 --- a/bin/pos-cli-data-export.js +++ b/bin/pos-cli-data-export.js @@ -1,26 +1,16 @@ #!/usr/bin/env node -const { program } = require('commander'), - fs = require('fs'), - shell = require('shelljs'), - Gateway = require('../lib/proxy'), - fetchAuthData = require('../lib/settings').fetchSettings, - fetchFiles = require('../lib/data/fetchFiles'), - waitForStatus = require('../lib/data/waitForStatus'), - downloadFile = require('../lib/downloadFile'); - -const logger = require('../lib/logger'), - report = require('../lib/logger/report'); - -// importing ESM modules in CommonJS project -let ora; -const initializeEsmModules = async () => { - if(!ora) { - await import('ora').then(imported => ora = imported.default); - } - - return true; -} +import fs from 'fs'; +import { program } from 'commander'; +import shell from 'shelljs'; +import Gateway from '../lib/proxy.js'; +import { fetchSettings } from '../lib/settings.js'; +import fetchFiles from '../lib/data/fetchFiles.js'; +import waitForStatus from '../lib/data/waitForStatus.js'; +import downloadFile from '../lib/downloadFile.js'; +import logger from '../lib/logger.js'; +import report from '../lib/logger/report.js'; +import ora from 'ora'; let gateway; @@ -58,7 +48,6 @@ program .option('-z --zip', 'export to zip archive', false) .action(async (environment, params) => { - await initializeEsmModules(); const spinner = ora({ text: 'Exporting', stream: process.stdout }); const isZipFile = params.zip; @@ -67,7 +56,7 @@ program filename = isZipFile ? 'data.zip' : 'data.json'; } const exportInternalIds = params.exportInternalIds; - const authData = fetchAuthData(environment, program); + const authData = fetchSettings(environment, program); gateway = new Gateway(authData); const exportFinished = () => { diff --git a/bin/pos-cli-data-import.js b/bin/pos-cli-data-import.js index 5086f6c0..0c7a5243 100755 --- a/bin/pos-cli-data-import.js +++ b/bin/pos-cli-data-import.js @@ -1,29 +1,19 @@ #!/usr/bin/env node -const { program } = require('commander'), - fs = require('fs'), - shell = require('shelljs'), - crypto = require('crypto'), - Gateway = require('../lib/proxy'), - fetchAuthData = require('../lib/settings').fetchSettings, - transform = require('../lib/data/uploadFiles'), - isValidJSON = require('../lib/data/isValidJSON'), - waitForStatus = require('../lib/data/waitForStatus'), - uploadFile = require('../lib/s3UploadFile').uploadFile, - presignUrl = require('../lib/presignUrl').presignUrl; - -const logger = require('../lib/logger'), - report = require('../lib/logger/report'); - -// importing ESM modules in CommonJS project -let ora; -const initializeEsmModules = async () => { - if(!ora) { - await import('ora').then(imported => ora = imported.default); - } - - return true; -} +import fs from 'fs'; +import shell from 'shelljs'; +import crypto from 'crypto'; +import { program } from 'commander'; +import Gateway from '../lib/proxy.js'; +import { fetchSettings } from '../lib/settings.js'; +import transform from '../lib/data/uploadFiles.js'; +import isValidJSON from '../lib/data/isValidJSON.js'; +import waitForStatus from '../lib/data/waitForStatus.js'; +import { uploadFile } from '../lib/s3UploadFile.js'; +import { presignUrl } from '../lib/presignUrl.js'; +import logger from '../lib/logger.js'; +import report from '../lib/logger/report.js'; +import ora from 'ora'; let gateway; @@ -38,7 +28,6 @@ Do you want to import a zip file? Use --zip. const dataImport = async (filename, rawIds, isZipFile) => { - await initializeEsmModules(); const spinner = ora({ text: 'Sending data', stream: process.stdout }); spinner.start(); @@ -104,7 +93,7 @@ program const filename = params.path; const rawIds = params.rawIds; const zip = params.zip; - const authData = fetchAuthData(environment); + const authData = fetchSettings(environment); Object.assign(process.env, { MARKETPLACE_TOKEN: authData.token, MARKETPLACE_URL: authData.url, diff --git a/bin/pos-cli-data-update.js b/bin/pos-cli-data-update.js index c69c5f47..36a011ea 100755 --- a/bin/pos-cli-data-update.js +++ b/bin/pos-cli-data-update.js @@ -1,24 +1,14 @@ #!/usr/bin/env node -const { program } = require('commander'), - fs = require('fs'), - Gateway = require('../lib/proxy'), - fetchAuthData = require('../lib/settings').fetchSettings, - transform = require('../lib/data/uploadFiles'), - isValidJSON = require('../lib/data/isValidJSON'); - -const logger = require('../lib/logger'), - report = require('../lib/logger/report'); - -// importing ESM modules in CommonJS project -let ora; -const initializeEsmModules = async () => { - if(!ora) { - await import('ora').then(imported => ora = imported.default); - } - - return true; -} +import fs from 'fs'; +import { program } from 'commander'; +import Gateway from '../lib/proxy.js'; +import { fetchSettings } from '../lib/settings.js'; +import transform from '../lib/data/uploadFiles.js'; +import isValidJSON from '../lib/data/isValidJSON.js'; +import logger from '../lib/logger.js'; +import report from '../lib/logger/report.js'; +import ora from 'ora'; let gateway; @@ -29,13 +19,12 @@ program .action(async (environment, params) => { const filename = params.path; - const authData = fetchAuthData(environment, program); + const authData = fetchSettings(environment, program); Object.assign(process.env, { MARKETPLACE_TOKEN: authData.token, MARKETPLACE_URL: authData.url, }); - await initializeEsmModules(); const spinner = ora({ text: 'Sending data', stream: process.stdout }); gateway = new Gateway(authData); diff --git a/bin/pos-cli-data.js b/bin/pos-cli-data.js index 3f3bb210..6b0fb4de 100755 --- a/bin/pos-cli-data.js +++ b/bin/pos-cli-data.js @@ -1,6 +1,6 @@ #!/usr/bin/env node -const { program } = require('commander'); +import { program } from 'commander'; program .name('pos-cli data') diff --git a/bin/pos-cli-deploy.js b/bin/pos-cli-deploy.js index a50695e7..396b2aeb 100755 --- a/bin/pos-cli-deploy.js +++ b/bin/pos-cli-deploy.js @@ -1,18 +1,9 @@ #!/usr/bin/env node -const { program } = require('commander'); +import { program } from 'commander'; -const fetchAuthData = require('../lib/settings').fetchSettings; -const logger = require('../lib/logger'); -const deployStrategy = require('../lib/deploy/strategy'); -const audit = require('../lib/audit'); - -const runAudit = async () => { - if (process.env.CI == 'true') { - return; - } - - await audit.run(); -}; +import { fetchSettings } from '../lib/settings.js'; +import logger from '../lib/logger.js'; +import deployStrategy from '../lib/deploy/strategy.js'; program .name('pos-cli deploy') @@ -25,7 +16,7 @@ program if (params.force) logger.Warn('-f flag is deprecated and does not do anything.'); const strategy = !params.oldAssetsUpload ? 'directAssetsUpload' : 'default'; - const authData = fetchAuthData(environment, program); + const authData = fetchSettings(environment, program); const env = Object.assign(process.env, { MARKETPLACE_EMAIL: authData.email, MARKETPLACE_TOKEN: authData.token, @@ -38,7 +29,6 @@ program DIRECT_ASSETS_UPLOAD: !params.oldAssetsUpload }); - // await runAudit(); deployStrategy.run({ strategy, opts: { env, authData, params } }); }); diff --git a/bin/pos-cli-env-add.js b/bin/pos-cli-env-add.js index f0c33c41..b72383bc 100755 --- a/bin/pos-cli-env-add.js +++ b/bin/pos-cli-env-add.js @@ -1,9 +1,9 @@ #!/usr/bin/env node -const { program } = require('commander'); -const ServerError = require('../lib//ServerError'); -const logger = require('../lib/logger'); -const addEnv = require('../lib/envs/add') +import { program } from 'commander'; +import ServerError from '../lib/ServerError.js'; +import logger from '../lib/logger.js'; +import addEnv from '../lib/envs/add.js' program.showHelpAfterError(); program diff --git a/bin/pos-cli-env-list.js b/bin/pos-cli-env-list.js index 3311431b..65cdd8a7 100755 --- a/bin/pos-cli-env-list.js +++ b/bin/pos-cli-env-list.js @@ -1,7 +1,7 @@ #!/usr/bin/env node -const logger = require('../lib/logger'), - files = require('../lib/files'); +import logger from '../lib/logger.js'; +import files from '../lib/files.js'; const listEnvironments = () => { const settings = Object(files.getConfig()); diff --git a/bin/pos-cli-env-refresh-token.js b/bin/pos-cli-env-refresh-token.js index d39027cd..f576e0be 100644 --- a/bin/pos-cli-env-refresh-token.js +++ b/bin/pos-cli-env-refresh-token.js @@ -1,10 +1,10 @@ -const { program } = require('commander'); -const logger = require('../lib/logger'); -const Portal = require('../lib/portal'); -const { readPassword } = require('../lib/utils/password'); -const fetchAuthData = require('../lib/settings').fetchSettings; -const { storeEnvironment, deviceAuthorizationFlow } = require('../lib/environments'); -const ServerError = require('../lib/ServerError'); +import { program } from 'commander'; +import logger from '../lib/logger.js'; +import Portal from '../lib/portal.js'; +import { readPassword } from '../lib/utils/password.js'; +import { fetchSettings } from '../lib/settings.js'; +import { storeEnvironment, deviceAuthorizationFlow } from '../lib/environments.js'; +import ServerError from '../lib/ServerError.js'; const saveToken = (settings, token) => { storeEnvironment(Object.assign(settings, { token: token })); @@ -24,7 +24,7 @@ program .action(async (environment, params) => { try { - const authData = fetchAuthData(environment) + const authData = fetchSettings(environment) if (!authData.email){ token = await deviceAuthorizationFlow(authData.url); diff --git a/bin/pos-cli-env.js b/bin/pos-cli-env.js index 9453f68d..9fc0ea7a 100755 --- a/bin/pos-cli-env.js +++ b/bin/pos-cli-env.js @@ -1,6 +1,6 @@ #!/usr/bin/env node -const { program } = require('commander'); +import { program } from 'commander'; program .name('pos-cli env') diff --git a/bin/pos-cli-exec-graphql.js b/bin/pos-cli-exec-graphql.js index 76ae12ef..cef61407 100644 --- a/bin/pos-cli-exec-graphql.js +++ b/bin/pos-cli-exec-graphql.js @@ -1,11 +1,11 @@ #!/usr/bin/env node -const fs = require('fs'); -const { program } = require('commander'); -const Gateway = require('../lib/proxy'); -const fetchAuthData = require('../lib/settings').fetchSettings; -const logger = require('../lib/logger'); -const { isProductionEnvironment, confirmProductionExecution } = require('../lib/productionEnvironment'); +import fs from 'fs'; +import { program } from 'commander'; +import Gateway from '../lib/proxy.js'; +import { fetchSettings } from '../lib/settings.js'; +import logger from '../lib/logger.js'; +import { isProductionEnvironment, confirmProductionExecution } from '../lib/productionEnvironment.js'; program .name('pos-cli exec graphql') @@ -28,7 +28,7 @@ program process.exit(1); } - const authData = fetchAuthData(environment, program); + const authData = fetchSettings(environment, program); const gateway = new Gateway(authData); if (isProductionEnvironment(environment)) { diff --git a/bin/pos-cli-exec-liquid.js b/bin/pos-cli-exec-liquid.js index 0db2d419..051ccbde 100644 --- a/bin/pos-cli-exec-liquid.js +++ b/bin/pos-cli-exec-liquid.js @@ -1,11 +1,11 @@ #!/usr/bin/env node -const fs = require('fs'); -const { program } = require('commander'); -const Gateway = require('../lib/proxy'); -const fetchAuthData = require('../lib/settings').fetchSettings; -const logger = require('../lib/logger'); -const { isProductionEnvironment, confirmProductionExecution } = require('../lib/productionEnvironment'); +import fs from 'fs'; +import { program } from 'commander'; +import Gateway from '../lib/proxy.js'; +import { fetchSettings } from '../lib/settings.js'; +import logger from '../lib/logger.js'; +import { isProductionEnvironment, confirmProductionExecution } from '../lib/productionEnvironment.js'; program .name('pos-cli exec liquid') @@ -28,7 +28,7 @@ program process.exit(1); } - const authData = fetchAuthData(environment, program); + const authData = fetchSettings(environment, program); const gateway = new Gateway(authData); if (isProductionEnvironment(environment)) { diff --git a/bin/pos-cli-exec.js b/bin/pos-cli-exec.js index e4df94fb..4256dcd2 100644 --- a/bin/pos-cli-exec.js +++ b/bin/pos-cli-exec.js @@ -1,9 +1,9 @@ #!/usr/bin/env node -const { program } = require('commander'); +import { program } from 'commander'; program .name('pos-cli exec') .command('liquid ', 'execute liquid code on instance') .command('graphql ', 'execute graphql query on instance') - .parse(process.argv); \ No newline at end of file + .parse(process.argv); diff --git a/bin/pos-cli-generate-list.js b/bin/pos-cli-generate-list.js index f2616a9d..c42a309a 100755 --- a/bin/pos-cli-generate-list.js +++ b/bin/pos-cli-generate-list.js @@ -1,9 +1,9 @@ #!/usr/bin/env node -const { program } = require("commander"); -const path = require("path"); -const glob = require('fast-glob'); -const table = require('text-table'); +import { program } from "commander"; +import path from "path"; +import glob from 'fast-glob'; +import table from 'text-table'; program .name('pos-cli generate') diff --git a/bin/pos-cli-generate-run.js b/bin/pos-cli-generate-run.js index 1a41fb15..f9782cca 100755 --- a/bin/pos-cli-generate-run.js +++ b/bin/pos-cli-generate-run.js @@ -1,24 +1,33 @@ #!/usr/bin/env node -const { program } = require("commander"); -const yeoman = require("yeoman-environment"); -const yeomanEnv = yeoman.createEnv(); -const path = require("path"); -const chalk = require("chalk"); -const dir = require('../lib/directories'); -const compact = require('lodash.compact'); -const spawn = require('execa'); -const reject = require('lodash.reject'); -const table = require('text-table'); -const logger = require('../lib/logger'); +import { createRequire } from 'module'; +import { fileURLToPath } from 'url'; +import path from 'path'; + +const __filename = fileURLToPath(import.meta.url); +const __dirname = path.dirname(__filename); + +const require = createRequire(import.meta.url); + +import { program } from 'commander'; +import { createEnv } from 'yeoman-environment'; +const yeomanEnv = createEnv(); +import express from 'express'; +import dir from '../lib/directories.js'; +import compact from 'lodash.compact'; +import spawn from 'execa'; +import reject from 'lodash.reject'; +import table from 'text-table'; +import logger from '../lib/logger.js'; const registerGenerator = (generatorPath) => { const generatorName = path.basename(generatorPath); - const generatorPathFull = `./${generatorPath}/index.js`; + const generatorPathFull = path.resolve(generatorPath, 'index.js'); yeomanEnv.register(generatorPathFull, generatorName); + let generator; try { - const generator = yeomanEnv.get(generatorName); + generator = yeomanEnv.get(generatorName); } catch(e) { if (e.message.includes('Cannot find module')){ installModulesAndLoadGenerator(generatorPath, generatorName); @@ -55,7 +64,30 @@ const optionsHelp = (generatorOptions) => { ]; }) - return table(rows); + return table(rows) +} + +const getGeneratorHelp = (generator) => { + const help = { arguments: [], options: [], usage: '' }; + + try { + if (generator._arguments && Array.isArray(generator._arguments)) { + help.arguments = generator._arguments; + help.usage = generator._arguments.map(arg => `<${arg.name}> `).join(' '); + } + } catch (e) { + // Ignore - internal API not available + } + + try { + if (generator._options && Array.isArray(generator._options)) { + help.options = generator._options; + } + } catch (e) { + // Ignore - internal API not available + } + + return help; } const showHelpForGenerator = (generatorPath) => { @@ -63,18 +95,31 @@ const showHelpForGenerator = (generatorPath) => { const generator = yeomanEnv.get(generatorName); const generatorInstance = yeomanEnv.instantiate(generator, ['']); console.log(`Generator: ${generatorName}`); - console.log(` ${generatorInstance.description}`); + console.log(` ${generatorInstance.description || 'No description available'}`); console.log(`\nUsage: `); - const usage = generatorInstance._arguments.map(arg => `<${arg.name}> `).join(' ') + + const help = getGeneratorHelp(generatorInstance); console.log( - ` pos-cli generate ${generatorPath} ${usage}` + ` pos-cli generate ${generatorPath} ${help.usage}` ); + console.log('\nArguments:'); - console.log(generatorInstance.argumentsHelp()); - console.log(optionsHelp(generatorInstance._options)); + try { + console.log(generatorInstance.argumentsHelp ? generatorInstance.argumentsHelp() : formatArgumentsHelp(help.arguments)); + } catch (e) { + console.log(formatArgumentsHelp(help.arguments)); + } + console.log(optionsHelp(help.options)); console.log(''); } +const formatArgumentsHelp = (args) => { + if (!args || args.length === 0) { + return ' (No arguments required)'; + } + return args.map(arg => ` <${arg.name}> ${arg.description || ''}`).join('\n'); +} + const unknownOptions = (command) => { const options = {}; command.args.forEach(arg => { @@ -88,7 +133,7 @@ const unknownOptions = (command) => { return options; } -spawnCommand = (command, args, opt) => { +const spawnCommand = (command, args, opt) => { return spawn.sync(command, args, { stdio: 'inherit', cwd: '', diff --git a/bin/pos-cli-generate.js b/bin/pos-cli-generate.js index 01ed8605..af1041d5 100755 --- a/bin/pos-cli-generate.js +++ b/bin/pos-cli-generate.js @@ -1,6 +1,6 @@ #!/usr/bin/env node -const { program } = require('commander'); +import { program } from 'commander'; program .name('pos-cli generate') diff --git a/bin/pos-cli-gui-serve.js b/bin/pos-cli-gui-serve.js index e80e4882..c13072aa 100755 --- a/bin/pos-cli-gui-serve.js +++ b/bin/pos-cli-gui-serve.js @@ -1,22 +1,12 @@ #!/usr/bin/env node -const swagger = require('../lib/swagger-client'); +import { SwaggerProxy } from '../lib/swagger-client.js'; -const { program } = require('commander'), - watch = require('../lib/watch'); +import { program } from 'commander'; +import { start as watch } from '../lib/watch.js'; -// importing ESM modules in CommonJS project -let open; -const initializeEsmModules = async () => { - if(!open) { - await import('open').then(imported => open = imported.default); - } - - return true; -} - -const fetchAuthData = require('../lib/settings').fetchSettings, - server = require('../lib/server'), - logger = require('../lib/logger'); +import { fetchSettings } from '../lib/settings.js'; +import { start as server } from '../lib/server.js'; +import logger from '../lib/logger.js'; const DEFAULT_CONCURRENCY = 3; @@ -27,7 +17,7 @@ program .option('-o, --open', 'when ready, open default browser with graphiql') .option('-s, --sync', 'Sync files') .action(async (environment, params) => { - const authData = fetchAuthData(environment, program); + const authData = fetchSettings(environment, program); const env = Object.assign(process.env, { MARKETPLACE_EMAIL: authData.email, @@ -38,11 +28,19 @@ program }); try { - const client = await swagger.SwaggerProxy.client(environment); - server.start(env, client); + const client = await SwaggerProxy.client(environment); + server(env, client); if (params.open) { - await initializeEsmModules(); - await open(`http://localhost:${params.port}`); + try { + const open = (await import('open')).default; + await open(`http://localhost:${params.port}`); + } catch (error) { + if (error instanceof AggregateError) { + logger.Error(`Failed to open browser (${error.errors.length} attempts): ${error.message}`); + } else { + logger.Error(`Failed to open browser: ${error.message}`); + } + } } if (params.sync){ diff --git a/bin/pos-cli-gui.js b/bin/pos-cli-gui.js index b0feaa73..7d3159ac 100755 --- a/bin/pos-cli-gui.js +++ b/bin/pos-cli-gui.js @@ -1,8 +1,8 @@ #!/usr/bin/env node -const { program } = require('commander'); +import { program } from 'commander'; program .name('pos-cli gui') .command('serve [environment]', 'serve admin editor for files from given environment') - .parse(process.argv); \ No newline at end of file + .parse(process.argv); diff --git a/bin/pos-cli-init.js b/bin/pos-cli-init.js index bd8d7688..261b2d2a 100755 --- a/bin/pos-cli-init.js +++ b/bin/pos-cli-init.js @@ -1,11 +1,11 @@ #!/usr/bin/env node -const { program } = require('commander'), - degit = require('degit'), - inquirer = require('inquirer'); +import { program } from 'commander'; +import degit from 'degit'; +import inquirer from 'inquirer'; -const logger = require('../lib/logger'), - report = require('../lib/logger/report'); +import logger from '../lib/logger.js'; +import report from '../lib/logger/report.js'; const repos = { empty: 'mdyd-dev/directory-structure', diff --git a/bin/pos-cli-logs.js b/bin/pos-cli-logs.js index 3898304b..a0849cf5 100755 --- a/bin/pos-cli-logs.js +++ b/bin/pos-cli-logs.js @@ -1,15 +1,19 @@ #!/usr/bin/env node -const EventEmitter = require('events'), - path = require('path'), - url = require('url'); +import EventEmitter from 'events'; +import path from 'path'; +import url from 'url'; +import { fileURLToPath } from 'url'; -const { program } = require('commander'), - notifier = require('node-notifier'); +const __filename = fileURLToPath(import.meta.url); +const __dirname = path.dirname(__filename); -const fetchAuthData = require('../lib/settings').fetchSettings, - logger = require('../lib/logger'), - Gateway = require('../lib/proxy'); +import { program } from 'commander'; +import notifier from 'node-notifier'; + +import { fetchSettings } from '../lib/settings.js'; +import logger from '../lib/logger.js'; +import Gateway from '../lib/proxy.js'; class LogStream extends EventEmitter { constructor(authData, interval, filter) { @@ -79,7 +83,7 @@ program .option('--filter ', 'display only logs of given type, example: error') .option('-q, --quiet', 'show only log message, without context') .action((environment, program, argument) => { - const authData = fetchAuthData(environment, program); + const authData = fetchSettings(environment, program); const stream = new LogStream(authData, program.interval, program.filter); stream.on('message', ({ created_at, error_type, message, data }) => { @@ -100,19 +104,19 @@ program logger.Info(text, options); } else { logger.Info(text, options); - if (!program.quiet && data) { - let parts = []; - if (data.url) { - requestUrl = url.parse(`https://${data.url}`); - let line = `path: ${requestUrl.pathname}`; - if (requestUrl.search) line += `${requestUrl.search}`; - parts.push(line); - } - if (data.page) parts.push(`page: ${data.page}`); - if (data.partial) parts.push(`partial: ${data.partial}`); - if (data.user && data.user.email) parts.push(`email: ${data.user.email}`); - if (parts.length > 0) logger.Info(parts.join(' '), options); + if (!program.quiet && data) { + let parts = []; + if (data.url) { + const requestUrl = url.parse(`https://${data.url}`); + let line = `path: ${requestUrl.pathname}`; + if (requestUrl.search) line += `${requestUrl.search}`; + parts.push(line); } + if (data.page) parts.push(`page: ${data.page}`); + if (data.partial) parts.push(`partial: ${data.partial}`); + if (data.user && data.user.email) parts.push(`email: ${data.user.email}`); + if (parts.length > 0) logger.Info(parts.join(' '), options); + } } }); diff --git a/bin/pos-cli-logsv2-alerts-add.js b/bin/pos-cli-logsv2-alerts-add.js index ebd3bc62..8ef202a7 100644 --- a/bin/pos-cli-logsv2-alerts-add.js +++ b/bin/pos-cli-logsv2-alerts-add.js @@ -1,8 +1,8 @@ #!/usr/bin/env node -const { program } = require('commander'), - logger = require('../lib/logger'), - swagger = require('../lib/swagger-client'); +import { program } from 'commander'; +import logger from '../lib/logger.js'; +import { SwaggerProxy } from '../lib/swagger-client.js'; program .name('pos-cli logsv2 alerts add') @@ -20,7 +20,7 @@ program throw Error("--channel is required") } - const client = await swagger.SwaggerProxy.client(environment); + const client = await SwaggerProxy.client(environment); const response = await client.createAlert(params) if (!params.json) diff --git a/bin/pos-cli-logsv2-alerts-list.js b/bin/pos-cli-logsv2-alerts-list.js index 52723fa8..b4aa84b6 100644 --- a/bin/pos-cli-logsv2-alerts-list.js +++ b/bin/pos-cli-logsv2-alerts-list.js @@ -1,8 +1,8 @@ #!/usr/bin/env node -const { program } = require('commander'), - logger = require('../lib/logger'), - swagger = require('../lib/swagger-client'); +import { program } from 'commander'; +import logger from '../lib/logger.js'; +import { SwaggerProxy } from '../lib/swagger-client.js'; program .name('pos-cli logsv2 alerts list') @@ -10,7 +10,7 @@ program .option('--json', 'output as json') .action(async (environment) => { try { - const client = await swagger.SwaggerProxy.client(environment); + const client = await SwaggerProxy.client(environment); const response = await client.alerts(program) if (!program.json) diff --git a/bin/pos-cli-logsv2-alerts-trigger.js b/bin/pos-cli-logsv2-alerts-trigger.js index d6424339..5851b323 100644 --- a/bin/pos-cli-logsv2-alerts-trigger.js +++ b/bin/pos-cli-logsv2-alerts-trigger.js @@ -1,8 +1,8 @@ #!/usr/bin/env node -const { program } = require('commander'), - logger = require('../lib/logger'), - swagger = require('../lib/swagger-client'); +import { program } from 'commander'; +import logger from '../lib/logger.js'; +import { SwaggerProxy } from '../lib/swagger-client.js'; program .name('pos-cli logsv2 alerts trigger') @@ -11,7 +11,7 @@ program .option('--json', 'output as json') .action(async (environment, params) => { try { - const client = await swagger.SwaggerProxy.client(environment); + const client = await SwaggerProxy.client(environment); const response = await client.triggerAlert(params) if (!params.json) diff --git a/bin/pos-cli-logsv2-alerts.js b/bin/pos-cli-logsv2-alerts.js index bf3b6a72..453e0d9a 100644 --- a/bin/pos-cli-logsv2-alerts.js +++ b/bin/pos-cli-logsv2-alerts.js @@ -1,6 +1,6 @@ #!/usr/bin/env node -const { program } = require('commander'); +import { program } from 'commander'; program .name('pos-cli logsv2 alerts') diff --git a/bin/pos-cli-logsv2-reports.js b/bin/pos-cli-logsv2-reports.js index 9d620abf..67f65b71 100644 --- a/bin/pos-cli-logsv2-reports.js +++ b/bin/pos-cli-logsv2-reports.js @@ -1,11 +1,16 @@ #!/usr/bin/env node -const { program } = require('commander'), - logger = require('../lib/logger'), - swagger = require('../lib/swagger-client'), - path = require('path'), - fs = require('fs'); -const ServerError = require('../lib/ServerError'); +import { program } from 'commander'; +import logger from '../lib/logger.js'; +import { SwaggerProxy } from '../lib/swagger-client.js'; +import { search } from '../lib/swagger-client.js'; +import path from 'path'; +import { fileURLToPath } from 'url'; +import fs from 'fs'; +import ServerError from '../lib/ServerError.js'; + +const __filename = fileURLToPath(import.meta.url); +const __dirname = path.dirname(__filename); program.showHelpAfterError(); program @@ -15,17 +20,17 @@ program // .option('--size ', 'rows size', 20) // .option('--start_time ', 'starttime') // .option('--end_time ', 'endtime') - .option('--json', 'output as json') + // .option('--json', 'output as json') .requiredOption('--report ', 'available reports: r-4xx, r-slow, r-slow-by-count') .action(async (environment, program) => { try { - const client = await swagger.SwaggerProxy.client(environment); + const client = await SwaggerProxy.client(environment); const report = JSON.parse(fs.readFileSync(path.join(__dirname, `../lib/reports/${program.report}.json`))); const response = await client.searchSQLByQuery(report) if (!program.json) - swagger.search.printReport(response, report) + search.printReport(response, report) else console.log(JSON.stringify(response)) diff --git a/bin/pos-cli-logsv2-search.js b/bin/pos-cli-logsv2-search.js index 4c0ce008..525fd550 100755 --- a/bin/pos-cli-logsv2-search.js +++ b/bin/pos-cli-logsv2-search.js @@ -1,9 +1,9 @@ #!/usr/bin/env node -const { program } = require('commander'), - logger = require('../lib/logger'), - swagger = require('../lib/swagger-client'); -const ServerError = require('../lib/ServerError'); +import { program } from 'commander'; +import logger from '../lib/logger.js'; +import { SwaggerProxy, search } from '../lib/swagger-client.js'; +import ServerError from '../lib/ServerError.js'; program .name('pos-cli logsv2 search') @@ -16,11 +16,11 @@ program .option('--json', 'output as json') .action(async (environment, program) => { try { - const client = await swagger.SwaggerProxy.client(environment); + const client = await SwaggerProxy.client(environment); const response = await client.searchSQL(program) if (!program.json) - swagger.search.printLogs(response) + search.printLogs(response) else console.log(response) diff --git a/bin/pos-cli-logsv2-searchAround.js b/bin/pos-cli-logsv2-searchAround.js index 711f36a4..bd9cc293 100644 --- a/bin/pos-cli-logsv2-searchAround.js +++ b/bin/pos-cli-logsv2-searchAround.js @@ -1,8 +1,8 @@ #!/usr/bin/env node -const { program } = require('commander'), - logger = require('../lib/logger'), - swagger = require('../lib/swagger-client'); +import { program } from 'commander'; +import logger from '../lib/logger.js'; +import { SwaggerProxy, search } from '../lib/swagger-client.js'; program .name('pos-cli logsv2 search') @@ -13,11 +13,11 @@ program .option('--json', 'output as json') .action(async (environment, params) => { try { - const client = await swagger.SwaggerProxy.client(environment); + const client = await SwaggerProxy.client(environment); const response = await client.searchAround(params) if (!params.json) - swagger.search.printLogs(response, params.key) + search.printLogs(response, params.key) else console.log(response) diff --git a/bin/pos-cli-logsv2.js b/bin/pos-cli-logsv2.js index 6de7c4ff..aa469a18 100755 --- a/bin/pos-cli-logsv2.js +++ b/bin/pos-cli-logsv2.js @@ -1,6 +1,6 @@ #!/usr/bin/env node -const { program } = require('commander'); +import { program } from 'commander'; program .name('pos-cli logsv2') diff --git a/bin/pos-cli-migrations-generate.js b/bin/pos-cli-migrations-generate.js index beea932e..f8d7ed09 100755 --- a/bin/pos-cli-migrations-generate.js +++ b/bin/pos-cli-migrations-generate.js @@ -1,22 +1,21 @@ #!/usr/bin/env node -const fs = require('fs'); +import fs from 'fs'; +import { program } from 'commander'; +import shell from 'shelljs'; -const { program } = require('commander'), - shell = require('shelljs'); - -const Gateway = require('../lib/proxy'), - logger = require('../lib/logger'), - report = require('../lib/logger/report'), - fetchAuthData = require('../lib/settings').fetchSettings, - dir = require('../lib/directories'); +import Gateway from '../lib/proxy.js'; +import logger from '../lib/logger.js'; +import report from '../lib/logger/report.js'; +import { fetchSettings } from '../lib/settings.js'; +import dir from '../lib/directories.js'; program .name('pos-cli migrations generate') .arguments('[environment]', 'name of the environment. Example: staging') .arguments('', 'base name of the migration. Example: cleanup_data') .action((environment, name) => { - const authData = fetchAuthData(environment, program); + const authData = fetchSettings(environment, program); const gateway = new Gateway(authData); const formData = { name: name }; diff --git a/bin/pos-cli-migrations-list.js b/bin/pos-cli-migrations-list.js index a2b8388c..e2dc0195 100755 --- a/bin/pos-cli-migrations-list.js +++ b/bin/pos-cli-migrations-list.js @@ -1,9 +1,9 @@ #!/usr/bin/env node -const { program } = require('commander'), - Gateway = require('../lib/proxy'), - logger = require('../lib/logger'), - fetchAuthData = require('../lib/settings').fetchSettings; +import { program } from 'commander'; +import Gateway from '../lib/proxy.js'; +import logger from '../lib/logger.js'; +import { fetchSettings } from '../lib/settings.js'; const logMigration = migration => { const errorsMsg = migration.error_messages ? `- Errors: (${migration.error_messages})` : ''; @@ -14,7 +14,7 @@ program .name('pos-cli migrations list') .arguments('[environment]', 'name of the environment. Example: staging') .action(environment => { - const authData = fetchAuthData(environment, program); + const authData = fetchSettings(environment, program); const gateway = new Gateway(authData); gateway.listMigrations().then(response => response.migrations.map(logMigration)); diff --git a/bin/pos-cli-migrations-run.js b/bin/pos-cli-migrations-run.js index 7e70036a..f181c81a 100755 --- a/bin/pos-cli-migrations-run.js +++ b/bin/pos-cli-migrations-run.js @@ -1,16 +1,16 @@ #!/usr/bin/env node -const { program } = require('commander'), - Gateway = require('../lib/proxy'), - logger = require('../lib/logger'), - fetchAuthData = require('../lib/settings').fetchSettings; +import { program } from 'commander'; +import Gateway from '../lib/proxy.js'; +import logger from '../lib/logger.js'; +import { fetchSettings } from '../lib/settings.js'; program .name('pos-cli migrations run') .arguments('', 'timestamp the migration. Example: 20180701182602') .arguments('[environment]', 'name of the environment. Example: staging') .action((timestamp, environment) => { - const authData = fetchAuthData(environment, program); + const authData = fetchSettings(environment, program); const gateway = new Gateway(authData); const formData = { timestamp: timestamp }; diff --git a/bin/pos-cli-migrations.js b/bin/pos-cli-migrations.js index 33810550..4315e936 100755 --- a/bin/pos-cli-migrations.js +++ b/bin/pos-cli-migrations.js @@ -1,6 +1,6 @@ #!/usr/bin/env node -const { program } = require('commander'); +import { program } from 'commander'; program .name('pos-cli migrations') diff --git a/bin/pos-cli-modules-download.js b/bin/pos-cli-modules-download.js index 496581ca..d15954e0 100755 --- a/bin/pos-cli-modules-download.js +++ b/bin/pos-cli-modules-download.js @@ -1,24 +1,14 @@ #!/usr/bin/env node -const shell = require('shelljs'); -const { program } = require('commander'); -const logger = require('../lib/logger'); -const downloadFile = require('../lib/downloadFile'); - -const { unzip } = require('../lib/unzip'); -const Portal = require('../lib/portal'); -const fs = require('fs'); -const path = require('path'); - -// importing ESM modules in CommonJS project -let ora; -const initializeEsmModules = async () => { - if(!ora) { - await import('ora').then(imported => ora = imported.default); - } - - return true; -} +import shell from 'shelljs'; +import { program } from 'commander'; +import logger from '../lib/logger.js'; +import downloadFile from '../lib/downloadFile.js'; +import { unzip } from '../lib/unzip.js'; +import Portal from '../lib/portal.js'; +import fs from 'fs'; +import path from 'path'; +import ora from 'ora'; const downloadModule = async (module, lockData) => { const filename = 'modules.zip'; @@ -60,8 +50,6 @@ program const lockFilePath = path.join('app', 'pos-modules.lock.json'); const forceDependencies = params.forceDependencies; - await initializeEsmModules(); - let lockData; if (fs.existsSync(lockFilePath)) { diff --git a/bin/pos-cli-modules-init.js b/bin/pos-cli-modules-init.js index 5ab75300..79f9d041 100644 --- a/bin/pos-cli-modules-init.js +++ b/bin/pos-cli-modules-init.js @@ -1,11 +1,11 @@ #!/usr/bin/env node -const { program } = require('commander'), - degit = require('degit'); +import { program } from 'commander'; +import degit from 'degit'; -const logger = require('../lib/logger'), - report = require('../lib/logger/report'), - dir = require('../lib/directories'); +import logger from '../lib/logger.js'; +import report from '../lib/logger/report.js'; +import dir from '../lib/directories.js'; const moduleRepo = 'Platform-OS/pos-module-template'; diff --git a/bin/pos-cli-modules-install.js b/bin/pos-cli-modules-install.js index fbc9a188..9e3a9faa 100755 --- a/bin/pos-cli-modules-install.js +++ b/bin/pos-cli-modules-install.js @@ -1,22 +1,13 @@ #!/usr/bin/env node -const { program } = require('commander'); -const logger = require('../lib/logger'); -const configFiles = require('../lib/modules/configFiles'); -const { findModuleVersion, resolveDependencies } = require('../lib/modules/dependencies') -const Portal = require('../lib/portal'); -const path = require('path'); -const { createDirectory } = require('../lib/utils/create-directory'); - -// importing ESM modules in CommonJS project -let ora; -const initializeEsmModules = async () => { - if(!ora) { - await import('ora').then(imported => ora = imported.default); - } - - return true; -} +import { program } from 'commander'; +import logger from '../lib/logger.js'; +import { posConfigDirectory, posModulesFilePath, posModulesLockFilePath, readLocalModules, writePosModules, writePosModulesLock } from '../lib/modules/configFiles.js'; +import { findModuleVersion, resolveDependencies } from '../lib/modules/dependencies.js'; +import Portal from '../lib/portal.js'; +import path from 'path'; +import { createDirectory } from '../lib/utils/create-directory.js'; +import ora from 'ora'; const addNewModule = async (moduleName, moduleVersion, localModules, getVersions) => { const newModule = await findModuleVersion(moduleName, moduleVersion, getVersions); @@ -39,19 +30,18 @@ program .action(async (moduleNameWithVersion) => { try { - await createDirectory(path.join(process.cwd(), configFiles.posConfigDirectory)); + await createDirectory(path.join(process.cwd(), posConfigDirectory)); - await initializeEsmModules(); const spinner = ora({ text: 'Modules install', stream: process.stdout }); spinner.start(); try { - let localModules = configFiles.readLocalModules(); + let localModules = readLocalModules(); if(moduleNameWithVersion){ const [moduleName, moduleVersion] = moduleNameWithVersion.split('@'); localModules = await addNewModule(moduleName, moduleVersion, localModules, Portal.moduleVersions); - configFiles.writePosModules(localModules); - spinner.succeed(`Added module: ${moduleName}@${localModules[moduleName]} to ${configFiles.posModulesFilePath}`); + writePosModules(localModules); + spinner.succeed(`Added module: ${moduleName}@${localModules[moduleName]} to ${posModulesFilePath}`); } if(!localModules) { @@ -59,8 +49,8 @@ program } else { spinner.start('Resolving module dependencies'); const modulesLocked = await resolveDependencies(localModules, Portal.moduleVersions); - configFiles.writePosModulesLock(modulesLocked); - spinner.succeed(`Modules lock file updated: ${configFiles.posModulesLockFilePath}`); + writePosModulesLock(modulesLocked); + spinner.succeed(`Modules lock file updated: ${posModulesLockFilePath}`); } } catch(e) { // throw e; @@ -70,7 +60,7 @@ program } } catch(error) { - logger.Error(`Aborting - ${configFiles.posConfigDirectory} directory has not been created.`) + logger.Error(`Aborting - ${posConfigDirectory} directory has not been created.`) } }); diff --git a/bin/pos-cli-modules-list.js b/bin/pos-cli-modules-list.js index 11475154..3aa315ff 100755 --- a/bin/pos-cli-modules-list.js +++ b/bin/pos-cli-modules-list.js @@ -1,16 +1,16 @@ #!/usr/bin/env node -const { program } = require('commander'); +import { program } from 'commander'; -const Gateway = require('../lib/proxy'), - logger = require('../lib/logger'), - fetchAuthData = require('../lib/settings').fetchSettings; +import Gateway from '../lib/proxy.js'; +import logger from '../lib/logger.js'; +import { fetchSettings } from '../lib/settings.js'; program .name('pos-cli modules list') .arguments('[environment]', 'name of the environment. Example: staging') .action(environment => { - const authData = fetchAuthData(environment, program); + const authData = fetchSettings(environment, program); const gateway = new Gateway(authData); gateway.listModules().then(response => { diff --git a/bin/pos-cli-modules-overwrites-diff.js b/bin/pos-cli-modules-overwrites-diff.js index 76edebb0..a70d134b 100755 --- a/bin/pos-cli-modules-overwrites-diff.js +++ b/bin/pos-cli-modules-overwrites-diff.js @@ -1,9 +1,9 @@ #!/usr/bin/env node -const { program } = require('commander'); -const logger = require('../lib/logger'); -const { execSync } = require('child_process'); -const overwrites = require('../lib/overwrites'); +import { program } from 'commander'; +import logger from '../lib/logger.js'; +import { execSync } from 'child_process'; +import overwrites from '../lib/overwrites.js'; function getGitChangesAsJSON(overwrites = []) { try { diff --git a/bin/pos-cli-modules-overwrites-list.js b/bin/pos-cli-modules-overwrites-list.js index 4ef38fab..6b969b4f 100755 --- a/bin/pos-cli-modules-overwrites-list.js +++ b/bin/pos-cli-modules-overwrites-list.js @@ -1,8 +1,8 @@ #!/usr/bin/env node -const { program } = require('commander'); -const logger = require('../lib/logger'); -const overwrites = require('../lib/overwrites'); +import { program } from 'commander'; +import logger from '../lib/logger.js'; +import overwrites from '../lib/overwrites.js'; program .name('pos-cli modules overwrites list') diff --git a/bin/pos-cli-modules-overwrites.js b/bin/pos-cli-modules-overwrites.js index 4e772a0f..c6ed9e3d 100755 --- a/bin/pos-cli-modules-overwrites.js +++ b/bin/pos-cli-modules-overwrites.js @@ -1,6 +1,6 @@ #!/usr/bin/env node -const { program } = require('commander'); +import { program } from 'commander'; program .name('pos-cli modules overwrites') diff --git a/bin/pos-cli-modules-pull.js b/bin/pos-cli-modules-pull.js index a12fde0b..69ce482b 100755 --- a/bin/pos-cli-modules-pull.js +++ b/bin/pos-cli-modules-pull.js @@ -1,21 +1,12 @@ #!/usr/bin/env node -const { program } = require('commander'); -const Gateway = require('../lib/proxy'); -const logger = require('../lib/logger'); -const fetchAuthData = require('../lib/settings').fetchSettings; -const downloadFile = require('../lib/downloadFile'); -const waitForStatus = require('../lib/data/waitForStatus'); - -// importing ESM modules in CommonJS project -let ora; -const initializeEsmModules = async () => { - if(!ora) { - await import('ora').then(imported => ora = imported.default); - } - - return true; -} +import { program } from 'commander'; +import Gateway from '../lib/proxy.js'; +import logger from '../lib/logger.js'; +import { fetchSettings } from '../lib/settings.js'; +import downloadFile from '../lib/downloadFile.js'; +import waitForStatus from '../lib/data/waitForStatus.js'; +import ora from 'ora'; program .name('pos-cli modules pull') @@ -23,12 +14,11 @@ program .arguments('[module]', 'module name to pull') .action(async (environment, module, params) => { - await initializeEsmModules(); const spinner = ora({ text: 'Exporting', stream: process.stdout }); const filename = 'modules.zip'; spinner.start(); - const authData = fetchAuthData(environment, program); + const authData = fetchSettings(environment, program); const gateway = new Gateway(authData); gateway .appExportStart({ module_name: module }) diff --git a/bin/pos-cli-modules-push.js b/bin/pos-cli-modules-push.js index ab39facd..873b9890 100644 --- a/bin/pos-cli-modules-push.js +++ b/bin/pos-cli-modules-push.js @@ -1,11 +1,11 @@ #!/usr/bin/env node -const { program } = require('commander'); -const modules = require('../lib/modules'); -const validate = require('../lib/validators'); +import { program } from 'commander'; +import { publishVersion } from '../lib/modules.js'; +import { email } from '../lib/validators/index.js'; const checkParams = params => { - validate.email(params.email); + email(params.email); }; program @@ -17,7 +17,7 @@ program try { if (params.path) process.chdir(params.path); checkParams(params); - await modules.publishVersion(params); + await publishVersion(params); } catch(e) { console.log(e) } }); diff --git a/bin/pos-cli-modules-remove.js b/bin/pos-cli-modules-remove.js index 2f65eef5..b09dc00e 100755 --- a/bin/pos-cli-modules-remove.js +++ b/bin/pos-cli-modules-remove.js @@ -1,16 +1,16 @@ #!/usr/bin/env node -const { program } = require('commander'), - Gateway = require('../lib/proxy'), - logger = require('../lib/logger'), - fetchAuthData = require('../lib/settings').fetchSettings; +import { program } from 'commander'; +import Gateway from '../lib/proxy.js'; +import logger from '../lib/logger.js'; +import { fetchSettings } from '../lib/settings.js'; program .name('pos-cli modules remove') .arguments('[environment]', 'name of the environment. Example: staging') .arguments('', 'name of the module. Example: admin_cms') .action((environment, name) => { - const authData = fetchAuthData(environment, program); + const authData = fetchSettings(environment, program); const gateway = new Gateway(authData); const formData = { pos_module_name: name }; diff --git a/bin/pos-cli-modules-update.js b/bin/pos-cli-modules-update.js index a0b9faf1..1a4b4a33 100755 --- a/bin/pos-cli-modules-update.js +++ b/bin/pos-cli-modules-update.js @@ -1,22 +1,13 @@ #!/usr/bin/env node -const { program } = require('commander'); -const logger = require('../lib/logger'); -const configFiles = require('../lib/modules/configFiles'); -const { findModuleVersion, resolveDependencies } = require('../lib/modules/dependencies') -const Portal = require('../lib/portal'); -const path = require('path'); -const { createDirectory } = require('../lib/utils/create-directory'); - -// importing ESM modules in CommonJS project -let ora; -const initializeEsmModules = async () => { - if(!ora) { - await import('ora').then(imported => ora = imported.default); - } - - return true; -} +import { program } from 'commander'; +import logger from '../lib/logger.js'; +import { posConfigDirectory, posModulesLockFilePath, readLocalModules, writePosModules, writePosModulesLock } from '../lib/modules/configFiles.js'; +import { findModuleVersion, resolveDependencies } from '../lib/modules/dependencies.js'; +import Portal from '../lib/portal.js'; +import path from 'path'; +import { createDirectory } from '../lib/utils/create-directory.js'; +import ora from 'ora'; const updateModule = async (moduleName, moduleVersion, localModules, getVersions) => { const newModule = await findModuleVersion(moduleName, moduleVersion, getVersions); @@ -34,18 +25,17 @@ program .arguments('', 'name of the module. Example: core. You can also pass version number: core@1.0.0') .action(async (moduleNameWithVersion) => { try { - await createDirectory(path.join(process.cwd(), configFiles.posConfigDirectory)); + await createDirectory(path.join(process.cwd(), posConfigDirectory)); - await initializeEsmModules(); const spinner = ora({ text: 'Updating module', stream: process.stdout }); spinner.start(); try{ - let localModules = configFiles.readLocalModules(); + let localModules = readLocalModules(); if(moduleNameWithVersion){ const [moduleName, moduleVersion] = moduleNameWithVersion.split('@'); localModules = await updateModule(moduleName, moduleVersion, localModules, Portal.moduleVersions); - configFiles.writePosModules(localModules); + writePosModules(localModules); spinner.succeed(`Updated module: ${moduleName}@${localModules[moduleName]}`); } @@ -54,8 +44,8 @@ program } else { spinner.start('Resolving module dependencies'); const modulesLocked = await resolveDependencies(localModules, Portal.moduleVersions); - configFiles.writePosModulesLock(modulesLocked); - spinner.succeed(`Modules lock file generated: ${configFiles.posModulesLockFilePath}`); + writePosModulesLock(modulesLocked); + spinner.succeed(`Modules lock file generated: ${posModulesLockFilePath}`); } } catch(e) { // throw e; @@ -65,7 +55,7 @@ program } } catch(error) { - logger.Error(`Aborting - ${configFiles.posConfigDirectory} directory has not been created.`) + logger.Error(`Aborting - ${posConfigDirectory} directory has not been created.`) } }); diff --git a/bin/pos-cli-modules-version.js b/bin/pos-cli-modules-version.js index 7c51dcf4..d46e772b 100644 --- a/bin/pos-cli-modules-version.js +++ b/bin/pos-cli-modules-version.js @@ -1,14 +1,13 @@ #!/usr/bin/env node -const { program } = require('commander'); -const semver = require('semver'); - -const dir = require('../lib/directories'); -const files = require('../lib/files'); -const logger = require('../lib/logger'); -const report = require('../lib/logger/report'); -const settings = require('../lib/settings'); -const { moduleConfig, moduleConfigFilePath } = require('../lib/modules'); +import { program } from 'commander'; +import semver from 'semver'; + +import dir from '../lib/directories.js'; +import files from '../lib/files.js'; +import logger from '../lib/logger.js'; +import report from '../lib/logger/report.js'; +import { moduleConfig, moduleConfigFilePath } from '../lib/modules.js'; const readVersionFromPackage = (options, version) => { let packageJSONPath = `package.json`; diff --git a/bin/pos-cli-modules.js b/bin/pos-cli-modules.js index 0ade912a..b71f078f 100755 --- a/bin/pos-cli-modules.js +++ b/bin/pos-cli-modules.js @@ -1,7 +1,7 @@ #!/usr/bin/env node -const { program } = require('commander'); -const logger = require('../lib/logger'); +import { program } from 'commander'; +import logger from '../lib/logger.js'; program.showHelpAfterError(); program diff --git a/bin/pos-cli-pull.js b/bin/pos-cli-pull.js index 9b69cf6d..fef7835a 100755 --- a/bin/pos-cli-pull.js +++ b/bin/pos-cli-pull.js @@ -1,21 +1,13 @@ #!/usr/bin/env node -const { program } = require('commander'), - Gateway = require('../lib/proxy'), - logger = require('../lib/logger'), - fetchAuthData = require('../lib/settings').fetchSettings, - downloadFile = require('../lib/downloadFile'), - waitForStatus = require('../lib/data/waitForStatus'); - -// importing ESM modules in CommonJS project -let ora; -const initializeEsmModules = async () => { - if(!ora) { - await import('ora').then(imported => ora = imported.default); - } +import { program } from 'commander'; +import Gateway from '../lib/proxy.js'; +import logger from '../lib/logger.js'; +import { fetchSettings } from '../lib/settings.js'; +import downloadFile from '../lib/downloadFile.js'; +import waitForStatus from '../lib/data/waitForStatus.js'; - return true; -} +import ora from 'ora'; program .name('pos-cli pull') @@ -23,10 +15,9 @@ program .option('-p --path ', 'output for exported data', 'app.zip') .action(async (environment, params) => { const filename = params.path; - const authData = fetchAuthData(environment, program); + const authData = fetchSettings(environment, program); let gateway = new Gateway(authData); - await initializeEsmModules(); const spinner = ora({ text: 'Exporting', stream: process.stdout }); spinner.start(); diff --git a/bin/pos-cli-sync.js b/bin/pos-cli-sync.js index 705f1d1e..5369c213 100755 --- a/bin/pos-cli-sync.js +++ b/bin/pos-cli-sync.js @@ -1,19 +1,10 @@ #!/usr/bin/env node -const { program } = require('commander'), - watch = require('../lib/watch'); +import { program } from 'commander'; +import { start as watchStart } from '../lib/watch.js'; -// importing ESM modules in CommonJS project -let open; -const initializeEsmModules = async () => { - if(!open) { - await import('open').then(imported => open = imported.default); - } - - return true; -} - -const fetchAuthData = require('../lib/settings').fetchSettings; +import { fetchSettings } from '../lib/settings.js'; +import logger from '../lib/logger.js'; const DEFAULT_CONCURRENCY = 3; @@ -25,7 +16,7 @@ program .option('-o, --open', 'When ready, open default browser with instance') .option('-l, --livereload', 'Use livereload') .action(async (environment, params) => { - const authData = fetchAuthData(environment); + const authData = fetchSettings(environment); const env = Object.assign(process.env, { MARKETPLACE_EMAIL: authData.email, MARKETPLACE_TOKEN: authData.token, @@ -33,11 +24,19 @@ program CONCURRENCY: process.env.CONCURRENCY || params.concurrency }); - watch.start(env, params.directAssetsUpload, params.livereload); + watchStart(env, params.directAssetsUpload, params.livereload); if (params.open) { - await initializeEsmModules(); - await open(`${authData.url}`); + try { + const open = (await import('open')).default; + await open(`${authData.url}`); + } catch (error) { + if (error instanceof AggregateError) { + logger.Error(`Failed to open browser (${error.errors.length} attempts): ${error.message}`); + } else { + logger.Error(`Failed to open browser: ${error.message}`); + } + } } }); diff --git a/bin/pos-cli-test-run.js b/bin/pos-cli-test-run.js index c0d89302..b3dfbcd6 100755 --- a/bin/pos-cli-test-run.js +++ b/bin/pos-cli-test-run.js @@ -1,33 +1,17 @@ #!/usr/bin/env node -const { program } = require('commander'); -const fetchAuthData = require('../lib/settings').fetchSettings; -const testRunner = require('../lib/test-runner'); +import { program } from 'commander'; +import { fetchSettings } from '../lib/settings.js'; +import { run } from '../lib/test-runner/index.js'; program .name('pos-cli test run') .argument('', 'name of environment. Example: staging') - .argument('[name]', 'name of the test to execute (runs all tests if not provided)') + .argument('[name]', 'name of test to execute (runs all tests if not provided)') .action(async (environment, name) => { - const authData = fetchAuthData(environment, program); - const success = await testRunner.run(authData, environment, name); + const authData = fetchSettings(environment, program); + const success = await run(authData, environment, name); process.exit(success ? 0 : 1); }); -// Only parse arguments if this file is run directly, not when required for testing -if (require.main === module) { - program.parse(process.argv); -} - -// Export for testing - re-export from lib modules -const { TestLogStream } = require('../lib/test-runner/logStream'); -const { formatDuration, formatTestLog, printTestResults } = require('../lib/test-runner/formatters'); -const { runAllTests } = require('../lib/test-runner'); - -module.exports = { - TestLogStream, - formatDuration, - formatTestLog, - printTestResults, - runAllTests -}; +program.parse(process.argv); diff --git a/bin/pos-cli-test.js b/bin/pos-cli-test.js index 89c4e846..3389319e 100755 --- a/bin/pos-cli-test.js +++ b/bin/pos-cli-test.js @@ -1,6 +1,6 @@ #!/usr/bin/env node -const { program } = require('commander'); +import { program } from 'commander'; program.showHelpAfterError(); program diff --git a/bin/pos-cli-uploads-push.js b/bin/pos-cli-uploads-push.js index 5eb70262..7332eebf 100755 --- a/bin/pos-cli-uploads-push.js +++ b/bin/pos-cli-uploads-push.js @@ -1,26 +1,16 @@ #!/usr/bin/env node -const { program } = require('commander'), - fs = require('fs'), - Gateway = require('../lib/proxy'), - fetchAuthData = require('../lib/settings').fetchSettings, - uploadFile = require('../lib/s3UploadFile').uploadFile, - presignUrl = require('../lib/presignUrl').presignUrl, - logger = require('../lib/logger'); - -// importing ESM modules in CommonJS project -let ora; -const initializeEsmModules = async () => { - if(!ora) { - await import('ora').then(imported => ora = imported.default); - } - - return true; -} +import fs from 'fs'; +import { program } from 'commander'; +import Gateway from '../lib/proxy.js'; +import { fetchSettings } from '../lib/settings.js'; +import { uploadFile } from '../lib/s3UploadFile.js'; +import { presignUrl } from '../lib/presignUrl.js'; +import logger from '../lib/logger.js'; +import ora from 'ora'; const uploadZip = async (directory, gateway) => { - await initializeEsmModules(); const spinner = ora({ text: 'Sending file', stream: process.stdout }); spinner.start(); @@ -46,7 +36,7 @@ program .option('-p --path ', 'path of .zip file that contains files used in property of type upload', 'uploads.zip') .action((environment, params) => { const path = params.path; - const authData = fetchAuthData(environment, program); + const authData = fetchSettings(environment, program); Object.assign(process.env, { MARKETPLACE_TOKEN: authData.token, MARKETPLACE_URL: authData.url }); if (!fs.existsSync(path)) logger.Error(`File not found: ${path}`); diff --git a/bin/pos-cli-uploads.js b/bin/pos-cli-uploads.js index 2090321c..341f6cfd 100755 --- a/bin/pos-cli-uploads.js +++ b/bin/pos-cli-uploads.js @@ -1,6 +1,6 @@ #!/usr/bin/env node -const { program } = require('commander'); +import { program } from 'commander'; program .name('pos-cli uploads') diff --git a/bin/pos-cli.js b/bin/pos-cli.js index ed111314..dc17f686 100755 --- a/bin/pos-cli.js +++ b/bin/pos-cli.js @@ -1,17 +1,18 @@ #!/usr/bin/env node -const { program } = require('commander'), - updateNotifier = require('update-notifier'), - pkg = require('../package.json'), - logger = require('../lib/logger'), - version = pkg.version; +import { program } from 'commander'; +import updateNotifier from 'update-notifier'; +import pkg from '../package.json' with { type: "json" }; +import logger from '../lib/logger.js'; + +const version = pkg.version; updateNotifier({ pkg: pkg -}).notify({ + }).notify({ defer: true, isGlobal: true -}); + }); program.showHelpAfterError(); program diff --git a/gui/admin/tailwind.config.js b/gui/admin/tailwind.config.cjs similarity index 100% rename from gui/admin/tailwind.config.js rename to gui/admin/tailwind.config.cjs diff --git a/gui/graphql/babel.config.js b/gui/graphql/babel.config.cjs similarity index 100% rename from gui/graphql/babel.config.js rename to gui/graphql/babel.config.cjs diff --git a/lib/ServerError.js b/lib/ServerError.js index c7a6602f..a40cad22 100644 --- a/lib/ServerError.js +++ b/lib/ServerError.js @@ -1,10 +1,10 @@ -const logger = require('./logger'), - report = require('./logger/report'); +import logger from './logger.js'; +import report from './logger/report.js'; const shouldExit = request => { const endsWith = str => request.options.uri.endsWith(str); - return !(endsWith('releases/sync') || endsWith('/api/graph')) + return !(endsWith('releases/sync') || endsWith('/api/graph')); }; const ServerError = { @@ -139,4 +139,4 @@ const ServerError = { }, }; -module.exports = ServerError; +export default ServerError; diff --git a/lib/apiRequest.js b/lib/apiRequest.js index 91d4ee8d..682e517e 100644 --- a/lib/apiRequest.js +++ b/lib/apiRequest.js @@ -1,16 +1,85 @@ -const requestPromise = require('request-promise'); -const logger = require('./logger'); -// const errors = require('request-promise/errors'); +import fs from 'fs'; +import path from 'path'; +import logger from './logger.js'; -const apiRequest = ({ method = 'GET', uri, body, headers, formData, json = true, forever, request = requestPromise }) => { +const buildFormData = (formData) => { + const form = new FormData(); + for (const [key, value] of Object.entries(formData)) { + if (value && typeof value === 'object' && value.path) { + const fileBuffer = fs.readFileSync(value.path); + const filename = path.basename(value.path); + form.append(key, new Blob([fileBuffer]), filename); + } else if (Buffer.isBuffer(value)) { + form.append(key, new Blob([value])); + } else if (value !== undefined && value !== null) { + form.append(key, String(value)); + } + } + return form; +}; + +const apiRequest = async ({ method = 'GET', uri, body, headers = {}, formData, json = true, forever }) => { logger.Debug(`[${method}] ${uri}`); - return request({method, uri, body, headers, formData, json, forever}) - // when we catch the error here we are not able to react to them later - // .catch(errors.StatusCodeError, ServerError.handler) - // .catch(errors.RequestError, ServerError.requestHandler) -} + const fetchOptions = { + method, + headers: { ...headers } + }; + + if (formData) { + const form = buildFormData(formData); + fetchOptions.body = form; + } else if (body) { + fetchOptions.headers['Content-Type'] = 'application/json'; + fetchOptions.body = JSON.stringify(body); + } else if (json && typeof json === 'object' && !['GET', 'HEAD'].includes(method.toUpperCase())) { + fetchOptions.headers['Content-Type'] = 'application/json'; + fetchOptions.body = JSON.stringify(json); + } + + if (forever) { + fetchOptions.keepalive = true; + } + + let response; + try { + response = await fetch(uri, fetchOptions); + } catch (e) { + const error = new Error(e.message); + error.name = 'RequestError'; + error.cause = e; + throw error; + } + + if (!response.ok) { + const errorBody = await response.text(); + const error = new Error(`Request failed with status ${response.status}`); + error.name = 'StatusCodeError'; + error.statusCode = response.status; + error.options = { uri }; + error.response = { + statusCode: response.status, + body: errorBody, + headers: Object.fromEntries(response.headers.entries()) + }; + try { + error.response.body = JSON.parse(errorBody); + } catch (e) { + } + throw error; + } + + if (json) { + const text = await response.text(); + if (!text) return {}; + try { + return JSON.parse(text); + } catch (e) { + return text; + } + } + + return response.text(); +}; -module.exports = { - apiRequest: apiRequest -} +export { apiRequest }; diff --git a/lib/archive.js b/lib/archive.js index 23fbb87f..446d75d9 100644 --- a/lib/archive.js +++ b/lib/archive.js @@ -1,12 +1,12 @@ -const fs = require('fs'); -const shell = require('shelljs'); -const glob = require('fast-glob'); +import fs from 'fs'; +import shell from 'shelljs'; +import glob from 'fast-glob'; -const templates = require('../lib/templates'); -const logger = require('../lib/logger'); -const settings = require('../lib/settings'); -const dir = require('../lib/directories'); -const prepareArchive = require('../lib/prepareArchive'); +import { fillInTemplateValues } from './templates.js'; +import logger from './logger.js'; +import { loadSettingsFileForModule } from './settings.js'; +import dir from './directories.js'; +import prepareArchive from './prepareArchive.js'; const isEmpty = dir => shell.ls(dir).length == 0; @@ -25,7 +25,7 @@ const addModuleToArchive = (module, archive, withoutAssets, pattern = '**/{priva filesOnly: true }) .then(files => { - const moduleTemplateData = settings.loadSettingsFileForModule(module); + const moduleTemplateData = loadSettingsFileForModule(module); return Promise.all( files @@ -37,7 +37,7 @@ const addModuleToArchive = (module, archive, withoutAssets, pattern = '**/{priva return new Promise((resolve, reject) => { fs.lstat(path, (err, stat) => { if (!stat.isDirectory()) { - const filledTemplate = templates.fillInTemplateValues(path, moduleTemplateData); + const filledTemplate = fillInTemplateValues(path, moduleTemplateData); archive.append(filledTemplate, { name: path }); } resolve(); @@ -93,15 +93,10 @@ const makeArchive = async (env, { withoutAssets }) => { return new Promise(async (resolve, reject) => { const releaseArchive = prepareArchive(path, resolve, !withoutAssets); - // Think and decide - // Whitelist extensions that need to be included in deploy? - // Blacklist extensions that are most likely to be problematic (ie. break deploy, like .zip) releaseArchive.glob('**/!(*.zip)*', options, { prefix: directory }); await addModulesToArchive(releaseArchive, withoutAssets); await releaseArchive.finalize(); }); }; -module.exports = { - makeArchive: makeArchive -}; +export { makeArchive }; diff --git a/lib/assets.js b/lib/assets.js index d5535e13..b217fb54 100644 --- a/lib/assets.js +++ b/lib/assets.js @@ -1,10 +1,9 @@ -const request = require('request-promise'); -const packAssets = require('./assets/packAssets'), - manifestGenerate = require('./assets/manifest').manifestGenerate, - logger = require('./logger'), - uploadFile = require('./s3UploadFile').uploadFile, - presignUrl = require('./presignUrl').presignUrl; - const files = require('./files'); +import packAssets from './assets/packAssets.js'; +import { manifestGenerate } from './assets/manifest.js'; +import logger from './logger.js'; +import { uploadFile } from './s3UploadFile.js'; +import { presignUrl } from './presignUrl.js'; +import files from './files.js'; const sleep = ms => new Promise(resolve => setTimeout(resolve, ms)); @@ -17,12 +16,13 @@ const waitForUnpack = async fileUrl => { logger.Debug(`Waiting for: ${fileUrl} to be deleted.`); counter += 1; if (fileExists) await sleep(1000); - fileExists = await request - .head(fileUrl) - .then(() => true) - .catch({ statusCode: 403 }, () => false) - .catch({ statusCode: 404 }, () => false) - .catch(error => logger.Error(error)); + try { + const response = await fetch(fileUrl, { method: 'HEAD' }); + fileExists = response.ok; + } catch (error) { + fileExists = false; + logger.Error(error); + } } while (fileExists && counter < 90); }; @@ -54,6 +54,4 @@ const deployAssets = async gateway => { } }; -module.exports = { - deployAssets: deployAssets -}; +export { deployAssets }; diff --git a/lib/assets/manifest.js b/lib/assets/manifest.js index 3159b3fc..d3fbed2a 100644 --- a/lib/assets/manifest.js +++ b/lib/assets/manifest.js @@ -1,7 +1,7 @@ -const fs = require('fs'), - normalize = require('normalize-path'), - dir = require('../directories'), - files = require('../files'); +import fs from 'fs'; +import normalize from 'normalize-path'; +import dir from '../directories.js'; +import files from '../files.js'; const appDirectory = fs.existsSync(dir.APP) ? dir.APP : dir.LEGACY_APP; @@ -28,7 +28,4 @@ const manifestGenerateForAssets = (assets) => { return manifest; } -module.exports = { - manifestGenerate: manifestGenerate, - manifestGenerateForAssets: manifestGenerateForAssets -}; +export { manifestGenerate, manifestGenerateForAssets }; diff --git a/lib/assets/packAssets.js b/lib/assets/packAssets.js index 8161b41f..db46983e 100644 --- a/lib/assets/packAssets.js +++ b/lib/assets/packAssets.js @@ -1,10 +1,10 @@ -const archiver = require('archiver-promise'), - fs = require('fs'), - glob = require('fast-glob'), - shell = require('shelljs'), - templates = require('../templates'), - settings = require('../settings'), - dir = require('../directories'); +import archiver from 'archiver-promise'; +import fs from 'fs'; +import glob from 'fast-glob'; +import shell from 'shelljs'; +import { fillInTemplateValues } from '../templates.js'; +import { loadSettingsFileForModule } from '../settings.js'; +import dir from '../directories.js'; const appDirectory = fs.existsSync(dir.APP) ? dir.APP : dir.LEGACY_APP; @@ -30,7 +30,7 @@ const addModuleToArchive = async (module, archive, pattern = '{public,private}/a const path = `${dir.MODULES}/${module}/${f}`; const pathInArchive = path.replace(/(public|private)\/assets\//, ''); - const filledTemplate = templates.fillInTemplateValues(path, settings.loadSettingsFileForModule(module)); + const filledTemplate = fillInTemplateValues(path, loadSettingsFileForModule(module)); archive.append(filledTemplate, { name: pathInArchive }); @@ -50,4 +50,4 @@ const packAssets = async path => { return assetsArchive.finalize(); }; -module.exports = packAssets; +export default packAssets; diff --git a/lib/audit.js b/lib/audit.js index e7d28779..f2f190bd 100644 --- a/lib/audit.js +++ b/lib/audit.js @@ -1,16 +1,24 @@ -const chalk = require('chalk'); - -const logger = require('../lib/logger'); - -const tags = require('../lib/audit/tags'), - filters = require('../lib/audit/filters'), - detailed = require('../lib/audit/detailed'), - extensions = require('../lib/audit/extensions'), - duplicateFile = require('../lib/audit/duplicateFile'), - fileName = require('./audit/fileName'), - orphanedIncludes = require('../lib/audit/orphanedIncludes'); - -const auditors = [tags, filters, detailed, extensions, duplicateFile, fileName, orphanedIncludes]; +import chalk from 'chalk'; + +import logger from '../lib/logger.js'; + +import { audit as tagsAudit } from '../lib/audit/tags.js'; +import { audit as filtersAudit } from '../lib/audit/filters.js'; +import detailed from '../lib/audit/detailed.js'; +import extensions from '../lib/audit/extensions.js'; +import duplicateFile from '../lib/audit/duplicateFile.js'; +import fileName from './audit/fileName.js'; +import orphanedIncludes from '../lib/audit/orphanedIncludes.js'; + +const auditors = [ + { audit: tagsAudit }, + { audit: filtersAudit }, + detailed, + extensions, + duplicateFile, + fileName, + orphanedIncludes +]; const printReport = results => { if (!results) { @@ -42,6 +50,4 @@ const run = async () => { }); }; -module.exports = { - run: run -}; +export { run }; diff --git a/lib/audit/detailed.js b/lib/audit/detailed.js index e41aa942..a90f7c2c 100644 --- a/lib/audit/detailed.js +++ b/lib/audit/detailed.js @@ -1,17 +1,6 @@ -const fs = require('fs'); -const glob = require('fast-glob'); +import fs from 'fs'; +import glob from 'fast-glob'; -/* - glob [string - glob] - Try to be as specific as possible to make it fast. - Omit `app` and `modules` in your definition - - test [string - regexp] - What test will look for in the file contents. Make sure you escape as this is JS string (ie. doube backslash \) - - message [string] - Message to be displayed if offence is found -*/ const detailed = [ { name: 'profiler', @@ -61,38 +50,38 @@ const detailed = [ name: 'headers', glob: 'api_calls/**/*.liquid', test: '^headers:', - message: '[DEPRECATED] "headers" has been renamed to "request_headers"', + message: '[DEPRECATED] "headers" has been renamed to "request_headers"' } ]; -module.exports = { - audit: async () => { - let results = {}; +const audit = async () => { + let results = {}; - for (let rule of detailed) { - const files = await glob(`{app,modules,marketplace_builder}/**/${rule.glob}`); + for (let rule of detailed) { + const files = await glob(`{app,modules,marketplace_builder}/**/${rule.glob}`); - for (let file of files) { - const fileContents = fs.readFileSync(file, { encoding: 'utf8' }); - const match = RegExp(rule.test, 'm').test(fileContents); + for (let file of files) { + const fileContents = fs.readFileSync(file, { encoding: 'utf8' }); + const match = RegExp(rule.test, 'm').test(fileContents); - if (!match) { - continue; - } + if (!match) { + continue; + } - const currentFiles = results[rule.name] && results[rule.name].files; - const updatedFiles = (currentFiles || []).concat(file); + const currentFiles = results[rule.name] && results[rule.name].files; + const updatedFiles = (currentFiles || []).concat(file); - results = { - ...results, - [rule.name]: { - files: updatedFiles, - message: rule.message - } - }; - } + results = { + ...results, + [rule.name]: { + files: updatedFiles, + message: rule.message + } + }; } - - return results; } + + return results; }; + +export default { audit }; diff --git a/lib/audit/duplicateFile.js b/lib/audit/duplicateFile.js index 57c0a939..6aa43ab8 100644 --- a/lib/audit/duplicateFile.js +++ b/lib/audit/duplicateFile.js @@ -1,9 +1,9 @@ -const glob = require('fast-glob'); -const fs = require('fs'); +import glob from 'fast-glob'; +import fs from 'fs'; const underScorePrefix = /^_*/; -module.exports = { +const duplicateFile = { audit: async () => { let results = {}; @@ -28,4 +28,6 @@ module.exports = { return results; } -}; \ No newline at end of file +}; + +export default duplicateFile; diff --git a/lib/audit/extensions.js b/lib/audit/extensions.js index da14551a..6dcb7c74 100644 --- a/lib/audit/extensions.js +++ b/lib/audit/extensions.js @@ -1,4 +1,4 @@ -const glob = require('fast-glob'); +import glob from 'fast-glob'; const rules = [ { @@ -28,7 +28,7 @@ const rules = [ } ]; -module.exports = { +const extensions = { audit: async () => { let results = {}; @@ -50,4 +50,6 @@ module.exports = { return results; } -}; \ No newline at end of file +}; + +export default extensions; diff --git a/lib/audit/fileName.js b/lib/audit/fileName.js index a3a999cf..e1d8a69f 100644 --- a/lib/audit/fileName.js +++ b/lib/audit/fileName.js @@ -1,7 +1,7 @@ -const glob = require('fast-glob'); -const isValidFilePath = require('../utils/valid-file-path'); +import glob from 'fast-glob'; +import isValidFilePath from '../utils/valid-file-path.js'; -module.exports = { +const fileName = { audit: async () => { const files = await glob(['app/**/*', 'modules/*/{private,public}/**/*']); @@ -17,4 +17,6 @@ module.exports = { return {}; } -}; \ No newline at end of file +}; + +export default fileName; diff --git a/lib/audit/filters.js b/lib/audit/filters.js index ce5c80d7..37cfca75 100644 --- a/lib/audit/filters.js +++ b/lib/audit/filters.js @@ -1,7 +1,6 @@ -const fs = require('fs'); -const glob = require('fast-glob'); +import fs from 'fs'; +import glob from 'fast-glob'; -// TODO: Cleanup after old stack is dead const filters = [ 'active_class', 'already_favorite', @@ -67,33 +66,32 @@ const filters = [ const test = new RegExp(`\\| (${filters.join('|')})`); const _message = match => `[DEPRECATED FILTER] ${match}`; -module.exports = { - audit: async () => { - let results = {}; - const files = await glob('{app,modules,marketplace_builder}/**/*.liquid'); +const audit = async () => { + let results = {}; + const files = await glob('{app,modules,marketplace_builder}/**/*.liquid'); - for (let file of files) { - const fileContents = fs.readFileSync(file, { encoding: 'utf8' }); - const matches = fileContents.match(test); - const match = (matches && matches[1]) || false; + for (let file of files) { + const fileContents = fs.readFileSync(file, { encoding: 'utf8' }); + const matches = fileContents.match(test); + const match = (matches && matches[1]) || false; - if (!match) { - continue; - } + if (!match) { + continue; + } - const currentFiles = results[match] && results[match].files; - const updatedFiles = (currentFiles || []).concat(file); + const currentFiles = results[match] && results[match].files; + const updatedFiles = (currentFiles || []).concat(file); - results = { - ...results, - [match]: { - files: updatedFiles, - message: _message(match) - } - }; - } + results = { + ...results, + [match]: { + files: updatedFiles, + message: _message(match) + } + }; + } - return results; - }, - message: _message + return results; }; + +export { audit, _message as message }; diff --git a/lib/audit/orphanedIncludes.js b/lib/audit/orphanedIncludes.js index 00f80c0a..bde0dfc7 100644 --- a/lib/audit/orphanedIncludes.js +++ b/lib/audit/orphanedIncludes.js @@ -1,8 +1,8 @@ -const fs = require('fs'); -const glob = require('fast-glob'); -const path = require('path'); +import fs from 'fs'; +import glob from 'fast-glob'; +import path from 'path'; -const logger = require('../logger'); +import logger from '../logger.js'; const includes = /include (['"])([\w/-]*)\1/g; const variableInclude = /include ([\w]+)/; @@ -13,7 +13,6 @@ const normalizePath = (partialName, includedFrom) => { } if (includedFrom.startsWith('modules/')) { - // Module paths are included as modules/[modulename]/[includepath], rewrite it to private/public directories. const includedFromPath = path.join(...includedFrom.split(path.sep).slice(0, 2)); const partialFilename = partialName.substr(includedFromPath.length + 1) + '.liquid'; return findExistingFile([ @@ -37,14 +36,14 @@ const findPartials = async () => { const foundPartials = files.reduce((partials, file) => { const fileContents = fs.readFileSync(file, { encoding: 'utf8' }); - // Drop out if variable include found. if (fileContents.match(variableInclude)) { foundVariableInclude = true; foundVariableIncludeFile = file; return partials; } - while (includesMatches = includes.exec(fileContents)) { + let includesMatches; + while ((includesMatches = includes.exec(fileContents))) { partials.add(normalizePath(includesMatches[2], file)); } @@ -54,7 +53,7 @@ const findPartials = async () => { return { foundPartials, foundVariableInclude, foundVariableIncludeFile }; }; -module.exports = { +const orphanedIncludes = { audit: async () => { let results = {}; @@ -65,10 +64,8 @@ module.exports = { return {}; } - // Look up all partials. let partials = await glob('{app,modules}/**/partials/**/*.liquid'); - // Find never included partials. const notIncludedPartials = partials.filter(partial => !foundPartials.has(partial)); if (notIncludedPartials.length > 0) { results = { @@ -81,4 +78,6 @@ module.exports = { return results; } -}; \ No newline at end of file +}; + +export default orphanedIncludes; diff --git a/lib/audit/tags.js b/lib/audit/tags.js index 23b3ab09..46a7d5e1 100644 --- a/lib/audit/tags.js +++ b/lib/audit/tags.js @@ -1,7 +1,6 @@ -const fs = require('fs'); -const glob = require('fast-glob'); +import fs from 'fs'; +import glob from 'fast-glob'; -// TODO: Cleanup after old stack is dead const tags = [ 'cache_for', 'content_holder_tag_for_path', @@ -37,33 +36,32 @@ const tags = [ const test = new RegExp(`{%-?\\s*(${tags.join('|')})\\s`); const _message = match => `[DEPRECATED TAG] ${match}`; -module.exports = { - audit: async () => { - let results = {}; - const files = await glob('{app,modules,marketplace_builder}/**/*.liquid'); +const audit = async () => { + let results = {}; + const files = await glob('{app,modules,marketplace_builder}/**/*.liquid'); - for (let file of files) { - const fileContents = fs.readFileSync(file, { encoding: 'utf8' }); - const matches = fileContents.match(test); - const match = (matches && matches[1]) || false; + for (let file of files) { + const fileContents = fs.readFileSync(file, { encoding: 'utf8' }); + const matches = fileContents.match(test); + const match = (matches && matches[1]) || false; - if (!match) { - continue; - } + if (!match) { + continue; + } - const currentFiles = results[match] && results[match].files; - const updatedFiles = (currentFiles || []).concat(file); + const currentFiles = results[match] && results[match].files; + const updatedFiles = (currentFiles || []).concat(file); - results = { - ...results, - [match]: { - files: updatedFiles, - message: _message(match) - } - }; - } + results = { + ...results, + [match]: { + files: updatedFiles, + message: _message(match) + } + }; + } - return results; - }, - message: _message + return results; }; + +export { audit, _message as message }; diff --git a/lib/data/fetchFiles.js b/lib/data/fetchFiles.js index dadc768e..d45b522f 100644 --- a/lib/data/fetchFiles.js +++ b/lib/data/fetchFiles.js @@ -1,26 +1,32 @@ -const fs = require('fs'), - request = require('request'), - url = require('url'), - path = require('path'), - shell = require('shelljs'), - flatten = require('lodash.flatten'), - Queue = require('async/queue'), - logger = require('./../logger'); +import fs from 'fs'; +import { Writable } from 'stream'; +import url from 'url'; +import path from 'path'; +import shell from 'shelljs'; +import flatten from 'lodash.flatten'; +import async from 'async'; +import logger from './../logger.js'; const CONCURRENCY = 12; -const download = (uri, filename) => { - return new Promise((resolve, reject) => { - request.head(uri, (err, res, body) => { - if (err) { - logger.Warn(err); - reject(err); - } else { - request(uri) - .pipe(fs.createWriteStream(filename)) - .on('close', () => resolve(filename)); - } - }); - }); +const download = async (uri, filename) => { + try { + const response = await fetch(uri, { method: 'HEAD' }); + if (!response.ok) { + throw new Error(`HEAD request failed with status ${response.status}`); + } + + const downloadResponse = await fetch(uri); + if (!downloadResponse.ok) { + throw new Error(`Download failed with status ${downloadResponse.status}`); + } + + const buffer = await downloadResponse.arrayBuffer(); + fs.writeFileSync(filename, Buffer.from(buffer)); + return filename; + } catch (err) { + logger.Warn(err); + throw err; + } }; const filenameForUrl = uri => { @@ -43,8 +49,8 @@ const tmpFileMeta = (item, field) => { return { filename: tmpFilename, dir: dir }; }; -const queue = Queue((task, callback) => { - download(task.url, task.tmpFilename).then(callback); +const queue = async.queue((task, callback) => { + download(task.url, task.tmpFilename).then(callback).catch(callback); }, CONCURRENCY); const enqueue = item => { @@ -90,4 +96,4 @@ async function fetchFiles(model) { return model; } -module.exports = fetchFiles; +export default fetchFiles; diff --git a/lib/data/isValidJSON.js b/lib/data/isValidJSON.js index 4955c27f..a512e011 100644 --- a/lib/data/isValidJSON.js +++ b/lib/data/isValidJSON.js @@ -1,12 +1,10 @@ -// TODO: Move to validators... const isValidJSON = data => { try { JSON.parse(data); - // TODO check required keyes return true; } catch (e) { return false; } }; -module.exports = isValidJSON; +export default isValidJSON; diff --git a/lib/data/uploadFiles.js b/lib/data/uploadFiles.js index 26f6e7d3..9dea7b4b 100644 --- a/lib/data/uploadFiles.js +++ b/lib/data/uploadFiles.js @@ -1,9 +1,9 @@ -const { randomUUID } = require('crypto'), - path = require('path'), - mapLimit = require('async/mapLimit'), - logger = require('./../logger'), - presignUrl = require('./../presignUrl').presignUrl, - uploadFile = require('./../s3UploadFile').uploadFile; +import { randomUUID } from 'crypto'; +import path from 'path'; +import async from 'async'; +import logger from './../logger.js'; +import { presignUrl } from './../presignUrl.js'; +import { uploadFile } from './../s3UploadFile.js'; const filenameForUrl = uri => { return path.basename(uri); @@ -57,7 +57,7 @@ const CONCURRENCY = 4; const processFilesFor = (collection) => { let i = 0; return new Promise((resolve, reject) => { - mapLimit(collection, CONCURRENCY, async (item) => { + async.mapLimit(collection, CONCURRENCY, async (item) => { i++; logger.Debug(i); return await processModel(item); @@ -89,4 +89,4 @@ const transform = data => { return processData(data); }; -module.exports = transform; +export default transform; diff --git a/lib/data/waitForStatus.js b/lib/data/waitForStatus.js index baa2d48e..fa4ae0cc 100644 --- a/lib/data/waitForStatus.js +++ b/lib/data/waitForStatus.js @@ -1,8 +1,8 @@ -const logger = require('../logger'); +import logger from '../logger.js'; const waitForStatus = (statusCheck, pendingStatus, successStatus, interval = 5000, cb = null) => { return new Promise((resolve, reject) => { - (getStatus = () => { + let getStatus = () => { statusCheck() .then(response => { try { @@ -18,14 +18,15 @@ const waitForStatus = (statusCheck, pendingStatus, successStatus, interval = 500 setTimeout(getStatus, interval); } catch(e) { reject(e) } - }) + }) .catch((error) => { logger.Debug('[ERR] waitForStatus did not receive `status` in response object', error); reject(error); }); - })(); + }; + getStatus(); }); }; -module.exports = waitForStatus; +export default waitForStatus; diff --git a/lib/deploy/defaultStrategy.js b/lib/deploy/defaultStrategy.js index 24628d8c..b0965326 100644 --- a/lib/deploy/defaultStrategy.js +++ b/lib/deploy/defaultStrategy.js @@ -1,10 +1,9 @@ -const archive = require('../archive'); -const push = require('../push'); +import { makeArchive } from '../archive.js'; +import { push } from '../push.js'; -const logger = require('../logger'), - report = require('../logger/report'); +import logger from '../logger.js'; +import report from '../logger/report.js'; -// importing ESM modules in CommonJS project let ora; const initializeEsmModules = async () => { if(!ora) { @@ -15,12 +14,12 @@ const initializeEsmModules = async () => { } const createArchive = async (env) => { - const numberOfFiles = await archive.makeArchive(env, { withoutAssets: false }); + const numberOfFiles = await makeArchive(env, { withoutAssets: false }); if (numberOfFiles == 0) throw 'Archive failed to create.'; }; const uploadArchive = async (env) => { - const res = await push.push(env); + const res = await push(env); if (!res) throw 'Server did not accept release file.'; return res; @@ -48,4 +47,4 @@ const strategy = async ({ env, authData, params }) => { } }; -module.exports = strategy; +export default strategy; diff --git a/lib/deploy/directAssetsUploadStrategy.js b/lib/deploy/directAssetsUploadStrategy.js index ee5f94b5..fc80cf7b 100644 --- a/lib/deploy/directAssetsUploadStrategy.js +++ b/lib/deploy/directAssetsUploadStrategy.js @@ -1,14 +1,13 @@ -const { performance } = require('perf_hooks'), - Gateway = require('../proxy'), - archive = require('../archive'), - assets = require('../assets'), - duration = require('../duration'), - files = require('../files'), - push = require('../push'), - logger = require('../logger'), - report = require('../logger/report'); - -// importing ESM modules in CommonJS project +import { performance } from 'perf_hooks'; +import Gateway from '../proxy.js'; +import { makeArchive } from '../archive.js'; +import { deployAssets } from '../assets.js'; +import duration from '../duration.js'; +import files from '../files.js'; +import { push } from '../push.js'; +import logger from '../logger.js'; +import report from '../logger/report.js'; + let ora; const initializeEsmModules = async () => { if(!ora) { @@ -18,16 +17,16 @@ const initializeEsmModules = async () => { return true; } -const createArchive = (env) => archive.makeArchive(env, { withoutAssets: true }); -const uploadArchive = (env) => push.push(env); +const createArchive = (env) => makeArchive(env, { withoutAssets: true }); +const uploadArchive = (env) => push(env); -const deployAssets = async (authData) => { +const deployAndUploadAssets = async (authData) => { const assetsToDeploy = await files.getAssets(); if (assetsToDeploy.length === 0) { logger.Warn('There are no assets to deploy, skipping.'); return; } - await assets.deployAssets(new Gateway(authData)); + await deployAssets(new Gateway(authData)); }; const strategy = async ({ env, authData, params }) => { @@ -48,7 +47,7 @@ const strategy = async ({ env, authData, params }) => { logger.Warn('There are no files in release file, skipping.'); } - await deployAssets(authData); + await deployAndUploadAssets(authData); spinner.succeed(`Deploy succeeded after ${duration(t0, performance.now())}`); } catch (e) { @@ -57,4 +56,4 @@ const strategy = async ({ env, authData, params }) => { } }; -module.exports = strategy; +export default strategy; diff --git a/lib/deploy/strategy.js b/lib/deploy/strategy.js index 58f0d9fb..df342096 100644 --- a/lib/deploy/strategy.js +++ b/lib/deploy/strategy.js @@ -1,8 +1,11 @@ +import defaultStrategy from './defaultStrategy.js'; +import directAssetsUploadStrategy from './directAssetsUploadStrategy.js'; + const strategies = { - default: require('./defaultStrategy'), - directAssetsUpload: require('./directAssetsUploadStrategy'), + default: defaultStrategy, + directAssetsUpload: directAssetsUploadStrategy, }; -module.exports = { - run: ({ strategy, opts }) => strategies[strategy](opts), -}; +const run = ({ strategy, opts }) => strategies[strategy](opts); + +export default { run }; diff --git a/lib/directories.js b/lib/directories.js index 6c1707a6..b9b85666 100644 --- a/lib/directories.js +++ b/lib/directories.js @@ -1,4 +1,4 @@ -const fs = require('fs'); +import fs from 'fs'; const app = { APP: 'app', @@ -20,4 +20,4 @@ const methods = { available: () => computed.ALLOWED.filter(fs.existsSync) }; -module.exports = Object.assign({}, app, internal, computed, methods); +export default Object.assign({}, app, internal, computed, methods); diff --git a/lib/downloadFile.js b/lib/downloadFile.js index 7ce258ab..ed7c199d 100644 --- a/lib/downloadFile.js +++ b/lib/downloadFile.js @@ -1,8 +1,8 @@ -const fs = require('fs'); -const https = require('https'); -const http = require('http'); +import fs from 'fs'; +import https from 'https'; +import http from 'http'; -module.exports = (url, fileName) => { +const downloadFile = (url, fileName) => { return new Promise((resolve, reject) => { let file = fs.createWriteStream(fileName).on('close', () => resolve()); const request = url.startsWith('https') ? https : http; @@ -16,3 +16,5 @@ module.exports = (url, fileName) => { }); }); }; + +export default downloadFile; diff --git a/lib/duration.js b/lib/duration.js index 3ba9f832..3b4e8dca 100644 --- a/lib/duration.js +++ b/lib/duration.js @@ -1,7 +1,7 @@ - const formatMMSS = s => (s - (s %= 60)) / 60 + (9 < s ? ':' : ':0') + s; - const duration = (t0, t1) => { - const duration = Math.round((t1 - t0) / 1000); - return formatMMSS(duration); - }; +const formatMMSS = s => (s - (s %= 60)) / 60 + (9 < s ? ':' : ':0') + s; +const duration = (t0, t1) => { + const duration = Math.round((t1 - t0) / 1000); + return formatMMSS(duration); +}; -module.exports = duration; +export default duration; diff --git a/lib/environments.js b/lib/environments.js index 33eee72f..b496fd01 100644 --- a/lib/environments.js +++ b/lib/environments.js @@ -1,10 +1,9 @@ -const fs = require('fs'); -const files = require('../lib/files'); -const Portal = require('../lib/portal'); -const logger = require('../lib/logger'); -const waitForStatus = require('../lib/data/waitForStatus'); +import fs from 'fs'; +import files from '../lib/files.js'; +import Portal from '../lib/portal.js'; +import logger from '../lib/logger.js'; +import waitForStatus from '../lib/data/waitForStatus.js'; -// importing ESM modules in CommonJS project let open; const initializeEsmModules = async () => { if (process.env['CI']) open = console.log @@ -75,13 +74,21 @@ const deviceAuthorizationFlow = async (instanceUrl) => { await initializeEsmModules(); logger.Debug('verificationUrl', verificationUrl); - await open(verificationUrl); + try { + await open(verificationUrl); + } catch (error) { + if (error instanceof AggregateError) { + logger.Error(`Failed to open browser (${error.errors.length} attempts): ${error.message}`); + } else { + logger.Error(`Failed to open browser: ${error.message}`); + } + } const accessToken = await waitForAccessToken(deviceCode, interval); return accessToken; }; -module.exports = { - deviceAuthorizationFlow: deviceAuthorizationFlow, - storeEnvironment: storeEnvironment +export { + deviceAuthorizationFlow, + storeEnvironment } diff --git a/lib/envs/add.js b/lib/envs/add.js index ff0a071b..cc09c8de 100644 --- a/lib/envs/add.js +++ b/lib/envs/add.js @@ -1,9 +1,9 @@ -const Portal = require('../portal'); -const logger = require('../logger'); -const validate = require('../validators'); -const { storeEnvironment, deviceAuthorizationFlow } = require('../environments'); -const waitForStatus = require('../data/waitForStatus'); -const { readPassword } = require('../utils/password'); +import Portal from '../portal.js'; +import logger from '../logger.js'; +import * as validate from '../validators/index.js'; +import { storeEnvironment, deviceAuthorizationFlow } from '../environments.js'; +import waitForStatus from '../data/waitForStatus.js'; +import { readPassword } from '../utils/password.js'; const checkParams = (env, params) => { if (params.email) validate.email(params.email); @@ -39,6 +39,7 @@ const addEnv = async (environment, params) => { partner_portal_url: process.env['PARTNER_PORTAL_HOST'] }; + let token; if (params.token) { token = params.token; } else if (!params.email){ @@ -58,4 +59,4 @@ const addEnv = async (environment, params) => { if (token) saveToken(settings, token); } -module.exports = addEnv; +export default addEnv; diff --git a/lib/files.js b/lib/files.js index e1cdb811..d331ef0e 100644 --- a/lib/files.js +++ b/lib/files.js @@ -1,9 +1,9 @@ -const path = require('path'); -const fs = require('fs'); -const glob = require('fast-glob'); +import path from 'path'; +import fs from 'fs'; +import glob from 'fast-glob'; -const logger = require('./logger'); -const dir = require('./directories'); +import logger from './logger.js'; +import dir from './directories.js'; const config = { CONFIG: '.pos', @@ -14,7 +14,7 @@ const config = { const _paths = customConfig => [customConfig, config.CONFIG, config.LEGACY_CONFIG]; const _getConfigPath = customConfig => { - const firstExistingConfig = _paths(customConfig).filter(fs.existsSync)[0]; + const firstExistingConfig = _paths(customConfig).filter(path => path && fs.existsSync(path))[0]; logger.Debug(`[_getConfigPath] First existing config file: ${firstExistingConfig}`); return path.resolve(firstExistingConfig || config.CONFIG); }; @@ -61,8 +61,8 @@ const _readIgnoreList = filePath => { const rules = fs .readFileSync(filePath, { encoding: 'utf8' }) .split('\n') - .filter(Boolean) // remove empty lines - .filter(line => line.indexOf('#') !== 0); // remove commented lines + .filter(Boolean) + .filter(line => line.indexOf('#') !== 0); return rules; }; @@ -87,4 +87,4 @@ const methods = { getIgnoreList: ignoreListPath => _readIgnoreList(ignoreListPath || config.IGNORE_LIST) || [] }; -module.exports = Object.assign({}, config, methods); +export default Object.assign({}, config, methods); diff --git a/lib/graph/queries.js b/lib/graph/queries.js index 288ee80b..690afa29 100644 --- a/lib/graph/queries.js +++ b/lib/graph/queries.js @@ -1,23 +1,25 @@ -module.exports = { - getConstants() { - return `query getConstants { - constants(per_page: 99) { - results { name, value, updated_at } - } - }`; - }, - setConstant(name, value) { - return `mutation { - constant_set(name: "${name}", value: "${value}") { - name, value - } - }`; - }, - unsetConstant(name) { - return `mutation { - constant_unset(name: "${name}") { - name - } - }`; - } +const getConstants = () => { + return `query getConstants { + constants(per_page: 99) { + results { name, value, updated_at } + } + }`; +}; + +const setConstant = (name, value) => { + return `mutation { + constant_set(name: "${name}", value: "${value}") { + name, value + } + }`; +}; + +const unsetConstant = (name) => { + return `mutation { + constant_unset(name: "${name}") { + name + } + }`; } + +export { getConstants, setConstant, unsetConstant }; diff --git a/lib/logger.js b/lib/logger.js index bc7351e8..dcd2099a 100644 --- a/lib/logger.js +++ b/lib/logger.js @@ -1,14 +1,37 @@ -const path = require('path'); -const notifier = require('node-notifier'); +import path from 'path'; +import notifier from 'node-notifier'; +import { fileURLToPath } from 'url'; +import { dirname } from 'path'; -const instance = - !!process.env.NO_COLOR || !!process.env.CI ? require('./logger/simple.js') : require('./logger/rainbow.js'); +const importMetaFilename = fileURLToPath(import.meta.url); +const importMetaDirname = dirname(importMetaFilename); + +const isSimple = !!process.env.NO_COLOR || !!process.env.CI; + +let instance = null; +let instancePromise = null; + +const loadLogger = async () => { + if (instance) return instance; + if (instancePromise) return instancePromise; + + if (isSimple) { + instancePromise = import('./logger/simple.js').then(mod => mod.default || mod); + } else { + instancePromise = import('./logger/rainbow.js').then(mod => mod.default || mod); + } + instance = await instancePromise; + return instance; +}; + +// Pre-load synchronously for backward compatibility +loadLogger().catch(() => {}); const showNotification = (message) => { if (!!process.env.CI) { return; } - const icon = path.resolve(__dirname, '../lib/pos-logo.png'); + const icon = path.resolve(importMetaDirname, '../lib/pos-logo.png'); notifier.notify({ title: 'Error', message, icon, 'app-name': 'pos-cli' }); }; @@ -30,11 +53,21 @@ const formatter = (msg, opts = { hideTimestamp: false }) => { return message.trim(); }; +const callInstance = async (method, args) => { + const inst = await loadLogger(); + return inst[method](...args); +}; + const logger = { Error: (message, opts) => { const options = Object.assign({}, { exit: true, notify: true }, opts); const msg = formatter(message, options); - instance.Error(msg); + + // Print to stderr synchronously so error message is always visible + console.error(msg); + + // Call the async logger (may be slow to load) + callInstance('Error', [msg]).catch(() => {}); if (msg && options.notify) { try { @@ -48,19 +81,19 @@ const logger = { return false; } }, - Log: (message, opts = {}) => instance.Log(message), - Success: (message, opts = {}) => instance.Success(formatter(message, opts)), - Quiet: (message, opts = {}) => instance.Quiet(formatter(message, opts)), - Info: (message, opts = {}) => instance.Info(formatter(message, opts)), - Warn: (message, opts = {}) => instance.Warn(formatter(message, opts)), - News: (message, opts = {}) => instance.News(formatter(message, opts)), - Print: (message, opts = {}) => instance.Print(message, opts), + Log: (message, opts = {}) => callInstance('Log', [message]), + Success: (message, opts = {}) => callInstance('Success', [formatter(message, opts)]), + Quiet: (message, opts = {}) => callInstance('Quiet', [formatter(message, opts)]), + Info: (message, opts = {}) => callInstance('Info', [formatter(message, opts)]), + Warn: (message, opts = {}) => callInstance('Warn', [formatter(message, opts)]), + News: (message, opts = {}) => callInstance('News', [formatter(message, opts)]), + Print: (message, opts = {}) => callInstance('Print', [message, opts]), Debug: (message, opts = {}) => { if (process.env.DEBUG) { - instance.Warn(formatter(message, opts)); + callInstance('Warn', [formatter(message, opts)]); } }, programHelp: () => { program.outputHelp({error: true}); process.exit(1);}, }; -module.exports = logger; +export default logger; diff --git a/lib/logger/rainbow.js b/lib/logger/rainbow.js index 9777f489..323683d7 100644 --- a/lib/logger/rainbow.js +++ b/lib/logger/rainbow.js @@ -1,4 +1,4 @@ -const chalk = require('chalk'); +import chalk from 'chalk'; const Error = message => console.error(chalk.red.bold(message)); const Success = message => console.log(chalk.green.bold(message)); @@ -9,4 +9,4 @@ const News = message => console.error(chalk.cyan(message)); const Print = txt => process.stdout.write(txt); const Log = console.log; -module.exports = { Error, Success, Quiet, Info, Warn, News, Print, Log }; +export { Error, Success, Quiet, Info, Warn, News, Print, Log }; diff --git a/lib/logger/report.js b/lib/logger/report.js index 049b16d3..cb4911a0 100644 --- a/lib/logger/report.js +++ b/lib/logger/report.js @@ -1,10 +1,9 @@ -const crypto = require('crypto'); -const { execSync } = require('child_process'); - -const { readFileSync } = require('fs'); - -const version = require('../../package.json').version; -const files = require('../../lib/files'); +import crypto from 'crypto'; +import { execSync } from 'child_process'; +import { readFileSync } from 'fs'; +import pkg from '../../package.json' with { type: "json" }; +const version = pkg.version; +import files from '../../lib/files.js'; const getStdout = (cmd) => { const stdout = execSync(cmd); @@ -39,9 +38,9 @@ const envs = () => { return envs; }; -const { apiRequest } = require('../apiRequest'); +import { apiRequest } from '../apiRequest.js'; -module.exports = async (message) => { +const report = async (message) => { return await apiRequest({ uri: 'https://api.raygun.io/entries', method: 'POST', @@ -68,3 +67,5 @@ const buildBody = (message,user,version) => { } } } + +export default report; diff --git a/lib/logger/simple.js b/lib/logger/simple.js index db31f36a..a7086330 100644 --- a/lib/logger/simple.js +++ b/lib/logger/simple.js @@ -7,4 +7,4 @@ const News = console.log; const Print = txt => process.stdout.write(txt); const Log = console.log; -module.exports = { Error, Success, Quiet, Info, Warn, News, Print, Log }; +export { Error, Success, Quiet, Info, Warn, News, Print, Log }; diff --git a/lib/logsv2/http.js b/lib/logsv2/http.js index f4e78b26..82b516d6 100644 --- a/lib/logsv2/http.js +++ b/lib/logsv2/http.js @@ -1,4 +1,4 @@ -const { apiRequest } = require('../apiRequest'); +import { apiRequest } from '../apiRequest.js'; class HTTP { static async get(url, {params, securities}) { @@ -37,4 +37,4 @@ class HTTP { } } -module.exports = HTTP +export default HTTP; diff --git a/lib/modules.js b/lib/modules.js index d3b9a1b7..279edd48 100644 --- a/lib/modules.js +++ b/lib/modules.js @@ -1,16 +1,16 @@ -const fs = require('fs'); -const rl = require('readline'); -const glob = require('fast-glob'); +import fs from 'fs'; +import rl from 'readline'; +import glob from 'fast-glob'; -const files = require('./files'); -const logger = require('./logger'); -const Portal = require('./portal'); -const prepareArchive = require('./prepareArchive'); -const presignUrl = require('./presignUrl').presignUrlForPortal; -const uploadFile = require('./s3UploadFile').uploadFile; -const waitForStatus = require('./data/waitForStatus'); -const { readPassword } = require('./utils/password'); -const ServerError = require('../lib/ServerError'); +import files from './files.js'; +import logger from './logger.js'; +import Portal from './portal.js'; +import prepareArchive from './prepareArchive.js'; +import { presignUrlForPortal } from './presignUrl.js'; +import { uploadFile } from './s3UploadFile.js'; +import waitForStatus from './data/waitForStatus.js'; +import { readPassword } from './utils/password.js'; +import ServerError from './ServerError.js'; let moduleId; const archiveFileName = 'release.zip'; @@ -60,7 +60,7 @@ const createArchive = async (moduleName) => { } const uploadArchive = async (token) => { - const data = await presignUrl(token, moduleId, archiveFileName); + const data = await presignUrlForPortal(token, moduleId, archiveFileName); logger.Debug(data); await uploadFile(archivePath, data.uploadUrl); logger.Info('Release Uploaded'); @@ -145,9 +145,4 @@ const publishVersion = async (params) => { } }; -module.exports = { - publishVersion: publishVersion, - moduleConfig: moduleConfig, - moduleConfigFilePath: moduleConfigFilePath, - moduleConfigFileName: moduleConfigFileName -}; +export { publishVersion, moduleConfig, moduleConfigFilePath, moduleConfigFileName }; diff --git a/lib/modules/configFiles.js b/lib/modules/configFiles.js index 698bed85..2b47411f 100644 --- a/lib/modules/configFiles.js +++ b/lib/modules/configFiles.js @@ -1,6 +1,6 @@ -const files = require('../files'); -const fs = require('fs'); -const path = require('path'); +import files from '../files.js'; +import fs from 'fs'; +import path from 'path'; const posConfigDirectory = 'app'; const posModulesFilePath = `${posConfigDirectory}/pos-modules.json`; @@ -25,11 +25,4 @@ const writePosModulesLock = (modules) => { ); } -module.exports = { - posModulesFilePath: posModulesFilePath, - posModulesLockFilePath: posModulesLockFilePath, - readLocalModules: readLocalModules, - writePosModules: writePosModules, - writePosModulesLock: writePosModulesLock, - posConfigDirectory: posConfigDirectory -} +export { posModulesFilePath, posModulesLockFilePath, readLocalModules, writePosModules, writePosModulesLock, posConfigDirectory }; diff --git a/lib/modules/dependencies.js b/lib/modules/dependencies.js index df903453..438abec7 100644 --- a/lib/modules/dependencies.js +++ b/lib/modules/dependencies.js @@ -1,7 +1,7 @@ -const flatten = require('lodash.flatten'); -const uniq = require('lodash.uniq'); -const semver = require('semver'); -const logger = require('../logger'); +import flatten from 'lodash.flatten'; +import uniq from 'lodash.uniq'; +import semver from 'semver'; +import logger from '../logger.js'; const resolveBestVersion = async (dependencyList, getVersions, topLevelModulesRequirments) => { const dependenciesNames = uniq(dependencyList.map(dep => Object.keys(dep)[0])); @@ -73,7 +73,4 @@ const findModuleVersion = async (moduleName, moduleVersion, getVersions) => { } } -module.exports = { - resolveDependencies: resolveDependencies, - findModuleVersion: findModuleVersion -}; +export { resolveDependencies, findModuleVersion }; diff --git a/lib/overwrites.js b/lib/overwrites.js index 1e190900..aecde798 100644 --- a/lib/overwrites.js +++ b/lib/overwrites.js @@ -1,8 +1,8 @@ -const fs = require('fs'); -const path = require('path'); +import fs from 'fs'; +import path from 'path'; const overwritesPath = path.join(process.cwd(), 'app/modules'); const prefixToRemove = path.join(process.cwd(), 'app'); -const logger = require('../lib/logger'); +import logger from '../lib/logger.js'; function getOverwrites(dir, baseDir = dir) { const files = []; @@ -13,7 +13,6 @@ function getOverwrites(dir, baseDir = dir) { if (item.isDirectory()) { files.push(...getOverwrites(fullPath, baseDir)); } else { - // Create the relative path based on baseDir and remove the 'app/' prefix const relativePath = path.relative(baseDir, fullPath).replace(/\\/g, '/'); files.push(relativePath); } @@ -35,4 +34,4 @@ const Overwrites = { } } -module.exports = Overwrites; +export default Overwrites; diff --git a/lib/portal.js b/lib/portal.js index 4a4c1657..bc260865 100644 --- a/lib/portal.js +++ b/lib/portal.js @@ -1,5 +1,5 @@ -const { apiRequest } = require('./apiRequest'); -const logger = require('./logger'); +import { apiRequest } from './apiRequest.js'; +import logger from './logger.js'; const Portal = { url: () => { return process.env.PARTNER_PORTAL_HOST || 'https://partners.platformos.com' }, @@ -75,4 +75,4 @@ const Portal = { } }; -module.exports = Portal; +export default Portal; diff --git a/lib/prepareArchive.js b/lib/prepareArchive.js index 07cbe044..d5dbb450 100644 --- a/lib/prepareArchive.js +++ b/lib/prepareArchive.js @@ -1,7 +1,7 @@ -const fs = require('fs'); -const shell = require('shelljs'); -const archiver = require('archiver'); -const logger = require('./logger'); +import fs from 'fs'; +import shell from 'shelljs'; +import archiver from 'archiver'; +import logger from './logger.js'; const prepareDestination = path => { shell.mkdir('-p', 'tmp'); @@ -14,8 +14,6 @@ const prepareArchive = (path, resolve, verbose = false) => { const output = fs.createWriteStream(path); const archive = archiver('zip', { zlib: { level: 6 } }); - // listen for all archive data to be written - // 'close' event is fired only when a file descriptor is involved output.on('close', () => { if (verbose) { const sizeInMB = archive.pointer() / 1024 / 1024; @@ -46,4 +44,4 @@ const prepareArchive = (path, resolve, verbose = false) => { return archive; }; -module.exports = prepareArchive; +export default prepareArchive; diff --git a/lib/presignUrl.js b/lib/presignUrl.js index a9cf16ed..ceda10bf 100644 --- a/lib/presignUrl.js +++ b/lib/presignUrl.js @@ -1,70 +1,77 @@ -const fs = require('fs'), - url = require('url'), - request = require('request-promise'), - mime = require('mime'), - logger = require('./logger'), - Portal = require('./portal'); +import fs from 'fs'; +import url from 'url'; +import mime from 'mime'; +import logger from './logger.js'; +import Portal from './portal.js'; const deployServiceUrl = () => process.env.DEPLOY_SERVICE_URL || url.resolve(process.env.MARKETPLACE_URL, '/api/private/urls'); -const presignUrl = (s3FileName, fileName) => { +const presignUrl = async (s3FileName, fileName) => { const serviceUrl = `${deployServiceUrl()}/presign-url`; - const params = { + const params = new URLSearchParams({ fileName: s3FileName, - contentLength: fs.statSync(fileName)['size'], + contentLength: fs.statSync(fileName)['size'].toString(), contentType: mime.getType(fileName) - }; + }); - return request - .get({ - url: serviceUrl, - headers: { - token: process.env.MARKETPLACE_TOKEN, - marketplace_domain: url.parse(process.env.MARKETPLACE_URL).hostname - }, - qs: params, - json: true - }) - .then(body => { - return { uploadUrl: body.url, accessUrl: url.parse(body.accessUrl).href }; - }); + const response = await fetch(`${serviceUrl}?${params}`, { + method: 'GET', + headers: { + token: process.env.MARKETPLACE_TOKEN, + marketplace_domain: url.parse(process.env.MARKETPLACE_URL).hostname + } + }); + + if (!response.ok) { + const error = new Error(`presignUrl failed with status ${response.status}`); + error.statusCode = response.status; + throw error; + } + + const body = await response.json(); + return { uploadUrl: body.url, accessUrl: url.parse(body.accessUrl).href }; }; -const presignDirectory = path => { +const presignDirectory = async (path) => { const serviceUrl = `${deployServiceUrl()}/presign-directory`; - const params = { directory: path }; + const params = new URLSearchParams({ directory: path }); + + const response = await fetch(`${serviceUrl}?${params}`, { + method: 'GET', + headers: { + token: process.env.MARKETPLACE_TOKEN, + marketplace_domain: url.parse(process.env.MARKETPLACE_URL).hostname + } + }); + + if (!response.ok) { + const error = new Error(`presignDirectory failed with status ${response.status}`); + error.statusCode = response.status; + throw error; + } - return request - .get({ - url: serviceUrl, - headers: { - token: process.env.MARKETPLACE_TOKEN, - marketplace_domain: url.parse(process.env.MARKETPLACE_URL).hostname - }, - qs: params, - json: true - }) - .then(body => body); + return response.json(); }; -const presignUrlForPortal = (token, moduleName, filename) => { +const presignUrlForPortal = async (token, moduleName, filename) => { const serviceUrl = `${Portal.url()}/api/pos_modules/${moduleName}/presign_url`; logger.Debug(token); - return request - .get({ - url: serviceUrl, - headers: { - Authorization: `Bearer ${token}` - }, - json: true - }) - .then(body => { - return { uploadUrl: body.upload_url, accessUrl: body.access_url }; - }); -}; -module.exports = { - presignDirectory: presignDirectory, - presignUrl: presignUrl, - presignUrlForPortal: presignUrlForPortal + const response = await fetch(serviceUrl, { + method: 'GET', + headers: { + Authorization: `Bearer ${token}` + } + }); + + if (!response.ok) { + const error = new Error(`presignUrlForPortal failed with status ${response.status}`); + error.statusCode = response.status; + throw error; + } + + const body = await response.json(); + return { uploadUrl: body.upload_url, accessUrl: body.access_url }; }; + +export { presignDirectory, presignUrl, presignUrlForPortal }; diff --git a/lib/productionEnvironment.js b/lib/productionEnvironment.js index 2ff26370..16796d64 100644 --- a/lib/productionEnvironment.js +++ b/lib/productionEnvironment.js @@ -1,13 +1,6 @@ -const prompts = require('prompts'); -const logger = require('./logger'); +import prompts from 'prompts'; +import logger from './logger.js'; -/** - * Checks if an environment name indicates a production environment. - * Matches environment names containing 'prod' or 'production' (case-insensitive). - * - * @param {string} environment - The environment name to check - * @returns {boolean} True if the environment is considered production - */ const isProductionEnvironment = (environment) => { if (!environment || typeof environment !== 'string') { return false; @@ -16,12 +9,6 @@ const isProductionEnvironment = (environment) => { return lowerEnv.includes('prod') }; -/** - * Prompts the user to confirm execution on a production environment. - * - * @param {string} environment - The environment name - * @returns {Promise} True if the user confirmed, false otherwise - */ const confirmProductionExecution = async (environment) => { logger.Warn(`WARNING: You are executing on a production environment: ${environment}`); logger.Warn('This could potentially modify production data or cause unintended side effects.'); @@ -37,7 +24,4 @@ const confirmProductionExecution = async (environment) => { return response.confirmed; }; -module.exports = { - isProductionEnvironment, - confirmProductionExecution -}; +export { isProductionEnvironment, confirmProductionExecution }; diff --git a/lib/proxy.js b/lib/proxy.js index 4aa997d5..22f2a871 100644 --- a/lib/proxy.js +++ b/lib/proxy.js @@ -1,9 +1,7 @@ -const requestPromise = require('request-promise'); - -const { apiRequest } = require('./apiRequest'); -const logger = require('./logger'); -const version = require('../package.json').version; -const Portal = require('./portal'); +import { apiRequest } from './apiRequest.js'; +import logger from './logger.js'; +import pkg from '../package.json' with { type: "json" }; +const version = pkg.version; class Gateway { constructor({ url, token, email }, client) { @@ -12,41 +10,35 @@ class Gateway { this.private_api_url = `${url}/api/private`; this.client = client; - const headers = { + this.defaultHeaders = { Authorization: `Token ${token}`, InstanceDomain: url, 'User-Agent': `pos-cli/${version}`, From: email }; - const censored = Object.assign({}, headers, { Authorization: 'Token: ' }); + const censored = Object.assign({}, this.defaultHeaders, { Authorization: 'Token: ' }); logger.Debug(`Request headers: ${JSON.stringify(censored, null, 2)}`); - - this.authorizedRequest = requestPromise.defaults({ headers }); - } - - apiRequest({ method = 'GET', uri, formData, json = true, forever }) { - return apiRequest({method: method, uri: uri, formData: formData, json: json, forever: forever, request: this.authorizedRequest }); } cloneInstanceStatus(id) { - return this.apiRequest({ method: 'GET', uri: `${this.api_url}/instance_clone_imports/${id}` }); + return apiRequest({ method: 'GET', uri: `${this.api_url}/instance_clone_imports/${id}`, headers: this.defaultHeaders }); } cloneInstanceInit(formData = {}) { - return this.apiRequest({ method: 'POST', uri: `${this.api_url}/instance_clone_imports`, json: formData }); + return apiRequest({ method: 'POST', uri: `${this.api_url}/instance_clone_imports`, json: formData, headers: this.defaultHeaders }); } cloneInstanceExport(formData = {}) { - return this.apiRequest({ method: 'POST', uri: `${this.api_url}/instance_clone_exports`, json: formData }); + return apiRequest({ method: 'POST', uri: `${this.api_url}/instance_clone_exports`, json: formData, headers: this.defaultHeaders }); } appExportStart(formData = {}) { - return this.apiRequest({ method: 'POST', uri: `${this.api_url}/marketplace_releases/backup`, formData }); + return apiRequest({ method: 'POST', uri: `${this.api_url}/marketplace_releases/backup`, formData, headers: this.defaultHeaders }); } appExportStatus(id) { - return this.apiRequest({ uri: `${this.api_url}/marketplace_releases/${id}` }); + return apiRequest({ uri: `${this.api_url}/marketplace_releases/${id}`, headers: this.defaultHeaders }); } dataExportStart(export_internal, csv_import = false) { @@ -55,7 +47,7 @@ class Gateway { if (csv_import) { uri += '?csv_export=true'; } - return this.apiRequest({ method: 'POST', uri, formData }); + return apiRequest({ method: 'POST', uri, formData, headers: this.defaultHeaders }); } dataExportStatus(id, csv_import = false) { @@ -63,11 +55,11 @@ class Gateway { if (csv_import) { uri += '?csv_export=true'; } - return this.apiRequest({ uri }); + return apiRequest({ uri, headers: this.defaultHeaders }); } dataImportStart(formData) { - return this.apiRequest({ method: 'POST', uri: `${this.api_url}/imports`, json: formData }); + return apiRequest({ method: 'POST', uri: `${this.api_url}/imports`, json: formData, headers: this.defaultHeaders }); } dataImportStatus(id, csv_import = false) { @@ -75,27 +67,27 @@ class Gateway { if (csv_import) { uri += '?csv_import=true'; } - return this.apiRequest({ uri }); + return apiRequest({ uri, headers: this.defaultHeaders }); } dataUpdate(formData) { - return this.apiRequest({ method: 'POST', uri: `${this.api_url}/data_updates`, formData }); + return apiRequest({ method: 'POST', uri: `${this.api_url}/data_updates`, formData, headers: this.defaultHeaders }); } dataClean(confirmation, include_schema) { - return this.apiRequest({ method: 'POST', uri: `${this.api_url}/data_clean`, json: { confirmation, include_schema } }); + return apiRequest({ method: 'POST', uri: `${this.api_url}/data_clean`, json: { confirmation, include_schema }, headers: this.defaultHeaders }); } dataCleanStatus(id) { - return this.apiRequest({ method: 'GET', uri: `${this.api_url}/data_clean/${id}` }); + return apiRequest({ method: 'GET', uri: `${this.api_url}/data_clean/${id}`, headers: this.defaultHeaders }); } ping() { - return this.apiRequest({ uri: `${this.api_url}/logs` }); + return apiRequest({ uri: `${this.api_url}/logs`, headers: this.defaultHeaders }); } logs(json) { - return this.apiRequest({ uri: `${this.api_url}/logs?last_id=${json.lastId}`, json, forever: true }); + return apiRequest({ uri: `${this.api_url}/logs?last_id=${json.lastId}`, json: true, forever: true, headers: this.defaultHeaders }); } logsv2(params) { @@ -111,74 +103,76 @@ class Gateway { } getInstance() { - return this.apiRequest({ uri: `${this.api_url}/instance` }); + return apiRequest({ uri: `${this.api_url}/instance`, headers: this.defaultHeaders }); } getStatus(id) { - return this.apiRequest({ uri: `${this.api_url}/marketplace_releases/${id}`, forever: true }); + return apiRequest({ uri: `${this.api_url}/marketplace_releases/${id}`, forever: true, headers: this.defaultHeaders }); } graph(json) { - return this.apiRequest({ method: 'POST', uri: `${this.url}/api/graph`, json, forever: true }); + return apiRequest({ method: 'POST', uri: `${this.url}/api/graph`, json, forever: true, headers: this.defaultHeaders }); } liquid(json) { - return this.apiRequest({ method: 'POST', uri: `${this.api_url}/liquid_exec`, json, forever: true }); + return apiRequest({ method: 'POST', uri: `${this.api_url}/liquid_exec`, json, forever: true, headers: this.defaultHeaders }); } test(name) { - return this.apiRequest({ uri: `${this.url}/_tests/run.js?name=${name}` }); + return apiRequest({ uri: `${this.url}/_tests/run.js?name=${name}`, headers: this.defaultHeaders }); } testRunAsync() { - return this.apiRequest({ uri: `${this.url}/_tests/run_async` }); + return apiRequest({ uri: `${this.url}/_tests/run_async`, headers: this.defaultHeaders }); } listModules() { - return this.apiRequest({ uri: `${this.api_url}/installed_modules` }); + return apiRequest({ uri: `${this.api_url}/installed_modules`, headers: this.defaultHeaders }); } removeModule(formData) { - return this.apiRequest({ method: 'DELETE', uri: `${this.api_url}/installed_modules`, formData }); + return apiRequest({ method: 'DELETE', uri: `${this.api_url}/installed_modules`, formData, headers: this.defaultHeaders }); } listMigrations() { - return this.apiRequest({ uri: `${this.api_url}/migrations` }); + return apiRequest({ uri: `${this.api_url}/migrations`, headers: this.defaultHeaders }); } generateMigration(formData) { - return this.apiRequest({ method: 'POST', uri: `${this.api_url}/migrations`, formData }); + return apiRequest({ method: 'POST', uri: `${this.api_url}/migrations`, formData, headers: this.defaultHeaders }); } runMigration(formData) { - return this.apiRequest({ method: 'POST', uri: `${this.api_url}/migrations/run`, formData }); + return apiRequest({ method: 'POST', uri: `${this.api_url}/migrations/run`, formData, headers: this.defaultHeaders }); } sendManifest(manifest) { - return this.apiRequest({ method: 'POST', uri: `${this.api_url}/assets_manifest`, json: { manifest } }); + return apiRequest({ method: 'POST', uri: `${this.api_url}/assets_manifest`, json: { manifest }, headers: this.defaultHeaders }); } sync(formData) { - return this.apiRequest({ + return apiRequest({ method: 'PUT', uri: `${this.api_url}/marketplace_releases/sync`, formData, - forever: true + forever: true, + headers: this.defaultHeaders }); } delete(formData) { - return this.apiRequest({ + return apiRequest({ method: 'DELETE', uri: `${this.api_url}/marketplace_releases/sync`, formData, - forever: true + forever: true, + headers: this.defaultHeaders }); } push(formData) { - return this.apiRequest({ method: 'POST', uri: `${this.api_url}/marketplace_releases`, formData }); + return apiRequest({ method: 'POST', uri: `${this.api_url}/marketplace_releases`, formData, headers: this.defaultHeaders }); } } -module.exports = Gateway; +export default Gateway; diff --git a/lib/push.js b/lib/push.js index 65e55bf3..cb96e81e 100644 --- a/lib/push.js +++ b/lib/push.js @@ -1,15 +1,15 @@ -const fs = require('fs'), - { performance } = require('perf_hooks'); +import fs from 'fs'; +import { performance } from 'perf_hooks'; -const logger = require('../lib/logger'), - report = require('../lib/logger/report'), - Gateway = require('../lib/proxy'), - duration = require('../lib/duration'); +import logger from './logger.js'; +import report from './logger/report.js'; +import Gateway from '../lib/proxy.js'; +import duration from '../lib/duration.js'; let gateway; const getDeploymentStatus = ({ id }) => { return new Promise((resolve, reject) => { - (getStatus = () => { + let getStatus = () => { gateway .getStatus(id) .then(response => { @@ -30,7 +30,8 @@ const getDeploymentStatus = ({ id }) => { report('getStatus'); reject(false); }); - })(); + }; + getStatus(); }); }; @@ -60,6 +61,4 @@ const push = async env => { }) }; -module.exports = { - push: push -}; +export { push }; diff --git a/lib/s3UploadFile.js b/lib/s3UploadFile.js index a5a6a326..aa327651 100644 --- a/lib/s3UploadFile.js +++ b/lib/s3UploadFile.js @@ -1,56 +1,47 @@ -const fs = require('fs'), - request = require('request'), - mime = require('mime'); - -const uploadFile = (fileName, s3Url) => { - var stats = fs.statSync(fileName); - return new Promise((resolve, reject) => { - fs.createReadStream(fileName).pipe( - request - .put({ - url: s3Url, - headers: { - 'Content-Length': stats['size'] - } - }) - .on('error', e => reject(e)) - .on('response', response => { - if (response.statusCode >= 200 && response.statusCode < 300) { - resolve(s3Url); - } else { - reject(response.statusCode); - } - }) - ); +import fs from 'fs'; +import mime from 'mime'; + +const uploadFile = async (fileName, s3Url) => { + const stats = fs.statSync(fileName); + const fileBuffer = fs.readFileSync(fileName); + + const response = await fetch(s3Url, { + method: 'PUT', + headers: { + 'Content-Length': stats['size'].toString() + }, + body: fileBuffer }); + + if (!response.ok) { + throw new Error(`Upload failed with status ${response.status}`); + } + + return s3Url; }; -const uploadFileFormData = (filePath, data) => { - const formData = {}; +const uploadFileFormData = async (filePath, data) => { + const formData = new FormData(); + Object.entries(data.fields).forEach(([k, v]) => { - formData[k] = v; + formData.append(k, v); }); - formData['Content-Type'] = mime.getType(filePath); - formData['file'] = fs.createReadStream(filePath); - - return new Promise((resolve, reject) => { - request - .post({ - url: data.url, - formData: formData - }) - .on('error', e => reject(e)) - .on('response', response => { - if (response.statusCode >= 200 && response.statusCode < 300) { - resolve(true); - } else { - reject(response.statusCode); - } - }); + + formData.append('Content-Type', mime.getType(filePath)); + + const fileBuffer = fs.readFileSync(filePath); + formData.append('file', new Blob([fileBuffer]), filePath.split('/').pop()); + + const response = await fetch(data.url, { + method: 'POST', + body: formData }); -}; -module.exports = { - uploadFile: uploadFile, - uploadFileFormData: uploadFileFormData + if (!response.ok) { + throw new Error(`Upload failed with status ${response.status}`); + } + + return true; }; + +export { uploadFile, uploadFileFormData }; diff --git a/lib/server.js b/lib/server.js index cb604f04..657ad1e1 100644 --- a/lib/server.js +++ b/lib/server.js @@ -1,12 +1,19 @@ -const path = require('path'); -const express = require('express'); -const bodyParser = require('body-parser'); -const multer = require('multer'); +import path from 'path'; +import express from 'express'; +import bodyParser from 'body-parser'; +import multer from 'multer'; +import { fileURLToPath } from 'url'; +import pkg from '../package.json' with { type: "json" }; + +const __filename = fileURLToPath(import.meta.url); +const __dirname = path.dirname(__filename); + +const version = pkg.version; + const upload = multer(); -const package = require('../package.json') -const Gateway = require('../lib/proxy'), - logger = require('../lib/logger'); +import Gateway from '../lib/proxy.js'; +import logger from '../lib/logger.js'; const start = (env, client) => { const port = env.PORT || 3333; @@ -34,7 +41,6 @@ const start = (env, client) => { }; app.use(bodyParser.json()); - // Enable cors for Editor in Dev mode app.use((req, res, next) => { res.header("Access-Control-Allow-Origin", "*"); res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept"); @@ -53,9 +59,8 @@ const start = (env, client) => { legacy.use('/', express.static(path.resolve(__dirname, '..', 'gui', 'admin', 'dist'))); - // INFO const info = (req, res) => { - return res.send(JSON.stringify({ MPKIT_URL: env.MARKETPLACE_URL, version: package.version })); + return res.send(JSON.stringify({ MPKIT_URL: env.MARKETPLACE_URL, version: version })); }; app.get('/info', info); @@ -85,17 +90,14 @@ const start = (env, client) => { .catch(error => { logger.Debug(error); res.send(error) }); }); - // catch 404s and redirect to editor - app.get('/*', (req, res) => { + app.get('/*splat', (req, res) => { res.sendFile(path.resolve(__dirname, '..', 'gui', 'next', 'build', 'index.html')); }); - legacy.get('/*', (req, res) => { + legacy.get('/*splat', (req, res) => { res.sendFile(path.resolve(__dirname, '..', 'gui', 'admin', 'dist', '__app.html')); }); - - // SYNC app.put( '/api/app_builder/marketplace_releases/sync', upload.fields([{ name: 'path' }, { name: 'marketplace_builder_file_body' }]), @@ -140,6 +142,4 @@ const start = (env, client) => { }); }; -module.exports = { - start: start -}; +export { start }; diff --git a/lib/settings.js b/lib/settings.js index e9a37d3c..20d29cc4 100644 --- a/lib/settings.js +++ b/lib/settings.js @@ -1,9 +1,9 @@ -const fs = require('fs'); +import fs from 'fs'; -const logger = require('./logger'); -const files = require('./files'); -const dir = require('./directories'); -const { moduleConfigFileName } = require('./modules'); +import logger from './logger.js'; +import files from './files.js'; +import dir from './directories.js'; +import { moduleConfigFileName } from './modules.js'; const loadSettingsFileForModule = module => { const templatePath = `${dir.MODULES}/${module}/${moduleConfigFileName}`; @@ -34,4 +34,4 @@ const settingsFromEnv = () => { const settingsFromDotPos = (env) => files.getConfig()[env]; -module.exports = { fetchSettings, loadSettingsFileForModule, settingsFromDotPos }; +export { fetchSettings, loadSettingsFileForModule, settingsFromDotPos }; diff --git a/lib/shouldBeSynced.js b/lib/shouldBeSynced.js index abfcf6b8..b0aea977 100644 --- a/lib/shouldBeSynced.js +++ b/lib/shouldBeSynced.js @@ -1,16 +1,15 @@ -const fs = require('fs'); -const path = require('path'); -const ignore = require('ignore'); +import fs from 'fs'; +import path from 'path'; +import ignore from 'ignore'; -const watchFilesExtensions = require('./watch-files-extensions'), - files = require('./files'), - logger = require('./logger'), - isValidFilePath = require('./utils/valid-file-path'); -const { moduleConfigFileName } = require('./modules'); +import watchFilesExtensions from './watch-files-extensions.js'; +import files from './files.js'; +import logger from './logger.js'; +import isValidFilePath from './utils/valid-file-path.js'; +import { moduleConfigFileName } from './modules.js'; const win = path.sep === path.win32.sep; -// path.extname returns ext with . ~_~ const ext = filePath => filePath.split('.').pop(); const isEmpty = filePath => { @@ -22,8 +21,6 @@ const isEmpty = filePath => { .toString() .trim().length === 0; } catch (err) { - // Ignore missing files, no need to check if they are empty. - // This can happen on sync if the file got deleted. if (err.code === 'ENOENT') { return false; } @@ -50,17 +47,14 @@ const isNotEmptyYML = filePath => { }; const isValidModuleFile = filePath => { - // In modules/* accept only files from public and private folders, reject rest if (filePath.startsWith('modules')) { - // Ignore template values, explicit test, would work without it const reTemplate = win ? new RegExp(`^modules\\[^\\]+\\${moduleConfigFileName}`) : new RegExp(`^modules/[^/]+/${moduleConfigFileName}`); if(reTemplate.test(filePath)) return false; - // TODO: Use glob to avoid if const re = win ? /^modules\\.*\\(public|private)/ : /^modules\/.*\/(public|private)/; return re.test(filePath); } else { - return true; // If its not file in modules/, accept + return true; } }; @@ -79,7 +73,7 @@ const hasNoInvalidChars = filePath => { return true; }; -module.exports = (filePath, ignoreList) => { +const shouldBeSynced = (filePath, ignoreList) => { return ( isNotOnIgnoreList(filePath, ignoreList) && isValidExtension(filePath) && @@ -88,3 +82,5 @@ module.exports = (filePath, ignoreList) => { hasNoInvalidChars(filePath) ); }; + +export default shouldBeSynced; diff --git a/lib/swagger-client.js b/lib/swagger-client.js index a087b08a..723ace67 100644 --- a/lib/swagger-client.js +++ b/lib/swagger-client.js @@ -1,13 +1,15 @@ -const fetchAuthData = require('../lib/settings').fetchSettings, - path = require('path'), - Gateway = require('../lib/proxy'), - logger = require('../lib/logger'), - { apiRequest } = require('./apiRequest'), - api = require('./logsv2/http'), - fs = require('fs'); - -const colors = require('colors'); - +import { fetchSettings } from '../lib/settings.js'; +import path from 'path'; +import { fileURLToPath } from 'url'; +import Gateway from '../lib/proxy.js'; +import logger from '../lib/logger.js'; +import { apiRequest } from './apiRequest.js'; +import api from './logsv2/http.js'; +import fs from 'fs'; +import colors from 'colors'; + +const __filename = fileURLToPath(import.meta.url); +const __dirname = path.dirname(__filename); class APIs { constructor(ctx) { @@ -21,21 +23,18 @@ class Alerts { this.ctx = ctx; } - // /api/{org_id}/alerts async ListAlerts({org_id}, {securities}) { return await api.get(this.ctx.url + `/api/${org_id}/alerts`, { securities: securities }); } - // /api/{org_id}/{stream_name}/alerts/{alert_name}/trigger async TriggerAlert({org_id, stream_name, alert_name}, {requestBody, securities}) { return await api.put(this.ctx.url + `/api/${org_id}/${stream_name}/alerts/${alert_name}/trigger`, { securities: securities, body: requestBody }); } - // /api/{org_id}/{stream_name}/alerts/{alert_name} async SaveAlert({org_id, stream_name, alert_name}, {requestBody, securities}) { console.log(requestBody); return await api.post(this.ctx.url + `/api/${org_id}/${stream_name}/alerts/${alert_name}`, { @@ -44,7 +43,6 @@ class Alerts { }); } - // /api/{org_id}/alerts/templates/{template_name} async CreateTemplate({org_id, template_name}, {requestBody, securities}) { return await api.post(this.ctx.url + `/api/${org_id}/alerts/templates/${template_name}`, { securities: securities, @@ -52,7 +50,6 @@ class Alerts { }); } - // /api/{org_id}/alerts/destinations/{destination_name} async CreateDestination({org_id, destination_name}, {requestBody, securities}) { return await api.post(this.ctx.url + `/api/${org_id}/alerts/destinations/${destination_name}`, { securities: securities, @@ -97,7 +94,7 @@ class SwaggerProxy { const client = new LogClient({url: LOGS_PROXY_URL}); - const authData = fetchAuthData(environment); + const authData = fetchSettings(environment); const securities = { authorized: { Authorization: authData.token }} const instance = await new Gateway(authData).getInstance() instance.url = authData.url @@ -153,8 +150,6 @@ class SwaggerProxy { async createAlert(program){ const alert = alerts.buildAlert(program) - // console.log(this.client.apis.Alerts) - const template = await this.createTemplate(program) logger.Debug(template.body) const destination = await this.createDestination(program) @@ -186,7 +181,7 @@ class SwaggerProxy { } } -alerts = { +const alerts = { templates: { slack({name, operator, keyword, column, channel, instance}) { const template = JSON.parse(fs.readFileSync(path.join(__dirname, './openobserve/alerts/slack.json'))); @@ -232,7 +227,7 @@ alerts = { } } -search = { +const search = { buildQuery({from, size, start_time, end_time, sql}) { query = { query: { @@ -282,4 +277,4 @@ search = { }, } -module.exports = { SwaggerProxy, search }; +export { SwaggerProxy, search }; diff --git a/lib/templates.js b/lib/templates.js index 69a1a43b..028877a8 100644 --- a/lib/templates.js +++ b/lib/templates.js @@ -1,25 +1,13 @@ -const fs = require('fs'), - path = require('path'); +import fs from 'fs'; +import path from 'path'; -const mustache = require('mustache'); +import mustache from 'mustache'; -const logger = require('./logger'); +import logger from './logger.js'; const tags = ['<%=', '=%>']; const allowedTemplateExtentions = ['.css', '.js', '.liquid', '.yml', '.xml', '.json', '.svg', '.graphql', '.html']; -/** - * This function will replace tags with values from template data. - * Example: if tags are <%= and =%> and we have code like this: - * - * --- - * slug: <%= page_url =%> - * --- - * - * This function will replace `page_url` with value from templateData - * hash or it will **not** raise an error if the value is missing. - * @param {string} path - path to the file which will be processed. - **/ const fillInTemplateValues = (filePath, templateData) => { if (fs.existsSync(filePath) && qualifedForTemplateProcessing(filePath) && hasTemplateValues(templateData)) { const fileBody = fs.readFileSync(filePath, 'utf8'); @@ -47,6 +35,4 @@ const hasTemplateValues = templateData => { } }; -module.exports = { - fillInTemplateValues: fillInTemplateValues -}; +export { fillInTemplateValues }; diff --git a/lib/test-runner/formatters.js b/lib/test-runner/formatters.js index a3b8b54b..4cd123b7 100644 --- a/lib/test-runner/formatters.js +++ b/lib/test-runner/formatters.js @@ -1,5 +1,5 @@ -const chalk = require('chalk'); -const logger = require('../logger'); +import chalk from 'chalk'; +import logger from '../logger.js'; const formatDuration = (ms) => { if (ms < 1000) return `${ms}ms`; @@ -15,26 +15,17 @@ const formatTestLog = (logRow, isTestLog) => { const fullMessage = typeof message === 'string' ? message : JSON.stringify(message); const cleanMessage = fullMessage.replace(/\n$/, ''); - // Check if this message contains a path to a test file const hasTestPath = /app\/lib\/test\/|modules\/.*\/test\/|\.liquid/.test(cleanMessage); if (isTestLog && hasTestPath) { - // Test log with path - highlight it (new test indicator) return chalk.cyan.bold(`▶ ${cleanMessage}\n`); } else if (isTestLog) { - // Test log without path - normal display return chalk.white(` ${cleanMessage}\n`); } else { - // Debug log (type != test_name) - dim display return chalk.white(` ${logType}: ${cleanMessage}\n`); } }; -/** - * Transform API response format to internal format for printTestResults - * API returns: { success, total_tests, total_assertions, total_errors, duration_ms, tests: [{name, success, assertions, errors}] } - * Internal format: { passed, failed, total, tests: [{name, status, passed, error}], duration } - */ const transformTestResponse = (response) => { const total = response.total_tests || response.total || 0; const totalErrors = response.total_errors || 0; @@ -62,7 +53,6 @@ const transformTestResponse = (response) => { assertions: test.assertions }; - // Handle errors - could be object with error details or array if (test.errors) { if (Array.isArray(test.errors) && test.errors.length > 0) { testItem.errors = test.errors; @@ -107,7 +97,6 @@ const printTestResults = (results, duration) => { logger.Info('─'.repeat(60), { hideTimestamp: true }); } - // Print summary const totalTests = total || (passed + failed); const summary = []; if (passed > 0) summary.push(`${passed} passed`); @@ -127,9 +116,4 @@ const printTestResults = (results, duration) => { return failed === 0; }; -module.exports = { - formatDuration, - formatTestLog, - transformTestResponse, - printTestResults -}; +export { formatDuration, formatTestLog, transformTestResponse, printTestResults }; diff --git a/lib/test-runner/index.js b/lib/test-runner/index.js index 6ce67b3f..c67dd518 100644 --- a/lib/test-runner/index.js +++ b/lib/test-runner/index.js @@ -1,11 +1,10 @@ -const Gateway = require('../proxy'); -const ServerError = require('../ServerError'); -const logger = require('../logger'); -const { TestLogStream } = require('./logStream'); -const { formatTestLog, transformTestResponse, printTestResults } = require('./formatters'); +import Gateway from '../proxy.js'; +import ServerError from '../ServerError.js'; +import logger from '../logger.js'; +import { TestLogStream } from './logStream.js'; +import { formatTestLog, transformTestResponse, printTestResults } from './formatters.js'; -// Constants -const ASYNC_TEST_TIMEOUT_MS = 180000; // 3 minutes for async tests +const ASYNC_TEST_TIMEOUT_MS = 180000; const runSingleTest = async (gateway, name) => { const startTime = Date.now(); @@ -19,24 +18,19 @@ const runSingleTest = async (gateway, name) => { return false; } - // Handle error response (not test failure, but actual error) if (response.error && !response.tests) { logger.Error(`Test error: ${response.error}`, { exit: false }); return false; } - // Handle the JSON response from /_tests/run.js if (typeof response === 'object') { const transformedResults = transformTestResponse(response); return printTestResults(transformedResults, transformedResults.duration || duration); } - // Fallback for unexpected response format logger.Print(JSON.stringify(response, null, 2)); return true; } catch (error) { - // Handle HTTP 500 errors that contain valid test results - // The test endpoint returns 500 when tests fail, but includes results in the body const errorMessage = error.message || ''; const jsonMatch = errorMessage.match(/^(\d+)\s*-\s*(\{.+\})$/); @@ -48,11 +42,9 @@ const runSingleTest = async (gateway, name) => { return printTestResults(transformedResults, transformedResults.duration); } } catch (parseError) { - // Fall through to generic error handling } } - // Use ServerError for network errors if (ServerError.isNetworkError(error)) { ServerError.handler(error); return false; @@ -78,7 +70,6 @@ const runAllTests = async (gateway, authData) => { resolve(result); }; - // Create stream first so we don't miss any logs stream = new TestLogStream(authData, ASYNC_TEST_TIMEOUT_MS, null); stream.on('testStarted', () => { @@ -89,17 +80,13 @@ const runAllTests = async (gateway, authData) => { const message = logRow.message || ''; const logType = logRow.error_type || ''; const fullMessage = typeof message === 'string' ? message : JSON.stringify(message); - // Use stream.testName to handle logs that arrive before testRunAsync completes const summaryType = stream.testName ? `${stream.testName} SUMMARY` : null; - // Don't show JSON summary messages as logs - they will be processed as completion signals - // Only skip if error_type matches expected summary type to avoid filtering user logs const isSummaryLog = summaryType && logType === summaryType && stream.isValidTestSummaryJson(fullMessage); if (isSummaryLog) { return; } - // Format and display the log with appropriate highlighting const formattedLog = formatTestLog(logRow, isTestLog); logger.Print(formattedLog); }); @@ -115,7 +102,6 @@ const runAllTests = async (gateway, authData) => { finish(false); }); - // Start listening for logs before starting the test stream.start(); gateway.testRunAsync() @@ -126,7 +112,6 @@ const runAllTests = async (gateway, authData) => { return; } - // Handle error response from testRunAsync if (testRunResponse.error) { logger.Error(`Test error: ${testRunResponse.error}`, { exit: false }); finish(false); @@ -137,11 +122,9 @@ const runAllTests = async (gateway, authData) => { logger.Debug(`Test run started with test_name: ${testName}`); - // Update stream with the test name for filtering stream.testName = testName; }) .catch(error => { - // Use ServerError for network errors if (ServerError.isNetworkError(error)) { ServerError.handler(error); } else { @@ -180,7 +163,6 @@ const run = async (authData, environment, testName) => { logger.Info(`Running tests on: ${authData.url}`, { hideTimestamp: true }); - // First check if tests module is installed const hasModule = await checkTestsModule(gateway, environment); if (!hasModule) { return false; @@ -193,10 +175,4 @@ const run = async (authData, environment, testName) => { } }; -module.exports = { - run, - runSingleTest, - runAllTests, - checkTestsModule, - ASYNC_TEST_TIMEOUT_MS -}; +export { run, runSingleTest, runAllTests, checkTestsModule, ASYNC_TEST_TIMEOUT_MS }; diff --git a/lib/test-runner/logStream.js b/lib/test-runner/logStream.js index 42010ca9..0ad222a3 100644 --- a/lib/test-runner/logStream.js +++ b/lib/test-runner/logStream.js @@ -1,9 +1,8 @@ -const EventEmitter = require('events'); -const Gateway = require('../proxy'); -const logger = require('../logger'); -const { transformTestResponse } = require('./formatters'); +import EventEmitter from 'events'; +import Gateway from '../proxy.js'; +import logger from '../logger.js'; +import { transformTestResponse } from './formatters.js'; -// Constants const DEFAULT_TIMEOUT_MS = 30000; const POLL_INTERVAL_MS = 2000; @@ -84,21 +83,16 @@ class TestLogStream extends EventEmitter { const fullMessage = typeof message === 'string' ? message : JSON.stringify(message); const summaryType = this.testName ? `${this.testName} SUMMARY` : null; - // Check if this is a test path log const cleanMessage = fullMessage.replace(/\n$/, ''); const hasTestPath = /app\/lib\/test\/|modules\/.*\/test\/|\.liquid/.test(cleanMessage); - // Only process logs that are related to our test run - // If we have a testName, filter by it if (this.testName) { - // Check for test start - look for "Starting unit tests" or "Starting test run" with matching type if (logType === this.testName && (fullMessage.includes('Starting unit tests') || fullMessage.includes('Starting test run')) && !this.testStarted) { this.testStarted = true; this.emit('testStarted'); return; } - // Check for test completion - look for log with type " SUMMARY" if (!this.completed && logType === summaryType && this.isValidTestSummaryJson(fullMessage)) { const testResults = this.parseJsonSummary(fullMessage); if (testResults) { @@ -109,26 +103,21 @@ class TestLogStream extends EventEmitter { } } - // Show all logs after test started and before completion (including user logs) if (this.testStarted && !this.completed) { this.emit('testLog', row, logType === this.testName); } - // Handle case where test framework doesn't emit "Starting unit tests" log - // If we see a test path log with matching error_type, treat it as test start if (!this.testStarted && !this.completed && logType === this.testName && hasTestPath) { this.testStarted = true; this.emit('testStarted'); this.emit('testLog', row, true); } } else { - // Legacy behavior when testName is not available if (fullMessage.includes('Starting unit tests') && !this.testStarted) { this.testStarted = true; this.emit('testStarted'); } - // Check for test completion - look for the JSON summary format (tests module 1.1.1+) if (!this.completed && this.isValidTestSummaryJson(fullMessage)) { const testResults = this.parseJsonSummary(fullMessage); if (testResults) { @@ -139,7 +128,6 @@ class TestLogStream extends EventEmitter { } } - // Show all logs after test started and before completion (including user logs) if (this.testStarted && !this.completed) { this.emit('testLog', row, true); } @@ -157,8 +145,4 @@ class TestLogStream extends EventEmitter { } } -module.exports = { - TestLogStream, - DEFAULT_TIMEOUT_MS, - POLL_INTERVAL_MS -}; +export { TestLogStream, DEFAULT_TIMEOUT_MS, POLL_INTERVAL_MS }; diff --git a/lib/unzip.js b/lib/unzip.js index 09bb42d0..a484e090 100644 --- a/lib/unzip.js +++ b/lib/unzip.js @@ -1,11 +1,9 @@ -const fs = require('fs'); -const unzipper = require('unzipper'); +import fs from 'fs'; +import unzipper from 'unzipper'; async function unzip(filePath, outputFilePath) { return unzipper.Open.file(filePath) .then(d => d.extract({ path: outputFilePath })); } -module.exports = { - unzip: unzip -}; +export { unzip }; diff --git a/lib/utils/create-directory.js b/lib/utils/create-directory.js index c7441813..f3f9e298 100644 --- a/lib/utils/create-directory.js +++ b/lib/utils/create-directory.js @@ -1,6 +1,6 @@ -const fs = require('fs'); -const rl = require('readline'); -const logger = require('../logger'); +import fs from 'fs'; +import rl from 'readline'; +import logger from '../logger.js'; const createDirectory = (directory) => { return new Promise((resolve, reject) => { @@ -23,6 +23,4 @@ const createDirectory = (directory) => { }); }; -module.exports = { - createDirectory: createDirectory -}; +export { createDirectory }; diff --git a/lib/utils/password.js b/lib/utils/password.js index e0f719ea..e83602a6 100644 --- a/lib/utils/password.js +++ b/lib/utils/password.js @@ -1,5 +1,5 @@ -const rl = require('readline'); -const logger = require('../logger'); +import rl from 'readline'; +import logger from '../logger.js'; const readPassword = () => { return new Promise((resolve, reject) => { @@ -17,6 +17,4 @@ const readPassword = () => { }); }; -module.exports = { - readPassword: readPassword -}; +export { readPassword }; diff --git a/lib/utils/valid-file-path.js b/lib/utils/valid-file-path.js index 12778bf2..512acf4c 100644 --- a/lib/utils/valid-file-path.js +++ b/lib/utils/valid-file-path.js @@ -1,21 +1,23 @@ const validCharacters = new RegExp([ - '[^', // Not the following characters: - '\\w', // - Word characters - '\\s', // - Whitespace - '\\-', // - Dash + '[^', + '\\w', + '\\s', + '\\-', '_', '~', '@', '%', - '\+', // - Plus - '\\.', // - Dot - '\\/', // - Forward slash - '\\\\', // - Backward slash - '\\(', // - Open parenthesis - '\\)', // - Close parenthesis + '\\+', + '\\.', + '\\/', + '\\\\', + '\\(', + '\\)', "'", '&', ']' ].join('')); -module.exports = str => !validCharacters.test(str); +const isValidFilePath = str => !validCharacters.test(str); + +export default isValidFilePath; diff --git a/lib/validators/directoryEmpty.js b/lib/validators/directoryEmpty.js index 011422de..8085bee5 100644 --- a/lib/validators/directoryEmpty.js +++ b/lib/validators/directoryEmpty.js @@ -1,8 +1,8 @@ -const logger = require('../logger'); -const shell = require('shelljs'); +import logger from '../logger.js'; +import shell from 'shelljs'; const noop = () => {}; -module.exports = ({ path, message = 'Directory is empty.', fail = noop }) => { +const directoryEmpty = ({ path, message = 'Directory is empty.', fail = noop }) => { const directoryEmpty = shell.ls(path).length == 0; if (directoryEmpty) { @@ -10,3 +10,5 @@ module.exports = ({ path, message = 'Directory is empty.', fail = noop }) => { logger.Error(message, { hideTimestamp: true }); } }; + +export default directoryEmpty; diff --git a/lib/validators/directoryExists.js b/lib/validators/directoryExists.js index 59192436..12cc15d4 100644 --- a/lib/validators/directoryExists.js +++ b/lib/validators/directoryExists.js @@ -1,8 +1,8 @@ -const logger = require('../logger'); -const fs = require('fs'); +import logger from '../logger.js'; +import fs from 'fs'; const noop = () => {}; -module.exports = ({ path, message = "Directory doesn't exist.", fail = noop }) => { +const directoryExists = ({ path, message = "Directory doesn't exist.", fail = noop }) => { const directoryExists = fs.existsSync(path); if (!directoryExists) { @@ -10,3 +10,5 @@ module.exports = ({ path, message = "Directory doesn't exist.", fail = noop }) = logger.Error(message, { hideTimestamp: true }); } }; + +export default directoryExists; diff --git a/lib/validators/email.js b/lib/validators/email.js index fea8248c..c9da6a3b 100644 --- a/lib/validators/email.js +++ b/lib/validators/email.js @@ -1,8 +1,10 @@ -const logger = require('../logger'); -const emailValidator = require('email-validator'); +import logger from '../logger.js'; +import emailValidator from 'email-validator'; -module.exports = email => { +const email = email => { if (!emailValidator.validate(email)) { logger.Error('Please provide valid email', { hideTimestamp: true }); } }; + +export default email; diff --git a/lib/validators/existence.js b/lib/validators/existence.js index 38920cfe..f9c6c48a 100644 --- a/lib/validators/existence.js +++ b/lib/validators/existence.js @@ -1,9 +1,11 @@ -const logger = require('../logger'); +import logger from '../logger.js'; const noop = () => {}; -module.exports = ({ argumentName = 'all required arguments', argumentValue, fail = noop }) => { +const existence = ({ argumentName = 'all required arguments', argumentValue, fail = noop }) => { if (typeof argumentValue === 'undefined') { fail(); logger.Error(`Please provide ${argumentName}`, { hideTimestamp: true }); } }; + +export default existence; diff --git a/lib/validators/index.js b/lib/validators/index.js index 197cefe4..abb89d97 100644 --- a/lib/validators/index.js +++ b/lib/validators/index.js @@ -1,13 +1,7 @@ -const existence = require('./existence'); -const url = require('./url'); -const email = require('./email'); -const directoryExists = require('./directoryExists'); -const directoryEmpty = require('./directoryEmpty'); +import existence from './existence.js'; +import url from './url.js'; +import email from './email.js'; +import directoryExists from './directoryExists.js'; +import directoryEmpty from './directoryEmpty.js'; -module.exports = { - existence, - url, - email, - directoryExists, - directoryEmpty -}; +export { existence, url, email, directoryExists, directoryEmpty }; diff --git a/lib/validators/url.js b/lib/validators/url.js index 01579c37..129b1b7a 100644 --- a/lib/validators/url.js +++ b/lib/validators/url.js @@ -1,7 +1,7 @@ -const logger = require('../logger'); -const URL = require('url').URL; +import logger from '../logger.js'; +import { URL } from 'url'; -module.exports = string => { +const validateUrl = string => { try { new URL(string); return true; @@ -10,3 +10,5 @@ module.exports = string => { return false; } }; + +export default validateUrl; diff --git a/lib/watch-files-extensions.js b/lib/watch-files-extensions.js index c4dc518b..9a16fd08 100644 --- a/lib/watch-files-extensions.js +++ b/lib/watch-files-extensions.js @@ -1,4 +1,4 @@ -module.exports = [ +export default [ 'avif', 'br', 'css', diff --git a/lib/watch.js b/lib/watch.js index 240241f0..ee7fd6cf 100644 --- a/lib/watch.js +++ b/lib/watch.js @@ -1,23 +1,23 @@ -const fs = require('fs'); -const path = require('path'); -const chokidar = require('chokidar'); -const Queue = require('async/queue'); -const cloneDeep = require('lodash.clonedeep'); -const debounce = require('lodash.debounce'); -const ServerError = require('./ServerError'); - -const Gateway = require('../lib/proxy'), - logger = require('../lib/logger'), - templates = require('../lib/templates'), - settings = require('../lib/settings'), - dir = require('../lib/directories'), - files = require('../lib/files'), - livereload = require('livereload'), - watchFileExtensions = require('../lib/watch-files-extensions'), - manifestGenerateForAssets = require('./assets/manifest').manifestGenerateForAssets, - uploadFileFormData = require('./s3UploadFile').uploadFileFormData, - presignDirectory = require('./presignUrl').presignDirectory, - shouldBeSynced = require('../lib/shouldBeSynced'); +import fs from 'fs'; +import path from 'path'; +import chokidar from 'chokidar'; +import async from 'async'; +import cloneDeep from 'lodash.clonedeep'; +import debounce from 'lodash.debounce'; +import ServerError from './ServerError.js'; + +import Gateway from '../lib/proxy.js'; +import logger from '../lib/logger.js'; +import { fillInTemplateValues } from '../lib/templates.js'; +import { loadSettingsFileForModule } from '../lib/settings.js'; +import dir from '../lib/directories.js'; +import files from '../lib/files.js'; +import livereload from 'livereload'; +import watchFileExtensions from '../lib/watch-files-extensions.js'; +import { manifestGenerateForAssets } from './assets/manifest.js'; +import { uploadFileFormData } from './s3UploadFile.js'; +import { presignDirectory } from './presignUrl.js'; +import shouldBeSynced from '../lib/shouldBeSynced.js'; const filePathUnixified = filePath => filePath @@ -36,16 +36,16 @@ const enqueueDelete = filePath => queue.push({ path: filePath, op: 'delete' }, ( const getBody = (filePath, processTemplate) => { if (processTemplate) { const moduleTemplateData = templateData(filePath.split(path.sep)[1]); - return templates.fillInTemplateValues(filePath, moduleTemplateData); + return fillInTemplateValues(filePath, moduleTemplateData); } else { return fs.createReadStream(filePath); } }; -const templateData = module => settings.loadSettingsFileForModule(module); +const templateData = module => loadSettingsFileForModule(module); const pushFile = (gateway, syncedFilePath) => { - let filePath = filePathUnixified(syncedFilePath); // need path with / separators + let filePath = filePathUnixified(syncedFilePath); const formData = { path: filePath, marketplace_builder_file_body: getBody(syncedFilePath, filePath.startsWith('modules')) @@ -65,7 +65,7 @@ const pushFile = (gateway, syncedFilePath) => { }; const deleteFile = (gateway, syncedFilePath) => { - let filePath = filePathUnixified(syncedFilePath); // need path with / separators + let filePath = filePathUnixified(syncedFilePath); const formData = { path: filePath, primary_key: filePath @@ -153,7 +153,7 @@ const start = async (env, directAssetsUpload, liveReload) => { const reload = () => liveReload && liveReloadServer.refresh(program.url); - queue = Queue((task, callback) => { + queue = async.queue((task, callback) => { switch (task.op) { case 'push': push(gateway, task.path).then(reload).then(callback); @@ -190,6 +190,4 @@ const start = async (env, directAssetsUpload, liveReload) => { }); }; -module.exports = { - start: start -}; +export { start }; diff --git a/package-lock.json b/package-lock.json index b4355887..d3761ed5 100644 --- a/package-lock.json +++ b/package-lock.json @@ -15,18 +15,18 @@ "hasInstallScript": true, "license": "CC BY 3.0", "dependencies": { - "archiver": "^5.3.0", + "archiver": "^7.0.1", "archiver-promise": "^1.0.0", - "chalk": "^4.1.2", - "chokidar": "^3.5.3", + "chalk": "^5.6.2", + "chokidar": "^5.0.0", "commander": "^12.1.0", "degit": "^2.8.4", "email-validator": "^2.0.4", - "express": "^4.17.3", + "express": "^5.2.1", "fast-glob": "^3.2.11", - "ignore": "^5.2.0", - "inquirer": "^8.2.0", - "livereload": "^0.9.3", + "ignore": "^7.0.5", + "inquirer": "^13.2.0", + "livereload": "^0.10.3", "lodash.clonedeep": "^4.5.0", "lodash.compact": "^3.0.1", "lodash.debounce": "^4.0.8", @@ -35,22 +35,20 @@ "lodash.reject": "^4.6.0", "lodash.startcase": "^4.4.0", "lodash.uniq": "^4.5.0", - "mime": "^3.0.0", - "multer": "^1.4.5-lts.1", + "mime": "^4.1.0", + "multer": "^2.0.2", "mustache": "^4.2.0", "node-notifier": "^10.0.1", - "open": "^10.1.0", - "ora": "^8.0.1", + "open": "^11.0.0", + "ora": "^9.0.0", "prompts": "^2.4.2", - "request": "^2.88.2", - "request-promise": "^4.2.6", - "semver": "^7.3.7", - "shelljs": "^0.8.5", + "semver": "^7.7.3", + "shelljs": "^0.10.0", "text-table": "^0.2.0", "unzipper": "^0.12.3", - "update-notifier": "^5.1.0", - "yeoman-environment": "^3.19.3", - "yeoman-generator": "^5.9.0" + "update-notifier": "^7.3.1", + "yeoman-environment": "^5.1.2", + "yeoman-generator": "^7.5.1" }, "bin": { "pos-cli": "bin/pos-cli.js", @@ -67,11 +65,13 @@ "pos-cli-logsv2-search": "bin/pos-cli-logsv2-search.js", "pos-cli-migrations": "bin/pos-cli-migrations.js", "pos-cli-modules": "bin/pos-cli-modules.js", - "pos-cli-sync": "bin/pos-cli-sync.js" + "pos-cli-sync": "bin/pos-cli-sync.js", + "pos-cli-test": "bin/pos-cli-test.js", + "pos-cli-test-run": "bin/pos-cli-test-run.js" }, "devDependencies": { - "dotenv": "^16.0.0", - "jest": "^29.7.0" + "dotenv": "^16.6.1", + "vitest": "^2.1.9" }, "engines": { "node": ">=18" @@ -80,623 +80,769 @@ "fsevents": "^2.3.3" } }, - "node_modules/@ampproject/remapping": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", - "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@jridgewell/gen-mapping": "^0.3.5", - "@jridgewell/trace-mapping": "^0.3.24" - }, - "engines": { - "node": ">=6.0.0" - } - }, "node_modules/@babel/code-frame": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.7.tgz", - "integrity": "sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==", + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.28.6.tgz", + "integrity": "sha512-JYgintcMjRiCvS8mMECzaEn+m3PfoQiyqukOMCCVQtoJGYJw8j/8LBJEiqkHLkfwCcs74E3pbAUFNg7d9VNJ+Q==", "license": "MIT", "dependencies": { - "@babel/highlight": "^7.24.7", - "picocolors": "^1.0.0" + "@babel/helper-validator-identifier": "^7.28.5", + "js-tokens": "^4.0.0", + "picocolors": "^1.1.1" }, "engines": { "node": ">=6.9.0" } }, - "node_modules/@babel/compat-data": { - "version": "7.25.2", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.25.2.tgz", - "integrity": "sha512-bYcppcpKBvX4znYaPEeFau03bp89ShqNMLs+rmdptMw+heSZh9+z84d2YG+K7cYLbWwzdjtDoW/uqZmPjulClQ==", - "dev": true, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.28.5.tgz", + "integrity": "sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==", "license": "MIT", "engines": { "node": ">=6.9.0" } }, - "node_modules/@babel/core": { - "version": "7.25.2", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.25.2.tgz", - "integrity": "sha512-BBt3opiCOxUr9euZ5/ro/Xv8/V7yJ5bjYMqG/C1YAo8MIKAnumZalCN+msbci3Pigy4lIQfPUpfMM27HMGaYEA==", + "node_modules/@esbuild/aix-ppc64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz", + "integrity": "sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==", + "cpu": [ + "ppc64" + ], "dev": true, "license": "MIT", - "dependencies": { - "@ampproject/remapping": "^2.2.0", - "@babel/code-frame": "^7.24.7", - "@babel/generator": "^7.25.0", - "@babel/helper-compilation-targets": "^7.25.2", - "@babel/helper-module-transforms": "^7.25.2", - "@babel/helpers": "^7.25.0", - "@babel/parser": "^7.25.0", - "@babel/template": "^7.25.0", - "@babel/traverse": "^7.25.2", - "@babel/types": "^7.25.2", - "convert-source-map": "^2.0.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.2.3", - "semver": "^6.3.1" - }, + "optional": true, + "os": [ + "aix" + ], "engines": { - "node": ">=6.9.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/babel" + "node": ">=12" } }, - "node_modules/@babel/core/node_modules/debug": { - "version": "4.3.6", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.6.tgz", - "integrity": "sha512-O/09Bd4Z1fBrU4VzkhFqVgpPzaGbw6Sm9FEkBT1A/YBXQFGuuSxa1dN2nxgxS34JmKXqYx8CZAwEVoJFImUXIg==", + "node_modules/@esbuild/android-arm": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.21.5.tgz", + "integrity": "sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==", + "cpu": [ + "arm" + ], "dev": true, "license": "MIT", - "dependencies": { - "ms": "2.1.2" - }, + "optional": true, + "os": [ + "android" + ], "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } + "node": ">=12" } }, - "node_modules/@babel/core/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true, - "license": "MIT" - }, - "node_modules/@babel/core/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "node_modules/@esbuild/android-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz", + "integrity": "sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==", + "cpu": [ + "arm64" + ], "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" } }, - "node_modules/@babel/generator": { - "version": "7.25.0", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.25.0.tgz", - "integrity": "sha512-3LEEcj3PVW8pW2R1SR1M89g/qrYk/m/mB/tLqn7dn4sbBUQyTqnlod+II2U4dqiGtUmkcnAmkMDralTFZttRiw==", + "node_modules/@esbuild/android-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.21.5.tgz", + "integrity": "sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==", + "cpu": [ + "x64" + ], "dev": true, "license": "MIT", - "dependencies": { - "@babel/types": "^7.25.0", - "@jridgewell/gen-mapping": "^0.3.5", - "@jridgewell/trace-mapping": "^0.3.25", - "jsesc": "^2.5.1" - }, + "optional": true, + "os": [ + "android" + ], "engines": { - "node": ">=6.9.0" + "node": ">=12" } }, - "node_modules/@babel/helper-compilation-targets": { - "version": "7.25.2", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.25.2.tgz", - "integrity": "sha512-U2U5LsSaZ7TAt3cfaymQ8WHh0pxvdHoEk6HVpaexxixjyEquMh0L0YNJNM6CTGKMXV1iksi0iZkGw4AcFkPaaw==", + "node_modules/@esbuild/darwin-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz", + "integrity": "sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==", + "cpu": [ + "arm64" + ], "dev": true, "license": "MIT", - "dependencies": { - "@babel/compat-data": "^7.25.2", - "@babel/helper-validator-option": "^7.24.8", - "browserslist": "^4.23.1", - "lru-cache": "^5.1.1", - "semver": "^6.3.1" - }, + "optional": true, + "os": [ + "darwin" + ], "engines": { - "node": ">=6.9.0" + "node": ">=12" } }, - "node_modules/@babel/helper-compilation-targets/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "node_modules/@esbuild/darwin-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz", + "integrity": "sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==", + "cpu": [ + "x64" + ], "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" } }, - "node_modules/@babel/helper-module-imports": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.24.7.tgz", - "integrity": "sha512-8AyH3C+74cgCVVXow/myrynrAGv+nTVg5vKu2nZph9x7RcRwzmh0VFallJuFTZ9mx6u4eSdXZfcOzSqTUm0HCA==", + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz", + "integrity": "sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==", + "cpu": [ + "arm64" + ], "dev": true, "license": "MIT", - "dependencies": { - "@babel/traverse": "^7.24.7", - "@babel/types": "^7.24.7" - }, + "optional": true, + "os": [ + "freebsd" + ], "engines": { - "node": ">=6.9.0" + "node": ">=12" } }, - "node_modules/@babel/helper-module-transforms": { - "version": "7.25.2", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.25.2.tgz", - "integrity": "sha512-BjyRAbix6j/wv83ftcVJmBt72QtHI56C7JXZoG2xATiLpmoC7dpd8WnkikExHDVPpi/3qCmO6WY1EaXOluiecQ==", + "node_modules/@esbuild/freebsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz", + "integrity": "sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==", + "cpu": [ + "x64" + ], "dev": true, "license": "MIT", - "dependencies": { - "@babel/helper-module-imports": "^7.24.7", - "@babel/helper-simple-access": "^7.24.7", - "@babel/helper-validator-identifier": "^7.24.7", - "@babel/traverse": "^7.25.2" - }, + "optional": true, + "os": [ + "freebsd" + ], "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" + "node": ">=12" } }, - "node_modules/@babel/helper-plugin-utils": { - "version": "7.24.8", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.8.tgz", - "integrity": "sha512-FFWx5142D8h2Mgr/iPVGH5G7w6jDn4jUSpZTyDnQO0Yn7Ks2Kuz6Pci8H6MPCoUJegd/UZQ3tAvfLCxQSnWWwg==", + "node_modules/@esbuild/linux-arm": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz", + "integrity": "sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==", + "cpu": [ + "arm" + ], "dev": true, "license": "MIT", + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=6.9.0" + "node": ">=12" } }, - "node_modules/@babel/helper-simple-access": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.24.7.tgz", - "integrity": "sha512-zBAIvbCMh5Ts+b86r/CjU+4XGYIs+R1j951gxI3KmmxBMhCg4oQMsv6ZXQ64XOm/cvzfU1FmoCyt6+owc5QMYg==", + "node_modules/@esbuild/linux-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz", + "integrity": "sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==", + "cpu": [ + "arm64" + ], "dev": true, "license": "MIT", - "dependencies": { - "@babel/traverse": "^7.24.7", - "@babel/types": "^7.24.7" - }, + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=6.9.0" + "node": ">=12" } }, - "node_modules/@babel/helper-string-parser": { - "version": "7.24.8", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.8.tgz", - "integrity": "sha512-pO9KhhRcuUyGnJWwyEgnRJTSIZHiT+vMD0kPeD+so0l7mxkMT19g3pjY9GTnHySck/hDzq+dtW/4VgnMkippsQ==", + "node_modules/@esbuild/linux-ia32": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz", + "integrity": "sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==", + "cpu": [ + "ia32" + ], "dev": true, "license": "MIT", + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=6.9.0" + "node": ">=12" } }, - "node_modules/@babel/helper-validator-identifier": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.7.tgz", - "integrity": "sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==", + "node_modules/@esbuild/linux-loong64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz", + "integrity": "sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==", + "cpu": [ + "loong64" + ], + "dev": true, "license": "MIT", + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=6.9.0" + "node": ">=12" } }, - "node_modules/@babel/helper-validator-option": { - "version": "7.24.8", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.24.8.tgz", - "integrity": "sha512-xb8t9tD1MHLungh/AIoWYN+gVHaB9kwlu8gffXGSt3FFEIT7RjS+xWbc2vUD1UTZdIpKj/ab3rdqJ7ufngyi2Q==", + "node_modules/@esbuild/linux-mips64el": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz", + "integrity": "sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==", + "cpu": [ + "mips64el" + ], "dev": true, "license": "MIT", + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=6.9.0" + "node": ">=12" } }, - "node_modules/@babel/helpers": { - "version": "7.25.0", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.25.0.tgz", - "integrity": "sha512-MjgLZ42aCm0oGjJj8CtSM3DB8NOOf8h2l7DCTePJs29u+v7yO/RBX9nShlKMgFnRks/Q4tBAe7Hxnov9VkGwLw==", + "node_modules/@esbuild/linux-ppc64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz", + "integrity": "sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==", + "cpu": [ + "ppc64" + ], "dev": true, "license": "MIT", - "dependencies": { - "@babel/template": "^7.25.0", - "@babel/types": "^7.25.0" - }, + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=6.9.0" + "node": ">=12" } }, - "node_modules/@babel/highlight": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.7.tgz", - "integrity": "sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw==", + "node_modules/@esbuild/linux-riscv64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz", + "integrity": "sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==", + "cpu": [ + "riscv64" + ], + "dev": true, "license": "MIT", - "dependencies": { - "@babel/helper-validator-identifier": "^7.24.7", - "chalk": "^2.4.2", - "js-tokens": "^4.0.0", - "picocolors": "^1.0.0" - }, + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=6.9.0" + "node": ">=12" } }, - "node_modules/@babel/highlight/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "node_modules/@esbuild/linux-s390x": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz", + "integrity": "sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==", + "cpu": [ + "s390x" + ], + "dev": true, "license": "MIT", - "dependencies": { - "color-convert": "^1.9.0" - }, + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=4" + "node": ">=12" } }, - "node_modules/@babel/highlight/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "node_modules/@esbuild/linux-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz", + "integrity": "sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==", + "cpu": [ + "x64" + ], + "dev": true, "license": "MIT", - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=4" + "node": ">=12" } }, - "node_modules/@babel/highlight/node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "node_modules/@esbuild/netbsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz", + "integrity": "sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==", + "cpu": [ + "x64" + ], + "dev": true, "license": "MIT", - "dependencies": { - "color-name": "1.1.3" + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" } }, - "node_modules/@babel/highlight/node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "license": "MIT" - }, - "node_modules/@babel/highlight/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "node_modules/@esbuild/openbsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz", + "integrity": "sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==", + "cpu": [ + "x64" + ], + "dev": true, "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], "engines": { - "node": ">=4" + "node": ">=12" } }, - "node_modules/@babel/highlight/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "node_modules/@esbuild/sunos-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz", + "integrity": "sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==", + "cpu": [ + "x64" + ], + "dev": true, "license": "MIT", - "dependencies": { - "has-flag": "^3.0.0" - }, + "optional": true, + "os": [ + "sunos" + ], "engines": { - "node": ">=4" + "node": ">=12" } }, - "node_modules/@babel/parser": { - "version": "7.25.3", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.25.3.tgz", - "integrity": "sha512-iLTJKDbJ4hMvFPgQwwsVoxtHyWpKKPBrxkANrSYewDPaPpT5py5yeVkgPIJ7XYXhndxJpaA3PyALSXQ7u8e/Dw==", + "node_modules/@esbuild/win32-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz", + "integrity": "sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==", + "cpu": [ + "arm64" + ], "dev": true, "license": "MIT", - "dependencies": { - "@babel/types": "^7.25.2" - }, - "bin": { - "parser": "bin/babel-parser.js" - }, + "optional": true, + "os": [ + "win32" + ], "engines": { - "node": ">=6.0.0" + "node": ">=12" } }, - "node_modules/@babel/plugin-syntax-async-generators": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", - "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", + "node_modules/@esbuild/win32-ia32": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz", + "integrity": "sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==", + "cpu": [ + "ia32" + ], "dev": true, "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" } }, - "node_modules/@babel/plugin-syntax-bigint": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz", - "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==", + "node_modules/@esbuild/win32-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz", + "integrity": "sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==", + "cpu": [ + "x64" + ], "dev": true, "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" } }, - "node_modules/@babel/plugin-syntax-class-properties": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", - "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", - "dev": true, + "node_modules/@inquirer/ansi": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@inquirer/ansi/-/ansi-2.0.3.tgz", + "integrity": "sha512-g44zhR3NIKVs0zUesa4iMzExmZpLUdTLRMCStqX3GE5NT6VkPcxQGJ+uC8tDgBUC/vB1rUhUd55cOf++4NZcmw==", "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.12.13" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "engines": { + "node": ">=23.5.0 || ^22.13.0 || ^21.7.0 || ^20.12.0" } }, - "node_modules/@babel/plugin-syntax-import-meta": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", - "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", - "dev": true, + "node_modules/@inquirer/checkbox": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/@inquirer/checkbox/-/checkbox-5.0.4.tgz", + "integrity": "sha512-DrAMU3YBGMUAp6ArwTIp/25CNDtDbxk7UjIrrtM25JVVrlVYlVzHh5HR1BDFu9JMyUoZ4ZanzeaHqNDttf3gVg==", "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" + "@inquirer/ansi": "^2.0.3", + "@inquirer/core": "^11.1.1", + "@inquirer/figures": "^2.0.3", + "@inquirer/type": "^4.0.3" + }, + "engines": { + "node": ">=23.5.0 || ^22.13.0 || ^21.7.0 || ^20.12.0" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@types/node": ">=18" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } } }, - "node_modules/@babel/plugin-syntax-json-strings": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", - "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", - "dev": true, + "node_modules/@inquirer/confirm": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/@inquirer/confirm/-/confirm-6.0.4.tgz", + "integrity": "sha512-WdaPe7foUnoGYvXzH4jp4wH/3l+dBhZ3uwhKjXjwdrq5tEIFaANxj6zrGHxLdsIA0yKM0kFPVcEalOZXBB5ISA==", "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" + "@inquirer/core": "^11.1.1", + "@inquirer/type": "^4.0.3" + }, + "engines": { + "node": ">=23.5.0 || ^22.13.0 || ^21.7.0 || ^20.12.0" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@types/node": ">=18" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } } }, - "node_modules/@babel/plugin-syntax-jsx": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.24.7.tgz", - "integrity": "sha512-6ddciUPe/mpMnOKv/U+RSd2vvVy+Yw/JfBB0ZHYjEZt9NLHmCUylNYlsbqCCS1Bffjlb0fCwC9Vqz+sBz6PsiQ==", - "dev": true, + "node_modules/@inquirer/core": { + "version": "11.1.1", + "resolved": "https://registry.npmjs.org/@inquirer/core/-/core-11.1.1.tgz", + "integrity": "sha512-hV9o15UxX46OyQAtaoMqAOxGR8RVl1aZtDx1jHbCtSJy1tBdTfKxLPKf7utsE4cRy4tcmCQ4+vdV+ca+oNxqNA==", "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7" + "@inquirer/ansi": "^2.0.3", + "@inquirer/figures": "^2.0.3", + "@inquirer/type": "^4.0.3", + "cli-width": "^4.1.0", + "mute-stream": "^3.0.0", + "signal-exit": "^4.1.0", + "wrap-ansi": "^9.0.2" }, "engines": { - "node": ">=6.9.0" + "node": ">=23.5.0 || ^22.13.0 || ^21.7.0 || ^20.12.0" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@types/node": ">=18" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } } }, - "node_modules/@babel/plugin-syntax-logical-assignment-operators": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", - "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", - "dev": true, + "node_modules/@inquirer/editor": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/@inquirer/editor/-/editor-5.0.4.tgz", + "integrity": "sha512-QI3Jfqcv6UO2/VJaEFONH8Im1ll++Xn/AJTBn9Xf+qx2M+H8KZAdQ5sAe2vtYlo+mLW+d7JaMJB4qWtK4BG3pw==", "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" + "@inquirer/core": "^11.1.1", + "@inquirer/external-editor": "^2.0.3", + "@inquirer/type": "^4.0.3" + }, + "engines": { + "node": ">=23.5.0 || ^22.13.0 || ^21.7.0 || ^20.12.0" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@types/node": ">=18" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } } }, - "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", - "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", - "dev": true, + "node_modules/@inquirer/expand": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/@inquirer/expand/-/expand-5.0.4.tgz", + "integrity": "sha512-0I/16YwPPP0Co7a5MsomlZLpch48NzYfToyqYAOWtBmaXSB80RiNQ1J+0xx2eG+Wfxt0nHtpEWSRr6CzNVnOGg==", "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" + "@inquirer/core": "^11.1.1", + "@inquirer/type": "^4.0.3" + }, + "engines": { + "node": ">=23.5.0 || ^22.13.0 || ^21.7.0 || ^20.12.0" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@types/node": ">=18" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } } }, - "node_modules/@babel/plugin-syntax-numeric-separator": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", - "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", - "dev": true, + "node_modules/@inquirer/external-editor": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@inquirer/external-editor/-/external-editor-2.0.3.tgz", + "integrity": "sha512-LgyI7Agbda74/cL5MvA88iDpvdXI2KuMBCGRkbCl2Dg1vzHeOgs+s0SDcXV7b+WZJrv2+ERpWSM65Fpi9VfY3w==", "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" + "chardet": "^2.1.1", + "iconv-lite": "^0.7.2" + }, + "engines": { + "node": ">=23.5.0 || ^22.13.0 || ^21.7.0 || ^20.12.0" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@types/node": ">=18" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } } }, - "node_modules/@babel/plugin-syntax-object-rest-spread": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", - "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", - "dev": true, + "node_modules/@inquirer/figures": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@inquirer/figures/-/figures-2.0.3.tgz", + "integrity": "sha512-y09iGt3JKoOCBQ3w4YrSJdokcD8ciSlMIWsD+auPu+OZpfxLuyz+gICAQ6GCBOmJJt4KEQGHuZSVff2jiNOy7g==", + "license": "MIT", + "engines": { + "node": ">=23.5.0 || ^22.13.0 || ^21.7.0 || ^20.12.0" + } + }, + "node_modules/@inquirer/input": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/@inquirer/input/-/input-5.0.4.tgz", + "integrity": "sha512-4B3s3jvTREDFvXWit92Yc6jF1RJMDy2VpSqKtm4We2oVU65YOh2szY5/G14h4fHlyQdpUmazU5MPCFZPRJ0AOw==", "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" + "@inquirer/core": "^11.1.1", + "@inquirer/type": "^4.0.3" + }, + "engines": { + "node": ">=23.5.0 || ^22.13.0 || ^21.7.0 || ^20.12.0" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@types/node": ">=18" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } } }, - "node_modules/@babel/plugin-syntax-optional-catch-binding": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", - "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", - "dev": true, + "node_modules/@inquirer/number": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@inquirer/number/-/number-4.0.4.tgz", + "integrity": "sha512-CmMp9LF5HwE+G/xWsC333TlCzYYbXMkcADkKzcawh49fg2a1ryLc7JL1NJYYt1lJ+8f4slikNjJM9TEL/AljYQ==", "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" + "@inquirer/core": "^11.1.1", + "@inquirer/type": "^4.0.3" + }, + "engines": { + "node": ">=23.5.0 || ^22.13.0 || ^21.7.0 || ^20.12.0" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@types/node": ">=18" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } } }, - "node_modules/@babel/plugin-syntax-optional-chaining": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", - "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", - "dev": true, + "node_modules/@inquirer/password": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/@inquirer/password/-/password-5.0.4.tgz", + "integrity": "sha512-ZCEPyVYvHK4W4p2Gy6sTp9nqsdHQCfiPXIP9LbJVW4yCinnxL/dDDmPaEZVysGrj8vxVReRnpfS2fOeODe9zjg==", "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" + "@inquirer/ansi": "^2.0.3", + "@inquirer/core": "^11.1.1", + "@inquirer/type": "^4.0.3" + }, + "engines": { + "node": ">=23.5.0 || ^22.13.0 || ^21.7.0 || ^20.12.0" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@types/node": ">=18" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } } }, - "node_modules/@babel/plugin-syntax-top-level-await": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", - "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", - "dev": true, + "node_modules/@inquirer/prompts": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/@inquirer/prompts/-/prompts-8.2.0.tgz", + "integrity": "sha512-rqTzOprAj55a27jctS3vhvDDJzYXsr33WXTjODgVOru21NvBo9yIgLIAf7SBdSV0WERVly3dR6TWyp7ZHkvKFA==", "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" + "@inquirer/checkbox": "^5.0.4", + "@inquirer/confirm": "^6.0.4", + "@inquirer/editor": "^5.0.4", + "@inquirer/expand": "^5.0.4", + "@inquirer/input": "^5.0.4", + "@inquirer/number": "^4.0.4", + "@inquirer/password": "^5.0.4", + "@inquirer/rawlist": "^5.2.0", + "@inquirer/search": "^4.1.0", + "@inquirer/select": "^5.0.4" }, "engines": { - "node": ">=6.9.0" + "node": ">=23.5.0 || ^22.13.0 || ^21.7.0 || ^20.12.0" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@types/node": ">=18" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } } }, - "node_modules/@babel/plugin-syntax-typescript": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.24.7.tgz", - "integrity": "sha512-c/+fVeJBB0FeKsFvwytYiUD+LBvhHjGSI0g446PRGdSVGZLRNArBUno2PETbAly3tpiNAQR5XaZ+JslxkotsbA==", - "dev": true, + "node_modules/@inquirer/rawlist": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@inquirer/rawlist/-/rawlist-5.2.0.tgz", + "integrity": "sha512-CciqGoOUMrFo6HxvOtU5uL8fkjCmzyeB6fG7O1vdVAZVSopUBYECOwevDBlqNLyyYmzpm2Gsn/7nLrpruy9RFg==", "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7" + "@inquirer/core": "^11.1.1", + "@inquirer/type": "^4.0.3" }, "engines": { - "node": ">=6.9.0" + "node": ">=23.5.0 || ^22.13.0 || ^21.7.0 || ^20.12.0" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@types/node": ">=18" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } } }, - "node_modules/@babel/template": { - "version": "7.25.0", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.25.0.tgz", - "integrity": "sha512-aOOgh1/5XzKvg1jvVz7AVrx2piJ2XBi227DHmbY6y+bM9H2FlN+IfecYu4Xl0cNiiVejlsCri89LUsbj8vJD9Q==", - "dev": true, + "node_modules/@inquirer/search": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/@inquirer/search/-/search-4.1.0.tgz", + "integrity": "sha512-EAzemfiP4IFvIuWnrHpgZs9lAhWDA0GM3l9F4t4mTQ22IFtzfrk8xbkMLcAN7gmVML9O/i+Hzu8yOUyAaL6BKA==", "license": "MIT", "dependencies": { - "@babel/code-frame": "^7.24.7", - "@babel/parser": "^7.25.0", - "@babel/types": "^7.25.0" + "@inquirer/core": "^11.1.1", + "@inquirer/figures": "^2.0.3", + "@inquirer/type": "^4.0.3" }, "engines": { - "node": ">=6.9.0" + "node": ">=23.5.0 || ^22.13.0 || ^21.7.0 || ^20.12.0" + }, + "peerDependencies": { + "@types/node": ">=18" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } } }, - "node_modules/@babel/traverse": { - "version": "7.25.3", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.25.3.tgz", - "integrity": "sha512-HefgyP1x754oGCsKmV5reSmtV7IXj/kpaE1XYY+D9G5PvKKoFfSbiS4M77MdjuwlZKDIKFCffq9rPU+H/s3ZdQ==", - "dev": true, + "node_modules/@inquirer/select": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/@inquirer/select/-/select-5.0.4.tgz", + "integrity": "sha512-s8KoGpPYMEQ6WXc0dT9blX2NtIulMdLOO3LA1UKOiv7KFWzlJ6eLkEYTDBIi+JkyKXyn8t/CD6TinxGjyLt57g==", "license": "MIT", "dependencies": { - "@babel/code-frame": "^7.24.7", - "@babel/generator": "^7.25.0", - "@babel/parser": "^7.25.3", - "@babel/template": "^7.25.0", - "@babel/types": "^7.25.2", - "debug": "^4.3.1", - "globals": "^11.1.0" + "@inquirer/ansi": "^2.0.3", + "@inquirer/core": "^11.1.1", + "@inquirer/figures": "^2.0.3", + "@inquirer/type": "^4.0.3" }, "engines": { - "node": ">=6.9.0" + "node": ">=23.5.0 || ^22.13.0 || ^21.7.0 || ^20.12.0" + }, + "peerDependencies": { + "@types/node": ">=18" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } } }, - "node_modules/@babel/traverse/node_modules/debug": { - "version": "4.3.6", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.6.tgz", - "integrity": "sha512-O/09Bd4Z1fBrU4VzkhFqVgpPzaGbw6Sm9FEkBT1A/YBXQFGuuSxa1dN2nxgxS34JmKXqYx8CZAwEVoJFImUXIg==", - "dev": true, + "node_modules/@inquirer/type": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/@inquirer/type/-/type-4.0.3.tgz", + "integrity": "sha512-cKZN7qcXOpj1h+1eTTcGDVLaBIHNMT1Rz9JqJP5MnEJ0JhgVWllx7H/tahUp5YEK1qaByH2Itb8wLG/iScD5kw==", "license": "MIT", - "dependencies": { - "ms": "2.1.2" - }, "engines": { - "node": ">=6.0" + "node": ">=23.5.0 || ^22.13.0 || ^21.7.0 || ^20.12.0" + }, + "peerDependencies": { + "@types/node": ">=18" }, "peerDependenciesMeta": { - "supports-color": { + "@types/node": { "optional": true } } }, - "node_modules/@babel/traverse/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true, - "license": "MIT" + "node_modules/@isaacs/balanced-match": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@isaacs/balanced-match/-/balanced-match-4.0.1.tgz", + "integrity": "sha512-yzMTt9lEb8Gv7zRioUilSglI0c0smZ9k5D65677DLWLtWJaXIS3CqcGyUFByYKlnUj6TkjLVs54fBl6+TiGQDQ==", + "license": "MIT", + "engines": { + "node": "20 || >=22" + } }, - "node_modules/@babel/types": { - "version": "7.25.2", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.25.2.tgz", - "integrity": "sha512-YTnYtra7W9e6/oAZEHj0bJehPRUlLH9/fbpT5LfB0NhQXyALCRkRs3zH9v07IYhkgpqX6Z78FnuccZr/l4Fs4Q==", - "dev": true, + "node_modules/@isaacs/brace-expansion": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@isaacs/brace-expansion/-/brace-expansion-5.0.0.tgz", + "integrity": "sha512-ZT55BDLV0yv0RBm2czMiZ+SqCGO7AvmOM3G/w2xhVPH+te0aKgFjmBvGlL1dH+ql2tgGO3MVrbb3jCKyvpgnxA==", "license": "MIT", "dependencies": { - "@babel/helper-string-parser": "^7.24.8", - "@babel/helper-validator-identifier": "^7.24.7", - "to-fast-properties": "^2.0.0" + "@isaacs/balanced-match": "^4.0.1" }, "engines": { - "node": ">=6.9.0" + "node": "20 || >=22" } }, - "node_modules/@bcoe/v8-coverage": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", - "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", - "dev": true, - "license": "MIT" - }, - "node_modules/@gar/promisify": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@gar/promisify/-/promisify-1.1.3.tgz", - "integrity": "sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==", - "license": "MIT" - }, "node_modules/@isaacs/cliui": { "version": "8.0.2", "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", @@ -714,68 +860,6 @@ "node": ">=12" } }, - "node_modules/@isaacs/cliui/node_modules/ansi-regex": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" - } - }, - "node_modules/@isaacs/cliui/node_modules/ansi-styles": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", - "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/@isaacs/cliui/node_modules/emoji-regex": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", - "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", - "license": "MIT" - }, - "node_modules/@isaacs/cliui/node_modules/string-width": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", - "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", - "license": "MIT", - "dependencies": { - "eastasianwidth": "^0.2.0", - "emoji-regex": "^9.2.2", - "strip-ansi": "^7.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@isaacs/cliui/node_modules/strip-ansi": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", - "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", - "license": "MIT", - "dependencies": { - "ansi-regex": "^6.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" - } - }, "node_modules/@isaacs/cliui/node_modules/wrap-ansi": { "version": "8.1.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", @@ -793,1581 +877,1789 @@ "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, + "node_modules/@isaacs/fs-minipass": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@isaacs/fs-minipass/-/fs-minipass-4.0.1.tgz", + "integrity": "sha512-wgm9Ehl2jpeqP3zw/7mo3kRHFp5MEDhqAdwy1fTGkHAwnkGOVsgpvQhL8B5n1qlb01jV3n/bI0ZfZp5lWA1k4w==", + "license": "ISC", + "dependencies": { + "minipass": "^7.0.4" + }, + "engines": { + "node": ">=18.0.0" + } + }, "node_modules/@isaacs/string-locale-compare": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@isaacs/string-locale-compare/-/string-locale-compare-1.1.0.tgz", "integrity": "sha512-SQ7Kzhh9+D+ZW9MA0zkYv3VXhIDNx+LzM6EJ+/65I3QY+enU6Itte7E5XX7EWrqLW2FN4n06GWzBnPoC3th2aQ==", "license": "ISC" }, - "node_modules/@istanbuljs/load-nyc-config": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", - "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz", + "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==", "dev": true, - "license": "ISC", + "license": "MIT" + }, + "node_modules/@kwsites/file-exists": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@kwsites/file-exists/-/file-exists-1.1.1.tgz", + "integrity": "sha512-m9/5YGR18lIwxSFDwfE3oA7bWuq9kdau6ugN4H2rJeyhFQZcG9AgSHkQtSD15a8WvTgfz9aikZMrKPHvbpqFiw==", + "license": "MIT", + "dependencies": { + "debug": "^4.1.1" + } + }, + "node_modules/@kwsites/promise-deferred": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@kwsites/promise-deferred/-/promise-deferred-1.1.1.tgz", + "integrity": "sha512-GaHYm+c0O9MjZRu0ongGBRbinu8gVAMd2UZjji6jVmqKtZluZnptXGWhz1E8j8D2HJ3f/yMxKAUC0b+57wncIw==", + "license": "MIT" + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "inBundle": true, + "license": "MIT", "dependencies": { - "camelcase": "^5.3.1", - "find-up": "^4.1.0", - "get-package-type": "^0.1.0", - "js-yaml": "^3.13.1", - "resolve-from": "^5.0.0" + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" }, "engines": { - "node": ">=8" + "node": ">= 8" } }, - "node_modules/@istanbuljs/schema": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", - "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", - "dev": true, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "inBundle": true, "license": "MIT", "engines": { - "node": ">=8" + "node": ">= 8" } }, - "node_modules/@jest/console": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/console/-/console-29.7.0.tgz", - "integrity": "sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg==", - "dev": true, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "inBundle": true, "license": "MIT", "dependencies": { - "@jest/types": "^29.6.3", - "@types/node": "*", - "chalk": "^4.0.0", - "jest-message-util": "^29.7.0", - "jest-util": "^29.7.0", - "slash": "^3.0.0" + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">= 8" } }, - "node_modules/@jest/core": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/core/-/core-29.7.0.tgz", - "integrity": "sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg==", - "dev": true, - "license": "MIT", + "node_modules/@npmcli/agent": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@npmcli/agent/-/agent-4.0.0.tgz", + "integrity": "sha512-kAQTcEN9E8ERLVg5AsGwLNoFb+oEG6engbqAU2P43gD4JEIkNGMHdVQ096FsOAAYpZPB0RSt0zgInKIAS1l5QA==", + "license": "ISC", "dependencies": { - "@jest/console": "^29.7.0", - "@jest/reporters": "^29.7.0", - "@jest/test-result": "^29.7.0", - "@jest/transform": "^29.7.0", - "@jest/types": "^29.6.3", - "@types/node": "*", - "ansi-escapes": "^4.2.1", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "exit": "^0.1.2", - "graceful-fs": "^4.2.9", - "jest-changed-files": "^29.7.0", - "jest-config": "^29.7.0", - "jest-haste-map": "^29.7.0", - "jest-message-util": "^29.7.0", - "jest-regex-util": "^29.6.3", - "jest-resolve": "^29.7.0", - "jest-resolve-dependencies": "^29.7.0", - "jest-runner": "^29.7.0", - "jest-runtime": "^29.7.0", - "jest-snapshot": "^29.7.0", - "jest-util": "^29.7.0", - "jest-validate": "^29.7.0", - "jest-watcher": "^29.7.0", - "micromatch": "^4.0.4", - "pretty-format": "^29.7.0", - "slash": "^3.0.0", - "strip-ansi": "^6.0.0" + "agent-base": "^7.1.0", + "http-proxy-agent": "^7.0.0", + "https-proxy-agent": "^7.0.1", + "lru-cache": "^11.2.1", + "socks-proxy-agent": "^8.0.3" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - }, - "peerDependencies": { - "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" - }, - "peerDependenciesMeta": { - "node-notifier": { - "optional": true - } + "node": "^20.17.0 || >=22.9.0" } }, - "node_modules/@jest/environment": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-29.7.0.tgz", - "integrity": "sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/fake-timers": "^29.7.0", - "@jest/types": "^29.6.3", - "@types/node": "*", - "jest-mock": "^29.7.0" - }, + "node_modules/@npmcli/agent/node_modules/lru-cache": { + "version": "11.2.4", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.2.4.tgz", + "integrity": "sha512-B5Y16Jr9LB9dHVkh6ZevG+vAbOsNOYCX+sXvFWFu7B3Iz5mijW3zdbMyhsh8ANd2mSWBYdJgnqi+mL7/LrOPYg==", + "license": "BlueOak-1.0.0", "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": "20 || >=22" } }, - "node_modules/@jest/expect": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-29.7.0.tgz", - "integrity": "sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ==", - "dev": true, - "license": "MIT", + "node_modules/@npmcli/arborist": { + "version": "9.1.9", + "resolved": "https://registry.npmjs.org/@npmcli/arborist/-/arborist-9.1.9.tgz", + "integrity": "sha512-O/rLeBo64mkUn1zU+1tFDWXvbAA9UXe9eUldwTwRLxOLFx9obqjNoozW65LmYqgWb0DG40i9lNZSv78VX2GKhw==", + "license": "ISC", "dependencies": { - "expect": "^29.7.0", - "jest-snapshot": "^29.7.0" + "@isaacs/string-locale-compare": "^1.1.0", + "@npmcli/fs": "^5.0.0", + "@npmcli/installed-package-contents": "^4.0.0", + "@npmcli/map-workspaces": "^5.0.0", + "@npmcli/metavuln-calculator": "^9.0.2", + "@npmcli/name-from-folder": "^4.0.0", + "@npmcli/node-gyp": "^5.0.0", + "@npmcli/package-json": "^7.0.0", + "@npmcli/query": "^5.0.0", + "@npmcli/redact": "^4.0.0", + "@npmcli/run-script": "^10.0.0", + "bin-links": "^6.0.0", + "cacache": "^20.0.1", + "common-ancestor-path": "^1.0.1", + "hosted-git-info": "^9.0.0", + "json-stringify-nice": "^1.1.4", + "lru-cache": "^11.2.1", + "minimatch": "^10.0.3", + "nopt": "^9.0.0", + "npm-install-checks": "^8.0.0", + "npm-package-arg": "^13.0.0", + "npm-pick-manifest": "^11.0.1", + "npm-registry-fetch": "^19.0.0", + "pacote": "^21.0.2", + "parse-conflict-json": "^5.0.1", + "proc-log": "^6.0.0", + "proggy": "^4.0.0", + "promise-all-reject-late": "^1.0.0", + "promise-call-limit": "^3.0.1", + "semver": "^7.3.7", + "ssri": "^13.0.0", + "treeverse": "^3.0.0", + "walk-up-path": "^4.0.0" + }, + "bin": { + "arborist": "bin/index.js" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": "^20.17.0 || >=22.9.0" } }, - "node_modules/@jest/expect-utils": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-29.7.0.tgz", - "integrity": "sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA==", - "dev": true, - "license": "MIT", - "dependencies": { - "jest-get-type": "^29.6.3" - }, + "node_modules/@npmcli/arborist/node_modules/lru-cache": { + "version": "11.2.4", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.2.4.tgz", + "integrity": "sha512-B5Y16Jr9LB9dHVkh6ZevG+vAbOsNOYCX+sXvFWFu7B3Iz5mijW3zdbMyhsh8ANd2mSWBYdJgnqi+mL7/LrOPYg==", + "license": "BlueOak-1.0.0", "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": "20 || >=22" } }, - "node_modules/@jest/fake-timers": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-29.7.0.tgz", - "integrity": "sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ==", - "dev": true, - "license": "MIT", + "node_modules/@npmcli/arborist/node_modules/minimatch": { + "version": "10.1.1", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.1.1.tgz", + "integrity": "sha512-enIvLvRAFZYXJzkCYG5RKmPfrFArdLv+R+lbQ53BmIMLIry74bjKzX6iHAm8WYamJkhSSEabrWN5D97XnKObjQ==", + "license": "BlueOak-1.0.0", "dependencies": { - "@jest/types": "^29.6.3", - "@sinonjs/fake-timers": "^10.0.2", - "@types/node": "*", - "jest-message-util": "^29.7.0", - "jest-mock": "^29.7.0", - "jest-util": "^29.7.0" + "@isaacs/brace-expansion": "^5.0.0" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": "20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/@jest/globals": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-29.7.0.tgz", - "integrity": "sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ==", - "dev": true, - "license": "MIT", + "node_modules/@npmcli/fs": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-5.0.0.tgz", + "integrity": "sha512-7OsC1gNORBEawOa5+j2pXN9vsicaIOH5cPXxoR6fJOmH6/EXpJB2CajXOu1fPRFun2m1lktEFX11+P89hqO/og==", + "license": "ISC", "dependencies": { - "@jest/environment": "^29.7.0", - "@jest/expect": "^29.7.0", - "@jest/types": "^29.6.3", - "jest-mock": "^29.7.0" + "semver": "^7.3.5" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": "^20.17.0 || >=22.9.0" } }, - "node_modules/@jest/reporters": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-29.7.0.tgz", - "integrity": "sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg==", - "dev": true, - "license": "MIT", + "node_modules/@npmcli/git": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/@npmcli/git/-/git-7.0.1.tgz", + "integrity": "sha512-+XTFxK2jJF/EJJ5SoAzXk3qwIDfvFc5/g+bD274LZ7uY7LE8sTfG6Z8rOanPl2ZEvZWqNvmEdtXC25cE54VcoA==", + "license": "ISC", "dependencies": { - "@bcoe/v8-coverage": "^0.2.3", - "@jest/console": "^29.7.0", - "@jest/test-result": "^29.7.0", - "@jest/transform": "^29.7.0", - "@jest/types": "^29.6.3", - "@jridgewell/trace-mapping": "^0.3.18", - "@types/node": "*", - "chalk": "^4.0.0", - "collect-v8-coverage": "^1.0.0", - "exit": "^0.1.2", - "glob": "^7.1.3", - "graceful-fs": "^4.2.9", - "istanbul-lib-coverage": "^3.0.0", - "istanbul-lib-instrument": "^6.0.0", - "istanbul-lib-report": "^3.0.0", - "istanbul-lib-source-maps": "^4.0.0", - "istanbul-reports": "^3.1.3", - "jest-message-util": "^29.7.0", - "jest-util": "^29.7.0", - "jest-worker": "^29.7.0", - "slash": "^3.0.0", - "string-length": "^4.0.1", - "strip-ansi": "^6.0.0", - "v8-to-istanbul": "^9.0.1" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - }, - "peerDependencies": { - "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + "@npmcli/promise-spawn": "^9.0.0", + "ini": "^6.0.0", + "lru-cache": "^11.2.1", + "npm-pick-manifest": "^11.0.1", + "proc-log": "^6.0.0", + "promise-retry": "^2.0.1", + "semver": "^7.3.5", + "which": "^6.0.0" }, - "peerDependenciesMeta": { - "node-notifier": { - "optional": true - } + "engines": { + "node": "^20.17.0 || >=22.9.0" } }, - "node_modules/@jest/schemas": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz", - "integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@sinclair/typebox": "^0.27.8" - }, + "node_modules/@npmcli/git/node_modules/ini": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/ini/-/ini-6.0.0.tgz", + "integrity": "sha512-IBTdIkzZNOpqm7q3dRqJvMaldXjDHWkEDfrwGEQTs5eaQMWV+djAhR+wahyNNMAa+qpbDUhBMVt4ZKNwpPm7xQ==", + "license": "ISC", "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": "^20.17.0 || >=22.9.0" } }, - "node_modules/@jest/source-map": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-29.6.3.tgz", - "integrity": "sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jridgewell/trace-mapping": "^0.3.18", - "callsites": "^3.0.0", - "graceful-fs": "^4.2.9" - }, + "node_modules/@npmcli/git/node_modules/isexe": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-3.1.1.tgz", + "integrity": "sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==", + "license": "ISC", "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=16" } }, - "node_modules/@jest/test-result": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-29.7.0.tgz", - "integrity": "sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/console": "^29.7.0", - "@jest/types": "^29.6.3", - "@types/istanbul-lib-coverage": "^2.0.0", - "collect-v8-coverage": "^1.0.0" - }, + "node_modules/@npmcli/git/node_modules/lru-cache": { + "version": "11.2.4", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.2.4.tgz", + "integrity": "sha512-B5Y16Jr9LB9dHVkh6ZevG+vAbOsNOYCX+sXvFWFu7B3Iz5mijW3zdbMyhsh8ANd2mSWBYdJgnqi+mL7/LrOPYg==", + "license": "BlueOak-1.0.0", "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": "20 || >=22" } }, - "node_modules/@jest/test-sequencer": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-29.7.0.tgz", - "integrity": "sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw==", - "dev": true, - "license": "MIT", + "node_modules/@npmcli/git/node_modules/which": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/which/-/which-6.0.0.tgz", + "integrity": "sha512-f+gEpIKMR9faW/JgAgPK1D7mekkFoqbmiwvNzuhsHetni20QSgzg9Vhn0g2JSJkkfehQnqdUAx7/e15qS1lPxg==", + "license": "ISC", "dependencies": { - "@jest/test-result": "^29.7.0", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.7.0", - "slash": "^3.0.0" + "isexe": "^3.1.1" + }, + "bin": { + "node-which": "bin/which.js" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": "^20.17.0 || >=22.9.0" } }, - "node_modules/@jest/transform": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-29.7.0.tgz", - "integrity": "sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==", - "dev": true, - "license": "MIT", + "node_modules/@npmcli/installed-package-contents": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@npmcli/installed-package-contents/-/installed-package-contents-4.0.0.tgz", + "integrity": "sha512-yNyAdkBxB72gtZ4GrwXCM0ZUedo9nIbOMKfGjt6Cu6DXf0p8y1PViZAKDC8q8kv/fufx0WTjRBdSlyrvnP7hmA==", + "license": "ISC", "dependencies": { - "@babel/core": "^7.11.6", - "@jest/types": "^29.6.3", - "@jridgewell/trace-mapping": "^0.3.18", - "babel-plugin-istanbul": "^6.1.1", - "chalk": "^4.0.0", - "convert-source-map": "^2.0.0", - "fast-json-stable-stringify": "^2.1.0", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.7.0", - "jest-regex-util": "^29.6.3", - "jest-util": "^29.7.0", - "micromatch": "^4.0.4", - "pirates": "^4.0.4", - "slash": "^3.0.0", - "write-file-atomic": "^4.0.2" + "npm-bundled": "^5.0.0", + "npm-normalize-package-bin": "^5.0.0" + }, + "bin": { + "installed-package-contents": "bin/index.js" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": "^20.17.0 || >=22.9.0" } }, - "node_modules/@jest/types": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.6.3.tgz", - "integrity": "sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==", - "dev": true, - "license": "MIT", + "node_modules/@npmcli/map-workspaces": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/@npmcli/map-workspaces/-/map-workspaces-5.0.3.tgz", + "integrity": "sha512-o2grssXo1e774E5OtEwwrgoszYRh0lqkJH+Pb9r78UcqdGJRDRfhpM8DvZPjzNLLNYeD/rNbjOKM3Ss5UABROw==", + "license": "ISC", "dependencies": { - "@jest/schemas": "^29.6.3", - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^17.0.8", - "chalk": "^4.0.0" + "@npmcli/name-from-folder": "^4.0.0", + "@npmcli/package-json": "^7.0.0", + "glob": "^13.0.0", + "minimatch": "^10.0.3" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": "^20.17.0 || >=22.9.0" } }, - "node_modules/@jridgewell/gen-mapping": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", - "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", - "dev": true, - "license": "MIT", + "node_modules/@npmcli/map-workspaces/node_modules/glob": { + "version": "13.0.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-13.0.0.tgz", + "integrity": "sha512-tvZgpqk6fz4BaNZ66ZsRaZnbHvP/jG3uKJvAZOwEVUL4RTA5nJeeLYfyN9/VA8NX/V3IBG+hkeuGpKjvELkVhA==", + "license": "BlueOak-1.0.0", "dependencies": { - "@jridgewell/set-array": "^1.2.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.24" + "minimatch": "^10.1.1", + "minipass": "^7.1.2", + "path-scurry": "^2.0.0" }, "engines": { - "node": ">=6.0.0" + "node": "20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", - "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", - "dev": true, - "license": "MIT", + "node_modules/@npmcli/map-workspaces/node_modules/lru-cache": { + "version": "11.2.4", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.2.4.tgz", + "integrity": "sha512-B5Y16Jr9LB9dHVkh6ZevG+vAbOsNOYCX+sXvFWFu7B3Iz5mijW3zdbMyhsh8ANd2mSWBYdJgnqi+mL7/LrOPYg==", + "license": "BlueOak-1.0.0", "engines": { - "node": ">=6.0.0" + "node": "20 || >=22" } }, - "node_modules/@jridgewell/set-array": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", - "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", - "dev": true, - "license": "MIT", + "node_modules/@npmcli/map-workspaces/node_modules/minimatch": { + "version": "10.1.1", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.1.1.tgz", + "integrity": "sha512-enIvLvRAFZYXJzkCYG5RKmPfrFArdLv+R+lbQ53BmIMLIry74bjKzX6iHAm8WYamJkhSSEabrWN5D97XnKObjQ==", + "license": "BlueOak-1.0.0", + "dependencies": { + "@isaacs/brace-expansion": "^5.0.0" + }, "engines": { - "node": ">=6.0.0" + "node": "20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", - "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.25", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", - "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", - "dev": true, - "license": "MIT", + "node_modules/@npmcli/map-workspaces/node_modules/path-scurry": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-2.0.1.tgz", + "integrity": "sha512-oWyT4gICAu+kaA7QWk/jvCHWarMKNs6pXOGWKDTr7cw4IGcUbW+PeTfbaQiLGheFRpjo6O9J0PmyMfQPjH71oA==", + "license": "BlueOak-1.0.0", "dependencies": { - "@jridgewell/resolve-uri": "^3.1.0", - "@jridgewell/sourcemap-codec": "^1.4.14" + "lru-cache": "^11.0.0", + "minipass": "^7.1.2" + }, + "engines": { + "node": "20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/@nodelib/fs.scandir": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", - "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", - "license": "MIT", + "node_modules/@npmcli/metavuln-calculator": { + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/@npmcli/metavuln-calculator/-/metavuln-calculator-9.0.3.tgz", + "integrity": "sha512-94GLSYhLXF2t2LAC7pDwLaM4uCARzxShyAQKsirmlNcpidH89VA4/+K1LbJmRMgz5gy65E/QBBWQdUvGLe2Frg==", + "license": "ISC", "dependencies": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" + "cacache": "^20.0.0", + "json-parse-even-better-errors": "^5.0.0", + "pacote": "^21.0.0", + "proc-log": "^6.0.0", + "semver": "^7.3.5" }, "engines": { - "node": ">= 8" + "node": "^20.17.0 || >=22.9.0" } }, - "node_modules/@nodelib/fs.stat": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", - "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", - "license": "MIT", + "node_modules/@npmcli/name-from-folder": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@npmcli/name-from-folder/-/name-from-folder-4.0.0.tgz", + "integrity": "sha512-qfrhVlOSqmKM8i6rkNdZzABj8MKEITGFAY+4teqBziksCQAOLutiAxM1wY2BKEd8KjUSpWmWCYxvXr0y4VTlPg==", + "license": "ISC", "engines": { - "node": ">= 8" + "node": "^20.17.0 || >=22.9.0" } }, - "node_modules/@nodelib/fs.walk": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", - "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", - "license": "MIT", + "node_modules/@npmcli/node-gyp": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@npmcli/node-gyp/-/node-gyp-5.0.0.tgz", + "integrity": "sha512-uuG5HZFXLfyFKqg8QypsmgLQW7smiRjVc45bqD/ofZZcR/uxEjgQU8qDPv0s9TEeMUiAAU/GC5bR6++UdTirIQ==", + "license": "ISC", + "engines": { + "node": "^20.17.0 || >=22.9.0" + } + }, + "node_modules/@npmcli/package-json": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/@npmcli/package-json/-/package-json-7.0.4.tgz", + "integrity": "sha512-0wInJG3j/K40OJt/33ax47WfWMzZTm6OQxB9cDhTt5huCP2a9g2GnlsxmfN+PulItNPIpPrZ+kfwwUil7eHcZQ==", + "license": "ISC", "dependencies": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" + "@npmcli/git": "^7.0.0", + "glob": "^13.0.0", + "hosted-git-info": "^9.0.0", + "json-parse-even-better-errors": "^5.0.0", + "proc-log": "^6.0.0", + "semver": "^7.5.3", + "validate-npm-package-license": "^3.0.4" }, "engines": { - "node": ">= 8" + "node": "^20.17.0 || >=22.9.0" } }, - "node_modules/@npmcli/arborist": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/@npmcli/arborist/-/arborist-4.3.1.tgz", - "integrity": "sha512-yMRgZVDpwWjplorzt9SFSaakWx6QIK248Nw4ZFgkrAy/GvJaFRaSZzE6nD7JBK5r8g/+PTxFq5Wj/sfciE7x+A==", - "license": "ISC", + "node_modules/@npmcli/package-json/node_modules/glob": { + "version": "13.0.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-13.0.0.tgz", + "integrity": "sha512-tvZgpqk6fz4BaNZ66ZsRaZnbHvP/jG3uKJvAZOwEVUL4RTA5nJeeLYfyN9/VA8NX/V3IBG+hkeuGpKjvELkVhA==", + "license": "BlueOak-1.0.0", "dependencies": { - "@isaacs/string-locale-compare": "^1.1.0", - "@npmcli/installed-package-contents": "^1.0.7", - "@npmcli/map-workspaces": "^2.0.0", - "@npmcli/metavuln-calculator": "^2.0.0", - "@npmcli/move-file": "^1.1.0", - "@npmcli/name-from-folder": "^1.0.1", - "@npmcli/node-gyp": "^1.0.3", - "@npmcli/package-json": "^1.0.1", - "@npmcli/run-script": "^2.0.0", - "bin-links": "^3.0.0", - "cacache": "^15.0.3", - "common-ancestor-path": "^1.0.1", - "json-parse-even-better-errors": "^2.3.1", - "json-stringify-nice": "^1.1.4", - "mkdirp": "^1.0.4", - "mkdirp-infer-owner": "^2.0.0", - "npm-install-checks": "^4.0.0", - "npm-package-arg": "^8.1.5", - "npm-pick-manifest": "^6.1.0", - "npm-registry-fetch": "^12.0.1", - "pacote": "^12.0.2", - "parse-conflict-json": "^2.0.1", - "proc-log": "^1.0.0", - "promise-all-reject-late": "^1.0.0", - "promise-call-limit": "^1.0.1", - "read-package-json-fast": "^2.0.2", - "readdir-scoped-modules": "^1.1.0", - "rimraf": "^3.0.2", - "semver": "^7.3.5", - "ssri": "^8.0.1", - "treeverse": "^1.0.4", - "walk-up-path": "^1.0.0" + "minimatch": "^10.1.1", + "minipass": "^7.1.2", + "path-scurry": "^2.0.0" }, - "bin": { - "arborist": "bin/index.js" + "engines": { + "node": "20 || >=22" }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@npmcli/package-json/node_modules/lru-cache": { + "version": "11.2.4", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.2.4.tgz", + "integrity": "sha512-B5Y16Jr9LB9dHVkh6ZevG+vAbOsNOYCX+sXvFWFu7B3Iz5mijW3zdbMyhsh8ANd2mSWBYdJgnqi+mL7/LrOPYg==", + "license": "BlueOak-1.0.0", "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16" + "node": "20 || >=22" } }, - "node_modules/@npmcli/arborist/node_modules/mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "license": "MIT", - "bin": { - "mkdirp": "bin/cmd.js" + "node_modules/@npmcli/package-json/node_modules/minimatch": { + "version": "10.1.1", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.1.1.tgz", + "integrity": "sha512-enIvLvRAFZYXJzkCYG5RKmPfrFArdLv+R+lbQ53BmIMLIry74bjKzX6iHAm8WYamJkhSSEabrWN5D97XnKObjQ==", + "license": "BlueOak-1.0.0", + "dependencies": { + "@isaacs/brace-expansion": "^5.0.0" }, "engines": { - "node": ">=10" + "node": "20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/@npmcli/arborist/node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "deprecated": "Rimraf versions prior to v4 are no longer supported", - "license": "ISC", + "node_modules/@npmcli/package-json/node_modules/path-scurry": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-2.0.1.tgz", + "integrity": "sha512-oWyT4gICAu+kaA7QWk/jvCHWarMKNs6pXOGWKDTr7cw4IGcUbW+PeTfbaQiLGheFRpjo6O9J0PmyMfQPjH71oA==", + "license": "BlueOak-1.0.0", "dependencies": { - "glob": "^7.1.3" + "lru-cache": "^11.0.0", + "minipass": "^7.1.2" }, - "bin": { - "rimraf": "bin.js" + "engines": { + "node": "20 || >=22" }, "funding": { "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/@npmcli/fs": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-1.1.1.tgz", - "integrity": "sha512-8KG5RD0GVP4ydEzRn/I4BNDuxDtqVbOdm8675T49OIG/NGhaK0pjPX7ZcDlvKYbA+ulvVK3ztfcF4uBdOxuJbQ==", + "node_modules/@npmcli/promise-spawn": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/@npmcli/promise-spawn/-/promise-spawn-9.0.1.tgz", + "integrity": "sha512-OLUaoqBuyxeTqUvjA3FZFiXUfYC1alp3Sa99gW3EUDz3tZ3CbXDdcZ7qWKBzicrJleIgucoWamWH1saAmH/l2Q==", "license": "ISC", "dependencies": { - "@gar/promisify": "^1.0.1", - "semver": "^7.3.5" + "which": "^6.0.0" + }, + "engines": { + "node": "^20.17.0 || >=22.9.0" } }, - "node_modules/@npmcli/git": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@npmcli/git/-/git-2.1.0.tgz", - "integrity": "sha512-/hBFX/QG1b+N7PZBFs0bi+evgRZcK9nWBxQKZkGoXUT5hJSwl5c4d7y8/hm+NQZRPhQ67RzFaj5UM9YeyKoryw==", + "node_modules/@npmcli/promise-spawn/node_modules/isexe": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-3.1.1.tgz", + "integrity": "sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==", "license": "ISC", - "dependencies": { - "@npmcli/promise-spawn": "^1.3.2", - "lru-cache": "^6.0.0", - "mkdirp": "^1.0.4", - "npm-pick-manifest": "^6.1.1", - "promise-inflight": "^1.0.1", - "promise-retry": "^2.0.1", - "semver": "^7.3.5", - "which": "^2.0.2" + "engines": { + "node": ">=16" } }, - "node_modules/@npmcli/git/node_modules/lru-cache": { + "node_modules/@npmcli/promise-spawn/node_modules/which": { "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "resolved": "https://registry.npmjs.org/which/-/which-6.0.0.tgz", + "integrity": "sha512-f+gEpIKMR9faW/JgAgPK1D7mekkFoqbmiwvNzuhsHetni20QSgzg9Vhn0g2JSJkkfehQnqdUAx7/e15qS1lPxg==", "license": "ISC", "dependencies": { - "yallist": "^4.0.0" + "isexe": "^3.1.1" + }, + "bin": { + "node-which": "bin/which.js" }, "engines": { - "node": ">=10" + "node": "^20.17.0 || >=22.9.0" } }, - "node_modules/@npmcli/git/node_modules/mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "license": "MIT", - "bin": { - "mkdirp": "bin/cmd.js" + "node_modules/@npmcli/query": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@npmcli/query/-/query-5.0.0.tgz", + "integrity": "sha512-8TZWfTQOsODpLqo9SVhVjHovmKXNpevHU0gO9e+y4V4fRIOneiXy0u0sMP9LmS71XivrEWfZWg50ReH4WRT4aQ==", + "license": "ISC", + "dependencies": { + "postcss-selector-parser": "^7.0.0" }, "engines": { - "node": ">=10" + "node": "^20.17.0 || >=22.9.0" } }, - "node_modules/@npmcli/git/node_modules/yallist": { + "node_modules/@npmcli/redact": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "license": "ISC" + "resolved": "https://registry.npmjs.org/@npmcli/redact/-/redact-4.0.0.tgz", + "integrity": "sha512-gOBg5YHMfZy+TfHArfVogwgfBeQnKbbGo3pSUyK/gSI0AVu+pEiDVcKlQb0D8Mg1LNRZILZ6XG8I5dJ4KuAd9Q==", + "license": "ISC", + "engines": { + "node": "^20.17.0 || >=22.9.0" + } }, - "node_modules/@npmcli/installed-package-contents": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/@npmcli/installed-package-contents/-/installed-package-contents-1.0.7.tgz", - "integrity": "sha512-9rufe0wnJusCQoLpV9ZPKIVP55itrM5BxOXs10DmdbRfgWtHy1LDyskbwRnBghuB0PrF7pNPOqREVtpz4HqzKw==", + "node_modules/@npmcli/run-script": { + "version": "10.0.3", + "resolved": "https://registry.npmjs.org/@npmcli/run-script/-/run-script-10.0.3.tgz", + "integrity": "sha512-ER2N6itRkzWbbtVmZ9WKaWxVlKlOeBFF1/7xx+KA5J1xKa4JjUwBdb6tDpk0v1qA+d+VDwHI9qmLcXSWcmi+Rw==", "license": "ISC", "dependencies": { - "npm-bundled": "^1.1.1", - "npm-normalize-package-bin": "^1.0.1" - }, - "bin": { - "installed-package-contents": "index.js" + "@npmcli/node-gyp": "^5.0.0", + "@npmcli/package-json": "^7.0.0", + "@npmcli/promise-spawn": "^9.0.0", + "node-gyp": "^12.1.0", + "proc-log": "^6.0.0", + "which": "^6.0.0" }, "engines": { - "node": ">= 10" + "node": "^20.17.0 || >=22.9.0" } }, - "node_modules/@npmcli/map-workspaces": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@npmcli/map-workspaces/-/map-workspaces-2.0.4.tgz", - "integrity": "sha512-bMo0aAfwhVwqoVM5UzX1DJnlvVvzDCHae821jv48L1EsrYwfOZChlqWYXEtto/+BkBXetPbEWgau++/brh4oVg==", + "node_modules/@npmcli/run-script/node_modules/isexe": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-3.1.1.tgz", + "integrity": "sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==", + "license": "ISC", + "engines": { + "node": ">=16" + } + }, + "node_modules/@npmcli/run-script/node_modules/which": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/which/-/which-6.0.0.tgz", + "integrity": "sha512-f+gEpIKMR9faW/JgAgPK1D7mekkFoqbmiwvNzuhsHetni20QSgzg9Vhn0g2JSJkkfehQnqdUAx7/e15qS1lPxg==", "license": "ISC", "dependencies": { - "@npmcli/name-from-folder": "^1.0.1", - "glob": "^8.0.1", - "minimatch": "^5.0.1", - "read-package-json-fast": "^2.0.3" + "isexe": "^3.1.1" + }, + "bin": { + "node-which": "bin/which.js" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "node": "^20.17.0 || >=22.9.0" } }, - "node_modules/@npmcli/map-workspaces/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "node_modules/@octokit/auth-token": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-5.1.2.tgz", + "integrity": "sha512-JcQDsBdg49Yky2w2ld20IHAlwr8d/d8N6NiOXbtuoPCqzbsiJgF633mVUw3x4mo0H5ypataQIX7SFu3yy44Mpw==", "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0" + "engines": { + "node": ">= 18" } }, - "node_modules/@npmcli/map-workspaces/node_modules/glob": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", - "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", - "deprecated": "Glob versions prior to v9 are no longer supported", - "license": "ISC", + "node_modules/@octokit/core": { + "version": "6.1.6", + "resolved": "https://registry.npmjs.org/@octokit/core/-/core-6.1.6.tgz", + "integrity": "sha512-kIU8SLQkYWGp3pVKiYzA5OSaNF5EE03P/R8zEmmrG6XwOg5oBjXyQVVIauQ0dgau4zYhpZEhJrvIYt6oM+zZZA==", + "license": "MIT", + "peer": true, "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^5.0.1", - "once": "^1.3.0" + "@octokit/auth-token": "^5.0.0", + "@octokit/graphql": "^8.2.2", + "@octokit/request": "^9.2.3", + "@octokit/request-error": "^6.1.8", + "@octokit/types": "^14.0.0", + "before-after-hook": "^3.0.2", + "universal-user-agent": "^7.0.0" }, "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "node": ">= 18" } }, - "node_modules/@npmcli/map-workspaces/node_modules/minimatch": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", - "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", - "license": "ISC", + "node_modules/@octokit/endpoint": { + "version": "10.1.4", + "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-10.1.4.tgz", + "integrity": "sha512-OlYOlZIsfEVZm5HCSR8aSg02T2lbUWOsCQoPKfTXJwDzcHQBrVBGdGXb89dv2Kw2ToZaRtudp8O3ZIYoaOjKlA==", + "license": "MIT", "dependencies": { - "brace-expansion": "^2.0.1" + "@octokit/types": "^14.0.0", + "universal-user-agent": "^7.0.2" }, "engines": { - "node": ">=10" + "node": ">= 18" } }, - "node_modules/@npmcli/metavuln-calculator": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@npmcli/metavuln-calculator/-/metavuln-calculator-2.0.0.tgz", - "integrity": "sha512-VVW+JhWCKRwCTE+0xvD6p3uV4WpqocNYYtzyvenqL/u1Q3Xx6fGTJ+6UoIoii07fbuEO9U3IIyuGY0CYHDv1sg==", - "license": "ISC", + "node_modules/@octokit/graphql": { + "version": "8.2.2", + "resolved": "https://registry.npmjs.org/@octokit/graphql/-/graphql-8.2.2.tgz", + "integrity": "sha512-Yi8hcoqsrXGdt0yObxbebHXFOiUA+2v3n53epuOg1QUgOB6c4XzvisBNVXJSl8RYA5KrDuSL2yq9Qmqe5N0ryA==", + "license": "MIT", "dependencies": { - "cacache": "^15.0.5", - "json-parse-even-better-errors": "^2.3.1", - "pacote": "^12.0.0", - "semver": "^7.3.2" + "@octokit/request": "^9.2.3", + "@octokit/types": "^14.0.0", + "universal-user-agent": "^7.0.0" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16" + "node": ">= 18" } }, - "node_modules/@npmcli/move-file": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-1.1.2.tgz", - "integrity": "sha512-1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg==", - "deprecated": "This functionality has been moved to @npmcli/fs", + "node_modules/@octokit/openapi-types": { + "version": "25.1.0", + "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-25.1.0.tgz", + "integrity": "sha512-idsIggNXUKkk0+BExUn1dQ92sfysJrje03Q0bv0e+KPLrvyqZF8MnBpFz8UNfYDwB3Ie7Z0TByjWfzxt7vseaA==", + "license": "MIT" + }, + "node_modules/@octokit/plugin-paginate-rest": { + "version": "11.6.0", + "resolved": "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-11.6.0.tgz", + "integrity": "sha512-n5KPteiF7pWKgBIBJSk8qzoZWcUkza2O6A0za97pMGVrGfPdltxrfmfF5GucHYvHGZD8BdaZmmHGz5cX/3gdpw==", "license": "MIT", "dependencies": { - "mkdirp": "^1.0.4", - "rimraf": "^3.0.2" + "@octokit/types": "^13.10.0" }, "engines": { - "node": ">=10" + "node": ">= 18" + }, + "peerDependencies": { + "@octokit/core": ">=6" } }, - "node_modules/@npmcli/move-file/node_modules/mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "node_modules/@octokit/plugin-paginate-rest/node_modules/@octokit/openapi-types": { + "version": "24.2.0", + "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-24.2.0.tgz", + "integrity": "sha512-9sIH3nSUttelJSXUrmGzl7QUBFul0/mB8HRYl3fOlgHbIWG+WnYDXU3v/2zMtAvuzZ/ed00Ei6on975FhBfzrg==", + "license": "MIT" + }, + "node_modules/@octokit/plugin-paginate-rest/node_modules/@octokit/types": { + "version": "13.10.0", + "resolved": "https://registry.npmjs.org/@octokit/types/-/types-13.10.0.tgz", + "integrity": "sha512-ifLaO34EbbPj0Xgro4G5lP5asESjwHracYJvVaPIyXMuiuXLlhic3S47cBdTb+jfODkTE5YtGCLt3Ay3+J97sA==", + "license": "MIT", + "dependencies": { + "@octokit/openapi-types": "^24.2.0" + } + }, + "node_modules/@octokit/plugin-request-log": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/@octokit/plugin-request-log/-/plugin-request-log-5.3.1.tgz", + "integrity": "sha512-n/lNeCtq+9ofhC15xzmJCNKP2BWTv8Ih2TTy+jatNCCq/gQP/V7rK3fjIfuz0pDWDALO/o/4QY4hyOF6TQQFUw==", "license": "MIT", - "bin": { - "mkdirp": "bin/cmd.js" - }, "engines": { - "node": ">=10" + "node": ">= 18" + }, + "peerDependencies": { + "@octokit/core": ">=6" } }, - "node_modules/@npmcli/move-file/node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "deprecated": "Rimraf versions prior to v4 are no longer supported", - "license": "ISC", + "node_modules/@octokit/plugin-rest-endpoint-methods": { + "version": "13.5.0", + "resolved": "https://registry.npmjs.org/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-13.5.0.tgz", + "integrity": "sha512-9Pas60Iv9ejO3WlAX3maE1+38c5nqbJXV5GrncEfkndIpZrJ/WPMRd2xYDcPPEt5yzpxcjw9fWNoPhsSGzqKqw==", + "license": "MIT", "dependencies": { - "glob": "^7.1.3" + "@octokit/types": "^13.10.0" }, - "bin": { - "rimraf": "bin.js" + "engines": { + "node": ">= 18" }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "peerDependencies": { + "@octokit/core": ">=6" } }, - "node_modules/@npmcli/name-from-folder": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@npmcli/name-from-folder/-/name-from-folder-1.0.1.tgz", - "integrity": "sha512-qq3oEfcLFwNfEYOQ8HLimRGKlD8WSeGEdtUa7hmzpR8Sa7haL1KVQrvgO6wqMjhWFFVjgtrh1gIxDz+P8sjUaA==", - "license": "ISC" - }, - "node_modules/@npmcli/node-gyp": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@npmcli/node-gyp/-/node-gyp-1.0.3.tgz", - "integrity": "sha512-fnkhw+fmX65kiLqk6E3BFLXNC26rUhK90zVwe2yncPliVT/Qos3xjhTLE59Df8KnPlcwIERXKVlU1bXoUQ+liA==", - "license": "ISC" + "node_modules/@octokit/plugin-rest-endpoint-methods/node_modules/@octokit/openapi-types": { + "version": "24.2.0", + "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-24.2.0.tgz", + "integrity": "sha512-9sIH3nSUttelJSXUrmGzl7QUBFul0/mB8HRYl3fOlgHbIWG+WnYDXU3v/2zMtAvuzZ/ed00Ei6on975FhBfzrg==", + "license": "MIT" }, - "node_modules/@npmcli/package-json": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@npmcli/package-json/-/package-json-1.0.1.tgz", - "integrity": "sha512-y6jnu76E9C23osz8gEMBayZmaZ69vFOIk8vR1FJL/wbEJ54+9aVG9rLTjQKSXfgYZEr50nw1txBBFfBZZe+bYg==", - "license": "ISC", + "node_modules/@octokit/plugin-rest-endpoint-methods/node_modules/@octokit/types": { + "version": "13.10.0", + "resolved": "https://registry.npmjs.org/@octokit/types/-/types-13.10.0.tgz", + "integrity": "sha512-ifLaO34EbbPj0Xgro4G5lP5asESjwHracYJvVaPIyXMuiuXLlhic3S47cBdTb+jfODkTE5YtGCLt3Ay3+J97sA==", + "license": "MIT", "dependencies": { - "json-parse-even-better-errors": "^2.3.1" + "@octokit/openapi-types": "^24.2.0" } }, - "node_modules/@npmcli/promise-spawn": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/@npmcli/promise-spawn/-/promise-spawn-1.3.2.tgz", - "integrity": "sha512-QyAGYo/Fbj4MXeGdJcFzZ+FkDkomfRBrPM+9QYJSg+PxgAUL+LU3FneQk37rKR2/zjqkCV1BLHccX98wRXG3Sg==", - "license": "ISC", + "node_modules/@octokit/request": { + "version": "9.2.4", + "resolved": "https://registry.npmjs.org/@octokit/request/-/request-9.2.4.tgz", + "integrity": "sha512-q8ybdytBmxa6KogWlNa818r0k1wlqzNC+yNkcQDECHvQo8Vmstrg18JwqJHdJdUiHD2sjlwBgSm9kHkOKe2iyA==", + "license": "MIT", "dependencies": { - "infer-owner": "^1.0.4" + "@octokit/endpoint": "^10.1.4", + "@octokit/request-error": "^6.1.8", + "@octokit/types": "^14.0.0", + "fast-content-type-parse": "^2.0.0", + "universal-user-agent": "^7.0.2" + }, + "engines": { + "node": ">= 18" } }, - "node_modules/@npmcli/run-script": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@npmcli/run-script/-/run-script-2.0.0.tgz", - "integrity": "sha512-fSan/Pu11xS/TdaTpTB0MRn9guwGU8dye+x56mEVgBEd/QsybBbYcAL0phPXi8SGWFEChkQd6M9qL4y6VOpFig==", - "license": "ISC", + "node_modules/@octokit/request-error": { + "version": "6.1.8", + "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-6.1.8.tgz", + "integrity": "sha512-WEi/R0Jmq+IJKydWlKDmryPcmdYSVjL3ekaiEL1L9eo1sUnqMJ+grqmC9cjk7CA7+b2/T397tO5d8YLOH3qYpQ==", + "license": "MIT", "dependencies": { - "@npmcli/node-gyp": "^1.0.2", - "@npmcli/promise-spawn": "^1.3.2", - "node-gyp": "^8.2.0", - "read-package-json-fast": "^2.0.1" + "@octokit/types": "^14.0.0" + }, + "engines": { + "node": ">= 18" } }, - "node_modules/@octokit/auth-token": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-2.5.0.tgz", - "integrity": "sha512-r5FVUJCOLl19AxiuZD2VRZ/ORjp/4IN98Of6YJoJOkY75CIBuYfmiNHGrDwXr+aLGG55igl9QrxX3hbiXlLb+g==", + "node_modules/@octokit/rest": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/@octokit/rest/-/rest-21.1.1.tgz", + "integrity": "sha512-sTQV7va0IUVZcntzy1q3QqPm/r8rWtDCqpRAmb8eXXnKkjoQEtFe3Nt5GTVsHft+R6jJoHeSiVLcgcvhtue/rg==", "license": "MIT", "dependencies": { - "@octokit/types": "^6.0.3" + "@octokit/core": "^6.1.4", + "@octokit/plugin-paginate-rest": "^11.4.2", + "@octokit/plugin-request-log": "^5.3.1", + "@octokit/plugin-rest-endpoint-methods": "^13.3.0" + }, + "engines": { + "node": ">= 18" } }, - "node_modules/@octokit/core": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/@octokit/core/-/core-3.6.0.tgz", - "integrity": "sha512-7RKRKuA4xTjMhY+eG3jthb3hlZCsOwg3rztWh75Xc+ShDWOfDDATWbeZpAHBNRpm4Tv9WgBMOy1zEJYXG6NJ7Q==", + "node_modules/@octokit/types": { + "version": "14.1.0", + "resolved": "https://registry.npmjs.org/@octokit/types/-/types-14.1.0.tgz", + "integrity": "sha512-1y6DgTy8Jomcpu33N+p5w58l6xyt55Ar2I91RPiIA0xCJBXyUAhXCcmZaDWSANiha7R9a6qJJ2CRomGPZ6f46g==", "license": "MIT", "dependencies": { - "@octokit/auth-token": "^2.4.4", - "@octokit/graphql": "^4.5.8", - "@octokit/request": "^5.6.3", - "@octokit/request-error": "^2.0.5", - "@octokit/types": "^6.0.3", - "before-after-hook": "^2.2.0", - "universal-user-agent": "^6.0.0" + "@octokit/openapi-types": "^25.1.0" } }, - "node_modules/@octokit/endpoint": { - "version": "6.0.12", - "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-6.0.12.tgz", - "integrity": "sha512-lF3puPwkQWGfkMClXb4k/eUT/nZKQfxinRWJrdZaJO85Dqwo/G0yOC434Jr2ojwafWJMYqFGFa5ms4jJUgujdA==", + "node_modules/@pkgjs/parseargs": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", + "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", "license": "MIT", - "dependencies": { - "@octokit/types": "^6.0.3", - "is-plain-object": "^5.0.0", - "universal-user-agent": "^6.0.0" + "optional": true, + "engines": { + "node": ">=14" } }, - "node_modules/@octokit/graphql": { - "version": "4.8.0", - "resolved": "https://registry.npmjs.org/@octokit/graphql/-/graphql-4.8.0.tgz", - "integrity": "sha512-0gv+qLSBLKF0z8TKaSKTsS39scVKF9dbMxJpj3U0vC7wjNWFuIpL/z76Qe2fiuCbDRcJSavkXsVtMS6/dtQQsg==", + "node_modules/@pnpm/config.env-replace": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@pnpm/config.env-replace/-/config.env-replace-1.1.0.tgz", + "integrity": "sha512-htyl8TWnKL7K/ESFa1oW2UB5lVDxuF5DpM7tBi6Hu2LNL3mWkIzNLG6N4zoCUP1lCKNxWy/3iu8mS8MvToGd6w==", "license": "MIT", - "dependencies": { - "@octokit/request": "^5.6.0", - "@octokit/types": "^6.0.3", - "universal-user-agent": "^6.0.0" + "engines": { + "node": ">=12.22.0" } }, - "node_modules/@octokit/openapi-types": { - "version": "12.11.0", - "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-12.11.0.tgz", - "integrity": "sha512-VsXyi8peyRq9PqIz/tpqiL2w3w80OgVMwBHltTml3LmVvXiphgeqmY9mvBw9Wu7e0QWk/fqD37ux8yP5uVekyQ==", - "license": "MIT" - }, - "node_modules/@octokit/plugin-paginate-rest": { - "version": "2.21.3", - "resolved": "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-2.21.3.tgz", - "integrity": "sha512-aCZTEf0y2h3OLbrgKkrfFdjRL6eSOo8komneVQJnYecAxIej7Bafor2xhuDJOIFau4pk0i/P28/XgtbyPF0ZHw==", + "node_modules/@pnpm/network.ca-file": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@pnpm/network.ca-file/-/network.ca-file-1.0.2.tgz", + "integrity": "sha512-YcPQ8a0jwYU9bTdJDpXjMi7Brhkr1mXsXrUJvjqM2mQDgkRiz8jFaQGOdaLxgjtUfQgZhKy/O3cG/YwmgKaxLA==", "license": "MIT", "dependencies": { - "@octokit/types": "^6.40.0" + "graceful-fs": "4.2.10" }, - "peerDependencies": { - "@octokit/core": ">=2" + "engines": { + "node": ">=12.22.0" } }, - "node_modules/@octokit/plugin-request-log": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@octokit/plugin-request-log/-/plugin-request-log-1.0.4.tgz", - "integrity": "sha512-mLUsMkgP7K/cnFEw07kWqXGF5LKrOkD+lhCrKvPHXWDywAwuDUeDwWBpc69XK3pNX0uKiVt8g5z96PJ6z9xCFA==", - "license": "MIT", - "peerDependencies": { - "@octokit/core": ">=3" - } + "node_modules/@pnpm/network.ca-file/node_modules/graceful-fs": { + "version": "4.2.10", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", + "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", + "license": "ISC" }, - "node_modules/@octokit/plugin-rest-endpoint-methods": { - "version": "5.16.2", - "resolved": "https://registry.npmjs.org/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-5.16.2.tgz", - "integrity": "sha512-8QFz29Fg5jDuTPXVtey05BLm7OB+M8fnvE64RNegzX7U+5NUXcOcnpTIK0YfSHBg8gYd0oxIq3IZTe9SfPZiRw==", + "node_modules/@pnpm/npm-conf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@pnpm/npm-conf/-/npm-conf-3.0.2.tgz", + "integrity": "sha512-h104Kh26rR8tm+a3Qkc5S4VLYint3FE48as7+/5oCEcKR2idC/pF1G6AhIXKI+eHPJa/3J9i5z0Al47IeGHPkA==", "license": "MIT", "dependencies": { - "@octokit/types": "^6.39.0", - "deprecation": "^2.3.1" + "@pnpm/config.env-replace": "^1.1.0", + "@pnpm/network.ca-file": "^1.0.1", + "config-chain": "^1.1.11" }, - "peerDependencies": { - "@octokit/core": ">=3" + "engines": { + "node": ">=12" } }, - "node_modules/@octokit/request": { - "version": "5.6.3", - "resolved": "https://registry.npmjs.org/@octokit/request/-/request-5.6.3.tgz", - "integrity": "sha512-bFJl0I1KVc9jYTe9tdGGpAMPy32dLBXXo1dS/YwSCTL/2nd9XeHsY616RE3HPXDVk+a+dBuzyz5YdlXwcDTr2A==", + "node_modules/@rollup/rollup-android-arm-eabi": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.55.1.tgz", + "integrity": "sha512-9R0DM/ykwfGIlNu6+2U09ga0WXeZ9MRC2Ter8jnz8415VbuIykVuc6bhdrbORFZANDmTDvq26mJrEVTl8TdnDg==", + "cpu": [ + "arm" + ], + "dev": true, "license": "MIT", - "dependencies": { - "@octokit/endpoint": "^6.0.1", - "@octokit/request-error": "^2.1.0", - "@octokit/types": "^6.16.1", - "is-plain-object": "^5.0.0", - "node-fetch": "^2.6.7", - "universal-user-agent": "^6.0.0" - } - }, - "node_modules/@octokit/request-error": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-2.1.0.tgz", - "integrity": "sha512-1VIvgXxs9WHSjicsRwq8PlR2LR2x6DwsJAaFgzdi0JfJoGSO8mYI/cHJQ+9FbN21aa+DrgNLnwObmyeSC8Rmpg==", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-android-arm64": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.55.1.tgz", + "integrity": "sha512-eFZCb1YUqhTysgW3sj/55du5cG57S7UTNtdMjCW7LwVcj3dTTcowCsC8p7uBdzKsZYa8J7IDE8lhMI+HX1vQvg==", + "cpu": [ + "arm64" + ], + "dev": true, "license": "MIT", - "dependencies": { - "@octokit/types": "^6.0.3", - "deprecation": "^2.0.0", - "once": "^1.4.0" - } - }, - "node_modules/@octokit/rest": { - "version": "18.12.0", - "resolved": "https://registry.npmjs.org/@octokit/rest/-/rest-18.12.0.tgz", - "integrity": "sha512-gDPiOHlyGavxr72y0guQEhLsemgVjwRePayJ+FcKc2SJqKUbxbkvf5kAZEWA/MKvsfYlQAMVzNJE3ezQcxMJ2Q==", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.55.1.tgz", + "integrity": "sha512-p3grE2PHcQm2e8PSGZdzIhCKbMCw/xi9XvMPErPhwO17vxtvCN5FEA2mSLgmKlCjHGMQTP6phuQTYWUnKewwGg==", + "cpu": [ + "arm64" + ], + "dev": true, "license": "MIT", - "dependencies": { - "@octokit/core": "^3.5.1", - "@octokit/plugin-paginate-rest": "^2.16.8", - "@octokit/plugin-request-log": "^1.0.4", - "@octokit/plugin-rest-endpoint-methods": "^5.12.0" - } - }, - "node_modules/@octokit/types": { - "version": "6.41.0", - "resolved": "https://registry.npmjs.org/@octokit/types/-/types-6.41.0.tgz", - "integrity": "sha512-eJ2jbzjdijiL3B4PrSQaSjuF2sPEQPVCPzBvTHJD9Nz+9dw2SGH4K4xeQJ77YfTq5bRQ+bD8wT11JbeDPmxmGg==", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-darwin-x64": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.55.1.tgz", + "integrity": "sha512-rDUjG25C9qoTm+e02Esi+aqTKSBYwVTaoS1wxcN47/Luqef57Vgp96xNANwt5npq9GDxsH7kXxNkJVEsWEOEaQ==", + "cpu": [ + "x64" + ], + "dev": true, "license": "MIT", - "dependencies": { - "@octokit/openapi-types": "^12.11.0" - } - }, - "node_modules/@pkgjs/parseargs": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", - "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-freebsd-arm64": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.55.1.tgz", + "integrity": "sha512-+JiU7Jbp5cdxekIgdte0jfcu5oqw4GCKr6i3PJTlXTCU5H5Fvtkpbs4XJHRmWNXF+hKmn4v7ogI5OQPaupJgOg==", + "cpu": [ + "arm64" + ], + "dev": true, "license": "MIT", "optional": true, - "engines": { - "node": ">=14" - } + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-freebsd-x64": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.55.1.tgz", + "integrity": "sha512-V5xC1tOVWtLLmr3YUk2f6EJK4qksksOYiz/TCsFHu/R+woubcLWdC9nZQmwjOAbmExBIVKsm1/wKmEy4z4u4Bw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.55.1.tgz", + "integrity": "sha512-Rn3n+FUk2J5VWx+ywrG/HGPTD9jXNbicRtTM11e/uorplArnXZYsVifnPPqNNP5BsO3roI4n8332ukpY/zN7rQ==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm-musleabihf": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.55.1.tgz", + "integrity": "sha512-grPNWydeKtc1aEdrJDWk4opD7nFtQbMmV7769hiAaYyUKCT1faPRm2av8CX1YJsZ4TLAZcg9gTR1KvEzoLjXkg==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.55.1.tgz", + "integrity": "sha512-a59mwd1k6x8tXKcUxSyISiquLwB5pX+fJW9TkWU46lCqD/GRDe9uDN31jrMmVP3feI3mhAdvcCClhV8V5MhJFQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.55.1.tgz", + "integrity": "sha512-puS1MEgWX5GsHSoiAsF0TYrpomdvkaXm0CofIMG5uVkP6IBV+ZO9xhC5YEN49nsgYo1DuuMquF9+7EDBVYu4uA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-loong64-gnu": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.55.1.tgz", + "integrity": "sha512-r3Wv40in+lTsULSb6nnoudVbARdOwb2u5fpeoOAZjFLznp6tDU8kd+GTHmJoqZ9lt6/Sys33KdIHUaQihFcu7g==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-loong64-musl": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-musl/-/rollup-linux-loong64-musl-4.55.1.tgz", + "integrity": "sha512-MR8c0+UxAlB22Fq4R+aQSPBayvYa3+9DrwG/i1TKQXFYEaoW3B5b/rkSRIypcZDdWjWnpcvxbNaAJDcSbJU3Lw==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-ppc64-gnu": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.55.1.tgz", + "integrity": "sha512-3KhoECe1BRlSYpMTeVrD4sh2Pw2xgt4jzNSZIIPLFEsnQn9gAnZagW9+VqDqAHgm1Xc77LzJOo2LdigS5qZ+gw==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-ppc64-musl": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-musl/-/rollup-linux-ppc64-musl-4.55.1.tgz", + "integrity": "sha512-ziR1OuZx0vdYZZ30vueNZTg73alF59DicYrPViG0NEgDVN8/Jl87zkAPu4u6VjZST2llgEUjaiNl9JM6HH1Vdw==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.55.1.tgz", + "integrity": "sha512-uW0Y12ih2XJRERZ4jAfKamTyIHVMPQnTZcQjme2HMVDAHY4amf5u414OqNYC+x+LzRdRcnIG1YodLrrtA8xsxw==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-musl": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.55.1.tgz", + "integrity": "sha512-u9yZ0jUkOED1BFrqu3BwMQoixvGHGZ+JhJNkNKY/hyoEgOwlqKb62qu+7UjbPSHYjiVy8kKJHvXKv5coH4wDeg==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-s390x-gnu": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.55.1.tgz", + "integrity": "sha512-/0PenBCmqM4ZUd0190j7J0UsQ/1nsi735iPRakO8iPciE7BQ495Y6msPzaOmvx0/pn+eJVVlZrNrSh4WSYLxNg==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.55.1.tgz", + "integrity": "sha512-a8G4wiQxQG2BAvo+gU6XrReRRqj+pLS2NGXKm8io19goR+K8lw269eTrPkSdDTALwMmJp4th2Uh0D8J9bEV1vg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.55.1.tgz", + "integrity": "sha512-bD+zjpFrMpP/hqkfEcnjXWHMw5BIghGisOKPj+2NaNDuVT+8Ds4mPf3XcPHuat1tz89WRL+1wbcxKY3WSbiT7w==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-openbsd-x64": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-openbsd-x64/-/rollup-openbsd-x64-4.55.1.tgz", + "integrity": "sha512-eLXw0dOiqE4QmvikfQ6yjgkg/xDM+MdU9YJuP4ySTibXU0oAvnEWXt7UDJmD4UkYialMfOGFPJnIHSe/kdzPxg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ] + }, + "node_modules/@rollup/rollup-openharmony-arm64": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.55.1.tgz", + "integrity": "sha512-xzm44KgEP11te3S2HCSyYf5zIzWmx3n8HDCc7EE59+lTcswEWNpvMLfd9uJvVX8LCg9QWG67Xt75AuHn4vgsXw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ] + }, + "node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.55.1.tgz", + "integrity": "sha512-yR6Bl3tMC/gBok5cz/Qi0xYnVbIxGx5Fcf/ca0eB6/6JwOY+SRUcJfI0OpeTpPls7f194as62thCt/2BjxYN8g==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.55.1.tgz", + "integrity": "sha512-3fZBidchE0eY0oFZBnekYCfg+5wAB0mbpCBuofh5mZuzIU/4jIVkbESmd2dOsFNS78b53CYv3OAtwqkZZmU5nA==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-gnu": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.55.1.tgz", + "integrity": "sha512-xGGY5pXj69IxKb4yv/POoocPy/qmEGhimy/FoTpTSVju3FYXUQQMFCaZZXJVidsmGxRioZAwpThl/4zX41gRKg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.55.1.tgz", + "integrity": "sha512-SPEpaL6DX4rmcXtnhdrQYgzQ5W2uW3SCJch88lB2zImhJRhIIK44fkUrgIV/Q8yUNfw5oyZ5vkeQsZLhCb06lw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@sec-ant/readable-stream": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/@sec-ant/readable-stream/-/readable-stream-0.4.1.tgz", + "integrity": "sha512-831qok9r2t8AlxLko40y2ebgSDhenenCatLVeW/uBtnHPyhHOvG0C7TvfgecV+wHzIm5KUICgzmVpWS+IMEAeg==", + "license": "MIT" }, "node_modules/@sigstore/bundle": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@sigstore/bundle/-/bundle-1.1.0.tgz", - "integrity": "sha512-PFutXEy0SmQxYI4texPw3dd2KewuNqv7OuK1ZFtY2fM754yhvG2KdgwIhRnoEE2uHdtdGNQ8s0lb94dW9sELog==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@sigstore/bundle/-/bundle-4.0.0.tgz", + "integrity": "sha512-NwCl5Y0V6Di0NexvkTqdoVfmjTaQwoLM236r89KEojGmq/jMls8S+zb7yOwAPdXvbwfKDlP+lmXgAL4vKSQT+A==", "license": "Apache-2.0", "dependencies": { - "@sigstore/protobuf-specs": "^0.2.0" + "@sigstore/protobuf-specs": "^0.5.0" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^20.17.0 || >=22.9.0" + } + }, + "node_modules/@sigstore/core": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@sigstore/core/-/core-3.1.0.tgz", + "integrity": "sha512-o5cw1QYhNQ9IroioJxpzexmPjfCe7gzafd2RY3qnMpxr4ZEja+Jad/U8sgFpaue6bOaF+z7RVkyKVV44FN+N8A==", + "license": "Apache-2.0", + "engines": { + "node": "^20.17.0 || >=22.9.0" } }, "node_modules/@sigstore/protobuf-specs": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/@sigstore/protobuf-specs/-/protobuf-specs-0.2.1.tgz", - "integrity": "sha512-XTWVxnWJu+c1oCshMLwnKvz8ZQJJDVOlciMfgpJBQbThVjKTCG8dwyhgLngBD2KN0ap9F/gOV8rFDEx8uh7R2A==", + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/@sigstore/protobuf-specs/-/protobuf-specs-0.5.0.tgz", + "integrity": "sha512-MM8XIwUjN2bwvCg1QvrMtbBmpcSHrkhFSCu1D11NyPvDQ25HEc4oG5/OcQfd/Tlf/OxmKWERDj0zGE23jQaMwA==", "license": "Apache-2.0", "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/@sigstore/sign": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@sigstore/sign/-/sign-1.0.0.tgz", - "integrity": "sha512-INxFVNQteLtcfGmcoldzV6Je0sbbfh9I16DM4yJPw3j5+TFP8X6uIiA18mvpEa9yyeycAKgPmOA3X9hVdVTPUA==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/@sigstore/sign/-/sign-4.1.0.tgz", + "integrity": "sha512-Vx1RmLxLGnSUqx/o5/VsCjkuN5L7y+vxEEwawvc7u+6WtX2W4GNa7b9HEjmcRWohw/d6BpATXmvOwc78m+Swdg==", "license": "Apache-2.0", "dependencies": { - "@sigstore/bundle": "^1.1.0", - "@sigstore/protobuf-specs": "^0.2.0", - "make-fetch-happen": "^11.0.1" + "@sigstore/bundle": "^4.0.0", + "@sigstore/core": "^3.1.0", + "@sigstore/protobuf-specs": "^0.5.0", + "make-fetch-happen": "^15.0.3", + "proc-log": "^6.1.0", + "promise-retry": "^2.0.1" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^20.17.0 || >=22.9.0" } }, - "node_modules/@sigstore/sign/node_modules/@npmcli/fs": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-3.1.1.tgz", - "integrity": "sha512-q9CRWjpHCMIh5sVyefoD1cA7PkvILqCZsnSOEUUivORLjxCO/Irmue2DprETiNgEqktDBZaM1Bi+jrarx1XdCg==", - "license": "ISC", + "node_modules/@sigstore/tuf": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@sigstore/tuf/-/tuf-4.0.1.tgz", + "integrity": "sha512-OPZBg8y5Vc9yZjmWCHrlWPMBqW5yd8+wFNl+thMdtcWz3vjVSoJQutF8YkrzI0SLGnkuFof4HSsWUhXrf219Lw==", + "license": "Apache-2.0", "dependencies": { - "semver": "^7.3.5" + "@sigstore/protobuf-specs": "^0.5.0", + "tuf-js": "^4.1.0" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^20.17.0 || >=22.9.0" } }, - "node_modules/@sigstore/sign/node_modules/@tootallnate/once": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz", - "integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==", - "license": "MIT", - "engines": { - "node": ">= 10" - } - }, - "node_modules/@sigstore/sign/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/@sigstore/sign/node_modules/cacache": { - "version": "17.1.4", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-17.1.4.tgz", - "integrity": "sha512-/aJwG2l3ZMJ1xNAnqbMpA40of9dj/pIH3QfiuQSqjfPJF747VR0J/bHn+/KdNnHKc6XQcWt/AfRSBft82W1d2A==", - "license": "ISC", + "node_modules/@sigstore/verify": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@sigstore/verify/-/verify-3.1.0.tgz", + "integrity": "sha512-mNe0Iigql08YupSOGv197YdHpPPr+EzDZmfCgMc7RPNaZTw5aLN01nBl6CHJOh3BGtnMIj83EeN4butBchc8Ag==", + "license": "Apache-2.0", "dependencies": { - "@npmcli/fs": "^3.1.0", - "fs-minipass": "^3.0.0", - "glob": "^10.2.2", - "lru-cache": "^7.7.1", - "minipass": "^7.0.3", - "minipass-collect": "^1.0.2", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "p-map": "^4.0.0", - "ssri": "^10.0.0", - "tar": "^6.1.11", - "unique-filename": "^3.0.0" + "@sigstore/bundle": "^4.0.0", + "@sigstore/core": "^3.1.0", + "@sigstore/protobuf-specs": "^0.5.0" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/@sigstore/sign/node_modules/cacache/node_modules/minipass": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", - "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", - "license": "ISC", - "engines": { - "node": ">=16 || 14 >=14.17" + "node": "^20.17.0 || >=22.9.0" } }, - "node_modules/@sigstore/sign/node_modules/debug": { - "version": "4.3.6", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.6.tgz", - "integrity": "sha512-O/09Bd4Z1fBrU4VzkhFqVgpPzaGbw6Sm9FEkBT1A/YBXQFGuuSxa1dN2nxgxS34JmKXqYx8CZAwEVoJFImUXIg==", + "node_modules/@sindresorhus/merge-streams": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/merge-streams/-/merge-streams-4.0.0.tgz", + "integrity": "sha512-tlqY9xq5ukxTUZBmoOp+m61cqwQD5pHJtFY3Mn8CA8ps6yghLH/Hw8UPdqg4OLmFW3IFlcXnQNmo/dh8HzXYIQ==", "license": "MIT", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/@sigstore/sign/node_modules/fs-minipass": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-3.0.3.tgz", - "integrity": "sha512-XUBA9XClHbnJWSfBzjkm6RvPsyg3sryZt06BEQoXcF7EK/xpGaQYJgQKDJSUH5SGZ76Y7pFx1QBnXz09rU5Fbw==", - "license": "ISC", - "dependencies": { - "minipass": "^7.0.3" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/@sigstore/sign/node_modules/fs-minipass/node_modules/minipass": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", - "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", - "license": "ISC", "engines": { - "node": ">=16 || 14 >=14.17" - } - }, - "node_modules/@sigstore/sign/node_modules/glob": { - "version": "10.4.5", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", - "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", - "license": "ISC", - "dependencies": { - "foreground-child": "^3.1.0", - "jackspeak": "^3.1.2", - "minimatch": "^9.0.4", - "minipass": "^7.1.2", - "package-json-from-dist": "^1.0.0", - "path-scurry": "^1.11.1" - }, - "bin": { - "glob": "dist/esm/bin.mjs" + "node": ">=18" }, "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/@sigstore/sign/node_modules/glob/node_modules/minipass": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", - "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", - "license": "ISC", - "engines": { - "node": ">=16 || 14 >=14.17" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@sigstore/sign/node_modules/http-proxy-agent": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz", - "integrity": "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==", + "node_modules/@tufjs/canonical-json": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@tufjs/canonical-json/-/canonical-json-2.0.0.tgz", + "integrity": "sha512-yVtV8zsdo8qFHe+/3kw81dSLyF7D576A5cCFCi4X7B39tWT7SekaEFUnvnWJHz+9qO7qJTah1JbrDjWKqFtdWA==", "license": "MIT", - "dependencies": { - "@tootallnate/once": "2", - "agent-base": "6", - "debug": "4" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/@sigstore/sign/node_modules/lru-cache": { - "version": "7.18.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", - "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", - "license": "ISC", "engines": { - "node": ">=12" + "node": "^16.14.0 || >=18.0.0" } }, - "node_modules/@sigstore/sign/node_modules/make-fetch-happen": { - "version": "11.1.1", - "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-11.1.1.tgz", - "integrity": "sha512-rLWS7GCSTcEujjVBs2YqG7Y4643u8ucvCJeSRqiLYhesrDuzeuFIk37xREzAsfQaqzl8b9rNCE4m6J8tvX4Q8w==", - "license": "ISC", + "node_modules/@tufjs/models": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/@tufjs/models/-/models-4.1.0.tgz", + "integrity": "sha512-Y8cK9aggNRsqJVaKUlEYs4s7CvQ1b1ta2DVPyAimb0I2qhzjNk+A+mxvll/klL0RlfuIUei8BF7YWiua4kQqww==", + "license": "MIT", "dependencies": { - "agentkeepalive": "^4.2.1", - "cacache": "^17.0.0", - "http-cache-semantics": "^4.1.1", - "http-proxy-agent": "^5.0.0", - "https-proxy-agent": "^5.0.0", - "is-lambda": "^1.0.1", - "lru-cache": "^7.7.1", - "minipass": "^5.0.0", - "minipass-fetch": "^3.0.0", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "negotiator": "^0.6.3", - "promise-retry": "^2.0.1", - "socks-proxy-agent": "^7.0.0", - "ssri": "^10.0.0" + "@tufjs/canonical-json": "2.0.0", + "minimatch": "^10.1.1" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^20.17.0 || >=22.9.0" } }, - "node_modules/@sigstore/sign/node_modules/minimatch": { - "version": "9.0.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", - "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", - "license": "ISC", + "node_modules/@tufjs/models/node_modules/minimatch": { + "version": "10.1.1", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.1.1.tgz", + "integrity": "sha512-enIvLvRAFZYXJzkCYG5RKmPfrFArdLv+R+lbQ53BmIMLIry74bjKzX6iHAm8WYamJkhSSEabrWN5D97XnKObjQ==", + "license": "BlueOak-1.0.0", "dependencies": { - "brace-expansion": "^2.0.1" + "@isaacs/brace-expansion": "^5.0.0" }, "engines": { - "node": ">=16 || 14 >=14.17" + "node": "20 || >=22" }, "funding": { "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/@sigstore/sign/node_modules/minipass": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", - "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", - "license": "ISC", - "engines": { - "node": ">=8" - } + "node_modules/@types/ejs": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/@types/ejs/-/ejs-3.1.5.tgz", + "integrity": "sha512-nv+GSx77ZtXiJzwKdsASqi+YQ5Z7vwHsTP0JY2SiQgjGckkBRKZnk8nIM+7oUZ1VCtuTz0+By4qVR7fqzp/Dfg==", + "license": "MIT" + }, + "node_modules/@types/estree": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz", + "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/expect": { + "version": "1.20.4", + "resolved": "https://registry.npmjs.org/@types/expect/-/expect-1.20.4.tgz", + "integrity": "sha512-Q5Vn3yjTDyCMV50TB6VRIbQNxSE4OmZR86VSbGaNpfUolm0iePBB4KdEEHmxoY5sT2+2DIvXW0rvMDP2nHZ4Mg==", + "license": "MIT" + }, + "node_modules/@types/lodash": { + "version": "4.17.23", + "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.17.23.tgz", + "integrity": "sha512-RDvF6wTulMPjrNdCoYRC8gNR880JNGT8uB+REUpC2Ns4pRqQJhGz90wh7rgdXDPpCczF3VGktDuFGVnz8zP7HA==", + "license": "MIT" }, - "node_modules/@sigstore/sign/node_modules/minipass-fetch": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-3.0.5.tgz", - "integrity": "sha512-2N8elDQAtSnFV0Dk7gt15KHsS0Fyz6CbYZ360h0WTYV1Ty46li3rAXVOQj1THMNLdmrD9Vt5pBPtWtVkpwGBqg==", + "node_modules/@types/lodash-es": { + "version": "4.17.12", + "resolved": "https://registry.npmjs.org/@types/lodash-es/-/lodash-es-4.17.12.tgz", + "integrity": "sha512-0NgftHUcV4v34VhXm8QBSftKVXtbkBG3ViCjs6+eJ5a6y6Mi/jiFGPc1sC7QK+9BFhWrURE3EOggmWaSxL9OzQ==", "license": "MIT", "dependencies": { - "minipass": "^7.0.3", - "minipass-sized": "^1.0.3", - "minizlib": "^2.1.2" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - }, - "optionalDependencies": { - "encoding": "^0.1.13" + "@types/lodash": "*" } }, - "node_modules/@sigstore/sign/node_modules/minipass-fetch/node_modules/minipass": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", - "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", - "license": "ISC", - "engines": { - "node": ">=16 || 14 >=14.17" + "node_modules/@types/node": { + "version": "25.0.9", + "resolved": "https://registry.npmjs.org/@types/node/-/node-25.0.9.tgz", + "integrity": "sha512-/rpCXHlCWeqClNBwUhDcusJxXYDjZTyE8v5oTO7WbL8eij2nKhUeU89/6xgjU7N4/Vh3He0BtyhJdQbDyhiXAw==", + "license": "MIT", + "peer": true, + "dependencies": { + "undici-types": "~7.16.0" } }, - "node_modules/@sigstore/sign/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "node_modules/@types/normalize-package-data": { + "version": "2.4.4", + "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.4.tgz", + "integrity": "sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==", "license": "MIT" }, - "node_modules/@sigstore/sign/node_modules/socks-proxy-agent": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-7.0.0.tgz", - "integrity": "sha512-Fgl0YPZ902wEsAyiQ+idGd1A7rSFx/ayC1CQVMw5P+EQx2V0SgpGtf6OKFhVjPflPUl9YMmEOnmfjCdMUsygww==", + "node_modules/@types/vinyl": { + "version": "2.0.12", + "resolved": "https://registry.npmjs.org/@types/vinyl/-/vinyl-2.0.12.tgz", + "integrity": "sha512-Sr2fYMBUVGYq8kj3UthXFAu5UN6ZW+rYr4NACjZQJvHvj+c8lYv0CahmZ2P/r7iUkN44gGUBwqxZkrKXYPb7cw==", "license": "MIT", "dependencies": { - "agent-base": "^6.0.2", - "debug": "^4.3.3", - "socks": "^2.6.2" - }, - "engines": { - "node": ">= 10" + "@types/expect": "^1.20.4", + "@types/node": "*" } }, - "node_modules/@sigstore/sign/node_modules/ssri": { - "version": "10.0.6", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-10.0.6.tgz", - "integrity": "sha512-MGrFH9Z4NP9Iyhqn16sDtBpRRNJ0Y2hNa6D65h736fVSaPCHr4DM4sWUNvVaSuC+0OBGhwsrydQwmgfg5LncqQ==", - "license": "ISC", + "node_modules/@vitest/expect": { + "version": "2.1.9", + "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-2.1.9.tgz", + "integrity": "sha512-UJCIkTBenHeKT1TTlKMJWy1laZewsRIzYighyYiJKZreqtdxSos/S1t+ktRMQWu2CKqaarrkeszJx1cgC5tGZw==", + "dev": true, + "license": "MIT", "dependencies": { - "minipass": "^7.0.3" + "@vitest/spy": "2.1.9", + "@vitest/utils": "2.1.9", + "chai": "^5.1.2", + "tinyrainbow": "^1.2.0" }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/@sigstore/sign/node_modules/ssri/node_modules/minipass": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", - "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", - "license": "ISC", - "engines": { - "node": ">=16 || 14 >=14.17" + "funding": { + "url": "https://opencollective.com/vitest" } }, - "node_modules/@sigstore/sign/node_modules/unique-filename": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-3.0.0.tgz", - "integrity": "sha512-afXhuC55wkAmZ0P18QsVE6kp8JaxrEokN2HGIoIVv2ijHQd419H0+6EigAFcIzXeMIkcIkNBpB3L/DXB3cTS/g==", - "license": "ISC", + "node_modules/@vitest/mocker": { + "version": "2.1.9", + "resolved": "https://registry.npmjs.org/@vitest/mocker/-/mocker-2.1.9.tgz", + "integrity": "sha512-tVL6uJgoUdi6icpxmdrn5YNo3g3Dxv+IHJBr0GXHaEdTcw3F+cPKnsXFhli6nO+f/6SDKPHEK1UN+k+TQv0Ehg==", + "dev": true, + "license": "MIT", "dependencies": { - "unique-slug": "^4.0.0" + "@vitest/spy": "2.1.9", + "estree-walker": "^3.0.3", + "magic-string": "^0.30.12" }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "funding": { + "url": "https://opencollective.com/vitest" + }, + "peerDependencies": { + "msw": "^2.4.9", + "vite": "^5.0.0" + }, + "peerDependenciesMeta": { + "msw": { + "optional": true + }, + "vite": { + "optional": true + } } }, - "node_modules/@sigstore/sign/node_modules/unique-slug": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-4.0.0.tgz", - "integrity": "sha512-WrcA6AyEfqDX5bWige/4NQfPZMtASNVxdmWR76WESYQVAACSgWcR6e9i0mofqqBxYFtL4oAxPIptY73/0YE1DQ==", - "license": "ISC", + "node_modules/@vitest/pretty-format": { + "version": "2.1.9", + "resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-2.1.9.tgz", + "integrity": "sha512-KhRIdGV2U9HOUzxfiHmY8IFHTdqtOhIzCpd8WRdJiE7D/HUcZVD0EgQCVjm+Q9gkUXWgBvMmTtZgIG48wq7sOQ==", + "dev": true, + "license": "MIT", "dependencies": { - "imurmurhash": "^0.1.4" + "tinyrainbow": "^1.2.0" }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "funding": { + "url": "https://opencollective.com/vitest" } }, - "node_modules/@sigstore/tuf": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@sigstore/tuf/-/tuf-1.0.3.tgz", - "integrity": "sha512-2bRovzs0nJZFlCN3rXirE4gwxCn97JNjMmwpecqlbgV9WcxX7WRuIrgzx/X7Ib7MYRbyUTpBYE0s2x6AmZXnlg==", - "license": "Apache-2.0", + "node_modules/@vitest/runner": { + "version": "2.1.9", + "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-2.1.9.tgz", + "integrity": "sha512-ZXSSqTFIrzduD63btIfEyOmNcBmQvgOVsPNPe0jYtESiXkhd8u2erDLnMxmGrDCwHCCHE7hxwRDCT3pt0esT4g==", + "dev": true, + "license": "MIT", "dependencies": { - "@sigstore/protobuf-specs": "^0.2.0", - "tuf-js": "^1.1.7" + "@vitest/utils": "2.1.9", + "pathe": "^1.1.2" }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "funding": { + "url": "https://opencollective.com/vitest" } }, - "node_modules/@sinclair/typebox": { - "version": "0.27.8", - "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz", - "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==", + "node_modules/@vitest/snapshot": { + "version": "2.1.9", + "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-2.1.9.tgz", + "integrity": "sha512-oBO82rEjsxLNJincVhLhaxxZdEtV0EFHMK5Kmx5sJ6H9L183dHECjiefOAdnqpIgT5eZwT04PoggUnW88vOBNQ==", "dev": true, - "license": "MIT" - }, - "node_modules/@sindresorhus/is": { - "version": "0.14.0", - "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz", - "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==", "license": "MIT", - "engines": { - "node": ">=6" + "dependencies": { + "@vitest/pretty-format": "2.1.9", + "magic-string": "^0.30.12", + "pathe": "^1.1.2" + }, + "funding": { + "url": "https://opencollective.com/vitest" } }, - "node_modules/@sinonjs/commons": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.1.tgz", - "integrity": "sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==", + "node_modules/@vitest/spy": { + "version": "2.1.9", + "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-2.1.9.tgz", + "integrity": "sha512-E1B35FwzXXTs9FHNK6bDszs7mtydNi5MIfUWpceJ8Xbfb1gBMscAnwLbEu+B44ed6W3XjL9/ehLPHR1fkf1KLQ==", "dev": true, - "license": "BSD-3-Clause", + "license": "MIT", "dependencies": { - "type-detect": "4.0.8" + "tinyspy": "^3.0.2" + }, + "funding": { + "url": "https://opencollective.com/vitest" } }, - "node_modules/@sinonjs/fake-timers": { - "version": "10.3.0", - "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.3.0.tgz", - "integrity": "sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==", + "node_modules/@vitest/utils": { + "version": "2.1.9", + "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-2.1.9.tgz", + "integrity": "sha512-v0psaMSkNJ3A2NMrUEHFRzJtDPFn+/VWZ5WxImB21T9fjucJRmS7xCS3ppEnARb9y11OAzaD+P2Ps+b+BGX5iQ==", "dev": true, - "license": "BSD-3-Clause", + "license": "MIT", "dependencies": { - "@sinonjs/commons": "^3.0.0" + "@vitest/pretty-format": "2.1.9", + "loupe": "^3.1.2", + "tinyrainbow": "^1.2.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" } }, - "node_modules/@szmarczak/http-timer": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz", - "integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==", + "node_modules/@yeoman/adapter": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@yeoman/adapter/-/adapter-3.1.1.tgz", + "integrity": "sha512-yhBK+r5LHcUcZi1JvjL6BCg0HsbWkeh+nsTJa0zJxjFeRvMDLTSVb222hVXUMKP9qHjrK1Cu2Nga0EaRlLpm4A==", "license": "MIT", "dependencies": { - "defer-to-connect": "^1.0.1" + "@inquirer/core": "^10.0.0", + "chalk": "^5.2.0", + "inquirer": "^12.0.0", + "log-symbols": "^7.0.0", + "ora": "^9.0.0", + "p-queue": "^9.0.0", + "text-table": "^0.2.0" }, "engines": { - "node": ">=6" + "node": "20 || >=22" } }, - "node_modules/@tootallnate/once": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", - "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==", + "node_modules/@yeoman/adapter/node_modules/@inquirer/ansi": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@inquirer/ansi/-/ansi-1.0.2.tgz", + "integrity": "sha512-S8qNSZiYzFd0wAcyG5AXCvUHC5Sr7xpZ9wZ2py9XR88jUz8wooStVx5M6dRzczbBWjic9NP7+rY0Xi7qqK/aMQ==", "license": "MIT", "engines": { - "node": ">= 6" + "node": ">=18" } }, - "node_modules/@tufjs/canonical-json": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@tufjs/canonical-json/-/canonical-json-1.0.0.tgz", - "integrity": "sha512-QTnf++uxunWvG2z3UFNzAoQPHxnSXOwtaI3iJ+AohhV+5vONuArPjJE7aPXPVXfXJsqrVbZBu9b81AJoSd09IQ==", + "node_modules/@yeoman/adapter/node_modules/@inquirer/checkbox": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/@inquirer/checkbox/-/checkbox-4.3.2.tgz", + "integrity": "sha512-VXukHf0RR1doGe6Sm4F0Em7SWYLTHSsbGfJdS9Ja2bX5/D5uwVOEjr07cncLROdBvmnvCATYEWlHqYmXv2IlQA==", "license": "MIT", + "dependencies": { + "@inquirer/ansi": "^1.0.2", + "@inquirer/core": "^10.3.2", + "@inquirer/figures": "^1.0.15", + "@inquirer/type": "^3.0.10", + "yoctocolors-cjs": "^2.1.3" + }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": ">=18" + }, + "peerDependencies": { + "@types/node": ">=18" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } } }, - "node_modules/@tufjs/models": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@tufjs/models/-/models-1.0.4.tgz", - "integrity": "sha512-qaGV9ltJP0EO25YfFUPhxRVK0evXFIAGicsVXuRim4Ed9cjPxYhNnNJ49SFmbeLgtxpslIkX317IgpfcHPVj/A==", + "node_modules/@yeoman/adapter/node_modules/@inquirer/confirm": { + "version": "5.1.21", + "resolved": "https://registry.npmjs.org/@inquirer/confirm/-/confirm-5.1.21.tgz", + "integrity": "sha512-KR8edRkIsUayMXV+o3Gv+q4jlhENF9nMYUZs9PA2HzrXeHI8M5uDag70U7RJn9yyiMZSbtF5/UexBtAVtZGSbQ==", "license": "MIT", "dependencies": { - "@tufjs/canonical-json": "1.0.0", - "minimatch": "^9.0.0" + "@inquirer/core": "^10.3.2", + "@inquirer/type": "^3.0.10" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": ">=18" + }, + "peerDependencies": { + "@types/node": ">=18" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } } }, - "node_modules/@tufjs/models/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "node_modules/@yeoman/adapter/node_modules/@inquirer/core": { + "version": "10.3.2", + "resolved": "https://registry.npmjs.org/@inquirer/core/-/core-10.3.2.tgz", + "integrity": "sha512-43RTuEbfP8MbKzedNqBrlhhNKVwoK//vUFNW3Q3vZ88BLcrs4kYpGg+B2mm5p2K/HfygoCxuKwJJiv8PbGmE0A==", "license": "MIT", "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/@tufjs/models/node_modules/minimatch": { - "version": "9.0.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", - "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", - "license": "ISC", - "dependencies": { - "brace-expansion": "^2.0.1" + "@inquirer/ansi": "^1.0.2", + "@inquirer/figures": "^1.0.15", + "@inquirer/type": "^3.0.10", + "cli-width": "^4.1.0", + "mute-stream": "^2.0.0", + "signal-exit": "^4.1.0", + "wrap-ansi": "^6.2.0", + "yoctocolors-cjs": "^2.1.3" }, "engines": { - "node": ">=16 || 14 >=14.17" + "node": ">=18" }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/@types/babel__core": { - "version": "7.20.5", - "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz", - "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/parser": "^7.20.7", - "@babel/types": "^7.20.7", - "@types/babel__generator": "*", - "@types/babel__template": "*", - "@types/babel__traverse": "*" - } - }, - "node_modules/@types/babel__generator": { - "version": "7.6.8", - "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.8.tgz", - "integrity": "sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/types": "^7.0.0" - } - }, - "node_modules/@types/babel__template": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz", - "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/parser": "^7.1.0", - "@babel/types": "^7.0.0" - } - }, - "node_modules/@types/babel__traverse": { - "version": "7.20.6", - "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.6.tgz", - "integrity": "sha512-r1bzfrm0tomOI8g1SzvCaQHo6Lcv6zu0EA+W2kHrt8dyrHQxGzBBL4kdkzIS+jBMV+EYcMAEAqXqYaLJq5rOZg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/types": "^7.20.7" - } - }, - "node_modules/@types/expect": { - "version": "1.20.4", - "resolved": "https://registry.npmjs.org/@types/expect/-/expect-1.20.4.tgz", - "integrity": "sha512-Q5Vn3yjTDyCMV50TB6VRIbQNxSE4OmZR86VSbGaNpfUolm0iePBB4KdEEHmxoY5sT2+2DIvXW0rvMDP2nHZ4Mg==", - "license": "MIT" - }, - "node_modules/@types/graceful-fs": { - "version": "4.1.9", - "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.9.tgz", - "integrity": "sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/istanbul-lib-coverage": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz", - "integrity": "sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/istanbul-lib-report": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz", - "integrity": "sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/istanbul-lib-coverage": "*" + "peerDependencies": { + "@types/node": ">=18" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } } }, - "node_modules/@types/istanbul-reports": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz", - "integrity": "sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==", - "dev": true, + "node_modules/@yeoman/adapter/node_modules/@inquirer/editor": { + "version": "4.2.23", + "resolved": "https://registry.npmjs.org/@inquirer/editor/-/editor-4.2.23.tgz", + "integrity": "sha512-aLSROkEwirotxZ1pBaP8tugXRFCxW94gwrQLxXfrZsKkfjOYC1aRvAZuhpJOb5cu4IBTJdsCigUlf2iCOu4ZDQ==", "license": "MIT", "dependencies": { - "@types/istanbul-lib-report": "*" + "@inquirer/core": "^10.3.2", + "@inquirer/external-editor": "^1.0.3", + "@inquirer/type": "^3.0.10" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@types/node": ">=18" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } } }, - "node_modules/@types/minimatch": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.5.tgz", - "integrity": "sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==", - "license": "MIT" - }, - "node_modules/@types/node": { - "version": "22.2.0", - "resolved": "https://registry.npmjs.org/@types/node/-/node-22.2.0.tgz", - "integrity": "sha512-bm6EG6/pCpkxDf/0gDNDdtDILMOHgaQBVOJGdwsqClnxA3xL6jtMv76rLBc006RVMWbmaf0xbmom4Z/5o2nRkQ==", + "node_modules/@yeoman/adapter/node_modules/@inquirer/expand": { + "version": "4.0.23", + "resolved": "https://registry.npmjs.org/@inquirer/expand/-/expand-4.0.23.tgz", + "integrity": "sha512-nRzdOyFYnpeYTTR2qFwEVmIWypzdAx/sIkCMeTNTcflFOovfqUk+HcFhQQVBftAh9gmGrpFj6QcGEqrDMDOiew==", "license": "MIT", "dependencies": { - "undici-types": "~6.13.0" + "@inquirer/core": "^10.3.2", + "@inquirer/type": "^3.0.10", + "yoctocolors-cjs": "^2.1.3" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@types/node": ">=18" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } } }, - "node_modules/@types/normalize-package-data": { - "version": "2.4.4", - "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.4.tgz", - "integrity": "sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==", - "license": "MIT" - }, - "node_modules/@types/stack-utils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.3.tgz", - "integrity": "sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/vinyl": { - "version": "2.0.12", - "resolved": "https://registry.npmjs.org/@types/vinyl/-/vinyl-2.0.12.tgz", - "integrity": "sha512-Sr2fYMBUVGYq8kj3UthXFAu5UN6ZW+rYr4NACjZQJvHvj+c8lYv0CahmZ2P/r7iUkN44gGUBwqxZkrKXYPb7cw==", + "node_modules/@yeoman/adapter/node_modules/@inquirer/external-editor": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@inquirer/external-editor/-/external-editor-1.0.3.tgz", + "integrity": "sha512-RWbSrDiYmO4LbejWY7ttpxczuwQyZLBUyygsA9Nsv95hpzUWwnNTVQmAq3xuh7vNwCp07UTmE5i11XAEExx4RA==", "license": "MIT", "dependencies": { - "@types/expect": "^1.20.4", - "@types/node": "*" + "chardet": "^2.1.1", + "iconv-lite": "^0.7.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@types/node": ">=18" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } } }, - "node_modules/@types/yargs": { - "version": "17.0.33", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.33.tgz", - "integrity": "sha512-WpxBCKWPLr4xSsHgz511rFJAM+wS28w2zEO1QDNY5zM/S8ok70NNfztH0xwhqKyaK0OHCbN98LDAZuy1ctxDkA==", - "dev": true, + "node_modules/@yeoman/adapter/node_modules/@inquirer/figures": { + "version": "1.0.15", + "resolved": "https://registry.npmjs.org/@inquirer/figures/-/figures-1.0.15.tgz", + "integrity": "sha512-t2IEY+unGHOzAaVM5Xx6DEWKeXlDDcNPeDyUpsRc6CUhBfU3VQOEl+Vssh7VNp1dR8MdUJBWhuObjXCsVpjN5g==", "license": "MIT", - "dependencies": { - "@types/yargs-parser": "*" + "engines": { + "node": ">=18" } }, - "node_modules/@types/yargs-parser": { - "version": "21.0.3", - "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.3.tgz", - "integrity": "sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/abbrev": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", - "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", - "license": "ISC" - }, - "node_modules/abort-controller": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz", - "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==", + "node_modules/@yeoman/adapter/node_modules/@inquirer/input": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/@inquirer/input/-/input-4.3.1.tgz", + "integrity": "sha512-kN0pAM4yPrLjJ1XJBjDxyfDduXOuQHrBB8aLDMueuwUGn+vNpF7Gq7TvyVxx8u4SHlFFj4trmj+a2cbpG4Jn1g==", "license": "MIT", "dependencies": { - "event-target-shim": "^5.0.0" + "@inquirer/core": "^10.3.2", + "@inquirer/type": "^3.0.10" }, "engines": { - "node": ">=6.5" + "node": ">=18" + }, + "peerDependencies": { + "@types/node": ">=18" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } } }, - "node_modules/accepts": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", - "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", + "node_modules/@yeoman/adapter/node_modules/@inquirer/number": { + "version": "3.0.23", + "resolved": "https://registry.npmjs.org/@inquirer/number/-/number-3.0.23.tgz", + "integrity": "sha512-5Smv0OK7K0KUzUfYUXDXQc9jrf8OHo4ktlEayFlelCjwMXz0299Y8OrI+lj7i4gCBY15UObk76q0QtxjzFcFcg==", "license": "MIT", "dependencies": { - "mime-types": "~2.1.34", - "negotiator": "0.6.3" + "@inquirer/core": "^10.3.2", + "@inquirer/type": "^3.0.10" }, "engines": { - "node": ">= 0.6" + "node": ">=18" + }, + "peerDependencies": { + "@types/node": ">=18" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } } }, - "node_modules/agent-base": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", - "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "node_modules/@yeoman/adapter/node_modules/@inquirer/password": { + "version": "4.0.23", + "resolved": "https://registry.npmjs.org/@inquirer/password/-/password-4.0.23.tgz", + "integrity": "sha512-zREJHjhT5vJBMZX/IUbyI9zVtVfOLiTO66MrF/3GFZYZ7T4YILW5MSkEYHceSii/KtRk+4i3RE7E1CUXA2jHcA==", "license": "MIT", "dependencies": { - "debug": "4" + "@inquirer/ansi": "^1.0.2", + "@inquirer/core": "^10.3.2", + "@inquirer/type": "^3.0.10" }, "engines": { - "node": ">= 6.0.0" + "node": ">=18" + }, + "peerDependencies": { + "@types/node": ">=18" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } } }, - "node_modules/agent-base/node_modules/debug": { - "version": "4.3.6", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.6.tgz", - "integrity": "sha512-O/09Bd4Z1fBrU4VzkhFqVgpPzaGbw6Sm9FEkBT1A/YBXQFGuuSxa1dN2nxgxS34JmKXqYx8CZAwEVoJFImUXIg==", + "node_modules/@yeoman/adapter/node_modules/@inquirer/prompts": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@inquirer/prompts/-/prompts-7.10.1.tgz", + "integrity": "sha512-Dx/y9bCQcXLI5ooQ5KyvA4FTgeo2jYj/7plWfV5Ak5wDPKQZgudKez2ixyfz7tKXzcJciTxqLeK7R9HItwiByg==", "license": "MIT", "dependencies": { - "ms": "2.1.2" + "@inquirer/checkbox": "^4.3.2", + "@inquirer/confirm": "^5.1.21", + "@inquirer/editor": "^4.2.23", + "@inquirer/expand": "^4.0.23", + "@inquirer/input": "^4.3.1", + "@inquirer/number": "^3.0.23", + "@inquirer/password": "^4.0.23", + "@inquirer/rawlist": "^4.1.11", + "@inquirer/search": "^3.2.2", + "@inquirer/select": "^4.4.2" }, "engines": { - "node": ">=6.0" + "node": ">=18" + }, + "peerDependencies": { + "@types/node": ">=18" }, "peerDependenciesMeta": { - "supports-color": { + "@types/node": { "optional": true } } }, - "node_modules/agent-base/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "license": "MIT" - }, - "node_modules/agentkeepalive": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.5.0.tgz", - "integrity": "sha512-5GG/5IbQQpC9FpkRGsSvZI5QYeSCzlJHdpBQntCsuTOxhKD8lqKhrleg2Yi7yvMIf82Ycmmqln9U8V9qwEiJew==", + "node_modules/@yeoman/adapter/node_modules/@inquirer/rawlist": { + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/@inquirer/rawlist/-/rawlist-4.1.11.tgz", + "integrity": "sha512-+LLQB8XGr3I5LZN/GuAHo+GpDJegQwuPARLChlMICNdwW7OwV2izlCSCxN6cqpL0sMXmbKbFcItJgdQq5EBXTw==", "license": "MIT", "dependencies": { - "humanize-ms": "^1.2.1" + "@inquirer/core": "^10.3.2", + "@inquirer/type": "^3.0.10", + "yoctocolors-cjs": "^2.1.3" }, "engines": { - "node": ">= 8.0.0" + "node": ">=18" + }, + "peerDependencies": { + "@types/node": ">=18" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } } }, - "node_modules/aggregate-error": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", - "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", + "node_modules/@yeoman/adapter/node_modules/@inquirer/search": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/@inquirer/search/-/search-3.2.2.tgz", + "integrity": "sha512-p2bvRfENXCZdWF/U2BXvnSI9h+tuA8iNqtUKb9UWbmLYCRQxd8WkvwWvYn+3NgYaNwdUkHytJMGG4MMLucI1kA==", "license": "MIT", "dependencies": { - "clean-stack": "^2.0.0", - "indent-string": "^4.0.0" + "@inquirer/core": "^10.3.2", + "@inquirer/figures": "^1.0.15", + "@inquirer/type": "^3.0.10", + "yoctocolors-cjs": "^2.1.3" }, "engines": { - "node": ">=8" + "node": ">=18" + }, + "peerDependencies": { + "@types/node": ">=18" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } } }, - "node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "node_modules/@yeoman/adapter/node_modules/@inquirer/select": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/@inquirer/select/-/select-4.4.2.tgz", + "integrity": "sha512-l4xMuJo55MAe+N7Qr4rX90vypFwCajSakx59qe/tMaC1aEHWLyw68wF4o0A4SLAY4E0nd+Vt+EyskeDIqu1M6w==", "license": "MIT", "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" + "@inquirer/ansi": "^1.0.2", + "@inquirer/core": "^10.3.2", + "@inquirer/figures": "^1.0.15", + "@inquirer/type": "^3.0.10", + "yoctocolors-cjs": "^2.1.3" }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/ansi-align": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.1.tgz", - "integrity": "sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==", - "license": "ISC", - "dependencies": { - "string-width": "^4.1.0" + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@types/node": ">=18" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } } }, - "node_modules/ansi-escapes": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", - "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "node_modules/@yeoman/adapter/node_modules/@inquirer/type": { + "version": "3.0.10", + "resolved": "https://registry.npmjs.org/@inquirer/type/-/type-3.0.10.tgz", + "integrity": "sha512-BvziSRxfz5Ov8ch0z/n3oijRSEcEsHnhggm4xFZe93DHcUCTlutlq9Ox4SVENAfcRD22UQq7T/atg9Wr3k09eA==", "license": "MIT", - "dependencies": { - "type-fest": "^0.21.3" - }, "engines": { - "node": ">=8" + "node": ">=18" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "peerDependencies": { + "@types/node": ">=18" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } } }, - "node_modules/ansi-regex": { + "node_modules/@yeoman/adapter/node_modules/ansi-regex": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", @@ -2376,7 +2668,7 @@ "node": ">=8" } }, - "node_modules/ansi-styles": { + "node_modules/@yeoman/adapter/node_modules/ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", @@ -2391,47 +2683,325 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/anymatch": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", - "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", - "license": "ISC", + "node_modules/@yeoman/adapter/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "license": "MIT" + }, + "node_modules/@yeoman/adapter/node_modules/inquirer": { + "version": "12.11.1", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-12.11.1.tgz", + "integrity": "sha512-9VF7mrY+3OmsAfjH3yKz/pLbJ5z22E23hENKw3/LNSaA/sAt3v49bDRY+Ygct1xwuKT+U+cBfTzjCPySna69Qw==", + "license": "MIT", "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" + "@inquirer/ansi": "^1.0.2", + "@inquirer/core": "^10.3.2", + "@inquirer/prompts": "^7.10.1", + "@inquirer/type": "^3.0.10", + "mute-stream": "^2.0.0", + "run-async": "^4.0.6", + "rxjs": "^7.8.2" }, "engines": { - "node": ">= 8" + "node": ">=18" + }, + "peerDependencies": { + "@types/node": ">=18" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } } }, - "node_modules/append-field": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/append-field/-/append-field-1.0.0.tgz", - "integrity": "sha512-klpgFSWLW1ZEs8svjfb7g4qWY0YS5imI82dTg+QahUvJ8YqAY0P10Uk8tTyh9ZGuYEZEMaeJYCF5BFuX552hsw==", - "license": "MIT" - }, - "node_modules/aproba": { + "node_modules/@yeoman/adapter/node_modules/mute-stream": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/aproba/-/aproba-2.0.0.tgz", - "integrity": "sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==", - "license": "ISC" + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-2.0.0.tgz", + "integrity": "sha512-WWdIxpyjEn+FhQJQQv9aQAYlHoNVdzIzUySNV1gHUPDSdZJ3yZn7pAAbQcV7B56Mvu881q9FZV+0Vx2xC44VWA==", + "license": "ISC", + "engines": { + "node": "^18.17.0 || >=20.5.0" + } }, - "node_modules/archiver": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/archiver/-/archiver-5.3.2.tgz", - "integrity": "sha512-+25nxyyznAXF7Nef3y0EbBeqmGZgeN/BxHX29Rs39djAfaFalmQ89SE6CWyDCHzGL0yt/ycBtNOmGTW0FyGWNw==", - "license": "MIT", + "node_modules/@yeoman/adapter/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@yeoman/adapter/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@yeoman/adapter/node_modules/wrap-ansi": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@yeoman/conflicter": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@yeoman/conflicter/-/conflicter-4.0.0.tgz", + "integrity": "sha512-h/PPw+XR9URrLdKb90aeiIAbnl8ToMvVJoPqO0KHldPBF+T60HUJlN+oDBfKugqYPsuTKASniPUrxagwtcdwgw==", + "license": "MIT", + "dependencies": { + "@yeoman/transform": "^2.1.0", + "binary-extensions": "^3.1.0", + "cli-table": "^0.3.11", + "dateformat": "^5.0.3", + "diff": "^8.0.2", + "isbinaryfile": "^5.0.4", + "mem-fs-editor": "^11.1.4", + "minimatch": "^10.0.3", + "p-transform": "^5.0.1", + "pretty-bytes": "^7.0.1", + "slash": "^5.1.0", + "textextensions": "^6.11.0" + }, + "acceptDependencies": { + "@yeoman/transform": "^2.0.0", + "minimatch": "^10.0.1", + "p-transform": "^5.0.1" + }, + "engines": { + "node": "20 || >=22" + }, + "peerDependencies": { + "@types/node": ">=20.14.8", + "@yeoman/types": "^1.0.0", + "mem-fs": "^4.0.0" + } + }, + "node_modules/@yeoman/conflicter/node_modules/minimatch": { + "version": "10.1.1", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.1.1.tgz", + "integrity": "sha512-enIvLvRAFZYXJzkCYG5RKmPfrFArdLv+R+lbQ53BmIMLIry74bjKzX6iHAm8WYamJkhSSEabrWN5D97XnKObjQ==", + "license": "BlueOak-1.0.0", + "dependencies": { + "@isaacs/brace-expansion": "^5.0.0" + }, + "engines": { + "node": "20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@yeoman/namespace": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@yeoman/namespace/-/namespace-1.0.1.tgz", + "integrity": "sha512-XGdYL0HCoPvrzW7T8bxD6RbCY/B8uvR2jpOzJc/yEwTueKHwoVhjSLjVXkokQAO0LNl8nQFLVZ1aKfr2eFWZeA==", + "license": "MIT", + "engines": { + "node": "^16.13.0 || >=18.12.0" + } + }, + "node_modules/@yeoman/transform": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@yeoman/transform/-/transform-2.1.0.tgz", + "integrity": "sha512-dAgDEMa8S+0ORAmrfFtufUccZpvwj6ZsZLZqMS86bxLUnB9h4n4dZN9IOHJHJfuOY+PAiLrEHgQYQvJ9R6IU6A==", + "license": "MIT", + "dependencies": { + "minimatch": "^9.0.0" + }, + "engines": { + "node": ">=18.19.0" + }, + "peerDependencies": { + "@types/node": ">=18.19.44" + } + }, + "node_modules/@yeoman/types": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/@yeoman/types/-/types-1.9.1.tgz", + "integrity": "sha512-5BMdA/zMzLv/ahnL1ktaV46nSXorb4sU4kQPQKDhIcK8ERbx9TAbGAE+XAlCXKioNIiOrihYj6gW1d/GEfU9Zw==", + "license": "MIT", + "peer": true, + "engines": { + "node": "^16.13.0 || >=18.12.0" + }, + "peerDependencies": { + "@types/node": ">=16.18.26", + "@yeoman/adapter": "^1.6.0 || ^2.0.0-beta.0 || ^3.0.0 || ^4.0.0", + "mem-fs": "^3.0.0 || ^4.0.0-beta.1", + "mem-fs-editor": "^10.0.2 || >=10.0.2" + }, + "peerDependenciesMeta": { + "@yeoman/adapter": { + "optional": true + }, + "mem-fs": { + "optional": true + }, + "mem-fs-editor": { + "optional": true + } + } + }, + "node_modules/abbrev": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-4.0.0.tgz", + "integrity": "sha512-a1wflyaL0tHtJSmLSOVybYhy22vRih4eduhhrkcjgrWGnRfrZtovJ2FRjxuTtkkj47O/baf0R86QU5OuYpz8fA==", + "license": "ISC", + "engines": { + "node": "^20.17.0 || >=22.9.0" + } + }, + "node_modules/abort-controller": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz", + "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==", + "license": "MIT", + "dependencies": { + "event-target-shim": "^5.0.0" + }, + "engines": { + "node": ">=6.5" + } + }, + "node_modules/accepts": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-2.0.0.tgz", + "integrity": "sha512-5cvg6CtKwfgdmVqY1WIiXKc3Q1bkRqGLi+2W/6ao+6Y7gu/RCwRuAhGEzh5B4KlszSuTLgZYuqFqo5bImjNKng==", + "license": "MIT", + "dependencies": { + "mime-types": "^3.0.0", + "negotiator": "^1.0.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/agent-base": { + "version": "7.1.4", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.4.tgz", + "integrity": "sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==", + "license": "MIT", + "engines": { + "node": ">= 14" + } + }, + "node_modules/ansi-align": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.1.tgz", + "integrity": "sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==", + "license": "ISC", + "dependencies": { + "string-width": "^4.1.0" + } + }, + "node_modules/ansi-align/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-align/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "license": "MIT" + }, + "node_modules/ansi-align/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-align/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-regex": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.2.2.tgz", + "integrity": "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/ansi-styles": { + "version": "6.2.3", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.3.tgz", + "integrity": "sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/append-field": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/append-field/-/append-field-1.0.0.tgz", + "integrity": "sha512-klpgFSWLW1ZEs8svjfb7g4qWY0YS5imI82dTg+QahUvJ8YqAY0P10Uk8tTyh9ZGuYEZEMaeJYCF5BFuX552hsw==", + "license": "MIT" + }, + "node_modules/archiver": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/archiver/-/archiver-7.0.1.tgz", + "integrity": "sha512-ZcbTaIqJOfCc03QwD468Unz/5Ir8ATtvAHsK+FdXbDIbGfihqh9mrvdcYunQzqn4HrvWWaFyaxJhGZagaJJpPQ==", + "license": "MIT", "dependencies": { - "archiver-utils": "^2.1.0", + "archiver-utils": "^5.0.2", "async": "^3.2.4", - "buffer-crc32": "^0.2.1", - "readable-stream": "^3.6.0", + "buffer-crc32": "^1.0.0", + "readable-stream": "^4.0.0", "readdir-glob": "^1.1.2", - "tar-stream": "^2.2.0", - "zip-stream": "^4.1.0" + "tar-stream": "^3.0.0", + "zip-stream": "^6.0.1" }, "engines": { - "node": ">= 10" + "node": ">= 14" } }, "node_modules/archiver-promise": { @@ -2489,14 +3059,23 @@ "lodash": "^4.17.14" } }, - "node_modules/archiver-promise/node_modules/bl": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/bl/-/bl-1.2.3.tgz", - "integrity": "sha512-pvcNpa0UU69UT341rO6AYy4FVAIkUHuZXRIWbq+zHnsVcRzDDjIAhGuuYoi0d//cwIwtt4pkpKycWEfjdV+vww==", + "node_modules/archiver-promise/node_modules/brace-expansion": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", + "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", "license": "MIT", "dependencies": { - "readable-stream": "^2.3.5", - "safe-buffer": "^5.1.1" + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/archiver-promise/node_modules/buffer-crc32": { + "version": "0.2.13", + "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", + "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", + "license": "MIT", + "engines": { + "node": "*" } }, "node_modules/archiver-promise/node_modules/compress-commons": { @@ -2527,6 +3106,39 @@ "node": ">= 0.10.0" } }, + "node_modules/archiver-promise/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/archiver-promise/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, "node_modules/archiver-promise/node_modules/normalize-path": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", @@ -2603,293 +3215,134 @@ } }, "node_modules/archiver-utils": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/archiver-utils/-/archiver-utils-2.1.0.tgz", - "integrity": "sha512-bEL/yUb/fNNiNTuUz979Z0Yg5L+LzLxGJz8x79lYmR54fmTIb6ob/hNQgkQnIUDWIFjZVQwl9Xs356I6BAMHfw==", + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/archiver-utils/-/archiver-utils-5.0.2.tgz", + "integrity": "sha512-wuLJMmIBQYCsGZgYLTy5FIB2pF6Lfb6cXMSF8Qywwk3t20zWnAi7zLcQFdKQmIB8wyZpY5ER38x08GbwtR2cLA==", "license": "MIT", "dependencies": { - "glob": "^7.1.4", + "glob": "^10.0.0", "graceful-fs": "^4.2.0", + "is-stream": "^2.0.1", "lazystream": "^1.0.0", - "lodash.defaults": "^4.2.0", - "lodash.difference": "^4.5.0", - "lodash.flatten": "^4.4.0", - "lodash.isplainobject": "^4.0.6", - "lodash.union": "^4.6.0", + "lodash": "^4.17.15", "normalize-path": "^3.0.0", - "readable-stream": "^2.0.0" + "readable-stream": "^4.0.0" }, "engines": { - "node": ">= 6" + "node": ">= 14" } }, - "node_modules/archiver-utils/node_modules/readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", - "license": "MIT", - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "node_modules/archiver-utils/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "license": "MIT" - }, - "node_modules/archiver-utils/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "license": "MIT", - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/are-we-there-yet": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-2.0.0.tgz", - "integrity": "sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw==", - "deprecated": "This package is no longer supported.", - "license": "ISC", - "dependencies": { - "delegates": "^1.0.0", - "readable-stream": "^3.6.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "license": "MIT", - "dependencies": { - "sprintf-js": "~1.0.2" - } - }, - "node_modules/array-differ": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/array-differ/-/array-differ-3.0.0.tgz", - "integrity": "sha512-THtfYS6KtME/yIAhKjZ2ul7XI96lQGHRputJQHO80LAWQnuGP4iCIN8vdMRboGbIEYBwU33q8Tch1os2+X0kMg==", + "node_modules/array-differ": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/array-differ/-/array-differ-4.0.0.tgz", + "integrity": "sha512-Q6VPTLMsmXZ47ENG3V+wQyZS1ZxXMxFyYzA+Z/GMrJ6yIutAIEf9wTyroTzmGjNfox9/h3GdGBCVh43GVFx4Uw==", "license": "MIT", "engines": { - "node": ">=8" + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/array-flatten": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", - "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==", - "license": "MIT" - }, "node_modules/array-union": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", - "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-3.0.1.tgz", + "integrity": "sha512-1OvF9IbWwaeiM9VhzYXVQacMibxpXOMYVNIvMtKRyX9SImBXpKcFr8XvFDeEslCyuH/t6KRt7HEO94AlP8Iatw==", "license": "MIT", "engines": { - "node": ">=8" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/arrify": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz", - "integrity": "sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-3.0.0.tgz", + "integrity": "sha512-tLkvA81vQG/XqE2mjDkGQHoOINtMHtysSnemrmoGe6PydDPMRbVugqyk4A6V/WDWEfm3l+0d8anA9r8cv/5Jaw==", "license": "MIT", "engines": { - "node": ">=8" - } - }, - "node_modules/asap": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", - "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==", - "license": "MIT" - }, - "node_modules/asn1": { - "version": "0.2.6", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz", - "integrity": "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==", - "license": "MIT", - "dependencies": { - "safer-buffer": "~2.1.0" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==", + "node_modules/assertion-error": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-2.0.1.tgz", + "integrity": "sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==", + "dev": true, "license": "MIT", "engines": { - "node": ">=0.8" + "node": ">=12" } }, "node_modules/async": { - "version": "3.2.5", - "resolved": "https://registry.npmjs.org/async/-/async-3.2.5.tgz", - "integrity": "sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg==", + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.6.tgz", + "integrity": "sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==", "license": "MIT" }, - "node_modules/asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", - "license": "MIT" - }, - "node_modules/aws-sign2": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", - "integrity": "sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==", - "license": "Apache-2.0", - "engines": { - "node": "*" - } - }, - "node_modules/aws4": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.13.1.tgz", - "integrity": "sha512-u5w79Rd7SU4JaIlA/zFqG+gOiuq25q5VLyZ8E+ijJeILuTxVzZgp2CaGw/UTw6pXYN9XMO9yiqj/nEHmhTG5CA==", - "license": "MIT" - }, - "node_modules/babel-jest": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-29.7.0.tgz", - "integrity": "sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==", - "dev": true, + "node_modules/atomically": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/atomically/-/atomically-2.1.0.tgz", + "integrity": "sha512-+gDffFXRW6sl/HCwbta7zK4uNqbPjv4YJEAdz7Vu+FLQHe77eZ4bvbJGi4hE0QPeJlMYMA3piXEr1UL3dAwx7Q==", "license": "MIT", "dependencies": { - "@jest/transform": "^29.7.0", - "@types/babel__core": "^7.1.14", - "babel-plugin-istanbul": "^6.1.1", - "babel-preset-jest": "^29.6.3", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "slash": "^3.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - }, - "peerDependencies": { - "@babel/core": "^7.8.0" - } - }, - "node_modules/babel-plugin-istanbul": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", - "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "@babel/helper-plugin-utils": "^7.0.0", - "@istanbuljs/load-nyc-config": "^1.0.0", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-instrument": "^5.0.4", - "test-exclude": "^6.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/babel-plugin-istanbul/node_modules/istanbul-lib-instrument": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz", - "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "@babel/core": "^7.12.3", - "@babel/parser": "^7.14.7", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-coverage": "^3.2.0", - "semver": "^6.3.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/babel-plugin-istanbul/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" + "stubborn-fs": "^2.0.0", + "when-exit": "^2.1.4" } }, - "node_modules/babel-plugin-jest-hoist": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.6.3.tgz", - "integrity": "sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==", - "dev": true, + "node_modules/available-typed-arrays": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", + "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", "license": "MIT", "dependencies": { - "@babel/template": "^7.3.3", - "@babel/types": "^7.3.3", - "@types/babel__core": "^7.1.14", - "@types/babel__traverse": "^7.0.6" + "possible-typed-array-names": "^1.0.0" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/babel-preset-current-node-syntax": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz", - "integrity": "sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/plugin-syntax-async-generators": "^7.8.4", - "@babel/plugin-syntax-bigint": "^7.8.3", - "@babel/plugin-syntax-class-properties": "^7.8.3", - "@babel/plugin-syntax-import-meta": "^7.8.3", - "@babel/plugin-syntax-json-strings": "^7.8.3", - "@babel/plugin-syntax-logical-assignment-operators": "^7.8.3", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", - "@babel/plugin-syntax-numeric-separator": "^7.8.3", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", - "@babel/plugin-syntax-optional-chaining": "^7.8.3", - "@babel/plugin-syntax-top-level-await": "^7.8.3" + "node": ">= 0.4" }, - "peerDependencies": { - "@babel/core": "^7.0.0" + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/babel-preset-jest": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-29.6.3.tgz", - "integrity": "sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==", - "dev": true, - "license": "MIT", - "dependencies": { - "babel-plugin-jest-hoist": "^29.6.3", - "babel-preset-current-node-syntax": "^1.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - }, + "node_modules/b4a": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/b4a/-/b4a-1.7.3.tgz", + "integrity": "sha512-5Q2mfq2WfGuFp3uS//0s6baOJLMoVduPYVeNmDYxu5OUA1/cBfvr2RIS7vi62LdNj/urk1hfmj867I3qt6uZ7Q==", + "license": "Apache-2.0", "peerDependencies": { - "@babel/core": "^7.0.0" + "react-native-b4a": "*" + }, + "peerDependenciesMeta": { + "react-native-b4a": { + "optional": true + } } }, "node_modules/balanced-match": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "inBundle": true, "license": "MIT" }, + "node_modules/bare-events": { + "version": "2.8.2", + "resolved": "https://registry.npmjs.org/bare-events/-/bare-events-2.8.2.tgz", + "integrity": "sha512-riJjyv1/mHLIPX4RwiK+oW9/4c3TEUeORHKefKAKnZ5kyslbN+HXowtbaVEqt4IMUB7OXlfixcs6gsFeo/jhiQ==", + "license": "Apache-2.0", + "peerDependencies": { + "bare-abort-controller": "*" + }, + "peerDependenciesMeta": { + "bare-abort-controller": { + "optional": true + } + } + }, "node_modules/base64-js": { "version": "1.5.1", "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", @@ -2910,96 +3363,93 @@ ], "license": "MIT" }, - "node_modules/bcrypt-pbkdf": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", - "integrity": "sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==", - "license": "BSD-3-Clause", - "dependencies": { - "tweetnacl": "^0.14.3" - } - }, "node_modules/before-after-hook": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/before-after-hook/-/before-after-hook-2.2.3.tgz", - "integrity": "sha512-NzUnlZexiaH/46WDhANlyR2bXRopNg4F/zuSA3OpZnllCUgRaOF2znDioDWrmbNVsuZk6l9pMquQB38cfBZwkQ==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/before-after-hook/-/before-after-hook-3.0.2.tgz", + "integrity": "sha512-Nik3Sc0ncrMK4UUdXQmAnRtzmNQTAAXmXIopizwZ1W1t8QmfJj+zL4OA2I7XPTPW5z5TDqv4hRo/JzouDJnX3A==", "license": "Apache-2.0" }, "node_modules/bin-links": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/bin-links/-/bin-links-3.0.3.tgz", - "integrity": "sha512-zKdnMPWEdh4F5INR07/eBrodC7QrF5JKvqskjz/ZZRXg5YSAZIbn8zGhbhUrElzHBZ2fvEQdOU59RHcTG3GiwA==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/bin-links/-/bin-links-6.0.0.tgz", + "integrity": "sha512-X4CiKlcV2GjnCMwnKAfbVWpHa++65th9TuzAEYtZoATiOE2DQKhSp4CJlyLoTqdhBKlXjpXjCTYPNNFS33Fi6w==", "license": "ISC", "dependencies": { - "cmd-shim": "^5.0.0", - "mkdirp-infer-owner": "^2.0.0", - "npm-normalize-package-bin": "^2.0.0", - "read-cmd-shim": "^3.0.0", - "rimraf": "^3.0.0", - "write-file-atomic": "^4.0.0" + "cmd-shim": "^8.0.0", + "npm-normalize-package-bin": "^5.0.0", + "proc-log": "^6.0.0", + "read-cmd-shim": "^6.0.0", + "write-file-atomic": "^7.0.0" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/bin-links/node_modules/npm-normalize-package-bin": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-2.0.0.tgz", - "integrity": "sha512-awzfKUO7v0FscrSpRoogyNm0sajikhBWpU0QMrW09AMi9n1PoKU6WaIqUzuJSQnpciZZmJ/jMZ2Egfmb/9LiWQ==", - "license": "ISC", - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/bin-links/node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "deprecated": "Rimraf versions prior to v4 are no longer supported", - "license": "ISC", - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "node": "^20.17.0 || >=22.9.0" } }, "node_modules/binary-extensions": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", - "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-3.1.0.tgz", + "integrity": "sha512-Jvvd9hy1w+xUad8+ckQsWA/V1AoyubOvqn0aygjMOVM4BfIaRav1NFS3LsTSDaV4n4FtcCtQXvzep1E6MboqwQ==", "license": "MIT", "engines": { - "node": ">=8" + "node": ">=18.20" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/binaryextensions": { - "version": "4.19.0", - "resolved": "https://registry.npmjs.org/binaryextensions/-/binaryextensions-4.19.0.tgz", - "integrity": "sha512-DRxnVbOi/1OgA5pA9EDiRT8gvVYeqfuN7TmPfLyt6cyho3KbHCi3EtDQf39TTmGDrR5dZ9CspdXhPkL/j/WGbg==", + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/binaryextensions/-/binaryextensions-6.11.0.tgz", + "integrity": "sha512-sXnYK/Ij80TO3lcqZVV2YgfKN5QjUWIRk/XSm2J/4bd/lPko3lvk0O4ZppH6m+6hB2/GTu+ptNwVFe1xh+QLQw==", "license": "Artistic-2.0", + "dependencies": { + "editions": "^6.21.0" + }, "engines": { - "node": ">=0.8" + "node": ">=4" }, "funding": { "url": "https://bevry.me/fund" } }, "node_modules/bl": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", - "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/bl/-/bl-1.2.3.tgz", + "integrity": "sha512-pvcNpa0UU69UT341rO6AYy4FVAIkUHuZXRIWbq+zHnsVcRzDDjIAhGuuYoi0d//cwIwtt4pkpKycWEfjdV+vww==", + "license": "MIT", + "dependencies": { + "readable-stream": "^2.3.5", + "safe-buffer": "^5.1.1" + } + }, + "node_modules/bl/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "license": "MIT", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/bl/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "license": "MIT" + }, + "node_modules/bl/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "license": "MIT", "dependencies": { - "buffer": "^5.5.0", - "inherits": "^2.0.4", - "readable-stream": "^3.4.0" + "safe-buffer": "~5.1.0" } }, "node_modules/bluebird": { @@ -3009,107 +3459,88 @@ "license": "MIT" }, "node_modules/body-parser": { - "version": "1.20.2", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.2.tgz", - "integrity": "sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==", + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-2.2.2.tgz", + "integrity": "sha512-oP5VkATKlNwcgvxi0vM0p/D3n2C3EReYVX+DNYs5TjZFn/oQt2j+4sVJtSMr18pdRr8wjTcBl6LoV+FUwzPmNA==", "license": "MIT", "dependencies": { - "bytes": "3.1.2", - "content-type": "~1.0.5", - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "on-finished": "2.4.1", - "qs": "6.11.0", - "raw-body": "2.5.2", - "type-is": "~1.6.18", - "unpipe": "1.0.0" + "bytes": "^3.1.2", + "content-type": "^1.0.5", + "debug": "^4.4.3", + "http-errors": "^2.0.0", + "iconv-lite": "^0.7.0", + "on-finished": "^2.4.1", + "qs": "^6.14.1", + "raw-body": "^3.0.1", + "type-is": "^2.0.1" }, "engines": { - "node": ">= 0.8", - "npm": "1.2.8000 || >= 1.4.16" + "node": ">=18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" } }, "node_modules/boxen": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/boxen/-/boxen-5.1.2.tgz", - "integrity": "sha512-9gYgQKXx+1nP8mP7CzFyaUARhg7D3n1dF/FnErWmu9l6JvGpNUN278h0aSb+QjoiKSWG+iZ3uHrcqk0qrY9RQQ==", + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/boxen/-/boxen-8.0.1.tgz", + "integrity": "sha512-F3PH5k5juxom4xktynS7MoFY+NUWH5LC4CnH11YB8NPew+HLpmBLCybSAEyb2F+4pRXhuhWqFesoQd6DAyc2hw==", "license": "MIT", "dependencies": { - "ansi-align": "^3.0.0", - "camelcase": "^6.2.0", - "chalk": "^4.1.0", - "cli-boxes": "^2.2.1", - "string-width": "^4.2.2", - "type-fest": "^0.20.2", - "widest-line": "^3.1.0", - "wrap-ansi": "^7.0.0" - }, - "engines": { - "node": ">=10" + "ansi-align": "^3.0.1", + "camelcase": "^8.0.0", + "chalk": "^5.3.0", + "cli-boxes": "^3.0.0", + "string-width": "^7.2.0", + "type-fest": "^4.21.0", + "widest-line": "^5.0.0", + "wrap-ansi": "^9.0.0" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/boxen/node_modules/camelcase": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", - "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", - "license": "MIT", "engines": { - "node": ">=10" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/boxen/node_modules/type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", - "license": "(MIT OR CC0-1.0)", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } + "node_modules/boxen/node_modules/emoji-regex": { + "version": "10.6.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.6.0.tgz", + "integrity": "sha512-toUI84YS5YmxW219erniWD0CIVOo46xGKColeNQRgOzDorgBi1v4D71/OFzgD9GO2UGKIv1C3Sp8DAn0+j5w7A==", + "license": "MIT" }, - "node_modules/boxen/node_modules/wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "node_modules/boxen/node_modules/string-width": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-7.2.0.tgz", + "integrity": "sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==", "license": "MIT", "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" + "emoji-regex": "^10.3.0", + "get-east-asian-width": "^1.0.0", + "strip-ansi": "^7.1.0" }, "engines": { - "node": ">=10" + "node": ">=18" }, "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "inBundle": true, + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz", + "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", "license": "MIT", "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" + "balanced-match": "^1.0.0" } }, "node_modules/braces": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "inBundle": true, "license": "MIT", "dependencies": { "fill-range": "^7.1.1" @@ -3118,57 +3549,14 @@ "node": ">=8" } }, - "node_modules/browserslist": { - "version": "4.23.3", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.3.tgz", - "integrity": "sha512-btwCFJVjI4YWDNfau8RhZ+B1Q/VLoUITrm3RlP6y1tYGWIOa+InuYiRGXUBXo8nA1qKmHMyLB/iVQg5TT4eFoA==", - "dev": true, + "node_modules/buffer": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", "funding": [ { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "dependencies": { - "caniuse-lite": "^1.0.30001646", - "electron-to-chromium": "^1.5.4", - "node-releases": "^2.0.18", - "update-browserslist-db": "^1.1.0" - }, - "bin": { - "browserslist": "cli.js" - }, - "engines": { - "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" - } - }, - "node_modules/bser": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", - "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "node-int64": "^0.4.0" - } - }, - "node_modules/buffer": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" + "type": "github", + "url": "https://github.com/sponsors/feross" }, { "type": "patreon", @@ -3182,7 +3570,7 @@ "license": "MIT", "dependencies": { "base64-js": "^1.3.1", - "ieee754": "^1.1.13" + "ieee754": "^1.2.1" } }, "node_modules/buffer-alloc": { @@ -3202,12 +3590,12 @@ "license": "MIT" }, "node_modules/buffer-crc32": { - "version": "0.2.13", - "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", - "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-1.0.0.tgz", + "integrity": "sha512-Db1SbgBS/fg/392AblrMJk97KggmvYhr4pB5ZIMTWtaivCPMWLkmb7m21cJvpvgK+J3nsU2CmmixNBZx4vFj/w==", "license": "MIT", "engines": { - "node": "*" + "node": ">=8.0.0" } }, "node_modules/buffer-fill": { @@ -3222,12 +3610,6 @@ "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", "license": "MIT" }, - "node_modules/builtins": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/builtins/-/builtins-1.0.3.tgz", - "integrity": "sha512-uYBjakWipfaO/bXI7E8rq6kpwHRZK5cNYrUv2OzZSI/FvmdMyXJ2tG9dKcjEC5YHmHpUAwsargWIZNWdxb/bnQ==", - "license": "MIT" - }, "node_modules/bundle-name": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/bundle-name/-/bundle-name-4.1.0.tgz", @@ -3263,134 +3645,134 @@ "node": ">= 0.8" } }, + "node_modules/cac": { + "version": "6.7.14", + "resolved": "https://registry.npmjs.org/cac/-/cac-6.7.14.tgz", + "integrity": "sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, "node_modules/cacache": { - "version": "15.3.0", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-15.3.0.tgz", - "integrity": "sha512-VVdYzXEn+cnbXpFgWs5hTT7OScegHVmLhJIR8Ufqk3iFD6A6j5iSX1KuBTfNEv4tdJWE2PzA6IVFtcLC7fN9wQ==", + "version": "20.0.3", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-20.0.3.tgz", + "integrity": "sha512-3pUp4e8hv07k1QlijZu6Kn7c9+ZpWWk4j3F8N3xPuCExULobqJydKYOTj1FTq58srkJsXvO7LbGAH4C0ZU3WGw==", "license": "ISC", "dependencies": { - "@npmcli/fs": "^1.0.0", - "@npmcli/move-file": "^1.0.1", - "chownr": "^2.0.0", - "fs-minipass": "^2.0.0", - "glob": "^7.1.4", - "infer-owner": "^1.0.4", - "lru-cache": "^6.0.0", - "minipass": "^3.1.1", - "minipass-collect": "^1.0.2", + "@npmcli/fs": "^5.0.0", + "fs-minipass": "^3.0.0", + "glob": "^13.0.0", + "lru-cache": "^11.1.0", + "minipass": "^7.0.3", + "minipass-collect": "^2.0.1", "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.2", - "mkdirp": "^1.0.3", - "p-map": "^4.0.0", - "promise-inflight": "^1.0.1", - "rimraf": "^3.0.2", - "ssri": "^8.0.1", - "tar": "^6.0.2", - "unique-filename": "^1.1.1" + "minipass-pipeline": "^1.2.4", + "p-map": "^7.0.2", + "ssri": "^13.0.0", + "unique-filename": "^5.0.0" }, "engines": { - "node": ">= 10" + "node": "^20.17.0 || >=22.9.0" } }, - "node_modules/cacache/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "license": "ISC", + "node_modules/cacache/node_modules/glob": { + "version": "13.0.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-13.0.0.tgz", + "integrity": "sha512-tvZgpqk6fz4BaNZ66ZsRaZnbHvP/jG3uKJvAZOwEVUL4RTA5nJeeLYfyN9/VA8NX/V3IBG+hkeuGpKjvELkVhA==", + "license": "BlueOak-1.0.0", "dependencies": { - "yallist": "^4.0.0" + "minimatch": "^10.1.1", + "minipass": "^7.1.2", + "path-scurry": "^2.0.0" }, "engines": { - "node": ">=10" + "node": "20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/cacache/node_modules/mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "license": "MIT", - "bin": { - "mkdirp": "bin/cmd.js" - }, + "node_modules/cacache/node_modules/lru-cache": { + "version": "11.2.4", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.2.4.tgz", + "integrity": "sha512-B5Y16Jr9LB9dHVkh6ZevG+vAbOsNOYCX+sXvFWFu7B3Iz5mijW3zdbMyhsh8ANd2mSWBYdJgnqi+mL7/LrOPYg==", + "license": "BlueOak-1.0.0", "engines": { - "node": ">=10" + "node": "20 || >=22" } }, - "node_modules/cacache/node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "deprecated": "Rimraf versions prior to v4 are no longer supported", - "license": "ISC", + "node_modules/cacache/node_modules/minimatch": { + "version": "10.1.1", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.1.1.tgz", + "integrity": "sha512-enIvLvRAFZYXJzkCYG5RKmPfrFArdLv+R+lbQ53BmIMLIry74bjKzX6iHAm8WYamJkhSSEabrWN5D97XnKObjQ==", + "license": "BlueOak-1.0.0", "dependencies": { - "glob": "^7.1.3" + "@isaacs/brace-expansion": "^5.0.0" }, - "bin": { - "rimraf": "bin.js" + "engines": { + "node": "20 || >=22" }, "funding": { "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/cacache/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "license": "ISC" - }, - "node_modules/cacheable-request": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz", - "integrity": "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==", - "license": "MIT", + "node_modules/cacache/node_modules/path-scurry": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-2.0.1.tgz", + "integrity": "sha512-oWyT4gICAu+kaA7QWk/jvCHWarMKNs6pXOGWKDTr7cw4IGcUbW+PeTfbaQiLGheFRpjo6O9J0PmyMfQPjH71oA==", + "license": "BlueOak-1.0.0", "dependencies": { - "clone-response": "^1.0.2", - "get-stream": "^5.1.0", - "http-cache-semantics": "^4.0.0", - "keyv": "^3.0.0", - "lowercase-keys": "^2.0.0", - "normalize-url": "^4.1.0", - "responselike": "^1.0.2" + "lru-cache": "^11.0.0", + "minipass": "^7.1.2" }, "engines": { - "node": ">=8" + "node": "20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/cacheable-request/node_modules/get-stream": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "node_modules/call-bind": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.8.tgz", + "integrity": "sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==", "license": "MIT", "dependencies": { - "pump": "^3.0.0" + "call-bind-apply-helpers": "^1.0.0", + "es-define-property": "^1.0.0", + "get-intrinsic": "^1.2.4", + "set-function-length": "^1.2.2" }, "engines": { - "node": ">=8" + "node": ">= 0.4" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/cacheable-request/node_modules/lowercase-keys": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", - "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", + "node_modules/call-bind-apply-helpers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", + "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2" + }, "engines": { - "node": ">=8" + "node": ">= 0.4" } }, - "node_modules/call-bind": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", - "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", + "node_modules/call-bound": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz", + "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==", "license": "MIT", "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.1" + "call-bind-apply-helpers": "^1.0.2", + "get-intrinsic": "^1.3.0" }, "engines": { "node": ">= 0.4" @@ -3399,181 +3781,121 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "dev": true, + "node_modules/camelcase": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-8.0.0.tgz", + "integrity": "sha512-8WB3Jcas3swSvjIeA2yvCJ+Miyz5l1ZmB6HFb9R1317dt9LCQoswg/BGrmAmkWVEszSrrg4RwmO46qIm2OEnSA==", "license": "MIT", "engines": { - "node": ">=6" + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "node_modules/chai": { + "version": "5.3.3", + "resolved": "https://registry.npmjs.org/chai/-/chai-5.3.3.tgz", + "integrity": "sha512-4zNhdJD/iOjSH0A05ea+Ke6MU5mmpQcbQsSOkgdaUMJ9zTlDTD/GYlwohmIE2u0gaxHYiVHEn1Fw9mZ/ktJWgw==", "dev": true, "license": "MIT", + "dependencies": { + "assertion-error": "^2.0.1", + "check-error": "^2.1.1", + "deep-eql": "^5.0.1", + "loupe": "^3.1.0", + "pathval": "^2.0.0" + }, "engines": { - "node": ">=6" + "node": ">=18" } }, - "node_modules/caniuse-lite": { - "version": "1.0.30001651", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001651.tgz", - "integrity": "sha512-9Cf+Xv1jJNe1xPZLGuUXLNkE1BoDkqRqYyFJ9TDYSqhduqA4hu4oR9HluGoWYQC/aj8WHjsGVV+bwkh0+tegRg==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/caniuse-lite" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "CC-BY-4.0" - }, - "node_modules/caseless": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "integrity": "sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==", - "license": "Apache-2.0" - }, "node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "version": "5.6.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.6.2.tgz", + "integrity": "sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA==", "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, "engines": { - "node": ">=10" + "node": "^12.17.0 || ^14.13 || >=16.0.0" }, "funding": { "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/char-regex": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", - "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", + "node_modules/chardet": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/chardet/-/chardet-2.1.1.tgz", + "integrity": "sha512-PsezH1rqdV9VvyNhxxOW32/d75r01NY7TQCmOqomRo15ZSOKbpTFVsfjghxo6JloQUCGnH4k1LGu0R4yCLlWQQ==", + "license": "MIT" + }, + "node_modules/check-error": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/check-error/-/check-error-2.1.3.tgz", + "integrity": "sha512-PAJdDJusoxnwm1VwW07VWwUN1sl7smmC3OKggvndJFadxxDRyFJBX/ggnu/KE4kQAB7a3Dp8f/YXC1FlUprWmA==", "dev": true, "license": "MIT", "engines": { - "node": ">=10" + "node": ">= 16" } }, - "node_modules/chardet": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", - "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", - "license": "MIT" - }, "node_modules/chokidar": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", - "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-5.0.0.tgz", + "integrity": "sha512-TQMmc3w+5AxjpL8iIiwebF73dRDF4fBIieAqGn9RGCWaEVwQ6Fb2cGe31Yns0RRIzii5goJ1Y7xbMwo1TxMplw==", "license": "MIT", "dependencies": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" + "readdirp": "^5.0.0" }, "engines": { - "node": ">= 8.10.0" + "node": ">= 20.19.0" }, "funding": { "url": "https://paulmillr.com/funding/" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" } }, "node_modules/chownr": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", - "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", - "license": "ISC", - "engines": { - "node": ">=10" - } - }, - "node_modules/ci-info": { - "version": "3.9.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz", - "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/sibiraj-s" - } - ], - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/cjs-module-lexer": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.3.1.tgz", - "integrity": "sha512-a3KdPAANPbNE4ZUv9h6LckSl9zLsYOP4MBmhIPkRaeyybt+r4UghLvq+xw/YwUcC1gqylCkL4rdVs3Lwupjm4Q==", - "dev": true, - "license": "MIT" - }, - "node_modules/clean-stack": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", - "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", - "license": "MIT", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-3.0.0.tgz", + "integrity": "sha512-+IxzY9BZOQd/XuYPRmrvEVjF/nqj5kgT4kEq7VofrDoM1MxoRjEWkrCC3EtLi59TVawxTAn+orJwFQcrqEN1+g==", + "license": "BlueOak-1.0.0", "engines": { - "node": ">=6" + "node": ">=18" } }, "node_modules/cli-boxes": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.1.tgz", - "integrity": "sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-3.0.0.tgz", + "integrity": "sha512-/lzGpEWL/8PfI0BmBOPRwp0c/wFNX1RdUML3jK/RcSBA9T8mZDdQpqYBKtCFTOfQbwPqWEOpjqW+Fnayc0969g==", "license": "MIT", "engines": { - "node": ">=6" + "node": ">=10" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/cli-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", - "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-5.0.0.tgz", + "integrity": "sha512-aCj4O5wKyszjMmDT4tZj93kxyydN/K5zPWSCe6/0AV/AA1pqe5ZBIw0a2ZfPQV7lL5/yb5HsUreJ6UFAF1tEQw==", "license": "MIT", "dependencies": { - "restore-cursor": "^3.1.0" + "restore-cursor": "^5.0.0" }, "engines": { - "node": ">=8" + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/cli-spinners": { - "version": "2.9.2", - "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.9.2.tgz", - "integrity": "sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==", + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-3.4.0.tgz", + "integrity": "sha512-bXfOC4QcT1tKXGorxL3wbJm6XJPDqEnij2gQ2m7ESQuE+/z9YFIWnl/5RpTiKWbMq3EVKR4fRLJGn6DVfu0mpw==", "license": "MIT", "engines": { - "node": ">=6" + "node": ">=18.20" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -3591,45 +3913,12 @@ } }, "node_modules/cli-width": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz", - "integrity": "sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==", - "license": "ISC", - "engines": { - "node": ">= 10" - } - }, - "node_modules/cliui": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", - "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", - "dev": true, + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-4.1.0.tgz", + "integrity": "sha512-ouuZd4/dm2Sw5Gmqy6bGyNNNe1qt9RpmxveLSO7KcgsTnU7RXfsw+/bukWGo1abgBiMAic068rclZsO4IWmmxQ==", "license": "ISC", - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.1", - "wrap-ansi": "^7.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/cliui/node_modules/wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + "node": ">= 12" } }, "node_modules/clone": { @@ -3641,131 +3930,33 @@ "node": ">=0.8" } }, - "node_modules/clone-buffer": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/clone-buffer/-/clone-buffer-1.0.0.tgz", - "integrity": "sha512-KLLTJWrvwIP+OPfMn0x2PheDEP20RPUcGXj/ERegTgdmPEZylALQldygiqrPPu8P45uNuPs7ckmReLY6v/iA5g==", - "license": "MIT", + "node_modules/cmd-shim": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/cmd-shim/-/cmd-shim-8.0.0.tgz", + "integrity": "sha512-Jk/BK6NCapZ58BKUxlSI+ouKRbjH1NLZCgJkYoab+vEHUY3f6OzpNBN9u7HFSv9J6TRDGs4PLOHezoKGaFRSCA==", + "license": "ISC", "engines": { - "node": ">= 0.10" + "node": "^20.17.0 || >=22.9.0" } }, - "node_modules/clone-response": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.3.tgz", - "integrity": "sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA==", + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "license": "MIT", "dependencies": { - "mimic-response": "^1.0.0" + "color-name": "~1.1.4" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "engines": { + "node": ">=7.0.0" } }, - "node_modules/clone-stats": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-1.0.0.tgz", - "integrity": "sha512-au6ydSpg6nsrigcZ4m8Bc9hxjeW+GJ8xh5G3BJCMt4WXe1H10UNaVOamqQTmrx1kjVuxAHIQSNU6hY4Nsn9/ag==", + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "license": "MIT" }, - "node_modules/cloneable-readable": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/cloneable-readable/-/cloneable-readable-1.1.3.tgz", - "integrity": "sha512-2EF8zTQOxYq70Y4XKtorQupqF0m49MBz2/yf5Bj+MHjvpG3Hy7sImifnqD6UA+TKYxeSV+u6qqQPawN5UvnpKQ==", - "license": "MIT", - "dependencies": { - "inherits": "^2.0.1", - "process-nextick-args": "^2.0.0", - "readable-stream": "^2.3.5" - } - }, - "node_modules/cloneable-readable/node_modules/readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", - "license": "MIT", - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "node_modules/cloneable-readable/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "license": "MIT" - }, - "node_modules/cloneable-readable/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "license": "MIT", - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/cmd-shim": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/cmd-shim/-/cmd-shim-5.0.0.tgz", - "integrity": "sha512-qkCtZ59BidfEwHltnJwkyVZn+XQojdAySM1D1gSeh11Z4pW1Kpolkyo53L5noc0nrxmIvyFwTmJRo4xs7FFLPw==", - "license": "ISC", - "dependencies": { - "mkdirp-infer-owner": "^2.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/co": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", - "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==", - "dev": true, - "license": "MIT", - "engines": { - "iojs": ">= 1.0.0", - "node": ">= 0.12.0" - } - }, - "node_modules/collect-v8-coverage": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.2.tgz", - "integrity": "sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q==", - "dev": true, - "license": "MIT" - }, - "node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "license": "MIT" - }, - "node_modules/color-support": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz", - "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==", - "license": "ISC", - "bin": { - "color-support": "bin.js" - } - }, "node_modules/colors": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz", @@ -3775,18 +3966,6 @@ "node": ">=0.1.90" } }, - "node_modules/combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "license": "MIT", - "dependencies": { - "delayed-stream": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, "node_modules/commander": { "version": "12.1.0", "resolved": "https://registry.npmjs.org/commander/-/commander-12.1.0.tgz", @@ -3810,141 +3989,101 @@ "license": "MIT" }, "node_modules/compress-commons": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/compress-commons/-/compress-commons-4.1.2.tgz", - "integrity": "sha512-D3uMHtGc/fcO1Gt1/L7i1e33VOvD4A9hfQLP+6ewd+BvG/gQ84Yh4oftEhAdjSMgBgwGL+jsppT7JYNpo6MHHg==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/compress-commons/-/compress-commons-6.0.2.tgz", + "integrity": "sha512-6FqVXeETqWPoGcfzrXb37E50NP0LXT8kAMu5ooZayhWWdgEY4lBEEcbQNXtkuKQsGduxiIcI4gOTsxTmuq/bSg==", "license": "MIT", "dependencies": { - "buffer-crc32": "^0.2.13", - "crc32-stream": "^4.0.2", + "crc-32": "^1.2.0", + "crc32-stream": "^6.0.0", + "is-stream": "^2.0.1", "normalize-path": "^3.0.0", - "readable-stream": "^3.6.0" + "readable-stream": "^4.0.0" }, "engines": { - "node": ">= 10" + "node": ">= 14" } }, "node_modules/concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", - "inBundle": true, "license": "MIT" }, "node_modules/concat-stream": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", - "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-2.0.0.tgz", + "integrity": "sha512-MWufYdFw53ccGjCA+Ol7XJYpAlW6/prSMzuPOTRnJGcGzuhLn4Scrz7qf6o8bROZ514ltazcIFJZevcfbo0x7A==", "engines": [ - "node >= 0.8" + "node >= 6.0" ], "license": "MIT", "dependencies": { "buffer-from": "^1.0.0", "inherits": "^2.0.3", - "readable-stream": "^2.2.2", + "readable-stream": "^3.0.2", "typedarray": "^0.0.6" } }, "node_modules/concat-stream/node_modules/readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", "license": "MIT", "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" } }, - "node_modules/concat-stream/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "license": "MIT" - }, - "node_modules/concat-stream/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "node_modules/config-chain": { + "version": "1.1.13", + "resolved": "https://registry.npmjs.org/config-chain/-/config-chain-1.1.13.tgz", + "integrity": "sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==", "license": "MIT", "dependencies": { - "safe-buffer": "~5.1.0" + "ini": "^1.3.4", + "proto-list": "~1.2.1" } }, + "node_modules/config-chain/node_modules/ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", + "license": "ISC" + }, "node_modules/configstore": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/configstore/-/configstore-5.0.1.tgz", - "integrity": "sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA==", + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/configstore/-/configstore-7.1.0.tgz", + "integrity": "sha512-N4oog6YJWbR9kGyXvS7jEykLDXIE2C0ILYqNBZBp9iwiJpoCBWYsuAdW6PPFn6w06jjnC+3JstVvWHO4cZqvRg==", "license": "BSD-2-Clause", "dependencies": { - "dot-prop": "^5.2.0", - "graceful-fs": "^4.1.2", - "make-dir": "^3.0.0", - "unique-string": "^2.0.0", - "write-file-atomic": "^3.0.0", - "xdg-basedir": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/configstore/node_modules/make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", - "license": "MIT", - "dependencies": { - "semver": "^6.0.0" + "atomically": "^2.0.3", + "dot-prop": "^9.0.0", + "graceful-fs": "^4.2.11", + "xdg-basedir": "^5.1.0" }, "engines": { - "node": ">=8" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/configstore/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/configstore/node_modules/write-file-atomic": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", - "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", - "license": "ISC", - "dependencies": { - "imurmurhash": "^0.1.4", - "is-typedarray": "^1.0.0", - "signal-exit": "^3.0.2", - "typedarray-to-buffer": "^3.1.5" - } - }, - "node_modules/console-control-strings": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", - "integrity": "sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==", - "license": "ISC" - }, "node_modules/content-disposition": { - "version": "0.5.4", - "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", - "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-1.0.1.tgz", + "integrity": "sha512-oIXISMynqSqm241k6kcQ5UwttDILMK4BiurCfGEREw6+X9jkkpEe5T9FZaApyLGGOnFuyMWZpdolTXMtvEJ08Q==", "license": "MIT", - "dependencies": { - "safe-buffer": "5.2.1" - }, "engines": { - "node": ">= 0.6" + "node": ">=18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" } }, "node_modules/content-type": { @@ -3956,32 +4095,28 @@ "node": ">= 0.6" } }, - "node_modules/convert-source-map": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", - "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", - "dev": true, - "license": "MIT" - }, "node_modules/cookie": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.6.0.tgz", - "integrity": "sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==", + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.2.tgz", + "integrity": "sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==", "license": "MIT", "engines": { "node": ">= 0.6" } }, "node_modules/cookie-signature": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", - "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==", - "license": "MIT" + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.2.2.tgz", + "integrity": "sha512-D76uU73ulSXrD1UXF4KE2TMxVVwhsnCgfAyTg9k8P6KGZjlXKrOLe4dJQKI3Bxi5wjesZoFXJWElNWBjPZMbhg==", + "license": "MIT", + "engines": { + "node": ">=6.6.0" + } }, "node_modules/core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", "license": "MIT" }, "node_modules/crc": { @@ -4005,45 +4140,48 @@ "node": ">=0.8" } }, - "node_modules/crc32-stream": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/crc32-stream/-/crc32-stream-4.0.3.tgz", - "integrity": "sha512-NT7w2JVU7DFroFdYkeq8cywxrgjPHWkdX1wjpRQXPX5Asews3tA+Ght6lddQO5Mkumffp3X7GEqku3epj2toIw==", + "node_modules/crc/node_modules/buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], "license": "MIT", "dependencies": { - "crc-32": "^1.2.0", - "readable-stream": "^3.4.0" - }, - "engines": { - "node": ">= 10" + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" } }, - "node_modules/create-jest": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/create-jest/-/create-jest-29.7.0.tgz", - "integrity": "sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==", - "dev": true, + "node_modules/crc32-stream": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/crc32-stream/-/crc32-stream-6.0.0.tgz", + "integrity": "sha512-piICUB6ei4IlTv1+653yq5+KoqfBYmj9bw6LqXoOneTMDXk5nM1qt12mFW1caG3LlJXEKW1Bp0WggEmIfQB34g==", "license": "MIT", "dependencies": { - "@jest/types": "^29.6.3", - "chalk": "^4.0.0", - "exit": "^0.1.2", - "graceful-fs": "^4.2.9", - "jest-config": "^29.7.0", - "jest-util": "^29.7.0", - "prompts": "^2.0.1" - }, - "bin": { - "create-jest": "bin/create-jest.js" + "crc-32": "^1.2.0", + "readable-stream": "^4.0.0" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">= 14" } }, "node_modules/cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", + "inBundle": true, "license": "MIT", "dependencies": { "path-key": "^3.1.0", @@ -4054,91 +4192,54 @@ "node": ">= 8" } }, - "node_modules/crypto-random-string": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz", - "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/dargs": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/dargs/-/dargs-7.0.0.tgz", - "integrity": "sha512-2iy1EkLdlBzQGvbweYRFxmFath8+K7+AKB0TlhHWkNuH+TmovaMH/Wp7V7R4u7f4SnX3OgLsU9t1NI9ioDnUpg==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/dashdash": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", - "integrity": "sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==", + "node_modules/cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", "license": "MIT", - "dependencies": { - "assert-plus": "^1.0.0" + "bin": { + "cssesc": "bin/cssesc" }, "engines": { - "node": ">=0.10" + "node": ">=4" } }, "node_modules/dateformat": { - "version": "4.6.3", - "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-4.6.3.tgz", - "integrity": "sha512-2P0p0pFGzHS5EMnhdxQi7aJN+iMheud0UhG4dlE1DLAlvL8JHjJJTX/CSm4JXwV0Ka5nGk3zC5mcb5bUQUxxMA==", + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-5.0.3.tgz", + "integrity": "sha512-Kvr6HmPXUMerlLcLF+Pwq3K7apHpYmGDVqrxcDasBg86UcKeTSNWbEzU8bwdXnxnR44FtMhJAxI4Bov6Y/KUfA==", "license": "MIT", "engines": { - "node": "*" + "node": ">=12.20" } }, "node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "license": "MIT", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/debuglog": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/debuglog/-/debuglog-1.0.1.tgz", - "integrity": "sha512-syBZ+rnAK3EgMsH2aYEOLUW7mZSY9Gb+0wUMCFsZvcmiz+HigA0LOcq/HoQqVuGG+EKykunc7QG2bzrponfaSw==", - "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.", - "license": "MIT", - "engines": { - "node": "*" - } - }, - "node_modules/decompress-response": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", - "integrity": "sha512-BzRPQuY1ip+qDonAOz42gRm/pg9F768C+npV/4JOsxRC2sq+Rlk+Q4ZCAsOhnIaMrgarILY+RMUIvMmmX1qAEA==", + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", + "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", "license": "MIT", "dependencies": { - "mimic-response": "^1.0.0" + "ms": "^2.1.3" }, "engines": { - "node": ">=4" - } - }, - "node_modules/dedent": { - "version": "1.5.3", - "resolved": "https://registry.npmjs.org/dedent/-/dedent-1.5.3.tgz", - "integrity": "sha512-NHQtfOOW68WD8lgypbLA5oT+Bt0xXJhiYvoR6SmmNXZfpzOGXwdKWmcwG8N7PwVVWV3eF/68nmD9BaJSsTBhyQ==", - "dev": true, - "license": "MIT", - "peerDependencies": { - "babel-plugin-macros": "^3.1.0" + "node": ">=6.0" }, "peerDependenciesMeta": { - "babel-plugin-macros": { + "supports-color": { "optional": true } } }, + "node_modules/deep-eql": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-5.0.2.tgz", + "integrity": "sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, "node_modules/deep-extend": { "version": "0.6.0", "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", @@ -4148,20 +4249,10 @@ "node": ">=4.0.0" } }, - "node_modules/deepmerge": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", - "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/default-browser": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/default-browser/-/default-browser-5.2.1.tgz", - "integrity": "sha512-WY/3TUME0x3KPYdRRxEJJvXRHV4PyPoUsxtZa78lwItwRQRHhd2U9xOscaT/YTf8uCXIAjeJOFBVEh/7FtD8Xg==", + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/default-browser/-/default-browser-5.4.0.tgz", + "integrity": "sha512-XDuvSq38Hr1MdN47EDvYtx3U0MTqpCEn+F6ft8z2vYDzMrvQhVp0ui9oQdqW3MvK3vqUETglt1tVGgjLuJ5izg==", "license": "MIT", "dependencies": { "bundle-name": "^4.1.0", @@ -4175,9 +4266,9 @@ } }, "node_modules/default-browser-id": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/default-browser-id/-/default-browser-id-5.0.0.tgz", - "integrity": "sha512-A6p/pu/6fyBcA1TRz/GqWYPViplrftcW2gZC9q79ngNCKAeR/X3gcEdXQHl4KNXV+3wgIJ1CPkJQ3IHM6lcsyA==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/default-browser-id/-/default-browser-id-5.0.1.tgz", + "integrity": "sha512-x1VCxdX4t+8wVfd1so/9w+vQ4vx7lKd2Qp5tDRutErwmR85OgmfX7RlLRMWafRMY7hbEiXIbudNrjOAPa/hL8Q==", "license": "MIT", "engines": { "node": ">=18" @@ -4186,37 +4277,10 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/defaults": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.4.tgz", - "integrity": "sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==", - "license": "MIT", - "dependencies": { - "clone": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/defaults/node_modules/clone": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", - "integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==", - "license": "MIT", - "engines": { - "node": ">=0.8" - } - }, - "node_modules/defer-to-connect": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz", - "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==", - "license": "MIT" - }, - "node_modules/define-data-property": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", - "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", + "node_modules/define-data-property": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", "license": "MIT", "dependencies": { "es-define-property": "^1.0.0", @@ -4255,21 +4319,6 @@ "node": ">=8.0.0" } }, - "node_modules/delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", - "license": "MIT", - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/delegates": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", - "integrity": "sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==", - "license": "MIT" - }, "node_modules/depd": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", @@ -4279,89 +4328,34 @@ "node": ">= 0.8" } }, - "node_modules/deprecation": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/deprecation/-/deprecation-2.3.1.tgz", - "integrity": "sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ==", - "license": "ISC" - }, - "node_modules/destroy": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", - "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", - "license": "MIT", - "engines": { - "node": ">= 0.8", - "npm": "1.2.8000 || >= 1.4.16" - } - }, - "node_modules/detect-newline": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", - "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/dezalgo": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/dezalgo/-/dezalgo-1.0.4.tgz", - "integrity": "sha512-rXSP0bf+5n0Qonsb+SVVfNfIsimO4HEtmnIpPHY8Q1UCzKlQrDMfdobr8nJOOsRgWCyMRqeSBQzmWUMq7zvVig==", - "license": "ISC", - "dependencies": { - "asap": "^2.0.0", - "wrappy": "1" - } - }, "node_modules/diff": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-5.2.0.tgz", - "integrity": "sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A==", + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/diff/-/diff-8.0.3.tgz", + "integrity": "sha512-qejHi7bcSD4hQAZE0tNAawRK1ZtafHDmMTMkrrIGgSLl7hTnQHmKCeB45xAcbfTqK2zowkM3j3bHt/4b/ARbYQ==", "license": "BSD-3-Clause", "engines": { "node": ">=0.3.1" } }, - "node_modules/diff-sequences": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz", - "integrity": "sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/dir-glob": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", - "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", - "license": "MIT", - "dependencies": { - "path-type": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/dot-prop": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz", - "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==", + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-9.0.0.tgz", + "integrity": "sha512-1gxPBJpI/pcjQhKgIU91II6Wkay+dLcN3M6rf2uwP8hRur3HtQXjVrdAK3sjC0piaEuxzMwjXChcETiJl47lAQ==", "license": "MIT", "dependencies": { - "is-obj": "^2.0.0" + "type-fest": "^4.18.2" }, "engines": { - "node": ">=8" + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/dotenv": { - "version": "16.4.5", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.4.5.tgz", - "integrity": "sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg==", + "version": "16.6.1", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.6.1.tgz", + "integrity": "sha512-uBq4egWHTcTt33a72vpSG0z3HnPuIl6NqYcTrKEg2azoEyl2hpW0zqlxysq2pK9HlDIHyHyakeYaYnSAwd8bow==", "dev": true, "license": "BSD-2-Clause", "engines": { @@ -4371,6 +4365,20 @@ "url": "https://dotenvx.com" } }, + "node_modules/dunder-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", + "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "es-errors": "^1.3.0", + "gopd": "^1.2.0" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/duplexer2": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz", @@ -4410,26 +4418,26 @@ "safe-buffer": "~5.1.0" } }, - "node_modules/duplexer3": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.5.tgz", - "integrity": "sha512-1A8za6ws41LQgv9HrE/66jyC5yuSjQ3L/KOpFtoBilsAK2iA2wuS5rTt1OCzIvtS2V7nVmedsUU+DGRcjBmOYA==", - "license": "BSD-3-Clause" - }, "node_modules/eastasianwidth": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", "license": "MIT" }, - "node_modules/ecc-jsbn": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", - "integrity": "sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==", - "license": "MIT", + "node_modules/editions": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/editions/-/editions-6.22.0.tgz", + "integrity": "sha512-UgGlf8IW75je7HZjNDpJdCv4cGJWIi6yumFdZ0R7A8/CIhQiWUjyGLCxdHpd8bmyD1gnkfUNK0oeOXqUS2cpfQ==", + "license": "Artistic-2.0", "dependencies": { - "jsbn": "~0.1.0", - "safer-buffer": "^2.1.0" + "version-range": "^4.15.0" + }, + "engines": { + "ecmascript": ">= es5", + "node": ">=4" + }, + "funding": { + "url": "https://bevry.me/fund" } }, "node_modules/ee-first": { @@ -4453,13 +4461,6 @@ "node": ">=0.10.0" } }, - "node_modules/electron-to-chromium": { - "version": "1.5.6", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.6.tgz", - "integrity": "sha512-jwXWsM5RPf6j9dPYzaorcBSUg6AiqocPEyMpkchkvntaH9HGfOOMZwxMJjDY/XEs3T5dM7uyH1VhRMkqUU9qVw==", - "dev": true, - "license": "ISC" - }, "node_modules/email-validator": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/email-validator/-/email-validator-2.0.4.tgz", @@ -4468,29 +4469,16 @@ "node": ">4.0" } }, - "node_modules/emittery": { - "version": "0.13.1", - "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.13.1.tgz", - "integrity": "sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sindresorhus/emittery?sponsor=1" - } - }, "node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", "license": "MIT" }, "node_modules/encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", + "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", "license": "MIT", "engines": { "node": ">= 0.8" @@ -4520,21 +4508,24 @@ } }, "node_modules/end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "version": "1.4.5", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.5.tgz", + "integrity": "sha512-ooEGc6HP26xXq/N+GCGOT0JKCLDGrq2bQUZrQ7gyrJiZANJ/8YDTxTpQBXGMn+WbIQXNVpyWymm7KYVICQnyOg==", "license": "MIT", "dependencies": { "once": "^1.4.0" } }, "node_modules/env-paths": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", - "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-3.0.0.tgz", + "integrity": "sha512-dtJUTepzMW3Lm/NPxRf3wP4642UWhjL2sQxc+ym2YMj1m/H2zDNQOlezafzkHwn6sMstjHTwG6iQQsctDW/b1A==", "license": "MIT", "engines": { - "node": ">=6" + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/err-code": { @@ -4543,28 +4534,11 @@ "integrity": "sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==", "license": "MIT" }, - "node_modules/error": { - "version": "10.4.0", - "resolved": "https://registry.npmjs.org/error/-/error-10.4.0.tgz", - "integrity": "sha512-YxIFEJuhgcICugOUvRx5th0UM+ActZ9sjY0QJmeVwsQdvosZ7kYzc9QqS0Da3R5iUmgU5meGIxh0xBeZpMVeLw==" - }, - "node_modules/error-ex": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", - "license": "MIT", - "dependencies": { - "is-arrayish": "^0.2.1" - } - }, "node_modules/es-define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz", - "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", + "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", "license": "MIT", - "dependencies": { - "get-intrinsic": "^1.2.4" - }, "engines": { "node": ">= 0.4" } @@ -4578,23 +4552,74 @@ "node": ">= 0.4" } }, - "node_modules/escalade": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz", - "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==", + "node_modules/es-module-lexer": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.7.0.tgz", + "integrity": "sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA==", + "dev": true, + "license": "MIT" + }, + "node_modules/es-object-atoms": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz", + "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/esbuild": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz", + "integrity": "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==", "dev": true, + "hasInstallScript": true, "license": "MIT", + "bin": { + "esbuild": "bin/esbuild" + }, "engines": { - "node": ">=6" + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.21.5", + "@esbuild/android-arm": "0.21.5", + "@esbuild/android-arm64": "0.21.5", + "@esbuild/android-x64": "0.21.5", + "@esbuild/darwin-arm64": "0.21.5", + "@esbuild/darwin-x64": "0.21.5", + "@esbuild/freebsd-arm64": "0.21.5", + "@esbuild/freebsd-x64": "0.21.5", + "@esbuild/linux-arm": "0.21.5", + "@esbuild/linux-arm64": "0.21.5", + "@esbuild/linux-ia32": "0.21.5", + "@esbuild/linux-loong64": "0.21.5", + "@esbuild/linux-mips64el": "0.21.5", + "@esbuild/linux-ppc64": "0.21.5", + "@esbuild/linux-riscv64": "0.21.5", + "@esbuild/linux-s390x": "0.21.5", + "@esbuild/linux-x64": "0.21.5", + "@esbuild/netbsd-x64": "0.21.5", + "@esbuild/openbsd-x64": "0.21.5", + "@esbuild/sunos-x64": "0.21.5", + "@esbuild/win32-arm64": "0.21.5", + "@esbuild/win32-ia32": "0.21.5", + "@esbuild/win32-x64": "0.21.5" } }, "node_modules/escape-goat": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/escape-goat/-/escape-goat-2.1.1.tgz", - "integrity": "sha512-8/uIhbG12Csjy2JEW7D9pHbreaVaS/OpN3ycnyvElTdwM5n6GY6W6e2IPemfvGZeUMqZ9A/3GqIZMgKnBhAw/Q==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-goat/-/escape-goat-4.0.0.tgz", + "integrity": "sha512-2Sd4ShcWxbx6OY1IHyla/CVNwvg7XwZVoXZHcSu9w9SReNP1EzzD5T8NWKIR38fIqEns9kDWKUQTXXAmlDrdPg==", "license": "MIT", "engines": { - "node": ">=8" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/escape-html": { @@ -4603,26 +4628,14 @@ "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==", "license": "MIT" }, - "node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "node_modules/estree-walker": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz", + "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", + "dev": true, "license": "MIT", - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "license": "BSD-2-Clause", - "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" - }, - "engines": { - "node": ">=4" + "dependencies": { + "@types/estree": "^1.0.0" } }, "node_modules/etag": { @@ -4644,9 +4657,9 @@ } }, "node_modules/eventemitter3": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", - "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.1.tgz", + "integrity": "sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==", "license": "MIT" }, "node_modules/events": { @@ -4658,10 +4671,20 @@ "node": ">=0.8.x" } }, + "node_modules/events-universal": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/events-universal/-/events-universal-1.0.1.tgz", + "integrity": "sha512-LUd5euvbMLpwOF8m6ivPCbhQeSiYVNb8Vs0fQ8QjXo0JTkEHpz8pxdQf0gStltaPpw0Cca8b39KxvK9cfKRiAw==", + "license": "Apache-2.0", + "dependencies": { + "bare-events": "^2.7.0" + } + }, "node_modules/execa": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "inBundle": true, "license": "MIT", "dependencies": { "cross-spawn": "^7.0.3", @@ -4681,166 +4704,147 @@ "url": "https://github.com/sindresorhus/execa?sponsor=1" } }, - "node_modules/exit": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", - "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==", - "dev": true, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/expect": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/expect/-/expect-29.7.0.tgz", - "integrity": "sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==", - "dev": true, + "node_modules/execa/node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "inBundle": true, "license": "MIT", "dependencies": { - "@jest/expect-utils": "^29.7.0", - "jest-get-type": "^29.6.3", - "jest-matcher-utils": "^29.7.0", - "jest-message-util": "^29.7.0", - "jest-util": "^29.7.0" + "mimic-fn": "^2.1.0" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/exponential-backoff": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/exponential-backoff/-/exponential-backoff-3.1.1.tgz", - "integrity": "sha512-dX7e/LHVJ6W3DE1MHWi9S1EYzDESENfLrYohG2G++ovZrYOkm4Knwa0mc1cn84xJOR4KEU0WSchhLbd0UklbHw==", - "license": "Apache-2.0" + "node_modules/execa/node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "inBundle": true, + "license": "ISC" }, - "node_modules/express": { - "version": "4.19.2", - "resolved": "https://registry.npmjs.org/express/-/express-4.19.2.tgz", - "integrity": "sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q==", - "license": "MIT", - "dependencies": { - "accepts": "~1.3.8", - "array-flatten": "1.1.1", - "body-parser": "1.20.2", - "content-disposition": "0.5.4", - "content-type": "~1.0.4", - "cookie": "0.6.0", - "cookie-signature": "1.0.6", - "debug": "2.6.9", - "depd": "2.0.0", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "finalhandler": "1.2.0", - "fresh": "0.5.2", - "http-errors": "2.0.0", - "merge-descriptors": "1.0.1", - "methods": "~1.1.2", - "on-finished": "2.4.1", - "parseurl": "~1.3.3", - "path-to-regexp": "0.1.7", - "proxy-addr": "~2.0.7", - "qs": "6.11.0", - "range-parser": "~1.2.1", - "safe-buffer": "5.2.1", - "send": "0.18.0", - "serve-static": "1.15.0", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "type-is": "~1.6.18", - "utils-merge": "1.0.1", - "vary": "~1.1.2" - }, + "node_modules/expect-type": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/expect-type/-/expect-type-1.3.0.tgz", + "integrity": "sha512-knvyeauYhqjOYvQ66MznSMs83wmHrCycNEN6Ao+2AeYEfxUIkuiVxdEa1qlGEPK+We3n0THiDciYSsCcgW/DoA==", + "dev": true, + "license": "Apache-2.0", "engines": { - "node": ">= 0.10.0" + "node": ">=12.0.0" } }, - "node_modules/extend": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", - "license": "MIT" + "node_modules/exponential-backoff": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/exponential-backoff/-/exponential-backoff-3.1.3.tgz", + "integrity": "sha512-ZgEeZXj30q+I0EN+CbSSpIyPaJ5HVQD18Z1m+u1FXbAeT94mr1zw50q4q6jiiC447Nl/YTcIYSAftiGqetwXCA==", + "license": "Apache-2.0" }, - "node_modules/external-editor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", - "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", - "license": "MIT", - "dependencies": { - "chardet": "^0.7.0", - "iconv-lite": "^0.4.24", - "tmp": "^0.0.33" + "node_modules/express": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/express/-/express-5.2.1.tgz", + "integrity": "sha512-hIS4idWWai69NezIdRt2xFVofaF4j+6INOpJlVOLDO8zXGpUVEVzIYk12UUi2JzjEzWL3IOAxcTubgz9Po0yXw==", + "license": "MIT", + "dependencies": { + "accepts": "^2.0.0", + "body-parser": "^2.2.1", + "content-disposition": "^1.0.0", + "content-type": "^1.0.5", + "cookie": "^0.7.1", + "cookie-signature": "^1.2.1", + "debug": "^4.4.0", + "depd": "^2.0.0", + "encodeurl": "^2.0.0", + "escape-html": "^1.0.3", + "etag": "^1.8.1", + "finalhandler": "^2.1.0", + "fresh": "^2.0.0", + "http-errors": "^2.0.0", + "merge-descriptors": "^2.0.0", + "mime-types": "^3.0.0", + "on-finished": "^2.4.1", + "once": "^1.4.0", + "parseurl": "^1.3.3", + "proxy-addr": "^2.0.7", + "qs": "^6.14.0", + "range-parser": "^1.2.1", + "router": "^2.2.0", + "send": "^1.1.0", + "serve-static": "^2.2.0", + "statuses": "^2.0.1", + "type-is": "^2.0.1", + "vary": "^1.1.2" + }, + "engines": { + "node": ">= 18" }, - "engines": { - "node": ">=4" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" } }, - "node_modules/extsprintf": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", - "integrity": "sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==", - "engines": [ - "node >=0.6.0" + "node_modules/fast-content-type-parse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/fast-content-type-parse/-/fast-content-type-parse-2.0.1.tgz", + "integrity": "sha512-nGqtvLrj5w0naR6tDPfB4cUmYCqouzyQiz6C5y/LtcDllJdrcc6WaWW6iXyIIOErTa/XRybj28aasdn4LkVk6Q==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fastify" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/fastify" + } ], "license": "MIT" }, - "node_modules/fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "node_modules/fast-fifo": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/fast-fifo/-/fast-fifo-1.3.2.tgz", + "integrity": "sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==", "license": "MIT" }, "node_modules/fast-glob": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", - "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz", + "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==", + "inBundle": true, "license": "MIT", "dependencies": { "@nodelib/fs.stat": "^2.0.2", "@nodelib/fs.walk": "^1.2.3", "glob-parent": "^5.1.2", "merge2": "^1.3.0", - "micromatch": "^4.0.4" + "micromatch": "^4.0.8" }, "engines": { "node": ">=8.6.0" } }, - "node_modules/fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "license": "MIT" - }, "node_modules/fastq": { - "version": "1.17.1", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", - "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", + "version": "1.20.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.20.1.tgz", + "integrity": "sha512-GGToxJ/w1x32s/D2EKND7kTil4n8OVk/9mycTc4VDza13lOvpUZTGX3mFSCtV9ksdGBVzvsyAVLM6mHFThxXxw==", + "inBundle": true, "license": "ISC", "dependencies": { "reusify": "^1.0.4" } }, - "node_modules/fb-watchman": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz", - "integrity": "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "bser": "2.1.1" - } - }, "node_modules/figures": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", - "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-6.1.0.tgz", + "integrity": "sha512-d+l3qxjSesT4V7v2fh+QnmFnUWv9lSpjarhShNTgBOfA0ttejbQUAlHLitbjkoRiDulW0OPoQPYIGhIC8ohejg==", "license": "MIT", "dependencies": { - "escape-string-regexp": "^1.0.5" + "is-unicode-supported": "^2.0.0" }, "engines": { - "node": ">=8" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -4855,15 +4859,6 @@ "minimatch": "^5.0.1" } }, - "node_modules/filelist/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0" - } - }, "node_modules/filelist/node_modules/minimatch": { "version": "5.1.6", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", @@ -4880,6 +4875,7 @@ "version": "7.1.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "inBundle": true, "license": "MIT", "dependencies": { "to-regex-range": "^5.0.1" @@ -4889,137 +4885,162 @@ } }, "node_modules/finalhandler": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", - "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-2.1.1.tgz", + "integrity": "sha512-S8KoZgRZN+a5rNwqTxlZZePjT/4cnm0ROV70LedRHZ0p8u9fRID0hJUZQpkKLzro8LfmC8sx23bY6tVNxv8pQA==", "license": "MIT", "dependencies": { - "debug": "2.6.9", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "on-finished": "2.4.1", - "parseurl": "~1.3.3", - "statuses": "2.0.1", - "unpipe": "~1.0.0" + "debug": "^4.4.0", + "encodeurl": "^2.0.0", + "escape-html": "^1.0.3", + "on-finished": "^2.4.1", + "parseurl": "^1.3.3", + "statuses": "^2.0.1" }, "engines": { - "node": ">= 0.8" - } - }, + "node": ">= 18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, "node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-7.0.0.tgz", + "integrity": "sha512-YyZM99iHrqLKjmt4LJDj58KI+fYyufRLBSYcqycxf//KpBk9FoewoGX0450m9nB44qrZnovzC2oeP5hUibxc/g==", "license": "MIT", "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" + "locate-path": "^7.2.0", + "path-exists": "^5.0.0", + "unicorn-magic": "^0.1.0" }, "engines": { - "node": ">=8" + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/find-yarn-workspace-root2": { - "version": "1.2.16", - "resolved": "https://registry.npmjs.org/find-yarn-workspace-root2/-/find-yarn-workspace-root2-1.2.16.tgz", - "integrity": "sha512-hr6hb1w8ePMpPVUK39S4RlwJzi+xPLuVuG8XlwXU3KD5Yn3qgBWVfy3AzNlDhWvE1EORCE65/Qm26rFQt3VLVA==", - "license": "Apache-2.0", - "dependencies": { - "micromatch": "^4.0.2", - "pkg-dir": "^4.2.0" + "node_modules/find-up-simple": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/find-up-simple/-/find-up-simple-1.0.1.tgz", + "integrity": "sha512-afd4O7zpqHeRyg4PfDQsXmlDe2PfdHtJt6Akt8jOWaApLOZk5JXs6VMR29lz03pRe9mpykrRCYIYxaJYcfpncQ==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/first-chunk-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/first-chunk-stream/-/first-chunk-stream-2.0.0.tgz", - "integrity": "sha512-X8Z+b/0L4lToKYq+lwnKqi9X/Zek0NibLpsJgVsSxpoYq7JtiCtRb5HqKVEjEw/qAb/4AKKRLOwwKHlWNpm2Eg==", + "node_modules/find-up/node_modules/locate-path": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-7.2.0.tgz", + "integrity": "sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==", "license": "MIT", "dependencies": { - "readable-stream": "^2.0.2" + "p-locate": "^6.0.0" }, "engines": { - "node": ">=0.10.0" + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/first-chunk-stream/node_modules/readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "node_modules/find-up/node_modules/unicorn-magic": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/unicorn-magic/-/unicorn-magic-0.1.0.tgz", + "integrity": "sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ==", "license": "MIT", - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/first-chunk-stream/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "license": "MIT" - }, - "node_modules/first-chunk-stream/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "node_modules/first-chunk-stream": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/first-chunk-stream/-/first-chunk-stream-5.0.0.tgz", + "integrity": "sha512-WdHo4ejd2cG2Dl+sLkW79SctU7mUQDfr4s1i26ffOZRs5mgv+BRttIM9gwcq0rDbemo0KlpVPaa3LBVLqPXzcQ==", "license": "MIT", - "dependencies": { - "safe-buffer": "~5.1.0" + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/foreground-child": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.0.tgz", - "integrity": "sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==", - "license": "ISC", + "node_modules/fly-import": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fly-import/-/fly-import-1.0.0.tgz", + "integrity": "sha512-JZEaXZw9QR+DRMClMVJYeY5SNn8zzHBuc+KTreFGDBghRXzCiGR9aDgYGP7O/EeoxwHBZ2Brl+2ixlH/Jmt/qg==", "dependencies": { - "cross-spawn": "^7.0.0", - "signal-exit": "^4.0.1" + "@npmcli/arborist": "^9.1.3", + "env-paths": "^3.0.0", + "registry-auth-token": "^5.1.0", + "registry-url": "^7.2.0" }, "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "node": "^20.17.0 || >=22.9.0" } }, - "node_modules/foreground-child/node_modules/signal-exit": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", - "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "node_modules/fly-import/node_modules/ini": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ini/-/ini-5.0.0.tgz", + "integrity": "sha512-+N0ngpO3e7cRUWOJAS7qw0IZIVc6XPrW4MlFBdD066F2L4k1L6ker3hLqSq7iXxU5tgS4WGkIUElWn5vogAEnw==", "license": "ISC", "engines": { - "node": ">=14" + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/fly-import/node_modules/registry-url": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-7.2.0.tgz", + "integrity": "sha512-I5UEBQ+09LWKInA1fPswOMZps0cs2Z+IQXb5Z5EkTJiUmIN52Vm/FD3ji5X82c5jIXL3nWEWOrYK0RkON6Oqyg==", + "license": "MIT", + "dependencies": { + "find-up-simple": "^1.0.1", + "ini": "^5.0.0" + }, + "engines": { + "node": ">=18" }, "funding": { - "url": "https://github.com/sponsors/isaacs" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/forever-agent": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "integrity": "sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==", - "license": "Apache-2.0", + "node_modules/for-each": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.5.tgz", + "integrity": "sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==", + "license": "MIT", + "dependencies": { + "is-callable": "^1.2.7" + }, "engines": { - "node": "*" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/form-data": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", - "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", - "license": "MIT", + "node_modules/foreground-child": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.1.tgz", + "integrity": "sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==", + "license": "ISC", "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.6", - "mime-types": "^2.1.12" + "cross-spawn": "^7.0.6", + "signal-exit": "^4.0.1" }, "engines": { - "node": ">= 0.12" + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, "node_modules/forwarded": { @@ -5032,12 +5053,12 @@ } }, "node_modules/fresh": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-2.0.0.tgz", + "integrity": "sha512-Rx/WycZ60HOaqLKAi6cHRKKI7zxWbJ31MhntmtwMoaTeF7XFH9hhBp8vITaMidfljRQ6eYWCKkaTK+ykVJHP2A==", "license": "MIT", "engines": { - "node": ">= 0.6" + "node": ">= 0.8" } }, "node_modules/fs-constants": { @@ -5047,9 +5068,10 @@ "license": "MIT" }, "node_modules/fs-extra": { - "version": "11.2.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.2.0.tgz", - "integrity": "sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==", + "version": "11.3.3", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.3.3.tgz", + "integrity": "sha512-VWSRii4t0AFm6ixFFmLLx1t7wS1gh+ckoa84aOeapGum0h+EZd1EhEumSB+ZdDLnEPuucsVB9oB7cxJHap6Afg==", + "license": "MIT", "dependencies": { "graceful-fs": "^4.2.0", "jsonfile": "^6.0.1", @@ -5060,22 +5082,21 @@ } }, "node_modules/fs-minipass": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", - "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-3.0.3.tgz", + "integrity": "sha512-XUBA9XClHbnJWSfBzjkm6RvPsyg3sryZt06BEQoXcF7EK/xpGaQYJgQKDJSUH5SGZ76Y7pFx1QBnXz09rU5Fbw==", "license": "ISC", "dependencies": { - "minipass": "^3.0.0" + "minipass": "^7.0.3" }, "engines": { - "node": ">= 8" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, "node_modules/fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", - "inBundle": true, "license": "ISC" }, "node_modules/fsevents": { @@ -5096,57 +5117,15 @@ "version": "1.1.2", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", - "inBundle": true, "license": "MIT", "funding": { "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/gauge": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-3.0.2.tgz", - "integrity": "sha512-+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q==", - "deprecated": "This package is no longer supported.", - "license": "ISC", - "dependencies": { - "aproba": "^1.0.3 || ^2.0.0", - "color-support": "^1.1.2", - "console-control-strings": "^1.0.0", - "has-unicode": "^2.0.1", - "object-assign": "^4.1.1", - "signal-exit": "^3.0.0", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1", - "wide-align": "^1.1.2" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/gensync": { - "version": "1.0.0-beta.2", - "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", - "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "dev": true, - "license": "ISC", - "engines": { - "node": "6.* || 8.* || >= 10.*" - } - }, "node_modules/get-east-asian-width": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/get-east-asian-width/-/get-east-asian-width-1.2.0.tgz", - "integrity": "sha512-2nk+7SIVb14QrgXFHcm84tD4bKQz0RxPuMT8Ag5KPOq7J5fEmAg0UbXdTOSHqNuHSU28k55qnceesxXRZGzKWA==", + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/get-east-asian-width/-/get-east-asian-width-1.4.0.tgz", + "integrity": "sha512-QZjmEOC+IT1uk6Rx0sX22V6uHWVwbdbxf1faPqJ1QhLdGgsRGCZoyaQBm/piRdJy/D2um6hM1UP7ZEeQ4EkP+Q==", "license": "MIT", "engines": { "node": ">=18" @@ -5156,16 +5135,21 @@ } }, "node_modules/get-intrinsic": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", - "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", + "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", "license": "MIT", "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "es-define-property": "^1.0.1", "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.1", "function-bind": "^1.1.2", - "has-proto": "^1.0.1", - "has-symbols": "^1.0.3", - "hasown": "^2.0.0" + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "math-intrinsics": "^1.1.0" }, "engines": { "node": ">= 0.4" @@ -5174,20 +5158,24 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/get-package-type": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", - "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", - "dev": true, + "node_modules/get-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", + "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", "license": "MIT", + "dependencies": { + "dunder-proto": "^1.0.1", + "es-object-atoms": "^1.0.0" + }, "engines": { - "node": ">=8.0.0" + "node": ">= 0.4" } }, "node_modules/get-stream": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "inBundle": true, "license": "MIT", "engines": { "node": ">=10" @@ -5196,47 +5184,36 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/getpass": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", - "integrity": "sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==", - "license": "MIT", - "dependencies": { - "assert-plus": "^1.0.0" - } - }, "node_modules/github-username": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/github-username/-/github-username-6.0.0.tgz", - "integrity": "sha512-7TTrRjxblSI5l6adk9zd+cV5d6i1OrJSo3Vr9xdGqFLBQo0mz5P9eIfKCDJ7eekVGGFLbce0qbPSnktXV2BjDQ==", + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/github-username/-/github-username-9.0.0.tgz", + "integrity": "sha512-lY7+mymwQUEhRwWTLxieKkxcZkVNnUh8iAGnl30DMB1ZtYODHkMAckZk8Jx5dLQs1YKPYM2ibnzQu02aCLFcYQ==", "license": "MIT", "dependencies": { - "@octokit/rest": "^18.0.6" + "@octokit/rest": "^21.1.1" }, "engines": { - "node": ">=10" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "deprecated": "Glob versions prior to v9 are no longer supported", - "inBundle": true, + "version": "10.5.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.5.0.tgz", + "integrity": "sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg==", "license": "ISC", "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" + "foreground-child": "^3.1.0", + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^1.11.1" }, - "engines": { - "node": "*" + "bin": { + "glob": "dist/esm/bin.mjs" }, "funding": { "url": "https://github.com/sponsors/isaacs" @@ -5246,6 +5223,7 @@ "version": "5.1.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "inBundle": true, "license": "ISC", "dependencies": { "is-glob": "^4.0.1" @@ -5254,97 +5232,53 @@ "node": ">= 6" } }, - "node_modules/global-dirs": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-3.0.1.tgz", - "integrity": "sha512-NBcGGFbBA9s1VzD41QXDG+3++t9Mn5t1FpLdhESY6oKY4gYTFpX4wO3sqGUa0Srjtbfj3szX0RnemmrVRUdULA==", + "node_modules/global-directory": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/global-directory/-/global-directory-4.0.1.tgz", + "integrity": "sha512-wHTUcDUoZ1H5/0iVqEudYW4/kAlN5cZ3j/bXn0Dpbizl9iaUVeWSHqiOjsgk6OW2bkLclbBjzewBz6weQ1zA2Q==", "license": "MIT", "dependencies": { - "ini": "2.0.0" + "ini": "4.1.1" }, "engines": { - "node": ">=10" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, "node_modules/globby": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", - "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "version": "16.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-16.1.0.tgz", + "integrity": "sha512-+A4Hq7m7Ze592k9gZRy4gJ27DrXRNnC1vPjxTt1qQxEY8RxagBkBxivkCwg7FxSTG0iLLEMaUx13oOr0R2/qcQ==", "license": "MIT", "dependencies": { - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.2.9", - "ignore": "^5.2.0", - "merge2": "^1.4.1", - "slash": "^3.0.0" + "@sindresorhus/merge-streams": "^4.0.0", + "fast-glob": "^3.3.3", + "ignore": "^7.0.5", + "is-path-inside": "^4.0.0", + "slash": "^5.1.0", + "unicorn-magic": "^0.4.0" }, "engines": { - "node": ">=10" + "node": ">=20" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/gopd": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", - "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", "license": "MIT", - "dependencies": { - "get-intrinsic": "^1.1.3" + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/got": { - "version": "9.6.0", - "resolved": "https://registry.npmjs.org/got/-/got-9.6.0.tgz", - "integrity": "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==", - "license": "MIT", - "dependencies": { - "@sindresorhus/is": "^0.14.0", - "@szmarczak/http-timer": "^1.1.2", - "cacheable-request": "^6.0.0", - "decompress-response": "^3.3.0", - "duplexer3": "^0.1.4", - "get-stream": "^4.1.0", - "lowercase-keys": "^1.0.1", - "mimic-response": "^1.0.1", - "p-cancelable": "^1.0.0", - "to-readable-stream": "^1.0.0", - "url-parse-lax": "^3.0.0" - }, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/got/node_modules/get-stream": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", - "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", - "license": "MIT", - "dependencies": { - "pump": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, "node_modules/graceful-fs": { "version": "4.2.11", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", @@ -5352,9 +5286,9 @@ "license": "ISC" }, "node_modules/grouped-queue": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/grouped-queue/-/grouped-queue-2.0.0.tgz", - "integrity": "sha512-/PiFUa7WIsl48dUeCvhIHnwNmAAzlI/eHoJl0vu3nsFA366JleY7Ff8EVTplZu5kO0MIdZjKTTnzItL61ahbnw==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/grouped-queue/-/grouped-queue-2.1.0.tgz", + "integrity": "sha512-c5NDCWO0XiXuJAhOegMiNotkDmgORN+VNo3+YHMhWpoWG/u2+8im8byqsOe3/myI9YcC//plRdqGa2AE3Qsdjw==", "license": "MIT", "engines": { "node": ">=8.0.0" @@ -5366,38 +5300,6 @@ "integrity": "sha512-+xGQY0YyAWCnqy7Cd++hc2JqMYzlm0dG30Jd0beaA64sROr8C4nt8Yc9V5Ro3avlSUDTN0ulqP/VBKi1/lLygw==", "license": "MIT" }, - "node_modules/har-schema": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", - "integrity": "sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q==", - "license": "ISC", - "engines": { - "node": ">=4" - } - }, - "node_modules/har-validator": { - "version": "5.1.5", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", - "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", - "deprecated": "this library is no longer supported", - "license": "MIT", - "dependencies": { - "ajv": "^6.12.3", - "har-schema": "^2.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, "node_modules/has-property-descriptors": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", @@ -5410,10 +5312,10 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/has-proto": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz", - "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==", + "node_modules/has-symbols": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", + "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", "license": "MIT", "engines": { "node": ">= 0.4" @@ -5422,11 +5324,14 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/has-symbols": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", - "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "node_modules/has-tostringtag": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", + "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", "license": "MIT", + "dependencies": { + "has-symbols": "^1.0.3" + }, "engines": { "node": ">= 0.4" }, @@ -5434,26 +5339,10 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/has-unicode": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", - "integrity": "sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==", - "license": "ISC" - }, - "node_modules/has-yarn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/has-yarn/-/has-yarn-2.1.0.tgz", - "integrity": "sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, "node_modules/hasown": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", - "inBundle": true, "license": "MIT", "dependencies": { "function-bind": "^1.1.2" @@ -5463,180 +5352,102 @@ } }, "node_modules/hosted-git-info": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz", - "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==", + "version": "9.0.2", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-9.0.2.tgz", + "integrity": "sha512-M422h7o/BR3rmCQ8UHi7cyyMqKltdP9Uo+J2fXK+RSAY+wTcKOIRyhTuKv4qn+DJf3g+PL890AzId5KZpX+CBg==", "license": "ISC", "dependencies": { - "lru-cache": "^6.0.0" + "lru-cache": "^11.1.0" }, "engines": { - "node": ">=10" + "node": "^20.17.0 || >=22.9.0" } }, "node_modules/hosted-git-info/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "license": "ISC", - "dependencies": { - "yallist": "^4.0.0" - }, + "version": "11.2.4", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.2.4.tgz", + "integrity": "sha512-B5Y16Jr9LB9dHVkh6ZevG+vAbOsNOYCX+sXvFWFu7B3Iz5mijW3zdbMyhsh8ANd2mSWBYdJgnqi+mL7/LrOPYg==", + "license": "BlueOak-1.0.0", "engines": { - "node": ">=10" + "node": "20 || >=22" } }, - "node_modules/hosted-git-info/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "license": "ISC" - }, - "node_modules/html-escaper": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", - "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", - "dev": true, - "license": "MIT" - }, "node_modules/http-cache-semantics": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz", - "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.2.0.tgz", + "integrity": "sha512-dTxcvPXqPvXBQpq5dUr6mEMJX4oIEFv6bwom3FDwKRDsuIjjJGANqhBuoAn9c1RQJIdAKav33ED65E2ys+87QQ==", "license": "BSD-2-Clause" }, "node_modules/http-errors": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", - "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.1.tgz", + "integrity": "sha512-4FbRdAX+bSdmo4AUFuS0WNiPz8NgFt+r8ThgNWmlrjQjt1Q7ZR9+zTlce2859x4KSXrwIsaeTqDoKQmtP8pLmQ==", "license": "MIT", "dependencies": { - "depd": "2.0.0", - "inherits": "2.0.4", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "toidentifier": "1.0.1" + "depd": "~2.0.0", + "inherits": "~2.0.4", + "setprototypeof": "~1.2.0", + "statuses": "~2.0.2", + "toidentifier": "~1.0.1" }, "engines": { "node": ">= 0.8" - } - }, - "node_modules/http-proxy-agent": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", - "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==", - "license": "MIT", - "dependencies": { - "@tootallnate/once": "1", - "agent-base": "6", - "debug": "4" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/http-proxy-agent/node_modules/debug": { - "version": "4.3.6", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.6.tgz", - "integrity": "sha512-O/09Bd4Z1fBrU4VzkhFqVgpPzaGbw6Sm9FEkBT1A/YBXQFGuuSxa1dN2nxgxS34JmKXqYx8CZAwEVoJFImUXIg==", - "license": "MIT", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" } }, - "node_modules/http-proxy-agent/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "license": "MIT" - }, - "node_modules/http-signature": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", - "integrity": "sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ==", + "node_modules/http-proxy-agent": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz", + "integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==", "license": "MIT", "dependencies": { - "assert-plus": "^1.0.0", - "jsprim": "^1.2.2", - "sshpk": "^1.7.0" + "agent-base": "^7.1.0", + "debug": "^4.3.4" }, "engines": { - "node": ">=0.8", - "npm": ">=1.3.7" + "node": ">= 14" } }, "node_modules/https-proxy-agent": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", - "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz", + "integrity": "sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==", "license": "MIT", "dependencies": { - "agent-base": "6", + "agent-base": "^7.1.2", "debug": "4" }, "engines": { - "node": ">= 6" - } - }, - "node_modules/https-proxy-agent/node_modules/debug": { - "version": "4.3.6", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.6.tgz", - "integrity": "sha512-O/09Bd4Z1fBrU4VzkhFqVgpPzaGbw6Sm9FEkBT1A/YBXQFGuuSxa1dN2nxgxS34JmKXqYx8CZAwEVoJFImUXIg==", - "license": "MIT", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } + "node": ">= 14" } }, - "node_modules/https-proxy-agent/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "license": "MIT" - }, "node_modules/human-signals": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "inBundle": true, "license": "Apache-2.0", "engines": { "node": ">=10.17.0" } }, - "node_modules/humanize-ms": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz", - "integrity": "sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==", - "license": "MIT", - "dependencies": { - "ms": "^2.0.0" - } - }, "node_modules/iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.7.2.tgz", + "integrity": "sha512-im9DjEDQ55s9fL4EYzOAv0yMqmMBSZp6G0VvFyTMPKWxiSBHUj9NW/qqLmXUwXrrM7AvqSlTCfvqRb0cM8yYqw==", "license": "MIT", "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" + "safer-buffer": ">= 2.1.2 < 3.0.0" }, "engines": { "node": ">=0.10.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" } }, "node_modules/ieee754": { @@ -5660,53 +5471,39 @@ "license": "BSD-3-Clause" }, "node_modules/ignore": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", - "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-7.0.5.tgz", + "integrity": "sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==", "license": "MIT", "engines": { "node": ">= 4" } }, "node_modules/ignore-walk": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-4.0.1.tgz", - "integrity": "sha512-rzDQLaW4jQbh2YrOFlJdCtX8qgJTehFRYiUB2r1osqTeDzV/3+Jh8fz1oAPzUThf3iku8Ds4IDqawI5d8mUiQw==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-8.0.0.tgz", + "integrity": "sha512-FCeMZT4NiRQGh+YkeKMtWrOmBgWjHjMJ26WQWrRQyoyzqevdaGSakUaJW5xQYmjLlUVk2qUnCjYVBax9EKKg8A==", "license": "ISC", "dependencies": { - "minimatch": "^3.0.4" + "minimatch": "^10.0.3" }, "engines": { - "node": ">=10" - } - }, - "node_modules/import-lazy": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz", - "integrity": "sha512-m7ZEHgtw69qOGw+jwxXkHlrlIPdTGkyh66zXZ1ajZbxkDBNjSY/LGbmjc7h0s2ELsUDTAhFr55TrPSSqJGPG0A==", - "license": "MIT", - "engines": { - "node": ">=4" + "node": "^20.17.0 || >=22.9.0" } }, - "node_modules/import-local": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.2.0.tgz", - "integrity": "sha512-2SPlun1JUPWoM6t3F0dw0FkCF/jWY8kttcY4f599GLTSjh2OCuuhdTkJQsEcZzBqbXZGKMK2OqW1oZsjtf/gQA==", - "dev": true, - "license": "MIT", + "node_modules/ignore-walk/node_modules/minimatch": { + "version": "10.1.1", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.1.1.tgz", + "integrity": "sha512-enIvLvRAFZYXJzkCYG5RKmPfrFArdLv+R+lbQ53BmIMLIry74bjKzX6iHAm8WYamJkhSSEabrWN5D97XnKObjQ==", + "license": "BlueOak-1.0.0", "dependencies": { - "pkg-dir": "^4.2.0", - "resolve-cwd": "^3.0.0" - }, - "bin": { - "import-local-fixture": "fixtures/cli.js" + "@isaacs/brace-expansion": "^5.0.0" }, "engines": { - "node": ">=8" + "node": "20 || >=22" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/sponsors/isaacs" } }, "node_modules/imurmurhash": { @@ -5718,27 +5515,23 @@ "node": ">=0.8.19" } }, - "node_modules/indent-string": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", - "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "node_modules/index-to-position": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/index-to-position/-/index-to-position-1.2.0.tgz", + "integrity": "sha512-Yg7+ztRkqslMAS2iFaU+Oa4KTSidr63OsFGlOrJoW981kIYO3CGCS3wA95P1mUi/IVSJkn0D479KTJpVpvFNuw==", "license": "MIT", "engines": { - "node": ">=8" + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/infer-owner": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz", - "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==", - "license": "ISC" - }, "node_modules/inflight": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", - "inBundle": true, "license": "ISC", "dependencies": { "once": "^1.3.0", @@ -5749,139 +5542,52 @@ "version": "2.0.4", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "inBundle": true, "license": "ISC" }, "node_modules/ini": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz", - "integrity": "sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ini/-/ini-4.1.1.tgz", + "integrity": "sha512-QQnnxNyfvmHFIsj7gkPcYymR8Jdw/o7mp5ZFihxn6h8Ci6fh3Dx4E1gPjpQEpIuPo9XVNY/ZUwh4BPMjGyL01g==", "license": "ISC", "engines": { - "node": ">=10" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, "node_modules/inquirer": { - "version": "8.2.6", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-8.2.6.tgz", - "integrity": "sha512-M1WuAmb7pn9zdFRtQYk26ZBoY043Sse0wVDdk4Bppr+JOXyQYybdtvK+l9wUibhtjdjvtoiNy8tk+EgsYIUqKg==", - "license": "MIT", - "dependencies": { - "ansi-escapes": "^4.2.1", - "chalk": "^4.1.1", - "cli-cursor": "^3.1.0", - "cli-width": "^3.0.0", - "external-editor": "^3.0.3", - "figures": "^3.0.0", - "lodash": "^4.17.21", - "mute-stream": "0.0.8", - "ora": "^5.4.1", - "run-async": "^2.4.0", - "rxjs": "^7.5.5", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0", - "through": "^2.3.6", - "wrap-ansi": "^6.0.1" - }, - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/inquirer/node_modules/is-interactive": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz", - "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/inquirer/node_modules/is-unicode-supported": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", - "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/inquirer/node_modules/log-symbols": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", - "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", + "version": "13.2.0", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-13.2.0.tgz", + "integrity": "sha512-4CBv58vLrL4CnMgrscW/T5cLvfWM2nRLevttTiZTQyku7YV7/pc2IKyABBU2rDfVl4PiIB0sTRcwOac7BIYKLA==", "license": "MIT", "dependencies": { - "chalk": "^4.1.0", - "is-unicode-supported": "^0.1.0" + "@inquirer/ansi": "^2.0.3", + "@inquirer/core": "^11.1.1", + "@inquirer/prompts": "^8.2.0", + "@inquirer/type": "^4.0.3", + "mute-stream": "^3.0.0", + "run-async": "^4.0.6", + "rxjs": "^7.8.2" }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/inquirer/node_modules/ora": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz", - "integrity": "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==", - "license": "MIT", - "dependencies": { - "bl": "^4.1.0", - "chalk": "^4.1.0", - "cli-cursor": "^3.1.0", - "cli-spinners": "^2.5.0", - "is-interactive": "^1.0.0", - "is-unicode-supported": "^0.1.0", - "log-symbols": "^4.1.0", - "strip-ansi": "^6.0.0", - "wcwidth": "^1.0.1" + "node": ">=23.5.0 || ^22.13.0 || ^21.7.0 || ^20.12.0" }, - "engines": { - "node": ">=10" + "peerDependencies": { + "@types/node": ">=18" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/interpret": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", - "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==", - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">= 0.10" + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } } }, "node_modules/ip-address": { - "version": "9.0.5", - "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-9.0.5.tgz", - "integrity": "sha512-zHtQzGojZXTwZTHQqra+ETKd4Sn3vgi7uBmlPoXVWZqYvuKmtI0l/VZTjqGmJY9x88GGOaZ9+G9ES8hC4T4X8g==", + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-10.1.0.tgz", + "integrity": "sha512-XXADHxXmvT9+CRxhXg56LJovE+bmWnEWB78LB83VZTprKTmaC5QfruXocxzTZ2Kl0DNwKuBdlIhjL8LeY8Sf8Q==", "license": "MIT", - "dependencies": { - "jsbn": "1.1.0", - "sprintf-js": "^1.1.3" - }, "engines": { "node": ">= 12" } }, - "node_modules/ip-address/node_modules/jsbn": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-1.1.0.tgz", - "integrity": "sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A==", - "license": "MIT" - }, - "node_modules/ip-address/node_modules/sprintf-js": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.3.tgz", - "integrity": "sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==", - "license": "BSD-3-Clause" - }, "node_modules/ipaddr.js": { "version": "1.9.1", "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", @@ -5891,51 +5597,11 @@ "node": ">= 0.10" } }, - "node_modules/is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", - "license": "MIT" - }, - "node_modules/is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "license": "MIT", - "dependencies": { - "binary-extensions": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-ci": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz", - "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==", - "license": "MIT", - "dependencies": { - "ci-info": "^2.0.0" - }, - "bin": { - "is-ci": "bin.js" - } - }, - "node_modules/is-ci/node_modules/ci-info": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", - "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==", - "license": "MIT" - }, - "node_modules/is-core-module": { - "version": "2.15.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.15.0.tgz", - "integrity": "sha512-Dd+Lb2/zvk9SKy1TGCt1wFJFo/MWBPMX5x7KcvLajWTGuomczdQX61PvY5yK6SVACwpoexWo81IfFyoKY2QnTA==", - "inBundle": true, + "node_modules/is-callable": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", "license": "MIT", - "dependencies": { - "hasown": "^2.0.2" - }, "engines": { "node": ">= 0.4" }, @@ -5962,6 +5628,7 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "inBundle": true, "license": "MIT", "engines": { "node": ">=0.10.0" @@ -5976,20 +5643,11 @@ "node": ">=8" } }, - "node_modules/is-generator-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", - "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, "node_modules/is-glob": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "inBundle": true, "license": "MIT", "dependencies": { "is-extglob": "^2.1.1" @@ -5998,6 +5656,33 @@ "node": ">=0.10.0" } }, + "node_modules/is-in-ci": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-in-ci/-/is-in-ci-1.0.0.tgz", + "integrity": "sha512-eUuAjybVTHMYWm/U+vBO1sY/JOCgoPCXRxzdju0K+K0BiGW0SChEL1MLC0PoCIR1OlPo5YAp8HuQoUlsWEICwg==", + "license": "MIT", + "bin": { + "is-in-ci": "cli.js" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-in-ssh": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-in-ssh/-/is-in-ssh-1.0.0.tgz", + "integrity": "sha512-jYa6Q9rH90kR1vKB6NM7qqd1mge3Fx4Dhw5TVlK1MUBqhEOuCagrEHMevNuCcbECmXZ0ThXkRm+Ymr51HwEPAw==", + "license": "MIT", + "engines": { + "node": ">=20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/is-inside-container": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-inside-container/-/is-inside-container-1.0.0.tgz", @@ -6032,16 +5717,16 @@ } }, "node_modules/is-installed-globally": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.4.0.tgz", - "integrity": "sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-1.0.0.tgz", + "integrity": "sha512-K55T22lfpQ63N4KEN57jZUAaAYqYHEe8veb/TycJRk9DdSCLLcovXz/mL6mOnhQaZsQGwPhuFopdQIlqGSEjiQ==", "license": "MIT", "dependencies": { - "global-dirs": "^3.0.0", - "is-path-inside": "^3.0.2" + "global-directory": "^4.0.1", + "is-path-inside": "^4.0.0" }, "engines": { - "node": ">=10" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -6059,19 +5744,13 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/is-lambda": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-lambda/-/is-lambda-1.0.1.tgz", - "integrity": "sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==", - "license": "MIT" - }, "node_modules/is-npm": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-5.0.0.tgz", - "integrity": "sha512-WW/rQLOazUq+ST/bCAVBp/2oMERWLsR7OrKyt052dNDk4DHcDE0/7QSXITlmi+VBcV13DfIbysG3tZJm5RfdBA==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-6.1.0.tgz", + "integrity": "sha512-O2z4/kNgyjhQwVR1Wpkbfc19JIhggF97NZNCpWTnjH7kVcZMUrnut9XSN7txI7VdyIYk5ZatOq3zvSuWpU8hoA==", "license": "MIT", "engines": { - "node": ">=10" + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -6081,63 +5760,47 @@ "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "inBundle": true, "license": "MIT", "engines": { "node": ">=0.12.0" } }, - "node_modules/is-obj": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", - "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, "node_modules/is-path-inside": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", - "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-4.0.0.tgz", + "integrity": "sha512-lJJV/5dYS+RcL8uQdBDW9c9uWFLLBNRyFhnAKXw5tVqLlKZ4RMGZKv+YQ/IA3OhD+RpbJa1LLFM1FQPGyIXvOA==", "license": "MIT", "engines": { - "node": ">=8" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/is-plain-obj": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", - "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.1.0.tgz", + "integrity": "sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==", "license": "MIT", "engines": { - "node": ">=8" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/is-plain-object": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", - "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-scoped": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-scoped/-/is-scoped-2.1.0.tgz", - "integrity": "sha512-Cv4OpPTHAK9kHYzkzCrof3VJh7H/PrG2MBUMvvJebaaUMbqhm0YAtXnvh0I3Hnj2tMZWwrRROWLSgfJrKqWmlQ==", - "license": "MIT", - "dependencies": { - "scoped-regex": "^2.0.0" - }, - "engines": { - "node": ">=8" - } + "node_modules/is-promise": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-4.0.0.tgz", + "integrity": "sha512-hvpoI6korhJMnej285dSg6nu1+e6uxs7zG3BYAm5byqDsgJNWwxzM6z6iZiAgQR4TJ30JmBTOwqZUw3WlyH3AQ==", + "license": "MIT" }, "node_modules/is-stream": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "inBundle": true, "license": "MIT", "engines": { "node": ">=8" @@ -6146,16 +5809,25 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==", - "license": "MIT" + "node_modules/is-typed-array": { + "version": "1.1.15", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.15.tgz", + "integrity": "sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==", + "license": "MIT", + "dependencies": { + "which-typed-array": "^1.1.16" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, "node_modules/is-unicode-supported": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-2.0.0.tgz", - "integrity": "sha512-FRdAyx5lusK1iHG0TWpVtk9+1i+GjrzRffhDg4ovQ7mcidMQ6mj+MhKPmvh7Xwyv5gIS06ns49CA7Sqg7lC22Q==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-2.1.0.tgz", + "integrity": "sha512-mE00Gnza5EEB3Ds0HfMyllZzbBrmLOX3vfWoj9A9PEnTfratQ/BcaJOuMhnkhjXvb2+FkY3VuHqtAGpTPmglFQ==", "license": "MIT", "engines": { "node": ">=18" @@ -6182,12 +5854,6 @@ "node": ">=8" } }, - "node_modules/is-yarn-global": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/is-yarn-global/-/is-yarn-global-0.3.0.tgz", - "integrity": "sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw==", - "license": "MIT" - }, "node_modules/isarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", @@ -6195,12 +5861,12 @@ "license": "MIT" }, "node_modules/isbinaryfile": { - "version": "4.0.10", - "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-4.0.10.tgz", - "integrity": "sha512-iHrqe5shvBUcFbmZq9zOQHBoeOhZJu6RQGrDpBgenUm/Am+F3JM2MgQj+rK3Z601fzrL5gLZWtAPH2OBaSVcyw==", + "version": "5.0.7", + "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-5.0.7.tgz", + "integrity": "sha512-gnWD14Jh3FzS3CPhF0AxNOJ8CxqeblPTADzI38r0wt8ZyQl5edpy75myt08EG2oKvpyiqSqsx+Wkz9vtkbTqYQ==", "license": "MIT", "engines": { - "node": ">= 8.0.0" + "node": ">= 18.0.0" }, "funding": { "url": "https://github.com/sponsors/gjtorikian/" @@ -6210,110 +5876,9 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "inBundle": true, "license": "ISC" }, - "node_modules/isstream": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "integrity": "sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==", - "license": "MIT" - }, - "node_modules/istanbul-lib-coverage": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz", - "integrity": "sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-instrument": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.3.tgz", - "integrity": "sha512-Vtgk7L/R2JHyyGW07spoFlB8/lpjiOLTjMdms6AFMraYt3BaJauod/NGrfnVG/y4Ix1JEuMRPDPEj2ua+zz1/Q==", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "@babel/core": "^7.23.9", - "@babel/parser": "^7.23.9", - "@istanbuljs/schema": "^0.1.3", - "istanbul-lib-coverage": "^3.2.0", - "semver": "^7.5.4" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/istanbul-lib-report": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz", - "integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "istanbul-lib-coverage": "^3.0.0", - "make-dir": "^4.0.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/istanbul-lib-source-maps": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", - "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "debug": "^4.1.1", - "istanbul-lib-coverage": "^3.0.0", - "source-map": "^0.6.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/istanbul-lib-source-maps/node_modules/debug": { - "version": "4.3.6", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.6.tgz", - "integrity": "sha512-O/09Bd4Z1fBrU4VzkhFqVgpPzaGbw6Sm9FEkBT1A/YBXQFGuuSxa1dN2nxgxS34JmKXqYx8CZAwEVoJFImUXIg==", - "dev": true, - "license": "MIT", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/istanbul-lib-source-maps/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true, - "license": "MIT" - }, - "node_modules/istanbul-reports": { - "version": "3.1.7", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.7.tgz", - "integrity": "sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "html-escaper": "^2.0.0", - "istanbul-lib-report": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/jackspeak": { "version": "3.4.3", "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz", @@ -6330,15 +5895,14 @@ } }, "node_modules/jake": { - "version": "10.9.2", - "resolved": "https://registry.npmjs.org/jake/-/jake-10.9.2.tgz", - "integrity": "sha512-2P4SQ0HrLQ+fw6llpLnOaGAvN2Zu6778SJMrCUwns4fOoG9ayrTiZk3VV8sCPkVZF8ab0zksVpS8FDY5pRCNBA==", + "version": "10.9.4", + "resolved": "https://registry.npmjs.org/jake/-/jake-10.9.4.tgz", + "integrity": "sha512-wpHYzhxiVQL+IV05BLE2Xn34zW1S223hvjtqk0+gsPrwd/8JNLXJgZZM/iPFsYc1xyphF+6M6EvdE5E9MBGkDA==", "license": "Apache-2.0", "dependencies": { - "async": "^3.2.3", - "chalk": "^4.0.2", + "async": "^3.2.6", "filelist": "^1.0.4", - "minimatch": "^3.1.2" + "picocolors": "^1.1.1" }, "bin": { "jake": "bin/cli.js" @@ -6347,3242 +5911,550 @@ "node": ">=10" } }, - "node_modules/jest": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest/-/jest-29.7.0.tgz", - "integrity": "sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==", - "dev": true, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "license": "MIT" + }, + "node_modules/json-parse-even-better-errors": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-5.0.0.tgz", + "integrity": "sha512-ZF1nxZ28VhQouRWhUcVlUIN3qwSgPuswK05s/HIaoetAoE/9tngVmCHjSxmSQPav1nd+lPtTL0YZ/2AFdR/iYQ==", "license": "MIT", - "dependencies": { - "@jest/core": "^29.7.0", - "@jest/types": "^29.6.3", - "import-local": "^3.0.2", - "jest-cli": "^29.7.0" - }, - "bin": { - "jest": "bin/jest.js" - }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - }, - "peerDependencies": { - "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" - }, - "peerDependenciesMeta": { - "node-notifier": { - "optional": true - } + "node": "^20.17.0 || >=22.9.0" } }, - "node_modules/jest-changed-files": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-29.7.0.tgz", - "integrity": "sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w==", - "dev": true, + "node_modules/json-schema": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz", + "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==", + "license": "(AFL-2.1 OR BSD-3-Clause)" + }, + "node_modules/json-stringify-nice": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/json-stringify-nice/-/json-stringify-nice-1.1.4.tgz", + "integrity": "sha512-5Z5RFW63yxReJ7vANgW6eZFGWaQvnPE3WNmZoOJrSkGju2etKA2L5rrOa1sm877TVTFt57A80BH1bArcmlLfPw==", + "license": "ISC", + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/jsonfile": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.2.0.tgz", + "integrity": "sha512-FGuPw30AdOIUTRMC2OMRtQV+jkVj2cfPqSeWXv1NEAJ1qZ5zb1X6z1mFhbfOB/iy3ssJCD+3KuZ8r8C3uVFlAg==", "license": "MIT", "dependencies": { - "execa": "^5.0.0", - "jest-util": "^29.7.0", - "p-limit": "^3.1.0" + "universalify": "^2.0.0" }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "optionalDependencies": { + "graceful-fs": "^4.1.6" } }, - "node_modules/jest-circus": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-29.7.0.tgz", - "integrity": "sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw==", - "dev": true, + "node_modules/jsonparse": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", + "integrity": "sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==", + "engines": [ + "node >= 0.2.0" + ], + "license": "MIT" + }, + "node_modules/just-diff": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/just-diff/-/just-diff-6.0.2.tgz", + "integrity": "sha512-S59eriX5u3/QhMNq3v/gm8Kd0w8OS6Tz2FS1NG4blv+z0MuQcBRJyFWjdovM0Rad4/P4aUPFtnkNjMjyMlMSYA==", + "license": "MIT" + }, + "node_modules/just-diff-apply": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/just-diff-apply/-/just-diff-apply-5.5.0.tgz", + "integrity": "sha512-OYTthRfSh55WOItVqwpefPtNt2VdKsq5AnAK6apdtR6yCH8pr0CmSr710J0Mf+WdQy7K/OzMy7K2MgAfdQURDw==", + "license": "MIT" + }, + "node_modules/kleur": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", + "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", "license": "MIT", - "dependencies": { - "@jest/environment": "^29.7.0", - "@jest/expect": "^29.7.0", - "@jest/test-result": "^29.7.0", - "@jest/types": "^29.6.3", - "@types/node": "*", - "chalk": "^4.0.0", - "co": "^4.6.0", - "dedent": "^1.0.0", - "is-generator-fn": "^2.0.0", - "jest-each": "^29.7.0", - "jest-matcher-utils": "^29.7.0", - "jest-message-util": "^29.7.0", - "jest-runtime": "^29.7.0", - "jest-snapshot": "^29.7.0", - "jest-util": "^29.7.0", - "p-limit": "^3.1.0", - "pretty-format": "^29.7.0", - "pure-rand": "^6.0.0", - "slash": "^3.0.0", - "stack-utils": "^2.0.3" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-cli": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-29.7.0.tgz", - "integrity": "sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg==", - "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/ky": { + "version": "1.14.2", + "resolved": "https://registry.npmjs.org/ky/-/ky-1.14.2.tgz", + "integrity": "sha512-q3RBbsO5A5zrPhB6CaCS8ZUv+NWCXv6JJT4Em0i264G9W0fdPB8YRfnnEi7Dm7X7omAkBIPojzYJ2D1oHTHqug==", "license": "MIT", - "dependencies": { - "@jest/core": "^29.7.0", - "@jest/test-result": "^29.7.0", - "@jest/types": "^29.6.3", - "chalk": "^4.0.0", - "create-jest": "^29.7.0", - "exit": "^0.1.2", - "import-local": "^3.0.2", - "jest-config": "^29.7.0", - "jest-util": "^29.7.0", - "jest-validate": "^29.7.0", - "yargs": "^17.3.1" - }, - "bin": { - "jest": "bin/jest.js" - }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - }, - "peerDependencies": { - "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + "node": ">=18" }, - "peerDependenciesMeta": { - "node-notifier": { - "optional": true - } + "funding": { + "url": "https://github.com/sindresorhus/ky?sponsor=1" } }, - "node_modules/jest-config": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-29.7.0.tgz", - "integrity": "sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==", - "dev": true, + "node_modules/latest-version": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-9.0.0.tgz", + "integrity": "sha512-7W0vV3rqv5tokqkBAFV1LbR7HPOWzXQDpDgEuib/aJ1jsZZx6x3c2mBI+TJhJzOhkGeaLbCKEHXEXLfirtG2JA==", "license": "MIT", "dependencies": { - "@babel/core": "^7.11.6", - "@jest/test-sequencer": "^29.7.0", - "@jest/types": "^29.6.3", - "babel-jest": "^29.7.0", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "deepmerge": "^4.2.2", - "glob": "^7.1.3", - "graceful-fs": "^4.2.9", - "jest-circus": "^29.7.0", - "jest-environment-node": "^29.7.0", - "jest-get-type": "^29.6.3", - "jest-regex-util": "^29.6.3", - "jest-resolve": "^29.7.0", - "jest-runner": "^29.7.0", - "jest-util": "^29.7.0", - "jest-validate": "^29.7.0", - "micromatch": "^4.0.4", - "parse-json": "^5.2.0", - "pretty-format": "^29.7.0", - "slash": "^3.0.0", - "strip-json-comments": "^3.1.1" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "package-json": "^10.0.0" }, - "peerDependencies": { - "@types/node": "*", - "ts-node": ">=9.0.0" + "engines": { + "node": ">=18" }, - "peerDependenciesMeta": { - "@types/node": { - "optional": true - }, - "ts-node": { - "optional": true - } + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/jest-diff": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.7.0.tgz", - "integrity": "sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==", - "dev": true, + "node_modules/lazystream": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/lazystream/-/lazystream-1.0.1.tgz", + "integrity": "sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw==", "license": "MIT", "dependencies": { - "chalk": "^4.0.0", - "diff-sequences": "^29.6.3", - "jest-get-type": "^29.6.3", - "pretty-format": "^29.7.0" + "readable-stream": "^2.0.5" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">= 0.6.3" } }, - "node_modules/jest-docblock": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-29.7.0.tgz", - "integrity": "sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g==", - "dev": true, + "node_modules/lazystream/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", "license": "MIT", "dependencies": { - "detect-newline": "^3.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" } }, - "node_modules/jest-each": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-29.7.0.tgz", - "integrity": "sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ==", - "dev": true, + "node_modules/lazystream/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "license": "MIT" + }, + "node_modules/lazystream/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "license": "MIT", "dependencies": { - "@jest/types": "^29.6.3", - "chalk": "^4.0.0", - "jest-get-type": "^29.6.3", - "jest-util": "^29.7.0", - "pretty-format": "^29.7.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "safe-buffer": "~5.1.0" } }, - "node_modules/jest-environment-node": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-29.7.0.tgz", - "integrity": "sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw==", - "dev": true, + "node_modules/livereload": { + "version": "0.10.3", + "resolved": "https://registry.npmjs.org/livereload/-/livereload-0.10.3.tgz", + "integrity": "sha512-llSb8HrtSH7ByPFMc8WTTeW3oy++smwgSA8JVGzEn8KiDPESq6jt1M4ZKKkhKTrhn2wvUOadQq4ip10E5daZ3w==", "license": "MIT", "dependencies": { - "@jest/environment": "^29.7.0", - "@jest/fake-timers": "^29.7.0", - "@jest/types": "^29.6.3", - "@types/node": "*", - "jest-mock": "^29.7.0", - "jest-util": "^29.7.0" + "chokidar": "^4.0.3", + "livereload-js": "^4.0.2", + "opts": "^2.0.2", + "ws": "^8.4.3" + }, + "bin": { + "livereload": "bin/livereload.js" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=8.0.0" } }, - "node_modules/jest-get-type": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.6.3.tgz", - "integrity": "sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } + "node_modules/livereload-js": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/livereload-js/-/livereload-js-4.0.2.tgz", + "integrity": "sha512-Fy7VwgQNiOkynYyNBTo3v9hQUhcW5pFAheJN148+DTgpShjsy/22pLHKKwDK5v0kOsZsJBK+6q1PMgLvRmrwFQ==", + "license": "MIT" }, - "node_modules/jest-haste-map": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-29.7.0.tgz", - "integrity": "sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==", - "dev": true, + "node_modules/livereload/node_modules/chokidar": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.3.tgz", + "integrity": "sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==", "license": "MIT", "dependencies": { - "@jest/types": "^29.6.3", - "@types/graceful-fs": "^4.1.3", - "@types/node": "*", - "anymatch": "^3.0.3", - "fb-watchman": "^2.0.0", - "graceful-fs": "^4.2.9", - "jest-regex-util": "^29.6.3", - "jest-util": "^29.7.0", - "jest-worker": "^29.7.0", - "micromatch": "^4.0.4", - "walker": "^1.0.8" + "readdirp": "^4.0.1" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">= 14.16.0" }, - "optionalDependencies": { - "fsevents": "^2.3.2" + "funding": { + "url": "https://paulmillr.com/funding/" } }, - "node_modules/jest-leak-detector": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-29.7.0.tgz", - "integrity": "sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw==", - "dev": true, + "node_modules/livereload/node_modules/readdirp": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.1.2.tgz", + "integrity": "sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==", "license": "MIT", - "dependencies": { - "jest-get-type": "^29.6.3", - "pretty-format": "^29.7.0" - }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-matcher-utils": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.7.0.tgz", - "integrity": "sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==", - "dev": true, - "license": "MIT", - "dependencies": { - "chalk": "^4.0.0", - "jest-diff": "^29.7.0", - "jest-get-type": "^29.6.3", - "pretty-format": "^29.7.0" + "node": ">= 14.18.0" }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "funding": { + "type": "individual", + "url": "https://paulmillr.com/funding/" } }, - "node_modules/jest-message-util": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.7.0.tgz", - "integrity": "sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==", - "dev": true, + "node_modules/locate-path": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-8.0.0.tgz", + "integrity": "sha512-XT9ewWAC43tiAV7xDAPflMkG0qOPn2QjHqlgX8FOqmWa/rxnyYDulF9T0F7tRy1u+TVTmK/M//6VIOye+2zDXg==", "license": "MIT", "dependencies": { - "@babel/code-frame": "^7.12.13", - "@jest/types": "^29.6.3", - "@types/stack-utils": "^2.0.0", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "micromatch": "^4.0.4", - "pretty-format": "^29.7.0", - "slash": "^3.0.0", - "stack-utils": "^2.0.3" + "p-locate": "^6.0.0" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/jest-mock": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-29.7.0.tgz", - "integrity": "sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==", - "dev": true, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "license": "MIT" + }, + "node_modules/lodash-es": { + "version": "4.17.22", + "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.22.tgz", + "integrity": "sha512-XEawp1t0gxSi9x01glktRZ5HDy0HXqrM0x5pXQM98EaI0NxO6jVM7omDOxsuEo5UIASAnm2bRp1Jt/e0a2XU8Q==", + "license": "MIT" + }, + "node_modules/lodash.clonedeep": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", + "integrity": "sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ==", + "license": "MIT" + }, + "node_modules/lodash.compact": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/lodash.compact/-/lodash.compact-3.0.1.tgz", + "integrity": "sha512-2ozeiPi+5eBXW1CLtzjk8XQFhQOEMwwfxblqeq6EGyTxZJ1bPATqilY0e6g2SLQpP4KuMeuioBhEnWz5Pr7ICQ==", + "license": "MIT" + }, + "node_modules/lodash.debounce": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==", + "license": "MIT" + }, + "node_modules/lodash.flatten": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/lodash.flatten/-/lodash.flatten-4.4.0.tgz", + "integrity": "sha512-C5N2Z3DgnnKr0LOpv/hKCgKdb7ZZwafIrsesve6lmzvZIRZRGaZ/l6Q8+2W7NaT+ZwO3fFlSCzCzrDCFdJfZ4g==", + "license": "MIT" + }, + "node_modules/lodash.isequal": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz", + "integrity": "sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==", + "deprecated": "This package is deprecated. Use require('node:util').isDeepStrictEqual instead.", + "license": "MIT" + }, + "node_modules/lodash.reject": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/lodash.reject/-/lodash.reject-4.6.0.tgz", + "integrity": "sha512-qkTuvgEzYdyhiJBx42YPzPo71R1aEr0z79kAv7Ixg8wPFEjgRgJdUsGMG3Hf3OYSF/kHI79XhNlt+5Ar6OzwxQ==", + "license": "MIT" + }, + "node_modules/lodash.startcase": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/lodash.startcase/-/lodash.startcase-4.4.0.tgz", + "integrity": "sha512-+WKqsK294HMSc2jEbNgpHpd0JfIBhp7rEV4aqXWqFr6AlXov+SlcgB1Fv01y2kGe3Gc8nMW7VA0SrGuSkRfIEg==", + "license": "MIT" + }, + "node_modules/lodash.uniq": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", + "integrity": "sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==", + "license": "MIT" + }, + "node_modules/log-symbols": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-7.0.1.tgz", + "integrity": "sha512-ja1E3yCr9i/0hmBVaM0bfwDjnGy8I/s6PP4DFp+yP+a+mrHO4Rm7DtmnqROTUkHIkqffC84YY7AeqX6oFk0WFg==", "license": "MIT", "dependencies": { - "@jest/types": "^29.6.3", - "@types/node": "*", - "jest-util": "^29.7.0" + "is-unicode-supported": "^2.0.0", + "yoctocolors": "^2.1.1" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/jest-pnp-resolver": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz", - "integrity": "sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==", + "node_modules/loupe": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/loupe/-/loupe-3.2.1.tgz", + "integrity": "sha512-CdzqowRJCeLU72bHvWqwRBBlLcMEtIvGrlvef74kMnV2AolS9Y8xUv1I0U/MNAWMhBlKIoyuEgoJ0t/bbwHbLQ==", "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - }, - "peerDependencies": { - "jest-resolve": "*" - }, - "peerDependenciesMeta": { - "jest-resolve": { - "optional": true - } - } + "license": "MIT" + }, + "node_modules/lru-cache": { + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", + "license": "ISC" }, - "node_modules/jest-regex-util": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-29.6.3.tgz", - "integrity": "sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==", + "node_modules/magic-string": { + "version": "0.30.21", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.21.tgz", + "integrity": "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==", "dev": true, "license": "MIT", - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.5" } }, - "node_modules/jest-resolve": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-29.7.0.tgz", - "integrity": "sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA==", - "dev": true, - "license": "MIT", + "node_modules/make-fetch-happen": { + "version": "15.0.3", + "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-15.0.3.tgz", + "integrity": "sha512-iyyEpDty1mwW3dGlYXAJqC/azFn5PPvgKVwXayOGBSmKLxhKZ9fg4qIan2ePpp1vJIwfFiO34LAPZgq9SZW9Aw==", + "license": "ISC", "dependencies": { - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.7.0", - "jest-pnp-resolver": "^1.2.2", - "jest-util": "^29.7.0", - "jest-validate": "^29.7.0", - "resolve": "^1.20.0", - "resolve.exports": "^2.0.0", - "slash": "^3.0.0" + "@npmcli/agent": "^4.0.0", + "cacache": "^20.0.1", + "http-cache-semantics": "^4.1.1", + "minipass": "^7.0.2", + "minipass-fetch": "^5.0.0", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "negotiator": "^1.0.0", + "proc-log": "^6.0.0", + "promise-retry": "^2.0.1", + "ssri": "^13.0.0" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": "^20.17.0 || >=22.9.0" } }, - "node_modules/jest-resolve-dependencies": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-29.7.0.tgz", - "integrity": "sha512-un0zD/6qxJ+S0et7WxeI3H5XSe9lTBBR7bOHCHXkKR6luG5mwDDlIzVQ0V5cZCuoTgEdcdwzTghYkTWfubi+nA==", - "dev": true, + "node_modules/math-intrinsics": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", + "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", "license": "MIT", - "dependencies": { - "jest-regex-util": "^29.6.3", - "jest-snapshot": "^29.7.0" - }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">= 0.4" } }, - "node_modules/jest-runner": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-29.7.0.tgz", - "integrity": "sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/console": "^29.7.0", - "@jest/environment": "^29.7.0", - "@jest/test-result": "^29.7.0", - "@jest/transform": "^29.7.0", - "@jest/types": "^29.6.3", - "@types/node": "*", - "chalk": "^4.0.0", - "emittery": "^0.13.1", - "graceful-fs": "^4.2.9", - "jest-docblock": "^29.7.0", - "jest-environment-node": "^29.7.0", - "jest-haste-map": "^29.7.0", - "jest-leak-detector": "^29.7.0", - "jest-message-util": "^29.7.0", - "jest-resolve": "^29.7.0", - "jest-runtime": "^29.7.0", - "jest-util": "^29.7.0", - "jest-watcher": "^29.7.0", - "jest-worker": "^29.7.0", - "p-limit": "^3.1.0", - "source-map-support": "0.5.13" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-runtime": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-29.7.0.tgz", - "integrity": "sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/environment": "^29.7.0", - "@jest/fake-timers": "^29.7.0", - "@jest/globals": "^29.7.0", - "@jest/source-map": "^29.6.3", - "@jest/test-result": "^29.7.0", - "@jest/transform": "^29.7.0", - "@jest/types": "^29.6.3", - "@types/node": "*", - "chalk": "^4.0.0", - "cjs-module-lexer": "^1.0.0", - "collect-v8-coverage": "^1.0.0", - "glob": "^7.1.3", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.7.0", - "jest-message-util": "^29.7.0", - "jest-mock": "^29.7.0", - "jest-regex-util": "^29.6.3", - "jest-resolve": "^29.7.0", - "jest-snapshot": "^29.7.0", - "jest-util": "^29.7.0", - "slash": "^3.0.0", - "strip-bom": "^4.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-snapshot": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-29.7.0.tgz", - "integrity": "sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw==", - "dev": true, + "node_modules/media-typer": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-1.1.0.tgz", + "integrity": "sha512-aisnrDP4GNe06UcKFnV5bfMNPBUw4jsLGaWwWfnH3v02GnBuXX2MCVn5RbrWo0j3pczUilYblq7fQ7Nw2t5XKw==", "license": "MIT", - "dependencies": { - "@babel/core": "^7.11.6", - "@babel/generator": "^7.7.2", - "@babel/plugin-syntax-jsx": "^7.7.2", - "@babel/plugin-syntax-typescript": "^7.7.2", - "@babel/types": "^7.3.3", - "@jest/expect-utils": "^29.7.0", - "@jest/transform": "^29.7.0", - "@jest/types": "^29.6.3", - "babel-preset-current-node-syntax": "^1.0.0", - "chalk": "^4.0.0", - "expect": "^29.7.0", - "graceful-fs": "^4.2.9", - "jest-diff": "^29.7.0", - "jest-get-type": "^29.6.3", - "jest-matcher-utils": "^29.7.0", - "jest-message-util": "^29.7.0", - "jest-util": "^29.7.0", - "natural-compare": "^1.4.0", - "pretty-format": "^29.7.0", - "semver": "^7.5.3" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-util": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.7.0.tgz", - "integrity": "sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==", - "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/mem-fs": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/mem-fs/-/mem-fs-4.1.3.tgz", + "integrity": "sha512-+2zSUVKcDWgcF90mPPwyH4J814uRI1PJcVt2RZ4/E8VggPEiIEL7ikMTlPR91P2ZySkyPgD0YGrccwo55SZvnw==", "license": "MIT", + "peer": true, "dependencies": { - "@jest/types": "^29.6.3", - "@types/node": "*", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "graceful-fs": "^4.2.9", - "picomatch": "^2.2.3" + "@types/node": ">=18", + "@types/vinyl": "^2.0.12", + "vinyl": "^3.0.0", + "vinyl-file": "^5.0.0" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=18.0.0" } }, - "node_modules/jest-validate": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-29.7.0.tgz", - "integrity": "sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==", - "dev": true, + "node_modules/mem-fs-editor": { + "version": "11.1.4", + "resolved": "https://registry.npmjs.org/mem-fs-editor/-/mem-fs-editor-11.1.4.tgz", + "integrity": "sha512-Z4QX14Ev6eOVTuVSayS5rdiOua6C3gHcFw+n9Qc7WiaVTbC+H8b99c32MYGmbQN9UFHJeI/p3lf3LAxiIzwEmA==", "license": "MIT", "dependencies": { - "@jest/types": "^29.6.3", - "camelcase": "^6.2.0", - "chalk": "^4.0.0", - "jest-get-type": "^29.6.3", - "leven": "^3.1.0", - "pretty-format": "^29.7.0" + "@types/ejs": "^3.1.4", + "@types/node": ">=18", + "binaryextensions": "^6.11.0", + "commondir": "^1.0.1", + "deep-extend": "^0.6.0", + "ejs": "^3.1.10", + "globby": "^14.0.2", + "isbinaryfile": "5.0.3", + "minimatch": "^9.0.3", + "multimatch": "^7.0.0", + "normalize-path": "^3.0.0", + "textextensions": "^6.11.0", + "vinyl": "^3.0.0" + }, + "acceptDependencies": { + "isbinaryfile": "^5.0.3" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=18.0.0" + }, + "peerDependencies": { + "mem-fs": "^4.0.0" } }, - "node_modules/jest-validate/node_modules/camelcase": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", - "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", - "dev": true, + "node_modules/mem-fs-editor/node_modules/@sindresorhus/merge-streams": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/merge-streams/-/merge-streams-2.3.0.tgz", + "integrity": "sha512-LtoMMhxAlorcGhmFYI+LhPgbPZCkgP6ra1YL604EeF6U98pLlQ3iWIGMdWSC+vWmPBWBNgmDBAhnAobLROJmwg==", "license": "MIT", "engines": { - "node": ">=10" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/jest-watcher": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-29.7.0.tgz", - "integrity": "sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g==", - "dev": true, + "node_modules/mem-fs-editor/node_modules/globby": { + "version": "14.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-14.1.0.tgz", + "integrity": "sha512-0Ia46fDOaT7k4og1PDW4YbodWWr3scS2vAr2lTbsplOt2WkKp0vQbkI9wKis/T5LV/dqPjO3bpS/z6GTJB82LA==", "license": "MIT", "dependencies": { - "@jest/test-result": "^29.7.0", - "@jest/types": "^29.6.3", - "@types/node": "*", - "ansi-escapes": "^4.2.1", - "chalk": "^4.0.0", - "emittery": "^0.13.1", - "jest-util": "^29.7.0", - "string-length": "^4.0.1" + "@sindresorhus/merge-streams": "^2.1.0", + "fast-glob": "^3.3.3", + "ignore": "^7.0.3", + "path-type": "^6.0.0", + "slash": "^5.1.0", + "unicorn-magic": "^0.3.0" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/jest-worker": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.7.0.tgz", - "integrity": "sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==", - "dev": true, + "node_modules/mem-fs-editor/node_modules/unicorn-magic": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/unicorn-magic/-/unicorn-magic-0.3.0.tgz", + "integrity": "sha512-+QBBXBCvifc56fsbuxZQ6Sic3wqqc3WWaqxs58gvJrcOuN83HGTCwz3oS5phzU9LthRNE9VrJCFCLUgHeeFnfA==", "license": "MIT", - "dependencies": { - "@types/node": "*", - "jest-util": "^29.7.0", - "merge-stream": "^2.0.0", - "supports-color": "^8.0.0" - }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/jest-worker/node_modules/supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "dev": true, + "node_modules/merge-descriptors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-2.0.0.tgz", + "integrity": "sha512-Snk314V5ayFLhp3fkUREub6WtjBfPdCPY1Ln8/8munuLuiYhsABgBVWsozAG+MWMbVEvcdcpbi9R7ww22l9Q3g==", "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, "engines": { - "node": ">=10" + "node": ">=18" }, "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "node_modules/merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "inBundle": true, "license": "MIT" }, - "node_modules/js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "inBundle": true, "license": "MIT", - "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" + "engines": { + "node": ">= 8" } }, - "node_modules/jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==", - "license": "MIT" - }, - "node_modules/jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", - "dev": true, + "node_modules/micromatch": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", + "inBundle": true, "license": "MIT", - "bin": { - "jsesc": "bin/jsesc" + "dependencies": { + "braces": "^3.0.3", + "picomatch": "^2.3.1" }, "engines": { - "node": ">=4" - } - }, - "node_modules/json-buffer": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz", - "integrity": "sha512-CuUqjv0FUZIdXkHPI8MezCnFCdaTAacej1TZYulLoAg1h/PhwkdXFN4V/gzY4g+fMBCOV2xF+rp7t2XD2ns/NQ==", - "license": "MIT" - }, - "node_modules/json-parse-even-better-errors": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", - "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", - "license": "MIT" - }, - "node_modules/json-schema": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz", - "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==", - "license": "(AFL-2.1 OR BSD-3-Clause)" - }, - "node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "license": "MIT" - }, - "node_modules/json-stringify-nice": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/json-stringify-nice/-/json-stringify-nice-1.1.4.tgz", - "integrity": "sha512-5Z5RFW63yxReJ7vANgW6eZFGWaQvnPE3WNmZoOJrSkGju2etKA2L5rrOa1sm877TVTFt57A80BH1bArcmlLfPw==", - "license": "ISC", - "funding": { - "url": "https://github.com/sponsors/isaacs" + "node": ">=8.6" } }, - "node_modules/json-stringify-safe": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==", - "license": "ISC" - }, - "node_modules/json5": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", - "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", - "dev": true, + "node_modules/mime": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-4.1.0.tgz", + "integrity": "sha512-X5ju04+cAzsojXKes0B/S4tcYtFAJ6tTMuSPBEn9CPGlrWr8Fiw7qYeLT0XyH80HSoAoqWCaz+MWKh22P7G1cw==", + "funding": [ + "https://github.com/sponsors/broofa" + ], "license": "MIT", "bin": { - "json5": "lib/cli.js" + "mime": "bin/cli.js" }, "engines": { - "node": ">=6" + "node": ">=16" } }, - "node_modules/jsonfile": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", - "dependencies": { - "universalify": "^2.0.0" - }, - "optionalDependencies": { - "graceful-fs": "^4.1.6" + "node_modules/mime-db": { + "version": "1.54.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.54.0.tgz", + "integrity": "sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==", + "license": "MIT", + "engines": { + "node": ">= 0.6" } }, - "node_modules/jsonparse": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", - "integrity": "sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==", - "engines": [ - "node >= 0.2.0" - ], - "license": "MIT" - }, - "node_modules/jsprim": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.2.tgz", - "integrity": "sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==", + "node_modules/mime-types": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-3.0.2.tgz", + "integrity": "sha512-Lbgzdk0h4juoQ9fCKXW4by0UJqj+nOOrI9MJ1sSj4nI8aI2eo1qmvQEie4VD1glsS250n15LsWsYtCugiStS5A==", "license": "MIT", "dependencies": { - "assert-plus": "1.0.0", - "extsprintf": "1.3.0", - "json-schema": "0.4.0", - "verror": "1.10.0" + "mime-db": "^1.54.0" }, "engines": { - "node": ">=0.6.0" + "node": ">=18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" } }, - "node_modules/just-diff": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/just-diff/-/just-diff-5.2.0.tgz", - "integrity": "sha512-6ufhP9SHjb7jibNFrNxyFZ6od3g+An6Ai9mhGRvcYe8UJlH0prseN64M+6ZBBUoKYHZsitDP42gAJ8+eVWr3lw==", - "license": "MIT" + "node_modules/mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=6" + } }, - "node_modules/just-diff-apply": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/just-diff-apply/-/just-diff-apply-5.5.0.tgz", - "integrity": "sha512-OYTthRfSh55WOItVqwpefPtNt2VdKsq5AnAK6apdtR6yCH8pr0CmSr710J0Mf+WdQy7K/OzMy7K2MgAfdQURDw==", - "license": "MIT" - }, - "node_modules/keyv": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz", - "integrity": "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==", - "license": "MIT", - "dependencies": { - "json-buffer": "3.0.0" - } - }, - "node_modules/kleur": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", - "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/latest-version": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-5.1.0.tgz", - "integrity": "sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA==", - "license": "MIT", - "dependencies": { - "package-json": "^6.3.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/lazystream": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/lazystream/-/lazystream-1.0.1.tgz", - "integrity": "sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw==", - "license": "MIT", - "dependencies": { - "readable-stream": "^2.0.5" - }, - "engines": { - "node": ">= 0.6.3" - } - }, - "node_modules/lazystream/node_modules/readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", - "license": "MIT", - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "node_modules/lazystream/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "license": "MIT" - }, - "node_modules/lazystream/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "license": "MIT", - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/leven": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", - "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/lines-and-columns": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", - "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", - "license": "MIT" - }, - "node_modules/livereload": { - "version": "0.9.3", - "resolved": "https://registry.npmjs.org/livereload/-/livereload-0.9.3.tgz", - "integrity": "sha512-q7Z71n3i4X0R9xthAryBdNGVGAO2R5X+/xXpmKeuPMrteg+W2U8VusTKV3YiJbXZwKsOlFlHe+go6uSNjfxrZw==", - "license": "MIT", - "dependencies": { - "chokidar": "^3.5.0", - "livereload-js": "^3.3.1", - "opts": ">= 1.2.0", - "ws": "^7.4.3" - }, - "bin": { - "livereload": "bin/livereload.js" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/livereload-js": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/livereload-js/-/livereload-js-3.4.1.tgz", - "integrity": "sha512-5MP0uUeVCec89ZbNOT/i97Mc+q3SxXmiUGhRFOTmhrGPn//uWVQdCvcLJDy64MSBR5MidFdOR7B9viumoavy6g==", - "license": "MIT" - }, - "node_modules/load-yaml-file": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/load-yaml-file/-/load-yaml-file-0.2.0.tgz", - "integrity": "sha512-OfCBkGEw4nN6JLtgRidPX6QxjBQGQf72q3si2uvqyFEMbycSFFHwAZeXx6cJgFM9wmLrf9zBwCP3Ivqa+LLZPw==", - "license": "MIT", - "dependencies": { - "graceful-fs": "^4.1.5", - "js-yaml": "^3.13.0", - "pify": "^4.0.1", - "strip-bom": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/load-yaml-file/node_modules/pify": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/load-yaml-file/node_modules/strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "license": "MIT", - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", - "license": "MIT" - }, - "node_modules/lodash.clonedeep": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", - "integrity": "sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ==", - "license": "MIT" - }, - "node_modules/lodash.compact": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/lodash.compact/-/lodash.compact-3.0.1.tgz", - "integrity": "sha512-2ozeiPi+5eBXW1CLtzjk8XQFhQOEMwwfxblqeq6EGyTxZJ1bPATqilY0e6g2SLQpP4KuMeuioBhEnWz5Pr7ICQ==", - "license": "MIT" - }, - "node_modules/lodash.debounce": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", - "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==", - "license": "MIT" - }, - "node_modules/lodash.defaults": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/lodash.defaults/-/lodash.defaults-4.2.0.tgz", - "integrity": "sha512-qjxPLHd3r5DnsdGacqOMU6pb/avJzdh9tFX2ymgoZE27BmjXrNy/y4LoaiTeAb+O3gL8AfpJGtqfX/ae2leYYQ==", - "license": "MIT" - }, - "node_modules/lodash.difference": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.difference/-/lodash.difference-4.5.0.tgz", - "integrity": "sha512-dS2j+W26TQ7taQBGN8Lbbq04ssV3emRw4NY58WErlTO29pIqS0HmoT5aJ9+TUQ1N3G+JOZSji4eugsWwGp9yPA==", - "license": "MIT" - }, - "node_modules/lodash.flatten": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/lodash.flatten/-/lodash.flatten-4.4.0.tgz", - "integrity": "sha512-C5N2Z3DgnnKr0LOpv/hKCgKdb7ZZwafIrsesve6lmzvZIRZRGaZ/l6Q8+2W7NaT+ZwO3fFlSCzCzrDCFdJfZ4g==", - "license": "MIT" - }, - "node_modules/lodash.isequal": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz", - "integrity": "sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==", - "license": "MIT" - }, - "node_modules/lodash.isplainobject": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", - "integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==", - "license": "MIT" - }, - "node_modules/lodash.reject": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/lodash.reject/-/lodash.reject-4.6.0.tgz", - "integrity": "sha512-qkTuvgEzYdyhiJBx42YPzPo71R1aEr0z79kAv7Ixg8wPFEjgRgJdUsGMG3Hf3OYSF/kHI79XhNlt+5Ar6OzwxQ==", - "license": "MIT" - }, - "node_modules/lodash.startcase": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/lodash.startcase/-/lodash.startcase-4.4.0.tgz", - "integrity": "sha512-+WKqsK294HMSc2jEbNgpHpd0JfIBhp7rEV4aqXWqFr6AlXov+SlcgB1Fv01y2kGe3Gc8nMW7VA0SrGuSkRfIEg==", - "license": "MIT" - }, - "node_modules/lodash.union": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/lodash.union/-/lodash.union-4.6.0.tgz", - "integrity": "sha512-c4pB2CdGrGdjMKYLA+XiRDO7Y0PRQbm/Gzg8qMj+QH+pFVAoTp5sBpO0odL3FjoPCGjK96p6qsP+yQoiLoOBcw==", - "license": "MIT" - }, - "node_modules/lodash.uniq": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", - "integrity": "sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==", - "license": "MIT" - }, - "node_modules/log-symbols": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-6.0.0.tgz", - "integrity": "sha512-i24m8rpwhmPIS4zscNzK6MSEhk0DUWa/8iYQWxhffV8jkI4Phvs3F+quL5xvS0gdQR0FyTCMMH33Y78dDTzzIw==", - "license": "MIT", - "dependencies": { - "chalk": "^5.3.0", - "is-unicode-supported": "^1.3.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/log-symbols/node_modules/chalk": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz", - "integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==", - "license": "MIT", - "engines": { - "node": "^12.17.0 || ^14.13 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/log-symbols/node_modules/is-unicode-supported": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-1.3.0.tgz", - "integrity": "sha512-43r2mRvz+8JRIKnWJ+3j8JtjRKZ6GmjzfaE/qiBJnikNnYv/6bagRJ1kUhNk8R5EX/GkobD+r+sfxCPJsiKBLQ==", - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/lowercase-keys": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", - "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", - "dev": true, - "license": "ISC", - "dependencies": { - "yallist": "^3.0.2" - } - }, - "node_modules/make-dir": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz", - "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==", - "dev": true, - "license": "MIT", - "dependencies": { - "semver": "^7.5.3" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/make-fetch-happen": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-9.1.0.tgz", - "integrity": "sha512-+zopwDy7DNknmwPQplem5lAZX/eCOzSvSNNcSKm5eVwTkOBzoktEfXsa9L23J/GIRhxRsaxzkPEhrJEpE2F4Gg==", - "license": "ISC", - "dependencies": { - "agentkeepalive": "^4.1.3", - "cacache": "^15.2.0", - "http-cache-semantics": "^4.1.0", - "http-proxy-agent": "^4.0.1", - "https-proxy-agent": "^5.0.0", - "is-lambda": "^1.0.1", - "lru-cache": "^6.0.0", - "minipass": "^3.1.3", - "minipass-collect": "^1.0.2", - "minipass-fetch": "^1.3.2", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "negotiator": "^0.6.2", - "promise-retry": "^2.0.1", - "socks-proxy-agent": "^6.0.0", - "ssri": "^8.0.0" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/make-fetch-happen/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "license": "ISC", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/make-fetch-happen/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "license": "ISC" - }, - "node_modules/makeerror": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", - "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "tmpl": "1.0.5" - } - }, - "node_modules/media-typer": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mem-fs": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/mem-fs/-/mem-fs-2.3.0.tgz", - "integrity": "sha512-GftCCBs6EN8sz3BoWO1bCj8t7YBtT713d8bUgbhg9Iel5kFSqnSvCK06TYIDJAtJ51cSiWkM/YemlT0dfoFycw==", - "license": "MIT", - "dependencies": { - "@types/node": "^15.6.2", - "@types/vinyl": "^2.0.4", - "vinyl": "^2.0.1", - "vinyl-file": "^3.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/mem-fs-editor": { - "version": "9.7.0", - "resolved": "https://registry.npmjs.org/mem-fs-editor/-/mem-fs-editor-9.7.0.tgz", - "integrity": "sha512-ReB3YD24GNykmu4WeUL/FDIQtkoyGB6zfJv60yfCo3QjKeimNcTqv2FT83bP0ccs6uu+sm5zyoBlspAzigmsdg==", - "license": "MIT", - "dependencies": { - "binaryextensions": "^4.16.0", - "commondir": "^1.0.1", - "deep-extend": "^0.6.0", - "ejs": "^3.1.8", - "globby": "^11.1.0", - "isbinaryfile": "^5.0.0", - "minimatch": "^7.2.0", - "multimatch": "^5.0.0", - "normalize-path": "^3.0.0", - "textextensions": "^5.13.0" - }, - "engines": { - "node": ">=12.10.0" - }, - "peerDependencies": { - "mem-fs": "^2.1.0" - }, - "peerDependenciesMeta": { - "mem-fs": { - "optional": true - } - } - }, - "node_modules/mem-fs-editor/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/mem-fs-editor/node_modules/isbinaryfile": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-5.0.2.tgz", - "integrity": "sha512-GvcjojwonMjWbTkfMpnVHVqXW/wKMYDfEpY94/8zy8HFMOqb/VL6oeONq9v87q4ttVlaTLnGXnJD4B5B1OTGIg==", - "license": "MIT", - "engines": { - "node": ">= 18.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/gjtorikian/" - } - }, - "node_modules/mem-fs-editor/node_modules/minimatch": { - "version": "7.4.6", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-7.4.6.tgz", - "integrity": "sha512-sBz8G/YjVniEz6lKPNpKxXwazJe4c19fEfV2GDMX6AjFz+MX9uDWIZW8XreVhkFW3fkIdTv/gxWr/Kks5FFAVw==", - "license": "ISC", - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/mem-fs/node_modules/@types/node": { - "version": "15.14.9", - "resolved": "https://registry.npmjs.org/@types/node/-/node-15.14.9.tgz", - "integrity": "sha512-qjd88DrCxupx/kJD5yQgZdcYKZKSIGBVDIBE1/LTGcNm3d2Np/jxojkdePDdfnBHJc5W7vSMpbJ1aB7p/Py69A==", - "license": "MIT" - }, - "node_modules/merge-descriptors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", - "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==", - "license": "MIT" - }, - "node_modules/merge-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", - "license": "MIT" - }, - "node_modules/merge2": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", - "license": "MIT", - "engines": { - "node": ">= 8" - } - }, - "node_modules/methods": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", - "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/micromatch": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.7.tgz", - "integrity": "sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q==", - "license": "MIT", - "dependencies": { - "braces": "^3.0.3", - "picomatch": "^2.3.1" - }, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/mime": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-3.0.0.tgz", - "integrity": "sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==", - "license": "MIT", - "bin": { - "mime": "cli.js" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/mime-db": { - "version": "1.52.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mime-types": { - "version": "2.1.35", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", - "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", - "license": "MIT", - "dependencies": { - "mime-db": "1.52.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/mimic-response": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", - "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "inBundle": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/minimist": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", - "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/minipass": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", - "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", - "license": "ISC", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/minipass-collect": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-1.0.2.tgz", - "integrity": "sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==", - "license": "ISC", - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/minipass-fetch": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-1.4.1.tgz", - "integrity": "sha512-CGH1eblLq26Y15+Azk7ey4xh0J/XfJfrCox5LDJiKqI2Q2iwOLOKrlmIaODiSQS8d18jalF6y2K2ePUm0CmShw==", - "license": "MIT", - "dependencies": { - "minipass": "^3.1.0", - "minipass-sized": "^1.0.3", - "minizlib": "^2.0.0" - }, - "engines": { - "node": ">=8" - }, - "optionalDependencies": { - "encoding": "^0.1.12" - } - }, - "node_modules/minipass-flush": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz", - "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==", - "license": "ISC", - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/minipass-json-stream": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/minipass-json-stream/-/minipass-json-stream-1.0.2.tgz", - "integrity": "sha512-myxeeTm57lYs8pH2nxPzmEEg8DGIgW+9mv6D4JZD2pa81I/OBjeU7PtICXV6c9eRGTA5JMDsuIPUZRCyBMYNhg==", - "license": "MIT", - "dependencies": { - "jsonparse": "^1.3.1", - "minipass": "^3.0.0" - } - }, - "node_modules/minipass-pipeline": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz", - "integrity": "sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==", - "license": "ISC", - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/minipass-sized": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/minipass-sized/-/minipass-sized-1.0.3.tgz", - "integrity": "sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==", - "license": "ISC", - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/minipass/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "license": "ISC" - }, - "node_modules/minizlib": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", - "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", - "license": "MIT", - "dependencies": { - "minipass": "^3.0.0", - "yallist": "^4.0.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/minizlib/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "license": "ISC" - }, - "node_modules/mkdirp": { - "version": "0.5.6", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", - "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", - "license": "MIT", - "dependencies": { - "minimist": "^1.2.6" - }, - "bin": { - "mkdirp": "bin/cmd.js" - } - }, - "node_modules/mkdirp-infer-owner": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/mkdirp-infer-owner/-/mkdirp-infer-owner-2.0.0.tgz", - "integrity": "sha512-sdqtiFt3lkOaYvTXSRIUjkIdPTcxgv5+fgqYE/5qgwdw12cOrAuzzgzvVExIkH/ul1oeHN3bCLOWSG3XOqbKKw==", - "license": "ISC", - "dependencies": { - "chownr": "^2.0.0", - "infer-owner": "^1.0.4", - "mkdirp": "^1.0.3" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/mkdirp-infer-owner/node_modules/mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "license": "MIT", - "bin": { - "mkdirp": "bin/cmd.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "license": "MIT" - }, - "node_modules/multer": { - "version": "1.4.5-lts.1", - "resolved": "https://registry.npmjs.org/multer/-/multer-1.4.5-lts.1.tgz", - "integrity": "sha512-ywPWvcDMeH+z9gQq5qYHCCy+ethsk4goepZ45GLD63fOu0YcNecQxi64nDs3qluZB+murG3/D4dJ7+dGctcCQQ==", - "license": "MIT", - "dependencies": { - "append-field": "^1.0.0", - "busboy": "^1.0.0", - "concat-stream": "^1.5.2", - "mkdirp": "^0.5.4", - "object-assign": "^4.1.1", - "type-is": "^1.6.4", - "xtend": "^4.0.0" - }, - "engines": { - "node": ">= 6.0.0" - } - }, - "node_modules/multimatch": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/multimatch/-/multimatch-5.0.0.tgz", - "integrity": "sha512-ypMKuglUrZUD99Tk2bUQ+xNQj43lPEfAeX2o9cTteAmShXy2VHDJpuwu1o0xqoKCt9jLVAvwyFKdLTPXKAfJyA==", - "license": "MIT", - "dependencies": { - "@types/minimatch": "^3.0.3", - "array-differ": "^3.0.0", - "array-union": "^2.1.0", - "arrify": "^2.0.1", - "minimatch": "^3.0.4" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/mustache": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/mustache/-/mustache-4.2.0.tgz", - "integrity": "sha512-71ippSywq5Yb7/tVYyGbkBggbU8H3u5Rz56fH60jGFgr8uHwxs+aSKeqmluIVzM0m0kB7xQjKS6qPfd0b2ZoqQ==", - "license": "MIT", - "bin": { - "mustache": "bin/mustache" - } - }, - "node_modules/mute-stream": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", - "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", - "license": "ISC" - }, - "node_modules/natural-compare": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", - "dev": true, - "license": "MIT" - }, - "node_modules/negotiator": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", - "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/node-fetch": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", - "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", - "license": "MIT", - "dependencies": { - "whatwg-url": "^5.0.0" - }, - "engines": { - "node": "4.x || >=6.0.0" - }, - "peerDependencies": { - "encoding": "^0.1.0" - }, - "peerDependenciesMeta": { - "encoding": { - "optional": true - } - } - }, - "node_modules/node-gyp": { - "version": "8.4.1", - "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-8.4.1.tgz", - "integrity": "sha512-olTJRgUtAb/hOXG0E93wZDs5YiJlgbXxTwQAFHyNlRsXQnYzUaF2aGgujZbw+hR8aF4ZG/rST57bWMWD16jr9w==", - "license": "MIT", - "dependencies": { - "env-paths": "^2.2.0", - "glob": "^7.1.4", - "graceful-fs": "^4.2.6", - "make-fetch-happen": "^9.1.0", - "nopt": "^5.0.0", - "npmlog": "^6.0.0", - "rimraf": "^3.0.2", - "semver": "^7.3.5", - "tar": "^6.1.2", - "which": "^2.0.2" - }, - "bin": { - "node-gyp": "bin/node-gyp.js" - }, - "engines": { - "node": ">= 10.12.0" - } - }, - "node_modules/node-gyp/node_modules/are-we-there-yet": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-3.0.1.tgz", - "integrity": "sha512-QZW4EDmGwlYur0Yyf/b2uGucHQMa8aFUP7eu9ddR73vvhFyt4V0Vl3QHPcTNJ8l6qYOBdxgXdnBXQrHilfRQBg==", - "deprecated": "This package is no longer supported.", - "license": "ISC", - "dependencies": { - "delegates": "^1.0.0", - "readable-stream": "^3.6.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/node-gyp/node_modules/gauge": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-4.0.4.tgz", - "integrity": "sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg==", - "deprecated": "This package is no longer supported.", - "license": "ISC", - "dependencies": { - "aproba": "^1.0.3 || ^2.0.0", - "color-support": "^1.1.3", - "console-control-strings": "^1.1.0", - "has-unicode": "^2.0.1", - "signal-exit": "^3.0.7", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1", - "wide-align": "^1.1.5" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/node-gyp/node_modules/npmlog": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-6.0.2.tgz", - "integrity": "sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg==", - "deprecated": "This package is no longer supported.", - "license": "ISC", - "dependencies": { - "are-we-there-yet": "^3.0.0", - "console-control-strings": "^1.1.0", - "gauge": "^4.0.3", - "set-blocking": "^2.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/node-gyp/node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "deprecated": "Rimraf versions prior to v4 are no longer supported", - "license": "ISC", - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/node-int64": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", - "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==", - "license": "MIT" - }, - "node_modules/node-notifier": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/node-notifier/-/node-notifier-10.0.1.tgz", - "integrity": "sha512-YX7TSyDukOZ0g+gmzjB6abKu+hTGvO8+8+gIFDsRCU2t8fLV/P2unmt+LGFaIa4y64aX98Qksa97rgz4vMNeLQ==", - "license": "MIT", - "dependencies": { - "growly": "^1.3.0", - "is-wsl": "^2.2.0", - "semver": "^7.3.5", - "shellwords": "^0.1.1", - "uuid": "^8.3.2", - "which": "^2.0.2" - } - }, - "node_modules/node-releases": { - "version": "2.0.18", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.18.tgz", - "integrity": "sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==", - "dev": true, - "license": "MIT" - }, - "node_modules/nopt": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz", - "integrity": "sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==", - "license": "ISC", - "dependencies": { - "abbrev": "1" - }, - "bin": { - "nopt": "bin/nopt.js" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/normalize-package-data": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", - "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", - "license": "BSD-2-Clause", - "dependencies": { - "hosted-git-info": "^2.1.4", - "resolve": "^1.10.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" - } - }, - "node_modules/normalize-package-data/node_modules/hosted-git-info": { - "version": "2.8.9", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", - "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", - "license": "ISC" - }, - "node_modules/normalize-package-data/node_modules/semver": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", - "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", - "license": "ISC", - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/normalize-url": { - "version": "4.5.1", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.1.tgz", - "integrity": "sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/npm-bundled": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-1.1.2.tgz", - "integrity": "sha512-x5DHup0SuyQcmL3s7Rx/YQ8sbw/Hzg0rj48eN0dV7hf5cmQq5PXIeioroH3raV1QC1yh3uTYuMThvEQF3iKgGQ==", - "license": "ISC", - "dependencies": { - "npm-normalize-package-bin": "^1.0.1" - } - }, - "node_modules/npm-install-checks": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/npm-install-checks/-/npm-install-checks-4.0.0.tgz", - "integrity": "sha512-09OmyDkNLYwqKPOnbI8exiOZU2GVVmQp7tgez2BPi5OZC8M82elDAps7sxC4l//uSUtotWqoEIDwjRvWH4qz8w==", - "license": "BSD-2-Clause", - "dependencies": { - "semver": "^7.1.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/npm-normalize-package-bin": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-1.0.1.tgz", - "integrity": "sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA==", - "license": "ISC" - }, - "node_modules/npm-package-arg": { - "version": "8.1.5", - "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-8.1.5.tgz", - "integrity": "sha512-LhgZrg0n0VgvzVdSm1oiZworPbTxYHUJCgtsJW8mGvlDpxTM1vSJc3m5QZeUkhAHIzbz3VCHd/R4osi1L1Tg/Q==", - "license": "ISC", - "dependencies": { - "hosted-git-info": "^4.0.1", - "semver": "^7.3.4", - "validate-npm-package-name": "^3.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/npm-packlist": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-3.0.0.tgz", - "integrity": "sha512-L/cbzmutAwII5glUcf2DBRNY/d0TFd4e/FnaZigJV6JD85RHZXJFGwCndjMWiiViiWSsWt3tiOLpI3ByTnIdFQ==", - "license": "ISC", - "dependencies": { - "glob": "^7.1.6", - "ignore-walk": "^4.0.1", - "npm-bundled": "^1.1.1", - "npm-normalize-package-bin": "^1.0.1" - }, - "bin": { - "npm-packlist": "bin/index.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/npm-pick-manifest": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-6.1.1.tgz", - "integrity": "sha512-dBsdBtORT84S8V8UTad1WlUyKIY9iMsAmqxHbLdeEeBNMLQDlDWWra3wYUx9EBEIiG/YwAy0XyNHDd2goAsfuA==", - "license": "ISC", - "dependencies": { - "npm-install-checks": "^4.0.0", - "npm-normalize-package-bin": "^1.0.1", - "npm-package-arg": "^8.1.2", - "semver": "^7.3.4" - } - }, - "node_modules/npm-registry-fetch": { - "version": "12.0.2", - "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-12.0.2.tgz", - "integrity": "sha512-Df5QT3RaJnXYuOwtXBXS9BWs+tHH2olvkCLh6jcR/b/u3DvPMlp3J0TvvYwplPKxHMOwfg287PYih9QqaVFoKA==", - "license": "ISC", - "dependencies": { - "make-fetch-happen": "^10.0.1", - "minipass": "^3.1.6", - "minipass-fetch": "^1.4.1", - "minipass-json-stream": "^1.0.1", - "minizlib": "^2.1.2", - "npm-package-arg": "^8.1.5" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16" - } - }, - "node_modules/npm-registry-fetch/node_modules/@npmcli/fs": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-2.1.2.tgz", - "integrity": "sha512-yOJKRvohFOaLqipNtwYB9WugyZKhC/DZC4VYPmpaCzDBrA8YpK3qHZ8/HGscMnE4GqbkLNuVcCnxkeQEdGt6LQ==", - "license": "ISC", - "dependencies": { - "@gar/promisify": "^1.1.3", - "semver": "^7.3.5" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/npm-registry-fetch/node_modules/@npmcli/move-file": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-2.0.1.tgz", - "integrity": "sha512-mJd2Z5TjYWq/ttPLLGqArdtnC74J6bOzg4rMDnN+p1xTacZ2yPRCk2y0oSWQtygLR9YVQXgOcONrwtnk3JupxQ==", - "deprecated": "This functionality has been moved to @npmcli/fs", - "license": "MIT", - "dependencies": { - "mkdirp": "^1.0.4", - "rimraf": "^3.0.2" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/npm-registry-fetch/node_modules/@tootallnate/once": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz", - "integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==", - "license": "MIT", - "engines": { - "node": ">= 10" - } - }, - "node_modules/npm-registry-fetch/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/npm-registry-fetch/node_modules/cacache": { - "version": "16.1.3", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-16.1.3.tgz", - "integrity": "sha512-/+Emcj9DAXxX4cwlLmRI9c166RuL3w30zp4R7Joiv2cQTtTtA+jeuCAjH3ZlGnYS3tKENSrKhAzVVP9GVyzeYQ==", - "license": "ISC", - "dependencies": { - "@npmcli/fs": "^2.1.0", - "@npmcli/move-file": "^2.0.0", - "chownr": "^2.0.0", - "fs-minipass": "^2.1.0", - "glob": "^8.0.1", - "infer-owner": "^1.0.4", - "lru-cache": "^7.7.1", - "minipass": "^3.1.6", - "minipass-collect": "^1.0.2", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "mkdirp": "^1.0.4", - "p-map": "^4.0.0", - "promise-inflight": "^1.0.1", - "rimraf": "^3.0.2", - "ssri": "^9.0.0", - "tar": "^6.1.11", - "unique-filename": "^2.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/npm-registry-fetch/node_modules/debug": { - "version": "4.3.6", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.6.tgz", - "integrity": "sha512-O/09Bd4Z1fBrU4VzkhFqVgpPzaGbw6Sm9FEkBT1A/YBXQFGuuSxa1dN2nxgxS34JmKXqYx8CZAwEVoJFImUXIg==", - "license": "MIT", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/npm-registry-fetch/node_modules/glob": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", - "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", - "deprecated": "Glob versions prior to v9 are no longer supported", - "license": "ISC", - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^5.0.1", - "once": "^1.3.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/npm-registry-fetch/node_modules/http-proxy-agent": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz", - "integrity": "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==", - "license": "MIT", - "dependencies": { - "@tootallnate/once": "2", - "agent-base": "6", - "debug": "4" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/npm-registry-fetch/node_modules/lru-cache": { - "version": "7.18.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", - "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", - "license": "ISC", - "engines": { - "node": ">=12" - } - }, - "node_modules/npm-registry-fetch/node_modules/make-fetch-happen": { - "version": "10.2.1", - "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-10.2.1.tgz", - "integrity": "sha512-NgOPbRiaQM10DYXvN3/hhGVI2M5MtITFryzBGxHM5p4wnFxsVCbxkrBrDsk+EZ5OB4jEOT7AjDxtdF+KVEFT7w==", - "license": "ISC", - "dependencies": { - "agentkeepalive": "^4.2.1", - "cacache": "^16.1.0", - "http-cache-semantics": "^4.1.0", - "http-proxy-agent": "^5.0.0", - "https-proxy-agent": "^5.0.0", - "is-lambda": "^1.0.1", - "lru-cache": "^7.7.1", - "minipass": "^3.1.6", - "minipass-collect": "^1.0.2", - "minipass-fetch": "^2.0.3", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "negotiator": "^0.6.3", - "promise-retry": "^2.0.1", - "socks-proxy-agent": "^7.0.0", - "ssri": "^9.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/npm-registry-fetch/node_modules/make-fetch-happen/node_modules/minipass-fetch": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-2.1.2.tgz", - "integrity": "sha512-LT49Zi2/WMROHYoqGgdlQIZh8mLPZmOrN2NdJjMXxYe4nkN6FUyuPuOAOedNJDrx0IRGg9+4guZewtp8hE6TxA==", - "license": "MIT", - "dependencies": { - "minipass": "^3.1.6", - "minipass-sized": "^1.0.3", - "minizlib": "^2.1.2" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - }, - "optionalDependencies": { - "encoding": "^0.1.13" - } - }, - "node_modules/npm-registry-fetch/node_modules/minimatch": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", - "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", - "license": "ISC", - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/npm-registry-fetch/node_modules/mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "license": "MIT", - "bin": { - "mkdirp": "bin/cmd.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/npm-registry-fetch/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "license": "MIT" - }, - "node_modules/npm-registry-fetch/node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "deprecated": "Rimraf versions prior to v4 are no longer supported", - "license": "ISC", - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/npm-registry-fetch/node_modules/rimraf/node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/npm-registry-fetch/node_modules/rimraf/node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "deprecated": "Glob versions prior to v9 are no longer supported", - "license": "ISC", - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/npm-registry-fetch/node_modules/rimraf/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "license": "ISC", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/npm-registry-fetch/node_modules/socks-proxy-agent": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-7.0.0.tgz", - "integrity": "sha512-Fgl0YPZ902wEsAyiQ+idGd1A7rSFx/ayC1CQVMw5P+EQx2V0SgpGtf6OKFhVjPflPUl9YMmEOnmfjCdMUsygww==", - "license": "MIT", - "dependencies": { - "agent-base": "^6.0.2", - "debug": "^4.3.3", - "socks": "^2.6.2" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/npm-registry-fetch/node_modules/ssri": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-9.0.1.tgz", - "integrity": "sha512-o57Wcn66jMQvfHG1FlYbWeZWW/dHZhJXjpIcTfXldXEk5nz5lStPo3mK0OJQfGR3RbZUlbISexbljkJzuEj/8Q==", - "license": "ISC", - "dependencies": { - "minipass": "^3.1.1" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/npm-registry-fetch/node_modules/unique-filename": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-2.0.1.tgz", - "integrity": "sha512-ODWHtkkdx3IAR+veKxFV+VBkUMcN+FaqzUUd7IZzt+0zhDZFPFxhlqwPF3YQvMHx1TD0tdgYl+kuPnJ8E6ql7A==", - "license": "ISC", - "dependencies": { - "unique-slug": "^3.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/npm-registry-fetch/node_modules/unique-slug": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-3.0.0.tgz", - "integrity": "sha512-8EyMynh679x/0gqE9fT9oilG+qEt+ibFyqjuVTsZn1+CMxH+XLlpvr2UZx4nVcCwTpx81nICr2JQFkM+HPLq4w==", - "license": "ISC", - "dependencies": { - "imurmurhash": "^0.1.4" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/npm-run-path": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", - "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", - "license": "MIT", - "dependencies": { - "path-key": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/npmlog": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-5.0.1.tgz", - "integrity": "sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw==", - "deprecated": "This package is no longer supported.", - "license": "ISC", - "dependencies": { - "are-we-there-yet": "^2.0.0", - "console-control-strings": "^1.1.0", - "gauge": "^3.0.0", - "set-blocking": "^2.0.0" - } - }, - "node_modules/oauth-sign": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", - "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", - "license": "Apache-2.0", - "engines": { - "node": "*" - } - }, - "node_modules/object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-inspect": { - "version": "1.13.2", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.2.tgz", - "integrity": "sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==", - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/on-finished": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", - "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", - "license": "MIT", - "dependencies": { - "ee-first": "1.1.1" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", - "inBundle": true, - "license": "ISC", - "dependencies": { - "wrappy": "1" - } - }, - "node_modules/onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", - "license": "MIT", - "dependencies": { - "mimic-fn": "^2.1.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/open": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/open/-/open-10.1.0.tgz", - "integrity": "sha512-mnkeQ1qP5Ue2wd+aivTD3NHd/lZ96Lu0jgf0pwktLPtx6cTZiH7tyeGRRHs0zX0rbrahXPnXlUnbeXyaBBuIaw==", - "license": "MIT", - "dependencies": { - "default-browser": "^5.2.1", - "define-lazy-prop": "^3.0.0", - "is-inside-container": "^1.0.0", - "is-wsl": "^3.1.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/open/node_modules/is-wsl": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-3.1.0.tgz", - "integrity": "sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw==", - "license": "MIT", - "dependencies": { - "is-inside-container": "^1.0.0" - }, - "engines": { - "node": ">=16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/opts": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/opts/-/opts-2.0.2.tgz", - "integrity": "sha512-k41FwbcLnlgnFh69f4qdUfvDQ+5vaSDnVPFI/y5XuhKRq97EnVVneO9F1ESVCdiVu4fCS2L8usX3mU331hB7pg==", - "license": "BSD-2-Clause" - }, - "node_modules/ora": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/ora/-/ora-8.0.1.tgz", - "integrity": "sha512-ANIvzobt1rls2BDny5fWZ3ZVKyD6nscLvfFRpQgfWsythlcsVUC9kL0zq6j2Z5z9wwp1kd7wpsD/T9qNPVLCaQ==", - "license": "MIT", - "dependencies": { - "chalk": "^5.3.0", - "cli-cursor": "^4.0.0", - "cli-spinners": "^2.9.2", - "is-interactive": "^2.0.0", - "is-unicode-supported": "^2.0.0", - "log-symbols": "^6.0.0", - "stdin-discarder": "^0.2.1", - "string-width": "^7.0.0", - "strip-ansi": "^7.1.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/ora/node_modules/ansi-regex": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" - } - }, - "node_modules/ora/node_modules/chalk": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz", - "integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==", - "license": "MIT", - "engines": { - "node": "^12.17.0 || ^14.13 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/ora/node_modules/cli-cursor": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-4.0.0.tgz", - "integrity": "sha512-VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg==", - "license": "MIT", - "dependencies": { - "restore-cursor": "^4.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/ora/node_modules/emoji-regex": { - "version": "10.3.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.3.0.tgz", - "integrity": "sha512-QpLs9D9v9kArv4lfDEgg1X/gN5XLnf/A6l9cs8SPZLRZR3ZkY9+kwIQTxm+fsSej5UMYGE8fdoaZVIBlqG0XTw==", - "license": "MIT" - }, - "node_modules/ora/node_modules/restore-cursor": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-4.0.0.tgz", - "integrity": "sha512-I9fPXU9geO9bHOt9pHHOhOkYerIMsmVaWB0rA2AI9ERh/+x/i7MV5HKBNrg+ljO5eoPVgCcnFuRjJ9uH6I/3eg==", - "license": "MIT", - "dependencies": { - "onetime": "^5.1.0", - "signal-exit": "^3.0.2" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/ora/node_modules/string-width": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-7.2.0.tgz", - "integrity": "sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==", - "license": "MIT", - "dependencies": { - "emoji-regex": "^10.3.0", - "get-east-asian-width": "^1.0.0", - "strip-ansi": "^7.1.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/ora/node_modules/strip-ansi": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", - "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", - "license": "MIT", - "dependencies": { - "ansi-regex": "^6.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" - } - }, - "node_modules/os-tmpdir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/p-cancelable": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz", - "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/p-finally": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", - "integrity": "sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "license": "MIT", - "dependencies": { - "yocto-queue": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "license": "MIT", - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/p-locate/node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "license": "MIT", - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-map": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", - "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", - "license": "MIT", - "dependencies": { - "aggregate-error": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-queue": { - "version": "6.6.2", - "resolved": "https://registry.npmjs.org/p-queue/-/p-queue-6.6.2.tgz", - "integrity": "sha512-RwFpb72c/BhQLEXIZ5K2e+AhgNVmIejGlTgiB9MzZ0e93GRvqZ7uSi0dvRF7/XIXDeNkra2fNHBxTyPDGySpjQ==", - "license": "MIT", - "dependencies": { - "eventemitter3": "^4.0.4", - "p-timeout": "^3.2.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-timeout": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-3.2.0.tgz", - "integrity": "sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==", - "license": "MIT", - "dependencies": { - "p-finally": "^1.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/p-transform": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-transform/-/p-transform-1.3.0.tgz", - "integrity": "sha512-UJKdSzgd3KOnXXAtqN5+/eeHcvTn1hBkesEmElVgvO/NAYcxAvmjzIGmnNd3Tb/gRAvMBdNRFD4qAWdHxY6QXg==", - "license": "Apache-2.0", - "dependencies": { - "debug": "^4.3.2", - "p-queue": "^6.6.2" - }, - "engines": { - "node": ">=12.10.0" - } - }, - "node_modules/p-transform/node_modules/debug": { - "version": "4.3.6", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.6.tgz", - "integrity": "sha512-O/09Bd4Z1fBrU4VzkhFqVgpPzaGbw6Sm9FEkBT1A/YBXQFGuuSxa1dN2nxgxS34JmKXqYx8CZAwEVoJFImUXIg==", - "license": "MIT", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/p-transform/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "license": "MIT" - }, - "node_modules/p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/package-json": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/package-json/-/package-json-6.5.0.tgz", - "integrity": "sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ==", - "license": "MIT", - "dependencies": { - "got": "^9.6.0", - "registry-auth-token": "^4.0.0", - "registry-url": "^5.0.0", - "semver": "^6.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/package-json-from-dist": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.0.tgz", - "integrity": "sha512-dATvCeZN/8wQsGywez1mzHtTlP22H8OEfPrVMLNr4/eGa+ijtLn/6M5f0dY8UKNrC2O9UCU6SSoG3qRKnt7STw==", - "license": "BlueOak-1.0.0" - }, - "node_modules/package-json/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/pacote": { - "version": "12.0.3", - "resolved": "https://registry.npmjs.org/pacote/-/pacote-12.0.3.tgz", - "integrity": "sha512-CdYEl03JDrRO3x18uHjBYA9TyoW8gy+ThVcypcDkxPtKlw76e4ejhYB6i9lJ+/cebbjpqPW/CijjqxwDTts8Ow==", - "license": "ISC", - "dependencies": { - "@npmcli/git": "^2.1.0", - "@npmcli/installed-package-contents": "^1.0.6", - "@npmcli/promise-spawn": "^1.2.0", - "@npmcli/run-script": "^2.0.0", - "cacache": "^15.0.5", - "chownr": "^2.0.0", - "fs-minipass": "^2.1.0", - "infer-owner": "^1.0.4", - "minipass": "^3.1.3", - "mkdirp": "^1.0.3", - "npm-package-arg": "^8.0.1", - "npm-packlist": "^3.0.0", - "npm-pick-manifest": "^6.0.0", - "npm-registry-fetch": "^12.0.0", - "promise-retry": "^2.0.1", - "read-package-json-fast": "^2.0.1", - "rimraf": "^3.0.2", - "ssri": "^8.0.1", - "tar": "^6.1.0" - }, - "bin": { - "pacote": "lib/bin.js" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16" - } - }, - "node_modules/pacote/node_modules/mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "license": "MIT", - "bin": { - "mkdirp": "bin/cmd.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/pacote/node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "deprecated": "Rimraf versions prior to v4 are no longer supported", - "license": "ISC", - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/parse-conflict-json": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/parse-conflict-json/-/parse-conflict-json-2.0.2.tgz", - "integrity": "sha512-jDbRGb00TAPFsKWCpZZOT93SxVP9nONOSgES3AevqRq/CHvavEBvKAjxX9p5Y5F0RZLxH9Ufd9+RwtCsa+lFDA==", - "license": "ISC", - "dependencies": { - "json-parse-even-better-errors": "^2.3.1", - "just-diff": "^5.0.1", - "just-diff-apply": "^5.2.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/parse-json": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", - "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.0.0", - "error-ex": "^1.3.1", - "json-parse-even-better-errors": "^2.3.0", - "lines-and-columns": "^1.1.6" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/parseurl": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", - "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", - "inBundle": true, - "license": "MIT" - }, - "node_modules/path-scurry": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", - "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", - "license": "BlueOak-1.0.0", - "dependencies": { - "lru-cache": "^10.2.0", - "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" - }, - "engines": { - "node": ">=16 || 14 >=14.18" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/path-scurry/node_modules/lru-cache": { - "version": "10.4.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", - "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", - "license": "ISC" - }, - "node_modules/path-scurry/node_modules/minipass": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", - "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", - "license": "ISC", - "engines": { - "node": ">=16 || 14 >=14.17" - } - }, - "node_modules/path-to-regexp": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", - "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==", - "license": "MIT" - }, - "node_modules/path-type": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/performance-now": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", - "integrity": "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==", - "license": "MIT" - }, - "node_modules/picocolors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.1.tgz", - "integrity": "sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==", - "license": "ISC" - }, - "node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "license": "MIT", - "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/pirates": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz", - "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 6" - } - }, - "node_modules/pkg-dir": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", - "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", - "license": "MIT", - "dependencies": { - "find-up": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/preferred-pm": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/preferred-pm/-/preferred-pm-3.1.4.tgz", - "integrity": "sha512-lEHd+yEm22jXdCphDrkvIJQU66EuLojPPtvZkpKIkiD+l0DMThF/niqZKJSoU8Vl7iuvtmzyMhir9LdVy5WMnA==", - "license": "MIT", - "dependencies": { - "find-up": "^5.0.0", - "find-yarn-workspace-root2": "1.2.16", - "path-exists": "^4.0.0", - "which-pm": "^2.2.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/preferred-pm/node_modules/find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", - "license": "MIT", - "dependencies": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/preferred-pm/node_modules/locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", - "license": "MIT", - "dependencies": { - "p-locate": "^5.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/preferred-pm/node_modules/p-locate": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", - "license": "MIT", - "dependencies": { - "p-limit": "^3.0.2" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/prepend-http": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", - "integrity": "sha512-ravE6m9Atw9Z/jjttRUZ+clIXogdghyZAuWJ3qEzjT+jI/dL1ifAqhZeC5VHzQp1MSt1+jxKkFNemj/iO7tVUA==", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/pretty-bytes": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.6.0.tgz", - "integrity": "sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==", - "license": "MIT", - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/pretty-format": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", - "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/schemas": "^29.6.3", - "ansi-styles": "^5.0.0", - "react-is": "^18.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/pretty-format/node_modules/ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/proc-log": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-1.0.0.tgz", - "integrity": "sha512-aCk8AO51s+4JyuYGg3Q/a6gnrlDO09NpVWePtjp7xwphcoQ04x5WAfCyugcsbLooWcMJ87CLkD4+604IckEdhg==", - "license": "ISC" - }, - "node_modules/process": { - "version": "0.11.10", - "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", - "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==", - "license": "MIT", - "engines": { - "node": ">= 0.6.0" - } - }, - "node_modules/process-nextick-args": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", - "license": "MIT" - }, - "node_modules/promise-all-reject-late": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/promise-all-reject-late/-/promise-all-reject-late-1.0.1.tgz", - "integrity": "sha512-vuf0Lf0lOxyQREH7GDIOUMLS7kz+gs8i6B+Yi8dC68a2sychGrHTJYghMBD6k7eUcH0H5P73EckCA48xijWqXw==", - "license": "ISC", - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/promise-call-limit": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/promise-call-limit/-/promise-call-limit-1.0.2.tgz", - "integrity": "sha512-1vTUnfI2hzui8AEIixbdAJlFY4LFDXqQswy/2eOlThAscXCY4It8FdVuI0fMJGAB2aWGbdQf/gv0skKYXmdrHA==", - "license": "ISC", - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/promise-inflight": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", - "integrity": "sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==", - "license": "ISC" - }, - "node_modules/promise-retry": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-2.0.1.tgz", - "integrity": "sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==", - "license": "MIT", - "dependencies": { - "err-code": "^2.0.2", - "retry": "^0.12.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/prompts": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", - "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", - "license": "MIT", - "dependencies": { - "kleur": "^3.0.3", - "sisteransi": "^1.0.5" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/proxy-addr": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", - "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", - "license": "MIT", - "dependencies": { - "forwarded": "0.2.0", - "ipaddr.js": "1.9.1" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/psl": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz", - "integrity": "sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==", - "license": "MIT" - }, - "node_modules/pump": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", - "license": "MIT", - "dependencies": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "node_modules/punycode": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", - "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/pupa": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/pupa/-/pupa-2.1.1.tgz", - "integrity": "sha512-l1jNAspIBSFqbT+y+5FosojNpVpF94nlI+wDUpqP9enwOTfHx9f0gh5nB96vl+6yTpsJsypeNrwfzPrKuHB41A==", - "license": "MIT", - "dependencies": { - "escape-goat": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/pure-rand": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/pure-rand/-/pure-rand-6.1.0.tgz", - "integrity": "sha512-bVWawvoZoBYpp6yIoQtQXHZjmz35RSVHnUOTefl8Vcjr8snTPY1wnpSPMWekcFwbxI6gtmT7rSYPFvz71ldiOA==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://github.com/sponsors/dubzzz" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/fast-check" - } - ], - "license": "MIT" - }, - "node_modules/qs": { - "version": "6.11.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", - "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", - "license": "BSD-3-Clause", - "dependencies": { - "side-channel": "^1.0.4" - }, - "engines": { - "node": ">=0.6" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/queue-microtask": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT" - }, - "node_modules/range-parser": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", - "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/raw-body": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz", - "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==", - "license": "MIT", - "dependencies": { - "bytes": "3.1.2", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/rc": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", - "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", - "license": "(BSD-2-Clause OR MIT OR Apache-2.0)", - "dependencies": { - "deep-extend": "^0.6.0", - "ini": "~1.3.0", - "minimist": "^1.2.0", - "strip-json-comments": "~2.0.1" - }, - "bin": { - "rc": "cli.js" - } - }, - "node_modules/rc/node_modules/ini": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", - "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", - "license": "ISC" - }, - "node_modules/rc/node_modules/strip-json-comments": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==", + "node_modules/mimic-function": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/mimic-function/-/mimic-function-5.0.1.tgz", + "integrity": "sha512-VP79XUPxV2CigYP3jWwAUFSku2aKqBH7uTAapFWCBqutsbmDo96KY5o8uh6U+/YSIn5OxJnXp73beVkpqMIGhA==", "license": "MIT", "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/react-is": { - "version": "18.3.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", - "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", - "dev": true, - "license": "MIT" - }, - "node_modules/read-cmd-shim": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/read-cmd-shim/-/read-cmd-shim-3.0.1.tgz", - "integrity": "sha512-kEmDUoYf/CDy8yZbLTmhB1X9kkjf9Q80PCNsDMb7ufrGd6zZSQA1+UyjrO+pZm5K/S4OXCWJeiIt1JA8kAsa6g==", - "license": "ISC", - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/read-package-json": { - "version": "6.0.4", - "resolved": "https://registry.npmjs.org/read-package-json/-/read-package-json-6.0.4.tgz", - "integrity": "sha512-AEtWXYfopBj2z5N5PbkAOeNHRPUg5q+Nen7QLxV8M2zJq1ym6/lCz3fYNTCXe19puu2d06jfHhrP7v/S2PtMMw==", - "deprecated": "This package is no longer supported. Please use @npmcli/package-json instead.", - "license": "ISC", - "dependencies": { - "glob": "^10.2.2", - "json-parse-even-better-errors": "^3.0.0", - "normalize-package-data": "^5.0.0", - "npm-normalize-package-bin": "^3.0.0" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/read-package-json-fast": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/read-package-json-fast/-/read-package-json-fast-2.0.3.tgz", - "integrity": "sha512-W/BKtbL+dUjTuRL2vziuYhp76s5HZ9qQhd/dKfWIZveD0O40453QNyZhC0e63lqZrAQ4jiOapVoeJ7JrszenQQ==", - "license": "ISC", - "dependencies": { - "json-parse-even-better-errors": "^2.3.0", - "npm-normalize-package-bin": "^1.0.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/read-package-json/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/read-package-json/node_modules/glob": { - "version": "10.4.5", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", - "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", - "license": "ISC", - "dependencies": { - "foreground-child": "^3.1.0", - "jackspeak": "^3.1.2", - "minimatch": "^9.0.4", - "minipass": "^7.1.2", - "package-json-from-dist": "^1.0.0", - "path-scurry": "^1.11.1" - }, - "bin": { - "glob": "dist/esm/bin.mjs" + "node": ">=18" }, "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/read-package-json/node_modules/hosted-git-info": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-6.1.1.tgz", - "integrity": "sha512-r0EI+HBMcXadMrugk0GCQ+6BQV39PiWAZVfq7oIckeGiN7sjRGyQxPdft3nQekFTCQbYxLBH+/axZMeH8UX6+w==", - "license": "ISC", - "dependencies": { - "lru-cache": "^7.5.1" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/read-package-json/node_modules/json-parse-even-better-errors": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-3.0.2.tgz", - "integrity": "sha512-fi0NG4bPjCHunUJffmLd0gxssIgkNmArMvis4iNah6Owg1MCJjWhEcDLmsK6iGkJq3tHwbDkTlce70/tmXN4cQ==", - "license": "MIT", - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/read-package-json/node_modules/lru-cache": { - "version": "7.18.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", - "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", - "license": "ISC", - "engines": { - "node": ">=12" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/read-package-json/node_modules/minimatch": { + "node_modules/minimatch": { "version": "9.0.5", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", @@ -9597,7 +6469,16 @@ "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/read-package-json/node_modules/minipass": { + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/minipass": { "version": "7.1.2", "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", @@ -9606,392 +6487,226 @@ "node": ">=16 || 14 >=14.17" } }, - "node_modules/read-package-json/node_modules/normalize-package-data": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-5.0.0.tgz", - "integrity": "sha512-h9iPVIfrVZ9wVYQnxFgtw1ugSvGEMOlyPWWtm8BMJhnwyEL/FLbYbTY3V3PpjI/BUK67n9PEWDu6eHzu1fB15Q==", - "license": "BSD-2-Clause", - "dependencies": { - "hosted-git-info": "^6.0.0", - "is-core-module": "^2.8.1", - "semver": "^7.3.5", - "validate-npm-package-license": "^3.0.4" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/read-package-json/node_modules/npm-normalize-package-bin": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-3.0.1.tgz", - "integrity": "sha512-dMxCf+zZ+3zeQZXKxmyuCKlIDPGuv8EF940xbkC4kQVDTtqoh6rJFO+JTKSA6/Rwi0getWmtuy4Itup0AMcaDQ==", + "node_modules/minipass-collect": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-2.0.1.tgz", + "integrity": "sha512-D7V8PO9oaz7PWGLbCACuI1qEOsq7UKfLotx/C0Aet43fCUB/wfQ7DYeq2oR/svFJGYDHPr38SHATeaj/ZoKHKw==", "license": "ISC", - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/read-pkg": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", - "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", - "license": "MIT", "dependencies": { - "@types/normalize-package-data": "^2.4.0", - "normalize-package-data": "^2.5.0", - "parse-json": "^5.0.0", - "type-fest": "^0.6.0" + "minipass": "^7.0.3" }, "engines": { - "node": ">=8" + "node": ">=16 || 14 >=14.17" } }, - "node_modules/read-pkg-up": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", - "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", + "node_modules/minipass-fetch": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-5.0.0.tgz", + "integrity": "sha512-fiCdUALipqgPWrOVTz9fw0XhcazULXOSU6ie40DDbX1F49p1dBrSRBuswndTx1x3vEb/g0FT7vC4c4C2u/mh3A==", "license": "MIT", "dependencies": { - "find-up": "^4.1.0", - "read-pkg": "^5.2.0", - "type-fest": "^0.8.1" - }, - "engines": { - "node": ">=8" + "minipass": "^7.0.3", + "minipass-sized": "^1.0.3", + "minizlib": "^3.0.1" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/read-pkg-up/node_modules/type-fest": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", - "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", - "license": "(MIT OR CC0-1.0)", - "engines": { - "node": ">=8" - } - }, - "node_modules/read-pkg/node_modules/type-fest": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", - "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", - "license": "(MIT OR CC0-1.0)", "engines": { - "node": ">=8" - } - }, - "node_modules/readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "license": "MIT", - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" + "node": "^20.17.0 || >=22.9.0" }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/readdir-glob": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/readdir-glob/-/readdir-glob-1.1.3.tgz", - "integrity": "sha512-v05I2k7xN8zXvPD9N+z/uhXPaj0sUFCe2rcWZIpBsqxfP7xXFQ0tipAd/wjj1YxWyWtUS5IDJpOG82JKt2EAVA==", - "license": "Apache-2.0", - "dependencies": { - "minimatch": "^5.1.0" - } - }, - "node_modules/readdir-glob/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0" + "optionalDependencies": { + "encoding": "^0.1.13" } }, - "node_modules/readdir-glob/node_modules/minimatch": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", - "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "node_modules/minipass-flush": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz", + "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==", "license": "ISC", "dependencies": { - "brace-expansion": "^2.0.1" + "minipass": "^3.0.0" }, "engines": { - "node": ">=10" + "node": ">= 8" } }, - "node_modules/readdir-scoped-modules": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/readdir-scoped-modules/-/readdir-scoped-modules-1.1.0.tgz", - "integrity": "sha512-asaikDeqAQg7JifRsZn1NJZXo9E+VwlyCfbkZhwyISinqk5zNS6266HS5kah6P0SaQKGF6SkNnZVHUzHFYxYDw==", - "deprecated": "This functionality has been moved to @npmcli/fs", + "node_modules/minipass-flush/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", "license": "ISC", "dependencies": { - "debuglog": "^1.0.1", - "dezalgo": "^1.0.0", - "graceful-fs": "^4.1.2", - "once": "^1.3.0" - } - }, - "node_modules/readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "license": "MIT", - "dependencies": { - "picomatch": "^2.2.1" + "yallist": "^4.0.0" }, "engines": { - "node": ">=8.10.0" + "node": ">=8" } }, - "node_modules/rechoir": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", - "integrity": "sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==", - "inBundle": true, - "dependencies": { - "resolve": "^1.1.6" - }, - "engines": { - "node": ">= 0.10" - } + "node_modules/minipass-flush/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "license": "ISC" }, - "node_modules/registry-auth-token": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-4.2.2.tgz", - "integrity": "sha512-PC5ZysNb42zpFME6D/XlIgtNGdTl8bBOCw90xQLVMpzuuubJKYDWFAEuUNc+Cn8Z8724tg2SDhDRrkVEsqfDMg==", - "license": "MIT", + "node_modules/minipass-pipeline": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz", + "integrity": "sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==", + "license": "ISC", "dependencies": { - "rc": "1.2.8" + "minipass": "^3.0.0" }, "engines": { - "node": ">=6.0.0" + "node": ">=8" } }, - "node_modules/registry-url": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-5.1.0.tgz", - "integrity": "sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw==", - "license": "MIT", + "node_modules/minipass-pipeline/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "license": "ISC", "dependencies": { - "rc": "^1.2.8" + "yallist": "^4.0.0" }, "engines": { "node": ">=8" } }, - "node_modules/remove-trailing-separator": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", - "integrity": "sha512-/hS+Y0u3aOfIETiaiirUFwDBDzmXPvO+jAfKTitUngIPzdKc6Z0LoFjM/CK5PL4C+eKwHohlHAb6H0VFfmmUsw==", + "node_modules/minipass-pipeline/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", "license": "ISC" }, - "node_modules/replace-ext": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-1.0.1.tgz", - "integrity": "sha512-yD5BHCe7quCgBph4rMQ+0KkIRKwWCrHDOX1p1Gp6HwjPM5kVoCdKGNhN7ydqqsX6lJEnQDKZ/tFMiEdQ1dvPEw==", - "license": "MIT", - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/request": { - "version": "2.88.2", - "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", - "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", - "deprecated": "request has been deprecated, see https://github.com/request/request/issues/3142", - "license": "Apache-2.0", - "dependencies": { - "aws-sign2": "~0.7.0", - "aws4": "^1.8.0", - "caseless": "~0.12.0", - "combined-stream": "~1.0.6", - "extend": "~3.0.2", - "forever-agent": "~0.6.1", - "form-data": "~2.3.2", - "har-validator": "~5.1.3", - "http-signature": "~1.2.0", - "is-typedarray": "~1.0.0", - "isstream": "~0.1.2", - "json-stringify-safe": "~5.0.1", - "mime-types": "~2.1.19", - "oauth-sign": "~0.9.0", - "performance-now": "^2.1.0", - "qs": "~6.5.2", - "safe-buffer": "^5.1.2", - "tough-cookie": "~2.5.0", - "tunnel-agent": "^0.6.0", - "uuid": "^3.3.2" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/request-promise": { - "version": "4.2.6", - "resolved": "https://registry.npmjs.org/request-promise/-/request-promise-4.2.6.tgz", - "integrity": "sha512-HCHI3DJJUakkOr8fNoCc73E5nU5bqITjOYFMDrKHYOXWXrgD/SBaC7LjwuPymUprRyuF06UK7hd/lMHkmUXglQ==", - "deprecated": "request-promise has been deprecated because it extends the now deprecated request package, see https://github.com/request/request/issues/3142", + "node_modules/minipass-sized": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/minipass-sized/-/minipass-sized-1.0.3.tgz", + "integrity": "sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==", "license": "ISC", "dependencies": { - "bluebird": "^3.5.0", - "request-promise-core": "1.1.4", - "stealthy-require": "^1.1.1", - "tough-cookie": "^2.3.3" + "minipass": "^3.0.0" }, "engines": { - "node": ">=0.10.0" - }, - "peerDependencies": { - "request": "^2.34" + "node": ">=8" } }, - "node_modules/request-promise-core": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/request-promise-core/-/request-promise-core-1.1.4.tgz", - "integrity": "sha512-TTbAfBBRdWD7aNNOoVOBH4pN/KigV6LyapYNNlAPA8JwbovRti1E88m3sYAwsLi5ryhPKsE9APwnjFTgdUjTpw==", + "node_modules/minipass-sized/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", "license": "ISC", "dependencies": { - "lodash": "^4.17.19" - }, - "engines": { - "node": ">=0.10.0" + "yallist": "^4.0.0" }, - "peerDependencies": { - "request": "^2.34" - } - }, - "node_modules/request/node_modules/qs": { - "version": "6.5.3", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.3.tgz", - "integrity": "sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==", - "license": "BSD-3-Clause", "engines": { - "node": ">=0.6" + "node": ">=8" } }, - "node_modules/request/node_modules/uuid": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", - "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", - "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.", - "license": "MIT", - "bin": { - "uuid": "bin/uuid" - } + "node_modules/minipass-sized/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "license": "ISC" }, - "node_modules/require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", - "dev": true, + "node_modules/minizlib": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-3.1.0.tgz", + "integrity": "sha512-KZxYo1BUkWD2TVFLr0MQoM8vUUigWD3LlD83a/75BqC+4qE0Hb1Vo5v1FgcfaNXvfXzr+5EhQ6ing/CaBijTlw==", "license": "MIT", + "dependencies": { + "minipass": "^7.1.2" + }, "engines": { - "node": ">=0.10.0" + "node": ">= 18" } }, - "node_modules/resolve": { - "version": "1.22.8", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", - "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", - "inBundle": true, + "node_modules/mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", "license": "MIT", "dependencies": { - "is-core-module": "^2.13.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" + "minimist": "^1.2.6" }, "bin": { - "resolve": "bin/resolve" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "mkdirp": "bin/cmd.js" } }, - "node_modules/resolve-cwd": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", - "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", - "dev": true, + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "license": "MIT" + }, + "node_modules/multer": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/multer/-/multer-2.0.2.tgz", + "integrity": "sha512-u7f2xaZ/UG8oLXHvtF/oWTRvT44p9ecwBBqTwgJVq0+4BW1g8OW01TyMEGWBHbyMOYVHXslaut7qEQ1meATXgw==", "license": "MIT", "dependencies": { - "resolve-from": "^5.0.0" + "append-field": "^1.0.0", + "busboy": "^1.6.0", + "concat-stream": "^2.0.0", + "mkdirp": "^0.5.6", + "object-assign": "^4.1.1", + "type-is": "^1.6.18", + "xtend": "^4.0.2" }, "engines": { - "node": ">=8" + "node": ">= 10.16.0" } }, - "node_modules/resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", - "dev": true, + "node_modules/multer/node_modules/media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", "license": "MIT", "engines": { - "node": ">=8" + "node": ">= 0.6" } }, - "node_modules/resolve.exports": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-2.0.2.tgz", - "integrity": "sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg==", - "dev": true, + "node_modules/multer/node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", "license": "MIT", "engines": { - "node": ">=10" - } - }, - "node_modules/responselike": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz", - "integrity": "sha512-/Fpe5guzJk1gPqdJLJR5u7eG/gNY4nImjbRDaVWVMRhne55TCmj2i9Q+54PBRfatRC8v/rIiv9BN0pMd9OV5EQ==", - "license": "MIT", - "dependencies": { - "lowercase-keys": "^1.0.0" + "node": ">= 0.6" } }, - "node_modules/restore-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", - "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", + "node_modules/multer/node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", "license": "MIT", "dependencies": { - "onetime": "^5.1.0", - "signal-exit": "^3.0.2" + "mime-db": "1.52.0" }, "engines": { - "node": ">=8" - } - }, - "node_modules/retry": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", - "integrity": "sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==", - "license": "MIT", - "engines": { - "node": ">= 4" + "node": ">= 0.6" } }, - "node_modules/reusify": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "node_modules/multer/node_modules/type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", "license": "MIT", + "dependencies": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + }, "engines": { - "iojs": ">=1.0.0", - "node": ">=0.10.0" + "node": ">= 0.6" } }, - "node_modules/run-applescript": { + "node_modules/multimatch": { "version": "7.0.0", - "resolved": "https://registry.npmjs.org/run-applescript/-/run-applescript-7.0.0.tgz", - "integrity": "sha512-9by4Ij99JUr/MCFBUkDKLWK3G9HVXmabKz9U5MlIAIuvuzkiOicRYs8XJLxX+xahD+mLiiCYDqF9dKAgtzKP1A==", + "resolved": "https://registry.npmjs.org/multimatch/-/multimatch-7.0.0.tgz", + "integrity": "sha512-SYU3HBAdF4psHEL/+jXDKHO95/m5P2RvboHT2Y0WtTttvJLP4H/2WS9WlQPFvF6C8d6SpLw8vjCnQOnVIVOSJQ==", "license": "MIT", + "dependencies": { + "array-differ": "^4.0.0", + "array-union": "^3.0.1", + "minimatch": "^9.0.3" + }, "engines": { "node": ">=18" }, @@ -9999,805 +6714,610 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/run-async": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", - "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==", - "license": "MIT", - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/run-parallel": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", - "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], + "node_modules/mustache": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/mustache/-/mustache-4.2.0.tgz", + "integrity": "sha512-71ippSywq5Yb7/tVYyGbkBggbU8H3u5Rz56fH60jGFgr8uHwxs+aSKeqmluIVzM0m0kB7xQjKS6qPfd0b2ZoqQ==", "license": "MIT", - "dependencies": { - "queue-microtask": "^1.2.2" + "bin": { + "mustache": "bin/mustache" } }, - "node_modules/rxjs": { - "version": "7.8.1", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", - "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==", - "license": "Apache-2.0", - "dependencies": { - "tslib": "^2.1.0" + "node_modules/mute-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-3.0.0.tgz", + "integrity": "sha512-dkEJPVvun4FryqBmZ5KhDo0K9iDXAwn08tMLDinNdRBNPcYEDiWYysLcc6k3mjTMlbP9KyylvRpd4wFtwrT9rw==", + "license": "ISC", + "engines": { + "node": "^20.17.0 || >=22.9.0" } }, - "node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "node_modules/nanoid": { + "version": "3.3.11", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz", + "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==", + "dev": true, "funding": [ { "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" + "url": "https://github.com/sponsors/ai" } ], - "license": "MIT" - }, - "node_modules/safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "license": "MIT" - }, - "node_modules/scoped-regex": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/scoped-regex/-/scoped-regex-2.1.0.tgz", - "integrity": "sha512-g3WxHrqSWCZHGHlSrF51VXFdjImhwvH8ZO/pryFH56Qi0cDsZfylQa/t0jCzVQFNbNvM00HfHjkDPEuarKDSWQ==", "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/semver": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", - "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/semver-diff": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-3.1.1.tgz", - "integrity": "sha512-GX0Ix/CJcHyB8c4ykpHGIAvLyOwOobtM/8d+TQkAd81/bEjgPHrfba41Vpesr7jX/t8Uh+R3EX9eAS5be+jQYg==", - "license": "MIT", - "dependencies": { - "semver": "^6.3.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/semver-diff/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "license": "ISC", "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/send": { - "version": "0.18.0", - "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", - "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", - "license": "MIT", - "dependencies": { - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "fresh": "0.5.2", - "http-errors": "2.0.0", - "mime": "1.6.0", - "ms": "2.1.3", - "on-finished": "2.4.1", - "range-parser": "~1.2.1", - "statuses": "2.0.1" + "nanoid": "bin/nanoid.cjs" }, "engines": { - "node": ">= 0.8.0" + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" } }, - "node_modules/send/node_modules/mime": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "node_modules/negotiator": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-1.0.0.tgz", + "integrity": "sha512-8Ofs/AUQh8MaEcrlq5xOX0CQ9ypTF5dl78mjlMNfOK08fzpgTHQRQPBxcPlEtIw0yRpws+Zo/3r+5WRby7u3Gg==", "license": "MIT", - "bin": { - "mime": "cli.js" - }, "engines": { - "node": ">=4" + "node": ">= 0.6" } }, - "node_modules/send/node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "license": "MIT" - }, - "node_modules/serve-static": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", - "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", + "node_modules/node-gyp": { + "version": "12.1.0", + "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-12.1.0.tgz", + "integrity": "sha512-W+RYA8jBnhSr2vrTtlPYPc1K+CSjGpVDRZxcqJcERZ8ND3A1ThWPHRwctTx3qC3oW99jt726jhdz3Y6ky87J4g==", "license": "MIT", "dependencies": { - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "parseurl": "~1.3.3", - "send": "0.18.0" + "env-paths": "^2.2.0", + "exponential-backoff": "^3.1.1", + "graceful-fs": "^4.2.6", + "make-fetch-happen": "^15.0.0", + "nopt": "^9.0.0", + "proc-log": "^6.0.0", + "semver": "^7.3.5", + "tar": "^7.5.2", + "tinyglobby": "^0.2.12", + "which": "^6.0.0" }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==", - "license": "ISC" - }, - "node_modules/set-function-length": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", - "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", - "license": "MIT", - "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" + "bin": { + "node-gyp": "bin/node-gyp.js" }, "engines": { - "node": ">= 0.4" + "node": "^20.17.0 || >=22.9.0" } }, - "node_modules/setprototypeof": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", - "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", - "license": "ISC" - }, - "node_modules/shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "node_modules/node-gyp/node_modules/env-paths": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", + "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", "license": "MIT", - "dependencies": { - "shebang-regex": "^3.0.0" - }, "engines": { - "node": ">=8" + "node": ">=6" } }, - "node_modules/shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "license": "MIT", + "node_modules/node-gyp/node_modules/isexe": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-3.1.1.tgz", + "integrity": "sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==", + "license": "ISC", "engines": { - "node": ">=8" + "node": ">=16" } }, - "node_modules/shelljs": { - "version": "0.8.5", - "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.5.tgz", - "integrity": "sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow==", - "inBundle": true, - "license": "BSD-3-Clause", + "node_modules/node-gyp/node_modules/which": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/which/-/which-6.0.0.tgz", + "integrity": "sha512-f+gEpIKMR9faW/JgAgPK1D7mekkFoqbmiwvNzuhsHetni20QSgzg9Vhn0g2JSJkkfehQnqdUAx7/e15qS1lPxg==", + "license": "ISC", "dependencies": { - "glob": "^7.0.0", - "interpret": "^1.0.0", - "rechoir": "^0.6.2" + "isexe": "^3.1.1" }, "bin": { - "shjs": "bin/shjs" + "node-which": "bin/which.js" }, "engines": { - "node": ">=4" + "node": "^20.17.0 || >=22.9.0" } }, - "node_modules/shellwords": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/shellwords/-/shellwords-0.1.1.tgz", - "integrity": "sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww==", + "node_modules/node-int64": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", + "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==", "license": "MIT" }, - "node_modules/side-channel": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz", - "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==", + "node_modules/node-notifier": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/node-notifier/-/node-notifier-10.0.1.tgz", + "integrity": "sha512-YX7TSyDukOZ0g+gmzjB6abKu+hTGvO8+8+gIFDsRCU2t8fLV/P2unmt+LGFaIa4y64aX98Qksa97rgz4vMNeLQ==", "license": "MIT", "dependencies": { - "call-bind": "^1.0.7", - "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.4", - "object-inspect": "^1.13.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "growly": "^1.3.0", + "is-wsl": "^2.2.0", + "semver": "^7.3.5", + "shellwords": "^0.1.1", + "uuid": "^8.3.2", + "which": "^2.0.2" } }, - "node_modules/signal-exit": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", - "license": "ISC" - }, - "node_modules/sigstore": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/sigstore/-/sigstore-1.9.0.tgz", - "integrity": "sha512-0Zjz0oe37d08VeOtBIuB6cRriqXse2e8w+7yIy2XSXjshRKxbc2KkhXjL229jXSxEm7UbcjS76wcJDGQddVI9A==", - "license": "Apache-2.0", + "node_modules/nopt": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-9.0.0.tgz", + "integrity": "sha512-Zhq3a+yFKrYwSBluL4H9XP3m3y5uvQkB/09CwDruCiRmR/UJYnn9W4R48ry0uGC70aeTPKLynBtscP9efFFcPw==", + "license": "ISC", "dependencies": { - "@sigstore/bundle": "^1.1.0", - "@sigstore/protobuf-specs": "^0.2.0", - "@sigstore/sign": "^1.0.0", - "@sigstore/tuf": "^1.0.3", - "make-fetch-happen": "^11.0.1" + "abbrev": "^4.0.0" }, "bin": { - "sigstore": "bin/sigstore.js" + "nopt": "bin/nopt.js" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^20.17.0 || >=22.9.0" } }, - "node_modules/sigstore/node_modules/@npmcli/fs": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-3.1.1.tgz", - "integrity": "sha512-q9CRWjpHCMIh5sVyefoD1cA7PkvILqCZsnSOEUUivORLjxCO/Irmue2DprETiNgEqktDBZaM1Bi+jrarx1XdCg==", - "license": "ISC", + "node_modules/normalize-package-data": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-6.0.2.tgz", + "integrity": "sha512-V6gygoYb/5EmNI+MEGrWkC+e6+Rr7mTmfHrxDbLzxQogBkgzo76rkok0Am6thgSF7Mv2nLOajAJj5vDJZEFn7g==", + "license": "BSD-2-Clause", "dependencies": { - "semver": "^7.3.5" + "hosted-git-info": "^7.0.0", + "semver": "^7.3.5", + "validate-npm-package-license": "^3.0.4" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/sigstore/node_modules/@tootallnate/once": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz", - "integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==", - "license": "MIT", - "engines": { - "node": ">= 10" - } - }, - "node_modules/sigstore/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0" + "node": "^16.14.0 || >=18.0.0" } }, - "node_modules/sigstore/node_modules/cacache": { - "version": "17.1.4", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-17.1.4.tgz", - "integrity": "sha512-/aJwG2l3ZMJ1xNAnqbMpA40of9dj/pIH3QfiuQSqjfPJF747VR0J/bHn+/KdNnHKc6XQcWt/AfRSBft82W1d2A==", + "node_modules/normalize-package-data/node_modules/hosted-git-info": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-7.0.2.tgz", + "integrity": "sha512-puUZAUKT5m8Zzvs72XWy3HtvVbTWljRE66cP60bxJzAqf2DgICo7lYTY2IHUmLnNpjYvw5bvmoHvPc0QO2a62w==", "license": "ISC", "dependencies": { - "@npmcli/fs": "^3.1.0", - "fs-minipass": "^3.0.0", - "glob": "^10.2.2", - "lru-cache": "^7.7.1", - "minipass": "^7.0.3", - "minipass-collect": "^1.0.2", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "p-map": "^4.0.0", - "ssri": "^10.0.0", - "tar": "^6.1.11", - "unique-filename": "^3.0.0" + "lru-cache": "^10.0.1" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^16.14.0 || >=18.0.0" } }, - "node_modules/sigstore/node_modules/cacache/node_modules/minipass": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", - "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", - "license": "ISC", + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "license": "MIT", "engines": { - "node": ">=16 || 14 >=14.17" + "node": ">=0.10.0" } }, - "node_modules/sigstore/node_modules/debug": { - "version": "4.3.6", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.6.tgz", - "integrity": "sha512-O/09Bd4Z1fBrU4VzkhFqVgpPzaGbw6Sm9FEkBT1A/YBXQFGuuSxa1dN2nxgxS34JmKXqYx8CZAwEVoJFImUXIg==", - "license": "MIT", + "node_modules/npm-bundled": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-5.0.0.tgz", + "integrity": "sha512-JLSpbzh6UUXIEoqPsYBvVNVmyrjVZ1fzEFbqxKkTJQkWBO3xFzFT+KDnSKQWwOQNbuWRwt5LSD6HOTLGIWzfrw==", + "license": "ISC", "dependencies": { - "ms": "2.1.2" + "npm-normalize-package-bin": "^5.0.0" }, "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } + "node": "^20.17.0 || >=22.9.0" } }, - "node_modules/sigstore/node_modules/fs-minipass": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-3.0.3.tgz", - "integrity": "sha512-XUBA9XClHbnJWSfBzjkm6RvPsyg3sryZt06BEQoXcF7EK/xpGaQYJgQKDJSUH5SGZ76Y7pFx1QBnXz09rU5Fbw==", - "license": "ISC", + "node_modules/npm-install-checks": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/npm-install-checks/-/npm-install-checks-8.0.0.tgz", + "integrity": "sha512-ScAUdMpyzkbpxoNekQ3tNRdFI8SJ86wgKZSQZdUxT+bj0wVFpsEMWnkXP0twVe1gJyNF5apBWDJhhIbgrIViRA==", + "license": "BSD-2-Clause", "dependencies": { - "minipass": "^7.0.3" + "semver": "^7.1.1" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^20.17.0 || >=22.9.0" } }, - "node_modules/sigstore/node_modules/fs-minipass/node_modules/minipass": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", - "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", + "node_modules/npm-normalize-package-bin": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-5.0.0.tgz", + "integrity": "sha512-CJi3OS4JLsNMmr2u07OJlhcrPxCeOeP/4xq67aWNai6TNWWbTrlNDgl8NcFKVlcBKp18GPj+EzbNIgrBfZhsag==", "license": "ISC", "engines": { - "node": ">=16 || 14 >=14.17" + "node": "^20.17.0 || >=22.9.0" } }, - "node_modules/sigstore/node_modules/glob": { - "version": "10.4.5", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", - "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", + "node_modules/npm-package-arg": { + "version": "13.0.2", + "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-13.0.2.tgz", + "integrity": "sha512-IciCE3SY3uE84Ld8WZU23gAPPV9rIYod4F+rc+vJ7h7cwAJt9Vk6TVsK60ry7Uj3SRS3bqRRIGuTp9YVlk6WNA==", "license": "ISC", "dependencies": { - "foreground-child": "^3.1.0", - "jackspeak": "^3.1.2", - "minimatch": "^9.0.4", - "minipass": "^7.1.2", - "package-json-from-dist": "^1.0.0", - "path-scurry": "^1.11.1" - }, - "bin": { - "glob": "dist/esm/bin.mjs" + "hosted-git-info": "^9.0.0", + "proc-log": "^6.0.0", + "semver": "^7.3.5", + "validate-npm-package-name": "^7.0.0" }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/sigstore/node_modules/glob/node_modules/minipass": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", - "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", - "license": "ISC", "engines": { - "node": ">=16 || 14 >=14.17" + "node": "^20.17.0 || >=22.9.0" } }, - "node_modules/sigstore/node_modules/http-proxy-agent": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz", - "integrity": "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==", - "license": "MIT", + "node_modules/npm-packlist": { + "version": "10.0.3", + "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-10.0.3.tgz", + "integrity": "sha512-zPukTwJMOu5X5uvm0fztwS5Zxyvmk38H/LfidkOMt3gbZVCyro2cD/ETzwzVPcWZA3JOyPznfUN/nkyFiyUbxg==", + "license": "ISC", "dependencies": { - "@tootallnate/once": "2", - "agent-base": "6", - "debug": "4" + "ignore-walk": "^8.0.0", + "proc-log": "^6.0.0" }, "engines": { - "node": ">= 6" - } - }, - "node_modules/sigstore/node_modules/lru-cache": { - "version": "7.18.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", - "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", - "license": "ISC", - "engines": { - "node": ">=12" + "node": "^20.17.0 || >=22.9.0" } }, - "node_modules/sigstore/node_modules/make-fetch-happen": { - "version": "11.1.1", - "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-11.1.1.tgz", - "integrity": "sha512-rLWS7GCSTcEujjVBs2YqG7Y4643u8ucvCJeSRqiLYhesrDuzeuFIk37xREzAsfQaqzl8b9rNCE4m6J8tvX4Q8w==", + "node_modules/npm-pick-manifest": { + "version": "11.0.3", + "resolved": "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-11.0.3.tgz", + "integrity": "sha512-buzyCfeoGY/PxKqmBqn1IUJrZnUi1VVJTdSSRPGI60tJdUhUoSQFhs0zycJokDdOznQentgrpf8LayEHyyYlqQ==", "license": "ISC", "dependencies": { - "agentkeepalive": "^4.2.1", - "cacache": "^17.0.0", - "http-cache-semantics": "^4.1.1", - "http-proxy-agent": "^5.0.0", - "https-proxy-agent": "^5.0.0", - "is-lambda": "^1.0.1", - "lru-cache": "^7.7.1", - "minipass": "^5.0.0", - "minipass-fetch": "^3.0.0", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "negotiator": "^0.6.3", - "promise-retry": "^2.0.1", - "socks-proxy-agent": "^7.0.0", - "ssri": "^10.0.0" + "npm-install-checks": "^8.0.0", + "npm-normalize-package-bin": "^5.0.0", + "npm-package-arg": "^13.0.0", + "semver": "^7.3.5" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^20.17.0 || >=22.9.0" } }, - "node_modules/sigstore/node_modules/minimatch": { - "version": "9.0.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", - "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "node_modules/npm-registry-fetch": { + "version": "19.1.1", + "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-19.1.1.tgz", + "integrity": "sha512-TakBap6OM1w0H73VZVDf44iFXsOS3h+L4wVMXmbWOQroZgFhMch0juN6XSzBNlD965yIKvWg2dfu7NSiaYLxtw==", "license": "ISC", "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=16 || 14 >=14.17" + "@npmcli/redact": "^4.0.0", + "jsonparse": "^1.3.1", + "make-fetch-happen": "^15.0.0", + "minipass": "^7.0.2", + "minipass-fetch": "^5.0.0", + "minizlib": "^3.0.1", + "npm-package-arg": "^13.0.0", + "proc-log": "^6.0.0" }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/sigstore/node_modules/minipass": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", - "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", - "license": "ISC", "engines": { - "node": ">=8" + "node": "^20.17.0 || >=22.9.0" } }, - "node_modules/sigstore/node_modules/minipass-fetch": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-3.0.5.tgz", - "integrity": "sha512-2N8elDQAtSnFV0Dk7gt15KHsS0Fyz6CbYZ360h0WTYV1Ty46li3rAXVOQj1THMNLdmrD9Vt5pBPtWtVkpwGBqg==", + "node_modules/npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "inBundle": true, "license": "MIT", "dependencies": { - "minipass": "^7.0.3", - "minipass-sized": "^1.0.3", - "minizlib": "^2.1.2" + "path-key": "^3.0.0" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - }, - "optionalDependencies": { - "encoding": "^0.1.13" + "node": ">=8" } }, - "node_modules/sigstore/node_modules/minipass-fetch/node_modules/minipass": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", - "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", - "license": "ISC", + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "license": "MIT", "engines": { - "node": ">=16 || 14 >=14.17" + "node": ">=0.10.0" } }, - "node_modules/sigstore/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "license": "MIT" - }, - "node_modules/sigstore/node_modules/socks-proxy-agent": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-7.0.0.tgz", - "integrity": "sha512-Fgl0YPZ902wEsAyiQ+idGd1A7rSFx/ayC1CQVMw5P+EQx2V0SgpGtf6OKFhVjPflPUl9YMmEOnmfjCdMUsygww==", + "node_modules/object-inspect": { + "version": "1.13.4", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz", + "integrity": "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==", "license": "MIT", - "dependencies": { - "agent-base": "^6.0.2", - "debug": "^4.3.3", - "socks": "^2.6.2" - }, "engines": { - "node": ">= 10" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/sigstore/node_modules/ssri": { - "version": "10.0.6", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-10.0.6.tgz", - "integrity": "sha512-MGrFH9Z4NP9Iyhqn16sDtBpRRNJ0Y2hNa6D65h736fVSaPCHr4DM4sWUNvVaSuC+0OBGhwsrydQwmgfg5LncqQ==", - "license": "ISC", + "node_modules/on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "license": "MIT", "dependencies": { - "minipass": "^7.0.3" + "ee-first": "1.1.1" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": ">= 0.8" } }, - "node_modules/sigstore/node_modules/ssri/node_modules/minipass": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", - "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", "license": "ISC", - "engines": { - "node": ">=16 || 14 >=14.17" + "dependencies": { + "wrappy": "1" } }, - "node_modules/sigstore/node_modules/unique-filename": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-3.0.0.tgz", - "integrity": "sha512-afXhuC55wkAmZ0P18QsVE6kp8JaxrEokN2HGIoIVv2ijHQd419H0+6EigAFcIzXeMIkcIkNBpB3L/DXB3cTS/g==", - "license": "ISC", + "node_modules/onetime": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-7.0.0.tgz", + "integrity": "sha512-VXJjc87FScF88uafS3JllDgvAm+c/Slfz06lorj2uAY34rlUu0Nt+v8wreiImcrgAjjIHp1rXpTDlLOGw29WwQ==", + "license": "MIT", "dependencies": { - "unique-slug": "^4.0.0" + "mimic-function": "^5.0.0" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/sigstore/node_modules/unique-slug": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-4.0.0.tgz", - "integrity": "sha512-WrcA6AyEfqDX5bWige/4NQfPZMtASNVxdmWR76WESYQVAACSgWcR6e9i0mofqqBxYFtL4oAxPIptY73/0YE1DQ==", - "license": "ISC", + "node_modules/open": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/open/-/open-11.0.0.tgz", + "integrity": "sha512-smsWv2LzFjP03xmvFoJ331ss6h+jixfA4UUV/Bsiyuu4YJPfN+FIQGOIiv4w9/+MoHkfkJ22UIaQWRVFRfH6Vw==", + "license": "MIT", "dependencies": { - "imurmurhash": "^0.1.4" + "default-browser": "^5.4.0", + "define-lazy-prop": "^3.0.0", + "is-in-ssh": "^1.0.0", + "is-inside-container": "^1.0.0", + "powershell-utils": "^0.1.0", + "wsl-utils": "^0.3.0" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": ">=20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/sisteransi": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", - "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", - "license": "MIT" + "node_modules/opts": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/opts/-/opts-2.0.2.tgz", + "integrity": "sha512-k41FwbcLnlgnFh69f4qdUfvDQ+5vaSDnVPFI/y5XuhKRq97EnVVneO9F1ESVCdiVu4fCS2L8usX3mU331hB7pg==", + "license": "BSD-2-Clause" }, - "node_modules/slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "node_modules/ora": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/ora/-/ora-9.0.0.tgz", + "integrity": "sha512-m0pg2zscbYgWbqRR6ABga5c3sZdEon7bSgjnlXC64kxtxLOyjRcbbUkLj7HFyy/FTD+P2xdBWu8snGhYI0jc4A==", "license": "MIT", + "dependencies": { + "chalk": "^5.6.2", + "cli-cursor": "^5.0.0", + "cli-spinners": "^3.2.0", + "is-interactive": "^2.0.0", + "is-unicode-supported": "^2.1.0", + "log-symbols": "^7.0.1", + "stdin-discarder": "^0.2.2", + "string-width": "^8.1.0", + "strip-ansi": "^7.1.2" + }, "engines": { - "node": ">=8" + "node": ">=20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/smart-buffer": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", - "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==", + "node_modules/ora/node_modules/string-width": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-8.1.0.tgz", + "integrity": "sha512-Kxl3KJGb/gxkaUMOjRsQ8IrXiGW75O4E3RPjFIINOVH8AMl2SQ/yWdTzWwF3FevIX9LcMAjJW+GRwAlAbTSXdg==", "license": "MIT", + "dependencies": { + "get-east-asian-width": "^1.3.0", + "strip-ansi": "^7.1.0" + }, "engines": { - "node": ">= 6.0.0", - "npm": ">= 3.0.0" + "node": ">=20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/socks": { - "version": "2.8.3", - "resolved": "https://registry.npmjs.org/socks/-/socks-2.8.3.tgz", - "integrity": "sha512-l5x7VUUWbjVFbafGLxPWkYsHIhEvmF85tbIeFZWc8ZPtoMyybuEhL7Jye/ooC4/d48FgOjSJXgsF/AJPYCW8Zw==", + "node_modules/p-limit": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-4.0.0.tgz", + "integrity": "sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==", "license": "MIT", "dependencies": { - "ip-address": "^9.0.5", - "smart-buffer": "^4.2.0" + "yocto-queue": "^1.0.0" }, "engines": { - "node": ">= 10.0.0", - "npm": ">= 3.0.0" + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/socks-proxy-agent": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-6.2.1.tgz", - "integrity": "sha512-a6KW9G+6B3nWZ1yB8G7pJwL3ggLy1uTzKAgCb7ttblwqdz9fMGJUuTy3uFzEP48FAs9FLILlmzDlE2JJhVQaXQ==", + "node_modules/p-locate": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-6.0.0.tgz", + "integrity": "sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==", "license": "MIT", "dependencies": { - "agent-base": "^6.0.2", - "debug": "^4.3.3", - "socks": "^2.6.2" + "p-limit": "^4.0.0" }, "engines": { - "node": ">= 10" + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/socks-proxy-agent/node_modules/debug": { - "version": "4.3.6", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.6.tgz", - "integrity": "sha512-O/09Bd4Z1fBrU4VzkhFqVgpPzaGbw6Sm9FEkBT1A/YBXQFGuuSxa1dN2nxgxS34JmKXqYx8CZAwEVoJFImUXIg==", + "node_modules/p-map": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-7.0.4.tgz", + "integrity": "sha512-tkAQEw8ysMzmkhgw8k+1U/iPhWNhykKnSk4Rd5zLoPJCuJaGRPo6YposrZgaxHKzDHdDWWZvE/Sk7hsL2X/CpQ==", "license": "MIT", - "dependencies": { - "ms": "2.1.2" - }, "engines": { - "node": ">=6.0" + "node": ">=18" }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/socks-proxy-agent/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "license": "MIT" - }, - "node_modules/sort-keys": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-4.2.0.tgz", - "integrity": "sha512-aUYIEU/UviqPgc8mHR6IW1EGxkAXpeRETYcrzg8cLAvUPZcpAlleSXHV2mY7G12GphSH6Gzv+4MMVSSkbdteHg==", + "node_modules/p-queue": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/p-queue/-/p-queue-9.1.0.tgz", + "integrity": "sha512-O/ZPaXuQV29uSLbxWBGGZO1mCQXV2BLIwUr59JUU9SoH76mnYvtms7aafH/isNSNGwuEfP6W/4xD0/TJXxrizw==", "license": "MIT", "dependencies": { - "is-plain-obj": "^2.0.0" + "eventemitter3": "^5.0.1", + "p-timeout": "^7.0.0" }, "engines": { - "node": ">=8" + "node": ">=20" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "license": "BSD-3-Clause", + "node_modules/p-timeout": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-7.0.1.tgz", + "integrity": "sha512-AxTM2wDGORHGEkPCt8yqxOTMgpfbEHqF51f/5fJCmwFC3C/zNcGT63SymH2ttOAaiIws2zVg4+izQCjrakcwHg==", + "license": "MIT", "engines": { - "node": ">=0.10.0" + "node": ">=20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/source-map-support": { - "version": "0.5.13", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz", - "integrity": "sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==", - "dev": true, - "license": "MIT", + "node_modules/p-transform": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/p-transform/-/p-transform-5.0.1.tgz", + "integrity": "sha512-tb3/zIwbU6Z9RMDxZM3/UsyL5LpIUQj7Drq7iXWG9ilPpzyGG28EEFRRrGTsxHf3sOSOiQEiwevQH/VWtHbZfg==", + "license": "Apache-2.0", "dependencies": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" + "@types/node": ">=18.19.0", + "p-queue": "^8.0.1" + }, + "engines": { + "node": ">=18.19.0" } }, - "node_modules/spdx-correct": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz", - "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==", - "license": "Apache-2.0", + "node_modules/p-transform/node_modules/p-queue": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/p-queue/-/p-queue-8.1.1.tgz", + "integrity": "sha512-aNZ+VfjobsWryoiPnEApGGmf5WmNsCo9xu8dfaYamG5qaLP7ClhLN6NgsFe6SwJ2UbLEBK5dv9x8Mn5+RVhMWQ==", + "license": "MIT", "dependencies": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" + "eventemitter3": "^5.0.1", + "p-timeout": "^6.1.2" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/spdx-exceptions": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.5.0.tgz", - "integrity": "sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==", - "license": "CC-BY-3.0" + "node_modules/p-transform/node_modules/p-timeout": { + "version": "6.1.4", + "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-6.1.4.tgz", + "integrity": "sha512-MyIV3ZA/PmyBN/ud8vV9XzwTrNtR4jFrObymZYnZqMmW0zA8Z17vnT0rBgFE/TlohB+YCHqXMgZzb3Csp49vqg==", + "license": "MIT", + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, - "node_modules/spdx-expression-parse": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", - "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", + "node_modules/package-json": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/package-json/-/package-json-10.0.1.tgz", + "integrity": "sha512-ua1L4OgXSBdsu1FPb7F3tYH0F48a6kxvod4pLUlGY9COeJAJQNX/sNH2IiEmsxw7lqYiAwrdHMjz1FctOsyDQg==", "license": "MIT", "dependencies": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" + "ky": "^1.2.0", + "registry-auth-token": "^5.0.2", + "registry-url": "^6.0.1", + "semver": "^7.6.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/spdx-license-ids": { - "version": "3.0.18", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.18.tgz", - "integrity": "sha512-xxRs31BqRYHwiMzudOrpSiHtZ8i/GeionCBDSilhYRj+9gIcI8wCZTlXZKu9vZIVqViP3dcp9qE5G6AlIaD+TQ==", - "license": "CC0-1.0" - }, - "node_modules/sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", - "license": "BSD-3-Clause" + "node_modules/package-json-from-dist": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz", + "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==", + "license": "BlueOak-1.0.0" }, - "node_modules/sshpk": { - "version": "1.18.0", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.18.0.tgz", - "integrity": "sha512-2p2KJZTSqQ/I3+HX42EpYOa2l3f8Erv8MWKsy2I9uf4wA7yFIkXRffYdsx86y6z4vHtV8u7g+pPlr8/4ouAxsQ==", - "license": "MIT", + "node_modules/pacote": { + "version": "21.0.4", + "resolved": "https://registry.npmjs.org/pacote/-/pacote-21.0.4.tgz", + "integrity": "sha512-RplP/pDW0NNNDh3pnaoIWYPvNenS7UqMbXyvMqJczosiFWTeGGwJC2NQBLqKf4rGLFfwCOnntw1aEp9Jiqm1MA==", + "license": "ISC", "dependencies": { - "asn1": "~0.2.3", - "assert-plus": "^1.0.0", - "bcrypt-pbkdf": "^1.0.0", - "dashdash": "^1.12.0", - "ecc-jsbn": "~0.1.1", - "getpass": "^0.1.1", - "jsbn": "~0.1.0", - "safer-buffer": "^2.0.2", - "tweetnacl": "~0.14.0" + "@npmcli/git": "^7.0.0", + "@npmcli/installed-package-contents": "^4.0.0", + "@npmcli/package-json": "^7.0.0", + "@npmcli/promise-spawn": "^9.0.0", + "@npmcli/run-script": "^10.0.0", + "cacache": "^20.0.0", + "fs-minipass": "^3.0.0", + "minipass": "^7.0.2", + "npm-package-arg": "^13.0.0", + "npm-packlist": "^10.0.1", + "npm-pick-manifest": "^11.0.1", + "npm-registry-fetch": "^19.0.0", + "proc-log": "^6.0.0", + "promise-retry": "^2.0.1", + "sigstore": "^4.0.0", + "ssri": "^13.0.0", + "tar": "^7.4.3" }, "bin": { - "sshpk-conv": "bin/sshpk-conv", - "sshpk-sign": "bin/sshpk-sign", - "sshpk-verify": "bin/sshpk-verify" + "pacote": "bin/index.js" }, "engines": { - "node": ">=0.10.0" + "node": "^20.17.0 || >=22.9.0" } }, - "node_modules/ssri": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-8.0.1.tgz", - "integrity": "sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ==", + "node_modules/parse-conflict-json": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/parse-conflict-json/-/parse-conflict-json-5.0.1.tgz", + "integrity": "sha512-ZHEmNKMq1wyJXNwLxyHnluPfRAFSIliBvbK/UiOceROt4Xh9Pz0fq49NytIaeaCUf5VR86hwQ/34FCcNU5/LKQ==", "license": "ISC", "dependencies": { - "minipass": "^3.1.1" + "json-parse-even-better-errors": "^5.0.0", + "just-diff": "^6.0.0", + "just-diff-apply": "^5.2.0" }, "engines": { - "node": ">= 8" + "node": "^20.17.0 || >=22.9.0" } }, - "node_modules/stack-utils": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz", - "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==", - "dev": true, + "node_modules/parse-json": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-8.3.0.tgz", + "integrity": "sha512-ybiGyvspI+fAoRQbIPRddCcSTV9/LsJbf0e/S85VLowVGzRmokfneg2kwVW/KU5rOXrPSbF1qAKPMgNTqqROQQ==", "license": "MIT", "dependencies": { - "escape-string-regexp": "^2.0.0" + "@babel/code-frame": "^7.26.2", + "index-to-position": "^1.1.0", + "type-fest": "^4.39.1" }, "engines": { - "node": ">=10" - } - }, - "node_modules/stack-utils/node_modules/escape-string-regexp": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", - "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/statuses": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", - "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", - "license": "MIT", - "engines": { - "node": ">= 0.8" + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/stdin-discarder": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/stdin-discarder/-/stdin-discarder-0.2.2.tgz", - "integrity": "sha512-UhDfHmA92YAlNnCfhmq0VeNL5bDbiZGg7sZ2IvPsXubGkiNa9EC+tUTsjBRsYUAz87btI6/1wf4XoVvQ3uRnmQ==", + "node_modules/parse-ms": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse-ms/-/parse-ms-4.0.0.tgz", + "integrity": "sha512-TXfryirbmq34y8QBwgqCVLi+8oA3oWx2eAnSn62ITyEhEYaWRlVZ2DvMM9eZbMs/RfxPu/PK/aBLyGj4IrqMHw==", "license": "MIT", "engines": { "node": ">=18" @@ -10806,2468 +7326,2663 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/stealthy-require": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/stealthy-require/-/stealthy-require-1.1.1.tgz", - "integrity": "sha512-ZnWpYnYugiOVEY5GkcuJK1io5V8QmNYChG62gSit9pQVGErXtrKuPC55ITaVSukmMta5qpMU7vqLt2Lnni4f/g==", - "license": "ISC", + "node_modules/parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "license": "MIT", "engines": { - "node": ">=0.10.0" + "node": ">= 0.8" } }, - "node_modules/streamsearch": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz", - "integrity": "sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==", + "node_modules/path-exists": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-5.0.0.tgz", + "integrity": "sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==", + "license": "MIT", "engines": { - "node": ">=10.0.0" + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" } }, - "node_modules/string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", "license": "MIT", - "dependencies": { - "safe-buffer": "~5.2.0" + "engines": { + "node": ">=0.10.0" } }, - "node_modules/string-length": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", - "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", - "dev": true, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "inBundle": true, "license": "MIT", - "dependencies": { - "char-regex": "^1.0.2", - "strip-ansi": "^6.0.0" - }, "engines": { - "node": ">=10" + "node": ">=8" } }, - "node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "license": "MIT", + "node_modules/path-scurry": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", + "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", + "license": "BlueOak-1.0.0", "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" + "lru-cache": "^10.2.0", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" }, "engines": { - "node": ">=8" + "node": ">=16 || 14 >=14.18" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/string-width-cjs": { - "name": "string-width", - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "node_modules/path-to-regexp": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-8.3.0.tgz", + "integrity": "sha512-7jdwVIRtsP8MYpdXSwOS0YdD0Du+qOoF/AEPIt88PcCFrZCzx41oxku1jD88hZBwbNUIEfpqvuhjFaMAqMTWnA==", "license": "MIT", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" } }, - "node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "node_modules/path-type": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-6.0.0.tgz", + "integrity": "sha512-Vj7sf++t5pBD637NSfkxpHSMfWaeig5+DKWLhcqIYx6mWQz5hdJTGDVMQiJcw1ZYkhs7AazKDGpRVji1LJCZUQ==", "license": "MIT", - "dependencies": { - "ansi-regex": "^5.0.1" - }, "engines": { - "node": ">=8" + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/strip-ansi-cjs": { - "name": "strip-ansi", - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "node_modules/pathe": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/pathe/-/pathe-1.1.2.tgz", + "integrity": "sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/pathval": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pathval/-/pathval-2.0.1.tgz", + "integrity": "sha512-//nshmD55c46FuFw26xV/xFAaB5HF9Xdap7HJBBnrKdAd6/GxDBaNA1870O79+9ueg61cZLSVc+OaFlfmObYVQ==", + "dev": true, "license": "MIT", - "dependencies": { - "ansi-regex": "^5.0.1" - }, "engines": { - "node": ">=8" + "node": ">= 14.16" } }, - "node_modules/strip-bom": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", - "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", - "dev": true, + "node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "license": "ISC" + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "inBundle": true, "license": "MIT", "engines": { - "node": ">=8" + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" } }, - "node_modules/strip-bom-buf": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/strip-bom-buf/-/strip-bom-buf-1.0.0.tgz", - "integrity": "sha512-1sUIL1jck0T1mhOLP2c696BIznzT525Lkub+n4jjMHjhjhoAQA6Ye659DxdlZBr0aLDMQoTxKIpnlqxgtwjsuQ==", + "node_modules/possible-typed-array-names": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.1.0.tgz", + "integrity": "sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==", "license": "MIT", - "dependencies": { - "is-utf8": "^0.2.1" - }, "engines": { - "node": ">=4" + "node": ">= 0.4" } }, - "node_modules/strip-bom-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-bom-stream/-/strip-bom-stream-2.0.0.tgz", - "integrity": "sha512-yH0+mD8oahBZWnY43vxs4pSinn8SMKAdml/EOGBewoe1Y0Eitd0h2Mg3ZRiXruUW6L4P+lvZiEgbh0NgUGia1w==", + "node_modules/postcss": { + "version": "8.5.6", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.6.tgz", + "integrity": "sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], "license": "MIT", "dependencies": { - "first-chunk-stream": "^2.0.0", - "strip-bom": "^2.0.0" + "nanoid": "^3.3.11", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" }, "engines": { - "node": ">=0.10.0" + "node": "^10 || ^12 || >=14" } }, - "node_modules/strip-bom-stream/node_modules/strip-bom": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", - "integrity": "sha512-kwrX1y7czp1E69n2ajbG65mIo9dqvJ+8aBQXOGVxqwvNbsXdFM6Lq37dLAY3mknUwru8CfcCbfOLL/gMo+fi3g==", + "node_modules/postcss-selector-parser": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.1.tgz", + "integrity": "sha512-orRsuYpJVw8LdAwqqLykBj9ecS5/cRHlI5+nvTo8LcCKmzDmqVORXtOIYEEQuL9D4BxtA1lm5isAqzQZCoQ6Eg==", "license": "MIT", "dependencies": { - "is-utf8": "^0.2.0" + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" }, "engines": { - "node": ">=0.10.0" + "node": ">=4" } }, - "node_modules/strip-final-newline": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", - "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "node_modules/powershell-utils": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/powershell-utils/-/powershell-utils-0.1.0.tgz", + "integrity": "sha512-dM0jVuXJPsDN6DvRpea484tCUaMiXWjuCn++HGTqUWzGDjv5tZkEZldAJ/UMlqRYGFrD/etByo4/xOuC/snX2A==", "license": "MIT", "engines": { - "node": ">=6" + "node": ">=20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/strip-json-comments": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", - "dev": true, + "node_modules/pretty-bytes": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-7.1.0.tgz", + "integrity": "sha512-nODzvTiYVRGRqAOvE84Vk5JDPyyxsVk0/fbA/bq7RqlnhksGpset09XTxbpvLTIjoaF7K8Z8DG8yHtKGTPSYRw==", "license": "MIT", "engines": { - "node": ">=8" + "node": ">=20" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "node_modules/pretty-ms": { + "version": "9.3.0", + "resolved": "https://registry.npmjs.org/pretty-ms/-/pretty-ms-9.3.0.tgz", + "integrity": "sha512-gjVS5hOP+M3wMm5nmNOucbIrqudzs9v/57bWRHQWLYklXqoXKrVfYW2W9+glfGsqtPgpiz5WwyEEB+ksXIx3gQ==", "license": "MIT", "dependencies": { - "has-flag": "^4.0.0" + "parse-ms": "^4.0.0" }, "engines": { - "node": ">=8" - } - }, - "node_modules/supports-preserve-symlinks-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" + "node": ">=18" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/tar": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/tar/-/tar-6.2.1.tgz", - "integrity": "sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==", + "node_modules/proc-log": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-6.1.0.tgz", + "integrity": "sha512-iG+GYldRf2BQ0UDUAd6JQ/RwzaQy6mXmsk/IzlYyal4A4SNFw54MeH4/tLkF4I5WoWG9SQwuqWzS99jaFQHBuQ==", "license": "ISC", - "dependencies": { - "chownr": "^2.0.0", - "fs-minipass": "^2.0.0", - "minipass": "^5.0.0", - "minizlib": "^2.1.1", - "mkdirp": "^1.0.3", - "yallist": "^4.0.0" - }, "engines": { - "node": ">=10" + "node": "^20.17.0 || >=22.9.0" } }, - "node_modules/tar-stream": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz", - "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==", + "node_modules/process": { + "version": "0.11.10", + "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", + "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==", "license": "MIT", - "dependencies": { - "bl": "^4.0.3", - "end-of-stream": "^1.4.1", - "fs-constants": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^3.1.1" - }, "engines": { - "node": ">=6" + "node": ">= 0.6.0" } }, - "node_modules/tar/node_modules/minipass": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", - "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", + "node_modules/process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "license": "MIT" + }, + "node_modules/proggy": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/proggy/-/proggy-4.0.0.tgz", + "integrity": "sha512-MbA4R+WQT76ZBm/5JUpV9yqcJt92175+Y0Bodg3HgiXzrmKu7Ggq+bpn6y6wHH+gN9NcyKn3yg1+d47VaKwNAQ==", "license": "ISC", "engines": { - "node": ">=8" + "node": "^20.17.0 || >=22.9.0" } }, - "node_modules/tar/node_modules/mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "license": "MIT", - "bin": { - "mkdirp": "bin/cmd.js" - }, - "engines": { - "node": ">=10" + "node_modules/promise-all-reject-late": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/promise-all-reject-late/-/promise-all-reject-late-1.0.1.tgz", + "integrity": "sha512-vuf0Lf0lOxyQREH7GDIOUMLS7kz+gs8i6B+Yi8dC68a2sychGrHTJYghMBD6k7eUcH0H5P73EckCA48xijWqXw==", + "license": "ISC", + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/tar/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "license": "ISC" - }, - "node_modules/test-exclude": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", - "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", - "dev": true, + "node_modules/promise-call-limit": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/promise-call-limit/-/promise-call-limit-3.0.2.tgz", + "integrity": "sha512-mRPQO2T1QQVw11E7+UdCJu7S61eJVWknzml9sC1heAdj1jxl0fWMBypIt9ZOcLFf8FkG995ZD7RnVk7HH72fZw==", "license": "ISC", + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/promise-retry": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-2.0.1.tgz", + "integrity": "sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==", + "license": "MIT", "dependencies": { - "@istanbuljs/schema": "^0.1.2", - "glob": "^7.1.4", - "minimatch": "^3.0.4" + "err-code": "^2.0.2", + "retry": "^0.12.0" }, "engines": { - "node": ">=8" + "node": ">=10" } }, - "node_modules/text-table": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", - "license": "MIT" - }, - "node_modules/textextensions": { - "version": "5.16.0", - "resolved": "https://registry.npmjs.org/textextensions/-/textextensions-5.16.0.tgz", - "integrity": "sha512-7D/r3s6uPZyU//MCYrX6I14nzauDwJ5CxazouuRGNuvSCihW87ufN6VLoROLCrHg6FblLuJrT6N2BVaPVzqElw==", + "node_modules/prompts": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", + "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", "license": "MIT", - "engines": { - "node": ">=0.8" + "dependencies": { + "kleur": "^3.0.3", + "sisteransi": "^1.0.5" }, - "funding": { - "url": "https://bevry.me/fund" + "engines": { + "node": ">= 6" } }, - "node_modules/through": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", - "license": "MIT" + "node_modules/proto-list": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz", + "integrity": "sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==", + "license": "ISC" }, - "node_modules/tmp": { - "version": "0.0.33", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", - "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", + "node_modules/proxy-addr": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", + "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", "license": "MIT", "dependencies": { - "os-tmpdir": "~1.0.2" + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" }, "engines": { - "node": ">=0.6.0" + "node": ">= 0.10" } }, - "node_modules/tmpl": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", - "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==", - "dev": true, - "license": "BSD-3-Clause" - }, - "node_modules/to-buffer": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/to-buffer/-/to-buffer-1.1.1.tgz", - "integrity": "sha512-lx9B5iv7msuFYE3dytT+KE5tap+rNYw+K4jVkb9R/asAb+pbBSM17jtunHplhBe6RRJdZx3Pn2Jph24O32mOVg==", - "license": "MIT" - }, - "node_modules/to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", - "dev": true, + "node_modules/pupa": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/pupa/-/pupa-3.3.0.tgz", + "integrity": "sha512-LjgDO2zPtoXP2wJpDjZrGdojii1uqO0cnwKoIoUzkfS98HDmbeiGmYiXo3lXeFlq2xvne1QFQhwYXSUCLKtEuA==", "license": "MIT", + "dependencies": { + "escape-goat": "^4.0.0" + }, "engines": { - "node": ">=4" + "node": ">=12.20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/to-readable-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz", - "integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==", - "license": "MIT", + "node_modules/qs": { + "version": "6.14.1", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.14.1.tgz", + "integrity": "sha512-4EK3+xJl8Ts67nLYNwqw/dsFVnCf+qR7RgXSK9jEEm9unao3njwMDdmsdvoKBKHzxd7tCYz5e5M+SnMjdtXGQQ==", + "license": "BSD-3-Clause", + "dependencies": { + "side-channel": "^1.1.0" + }, "engines": { - "node": ">=6" + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "inBundle": true, + "license": "MIT" + }, + "node_modules/range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", "license": "MIT", - "dependencies": { - "is-number": "^7.0.0" - }, "engines": { - "node": ">=8.0" + "node": ">= 0.6" } }, - "node_modules/toidentifier": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", - "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "node_modules/raw-body": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-3.0.2.tgz", + "integrity": "sha512-K5zQjDllxWkf7Z5xJdV0/B0WTNqx6vxG70zJE4N0kBs4LovmEYWJzQGxC9bS9RAKu3bgM40lrd5zoLJ12MQ5BA==", "license": "MIT", + "dependencies": { + "bytes": "~3.1.2", + "http-errors": "~2.0.1", + "iconv-lite": "~0.7.0", + "unpipe": "~1.0.0" + }, "engines": { - "node": ">=0.6" + "node": ">= 0.10" } }, - "node_modules/tough-cookie": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", - "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", - "license": "BSD-3-Clause", + "node_modules/rc": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", + "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", + "license": "(BSD-2-Clause OR MIT OR Apache-2.0)", "dependencies": { - "psl": "^1.1.28", - "punycode": "^2.1.1" + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" }, - "engines": { - "node": ">=0.8" + "bin": { + "rc": "cli.js" } }, - "node_modules/tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", - "license": "MIT" - }, - "node_modules/treeverse": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/treeverse/-/treeverse-1.0.4.tgz", - "integrity": "sha512-whw60l7r+8ZU8Tu/Uc2yxtc4ZTZbR/PF3u1IPNKGQ6p8EICLb3Z2lAgoqw9bqYd8IkgnsaOcLzYHFckjqNsf0g==", + "node_modules/rc/node_modules/ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", "license": "ISC" }, - "node_modules/tslib": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.3.tgz", - "integrity": "sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==", - "license": "0BSD" + "node_modules/read-cmd-shim": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/read-cmd-shim/-/read-cmd-shim-6.0.0.tgz", + "integrity": "sha512-1zM5HuOfagXCBWMN83fuFI/x+T/UhZ7k+KIzhrHXcQoeX5+7gmaDYjELQHmmzIodumBHeByBJT4QYS7ufAgs7A==", + "license": "ISC", + "engines": { + "node": "^20.17.0 || >=22.9.0" + } }, - "node_modules/tuf-js": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/tuf-js/-/tuf-js-1.1.7.tgz", - "integrity": "sha512-i3P9Kgw3ytjELUfpuKVDNBJvk4u5bXL6gskv572mcevPbSKCV3zt3djhmlEQ65yERjIbOSncy7U4cQJaB1CBCg==", + "node_modules/read-package-up": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/read-package-up/-/read-package-up-11.0.0.tgz", + "integrity": "sha512-MbgfoNPANMdb4oRBNg5eqLbB2t2r+o5Ua1pNt8BqGp4I0FJZhuVSOj3PaBPni4azWuSzEdNn2evevzVmEk1ohQ==", "license": "MIT", "dependencies": { - "@tufjs/models": "1.0.4", - "debug": "^4.3.4", - "make-fetch-happen": "^11.1.1" + "find-up-simple": "^1.0.0", + "read-pkg": "^9.0.0", + "type-fest": "^4.6.0" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/tuf-js/node_modules/@npmcli/fs": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-3.1.1.tgz", - "integrity": "sha512-q9CRWjpHCMIh5sVyefoD1cA7PkvILqCZsnSOEUUivORLjxCO/Irmue2DprETiNgEqktDBZaM1Bi+jrarx1XdCg==", - "license": "ISC", + "node_modules/read-pkg": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-9.0.1.tgz", + "integrity": "sha512-9viLL4/n1BJUCT1NXVTdS1jtm80yDEgR5T4yCelII49Mbj0v1rZdKqj7zCiYdbB0CuCgdrvHcNogAKTFPBocFA==", + "license": "MIT", "dependencies": { - "semver": "^7.3.5" + "@types/normalize-package-data": "^2.4.3", + "normalize-package-data": "^6.0.0", + "parse-json": "^8.0.0", + "type-fest": "^4.6.0", + "unicorn-magic": "^0.1.0" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/tuf-js/node_modules/@tootallnate/once": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz", - "integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==", + "node_modules/read-pkg/node_modules/unicorn-magic": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/unicorn-magic/-/unicorn-magic-0.1.0.tgz", + "integrity": "sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ==", "license": "MIT", "engines": { - "node": ">= 10" + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/tuf-js/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "node_modules/readable-stream": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-4.7.0.tgz", + "integrity": "sha512-oIGGmcpTLwPga8Bn6/Z75SVaH1z5dUut2ibSyAMVhmUggWpmDn2dapB0n7f8nwaSiRtepAsfJyfXIO5DCVAODg==", "license": "MIT", "dependencies": { - "balanced-match": "^1.0.0" + "abort-controller": "^3.0.0", + "buffer": "^6.0.3", + "events": "^3.3.0", + "process": "^0.11.10", + "string_decoder": "^1.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/readdir-glob": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/readdir-glob/-/readdir-glob-1.1.3.tgz", + "integrity": "sha512-v05I2k7xN8zXvPD9N+z/uhXPaj0sUFCe2rcWZIpBsqxfP7xXFQ0tipAd/wjj1YxWyWtUS5IDJpOG82JKt2EAVA==", + "license": "Apache-2.0", + "dependencies": { + "minimatch": "^5.1.0" } }, - "node_modules/tuf-js/node_modules/cacache": { - "version": "17.1.4", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-17.1.4.tgz", - "integrity": "sha512-/aJwG2l3ZMJ1xNAnqbMpA40of9dj/pIH3QfiuQSqjfPJF747VR0J/bHn+/KdNnHKc6XQcWt/AfRSBft82W1d2A==", + "node_modules/readdir-glob/node_modules/minimatch": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", "license": "ISC", "dependencies": { - "@npmcli/fs": "^3.1.0", - "fs-minipass": "^3.0.0", - "glob": "^10.2.2", - "lru-cache": "^7.7.1", - "minipass": "^7.0.3", - "minipass-collect": "^1.0.2", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "p-map": "^4.0.0", - "ssri": "^10.0.0", - "tar": "^6.1.11", - "unique-filename": "^3.0.0" + "brace-expansion": "^2.0.1" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": ">=10" } }, - "node_modules/tuf-js/node_modules/cacache/node_modules/minipass": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", - "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", - "license": "ISC", + "node_modules/readdirp": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-5.0.0.tgz", + "integrity": "sha512-9u/XQ1pvrQtYyMpZe7DXKv2p5CNvyVwzUB6uhLAnQwHMSgKMBR62lc7AHljaeteeHXn11XTAaLLUVZYVZyuRBQ==", + "license": "MIT", "engines": { - "node": ">=16 || 14 >=14.17" + "node": ">= 20.19.0" + }, + "funding": { + "type": "individual", + "url": "https://paulmillr.com/funding/" } }, - "node_modules/tuf-js/node_modules/debug": { - "version": "4.3.6", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.6.tgz", - "integrity": "sha512-O/09Bd4Z1fBrU4VzkhFqVgpPzaGbw6Sm9FEkBT1A/YBXQFGuuSxa1dN2nxgxS34JmKXqYx8CZAwEVoJFImUXIg==", + "node_modules/registry-auth-token": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-5.1.1.tgz", + "integrity": "sha512-P7B4+jq8DeD2nMsAcdfaqHbssgHtZ7Z5+++a5ask90fvmJ8p5je4mOa+wzu+DB4vQ5tdJV/xywY+UnVFeQLV5Q==", "license": "MIT", "dependencies": { - "ms": "2.1.2" + "@pnpm/npm-conf": "^3.0.2" }, "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } + "node": ">=14" } }, - "node_modules/tuf-js/node_modules/fs-minipass": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-3.0.3.tgz", - "integrity": "sha512-XUBA9XClHbnJWSfBzjkm6RvPsyg3sryZt06BEQoXcF7EK/xpGaQYJgQKDJSUH5SGZ76Y7pFx1QBnXz09rU5Fbw==", - "license": "ISC", + "node_modules/registry-url": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-6.0.1.tgz", + "integrity": "sha512-+crtS5QjFRqFCoQmvGduwYWEBng99ZvmFvF+cUJkGYF1L1BfU8C6Zp9T7f5vPAwyLkUExpvK+ANVZmGU49qi4Q==", + "license": "MIT", "dependencies": { - "minipass": "^7.0.3" + "rc": "1.2.8" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/tuf-js/node_modules/fs-minipass/node_modules/minipass": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", - "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", - "license": "ISC", + "node_modules/remove-trailing-separator": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", + "integrity": "sha512-/hS+Y0u3aOfIETiaiirUFwDBDzmXPvO+jAfKTitUngIPzdKc6Z0LoFjM/CK5PL4C+eKwHohlHAb6H0VFfmmUsw==", + "license": "ISC" + }, + "node_modules/replace-ext": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-2.0.0.tgz", + "integrity": "sha512-UszKE5KVK6JvyD92nzMn9cDapSk6w/CaFZ96CnmDMUqH9oowfxF/ZjRITD25H4DnOQClLA4/j7jLGXXLVKxAug==", + "license": "MIT", "engines": { - "node": ">=16 || 14 >=14.17" + "node": ">= 10" } }, - "node_modules/tuf-js/node_modules/glob": { - "version": "10.4.5", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", - "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", - "license": "ISC", + "node_modules/restore-cursor": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-5.1.0.tgz", + "integrity": "sha512-oMA2dcrw6u0YfxJQXm342bFKX/E4sG9rbTzO9ptUcR/e8A33cHuvStiYOwH7fszkZlZ1z/ta9AAoPk2F4qIOHA==", + "license": "MIT", "dependencies": { - "foreground-child": "^3.1.0", - "jackspeak": "^3.1.2", - "minimatch": "^9.0.4", - "minipass": "^7.1.2", - "package-json-from-dist": "^1.0.0", - "path-scurry": "^1.11.1" + "onetime": "^7.0.0", + "signal-exit": "^4.1.0" }, - "bin": { - "glob": "dist/esm/bin.mjs" + "engines": { + "node": ">=18" }, "funding": { - "url": "https://github.com/sponsors/isaacs" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/tuf-js/node_modules/glob/node_modules/minipass": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", - "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", - "license": "ISC", + "node_modules/retry": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", + "integrity": "sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==", + "license": "MIT", "engines": { - "node": ">=16 || 14 >=14.17" + "node": ">= 4" } }, - "node_modules/tuf-js/node_modules/http-proxy-agent": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz", - "integrity": "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==", + "node_modules/reusify": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz", + "integrity": "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==", + "inBundle": true, "license": "MIT", - "dependencies": { - "@tootallnate/once": "2", - "agent-base": "6", - "debug": "4" - }, "engines": { - "node": ">= 6" + "iojs": ">=1.0.0", + "node": ">=0.10.0" } }, - "node_modules/tuf-js/node_modules/lru-cache": { - "version": "7.18.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", - "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", - "license": "ISC", + "node_modules/rollup": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.55.1.tgz", + "integrity": "sha512-wDv/Ht1BNHB4upNbK74s9usvl7hObDnvVzknxqY/E/O3X6rW1U1rV1aENEfJ54eFZDTNo7zv1f5N4edCluH7+A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "1.0.8" + }, + "bin": { + "rollup": "dist/bin/rollup" + }, "engines": { - "node": ">=12" + "node": ">=18.0.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.55.1", + "@rollup/rollup-android-arm64": "4.55.1", + "@rollup/rollup-darwin-arm64": "4.55.1", + "@rollup/rollup-darwin-x64": "4.55.1", + "@rollup/rollup-freebsd-arm64": "4.55.1", + "@rollup/rollup-freebsd-x64": "4.55.1", + "@rollup/rollup-linux-arm-gnueabihf": "4.55.1", + "@rollup/rollup-linux-arm-musleabihf": "4.55.1", + "@rollup/rollup-linux-arm64-gnu": "4.55.1", + "@rollup/rollup-linux-arm64-musl": "4.55.1", + "@rollup/rollup-linux-loong64-gnu": "4.55.1", + "@rollup/rollup-linux-loong64-musl": "4.55.1", + "@rollup/rollup-linux-ppc64-gnu": "4.55.1", + "@rollup/rollup-linux-ppc64-musl": "4.55.1", + "@rollup/rollup-linux-riscv64-gnu": "4.55.1", + "@rollup/rollup-linux-riscv64-musl": "4.55.1", + "@rollup/rollup-linux-s390x-gnu": "4.55.1", + "@rollup/rollup-linux-x64-gnu": "4.55.1", + "@rollup/rollup-linux-x64-musl": "4.55.1", + "@rollup/rollup-openbsd-x64": "4.55.1", + "@rollup/rollup-openharmony-arm64": "4.55.1", + "@rollup/rollup-win32-arm64-msvc": "4.55.1", + "@rollup/rollup-win32-ia32-msvc": "4.55.1", + "@rollup/rollup-win32-x64-gnu": "4.55.1", + "@rollup/rollup-win32-x64-msvc": "4.55.1", + "fsevents": "~2.3.2" } }, - "node_modules/tuf-js/node_modules/make-fetch-happen": { - "version": "11.1.1", - "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-11.1.1.tgz", - "integrity": "sha512-rLWS7GCSTcEujjVBs2YqG7Y4643u8ucvCJeSRqiLYhesrDuzeuFIk37xREzAsfQaqzl8b9rNCE4m6J8tvX4Q8w==", - "license": "ISC", + "node_modules/router": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/router/-/router-2.2.0.tgz", + "integrity": "sha512-nLTrUKm2UyiL7rlhapu/Zl45FwNgkZGaCpZbIHajDYgwlJCOzLSk+cIPAnsEqV955GjILJnKbdQC1nVPz+gAYQ==", + "license": "MIT", "dependencies": { - "agentkeepalive": "^4.2.1", - "cacache": "^17.0.0", - "http-cache-semantics": "^4.1.1", - "http-proxy-agent": "^5.0.0", - "https-proxy-agent": "^5.0.0", - "is-lambda": "^1.0.1", - "lru-cache": "^7.7.1", - "minipass": "^5.0.0", - "minipass-fetch": "^3.0.0", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "negotiator": "^0.6.3", - "promise-retry": "^2.0.1", - "socks-proxy-agent": "^7.0.0", - "ssri": "^10.0.0" + "debug": "^4.4.0", + "depd": "^2.0.0", + "is-promise": "^4.0.0", + "parseurl": "^1.3.3", + "path-to-regexp": "^8.0.0" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": ">= 18" } }, - "node_modules/tuf-js/node_modules/minimatch": { - "version": "9.0.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", - "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", - "license": "ISC", - "dependencies": { - "brace-expansion": "^2.0.1" - }, + "node_modules/run-applescript": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/run-applescript/-/run-applescript-7.1.0.tgz", + "integrity": "sha512-DPe5pVFaAsinSaV6QjQ6gdiedWDcRCbUuiQfQa2wmWV7+xC9bGulGI8+TdRmoFkAPaBXk8CrAbnlY2ISniJ47Q==", + "license": "MIT", "engines": { - "node": ">=16 || 14 >=14.17" + "node": ">=18" }, "funding": { - "url": "https://github.com/sponsors/isaacs" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/tuf-js/node_modules/minipass": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", - "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", - "license": "ISC", + "node_modules/run-async": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/run-async/-/run-async-4.0.6.tgz", + "integrity": "sha512-IoDlSLTs3Yq593mb3ZoKWKXMNu3UpObxhgA/Xuid5p4bbfi2jdY1Hj0m1K+0/tEuQTxIGMhQDqGjKb7RuxGpAQ==", + "license": "MIT", "engines": { - "node": ">=8" + "node": ">=0.12.0" } }, - "node_modules/tuf-js/node_modules/minipass-fetch": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-3.0.5.tgz", - "integrity": "sha512-2N8elDQAtSnFV0Dk7gt15KHsS0Fyz6CbYZ360h0WTYV1Ty46li3rAXVOQj1THMNLdmrD9Vt5pBPtWtVkpwGBqg==", + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "inBundle": true, "license": "MIT", "dependencies": { - "minipass": "^7.0.3", - "minipass-sized": "^1.0.3", - "minizlib": "^2.1.2" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - }, - "optionalDependencies": { - "encoding": "^0.1.13" + "queue-microtask": "^1.2.2" } }, - "node_modules/tuf-js/node_modules/minipass-fetch/node_modules/minipass": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", - "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", - "license": "ISC", - "engines": { - "node": ">=16 || 14 >=14.17" + "node_modules/rxjs": { + "version": "7.8.2", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.2.tgz", + "integrity": "sha512-dhKf903U/PQZY6boNNtAGdWbG85WAbjT/1xYoZIC7FAY0yWapOBQVsVrDl58W86//e1VpMNBtRV4MaXfdMySFA==", + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.1.0" } }, - "node_modules/tuf-js/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], "license": "MIT" }, - "node_modules/tuf-js/node_modules/socks-proxy-agent": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-7.0.0.tgz", - "integrity": "sha512-Fgl0YPZ902wEsAyiQ+idGd1A7rSFx/ayC1CQVMw5P+EQx2V0SgpGtf6OKFhVjPflPUl9YMmEOnmfjCdMUsygww==", - "license": "MIT", - "dependencies": { - "agent-base": "^6.0.2", - "debug": "^4.3.3", - "socks": "^2.6.2" - }, - "engines": { - "node": ">= 10" - } + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "license": "MIT" }, - "node_modules/tuf-js/node_modules/ssri": { - "version": "10.0.6", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-10.0.6.tgz", - "integrity": "sha512-MGrFH9Z4NP9Iyhqn16sDtBpRRNJ0Y2hNa6D65h736fVSaPCHr4DM4sWUNvVaSuC+0OBGhwsrydQwmgfg5LncqQ==", + "node_modules/semver": { + "version": "7.7.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz", + "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==", "license": "ISC", - "dependencies": { - "minipass": "^7.0.3" + "bin": { + "semver": "bin/semver.js" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/tuf-js/node_modules/ssri/node_modules/minipass": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", - "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", - "license": "ISC", - "engines": { - "node": ">=16 || 14 >=14.17" + "node": ">=10" } }, - "node_modules/tuf-js/node_modules/unique-filename": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-3.0.0.tgz", - "integrity": "sha512-afXhuC55wkAmZ0P18QsVE6kp8JaxrEokN2HGIoIVv2ijHQd419H0+6EigAFcIzXeMIkcIkNBpB3L/DXB3cTS/g==", - "license": "ISC", + "node_modules/send": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/send/-/send-1.2.1.tgz", + "integrity": "sha512-1gnZf7DFcoIcajTjTwjwuDjzuz4PPcY2StKPlsGAQ1+YH20IRVrBaXSWmdjowTJ6u8Rc01PoYOGHXfP1mYcZNQ==", + "license": "MIT", "dependencies": { - "unique-slug": "^4.0.0" + "debug": "^4.4.3", + "encodeurl": "^2.0.0", + "escape-html": "^1.0.3", + "etag": "^1.8.1", + "fresh": "^2.0.0", + "http-errors": "^2.0.1", + "mime-types": "^3.0.2", + "ms": "^2.1.3", + "on-finished": "^2.4.1", + "range-parser": "^1.2.1", + "statuses": "^2.0.2" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": ">= 18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" } }, - "node_modules/tuf-js/node_modules/unique-slug": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-4.0.0.tgz", - "integrity": "sha512-WrcA6AyEfqDX5bWige/4NQfPZMtASNVxdmWR76WESYQVAACSgWcR6e9i0mofqqBxYFtL4oAxPIptY73/0YE1DQ==", - "license": "ISC", + "node_modules/serve-static": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-2.2.1.tgz", + "integrity": "sha512-xRXBn0pPqQTVQiC8wyQrKs2MOlX24zQ0POGaj0kultvoOCstBQM5yvOhAVSUwOMjQtTvsPWoNCHfPGwaaQJhTw==", + "license": "MIT", "dependencies": { - "imurmurhash": "^0.1.4" + "encodeurl": "^2.0.0", + "escape-html": "^1.0.3", + "parseurl": "^1.3.3", + "send": "^1.2.0" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": ">= 18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" } }, - "node_modules/tunnel-agent": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", - "integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==", - "license": "Apache-2.0", + "node_modules/set-function-length": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", + "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", + "license": "MIT", "dependencies": { - "safe-buffer": "^5.0.1" + "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" }, "engines": { - "node": "*" + "node": ">= 0.4" } }, - "node_modules/tweetnacl": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==", - "license": "Unlicense" + "node_modules/setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", + "license": "ISC" }, - "node_modules/type-detect": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", - "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", - "dev": true, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "inBundle": true, "license": "MIT", + "dependencies": { + "shebang-regex": "^3.0.0" + }, "engines": { - "node": ">=4" + "node": ">=8" } }, - "node_modules/type-fest": { - "version": "0.21.3", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", - "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", - "license": "(MIT OR CC0-1.0)", + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "inBundle": true, + "license": "MIT", "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=8" } }, - "node_modules/type-is": { - "version": "1.6.18", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", - "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", - "license": "MIT", + "node_modules/shelljs": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.10.0.tgz", + "integrity": "sha512-Jex+xw5Mg2qMZL3qnzXIfaxEtBaC4n7xifqaqtrZDdlheR70OGkydrPJWT0V1cA1k3nanC86x9FwAmQl6w3Klw==", + "inBundle": true, + "license": "BSD-3-Clause", "dependencies": { - "media-typer": "0.3.0", - "mime-types": "~2.1.24" + "execa": "^5.1.1", + "fast-glob": "^3.3.2" }, "engines": { - "node": ">= 0.6" - } - }, - "node_modules/typedarray": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", - "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==", - "license": "MIT" - }, - "node_modules/typedarray-to-buffer": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", - "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", - "license": "MIT", - "dependencies": { - "is-typedarray": "^1.0.0" + "node": ">=18" } }, - "node_modules/undici-types": { - "version": "6.13.0", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.13.0.tgz", - "integrity": "sha512-xtFJHudx8S2DSoujjMd1WeWvn7KKWFRESZTMeL1RptAYERu29D6jphMjjY+vn96jvN3kVPDNxU/E13VTaXj6jg==", + "node_modules/shellwords": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/shellwords/-/shellwords-0.1.1.tgz", + "integrity": "sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww==", "license": "MIT" }, - "node_modules/unique-filename": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", - "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==", - "license": "ISC", - "dependencies": { - "unique-slug": "^2.0.0" - } - }, - "node_modules/unique-slug": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz", - "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==", - "license": "ISC", - "dependencies": { - "imurmurhash": "^0.1.4" - } - }, - "node_modules/unique-string": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz", - "integrity": "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==", + "node_modules/side-channel": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz", + "integrity": "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==", "license": "MIT", "dependencies": { - "crypto-random-string": "^2.0.0" + "es-errors": "^1.3.0", + "object-inspect": "^1.13.3", + "side-channel-list": "^1.0.0", + "side-channel-map": "^1.0.1", + "side-channel-weakmap": "^1.0.2" }, "engines": { - "node": ">=8" - } - }, - "node_modules/universal-user-agent": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-6.0.1.tgz", - "integrity": "sha512-yCzhz6FN2wU1NiiQRogkTQszlQSlpWaw8SvVegAc+bDxbzHgh1vX8uIe8OYyMH6DwH+sdTJsgMl36+mSMdRJIQ==", - "license": "ISC" - }, - "node_modules/universalify": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", - "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", - "engines": { - "node": ">= 10.0.0" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/unpipe": { + "node_modules/side-channel-list": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", + "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.0.tgz", + "integrity": "sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==", "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.3" + }, "engines": { - "node": ">= 0.8" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/untildify": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/untildify/-/untildify-4.0.0.tgz", - "integrity": "sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==", + "node_modules/side-channel-map": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz", + "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==", "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/unzipper": { - "version": "0.12.3", - "resolved": "https://registry.npmjs.org/unzipper/-/unzipper-0.12.3.tgz", - "integrity": "sha512-PZ8hTS+AqcGxsaQntl3IRBw65QrBI6lxzqDEL7IAo/XCEqRTKGfOX56Vea5TH9SZczRVxuzk1re04z/YjuYCJA==", "dependencies": { - "bluebird": "~3.7.2", - "duplexer2": "~0.1.4", - "fs-extra": "^11.2.0", - "graceful-fs": "^4.2.2", - "node-int64": "^0.4.0" + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/update-browserslist-db": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.0.tgz", - "integrity": "sha512-EdRAaAyk2cUE1wOf2DkEhzxqOQvFOoRJFNS6NeyJ01Gp2beMRpBAINjM2iDXE3KCuKhwnvHIQCJm6ThL2Z+HzQ==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], + "node_modules/side-channel-weakmap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz", + "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==", "license": "MIT", "dependencies": { - "escalade": "^3.1.2", - "picocolors": "^1.0.1" + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3", + "side-channel-map": "^1.0.1" }, - "bin": { - "update-browserslist-db": "cli.js" + "engines": { + "node": ">= 0.4" }, - "peerDependencies": { - "browserslist": ">= 4.21.0" + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/update-notifier": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-5.1.0.tgz", - "integrity": "sha512-ItnICHbeMh9GqUy31hFPrD1kcuZ3rpxDZbf4KUDavXwS0bW5m7SLbDQpGX3UYr072cbrF5hFUs3r5tUsPwjfHw==", - "license": "BSD-2-Clause", - "dependencies": { - "boxen": "^5.0.0", - "chalk": "^4.1.0", - "configstore": "^5.0.1", - "has-yarn": "^2.1.0", - "import-lazy": "^2.1.0", - "is-ci": "^2.0.0", - "is-installed-globally": "^0.4.0", - "is-npm": "^5.0.0", - "is-yarn-global": "^0.3.0", - "latest-version": "^5.1.0", - "pupa": "^2.1.1", - "semver": "^7.3.4", - "semver-diff": "^3.1.1", - "xdg-basedir": "^4.0.0" - }, + "node_modules/siginfo": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/siginfo/-/siginfo-2.0.0.tgz", + "integrity": "sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==", + "dev": true, + "license": "ISC" + }, + "node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "license": "ISC", "engines": { - "node": ">=10" + "node": ">=14" }, "funding": { - "url": "https://github.com/yeoman/update-notifier?sponsor=1" + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "license": "BSD-2-Clause", + "node_modules/sigstore": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/sigstore/-/sigstore-4.1.0.tgz", + "integrity": "sha512-/fUgUhYghuLzVT/gaJoeVehLCgZiUxPCPMcyVNY0lIf/cTCz58K/WTI7PefDarXxp9nUKpEwg1yyz3eSBMTtgA==", + "license": "Apache-2.0", "dependencies": { - "punycode": "^2.1.0" + "@sigstore/bundle": "^4.0.0", + "@sigstore/core": "^3.1.0", + "@sigstore/protobuf-specs": "^0.5.0", + "@sigstore/sign": "^4.1.0", + "@sigstore/tuf": "^4.0.1", + "@sigstore/verify": "^3.1.0" + }, + "engines": { + "node": "^20.17.0 || >=22.9.0" } }, - "node_modules/url-parse-lax": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz", - "integrity": "sha512-NjFKA0DidqPa5ciFcSrXnAltTtzz84ogy+NebPvfEgAck0+TNg4UJ4IN+fB7zRZfbgUf0syOo9MDxFkDSMuFaQ==", + "node_modules/simple-git": { + "version": "3.30.0", + "resolved": "https://registry.npmjs.org/simple-git/-/simple-git-3.30.0.tgz", + "integrity": "sha512-q6lxyDsCmEal/MEGhP1aVyQ3oxnagGlBDOVSIB4XUVLl1iZh0Pah6ebC9V4xBap/RfgP2WlI8EKs0WS0rMEJHg==", "license": "MIT", "dependencies": { - "prepend-http": "^2.0.0" + "@kwsites/file-exists": "^1.1.1", + "@kwsites/promise-deferred": "^1.1.1", + "debug": "^4.4.0" }, - "engines": { - "node": ">=4" + "funding": { + "type": "github", + "url": "https://github.com/steveukx/git-js?sponsor=1" } }, - "node_modules/util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "node_modules/sisteransi": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", + "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", "license": "MIT" }, - "node_modules/utils-merge": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", - "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", + "node_modules/slash": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-5.1.0.tgz", + "integrity": "sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==", "license": "MIT", "engines": { - "node": ">= 0.4.0" + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/uuid": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "node_modules/smart-buffer": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", + "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==", "license": "MIT", - "bin": { - "uuid": "dist/bin/uuid" + "engines": { + "node": ">= 6.0.0", + "npm": ">= 3.0.0" } }, - "node_modules/v8-to-istanbul": { - "version": "9.3.0", - "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.3.0.tgz", - "integrity": "sha512-kiGUalWN+rgBJ/1OHZsBtU4rXZOfj/7rKQxULKlIzwzQSvMJUUNgPwJEEh7gU6xEVxC0ahoOBvN2YI8GH6FNgA==", - "dev": true, - "license": "ISC", + "node_modules/socks": { + "version": "2.8.7", + "resolved": "https://registry.npmjs.org/socks/-/socks-2.8.7.tgz", + "integrity": "sha512-HLpt+uLy/pxB+bum/9DzAgiKS8CX1EvbWxI4zlmgGCExImLdiad2iCwXT5Z4c9c3Eq8rP2318mPW2c+QbtjK8A==", + "license": "MIT", "dependencies": { - "@jridgewell/trace-mapping": "^0.3.12", - "@types/istanbul-lib-coverage": "^2.0.1", - "convert-source-map": "^2.0.0" + "ip-address": "^10.0.1", + "smart-buffer": "^4.2.0" }, "engines": { - "node": ">=10.12.0" + "node": ">= 10.0.0", + "npm": ">= 3.0.0" } }, - "node_modules/validate-npm-package-license": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", - "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", - "license": "Apache-2.0", + "node_modules/socks-proxy-agent": { + "version": "8.0.5", + "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-8.0.5.tgz", + "integrity": "sha512-HehCEsotFqbPW9sJ8WVYB6UbmIMv7kUUORIF2Nncq4VQvBfNBLibW9YZR5dlYCSUhwcD628pRllm7n+E+YTzJw==", + "license": "MIT", "dependencies": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" + "agent-base": "^7.1.2", + "debug": "^4.3.4", + "socks": "^2.8.3" + }, + "engines": { + "node": ">= 14" } }, - "node_modules/validate-npm-package-name": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz", - "integrity": "sha512-M6w37eVCMMouJ9V/sdPGnC5H4uDr73/+xdq0FBLO3TFFX1+7wiUY6Es328NN+y43tmY+doUdN9g9J21vqB7iLw==", - "license": "ISC", + "node_modules/sort-keys": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-5.1.0.tgz", + "integrity": "sha512-aSbHV0DaBcr7u0PVHXzM6NbZNAtrr9sF6+Qfs9UUVG7Ll3jQ6hHi8F/xqIIcn2rvIVbr0v/2zyjSdwSV47AgLQ==", + "license": "MIT", "dependencies": { - "builtins": "^1.0.3" + "is-plain-obj": "^4.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/vary": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", - "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", - "license": "MIT", + "node_modules/source-map-js": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", + "dev": true, + "license": "BSD-3-Clause", "engines": { - "node": ">= 0.8" + "node": ">=0.10.0" } }, - "node_modules/verror": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", - "integrity": "sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==", - "engines": [ - "node >=0.6.0" - ], - "license": "MIT", + "node_modules/spdx-correct": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz", + "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==", + "license": "Apache-2.0", "dependencies": { - "assert-plus": "^1.0.0", - "core-util-is": "1.0.2", - "extsprintf": "^1.2.0" + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" } }, - "node_modules/vinyl": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-2.2.1.tgz", - "integrity": "sha512-LII3bXRFBZLlezoG5FfZVcXflZgWP/4dCwKtxd5ky9+LOtM4CS3bIRQsmR1KMnMW07jpE8fqR2lcxPZ+8sJIcw==", + "node_modules/spdx-exceptions": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.5.0.tgz", + "integrity": "sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==", + "license": "CC-BY-3.0" + }, + "node_modules/spdx-expression-parse": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", + "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", "license": "MIT", "dependencies": { - "clone": "^2.1.1", - "clone-buffer": "^1.0.0", - "clone-stats": "^1.0.0", - "cloneable-readable": "^1.0.0", - "remove-trailing-separator": "^1.0.1", - "replace-ext": "^1.0.0" - }, - "engines": { - "node": ">= 0.10" + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" } }, - "node_modules/vinyl-file": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/vinyl-file/-/vinyl-file-3.0.0.tgz", - "integrity": "sha512-BoJDj+ca3D9xOuPEM6RWVtWQtvEPQiQYn82LvdxhLWplfQsBzBqtgK0yhCP0s1BNTi6dH9BO+dzybvyQIacifg==", - "license": "MIT", + "node_modules/spdx-license-ids": { + "version": "3.0.22", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.22.tgz", + "integrity": "sha512-4PRT4nh1EImPbt2jASOKHX7PB7I+e4IWNLvkKFDxNhJlfjbYlleYQh285Z/3mPTHSAK/AvdMmw5BNNuYH8ShgQ==", + "license": "CC0-1.0" + }, + "node_modules/ssri": { + "version": "13.0.0", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-13.0.0.tgz", + "integrity": "sha512-yizwGBpbCn4YomB2lzhZqrHLJoqFGXihNbib3ozhqF/cIp5ue+xSmOQrjNasEE62hFxsCcg/V/z23t4n8jMEng==", + "license": "ISC", "dependencies": { - "graceful-fs": "^4.1.2", - "pify": "^2.3.0", - "strip-bom-buf": "^1.0.0", - "strip-bom-stream": "^2.0.0", - "vinyl": "^2.0.1" + "minipass": "^7.0.3" }, "engines": { - "node": ">=4" + "node": "^20.17.0 || >=22.9.0" } }, - "node_modules/walk-up-path": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/walk-up-path/-/walk-up-path-1.0.0.tgz", - "integrity": "sha512-hwj/qMDUEjCU5h0xr90KGCf0tg0/LgJbmOWgrWKYlcJZM7XvquvUJZ0G/HMGr7F7OQMOUuPHWP9JpriinkAlkg==", - "license": "ISC" + "node_modules/stackback": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/stackback/-/stackback-0.0.2.tgz", + "integrity": "sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==", + "dev": true, + "license": "MIT" }, - "node_modules/walkdir": { - "version": "0.0.11", - "resolved": "https://registry.npmjs.org/walkdir/-/walkdir-0.0.11.tgz", - "integrity": "sha512-lMFYXGpf7eg+RInVL021ZbJJT4hqsvsBvq5sZBp874jfhs3IWlA7OPoG0ojQrYcXHuUSi+Nqp6qGN+pPGaMgPQ==", + "node_modules/statuses": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.2.tgz", + "integrity": "sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw==", "license": "MIT", "engines": { - "node": ">=0.6.0" + "node": ">= 0.8" } }, - "node_modules/walker": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", - "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==", + "node_modules/std-env": { + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/std-env/-/std-env-3.10.0.tgz", + "integrity": "sha512-5GS12FdOZNliM5mAOxFRg7Ir0pWz8MdpYm6AY6VPkGpbA7ZzmbzNcBJQ0GPvvyWgcY7QAhCgf9Uy89I03faLkg==", "dev": true, - "license": "Apache-2.0", - "dependencies": { - "makeerror": "1.0.12" + "license": "MIT" + }, + "node_modules/stdin-discarder": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/stdin-discarder/-/stdin-discarder-0.2.2.tgz", + "integrity": "sha512-UhDfHmA92YAlNnCfhmq0VeNL5bDbiZGg7sZ2IvPsXubGkiNa9EC+tUTsjBRsYUAz87btI6/1wf4XoVvQ3uRnmQ==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/wcwidth": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", - "integrity": "sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==", + "node_modules/streamsearch": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz", + "integrity": "sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==", + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/streamx": { + "version": "2.23.0", + "resolved": "https://registry.npmjs.org/streamx/-/streamx-2.23.0.tgz", + "integrity": "sha512-kn+e44esVfn2Fa/O0CPFcex27fjIL6MkVae0Mm6q+E6f0hWv578YCERbv+4m02cjxvDsPKLnmxral/rR6lBMAg==", "license": "MIT", "dependencies": { - "defaults": "^1.0.3" + "events-universal": "^1.0.0", + "fast-fifo": "^1.3.2", + "text-decoder": "^1.1.0" } }, - "node_modules/webidl-conversions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", - "license": "BSD-2-Clause" - }, - "node_modules/whatwg-url": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "node_modules/string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", "license": "MIT", "dependencies": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" + "safe-buffer": "~5.2.0" } }, - "node_modules/which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "license": "ISC", + "node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "license": "MIT", "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" }, "engines": { - "node": ">= 8" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/which-pm": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/which-pm/-/which-pm-2.2.0.tgz", - "integrity": "sha512-MOiaDbA5ZZgUjkeMWM5EkJp4loW5ZRoa5bc3/aeMox/PJelMhE6t7S/mLuiY43DBupyxH+S0U1bTui9kWUlmsw==", + "node_modules/string-width-cjs": { + "name": "string-width", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "license": "MIT", "dependencies": { - "load-yaml-file": "^0.2.0", - "path-exists": "^4.0.0" + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" }, "engines": { - "node": ">=8.15" + "node": ">=8" } }, - "node_modules/wide-align": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz", - "integrity": "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==", - "license": "ISC", - "dependencies": { - "string-width": "^1.0.2 || 2 || 3 || 4" + "node_modules/string-width-cjs/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "license": "MIT", + "engines": { + "node": ">=8" } }, - "node_modules/widest-line": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz", - "integrity": "sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==", + "node_modules/string-width-cjs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "license": "MIT" + }, + "node_modules/string-width-cjs/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "license": "MIT", "dependencies": { - "string-width": "^4.0.0" + "ansi-regex": "^5.0.1" }, "engines": { "node": ">=8" } }, - "node_modules/wrap-ansi": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", - "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "node_modules/strip-ansi": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.2.tgz", + "integrity": "sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA==", "license": "MIT", "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/strip-ansi-cjs": { + "name": "strip-ansi", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" }, "engines": { "node": ">=8" } }, - "node_modules/wrap-ansi-cjs": { - "name": "wrap-ansi", - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "node_modules/strip-ansi-cjs/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-bom-buf": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-bom-buf/-/strip-bom-buf-3.0.1.tgz", + "integrity": "sha512-iJaWw2WroigLHzQysdc5WWeUc99p7ea7AEgB6JkY8CMyiO1yTVAA1gIlJJgORElUIR+lcZJkNl1OGChMhvc2Cw==", "license": "MIT", "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" + "is-utf8": "^0.2.1" }, "engines": { - "node": ">=10" + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" }, "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", - "inBundle": true, - "license": "ISC" - }, - "node_modules/write-file-atomic": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.2.tgz", - "integrity": "sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==", - "license": "ISC", + "node_modules/strip-bom-stream": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/strip-bom-stream/-/strip-bom-stream-5.0.0.tgz", + "integrity": "sha512-Yo472mU+3smhzqeKlIxClre4s4pwtYZEvDNQvY/sJpnChdaxmKuwU28UVx/v1ORKNMxkmj1GBuvxJQyBk6wYMQ==", + "license": "MIT", "dependencies": { - "imurmurhash": "^0.1.4", - "signal-exit": "^3.0.7" + "first-chunk-stream": "^5.0.0", + "strip-bom-buf": "^3.0.0" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/ws": { - "version": "7.5.10", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.10.tgz", - "integrity": "sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==", + "node_modules/strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "inBundle": true, "license": "MIT", "engines": { - "node": ">=8.3.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": "^5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } + "node": ">=6" } }, - "node_modules/xdg-basedir": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-4.0.0.tgz", - "integrity": "sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q==", + "node_modules/strip-json-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==", "license": "MIT", "engines": { - "node": ">=8" + "node": ">=0.10.0" } }, - "node_modules/xtend": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", - "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", + "node_modules/stubborn-fs": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/stubborn-fs/-/stubborn-fs-2.0.0.tgz", + "integrity": "sha512-Y0AvSwDw8y+nlSNFXMm2g6L51rBGdAQT20J3YSOqxC53Lo3bjWRtr2BKcfYoAf352WYpsZSTURrA0tqhfgudPA==", "license": "MIT", - "engines": { - "node": ">=0.4" + "dependencies": { + "stubborn-utils": "^1.0.1" } }, - "node_modules/y18n": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", - "dev": true, - "license": "ISC", + "node_modules/stubborn-utils": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/stubborn-utils/-/stubborn-utils-1.0.2.tgz", + "integrity": "sha512-zOh9jPYI+xrNOyisSelgym4tolKTJCQd5GBhK0+0xJvcYDcwlOoxF/rnFKQ2KRZknXSG9jWAp66fwP6AxN9STg==", + "license": "MIT" + }, + "node_modules/tar": { + "version": "7.5.3", + "resolved": "https://registry.npmjs.org/tar/-/tar-7.5.3.tgz", + "integrity": "sha512-ENg5JUHUm2rDD7IvKNFGzyElLXNjachNLp6RaGf4+JOgxXHkqA+gq81ZAMCUmtMtqBsoU62lcp6S27g1LCYGGQ==", + "license": "BlueOak-1.0.0", + "dependencies": { + "@isaacs/fs-minipass": "^4.0.0", + "chownr": "^3.0.0", + "minipass": "^7.1.2", + "minizlib": "^3.1.0", + "yallist": "^5.0.0" + }, "engines": { - "node": ">=10" + "node": ">=18" } }, - "node_modules/yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", - "dev": true, - "license": "ISC" + "node_modules/tar-stream": { + "version": "3.1.7", + "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-3.1.7.tgz", + "integrity": "sha512-qJj60CXt7IU1Ffyc3NJMjh6EkuCFej46zUqJ4J7pqYlThyd9bO0XBTmcOIhSzZJVWfsLks0+nle/j538YAW9RQ==", + "license": "MIT", + "dependencies": { + "b4a": "^1.6.4", + "fast-fifo": "^1.2.0", + "streamx": "^2.15.0" + } }, - "node_modules/yargs": { - "version": "17.7.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", - "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", - "dev": true, + "node_modules/teex": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/teex/-/teex-1.0.1.tgz", + "integrity": "sha512-eYE6iEI62Ni1H8oIa7KlDU6uQBtqr4Eajni3wX7rpfXD8ysFx8z0+dri+KWEPWpBsxXfxu58x/0jvTVT1ekOSg==", "license": "MIT", "dependencies": { - "cliui": "^8.0.1", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.3", - "y18n": "^5.0.5", - "yargs-parser": "^21.1.1" - }, - "engines": { - "node": ">=12" + "streamx": "^2.12.5" } }, - "node_modules/yargs-parser": { - "version": "21.1.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", - "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", - "dev": true, - "license": "ISC", - "engines": { - "node": ">=12" + "node_modules/text-decoder": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/text-decoder/-/text-decoder-1.2.3.tgz", + "integrity": "sha512-3/o9z3X0X0fTupwsYvR03pJ/DjWuqqrfwBgTQzdWDiQSm9KitAyz/9WqsT2JQW7KV2m+bC2ol/zqpW37NHxLaA==", + "license": "Apache-2.0", + "dependencies": { + "b4a": "^1.6.4" } }, - "node_modules/yeoman-environment": { - "version": "3.19.3", - "resolved": "https://registry.npmjs.org/yeoman-environment/-/yeoman-environment-3.19.3.tgz", - "integrity": "sha512-/+ODrTUHtlDPRH9qIC0JREH8+7nsRcjDl3Bxn2Xo/rvAaVvixH5275jHwg0C85g4QsF4P6M2ojfScPPAl+pLAg==", - "license": "BSD-2-Clause", + "node_modules/text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", + "license": "MIT" + }, + "node_modules/textextensions": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/textextensions/-/textextensions-6.11.0.tgz", + "integrity": "sha512-tXJwSr9355kFJI3lbCkPpUH5cP8/M0GGy2xLO34aZCjMXBaK3SoPnZwr/oWmo1FdCnELcs4npdCIOFtq9W3ruQ==", + "license": "Artistic-2.0", "dependencies": { - "@npmcli/arborist": "^4.0.4", - "are-we-there-yet": "^2.0.0", - "arrify": "^2.0.1", - "binaryextensions": "^4.15.0", - "chalk": "^4.1.0", - "cli-table": "^0.3.1", - "commander": "7.1.0", - "dateformat": "^4.5.0", - "debug": "^4.1.1", - "diff": "^5.0.0", - "error": "^10.4.0", - "escape-string-regexp": "^4.0.0", - "execa": "^5.0.0", - "find-up": "^5.0.0", - "globby": "^11.0.1", - "grouped-queue": "^2.0.0", - "inquirer": "^8.0.0", - "is-scoped": "^2.1.0", - "isbinaryfile": "^4.0.10", - "lodash": "^4.17.10", - "log-symbols": "^4.0.0", - "mem-fs": "^1.2.0 || ^2.0.0", - "mem-fs-editor": "^8.1.2 || ^9.0.0", - "minimatch": "^3.0.4", - "npmlog": "^5.0.1", - "p-queue": "^6.6.2", - "p-transform": "^1.3.0", - "pacote": "^12.0.2", - "preferred-pm": "^3.0.3", - "pretty-bytes": "^5.3.0", - "readable-stream": "^4.3.0", - "semver": "^7.1.3", - "slash": "^3.0.0", - "strip-ansi": "^6.0.0", - "text-table": "^0.2.0", - "textextensions": "^5.12.0", - "untildify": "^4.0.0" - }, - "bin": { - "yoe": "cli/index.js" + "editions": "^6.21.0" }, "engines": { - "node": ">=12.10.0" + "node": ">=4" + }, + "funding": { + "url": "https://bevry.me/fund" } }, - "node_modules/yeoman-environment/node_modules/buffer": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", - "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT", - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.2.1" - } + "node_modules/tinybench": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/tinybench/-/tinybench-2.9.0.tgz", + "integrity": "sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==", + "dev": true, + "license": "MIT" }, - "node_modules/yeoman-environment/node_modules/commander": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-7.1.0.tgz", - "integrity": "sha512-pRxBna3MJe6HKnBGsDyMv8ETbptw3axEdYHoqNh7gu5oDcew8fs0xnivZGm06Ogk8zGAJ9VX+OPEr2GXEQK4dg==", + "node_modules/tinyexec": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-0.3.2.tgz", + "integrity": "sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==", + "dev": true, + "license": "MIT" + }, + "node_modules/tinyglobby": { + "version": "0.2.15", + "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.15.tgz", + "integrity": "sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==", "license": "MIT", + "dependencies": { + "fdir": "^6.5.0", + "picomatch": "^4.0.3" + }, "engines": { - "node": ">= 10" + "node": ">=12.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/SuperchupuDev" } }, - "node_modules/yeoman-environment/node_modules/debug": { - "version": "4.3.6", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.6.tgz", - "integrity": "sha512-O/09Bd4Z1fBrU4VzkhFqVgpPzaGbw6Sm9FEkBT1A/YBXQFGuuSxa1dN2nxgxS34JmKXqYx8CZAwEVoJFImUXIg==", + "node_modules/tinyglobby/node_modules/fdir": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", + "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", "license": "MIT", - "dependencies": { - "ms": "2.1.2" - }, "engines": { - "node": ">=6.0" + "node": ">=12.0.0" + }, + "peerDependencies": { + "picomatch": "^3 || ^4" }, "peerDependenciesMeta": { - "supports-color": { + "picomatch": { "optional": true } } }, - "node_modules/yeoman-environment/node_modules/escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "node_modules/tinyglobby/node_modules/picomatch": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", + "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", "license": "MIT", + "peer": true, "engines": { - "node": ">=10" + "node": ">=12" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/sponsors/jonschlinkert" } }, - "node_modules/yeoman-environment/node_modules/find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "node_modules/tinypool": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/tinypool/-/tinypool-1.1.1.tgz", + "integrity": "sha512-Zba82s87IFq9A9XmjiX5uZA/ARWDrB03OHlq+Vw1fSdt0I+4/Kutwy8BP4Y/y/aORMo61FQ0vIb5j44vSo5Pkg==", + "dev": true, "license": "MIT", - "dependencies": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": "^18.0.0 || >=20.0.0" } }, - "node_modules/yeoman-environment/node_modules/is-unicode-supported": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", - "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", + "node_modules/tinyrainbow": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/tinyrainbow/-/tinyrainbow-1.2.0.tgz", + "integrity": "sha512-weEDEq7Z5eTHPDh4xjX789+fHfF+P8boiFB+0vbWzpbnbsEr/GRaohi/uMKxg8RZMXnl1ItAi/IUHWMsjDV7kQ==", + "dev": true, "license": "MIT", "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=14.0.0" } }, - "node_modules/yeoman-environment/node_modules/locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "node_modules/tinyspy": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/tinyspy/-/tinyspy-3.0.2.tgz", + "integrity": "sha512-n1cw8k1k0x4pgA2+9XrOkFydTerNcJ1zWCO5Nn9scWHTD+5tp8dghT2x1uduQePZTZgd3Tupf+x9BxJjeJi77Q==", + "dev": true, "license": "MIT", - "dependencies": { - "p-locate": "^5.0.0" - }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=14.0.0" } }, - "node_modules/yeoman-environment/node_modules/log-symbols": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", - "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", + "node_modules/to-buffer": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/to-buffer/-/to-buffer-1.2.2.tgz", + "integrity": "sha512-db0E3UJjcFhpDhAF4tLo03oli3pwl3dbnzXOUIlRKrp+ldk/VUxzpWYZENsw2SZiuBjHAk7DfB0VU7NKdpb6sw==", "license": "MIT", "dependencies": { - "chalk": "^4.1.0", - "is-unicode-supported": "^0.1.0" + "isarray": "^2.0.5", + "safe-buffer": "^5.2.1", + "typed-array-buffer": "^1.0.3" }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">= 0.4" } }, - "node_modules/yeoman-environment/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "node_modules/to-buffer/node_modules/isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", "license": "MIT" }, - "node_modules/yeoman-environment/node_modules/p-locate": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "inBundle": true, "license": "MIT", "dependencies": { - "p-limit": "^3.0.2" + "is-number": "^7.0.0" }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=8.0" } }, - "node_modules/yeoman-environment/node_modules/readable-stream": { - "version": "4.5.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-4.5.2.tgz", - "integrity": "sha512-yjavECdqeZ3GLXNgRXgeQEdz9fvDDkNKyHnbHRFtOr7/LcfgBcmct7t/ET+HaCTqfh06OzoAxrkN/IfjJBVe+g==", + "node_modules/toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", "license": "MIT", - "dependencies": { - "abort-controller": "^3.0.0", - "buffer": "^6.0.3", - "events": "^3.3.0", - "process": "^0.11.10", - "string_decoder": "^1.3.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - } - }, - "node_modules/yeoman-generator": { - "version": "5.10.0", - "resolved": "https://registry.npmjs.org/yeoman-generator/-/yeoman-generator-5.10.0.tgz", - "integrity": "sha512-iDUKykV7L4nDNzeYSedRmSeJ5eMYFucnKDi6KN1WNASXErgPepKqsQw55TgXPHnmpcyOh2Dd/LAZkyc+f0qaAw==", - "license": "BSD-2-Clause", - "dependencies": { - "chalk": "^4.1.0", - "dargs": "^7.0.0", - "debug": "^4.1.1", - "execa": "^5.1.1", - "github-username": "^6.0.0", - "lodash": "^4.17.11", - "mem-fs-editor": "^9.0.0", - "minimist": "^1.2.5", - "pacote": "^15.2.0", - "read-pkg-up": "^7.0.1", - "run-async": "^2.0.0", - "semver": "^7.2.1", - "shelljs": "^0.8.5", - "sort-keys": "^4.2.0", - "text-table": "^0.2.0" - }, - "acceptDependencies": { - "yeoman-environment": "^4.0.0" - }, "engines": { - "node": ">=12.10.0" - }, - "peerDependencies": { - "yeoman-environment": "^3.2.0" - }, - "peerDependenciesMeta": { - "yeoman-environment": { - "optional": true - } + "node": ">=0.6" } }, - "node_modules/yeoman-generator/node_modules/@npmcli/fs": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-3.1.1.tgz", - "integrity": "sha512-q9CRWjpHCMIh5sVyefoD1cA7PkvILqCZsnSOEUUivORLjxCO/Irmue2DprETiNgEqktDBZaM1Bi+jrarx1XdCg==", + "node_modules/treeverse": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/treeverse/-/treeverse-3.0.0.tgz", + "integrity": "sha512-gcANaAnd2QDZFmHFEOF4k7uc1J/6a6z3DJMd/QwEyxLoKGiptJRwid582r7QIsFlFMIZ3SnxfS52S4hm2DHkuQ==", "license": "ISC", - "dependencies": { - "semver": "^7.3.5" - }, "engines": { "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/yeoman-generator/node_modules/@npmcli/git": { + "node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "license": "0BSD" + }, + "node_modules/tuf-js": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/@npmcli/git/-/git-4.1.0.tgz", - "integrity": "sha512-9hwoB3gStVfa0N31ymBmrX+GuDGdVA/QWShZVqE0HK2Af+7QGGrCTbZia/SW0ImUTjTne7SP91qxDmtXvDHRPQ==", - "license": "ISC", + "resolved": "https://registry.npmjs.org/tuf-js/-/tuf-js-4.1.0.tgz", + "integrity": "sha512-50QV99kCKH5P/Vs4E2Gzp7BopNV+KzTXqWeaxrfu5IQJBOULRsTIS9seSsOVT8ZnGXzCyx55nYWAi4qJzpZKEQ==", + "license": "MIT", "dependencies": { - "@npmcli/promise-spawn": "^6.0.0", - "lru-cache": "^7.4.4", - "npm-pick-manifest": "^8.0.0", - "proc-log": "^3.0.0", - "promise-inflight": "^1.0.1", - "promise-retry": "^2.0.1", - "semver": "^7.3.5", - "which": "^3.0.0" + "@tufjs/models": "4.1.0", + "debug": "^4.4.3", + "make-fetch-happen": "^15.0.1" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^20.17.0 || >=22.9.0" } }, - "node_modules/yeoman-generator/node_modules/@npmcli/installed-package-contents": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@npmcli/installed-package-contents/-/installed-package-contents-2.1.0.tgz", - "integrity": "sha512-c8UuGLeZpm69BryRykLuKRyKFZYJsZSCT4aVY5ds4omyZqJ172ApzgfKJ5eV/r3HgLdUYgFVe54KSFVjKoe27w==", - "license": "ISC", - "dependencies": { - "npm-bundled": "^3.0.0", - "npm-normalize-package-bin": "^3.0.0" + "node_modules/type-fest": { + "version": "4.41.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.41.0.tgz", + "integrity": "sha512-TeTSQ6H5YHvpqVwBRcnLDCBnDOHWYu7IvGbHT6N8AOymcr9PJGjc1GTtiWZTYg0NCgYwvnYWEkVChQAr9bjfwA==", + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=16" }, - "bin": { - "installed-package-contents": "bin/index.js" + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/type-is": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-2.0.1.tgz", + "integrity": "sha512-OZs6gsjF4vMp32qrCbiVSkrFmXtG/AZhY3t0iAMrMBiAZyV9oALtXO8hsrHbMXF9x6L3grlFuwW2oAz7cav+Gw==", + "license": "MIT", + "dependencies": { + "content-type": "^1.0.5", + "media-typer": "^1.1.0", + "mime-types": "^3.0.0" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": ">= 0.6" } }, - "node_modules/yeoman-generator/node_modules/@npmcli/move-file": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-2.0.1.tgz", - "integrity": "sha512-mJd2Z5TjYWq/ttPLLGqArdtnC74J6bOzg4rMDnN+p1xTacZ2yPRCk2y0oSWQtygLR9YVQXgOcONrwtnk3JupxQ==", - "deprecated": "This functionality has been moved to @npmcli/fs", + "node_modules/typed-array-buffer": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.3.tgz", + "integrity": "sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==", "license": "MIT", "dependencies": { - "mkdirp": "^1.0.4", - "rimraf": "^3.0.2" + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "is-typed-array": "^1.1.14" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "node": ">= 0.4" } }, - "node_modules/yeoman-generator/node_modules/@npmcli/node-gyp": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@npmcli/node-gyp/-/node-gyp-3.0.0.tgz", - "integrity": "sha512-gp8pRXC2oOxu0DUE1/M3bYtb1b3/DbJ5aM113+XJBgfXdussRAsX0YOrOhdd8WvnAR6auDBvJomGAkLKA5ydxA==", - "license": "ISC", + "node_modules/typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==", + "license": "MIT" + }, + "node_modules/undici-types": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.16.0.tgz", + "integrity": "sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw==", + "license": "MIT" + }, + "node_modules/unicorn-magic": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/unicorn-magic/-/unicorn-magic-0.4.0.tgz", + "integrity": "sha512-wH590V9VNgYH9g3lH9wWjTrUoKsjLF6sGLjhR4sH1LWpLmCOH0Zf7PukhDA8BiS7KHe4oPNkcTHqYkj7SOGUOw==", + "license": "MIT", "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": ">=20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/yeoman-generator/node_modules/@npmcli/promise-spawn": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/@npmcli/promise-spawn/-/promise-spawn-6.0.2.tgz", - "integrity": "sha512-gGq0NJkIGSwdbUt4yhdF8ZrmkGKVz9vAdVzpOfnom+V8PLSmSOVhZwbNvZZS1EYcJN5hzzKBxmmVVAInM6HQLg==", + "node_modules/unique-filename": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-5.0.0.tgz", + "integrity": "sha512-2RaJTAvAb4owyjllTfXzFClJ7WsGxlykkPvCr9pA//LD9goVq+m4PPAeBgNodGZ7nSrntT/auWpJ6Y5IFXcfjg==", "license": "ISC", "dependencies": { - "which": "^3.0.0" + "unique-slug": "^6.0.0" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^20.17.0 || >=22.9.0" } }, - "node_modules/yeoman-generator/node_modules/@npmcli/run-script": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/@npmcli/run-script/-/run-script-6.0.2.tgz", - "integrity": "sha512-NCcr1uQo1k5U+SYlnIrbAh3cxy+OQT1VtqiAbxdymSlptbzBb62AjH2xXgjNCoP073hoa1CfCAcwoZ8k96C4nA==", + "node_modules/unique-slug": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-6.0.0.tgz", + "integrity": "sha512-4Lup7Ezn8W3d52/xBhZBVdx323ckxa7DEvd9kPQHppTkLoJXw6ltrBCyj5pnrxj0qKDxYMJ56CoxNuFCscdTiw==", "license": "ISC", "dependencies": { - "@npmcli/node-gyp": "^3.0.0", - "@npmcli/promise-spawn": "^6.0.0", - "node-gyp": "^9.0.0", - "read-package-json-fast": "^3.0.0", - "which": "^3.0.0" + "imurmurhash": "^0.1.4" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^20.17.0 || >=22.9.0" } }, - "node_modules/yeoman-generator/node_modules/@tootallnate/once": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz", - "integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==", + "node_modules/universal-user-agent": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-7.0.3.tgz", + "integrity": "sha512-TmnEAEAsBJVZM/AADELsK76llnwcf9vMKuPz8JflO1frO8Lchitr0fNaN9d+Ap0BjKtqWqd/J17qeDnXh8CL2A==", + "license": "ISC" + }, + "node_modules/universalify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", "license": "MIT", "engines": { - "node": ">= 10" + "node": ">= 10.0.0" } }, - "node_modules/yeoman-generator/node_modules/are-we-there-yet": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-3.0.1.tgz", - "integrity": "sha512-QZW4EDmGwlYur0Yyf/b2uGucHQMa8aFUP7eu9ddR73vvhFyt4V0Vl3QHPcTNJ8l6qYOBdxgXdnBXQrHilfRQBg==", - "deprecated": "This package is no longer supported.", - "license": "ISC", - "dependencies": { - "delegates": "^1.0.0", - "readable-stream": "^3.6.0" - }, + "node_modules/unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", + "license": "MIT", "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "node": ">= 0.8" } }, - "node_modules/yeoman-generator/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "node_modules/untildify": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/untildify/-/untildify-6.0.0.tgz", + "integrity": "sha512-sA2YTBvW2F463GvSbiZtso+dpuQV+B7xX9saX30SGrR5Fyx4AUcvA/zN+ShAkABKUKVyDaHECsJrHv5ToTuHsQ==", "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0" + "engines": { + "node": ">=20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/yeoman-generator/node_modules/cacache": { - "version": "17.1.4", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-17.1.4.tgz", - "integrity": "sha512-/aJwG2l3ZMJ1xNAnqbMpA40of9dj/pIH3QfiuQSqjfPJF747VR0J/bHn+/KdNnHKc6XQcWt/AfRSBft82W1d2A==", - "license": "ISC", + "node_modules/unzipper": { + "version": "0.12.3", + "resolved": "https://registry.npmjs.org/unzipper/-/unzipper-0.12.3.tgz", + "integrity": "sha512-PZ8hTS+AqcGxsaQntl3IRBw65QrBI6lxzqDEL7IAo/XCEqRTKGfOX56Vea5TH9SZczRVxuzk1re04z/YjuYCJA==", + "license": "MIT", "dependencies": { - "@npmcli/fs": "^3.1.0", - "fs-minipass": "^3.0.0", - "glob": "^10.2.2", - "lru-cache": "^7.7.1", - "minipass": "^7.0.3", - "minipass-collect": "^1.0.2", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "p-map": "^4.0.0", - "ssri": "^10.0.0", - "tar": "^6.1.11", - "unique-filename": "^3.0.0" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "bluebird": "~3.7.2", + "duplexer2": "~0.1.4", + "fs-extra": "^11.2.0", + "graceful-fs": "^4.2.2", + "node-int64": "^0.4.0" } }, - "node_modules/yeoman-generator/node_modules/cacache/node_modules/glob": { - "version": "10.4.5", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", - "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", - "license": "ISC", + "node_modules/update-notifier": { + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-7.3.1.tgz", + "integrity": "sha512-+dwUY4L35XFYEzE+OAL3sarJdUioVovq+8f7lcIJ7wnmnYQV5UD1Y/lcwaMSyaQ6Bj3JMj1XSTjZbNLHn/19yA==", + "license": "BSD-2-Clause", "dependencies": { - "foreground-child": "^3.1.0", - "jackspeak": "^3.1.2", - "minimatch": "^9.0.4", - "minipass": "^7.1.2", - "package-json-from-dist": "^1.0.0", - "path-scurry": "^1.11.1" + "boxen": "^8.0.1", + "chalk": "^5.3.0", + "configstore": "^7.0.0", + "is-in-ci": "^1.0.0", + "is-installed-globally": "^1.0.0", + "is-npm": "^6.0.0", + "latest-version": "^9.0.0", + "pupa": "^3.1.0", + "semver": "^7.6.3", + "xdg-basedir": "^5.1.0" }, - "bin": { - "glob": "dist/esm/bin.mjs" + "engines": { + "node": ">=18" }, "funding": { - "url": "https://github.com/sponsors/isaacs" + "url": "https://github.com/yeoman/update-notifier?sponsor=1" } }, - "node_modules/yeoman-generator/node_modules/cacache/node_modules/minipass": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", - "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", - "license": "ISC", - "engines": { - "node": ">=16 || 14 >=14.17" - } + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "license": "MIT" }, - "node_modules/yeoman-generator/node_modules/debug": { - "version": "4.3.6", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.6.tgz", - "integrity": "sha512-O/09Bd4Z1fBrU4VzkhFqVgpPzaGbw6Sm9FEkBT1A/YBXQFGuuSxa1dN2nxgxS34JmKXqYx8CZAwEVoJFImUXIg==", + "node_modules/uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", "license": "MIT", + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/validate-npm-package-license": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "license": "Apache-2.0", "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" } }, - "node_modules/yeoman-generator/node_modules/fs-minipass": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-3.0.3.tgz", - "integrity": "sha512-XUBA9XClHbnJWSfBzjkm6RvPsyg3sryZt06BEQoXcF7EK/xpGaQYJgQKDJSUH5SGZ76Y7pFx1QBnXz09rU5Fbw==", + "node_modules/validate-npm-package-name": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-7.0.2.tgz", + "integrity": "sha512-hVDIBwsRruT73PbK7uP5ebUt+ezEtCmzZz3F59BSr2F6OVFnJ/6h8liuvdLrQ88Xmnk6/+xGGuq+pG9WwTuy3A==", "license": "ISC", - "dependencies": { - "minipass": "^7.0.3" - }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^20.17.0 || >=22.9.0" } }, - "node_modules/yeoman-generator/node_modules/fs-minipass/node_modules/minipass": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", - "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", - "license": "ISC", + "node_modules/vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", + "license": "MIT", "engines": { - "node": ">=16 || 14 >=14.17" + "node": ">= 0.8" } }, - "node_modules/yeoman-generator/node_modules/gauge": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-4.0.4.tgz", - "integrity": "sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg==", - "deprecated": "This package is no longer supported.", - "license": "ISC", - "dependencies": { - "aproba": "^1.0.3 || ^2.0.0", - "color-support": "^1.1.3", - "console-control-strings": "^1.1.0", - "has-unicode": "^2.0.1", - "signal-exit": "^3.0.7", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1", - "wide-align": "^1.1.5" - }, + "node_modules/version-range": { + "version": "4.15.0", + "resolved": "https://registry.npmjs.org/version-range/-/version-range-4.15.0.tgz", + "integrity": "sha512-Ck0EJbAGxHwprkzFO966t4/5QkRuzh+/I1RxhLgUKKwEn+Cd8NwM60mE3AqBZg5gYODoXW0EFsQvbZjRlvdqbg==", + "license": "Artistic-2.0", "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "node": ">=4" + }, + "funding": { + "url": "https://bevry.me/fund" } }, - "node_modules/yeoman-generator/node_modules/hosted-git-info": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-6.1.1.tgz", - "integrity": "sha512-r0EI+HBMcXadMrugk0GCQ+6BQV39PiWAZVfq7oIckeGiN7sjRGyQxPdft3nQekFTCQbYxLBH+/axZMeH8UX6+w==", - "license": "ISC", + "node_modules/vinyl": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-3.0.1.tgz", + "integrity": "sha512-0QwqXteBNXgnLCdWdvPQBX6FXRHtIH3VhJPTd5Lwn28tJXc34YqSCWUmkOvtJHBmB3gGoPtrOKk3Ts8/kEZ9aA==", + "license": "MIT", "dependencies": { - "lru-cache": "^7.5.1" + "clone": "^2.1.2", + "remove-trailing-separator": "^1.1.0", + "replace-ext": "^2.0.0", + "teex": "^1.0.1" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": ">=10.13.0" } }, - "node_modules/yeoman-generator/node_modules/http-proxy-agent": { + "node_modules/vinyl-file": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz", - "integrity": "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==", + "resolved": "https://registry.npmjs.org/vinyl-file/-/vinyl-file-5.0.0.tgz", + "integrity": "sha512-MvkPF/yA1EX7c6p+juVIvp9+Lxp70YUfNKzEWeHMKpUNVSnTZh2coaOqLxI0pmOe2V9nB+OkgFaMDkodaJUyGw==", "license": "MIT", "dependencies": { - "@tootallnate/once": "2", - "agent-base": "6", - "debug": "4" + "@types/vinyl": "^2.0.7", + "strip-bom-buf": "^3.0.1", + "strip-bom-stream": "^5.0.0", + "vinyl": "^3.0.0" }, "engines": { - "node": ">= 6" + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/yeoman-generator/node_modules/ignore-walk": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-6.0.5.tgz", - "integrity": "sha512-VuuG0wCnjhnylG1ABXT3dAuIpTNDs/G8jlpmwXY03fXoXy/8ZK8/T+hMzt8L4WnrLCJgdybqgPagnF/f97cg3A==", - "license": "ISC", + "node_modules/vite": { + "version": "5.4.21", + "resolved": "https://registry.npmjs.org/vite/-/vite-5.4.21.tgz", + "integrity": "sha512-o5a9xKjbtuhY6Bi5S3+HvbRERmouabWbyUcpXXUA1u+GNUKoROi9byOJ8M0nHbHYHkYICiMlqxkg1KkYmm25Sw==", + "dev": true, + "license": "MIT", "dependencies": { - "minimatch": "^9.0.0" + "esbuild": "^0.21.3", + "postcss": "^8.4.43", + "rollup": "^4.20.0" + }, + "bin": { + "vite": "bin/vite.js" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^18.0.0 || >=20.0.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + }, + "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 + } } }, - "node_modules/yeoman-generator/node_modules/json-parse-even-better-errors": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-3.0.2.tgz", - "integrity": "sha512-fi0NG4bPjCHunUJffmLd0gxssIgkNmArMvis4iNah6Owg1MCJjWhEcDLmsK6iGkJq3tHwbDkTlce70/tmXN4cQ==", + "node_modules/vite-node": { + "version": "2.1.9", + "resolved": "https://registry.npmjs.org/vite-node/-/vite-node-2.1.9.tgz", + "integrity": "sha512-AM9aQ/IPrW/6ENLQg3AGY4K1N2TGZdR5e4gu/MmmR2xR3Ll1+dib+nook92g4TV3PXVyeyxdWwtaCAiUL0hMxA==", + "dev": true, "license": "MIT", + "dependencies": { + "cac": "^6.7.14", + "debug": "^4.3.7", + "es-module-lexer": "^1.5.4", + "pathe": "^1.1.2", + "vite": "^5.0.0" + }, + "bin": { + "vite-node": "vite-node.mjs" + }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^18.0.0 || >=20.0.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" } }, - "node_modules/yeoman-generator/node_modules/lru-cache": { - "version": "7.18.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", - "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", - "license": "ISC", + "node_modules/vitest": { + "version": "2.1.9", + "resolved": "https://registry.npmjs.org/vitest/-/vitest-2.1.9.tgz", + "integrity": "sha512-MSmPM9REYqDGBI8439mA4mWhV5sKmDlBKWIYbA3lRb2PTHACE0mgKwA8yQ2xq9vxDTuk4iPrECBAEW2aoFXY0Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vitest/expect": "2.1.9", + "@vitest/mocker": "2.1.9", + "@vitest/pretty-format": "^2.1.9", + "@vitest/runner": "2.1.9", + "@vitest/snapshot": "2.1.9", + "@vitest/spy": "2.1.9", + "@vitest/utils": "2.1.9", + "chai": "^5.1.2", + "debug": "^4.3.7", + "expect-type": "^1.1.0", + "magic-string": "^0.30.12", + "pathe": "^1.1.2", + "std-env": "^3.8.0", + "tinybench": "^2.9.0", + "tinyexec": "^0.3.1", + "tinypool": "^1.0.1", + "tinyrainbow": "^1.2.0", + "vite": "^5.0.0", + "vite-node": "2.1.9", + "why-is-node-running": "^2.3.0" + }, + "bin": { + "vitest": "vitest.mjs" + }, "engines": { - "node": ">=12" + "node": "^18.0.0 || >=20.0.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + }, + "peerDependencies": { + "@edge-runtime/vm": "*", + "@types/node": "^18.0.0 || >=20.0.0", + "@vitest/browser": "2.1.9", + "@vitest/ui": "2.1.9", + "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 + } } }, - "node_modules/yeoman-generator/node_modules/make-fetch-happen": { - "version": "10.2.1", - "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-10.2.1.tgz", - "integrity": "sha512-NgOPbRiaQM10DYXvN3/hhGVI2M5MtITFryzBGxHM5p4wnFxsVCbxkrBrDsk+EZ5OB4jEOT7AjDxtdF+KVEFT7w==", + "node_modules/walk-up-path": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/walk-up-path/-/walk-up-path-4.0.0.tgz", + "integrity": "sha512-3hu+tD8YzSLGuFYtPRb48vdhKMi0KQV5sn+uWr8+7dMEq/2G/dtLrdDinkLjqq5TIbIBjYJ4Ax/n3YiaW7QM8A==", "license": "ISC", - "dependencies": { - "agentkeepalive": "^4.2.1", - "cacache": "^16.1.0", - "http-cache-semantics": "^4.1.0", - "http-proxy-agent": "^5.0.0", - "https-proxy-agent": "^5.0.0", - "is-lambda": "^1.0.1", - "lru-cache": "^7.7.1", - "minipass": "^3.1.6", - "minipass-collect": "^1.0.2", - "minipass-fetch": "^2.0.3", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "negotiator": "^0.6.3", - "promise-retry": "^2.0.1", - "socks-proxy-agent": "^7.0.0", - "ssri": "^9.0.0" - }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "node": "20 || >=22" } }, - "node_modules/yeoman-generator/node_modules/make-fetch-happen/node_modules/@npmcli/fs": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-2.1.2.tgz", - "integrity": "sha512-yOJKRvohFOaLqipNtwYB9WugyZKhC/DZC4VYPmpaCzDBrA8YpK3qHZ8/HGscMnE4GqbkLNuVcCnxkeQEdGt6LQ==", - "license": "ISC", - "dependencies": { - "@gar/promisify": "^1.1.3", - "semver": "^7.3.5" - }, + "node_modules/walkdir": { + "version": "0.0.11", + "resolved": "https://registry.npmjs.org/walkdir/-/walkdir-0.0.11.tgz", + "integrity": "sha512-lMFYXGpf7eg+RInVL021ZbJJT4hqsvsBvq5sZBp874jfhs3IWlA7OPoG0ojQrYcXHuUSi+Nqp6qGN+pPGaMgPQ==", + "license": "MIT", "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "node": ">=0.6.0" } }, - "node_modules/yeoman-generator/node_modules/make-fetch-happen/node_modules/cacache": { - "version": "16.1.3", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-16.1.3.tgz", - "integrity": "sha512-/+Emcj9DAXxX4cwlLmRI9c166RuL3w30zp4R7Joiv2cQTtTtA+jeuCAjH3ZlGnYS3tKENSrKhAzVVP9GVyzeYQ==", + "node_modules/when-exit": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/when-exit/-/when-exit-2.1.5.tgz", + "integrity": "sha512-VGkKJ564kzt6Ms1dbgPP/yuIoQCrsFAnRbptpC5wOEsDaNsbCB2bnfnaA8i/vRs5tjUSEOtIuvl9/MyVsvQZCg==", + "license": "MIT" + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "inBundle": true, "license": "ISC", "dependencies": { - "@npmcli/fs": "^2.1.0", - "@npmcli/move-file": "^2.0.0", - "chownr": "^2.0.0", - "fs-minipass": "^2.1.0", - "glob": "^8.0.1", - "infer-owner": "^1.0.4", - "lru-cache": "^7.7.1", - "minipass": "^3.1.6", - "minipass-collect": "^1.0.2", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "mkdirp": "^1.0.4", - "p-map": "^4.0.0", - "promise-inflight": "^1.0.1", - "rimraf": "^3.0.2", - "ssri": "^9.0.0", - "tar": "^6.1.11", - "unique-filename": "^2.0.0" + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "node": ">= 8" } }, - "node_modules/yeoman-generator/node_modules/make-fetch-happen/node_modules/fs-minipass": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", - "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", - "license": "ISC", + "node_modules/which-package-manager": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/which-package-manager/-/which-package-manager-1.0.1.tgz", + "integrity": "sha512-Nse2rVsL302dkEhCyyS1U3iEQ9FRYPPkWJNk188xUVkKIGXjMmDPlA3L1VettE+T2z7SGLsJiDaZw//8CHUQwQ==", + "license": "MIT", "dependencies": { - "minipass": "^3.0.0" + "find-up": "^7.0.0", + "micromatch": "^4.0.8" }, "engines": { - "node": ">= 8" + "node": ">=18" } }, - "node_modules/yeoman-generator/node_modules/make-fetch-happen/node_modules/glob": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", - "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", - "deprecated": "Glob versions prior to v9 are no longer supported", - "license": "ISC", + "node_modules/which-typed-array": { + "version": "1.1.20", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.20.tgz", + "integrity": "sha512-LYfpUkmqwl0h9A2HL09Mms427Q1RZWuOHsukfVcKRq9q95iQxdw0ix1JQrqbcDR9PH1QDwf5Qo8OZb5lksZ8Xg==", + "license": "MIT", "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^5.0.1", - "once": "^1.3.0" + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.8", + "call-bound": "^1.0.4", + "for-each": "^0.3.5", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "has-tostringtag": "^1.0.2" }, "engines": { - "node": ">=12" + "node": ">= 0.4" }, "funding": { - "url": "https://github.com/sponsors/isaacs" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/yeoman-generator/node_modules/make-fetch-happen/node_modules/minimatch": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", - "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", - "license": "ISC", + "node_modules/why-is-node-running": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/why-is-node-running/-/why-is-node-running-2.3.0.tgz", + "integrity": "sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w==", + "dev": true, + "license": "MIT", "dependencies": { - "brace-expansion": "^2.0.1" + "siginfo": "^2.0.0", + "stackback": "0.0.2" }, - "engines": { - "node": ">=10" - } - }, - "node_modules/yeoman-generator/node_modules/make-fetch-happen/node_modules/minipass": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", - "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", - "license": "ISC", - "dependencies": { - "yallist": "^4.0.0" + "bin": { + "why-is-node-running": "cli.js" }, "engines": { "node": ">=8" } }, - "node_modules/yeoman-generator/node_modules/make-fetch-happen/node_modules/ssri": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-9.0.1.tgz", - "integrity": "sha512-o57Wcn66jMQvfHG1FlYbWeZWW/dHZhJXjpIcTfXldXEk5nz5lStPo3mK0OJQfGR3RbZUlbISexbljkJzuEj/8Q==", - "license": "ISC", + "node_modules/widest-line": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-5.0.0.tgz", + "integrity": "sha512-c9bZp7b5YtRj2wOe6dlj32MK+Bx/M/d+9VB2SHM1OtsUHR0aV0tdP6DWh/iMt0kWi1t5g1Iudu6hQRNd1A4PVA==", + "license": "MIT", "dependencies": { - "minipass": "^3.1.1" + "string-width": "^7.0.0" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/yeoman-generator/node_modules/make-fetch-happen/node_modules/unique-filename": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-2.0.1.tgz", - "integrity": "sha512-ODWHtkkdx3IAR+veKxFV+VBkUMcN+FaqzUUd7IZzt+0zhDZFPFxhlqwPF3YQvMHx1TD0tdgYl+kuPnJ8E6ql7A==", - "license": "ISC", + "node_modules/widest-line/node_modules/emoji-regex": { + "version": "10.6.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.6.0.tgz", + "integrity": "sha512-toUI84YS5YmxW219erniWD0CIVOo46xGKColeNQRgOzDorgBi1v4D71/OFzgD9GO2UGKIv1C3Sp8DAn0+j5w7A==", + "license": "MIT" + }, + "node_modules/widest-line/node_modules/string-width": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-7.2.0.tgz", + "integrity": "sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==", + "license": "MIT", "dependencies": { - "unique-slug": "^3.0.0" + "emoji-regex": "^10.3.0", + "get-east-asian-width": "^1.0.0", + "strip-ansi": "^7.1.0" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/yeoman-generator/node_modules/make-fetch-happen/node_modules/unique-slug": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-3.0.0.tgz", - "integrity": "sha512-8EyMynh679x/0gqE9fT9oilG+qEt+ibFyqjuVTsZn1+CMxH+XLlpvr2UZx4nVcCwTpx81nICr2JQFkM+HPLq4w==", - "license": "ISC", + "node_modules/wrap-ansi": { + "version": "9.0.2", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-9.0.2.tgz", + "integrity": "sha512-42AtmgqjV+X1VpdOfyTGOYRi0/zsoLqtXQckTmqTeybT+BDIbM/Guxo7x3pE2vtpr1ok6xRqM9OpBe+Jyoqyww==", + "license": "MIT", "dependencies": { - "imurmurhash": "^0.1.4" + "ansi-styles": "^6.2.1", + "string-width": "^7.0.0", + "strip-ansi": "^7.1.0" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "node": ">=18" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, - "node_modules/yeoman-generator/node_modules/minimatch": { - "version": "9.0.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", - "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", - "license": "ISC", + "node_modules/wrap-ansi-cjs": { + "name": "wrap-ansi", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "license": "MIT", "dependencies": { - "brace-expansion": "^2.0.1" + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" }, "engines": { - "node": ">=16 || 14 >=14.17" + "node": ">=10" }, "funding": { - "url": "https://github.com/sponsors/isaacs" + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, - "node_modules/yeoman-generator/node_modules/minipass": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", - "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", - "license": "ISC", + "node_modules/wrap-ansi-cjs/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "license": "MIT", "engines": { "node": ">=8" } }, - "node_modules/yeoman-generator/node_modules/minipass-fetch": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-2.1.2.tgz", - "integrity": "sha512-LT49Zi2/WMROHYoqGgdlQIZh8mLPZmOrN2NdJjMXxYe4nkN6FUyuPuOAOedNJDrx0IRGg9+4guZewtp8hE6TxA==", + "node_modules/wrap-ansi-cjs/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "license": "MIT", "dependencies": { - "minipass": "^3.1.6", - "minipass-sized": "^1.0.3", - "minizlib": "^2.1.2" + "color-convert": "^2.0.1" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "node": ">=8" }, - "optionalDependencies": { - "encoding": "^0.1.13" + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/yeoman-generator/node_modules/minipass-fetch/node_modules/minipass": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", - "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", - "license": "ISC", + "node_modules/wrap-ansi-cjs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "license": "MIT" + }, + "node_modules/wrap-ansi-cjs/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "license": "MIT", "dependencies": { - "yallist": "^4.0.0" + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" }, "engines": { "node": ">=8" } }, - "node_modules/yeoman-generator/node_modules/mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "node_modules/wrap-ansi-cjs/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "license": "MIT", - "bin": { - "mkdirp": "bin/cmd.js" + "dependencies": { + "ansi-regex": "^5.0.1" }, "engines": { - "node": ">=10" + "node": ">=8" } }, - "node_modules/yeoman-generator/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "node_modules/wrap-ansi/node_modules/emoji-regex": { + "version": "10.6.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.6.0.tgz", + "integrity": "sha512-toUI84YS5YmxW219erniWD0CIVOo46xGKColeNQRgOzDorgBi1v4D71/OFzgD9GO2UGKIv1C3Sp8DAn0+j5w7A==", "license": "MIT" }, - "node_modules/yeoman-generator/node_modules/node-gyp": { - "version": "9.4.1", - "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-9.4.1.tgz", - "integrity": "sha512-OQkWKbjQKbGkMf/xqI1jjy3oCTgMKJac58G2+bjZb3fza6gW2YrCSdMQYaoTb70crvE//Gngr4f0AgVHmqHvBQ==", + "node_modules/wrap-ansi/node_modules/string-width": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-7.2.0.tgz", + "integrity": "sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==", "license": "MIT", "dependencies": { - "env-paths": "^2.2.0", - "exponential-backoff": "^3.1.1", - "glob": "^7.1.4", - "graceful-fs": "^4.2.6", - "make-fetch-happen": "^10.0.3", - "nopt": "^6.0.0", - "npmlog": "^6.0.0", - "rimraf": "^3.0.2", - "semver": "^7.3.5", - "tar": "^6.1.2", - "which": "^2.0.2" - }, - "bin": { - "node-gyp": "bin/node-gyp.js" + "emoji-regex": "^10.3.0", + "get-east-asian-width": "^1.0.0", + "strip-ansi": "^7.1.0" }, "engines": { - "node": "^12.13 || ^14.13 || >=16" + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/yeoman-generator/node_modules/node-gyp/node_modules/which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "license": "ISC" + }, + "node_modules/write-file-atomic": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-7.0.0.tgz", + "integrity": "sha512-YnlPC6JqnZl6aO4uRc+dx5PHguiR9S6WeoLtpxNT9wIG+BDya7ZNE1q7KOjVgaA73hKhKLpVPgJ5QA9THQ5BRg==", "license": "ISC", "dependencies": { - "isexe": "^2.0.0" + "imurmurhash": "^0.1.4", + "signal-exit": "^4.0.1" }, - "bin": { - "node-which": "bin/node-which" + "engines": { + "node": "^20.17.0 || >=22.9.0" + } + }, + "node_modules/ws": { + "version": "8.19.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.19.0.tgz", + "integrity": "sha512-blAT2mjOEIi0ZzruJfIhb3nps74PRWTCz1IjglWEEpQl5XS/UNama6u2/rjFkDDouqr4L67ry+1aGIALViWjDg==", + "license": "MIT", + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": ">=5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/wsl-utils": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/wsl-utils/-/wsl-utils-0.3.1.tgz", + "integrity": "sha512-g/eziiSUNBSsdDJtCLB8bdYEUMj4jR7AGeUo96p/3dTafgjHhpF4RiCFPiRILwjQoDXx5MqkBr4fwWtR3Ky4Wg==", + "license": "MIT", + "dependencies": { + "is-wsl": "^3.1.0", + "powershell-utils": "^0.1.0" }, "engines": { - "node": ">= 8" + "node": ">=20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/yeoman-generator/node_modules/nopt": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-6.0.0.tgz", - "integrity": "sha512-ZwLpbTgdhuZUnZzjd7nb1ZV+4DoiC6/sfiVKok72ym/4Tlf+DFdlHYmT2JPmcNNWV6Pi3SDf1kT+A4r9RTuT9g==", - "license": "ISC", + "node_modules/wsl-utils/node_modules/is-wsl": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-3.1.0.tgz", + "integrity": "sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw==", + "license": "MIT", "dependencies": { - "abbrev": "^1.0.0" + "is-inside-container": "^1.0.0" }, - "bin": { - "nopt": "bin/nopt.js" + "engines": { + "node": ">=16" }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/xdg-basedir": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-5.1.0.tgz", + "integrity": "sha512-GCPAHLvrIH13+c0SuacwvRYj2SxJXQ4kaVTT5xgL3kPrz56XxkF21IGhjSE1+W0aw7gpBWRGXLCPnPby6lSpmQ==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", + "license": "MIT", "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "node": ">=0.4" } }, - "node_modules/yeoman-generator/node_modules/npm-bundled": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-3.0.1.tgz", - "integrity": "sha512-+AvaheE/ww1JEwRHOrn4WHNzOxGtVp+adrg2AeZS/7KuxGUYFuBta98wYpfHBbJp6Tg6j1NKSEVHNcfZzJHQwQ==", - "license": "ISC", - "dependencies": { - "npm-normalize-package-bin": "^3.0.0" - }, + "node_modules/yallist": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-5.0.0.tgz", + "integrity": "sha512-YgvUTfwqyc7UXVMrB+SImsVYSmTS8X/tSrtdNZMImM+n7+QTriRXyXim0mBrTXNeqzVF0KWGgHPeiyViFFrNDw==", + "license": "BlueOak-1.0.0", "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": ">=18" } }, - "node_modules/yeoman-generator/node_modules/npm-install-checks": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/npm-install-checks/-/npm-install-checks-6.3.0.tgz", - "integrity": "sha512-W29RiK/xtpCGqn6f3ixfRYGk+zRyr+Ew9F2E20BfXxT5/euLdA/Nm7fO7OeTGuAmTs30cpgInyJ0cYe708YTZw==", + "node_modules/yeoman-environment": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/yeoman-environment/-/yeoman-environment-5.1.2.tgz", + "integrity": "sha512-NFNm3T+Lk+57Lp+4SSnUdcHwSlyD5yq7KvDwx0xIUg5GngNPezWHLaejWRj3j26xgmlJXUw9371p1LZzv4s/6g==", "license": "BSD-2-Clause", "dependencies": { - "semver": "^7.1.1" + "@yeoman/adapter": "^3.1.0", + "@yeoman/conflicter": "^4.0.0", + "@yeoman/namespace": "^1.0.1", + "@yeoman/transform": "^2.1.0", + "@yeoman/types": "^1.8.0", + "arrify": "^3.0.0", + "chalk": "^5.5.0", + "commander": "^14.0.0", + "debug": "^4.4.1", + "execa": "^9.6.0", + "fly-import": "^1.0.0", + "globby": "^16.0.0", + "grouped-queue": "^2.1.0", + "locate-path": "^8.0.0", + "lodash-es": "^4.17.21", + "mem-fs": "^4.1.2", + "mem-fs-editor": "^11.1.4", + "semver": "^7.7.2", + "slash": "^5.1.0", + "untildify": "^6.0.0", + "which-package-manager": "^1.0.1" + }, + "acceptDependencies": { + "@yeoman/adapter": ">=3.0.0" + }, + "bin": { + "yoe": "bin/bin.cjs" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^20.17.0 || >=22.9.0" + }, + "peerDependencies": { + "@yeoman/adapter": "^3.0.0", + "@yeoman/types": "^1.8.0", + "mem-fs": "^4.1.2" } }, - "node_modules/yeoman-generator/node_modules/npm-normalize-package-bin": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-3.0.1.tgz", - "integrity": "sha512-dMxCf+zZ+3zeQZXKxmyuCKlIDPGuv8EF940xbkC4kQVDTtqoh6rJFO+JTKSA6/Rwi0getWmtuy4Itup0AMcaDQ==", - "license": "ISC", + "node_modules/yeoman-environment/node_modules/commander": { + "version": "14.0.2", + "resolved": "https://registry.npmjs.org/commander/-/commander-14.0.2.tgz", + "integrity": "sha512-TywoWNNRbhoD0BXs1P3ZEScW8W5iKrnbithIl0YH+uCmBd0QpPOA8yc82DS3BIE5Ma6FnBVUsJ7wVUDz4dvOWQ==", + "license": "MIT", "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": ">=20" } }, - "node_modules/yeoman-generator/node_modules/npm-package-arg": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-10.1.0.tgz", - "integrity": "sha512-uFyyCEmgBfZTtrKk/5xDfHp6+MdrqGotX/VoOyEEl3mBwiEE5FlBaePanazJSVMPT7vKepcjYBY2ztg9A3yPIA==", - "license": "ISC", + "node_modules/yeoman-environment/node_modules/execa": { + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-9.6.1.tgz", + "integrity": "sha512-9Be3ZoN4LmYR90tUoVu2te2BsbzHfhJyfEiAVfz7N5/zv+jduIfLrV2xdQXOHbaD6KgpGdO9PRPM1Y4Q9QkPkA==", + "license": "MIT", "dependencies": { - "hosted-git-info": "^6.0.0", - "proc-log": "^3.0.0", - "semver": "^7.3.5", - "validate-npm-package-name": "^5.0.0" + "@sindresorhus/merge-streams": "^4.0.0", + "cross-spawn": "^7.0.6", + "figures": "^6.1.0", + "get-stream": "^9.0.0", + "human-signals": "^8.0.1", + "is-plain-obj": "^4.1.0", + "is-stream": "^4.0.1", + "npm-run-path": "^6.0.0", + "pretty-ms": "^9.2.0", + "signal-exit": "^4.1.0", + "strip-final-newline": "^4.0.0", + "yoctocolors": "^2.1.1" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/yeoman-generator/node_modules/npm-packlist": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-7.0.4.tgz", - "integrity": "sha512-d6RGEuRrNS5/N84iglPivjaJPxhDbZmlbTwTDX2IbcRHG5bZCdtysYMhwiPvcF4GisXHGn7xsxv+GQ7T/02M5Q==", - "license": "ISC", - "dependencies": { - "ignore-walk": "^6.0.0" + "node": "^18.19.0 || >=20.5.0" }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" } }, - "node_modules/yeoman-generator/node_modules/npm-pick-manifest": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-8.0.2.tgz", - "integrity": "sha512-1dKY+86/AIiq1tkKVD3l0WI+Gd3vkknVGAggsFeBkTvbhMQ1OND/LKkYv4JtXPKUJ8bOTCyLiqEg2P6QNdK+Gg==", - "license": "ISC", + "node_modules/yeoman-environment/node_modules/get-stream": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-9.0.1.tgz", + "integrity": "sha512-kVCxPF3vQM/N0B1PmoqVUqgHP+EeVjmZSQn+1oCRPxd2P21P2F19lIgbR3HBosbB1PUhOAoctJnfEn2GbN2eZA==", + "license": "MIT", "dependencies": { - "npm-install-checks": "^6.0.0", - "npm-normalize-package-bin": "^3.0.0", - "npm-package-arg": "^10.0.0", - "semver": "^7.3.5" + "@sec-ant/readable-stream": "^0.4.1", + "is-stream": "^4.0.1" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/yeoman-generator/node_modules/npm-registry-fetch": { - "version": "14.0.5", - "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-14.0.5.tgz", - "integrity": "sha512-kIDMIo4aBm6xg7jOttupWZamsZRkAqMqwqqbVXnUqstY5+tapvv6bkH/qMR76jdgV+YljEUCyWx3hRYMrJiAgA==", - "license": "ISC", - "dependencies": { - "make-fetch-happen": "^11.0.0", - "minipass": "^5.0.0", - "minipass-fetch": "^3.0.0", - "minipass-json-stream": "^1.0.1", - "minizlib": "^2.1.2", - "npm-package-arg": "^10.0.0", - "proc-log": "^3.0.0" - }, + "node_modules/yeoman-environment/node_modules/human-signals": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-8.0.1.tgz", + "integrity": "sha512-eKCa6bwnJhvxj14kZk5NCPc6Hb6BdsU9DZcOnmQKSnO1VKrfV0zCvtttPZUsBvjmNDn8rpcJfpwSYnHBjc95MQ==", + "license": "Apache-2.0", "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": ">=18.18.0" } }, - "node_modules/yeoman-generator/node_modules/npm-registry-fetch/node_modules/make-fetch-happen": { - "version": "11.1.1", - "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-11.1.1.tgz", - "integrity": "sha512-rLWS7GCSTcEujjVBs2YqG7Y4643u8ucvCJeSRqiLYhesrDuzeuFIk37xREzAsfQaqzl8b9rNCE4m6J8tvX4Q8w==", - "license": "ISC", - "dependencies": { - "agentkeepalive": "^4.2.1", - "cacache": "^17.0.0", - "http-cache-semantics": "^4.1.1", - "http-proxy-agent": "^5.0.0", - "https-proxy-agent": "^5.0.0", - "is-lambda": "^1.0.1", - "lru-cache": "^7.7.1", - "minipass": "^5.0.0", - "minipass-fetch": "^3.0.0", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "negotiator": "^0.6.3", - "promise-retry": "^2.0.1", - "socks-proxy-agent": "^7.0.0", - "ssri": "^10.0.0" - }, + "node_modules/yeoman-environment/node_modules/is-stream": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-4.0.1.tgz", + "integrity": "sha512-Dnz92NInDqYckGEUJv689RbRiTSEHCQ7wOVeALbkOz999YpqT46yMRIGtSNl2iCL1waAZSx40+h59NV/EwzV/A==", + "license": "MIT", "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/yeoman-generator/node_modules/npm-registry-fetch/node_modules/minipass-fetch": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-3.0.5.tgz", - "integrity": "sha512-2N8elDQAtSnFV0Dk7gt15KHsS0Fyz6CbYZ360h0WTYV1Ty46li3rAXVOQj1THMNLdmrD9Vt5pBPtWtVkpwGBqg==", + "node_modules/yeoman-environment/node_modules/npm-run-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-6.0.0.tgz", + "integrity": "sha512-9qny7Z9DsQU8Ou39ERsPU4OZQlSTP47ShQzuKZ6PRXpYLtIFgl/DEBYEXKlvcEa+9tHVcK8CF81Y2V72qaZhWA==", "license": "MIT", "dependencies": { - "minipass": "^7.0.3", - "minipass-sized": "^1.0.3", - "minizlib": "^2.1.2" + "path-key": "^4.0.0", + "unicorn-magic": "^0.3.0" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": ">=18" }, - "optionalDependencies": { - "encoding": "^0.1.13" + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/yeoman-generator/node_modules/npm-registry-fetch/node_modules/minipass-fetch/node_modules/minipass": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", - "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", - "license": "ISC", + "node_modules/yeoman-environment/node_modules/path-key": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz", + "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==", + "license": "MIT", "engines": { - "node": ">=16 || 14 >=14.17" - } - }, - "node_modules/yeoman-generator/node_modules/npmlog": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-6.0.2.tgz", - "integrity": "sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg==", - "deprecated": "This package is no longer supported.", - "license": "ISC", - "dependencies": { - "are-we-there-yet": "^3.0.0", - "console-control-strings": "^1.1.0", - "gauge": "^4.0.3", - "set-blocking": "^2.0.0" + "node": ">=12" }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/yeoman-generator/node_modules/pacote": { - "version": "15.2.0", - "resolved": "https://registry.npmjs.org/pacote/-/pacote-15.2.0.tgz", - "integrity": "sha512-rJVZeIwHTUta23sIZgEIM62WYwbmGbThdbnkt81ravBplQv+HjyroqnLRNH2+sLJHcGZmLRmhPwACqhfTcOmnA==", - "license": "ISC", - "dependencies": { - "@npmcli/git": "^4.0.0", - "@npmcli/installed-package-contents": "^2.0.1", - "@npmcli/promise-spawn": "^6.0.1", - "@npmcli/run-script": "^6.0.0", - "cacache": "^17.0.0", - "fs-minipass": "^3.0.0", - "minipass": "^5.0.0", - "npm-package-arg": "^10.0.0", - "npm-packlist": "^7.0.0", - "npm-pick-manifest": "^8.0.0", - "npm-registry-fetch": "^14.0.0", - "proc-log": "^3.0.0", - "promise-retry": "^2.0.1", - "read-package-json": "^6.0.0", - "read-package-json-fast": "^3.0.0", - "sigstore": "^1.3.0", - "ssri": "^10.0.0", - "tar": "^6.1.11" - }, - "bin": { - "pacote": "lib/bin.js" - }, + "node_modules/yeoman-environment/node_modules/strip-final-newline": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-4.0.0.tgz", + "integrity": "sha512-aulFJcD6YK8V1G7iRB5tigAP4TsHBZZrOV8pjV++zdUwmeV8uzbY7yn6h9MswN62adStNZFuCIx4haBnRuMDaw==", + "license": "MIT", "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/yeoman-generator/node_modules/proc-log": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-3.0.0.tgz", - "integrity": "sha512-++Vn7NS4Xf9NacaU9Xq3URUuqZETPsf8L4j5/ckhaRYsfPeRyzGw+iDjFhV/Jr3uNmTvvddEJFWh5R1gRgUH8A==", - "license": "ISC", + "node_modules/yeoman-environment/node_modules/unicorn-magic": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/unicorn-magic/-/unicorn-magic-0.3.0.tgz", + "integrity": "sha512-+QBBXBCvifc56fsbuxZQ6Sic3wqqc3WWaqxs58gvJrcOuN83HGTCwz3oS5phzU9LthRNE9VrJCFCLUgHeeFnfA==", + "license": "MIT", "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/yeoman-generator/node_modules/read-package-json-fast": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/read-package-json-fast/-/read-package-json-fast-3.0.2.tgz", - "integrity": "sha512-0J+Msgym3vrLOUB3hzQCuZHII0xkNGCtz/HJH9xZshwv9DbDwkw1KaE3gx/e2J5rpEY5rtOy6cyhKOPrkP7FZw==", - "license": "ISC", + "node_modules/yeoman-generator": { + "version": "7.5.1", + "resolved": "https://registry.npmjs.org/yeoman-generator/-/yeoman-generator-7.5.1.tgz", + "integrity": "sha512-MYncRvzSTd71BMwiUMAVhfX00sDD8DZDrmPzRxQkWuWQ0V1Qt4Rd0gS/Nee2QDTWvRjvCa+KBfiAVrtOySq+JA==", + "license": "BSD-2-Clause", "dependencies": { - "json-parse-even-better-errors": "^3.0.0", - "npm-normalize-package-bin": "^3.0.0" + "@types/lodash-es": "^4.17.9", + "@yeoman/namespace": "^1.0.0", + "chalk": "^5.3.0", + "debug": "^4.1.1", + "execa": "^8.0.1", + "github-username": "^9.0.0", + "json-schema": "^0.4.0", + "latest-version": "^9.0.0", + "lodash-es": "^4.17.21", + "mem-fs-editor": "^11.0.1", + "minimist": "^1.2.8", + "read-package-up": "^11.0.0", + "semver": "^7.5.4", + "simple-git": "^3.20.0", + "sort-keys": "^5.0.0", + "text-table": "^0.2.0" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" + }, + "peerDependencies": { + "@types/node": ">=18.18.5", + "@yeoman/types": "^1.1.1", + "mem-fs": "^4.0.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } } }, - "node_modules/yeoman-generator/node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "deprecated": "Rimraf versions prior to v4 are no longer supported", - "license": "ISC", + "node_modules/yeoman-generator/node_modules/execa": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-8.0.1.tgz", + "integrity": "sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==", + "license": "MIT", "dependencies": { - "glob": "^7.1.3" + "cross-spawn": "^7.0.3", + "get-stream": "^8.0.1", + "human-signals": "^5.0.0", + "is-stream": "^3.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^5.1.0", + "onetime": "^6.0.0", + "signal-exit": "^4.1.0", + "strip-final-newline": "^3.0.0" }, - "bin": { - "rimraf": "bin.js" + "engines": { + "node": ">=16.17" }, "funding": { - "url": "https://github.com/sponsors/isaacs" + "url": "https://github.com/sindresorhus/execa?sponsor=1" } }, - "node_modules/yeoman-generator/node_modules/socks-proxy-agent": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-7.0.0.tgz", - "integrity": "sha512-Fgl0YPZ902wEsAyiQ+idGd1A7rSFx/ayC1CQVMw5P+EQx2V0SgpGtf6OKFhVjPflPUl9YMmEOnmfjCdMUsygww==", + "node_modules/yeoman-generator/node_modules/get-stream": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-8.0.1.tgz", + "integrity": "sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==", "license": "MIT", - "dependencies": { - "agent-base": "^6.0.2", - "debug": "^4.3.3", - "socks": "^2.6.2" + "engines": { + "node": ">=16" }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/yeoman-generator/node_modules/human-signals": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-5.0.0.tgz", + "integrity": "sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==", + "license": "Apache-2.0", "engines": { - "node": ">= 10" + "node": ">=16.17.0" } }, - "node_modules/yeoman-generator/node_modules/ssri": { - "version": "10.0.6", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-10.0.6.tgz", - "integrity": "sha512-MGrFH9Z4NP9Iyhqn16sDtBpRRNJ0Y2hNa6D65h736fVSaPCHr4DM4sWUNvVaSuC+0OBGhwsrydQwmgfg5LncqQ==", - "license": "ISC", - "dependencies": { - "minipass": "^7.0.3" - }, + "node_modules/yeoman-generator/node_modules/is-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz", + "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==", + "license": "MIT", "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/yeoman-generator/node_modules/ssri/node_modules/minipass": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", - "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", - "license": "ISC", + "node_modules/yeoman-generator/node_modules/mimic-fn": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz", + "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==", + "license": "MIT", "engines": { - "node": ">=16 || 14 >=14.17" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/yeoman-generator/node_modules/unique-filename": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-3.0.0.tgz", - "integrity": "sha512-afXhuC55wkAmZ0P18QsVE6kp8JaxrEokN2HGIoIVv2ijHQd419H0+6EigAFcIzXeMIkcIkNBpB3L/DXB3cTS/g==", - "license": "ISC", + "node_modules/yeoman-generator/node_modules/npm-run-path": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.3.0.tgz", + "integrity": "sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==", + "license": "MIT", "dependencies": { - "unique-slug": "^4.0.0" + "path-key": "^4.0.0" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/yeoman-generator/node_modules/unique-slug": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-4.0.0.tgz", - "integrity": "sha512-WrcA6AyEfqDX5bWige/4NQfPZMtASNVxdmWR76WESYQVAACSgWcR6e9i0mofqqBxYFtL4oAxPIptY73/0YE1DQ==", - "license": "ISC", + "node_modules/yeoman-generator/node_modules/onetime": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz", + "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", + "license": "MIT", "dependencies": { - "imurmurhash": "^0.1.4" + "mimic-fn": "^4.0.0" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/yeoman-generator/node_modules/validate-npm-package-name": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-5.0.1.tgz", - "integrity": "sha512-OljLrQ9SQdOUqTaQxqL5dEfZWrXExyyWsozYlAWFawPVNuD83igl7uJD2RTkNMbniIYgt8l81eCJGIdQF7avLQ==", - "license": "ISC", + "node_modules/yeoman-generator/node_modules/path-key": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz", + "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==", + "license": "MIT", "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/yeoman-generator/node_modules/which": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/which/-/which-3.0.1.tgz", - "integrity": "sha512-XA1b62dzQzLfaEOSQFTCOd5KFf/1VSzZo7/7TUjnya6u0vGGKzU96UQBZTAThCb2j4/xjBAyii1OhRLJEivHvg==", - "license": "ISC", - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/which.js" - }, + "node_modules/yeoman-generator/node_modules/strip-final-newline": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz", + "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==", + "license": "MIT", "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/yeoman-generator/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "license": "ISC" - }, "node_modules/yocto-queue": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", - "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.2.2.tgz", + "integrity": "sha512-4LCcse/U2MHZ63HAJVE+v71o7yOdIe4cZ70Wpf8D/IyjDKYQLV5GD46B+hSTjJsvV5PztjvHoU580EftxjDZFQ==", "license": "MIT", "engines": { - "node": ">=10" + "node": ">=12.20" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/zip-stream": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/zip-stream/-/zip-stream-4.1.1.tgz", - "integrity": "sha512-9qv4rlDiopXg4E69k+vMHjNN63YFMe9sZMrdlvKnCjlCRWeCBswPPMPUfx+ipsAWq1LXHe70RcbaHdJJpS6hyQ==", + "node_modules/yoctocolors": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/yoctocolors/-/yoctocolors-2.1.2.tgz", + "integrity": "sha512-CzhO+pFNo8ajLM2d2IW/R93ipy99LWjtwblvC1RsoSUMZgyLbYFr221TnSNT7GjGdYui6P459mw9JH/g/zW2ug==", "license": "MIT", - "dependencies": { - "archiver-utils": "^3.0.4", - "compress-commons": "^4.1.2", - "readable-stream": "^3.6.0" + "engines": { + "node": ">=18" }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/yoctocolors-cjs": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/yoctocolors-cjs/-/yoctocolors-cjs-2.1.3.tgz", + "integrity": "sha512-U/PBtDf35ff0D8X8D0jfdzHYEPFxAI7jJlxZXwCSez5M3190m+QobIfh+sWDWSHMCWWJN2AWamkegn6vr6YBTw==", + "license": "MIT", "engines": { - "node": ">= 10" + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/zip-stream/node_modules/archiver-utils": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/archiver-utils/-/archiver-utils-3.0.4.tgz", - "integrity": "sha512-KVgf4XQVrTjhyWmx6cte4RxonPLR9onExufI1jhvw/MQ4BB6IsZD5gT8Lq+u/+pRkWna/6JoHpiQioaqFP5Rzw==", + "node_modules/zip-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/zip-stream/-/zip-stream-6.0.1.tgz", + "integrity": "sha512-zK7YHHz4ZXpW89AHXUPbQVGKI7uvkd3hzusTdotCg1UxyaVtg0zFJSTfW/Dq5f7OBBVnq6cZIaC8Ti4hb6dtCA==", "license": "MIT", "dependencies": { - "glob": "^7.2.3", - "graceful-fs": "^4.2.0", - "lazystream": "^1.0.0", - "lodash.defaults": "^4.2.0", - "lodash.difference": "^4.5.0", - "lodash.flatten": "^4.4.0", - "lodash.isplainobject": "^4.0.6", - "lodash.union": "^4.6.0", - "normalize-path": "^3.0.0", - "readable-stream": "^3.6.0" + "archiver-utils": "^5.0.0", + "compress-commons": "^6.0.2", + "readable-stream": "^4.0.0" }, "engines": { - "node": ">= 10" + "node": ">= 14" } } } diff --git a/package.json b/package.json index e002cfbc..1a28d6fc 100644 --- a/package.json +++ b/package.json @@ -2,9 +2,10 @@ "name": "@platformos/pos-cli", "version": "5.5.0", "description": "Manage your platformOS application", + "type": "module", "scripts": { - "test": "jest --runInBand", - "test-watch": "jest --watchAll --runInBand", + "test": "vitest run", + "test:watch": "vitest", "postinstall": "node ./scripts/check-node-version.js" }, "files": [ @@ -18,7 +19,7 @@ ], "main": "./bin/pos-cli.js", "engines": { - "node": ">=18" + "node": ">=20" }, "keywords": [ "pos-cli", @@ -26,18 +27,18 @@ "pOS" ], "dependencies": { - "archiver": "^5.3.0", + "archiver": "^7.0.1", "archiver-promise": "^1.0.0", - "chalk": "^4.1.2", - "chokidar": "^3.5.3", + "chalk": "^5.6.2", + "chokidar": "^5.0.0", "commander": "^12.1.0", "degit": "^2.8.4", "email-validator": "^2.0.4", - "express": "^4.17.3", + "express": "^5.2.1", "fast-glob": "^3.2.11", - "ignore": "^5.2.0", - "inquirer": "^8.2.0", - "livereload": "^0.9.3", + "ignore": "^7.0.5", + "inquirer": "^13.2.0", + "livereload": "^0.10.3", "lodash.clonedeep": "^4.5.0", "lodash.compact": "^3.0.1", "lodash.debounce": "^4.0.8", @@ -46,22 +47,20 @@ "lodash.reject": "^4.6.0", "lodash.startcase": "^4.4.0", "lodash.uniq": "^4.5.0", - "mime": "^3.0.0", - "multer": "^1.4.5-lts.1", + "mime": "^4.1.0", + "multer": "^2.0.2", "mustache": "^4.2.0", "node-notifier": "^10.0.1", - "open": "^10.1.0", - "ora": "^8.0.1", + "open": "^11.0.0", + "ora": "^9.0.0", "prompts": "^2.4.2", - "request": "^2.88.2", - "request-promise": "^4.2.6", - "semver": "^7.3.7", - "shelljs": "^0.8.5", + "semver": "^7.7.3", + "shelljs": "^0.10.0", "text-table": "^0.2.0", "unzipper": "^0.12.3", - "update-notifier": "^5.1.0", - "yeoman-environment": "^3.19.3", - "yeoman-generator": "^5.9.0" + "update-notifier": "^7.3.1", + "yeoman-environment": "^5.1.2", + "yeoman-generator": "^7.5.1" }, "preferGlobal": true, "bin": { @@ -90,19 +89,14 @@ }, "homepage": "https://github.com/Platform-OS/pos-cli/issues#readme", "devDependencies": { - "dotenv": "^16.0.0", - "jest": "^29.7.0" + "dotenv": "^16.6.1", + "vitest": "^2.1.9" }, "bundleDependencies": [ "commander", "degit", "shelljs" ], - "jest": { - "testPathIgnorePatterns": [ - "gui/next" - ] - }, "optionalDependencies": { "fsevents": "^2.3.3" } diff --git a/scripts/check-node-version.js b/scripts/check-node-version.js index 4443cbf6..0db51d32 100644 --- a/scripts/check-node-version.js +++ b/scripts/check-node-version.js @@ -1,8 +1,10 @@ #!/usr/bin/env node -const semver = require('semver'); -const engines = require('../package.json').engines; -const logger = require('../lib/logger'); +import semver from 'semver'; +import pkg from '../package.json' with { type: "json" }; +import logger from '../lib/logger.js'; + +const { engines } = pkg; const version = engines.node; if (!semver.satisfies(process.version, version)) { diff --git a/test/audit.test.js b/test/audit.test.js index c362c183..3dd0f690 100644 --- a/test/audit.test.js +++ b/test/audit.test.js @@ -1,6 +1,7 @@ -const exec = require('./utils/exec'); -const cliPath = require('./utils/cliPath'); -const path = require('path'); +import exec from './utils/exec'; +import cliPath from './utils/cliPath'; +import path from 'path'; + const cwd = name => path.join(process.cwd(), 'test', 'fixtures', 'audit', name); const run = fixtureName => exec(`${cliPath} audit`, { cwd: cwd(fixtureName) }); @@ -81,11 +82,4 @@ describe('Audit - orphaned includes', () => { expect(stderr).not.toMatch(path.join('app', 'views', 'partials', 'included_partial_2.liquid')); expect(stderr).not.toMatch(path.join('app', 'views', 'partials', 'shared', 'head.liquid')); }); - - // test('Drops out on variable include', async () => { - // const { stderr } = await run('orphanedIncludes_variable'); - - // expect(stderr).toMatch('Found partial included using a variable in: app/views/pages/home.liquid'); - // expect(stderr).toMatch('[Audit] 0 rules detected issues.'); - // }); }); diff --git a/test/data.test.js b/test/data.test.js index f4dfaf38..8143e61c 100644 --- a/test/data.test.js +++ b/test/data.test.js @@ -1,5 +1,5 @@ -const exec = require('./utils/exec'); -const cliPath = require('./utils/cliPath'); +import exec from './utils/exec'; +import cliPath from './utils/cliPath'; const env = Object.assign(process.env, { CI: true, @@ -23,4 +23,3 @@ describe('Data import', () => { expect(code).toEqual(1); }); }); - diff --git a/test/lib/modules/dependencies.test.js b/test/dependencies.test.js similarity index 83% rename from test/lib/modules/dependencies.test.js rename to test/dependencies.test.js index 9e76fe9b..7244cff8 100644 --- a/test/lib/modules/dependencies.test.js +++ b/test/dependencies.test.js @@ -1,5 +1,5 @@ -const dependencies = require('../../../lib/modules/dependencies'); -const isEqual = require('lodash.isequal'); +import { resolveDependencies, findModuleVersion } from '../lib/modules/dependencies'; +import isEqual from 'lodash.isequal'; test('resolveDependencies ok', async () => { const core = {"module":"core","versions":{"1.0.0":{"dependencies":{}}, "1.5.0":{"dependencies":{}}, "1.6.0":{"dependencies":{}}, "1.8.0":{"dependencies":{}}}}; @@ -28,7 +28,7 @@ test('resolveDependencies ok', async () => { "a": "1.0.0" }; - const data = await dependencies.resolveDependencies(rootModules, modulesVersions); + const data = await resolveDependencies(rootModules, modulesVersions); expect(data).toEqual( { @@ -61,7 +61,7 @@ test('resolveDependencies do not use newest available version but the one define "core": "1.6.1" }; - const data = await dependencies.resolveDependencies(rootModules, modulesVersions, rootModules); + const data = await resolveDependencies(rootModules, modulesVersions, rootModules); expect(data).toEqual( { @@ -77,7 +77,7 @@ test('find module with newest version', async () => { return [{"module":"core","versions":{"1.0.0":{"dependencies":{}}, "1.5.0":{"dependencies":{}}}}]; }; - const data = await dependencies.findModuleVersion("core", null, modulesVersions); + const data = await findModuleVersion("core", null, modulesVersions); expect(data).toEqual({ "core": "1.5.0" }); }); @@ -87,7 +87,7 @@ test('find module with newest stable version', async () => { return [{"module":"core","versions":{"1.0.0":{"dependencies":{}}, "1.5.0":{"dependencies":{}}, "1.5.1-beta.1":{"dependencies":{}}}}]; }; - const data = await dependencies.findModuleVersion("core", null, modulesVersions); + const data = await findModuleVersion("core", null, modulesVersions); expect(data).toEqual({ "core": "1.5.0" }); }); @@ -95,7 +95,7 @@ test('find module with newest stable version', async () => { test('find module with requested version', async () => { const modulesVersions = async (modulesNames) => [{"module":"core","versions":{"1.0.0":{"dependencies":{}}, "1.5.0":{"dependencies":{}}}}]; - const data = await dependencies.findModuleVersion("core", "1.0.0", modulesVersions); + const data = await findModuleVersion("core", "1.0.0", modulesVersions); expect(data).toEqual({ "core": "1.0.0" }); }); @@ -103,7 +103,7 @@ test('find module with requested version', async () => { test('find module with requested version even if it is beta', async () => { const modulesVersions = async (modulesNames) => [{"module":"core","versions":{"1.0.0-beta.1":{"dependencies":{}}, "1.5.0":{"dependencies":{}}}}]; - const data = await dependencies.findModuleVersion("core", "1.0.0-beta.1", modulesVersions); + const data = await findModuleVersion("core", "1.0.0-beta.1", modulesVersions); expect(data).toEqual({ "core": "1.0.0-beta.1" }); }); @@ -111,8 +111,7 @@ test('find module with requested version even if it is beta', async () => { test('can not find module with requested version', async () => { const modulesVersions = async (modulesNames) => [{"module":"core","versions":{"1.0.0":{"dependencies":{}}, "1.5.0":{"dependencies":{}}}}]; - const data = await dependencies.findModuleVersion("core", "1.0.1", modulesVersions); + const data = await findModuleVersion("core", "1.0.1", modulesVersions); expect(data).toEqual(null); }); - diff --git a/test/deploy.test.js b/test/deploy.test.js index ab5e779b..727a3ab0 100644 --- a/test/deploy.test.js +++ b/test/deploy.test.js @@ -1,14 +1,13 @@ -/* global jest */ +import 'dotenv/config'; +import { describe, test, expect, vi } from 'vitest'; +import exec from './utils/exec'; +import cliPath from './utils/cliPath'; +import unzip from 'unzipper'; +import fs from 'fs'; +import path from 'path'; +import { hasRealCredentials, requireRealCredentials } from './utils/credentials'; -const exec = require('./utils/exec'); -const cliPath = require('./utils/cliPath'); -const unzip = require('unzipper'); -const fs = require('fs'); -const path = require('path'); - -require('dotenv').config(); -const { requireRealCredentials } = require('./utils/realCredentials'); -requireRealCredentials(); +vi.setConfig({ testTimeout: 40000 }); const cwd = name => path.join(process.cwd(), 'test', 'fixtures', 'deploy', name); @@ -18,10 +17,9 @@ const extract = async (inputPath, outputPath) => { return unzip.Open.file(inputPath).then(d => d.extract({ path: outputPath, concurrency: 5 })); }; -jest.setTimeout(40000); // default jasmine timeout is 5 seconds - we need more. - describe('Happy path', () => { test('App directory + modules', async () => { + requireRealCredentials(); const { stderr, stdout } = await run('correct'); expect(stdout).toMatch(process.env.MPKIT_URL); @@ -43,6 +41,7 @@ describe('Happy path', () => { }); test('correct with direct upload', async () => { + requireRealCredentials(); const { stdout, stderr } = await run('correct', '-d'); expect(stdout).toMatch(process.env.MPKIT_URL); @@ -59,6 +58,7 @@ describe('Happy path', () => { }); test('correct with assets with direct upload', async () => { + requireRealCredentials(); const { stdout, stderr } = await run('correct_with_assets', '-d'); expect(stdout).toMatch(process.env.MPKIT_URL); @@ -78,6 +78,7 @@ describe('Happy path', () => { }); test('only assets with old upload', async () => { + requireRealCredentials(); const { stdout, stderr } = await run('correct_only_assets', '-o'); expect(stderr).not.toMatch('There are no files in release file, skipping.'); expect(stdout).toMatch(process.env.MPKIT_URL); @@ -85,8 +86,10 @@ describe('Happy path', () => { }); test('only assets', async () => { + requireRealCredentials(); const { stdout, stderr } = await run('correct_only_assets'); expect(stderr).toMatch('There are no files in release file, skipping.'); + expect(stdout).toMatch(process.env.MPKIT_URL); expect(stdout).toMatch('Deploy succeeded'); }); }); @@ -119,13 +122,25 @@ describe('Server errors', () => { }); test('Network error and pos-cli exits with 1', async () => { - process.env.MPKIT_URL = 'https://incorrecturl123xyz.com' - - const { stderr, stdout, code } = await run('correct'); - - expect(code).toEqual(1); - expect(stderr).toMatch( - 'Deploy failed. RequestError: Error: getaddrinfo ENOTFOUND incorrecturl123xyz.com' - ); + const originalUrl = process.env.MPKIT_URL; + const originalToken = process.env.MPKIT_TOKEN; + const originalEmail = process.env.MPKIT_EMAIL; + + try { + process.env.MPKIT_URL = 'https://incorrecturl123xyz.com' + process.env.MPKIT_TOKEN = 'test-token' + process.env.MPKIT_EMAIL = 'test@example.com' + + const { stderr, stdout, code } = await run('correct'); + + expect(code).toEqual(1); + expect(stderr).toMatch( + 'Deploy failed. RequestError: fetch failed' + ); + } finally { + process.env.MPKIT_URL = originalUrl; + process.env.MPKIT_TOKEN = originalToken; + process.env.MPKIT_EMAIL = originalEmail; + } }); }); diff --git a/test/env-add-unit.test.js b/test/env-add-unit.test.js new file mode 100644 index 00000000..9866853c --- /dev/null +++ b/test/env-add-unit.test.js @@ -0,0 +1,72 @@ +import { vi, describe, test, expect, beforeEach, afterAll, beforeAll } from 'vitest'; +import fs from 'fs'; +import path from 'path'; +import { settingsFromDotPos } from '../lib/settings.js'; + +let addEnv; +let storeEnvironment; + +vi.mock('../lib/data/waitForStatus.js', () => ({ + default: () => Promise.resolve({ access_token: '12345', status: 'success' }) +})); + +vi.mock('../lib/portal.js', async () => { + const original = await vi.importActual('../lib/portal.js'); + return { + default: { + ...original, + requestDeviceAuthorization: () => Promise.resolve({verification_uri_complete: "http://example.com/xxxx", device_code: "device_code"}), + fetchDeviceAccessToken: () => Promise.resolve({access_token: "12345"}) + } + }; +}); + +vi.mock('../lib/logger.js', async () => { + const module = await vi.importActual('../lib/logger.js'); + return { + default: { + ...module.default, + Success: () => {}, + Debug: () => {}, + Info: () => {}, + Error: () => {} + } + }; +}); + +vi.mock('../lib/validators/index.js', () => ({ + existence: { directoryExists: () => true, fileExists: () => true }, + url: () => true, + email: () => true, + directoryExists: () => true, + directoryEmpty: () => true +})); + +beforeAll(async () => { + const envMod = await import('../lib/environments.js'); + storeEnvironment = envMod.storeEnvironment; + + const addMod = await import('../lib/envs/add.js'); + addEnv = addMod.default; +}); + +afterEach(() => { + try { + fs.unlinkSync('.pos'); + } catch (e) {} +}); + +describe('env add with mocked portal', () => { + test('with --partner_portal_url', async () => { + const environment = 'e1'; + const params = { + partnerPortalUrl: "http://portal.example.com", + url: "http://instance.example.com" + }; + + await addEnv(environment, params); + const settings = settingsFromDotPos(environment); + expect(settings['token']).toMatch('12345'); + expect(settings['partner_portal_url']).toMatch('http://portal.example.com'); + }); +}); diff --git a/test/env-add.test.js b/test/env-add.test.js index da4b07c1..6010b34c 100644 --- a/test/env-add.test.js +++ b/test/env-add.test.js @@ -1,28 +1,22 @@ -/* global jest */ -process.env['CI'] = 'true' - -const exec = require('./utils/exec'); -const cliPath = require('./utils/cliPath'); -const fs = require('fs'); -const path = require('path'); -require('dotenv').config(); +import process from 'process'; +import exec from './utils/exec'; +import cliPath from './utils/cliPath'; +import { settingsFromDotPos } from '../lib/settings.js'; -const fetchAuthData = require('../lib/settings').settingsFromDotPos; +process.env['CI'] = 'true' const run = (options) => exec(`${cliPath} env add ${options}`); -const addEnv = require('../lib/envs/add') - describe('commander env add', () => { - afterEach(() => exec(`rm .pos`)); + afterEach(() => exec(`rm -f .pos`)); test('adding with email and token', async () => { const { stdout, stderr } = await run('--url https://example.com --email pos-cli-ci@platformos.com --token 12345 e1'); expect(stdout).toMatch('Environment https://example.com/ as e1 has been added successfuly'); - const settings = fetchAuthData('e1') + const settings = settingsFromDotPos('e1') expect(settings['token']).toMatch('12345'); }); @@ -31,30 +25,7 @@ describe('commander env add', () => { expect(stdout).toMatch('Environment https://example.com/ as e2 has been added successfuly'); - const settings = fetchAuthData('e2') - expect(settings['token']).toMatch('12345'); - expect(settings['partner_portal_url']).toMatch('http://portal.example.com'); - }); -}); - -jest.mock('../lib/portal', () => ({ - requestDeviceAuthorization: () => Promise.resolve({verification_uri_complete: "http://example.com/xxxx", device_code: "device_code"}), - fetchDeviceAccessToken: x => Promise.resolve({access_token: "12345"}) -})); - -describe('env add', () => { - afterEach(() => exec(`rm .pos`)); - - const environment = 'e1' - test('with --partner_portal_url', async () => { - - const params = { - partnerPortalUrl: "http://portal.example.com", - url: "http://instance.example.com" - } - - await addEnv(environment, params) - const settings = fetchAuthData(environment) + const settings = settingsFromDotPos('e2') expect(settings['token']).toMatch('12345'); expect(settings['partner_portal_url']).toMatch('http://portal.example.com'); }); diff --git a/test/exec-graphql.test.js b/test/exec-graphql.test.js deleted file mode 100644 index f1a15894..00000000 --- a/test/exec-graphql.test.js +++ /dev/null @@ -1,260 +0,0 @@ -jest.mock('../lib/apiRequest', () => ({ - apiRequest: jest.fn() -})); - -require('dotenv').config(); - -const Gateway = require('../lib/proxy'); - -describe('Gateway graph method', () => { - const { apiRequest } = require('../lib/apiRequest'); - - beforeEach(() => { - jest.clearAllMocks(); - }); - - test('calls apiRequest with correct parameters', async () => { - const mockResponse = { - "data": { - "records": { - "results": [] - } - } - }; - apiRequest.mockResolvedValue(mockResponse); - - const gateway = new Gateway({ url: 'http://example.com', token: '1234', email: 'test@example.com' }); - const query = '{ records(per_page: 20) { results { id } } }'; - const result = await gateway.graph({ query }); - - expect(apiRequest).toHaveBeenCalledWith({ - method: 'POST', - uri: 'http://example.com/api/graph', - json: { query }, - forever: true, - request: expect.any(Function) - }); - expect(result).toEqual(mockResponse); - }); - - test('handles graphql execution error', async () => { - const mockErrorResponse = { - errors: [ - { - message: 'Syntax Error: Expected Name, found ', - locations: [{ line: 1, column: 40 }] - } - ] - }; - apiRequest.mockResolvedValue(mockErrorResponse); - - const gateway = new Gateway({ url: 'http://example.com', token: '1234', email: 'test@example.com' }); - const query = '{ records(per_page: 20) { results { id } '; // Missing closing brace - const result = await gateway.graph({ query }); - - expect(result).toEqual(mockErrorResponse); - }); -}); - -describe('exec graphql CLI', () => { - const exec = require('./utils/exec'); - const cliPath = require('./utils/cliPath'); - const path = require('path'); - const fs = require('fs'); - const os = require('os'); - - // Use spread operator to avoid mutating global process.env - const env = { - ...process.env, - CI: 'true', - MPKIT_URL: 'http://example.com', - MPKIT_TOKEN: '1234', - MPKIT_EMAIL: 'foo@example.com' - }; - - const CLI_TIMEOUT = 10000; - - describe('argument validation', () => { - test('requires graphql argument', async () => { - const { code, stderr } = await exec(`${cliPath} exec graphql staging`, { env, timeout: CLI_TIMEOUT }); - - expect(code).toBe(1); - expect(stderr).toMatch("error: missing required argument 'graphql'"); - }); - - test('requires environment argument', async () => { - const { code, stderr } = await exec(`${cliPath} exec graphql`, { env, timeout: CLI_TIMEOUT }); - - expect(code).toBe(1); - expect(stderr).toMatch("error: missing required argument 'environment'"); - }); - }); - - describe('production environment confirmation', () => { - // Detailed production environment detection tests are in productionEnvironment.test.js - // These tests verify the CLI integration with the production environment helper - - test('prompts for confirmation on production environment and cancels when user declines', async () => { - const { code, stdout } = await exec(`echo "n" | ${cliPath} exec graphql production "{ records { results { id } } }"`, { env, timeout: CLI_TIMEOUT }); - - expect(code).toBe(0); - expect(stdout).toMatch('Execution cancelled.'); - }); - - test('proceeds with execution on production environment when user confirms', async () => { - const { stdout, stderr } = await exec(`echo "y" | ${cliPath} exec graphql production "{ records { results { id } } }"`, { env, timeout: CLI_TIMEOUT }); - - // This will fail because the mock API isn't set up, but we want to check it doesn't cancel - expect(stdout).not.toMatch('Execution cancelled.'); - expect(stderr).not.toMatch('Execution cancelled.'); - }); - - test('does not prompt for non-production environments', async () => { - const { stdout, stderr } = await exec(`${cliPath} exec graphql staging "{ records { results { id } } }"`, { env, timeout: CLI_TIMEOUT }); - - // Should not show warning or cancellation message - expect(stdout).not.toMatch('Execution cancelled.'); - expect(stderr).not.toMatch('WARNING'); - }); - }); - - describe('file flag handling', () => { - test('accepts --file flag and reads content from file', async () => { - const fixturePath = path.resolve(__dirname, 'fixtures/test-graphql.graphql'); - const { stderr } = await exec(`${cliPath} exec graphql staging --file "${fixturePath}"`, { env, timeout: CLI_TIMEOUT }); - - // Command will fail due to mock API but should not complain about missing graphql argument - expect(stderr).not.toMatch("error: missing required argument 'graphql'"); - }); - - test('accepts -f shorthand flag and reads content from file', async () => { - const fixturePath = path.resolve(__dirname, 'fixtures/test-graphql.graphql'); - const { stderr } = await exec(`${cliPath} exec graphql staging -f "${fixturePath}"`, { env, timeout: CLI_TIMEOUT }); - - // Command will fail due to mock API but should not complain about missing graphql argument - expect(stderr).not.toMatch("error: missing required argument 'graphql'"); - }); - - test('shows error when file does not exist', async () => { - const { code, stderr } = await exec(`${cliPath} exec graphql staging --file "/nonexistent/path/to/file.graphql"`, { env, timeout: CLI_TIMEOUT }); - - expect(code).toBe(1); - expect(stderr).toMatch('File not found'); - expect(stderr).toMatch('/nonexistent/path/to/file.graphql'); - }); - - test('handles empty file as missing query', async () => { - const emptyFile = path.join(os.tmpdir(), `empty-graphql-${Date.now()}.graphql`); - fs.writeFileSync(emptyFile, ''); - - try { - const { code, stderr } = await exec(`${cliPath} exec graphql staging -f "${emptyFile}"`, { env, timeout: CLI_TIMEOUT }); - - expect(code).toBe(1); - expect(stderr).toMatch("error: missing required argument 'graphql'"); - } finally { - fs.unlinkSync(emptyFile); - } - }); - - test('handles file with only whitespace as missing query', async () => { - const whitespaceFile = path.join(os.tmpdir(), `whitespace-graphql-${Date.now()}.graphql`); - fs.writeFileSync(whitespaceFile, ' \n\t\n '); - - try { - const { code, stderr } = await exec(`${cliPath} exec graphql staging -f "${whitespaceFile}"`, { env, timeout: CLI_TIMEOUT }); - - // Whitespace-only content is truthy, so it passes the !query check - // This documents current behavior - whitespace is accepted as valid query - expect(stderr).not.toMatch("error: missing required argument 'graphql'"); - } finally { - fs.unlinkSync(whitespaceFile); - } - }); - - test('reads file with GraphQL comments', async () => { - const commentFile = path.join(os.tmpdir(), `comment-graphql-${Date.now()}.graphql`); - fs.writeFileSync(commentFile, '# This is a comment\n{ records { results { id } } }'); - - try { - const { stderr } = await exec(`${cliPath} exec graphql staging -f "${commentFile}"`, { env, timeout: CLI_TIMEOUT }); - - expect(stderr).not.toMatch("error: missing required argument 'graphql'"); - } finally { - fs.unlinkSync(commentFile); - } - }); - }); - - describe('error handling', () => { - test('handles invalid URL format', async () => { - const badEnv = { - ...process.env, - CI: 'true', - MPKIT_URL: 'not-a-valid-url', - MPKIT_TOKEN: 'test-token', - MPKIT_EMAIL: 'test@example.com' - }; - - const { code, stderr } = await exec(`${cliPath} exec graphql staging "{ test }"`, { env: badEnv, timeout: CLI_TIMEOUT }); - - expect(code).toBe(1); - }); - }); - - describe('query edge cases', () => { - test('handles query with unicode characters', async () => { - const { stderr } = await exec(`${cliPath} exec graphql staging "{ records(filter: { name: { value: \\"日本語\\" } }) { results { id } } }"`, { env, timeout: CLI_TIMEOUT }); - - // Should not fail on argument parsing - expect(stderr).not.toMatch("error: missing required argument 'graphql'"); - }); - - test('handles mutation query', async () => { - const { stderr } = await exec(`${cliPath} exec graphql staging "mutation { record_create(record: { table: \\"test\\" }) { id } }"`, { env, timeout: CLI_TIMEOUT }); - - // Should accept mutations as valid GraphQL - expect(stderr).not.toMatch("error: missing required argument 'graphql'"); - }); - }); -}); - -// Integration test - requires real platformOS instance -const { requireRealCredentials } = require('./utils/realCredentials'); - -describe('exec graphql integration', () => { - const exec = require('./utils/exec'); - const cliPath = require('./utils/cliPath'); - - beforeAll(() => { - requireRealCredentials(); - }); - - test('executes graphql query on real instance', async () => { - const query = '{ records(per_page: 20) { results { id } } }'; - const { stdout, stderr, code } = await exec(`${cliPath} exec graphql dev "${query}"`, { - env: process.env, - timeout: 30000 - }); - - expect(code).toEqual(0); - expect(stderr).toBe(''); - - // Parse JSON response - const response = JSON.parse(stdout); - expect(response).toHaveProperty('data'); - expect(response.data).toHaveProperty('records'); - expect(Array.isArray(response.data.records.results)).toBe(true); - }, 30000); - - test('handles graphql syntax error on real instance', async () => { - const invalidQuery = '{ records(per_page: 20) { results { id } '; // Missing closing brace - const { stdout, stderr, code } = await exec(`${cliPath} exec graphql dev "${invalidQuery}"`, { - env: process.env, - timeout: 30000 - }); - - expect(code).toEqual(1); - expect(stderr).toMatch('GraphQL execution error'); - }, 30000); -}); \ No newline at end of file diff --git a/test/exec-liquid.test.js b/test/exec-liquid.test.js deleted file mode 100644 index f3e271c0..00000000 --- a/test/exec-liquid.test.js +++ /dev/null @@ -1,265 +0,0 @@ -jest.mock('../lib/apiRequest', () => ({ - apiRequest: jest.fn() -})); - -require('dotenv').config(); - -const Gateway = require('../lib/proxy'); - -describe('Gateway liquid method', () => { - const { apiRequest } = require('../lib/apiRequest'); - - beforeEach(() => { - jest.clearAllMocks(); - }); - - test('calls apiRequest with correct parameters', async () => { - apiRequest.mockResolvedValue({ result: 'HELLO WORLD', error: null }); - - const gateway = new Gateway({ url: 'http://example.com', token: '1234', email: 'test@example.com' }); - const result = await gateway.liquid({ content: "{{ 'hello world' | upcase }}" }); - - expect(apiRequest).toHaveBeenCalledWith({ - method: 'POST', - uri: 'http://example.com/api/app_builder/liquid_exec', - json: { content: "{{ 'hello world' | upcase }}" }, - forever: true, - request: expect.any(Function) - }); - expect(result).toEqual({ result: 'HELLO WORLD', error: null }); - }); - - test('handles liquid execution error', async () => { - apiRequest.mockResolvedValue({ result: null, error: 'Liquid syntax error' }); - - const gateway = new Gateway({ url: 'http://example.com', token: '1234', email: 'test@example.com' }); - const result = await gateway.liquid({ content: "{{ 'hello world' | invalid_filter }}" }); - - expect(result).toEqual({ result: null, error: 'Liquid syntax error' }); - }); -}); - -describe('exec liquid CLI', () => { - const exec = require('./utils/exec'); - const cliPath = require('./utils/cliPath'); - const path = require('path'); - const fs = require('fs'); - const os = require('os'); - - // Use spread operator to avoid mutating global process.env - const env = { - ...process.env, - CI: 'true', - MPKIT_URL: 'http://example.com', - MPKIT_TOKEN: '1234', - MPKIT_EMAIL: 'foo@example.com' - }; - - const CLI_TIMEOUT = 10000; - - describe('argument validation', () => { - test('requires code argument', async () => { - const { code, stderr } = await exec(`${cliPath} exec liquid staging`, { env, timeout: CLI_TIMEOUT }); - - expect(code).toBe(1); - expect(stderr).toMatch("error: missing required argument 'code'"); - }); - - test('requires environment argument', async () => { - const { code, stderr } = await exec(`${cliPath} exec liquid`, { env, timeout: CLI_TIMEOUT }); - - expect(code).toBe(1); - expect(stderr).toMatch("error: missing required argument 'environment'"); - }); - }); - - describe('production environment confirmation', () => { - // Detailed production environment detection tests are in productionEnvironment.test.js - // These tests verify the CLI integration with the production environment helper - - test('prompts for confirmation on production environment and cancels when user declines', async () => { - const { code, stdout } = await exec(`echo "n" | ${cliPath} exec liquid production "{{ 'hello' | upcase }}"`, { env, timeout: CLI_TIMEOUT }); - - expect(code).toBe(0); - expect(stdout).toMatch('Execution cancelled.'); - }); - - test('proceeds with execution on production environment when user confirms', async () => { - const { stdout, stderr } = await exec(`echo "y" | ${cliPath} exec liquid production "{{ 'hello' | upcase }}"`, { env, timeout: CLI_TIMEOUT }); - - // This will fail because the mock API isn't set up, but we want to check it doesn't cancel - expect(stdout).not.toMatch('Execution cancelled.'); - expect(stderr).not.toMatch('Execution cancelled.'); - }); - - test('does not prompt for non-production environments', async () => { - const { stdout, stderr } = await exec(`${cliPath} exec liquid staging "{{ 'hello' | upcase }}"`, { env, timeout: CLI_TIMEOUT }); - - // Should not show warning or cancellation message - expect(stdout).not.toMatch('Execution cancelled.'); - expect(stderr).not.toMatch('WARNING'); - }); - }); - - describe('file flag handling', () => { - test('accepts --file flag and reads content from file', async () => { - const fixturePath = path.resolve(__dirname, 'fixtures/test-liquid.liquid'); - const { stderr } = await exec(`${cliPath} exec liquid staging --file "${fixturePath}"`, { env, timeout: CLI_TIMEOUT }); - - // Command will fail due to mock API but should not complain about missing code argument - expect(stderr).not.toMatch("error: missing required argument 'code'"); - }); - - test('accepts -f shorthand flag and reads content from file', async () => { - const fixturePath = path.resolve(__dirname, 'fixtures/test-liquid.liquid'); - const { stderr } = await exec(`${cliPath} exec liquid staging -f "${fixturePath}"`, { env, timeout: CLI_TIMEOUT }); - - // Command will fail due to mock API but should not complain about missing code argument - expect(stderr).not.toMatch("error: missing required argument 'code'"); - }); - - test('shows error when file does not exist', async () => { - const { code, stderr } = await exec(`${cliPath} exec liquid staging --file "/nonexistent/path/to/file.liquid"`, { env, timeout: CLI_TIMEOUT }); - - expect(code).toBe(1); - expect(stderr).toMatch('File not found'); - expect(stderr).toMatch('/nonexistent/path/to/file.liquid'); - }); - - test('handles empty file as missing code', async () => { - const emptyFile = path.join(os.tmpdir(), `empty-liquid-${Date.now()}.liquid`); - fs.writeFileSync(emptyFile, ''); - - try { - const { code, stderr } = await exec(`${cliPath} exec liquid staging -f "${emptyFile}"`, { env, timeout: CLI_TIMEOUT }); - - expect(code).toBe(1); - expect(stderr).toMatch("error: missing required argument 'code'"); - } finally { - fs.unlinkSync(emptyFile); - } - }); - - test('handles file with only whitespace as valid code', async () => { - const whitespaceFile = path.join(os.tmpdir(), `whitespace-liquid-${Date.now()}.liquid`); - fs.writeFileSync(whitespaceFile, ' \n\t\n '); - - try { - const { stderr } = await exec(`${cliPath} exec liquid staging -f "${whitespaceFile}"`, { env, timeout: CLI_TIMEOUT }); - - // Whitespace-only content is truthy, so it passes the !code check - // This documents current behavior - whitespace is accepted as valid code - expect(stderr).not.toMatch("error: missing required argument 'code'"); - } finally { - fs.unlinkSync(whitespaceFile); - } - }); - - test('reads file with liquid comments', async () => { - const commentFile = path.join(os.tmpdir(), `comment-liquid-${Date.now()}.liquid`); - fs.writeFileSync(commentFile, "{% comment %}This is a comment{% endcomment %}{{ 'hello' | upcase }}"); - - try { - const { stderr } = await exec(`${cliPath} exec liquid staging -f "${commentFile}"`, { env, timeout: CLI_TIMEOUT }); - - expect(stderr).not.toMatch("error: missing required argument 'code'"); - } finally { - fs.unlinkSync(commentFile); - } - }); - }); - - describe('error handling', () => { - test('handles invalid URL format', async () => { - const badEnv = { - ...process.env, - CI: 'true', - MPKIT_URL: 'not-a-valid-url', - MPKIT_TOKEN: 'test-token', - MPKIT_EMAIL: 'test@example.com' - }; - - const { code } = await exec(`${cliPath} exec liquid staging "{{ 'test' }}"`, { env: badEnv, timeout: CLI_TIMEOUT }); - - expect(code).toBe(1); - }); - }); - - describe('code edge cases', () => { - test('handles code with unicode characters', async () => { - const { stderr } = await exec(`${cliPath} exec liquid staging "{{ '日本語' | upcase }}"`, { env, timeout: CLI_TIMEOUT }); - - // Should not fail on argument parsing - expect(stderr).not.toMatch("error: missing required argument 'code'"); - }); - - test('handles code with special liquid tags', async () => { - const { stderr } = await exec(`${cliPath} exec liquid staging "{% assign x = 'hello' %}{{ x }}"`, { env, timeout: CLI_TIMEOUT }); - - // Should accept liquid tags as valid code - expect(stderr).not.toMatch("error: missing required argument 'code'"); - }); - }); -}); - -// Integration test - requires real platformOS instance -const { requireRealCredentials } = require('./utils/realCredentials'); - -describe('exec liquid integration', () => { - const exec = require('./utils/exec'); - const cliPath = require('./utils/cliPath'); - - beforeAll(() => { - requireRealCredentials(); - }); - - test('executes liquid code on real instance', async () => { - const { stdout, stderr, code } = await exec(`${cliPath} exec liquid dev "{{ 'hello' | upcase }}"`, { - env: process.env, - timeout: 30000 - }); - - expect(code).toBe(0); - expect(stdout).toMatch('HELLO'); - expect(stderr).toBe(''); - }, 30000); - - test('handles liquid syntax error on real instance', async () => { - const { stderr, code } = await exec(`${cliPath} exec liquid dev "{{ 'hello' | invalid_filter }}"`, { - env: process.env, - timeout: 30000 - }); - - expect(code).toBe(1); - expect(stderr).toMatch('Liquid execution error'); - }, 30000); - - test('executes {{ \'now\' | to_time }} and returns current time', async () => { - const { stdout, stderr, code } = await exec(`${cliPath} exec liquid dev "{{ 'now' | to_time }}"`, { - env: process.env, - timeout: 30000 - }); - const currentTime = new Date(); - - expect(code).toBe(0); - expect(stderr).toBe(''); - - // Parse the returned time - liquid to_time returns ISO format like "2023-01-01 12:00:00 +0000" - const returnedTimeStr = stdout.trim(); - const returnedTime = new Date(returnedTimeStr); - - // Check that the returned time is within 1 second of the current time - const timeDiff = Math.abs(returnedTime.getTime() - currentTime.getTime()); - expect(timeDiff).toBeLessThanOrEqual(2000); // 1 second in milliseconds - }, 30000); - - test('handles unknown tag error', async () => { - const { stderr, code } = await exec(`${cliPath} exec liquid dev "{% hello %}"`, { - env: process.env, - timeout: 30000 - }); - - expect(code).toBe(1); - expect(stderr).toMatch('Liquid execution error: Liquid syntax error: Unknown tag \'hello\''); - }, 30000); -}); diff --git a/test/lib/files.test.js b/test/files.test.js similarity index 93% rename from test/lib/files.test.js rename to test/files.test.js index ba523939..148113b1 100644 --- a/test/lib/files.test.js +++ b/test/files.test.js @@ -1,4 +1,4 @@ -const files = require('../../lib/files'); +import files from '../lib/files'; const configFileExample = 'test/fixtures/template-values.json'; const ignoreListExample = 'test/fixtures/.posignore'; diff --git a/test/fixtures/deploy/correct_with_assets/app/assets/bar.js b/test/fixtures/deploy/correct_with_assets/app/assets/bar.js index 7f517ba1..c3b54d4f 100644 --- a/test/fixtures/deploy/correct_with_assets/app/assets/bar.js +++ b/test/fixtures/deploy/correct_with_assets/app/assets/bar.js @@ -7,3 +7,98 @@ x x x x +x +x +x +x +x +x +x +x +x +x +x +x +x +x +x +x +x +x +x +x +x +x +x +x +x +x +x +x +x +x +x +x +x +x +x +x +x +x +x +x +x +x +x +x +x +x +x +x +x +x +x +x +x +x +x +x +x +x +x +x +x +x +x +x +x +x +x +x +x +x +x +x +x +x +x +x +x +x +x +x +x +x +x +x +x +x +x +x +x +x +x +x +x +x +x diff --git a/test/fixtures/yeoman/modules/core/generators/command/index.js b/test/fixtures/yeoman/modules/core/generators/command/index.js new file mode 100644 index 00000000..5323939a --- /dev/null +++ b/test/fixtures/yeoman/modules/core/generators/command/index.js @@ -0,0 +1,44 @@ +import Generator from 'yeoman-generator'; +import path from 'path'; + +export default class extends Generator { + constructor(args, opts) { + super(args, opts); + + this.description = 'Generate basic command files with build and check phase'; + this.argument('commandName', { type: String, required: true, description: 'name of the command' }); + this.props = { + commandName: this.options.commandName, + actionName: this.options.commandName.split('/').pop(), + modelName: this.options.commandName.split('/')[0] + }; + } + + writing() { + try { + this.fs.copyTpl( + this.templatePath('./lib/commands/create.liquid'), + this.destinationPath(`app/lib/commands/${this.props.commandName}.liquid`), + this.props + ); + + this.fs.copyTpl( + this.templatePath('./lib/commands/create/'), + this.destinationPath(`app/lib/commands/${this.props.commandName}/`), + this.props + ); + + this.fs.copyTpl( + this.templatePath('./graphql/create.graphql'), + this.destinationPath(`app/graphql/${this.props.commandName}.graphql`), + this.props + ); + } catch (e) { + console.error(e); + } + } + + end() { + console.log('Command generated'); + } +} diff --git a/test/fixtures/yeoman/modules/core/generators/command/templates/graphql/create.graphql b/test/fixtures/yeoman/modules/core/generators/command/templates/graphql/create.graphql new file mode 100644 index 00000000..0ffb1e58 --- /dev/null +++ b/test/fixtures/yeoman/modules/core/generators/command/templates/graphql/create.graphql @@ -0,0 +1,20 @@ +mutation <%= actionName %>( + # some arguments + # $foo: String! +) { + record: record_create( + record: { + table: "<%= modelName %>" + properties: [ + # { name: "foo" property: $foo } + ] + } + ){ + id + created_at + deleted_at + type: table + + # foo: (name: "foo") + } +} diff --git a/test/fixtures/yeoman/modules/core/generators/command/templates/lib/commands/create.liquid b/test/fixtures/yeoman/modules/core/generators/command/templates/lib/commands/create.liquid new file mode 100644 index 00000000..6d7102e8 --- /dev/null +++ b/test/fixtures/yeoman/modules/core/generators/command/templates/lib/commands/create.liquid @@ -0,0 +1,10 @@ +{% liquid + function object = 'commands/<%= commandName %>/build', object: object + function object = 'commands/<%= commandName %>/check', object: object + + if object.valid + function object = 'modules/core/commands/execute', mutation_name: '<%= commandName %>' object: object + endif + + return object +%} diff --git a/test/fixtures/yeoman/modules/core/generators/command/templates/lib/commands/create/build.liquid b/test/fixtures/yeoman/modules/core/generators/command/templates/lib/commands/create/build.liquid new file mode 100644 index 00000000..6a831515 --- /dev/null +++ b/test/fixtures/yeoman/modules/core/generators/command/templates/lib/commands/create/build.liquid @@ -0,0 +1,4 @@ +{% liquid + assign data = null | hash_merge: id: object.id, name: object.name + return data +%} diff --git a/test/fixtures/yeoman/modules/core/generators/command/templates/lib/commands/create/check.liquid b/test/fixtures/yeoman/modules/core/generators/command/templates/lib/commands/create/check.liquid new file mode 100644 index 00000000..8f3da9c7 --- /dev/null +++ b/test/fixtures/yeoman/modules/core/generators/command/templates/lib/commands/create/check.liquid @@ -0,0 +1,10 @@ +{% liquid + assign c = '{ "errors": {}, "valid": true }' | parse_json + + function c = 'modules/core/validations/presence', c: c, object: object, field_name: 'id' + function c = 'modules/core/validations/presence', c: c, object: object, field_name: 'name' + + assign object = object | hash_merge: c + + return object +%} diff --git a/test/fixtures/yeoman/modules/core/generators/crud/index.js b/test/fixtures/yeoman/modules/core/generators/crud/index.js new file mode 100644 index 00000000..fd0f478f --- /dev/null +++ b/test/fixtures/yeoman/modules/core/generators/crud/index.js @@ -0,0 +1,116 @@ +import Generator from 'yeoman-generator'; +import pluralize from 'pluralize'; +import startCase from 'lodash.startcase'; + +export default class extends Generator { + constructor(args, opts) { + super(args, opts); + + this.description = 'Generate table definition and commands for CRUD with graphql files'; + this.argument('modelName', { type: String, required: true, description: 'name of the table' }); + this.argument('attributes', { type: Array, required: false, description: 'table column names with types', default: [] }); + this.option('includeViews', { type: Boolean, default: false, description: 'generate pages and partials', hide: 'no' }); + + const attributes = this.options.attributes.map((attr) => { + const values = attr.split(':'); + return { + name: values[0], + nameHuman: startCase(values[0]), + type: values[1] + }; + }); + this.props = { + modelName: this.options.modelName, + modelNamePlural: pluralize(this.options.modelName), + attributes: attributes, + graphqlArgumentMap: { + string: "String", + text: "String", + integer: "Int", + boolean: "Boolean", + float: "Float", + date: "String", + datetime: "String", + array: "[String]" + }, + graphqlArgumentValueMap: { + string: "value", + text: "value", + integer: "value_int", + boolean: "value_boolean", + float: "value_float", + date: "value", + datetime: "value", + array: "value_array" + }, + graphqlPropertyMap: { + string: "property", + text: "property", + integer: "property_int", + boolean: "property_boolean", + float: "property_float", + date: "property", + datetime: "property", + array: "property_array" + } + }; + } + + writing() { + try { + this.fs.copyTpl( + this.templatePath('./translations/model.yml'), + this.destinationPath(`app/translations/en/${this.props.modelNamePlural}.yml`), + this.props + ); + this.fs.copyTpl( + this.templatePath('./schema/model.yml'), + this.destinationPath(`app/schema/${this.props.modelName}.yml`), + this.props + ); + this.fs.copyTpl( + this.templatePath('./graphql/*.graphql'), + this.destinationPath(`app/graphql/${this.props.modelNamePlural}/`), + this.props + ); + this.fs.copyTpl( + this.templatePath('./lib/queries/model'), + this.destinationPath(`app/lib/queries/${this.props.modelNamePlural}`), + this.props + ); + this.fs.copyTpl( + this.templatePath('./lib/commands/model'), + this.destinationPath(`app/lib/commands/${this.props.modelNamePlural}`), + this.props + ); + this.fs.copyTpl( + this.templatePath('./config.yml'), + this.destinationPath(`app/config.yml`), + this.props + ); + if(this.options.includeViews) { + this.fs.copyTpl( + this.templatePath('./views/pages/model'), + this.destinationPath(`app/views/pages/${this.props.modelNamePlural}`), + this.props + ); + this.fs.copyTpl( + this.templatePath('./views/partials/theme/simple/model'), + this.destinationPath(`app/views/partials/theme/simple/${this.props.modelNamePlural}`), + this.props + ); + this.fs.copyTpl( + this.templatePath('./views/partials/theme/simple/field_error.liquid'), + this.destinationPath(`app/views/partials/theme/simple/field_error.liquid`), + this.props + ); + } + } catch (e) { + console.error(e); + } + } + + end() { + console.log('CRUD generated'); + } +} diff --git a/test/fixtures/yeoman/modules/core/generators/crud/templates/config.yml b/test/fixtures/yeoman/modules/core/generators/crud/templates/config.yml new file mode 100644 index 00000000..45cd4ce1 --- /dev/null +++ b/test/fixtures/yeoman/modules/core/generators/crud/templates/config.yml @@ -0,0 +1,16 @@ +--- +escape_output_instead_of_sanitize: true +graphql_argument_type_mismatch_mode: 'error' +liquid_add_old_variables: false +liquid_check_mode: 'error' +liquid_raise_mode: true +require_table_for_record_delete_mutation: true +safe_translate: true +skip_elasticsearch: false +slug_exact_match: true +websockets_require_csrf_token: true +maintenance: + enabled: false + password_constant: 'MAINTENANCE_PASSWORD' + partial: 'maintenance' +--- diff --git a/test/fixtures/yeoman/modules/core/generators/crud/templates/graphql/create.graphql b/test/fixtures/yeoman/modules/core/generators/crud/templates/graphql/create.graphql new file mode 100644 index 00000000..67905af1 --- /dev/null +++ b/test/fixtures/yeoman/modules/core/generators/crud/templates/graphql/create.graphql @@ -0,0 +1,25 @@ +mutation create_<%= modelName %>( +<% attributes.forEach((attr) => { -%> + $<%= attr.name %>: <%= graphqlArgumentMap[attr.type] %>! +<% }); -%> +) { + record: record_create( + record: { + table: "<%= modelName %>" + properties: [ + <% attributes.forEach((attr) => { -%> + { name: "<%= attr.name %>" <%= graphqlArgumentValueMap[attr.type] %>: $<%= attr.name %> } + <% }); -%> + ] + } + ){ + id + created_at + deleted_at + type: table + + <% attributes.forEach((attr) => { -%> + <%= attr.name %>: <%= graphqlPropertyMap[attr.type] %>(name: "<%= attr.name %>") + <% }); -%> + } +} diff --git a/test/fixtures/yeoman/modules/core/generators/crud/templates/graphql/delete.graphql b/test/fixtures/yeoman/modules/core/generators/crud/templates/graphql/delete.graphql new file mode 100644 index 00000000..c77948f4 --- /dev/null +++ b/test/fixtures/yeoman/modules/core/generators/crud/templates/graphql/delete.graphql @@ -0,0 +1,6 @@ +mutation delete($id: ID!) { + record: record_delete( + table: "<%= modelName %>" + id: $id + ){ id } +} diff --git a/test/fixtures/yeoman/modules/core/generators/crud/templates/graphql/search.graphql b/test/fixtures/yeoman/modules/core/generators/crud/templates/graphql/search.graphql new file mode 100644 index 00000000..a22b2fd7 --- /dev/null +++ b/test/fixtures/yeoman/modules/core/generators/crud/templates/graphql/search.graphql @@ -0,0 +1,39 @@ +query search( + $id: ID + $limit: Int = 20 + $page: Int = 1 +<% attributes.forEach((attr) => { -%> + $<%= attr.name %>: String +<% }); -%> +) { + <%= modelNamePlural %>: records( + per_page: $limit + page: $page + filter: { + id: { value: $id } + table: { value: "<%= modelName %>" } + properties: [ + <% attributes.forEach((attr) => { -%> + { name: "<%= attr.name %>" value: $<%= attr.name %> } + <% }); -%> + ] + } + sort: [ + { created_at: { order: DESC }} + ] + ){ + total_entries + total_pages + has_previous_page + has_next_page + results { + id + created_at + type: table + + <% attributes.forEach((attr) => { -%> + <%= attr.name %>: <%= graphqlPropertyMap[attr.type] %>(name: "<%= attr.name %>") + <% }); -%> + } + } +} diff --git a/test/fixtures/yeoman/modules/core/generators/crud/templates/graphql/update.graphql b/test/fixtures/yeoman/modules/core/generators/crud/templates/graphql/update.graphql new file mode 100644 index 00000000..73e45562 --- /dev/null +++ b/test/fixtures/yeoman/modules/core/generators/crud/templates/graphql/update.graphql @@ -0,0 +1,27 @@ +mutation update_<%= modelName %>( + $id: ID! +<% attributes.forEach((attr) => { -%> + $<%= attr.name %>: <%= graphqlArgumentMap[attr.type] %> +<% }); -%> +) { + record: record_update( + id: $id + record: { + table: "<%= modelName %>" + properties: [ + <% attributes.forEach((attr) => { -%> + { name: "<%= attr.name %>" <%= graphqlArgumentValueMap[attr.type] %>: $<%= attr.name %> } + <% }); -%> + ] + } + ){ + id + created_at + updated_at + type: table + + <% attributes.forEach((attr) => { -%> + <%= attr.name %>: <%= graphqlPropertyMap[attr.type] %>(name: "<%= attr.name %>") + <% }); -%> + } +} diff --git a/test/fixtures/yeoman/modules/core/generators/crud/templates/lib/commands/model/create.liquid b/test/fixtures/yeoman/modules/core/generators/crud/templates/lib/commands/model/create.liquid new file mode 100644 index 00000000..26b0a030 --- /dev/null +++ b/test/fixtures/yeoman/modules/core/generators/crud/templates/lib/commands/model/create.liquid @@ -0,0 +1,10 @@ +{% liquid + function object = 'commands/<%= modelNamePlural %>/create/build', object: object + function object = 'commands/<%= modelNamePlural %>/create/check', object: object + + if object.valid + function object = 'modules/core/commands/execute', mutation_name: '<%= modelNamePlural %>/create' object: object + endif + + return object +%} diff --git a/test/fixtures/yeoman/modules/core/generators/crud/templates/lib/commands/model/create/build.liquid b/test/fixtures/yeoman/modules/core/generators/crud/templates/lib/commands/model/create/build.liquid new file mode 100644 index 00000000..94a17bf9 --- /dev/null +++ b/test/fixtures/yeoman/modules/core/generators/crud/templates/lib/commands/model/create/build.liquid @@ -0,0 +1,16 @@ +{% parse_json object %} + { + "id": {{ object.id | json }}, +<% attributes.forEach((attr, i) => { -%> + <% if (attr.type == 'integer' || attr.type == 'float') { %> + "<%= attr.name %>": {{ object.<%= attr.name %> | plus: 0 | json }}<% if (i+1 < attributes.length){ %>,<% } %> + <%} else { %> + "<%= attr.name %>": {{ object.<%= attr.name %> | json }}<% if (i+1 < attributes.length){ %>,<% } %> + <% } %> +<% }); -%> + } +{% endparse_json %} + +{% liquid + return object +%} diff --git a/test/fixtures/yeoman/modules/core/generators/crud/templates/lib/commands/model/create/check.liquid b/test/fixtures/yeoman/modules/core/generators/crud/templates/lib/commands/model/create/check.liquid new file mode 100644 index 00000000..df36e794 --- /dev/null +++ b/test/fixtures/yeoman/modules/core/generators/crud/templates/lib/commands/model/create/check.liquid @@ -0,0 +1,11 @@ +{% liquid + assign c = '{ "errors": {}, "valid": true }' | parse_json + +<% attributes.forEach((attr, i) => { -%> + function c = 'modules/core/validations/presence', c: c, object: object, field_name: '<%= attr.name %>' +<% }); -%> + + assign object = object | hash_merge: valid: c.valid, errors: c.errors + + return object +%} diff --git a/test/fixtures/yeoman/modules/core/generators/crud/templates/lib/commands/model/delete.liquid b/test/fixtures/yeoman/modules/core/generators/crud/templates/lib/commands/model/delete.liquid new file mode 100644 index 00000000..1ce0a603 --- /dev/null +++ b/test/fixtures/yeoman/modules/core/generators/crud/templates/lib/commands/model/delete.liquid @@ -0,0 +1,9 @@ +{% liquid + function object = 'commands/<%= modelNamePlural %>/delete/check', object: object + + if object.valid + function object = 'modules/core/commands/execute', mutation_name: '<%= modelNamePlural %>/delete', object: object + endif + + return object +%} diff --git a/test/fixtures/yeoman/modules/core/generators/crud/templates/lib/commands/model/delete/check.liquid b/test/fixtures/yeoman/modules/core/generators/crud/templates/lib/commands/model/delete/check.liquid new file mode 100644 index 00000000..4ae7fc6f --- /dev/null +++ b/test/fixtures/yeoman/modules/core/generators/crud/templates/lib/commands/model/delete/check.liquid @@ -0,0 +1,9 @@ +{% liquid + assign c = '{ "valid": true, "errors": {} }' | parse_json + + function c = 'modules/core/validations/presence', c: c, object: object, field_name: 'id' + + assign object = object | hash_merge: valid: c.valid, errors: c.errors + + return object +%} diff --git a/test/fixtures/yeoman/modules/core/generators/crud/templates/lib/commands/model/update.liquid b/test/fixtures/yeoman/modules/core/generators/crud/templates/lib/commands/model/update.liquid new file mode 100644 index 00000000..29a229c0 --- /dev/null +++ b/test/fixtures/yeoman/modules/core/generators/crud/templates/lib/commands/model/update.liquid @@ -0,0 +1,10 @@ +{% liquid + function object = 'commands/<%= modelNamePlural %>/update/build', object: object + function object = 'commands/<%= modelNamePlural %>/update/check', object: object + + if object.valid + function object = 'modules/core/commands/execute', mutation_name: '<%= modelNamePlural %>/update' object: object + endif + + return object +%} diff --git a/test/fixtures/yeoman/modules/core/generators/crud/templates/lib/commands/model/update/build.liquid b/test/fixtures/yeoman/modules/core/generators/crud/templates/lib/commands/model/update/build.liquid new file mode 100644 index 00000000..94a17bf9 --- /dev/null +++ b/test/fixtures/yeoman/modules/core/generators/crud/templates/lib/commands/model/update/build.liquid @@ -0,0 +1,16 @@ +{% parse_json object %} + { + "id": {{ object.id | json }}, +<% attributes.forEach((attr, i) => { -%> + <% if (attr.type == 'integer' || attr.type == 'float') { %> + "<%= attr.name %>": {{ object.<%= attr.name %> | plus: 0 | json }}<% if (i+1 < attributes.length){ %>,<% } %> + <%} else { %> + "<%= attr.name %>": {{ object.<%= attr.name %> | json }}<% if (i+1 < attributes.length){ %>,<% } %> + <% } %> +<% }); -%> + } +{% endparse_json %} + +{% liquid + return object +%} diff --git a/test/fixtures/yeoman/modules/core/generators/crud/templates/lib/commands/model/update/check.liquid b/test/fixtures/yeoman/modules/core/generators/crud/templates/lib/commands/model/update/check.liquid new file mode 100644 index 00000000..c9915776 --- /dev/null +++ b/test/fixtures/yeoman/modules/core/generators/crud/templates/lib/commands/model/update/check.liquid @@ -0,0 +1,12 @@ +{% liquid + assign c = '{ "errors": {}, "valid": true }' | parse_json + + function c = 'modules/core/validations/presence', c: c, object: object, field_name: 'id' +<% attributes.forEach((attr, i) => { -%> + function c = 'modules/core/validations/presence', c: c, object: object, field_name: '<%= attr.name %>' +<% }); -%> + + assign object = object | hash_merge: valid: c.valid, errors: c.errors + + return object +%} diff --git a/test/fixtures/yeoman/modules/core/generators/crud/templates/lib/queries/model/find.liquid b/test/fixtures/yeoman/modules/core/generators/crud/templates/lib/queries/model/find.liquid new file mode 100644 index 00000000..7f84e124 --- /dev/null +++ b/test/fixtures/yeoman/modules/core/generators/crud/templates/lib/queries/model/find.liquid @@ -0,0 +1,9 @@ +{% liquid + if id == blank + return null + endif + + graphql r = '<%= modelNamePlural %>/search', id: id, limit: 1 + + return r.<%= modelNamePlural %>.results.first +%} diff --git a/test/fixtures/yeoman/modules/core/generators/crud/templates/lib/queries/model/search.liquid b/test/fixtures/yeoman/modules/core/generators/crud/templates/lib/queries/model/search.liquid new file mode 100644 index 00000000..369ec372 --- /dev/null +++ b/test/fixtures/yeoman/modules/core/generators/crud/templates/lib/queries/model/search.liquid @@ -0,0 +1,4 @@ +{% liquid + graphql r = '<%= modelNamePlural %>/search', limit: limit, page: 1 + return r.<%= modelNamePlural %> +%} diff --git a/test/fixtures/yeoman/modules/core/generators/crud/templates/schema/model.yml b/test/fixtures/yeoman/modules/core/generators/crud/templates/schema/model.yml new file mode 100644 index 00000000..380c67bd --- /dev/null +++ b/test/fixtures/yeoman/modules/core/generators/crud/templates/schema/model.yml @@ -0,0 +1,6 @@ +name: <%= modelName %> +properties: +<% attributes.forEach((attr) => { -%> + - name: <%= attr.name %> + type: <%= attr.type %> +<% }); -%> diff --git a/test/fixtures/yeoman/modules/core/generators/crud/templates/translations/model.yml b/test/fixtures/yeoman/modules/core/generators/crud/templates/translations/model.yml new file mode 100644 index 00000000..879b076f --- /dev/null +++ b/test/fixtures/yeoman/modules/core/generators/crud/templates/translations/model.yml @@ -0,0 +1,15 @@ +en: + app: + <%= modelNamePlural %>: + new: + new: New <%= modelName %> + edit: + edit: Edit <%= modelName %> + list: + add: Add <%= modelName %> + empty_state: You haven't added any <%= modelNamePlural %> yet.
Create your first one now! + edit: Edit + attr: + <% attributes.forEach((attr) => { -%> + <%= attr.name %>: <%= attr.nameHuman %> + <% }); -%> diff --git a/test/fixtures/yeoman/modules/core/generators/crud/templates/views/pages/model/create.liquid b/test/fixtures/yeoman/modules/core/generators/crud/templates/views/pages/model/create.liquid new file mode 100644 index 00000000..cf27c95f --- /dev/null +++ b/test/fixtures/yeoman/modules/core/generators/crud/templates/views/pages/model/create.liquid @@ -0,0 +1,14 @@ +--- +slug: <%= modelNamePlural %> +method: post +--- +{% liquid + function object = 'commands/<%= modelNamePlural %>/create', object: context.params.<%= modelName %> + if object.valid + # platformos-check-disable ConvertIncludeToRender + include 'modules/core/helpers/redirect_to', url: '/<%= modelNamePlural %>' + # platformos-check-enable ConvertIncludeToRender + else + render 'theme/simple/<%= modelNamePlural %>/new', object: object + endif +%} diff --git a/test/fixtures/yeoman/modules/core/generators/crud/templates/views/pages/model/delete.liquid b/test/fixtures/yeoman/modules/core/generators/crud/templates/views/pages/model/delete.liquid new file mode 100644 index 00000000..bb26a02e --- /dev/null +++ b/test/fixtures/yeoman/modules/core/generators/crud/templates/views/pages/model/delete.liquid @@ -0,0 +1,16 @@ +--- +slug: <%= modelNamePlural %> +method: delete +--- +{% liquid + function object = 'queries/<%= modelNamePlural %>/find', id: context.params.id + function object = 'commands/<%= modelNamePlural %>/delete', object: object + + # platformos-check-disable ConvertIncludeToRender + if object.valid + include 'modules/core/helpers/redirect_to', url: '/<%= modelNamePlural %>', notice: 'modules/core/common.deleted' + else + include 'modules/core/helpers/redirect_to', url: '/<%= modelNamePlural %>', error: 'modules/core/common.delete_failed' + endif + # platformos-check-enable ConvertIncludeToRender +%} diff --git a/test/fixtures/yeoman/modules/core/generators/crud/templates/views/pages/model/edit.liquid b/test/fixtures/yeoman/modules/core/generators/crud/templates/views/pages/model/edit.liquid new file mode 100644 index 00000000..b098d38c --- /dev/null +++ b/test/fixtures/yeoman/modules/core/generators/crud/templates/views/pages/model/edit.liquid @@ -0,0 +1,5 @@ +{% liquid + function object = 'queries/<%= modelNamePlural %>/find', id: context.params.id + + render 'theme/simple/<%= modelNamePlural %>/edit', object: object +%} diff --git a/test/fixtures/yeoman/modules/core/generators/crud/templates/views/pages/model/index.liquid b/test/fixtures/yeoman/modules/core/generators/crud/templates/views/pages/model/index.liquid new file mode 100644 index 00000000..75290a71 --- /dev/null +++ b/test/fixtures/yeoman/modules/core/generators/crud/templates/views/pages/model/index.liquid @@ -0,0 +1,5 @@ +{% liquid + function <%= modelNamePlural %> = 'queries/<%= modelNamePlural %>/search', limit: 100 + + render 'theme/simple/<%= modelNamePlural %>/index', <%= modelNamePlural %>: <%= modelNamePlural %> +%} diff --git a/test/fixtures/yeoman/modules/core/generators/crud/templates/views/pages/model/new.liquid b/test/fixtures/yeoman/modules/core/generators/crud/templates/views/pages/model/new.liquid new file mode 100644 index 00000000..cb0e37a3 --- /dev/null +++ b/test/fixtures/yeoman/modules/core/generators/crud/templates/views/pages/model/new.liquid @@ -0,0 +1,4 @@ +{% liquid + assign object = '{}' | parse_json + render 'theme/simple/<%= modelNamePlural %>/new', object: object +%} diff --git a/test/fixtures/yeoman/modules/core/generators/crud/templates/views/pages/model/show.liquid b/test/fixtures/yeoman/modules/core/generators/crud/templates/views/pages/model/show.liquid new file mode 100644 index 00000000..c9672cc7 --- /dev/null +++ b/test/fixtures/yeoman/modules/core/generators/crud/templates/views/pages/model/show.liquid @@ -0,0 +1,13 @@ +--- +slug: <%= modelNamePlural %>/:id +--- +{% liquid + + assign <%= modelName %>_id = context.params.id | split: '-' | last + function <%= modelName %> = 'queries/<%= modelNamePlural %>/find', id: <%= modelName %>_id + if <%= modelName %>.id + render 'theme/simple/<%= modelNamePlural %>/show', <%= modelName %>: <%= modelName %> + else + response_status 404 + endif +%} diff --git a/test/fixtures/yeoman/modules/core/generators/crud/templates/views/pages/model/update.liquid b/test/fixtures/yeoman/modules/core/generators/crud/templates/views/pages/model/update.liquid new file mode 100644 index 00000000..06644bd7 --- /dev/null +++ b/test/fixtures/yeoman/modules/core/generators/crud/templates/views/pages/model/update.liquid @@ -0,0 +1,14 @@ +--- +slug: <%= modelNamePlural %> +method: put +--- +{% liquid + function object = 'commands/<%= modelNamePlural %>/update', object: context.params.<%= modelName %> + if object.valid + # platformos-check-disable ConvertIncludeToRender + include 'modules/core/helpers/redirect_to', url: '/<%= modelNamePlural %>' + # platformos-check-enable ConvertIncludeToRender + else + render 'theme/simple/<%= modelNamePlural %>/edit', object: object + endif +%} diff --git a/test/fixtures/yeoman/modules/core/generators/crud/templates/views/partials/theme/simple/field_error.liquid b/test/fixtures/yeoman/modules/core/generators/crud/templates/views/partials/theme/simple/field_error.liquid new file mode 100644 index 00000000..16d306b9 --- /dev/null +++ b/test/fixtures/yeoman/modules/core/generators/crud/templates/views/partials/theme/simple/field_error.liquid @@ -0,0 +1,5 @@ +{% if errors %} + + {{ errors | join: ', ' }} + +{% endif %} diff --git a/test/fixtures/yeoman/modules/core/generators/crud/templates/views/partials/theme/simple/model/edit.liquid b/test/fixtures/yeoman/modules/core/generators/crud/templates/views/partials/theme/simple/model/edit.liquid new file mode 100644 index 00000000..6bd91f21 --- /dev/null +++ b/test/fixtures/yeoman/modules/core/generators/crud/templates/views/partials/theme/simple/model/edit.liquid @@ -0,0 +1,5 @@ +
+

{{ 'app.<%= modelNamePlural %>.edit.edit' | t }} {{ object.name }}

+
+ +{% render 'theme/simple/<%= modelNamePlural %>/form', object: object %} diff --git a/test/fixtures/yeoman/modules/core/generators/crud/templates/views/partials/theme/simple/model/empty_state.liquid b/test/fixtures/yeoman/modules/core/generators/crud/templates/views/partials/theme/simple/model/empty_state.liquid new file mode 100644 index 00000000..5abe3175 --- /dev/null +++ b/test/fixtures/yeoman/modules/core/generators/crud/templates/views/partials/theme/simple/model/empty_state.liquid @@ -0,0 +1,9 @@ +
+

+ {{ 'app.<%= modelNamePlural %>.list.empty_state' | t }} +

+ + + {{ 'app.<%= modelNamePlural %>.list.add' | t }} + +
diff --git a/test/fixtures/yeoman/modules/core/generators/crud/templates/views/partials/theme/simple/model/form.liquid b/test/fixtures/yeoman/modules/core/generators/crud/templates/views/partials/theme/simple/model/form.liquid new file mode 100644 index 00000000..e12d1eef --- /dev/null +++ b/test/fixtures/yeoman/modules/core/generators/crud/templates/views/partials/theme/simple/model/form.liquid @@ -0,0 +1,27 @@ +{% liquid + if object.id + assign method = 'put' + else + assign method = 'post' + endif +%} +
+
+ + + + {% if object.id %} + + {% endif %} + +<% attributes.forEach((attr) => { -%> +
+ + + {% render 'theme/simple/field_error', errors: object.errors.<%= attr.name %> %} +
+<% }); -%> + + +
+
diff --git a/test/fixtures/yeoman/modules/core/generators/crud/templates/views/partials/theme/simple/model/index.liquid b/test/fixtures/yeoman/modules/core/generators/crud/templates/views/partials/theme/simple/model/index.liquid new file mode 100644 index 00000000..352f7a05 --- /dev/null +++ b/test/fixtures/yeoman/modules/core/generators/crud/templates/views/partials/theme/simple/model/index.liquid @@ -0,0 +1,49 @@ +
+ +
+ {% if <%= modelNamePlural %>.results.size > 0 %} + + + +<% attributes.forEach((attr) => { -%> + +<% }); -%> + + + + {% for <%= modelName %> in <%= modelNamePlural %>.results %} + +<% attributes.forEach((attr) => { -%> + +<% }); -%> + + + {% endfor %} + +
+ {{ "app.<%= modelNamePlural %>.attr.<%= attr.name %>" | t }} +
+ + {{ <%= modelName %>.<%= attr.name %> }} + + + + {{ 'app.<%= modelNamePlural %>.list.edit' | t }} + +
+ + + + + +
+
+ {% else %} + {% render 'theme/simple/<%= modelNamePlural %>/empty_state' %} + {% endif %} +
+
diff --git a/test/fixtures/yeoman/modules/core/generators/crud/templates/views/partials/theme/simple/model/new.liquid b/test/fixtures/yeoman/modules/core/generators/crud/templates/views/partials/theme/simple/model/new.liquid new file mode 100644 index 00000000..e15a8d4f --- /dev/null +++ b/test/fixtures/yeoman/modules/core/generators/crud/templates/views/partials/theme/simple/model/new.liquid @@ -0,0 +1,4 @@ +
+

{{ 'app.<%= modelNamePlural %>.new.new' | t }}

+ {% render 'theme/simple/<%= modelNamePlural %>/form', object: object %} +
diff --git a/test/fixtures/yeoman/modules/core/generators/crud/templates/views/partials/theme/simple/model/show.liquid b/test/fixtures/yeoman/modules/core/generators/crud/templates/views/partials/theme/simple/model/show.liquid new file mode 100644 index 00000000..483dd892 --- /dev/null +++ b/test/fixtures/yeoman/modules/core/generators/crud/templates/views/partials/theme/simple/model/show.liquid @@ -0,0 +1,15 @@ +
+

+ <%= modelName %> - {{ <%= modelName %>.id }} +

+ + <% attributes.forEach((attr) => { -%> + + {{ 'app.<%= modelNamePlural %>.attr.<%= attr.name %>' | t }} + +

+ {{ <%= modelName %>.<%= attr.name %> }} +

+ + <% }); -%> +
diff --git a/test/fixtures/yeoman/package-lock.json b/test/fixtures/yeoman/package-lock.json new file mode 100644 index 00000000..039e49d9 --- /dev/null +++ b/test/fixtures/yeoman/package-lock.json @@ -0,0 +1,29 @@ +{ + "name": "pos-cli-yeoman-fixtures", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "pos-cli-yeoman-fixtures", + "dependencies": { + "lodash.startcase": "^4.4.0", + "pluralize": "^8.0.0" + } + }, + "node_modules/lodash.startcase": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/lodash.startcase/-/lodash.startcase-4.4.0.tgz", + "integrity": "sha512-+WKqsK294HMSc2jEbNgpHpd0JfIBhp7rEV4aqXWqFr6AlXov+SlcgB1Fv01y2kGe3Gc8nMW7VA0SrGuSkRfIEg==", + "license": "MIT" + }, + "node_modules/pluralize": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-8.0.0.tgz", + "integrity": "sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==", + "license": "MIT", + "engines": { + "node": ">=4" + } + } + } +} diff --git a/test/fixtures/yeoman/package.json b/test/fixtures/yeoman/package.json new file mode 100644 index 00000000..33663bbf --- /dev/null +++ b/test/fixtures/yeoman/package.json @@ -0,0 +1,8 @@ +{ + "name": "pos-cli-yeoman-fixtures", + "type": "module", + "dependencies": { + "pluralize": "^8.0.0", + "lodash.startcase": "^4.4.0" + } +} diff --git a/test/generators.test.js b/test/generators.test.js new file mode 100644 index 00000000..d9929400 --- /dev/null +++ b/test/generators.test.js @@ -0,0 +1,542 @@ +import 'dotenv/config'; +import { describe, test, expect, beforeEach, afterEach } from 'vitest'; +import { exec } from 'child_process'; +import path from 'path'; +import fs from 'fs/promises'; +import { fileURLToPath } from 'url'; + +const __filename = fileURLToPath(import.meta.url); +const __dirname = path.dirname(__filename); + +const cliPath = path.join(process.cwd(), 'bin', 'pos-cli.js'); + +const execCommand = (cmd, opts = {}) => { + return new Promise((resolve) => { + const child = exec(cmd, { ...opts, stdio: ['pipe', 'pipe', 'pipe'] }, (err, stdout, stderr) => { + let code = err ? err.code : 0; + return resolve({ stdout, stderr, code }); + }); + + if (opts.timeout) { + setTimeout(() => { + child.kill(); + resolve({ stdout: '', stderr: 'Test timed out', code: null }); + }, opts.timeout); + } + }); +}; + +const run = (args, opts = {}) => { + // Convert relative generator paths to absolute paths + const absoluteArgs = args.replace(/(test\/fixtures\/yeoman\/modules\/core\/generators\/\w+)/g, (match) => { + return path.resolve(__dirname, '..', match); + }); + return execCommand(`${cliPath} generate run ${absoluteArgs}`, { + ...opts, + cwd: opts.cwd || process.cwd() + }); +}; + +const setupTestProject = async () => { + const testDir = path.join(__dirname, 'fixtures', 'temp-generator-test'); + try { + await fs.rm(testDir, { recursive: true, force: true }); + } catch (e) { + // Ignore if directory doesn't exist + } + await fs.mkdir(testDir, { recursive: true }); + await fs.mkdir(path.join(testDir, 'app'), { recursive: true }); + return testDir; +}; + +const cleanupTestProject = async (testDir) => { + try { + await fs.rm(testDir, { recursive: true, force: true }); + } catch (e) { + // Ignore if cleanup fails + } +}; + +const fileExists = async (filePath) => { + try { + await fs.access(filePath); + return true; + } catch (e) { + return false; + } +}; + +const readFile = async (filePath) => { + try { + return await fs.readFile(filePath, 'utf8'); + } catch (e) { + return null; + } +}; + +describe('pos-cli generate command', () => { + describe('crud generator', () => { + let testDir; + + beforeEach(async () => { + testDir = await setupTestProject(); + }); + + afterEach(async () => { + if (testDir) { + await cleanupTestProject(testDir); + } + }); + + test('requires modelName argument', async () => { + const { stderr, code } = await run( + 'test/fixtures/yeoman/modules/core/generators/crud', + { cwd: testDir, timeout: 5000 } + ); + + // Yeoman shows error but exits with code 0 + expect(stderr).toMatch(/Did not provide required argument|error|Error/i); + }); + + test('generates CRUD files for model with attributes', async () => { + const { stdout, stderr, code } = await run( + 'test/fixtures/yeoman/modules/core/generators/crud product name:string price:integer description:text active:boolean', + { cwd: testDir, timeout: 10000 } + ); + + expect(code).toBe(0); + expect(stdout).toContain('CRUD generated'); + expect(stderr).not.toContain('Error'); + + // Verify schema file + const schemaPath = path.join(testDir, 'app', 'schema', 'product.yml'); + const schemaExists = await fileExists(schemaPath); + expect(schemaExists).toBe(true); + + const schemaContent = await readFile(schemaPath); + expect(schemaContent).toContain('name'); + expect(schemaContent).toContain('properties'); + + // Verify GraphQL files + const graphqlDir = path.join(testDir, 'app', 'graphql', 'products'); + const createGraphQL = path.join(graphqlDir, 'create.graphql'); + const updateGraphQL = path.join(graphqlDir, 'update.graphql'); + const deleteGraphQL = path.join(graphqlDir, 'delete.graphql'); + const searchGraphQL = path.join(graphqlDir, 'search.graphql'); + + expect(await fileExists(createGraphQL)).toBe(true); + expect(await fileExists(updateGraphQL)).toBe(true); + expect(await fileExists(deleteGraphQL)).toBe(true); + expect(await fileExists(searchGraphQL)).toBe(true); + + // Verify command files + const commandsDir = path.join(testDir, 'app', 'lib', 'commands', 'products'); + const createCommand = path.join(commandsDir, 'create.liquid'); + const updateCommand = path.join(commandsDir, 'update.liquid'); + const deleteCommand = path.join(commandsDir, 'delete.liquid'); + + expect(await fileExists(createCommand)).toBe(true); + expect(await fileExists(updateCommand)).toBe(true); + expect(await fileExists(deleteCommand)).toBe(true); + + // Verify query files + const queriesDir = path.join(testDir, 'app', 'lib', 'queries', 'products'); + const searchQuery = path.join(queriesDir, 'search.liquid'); + const findQuery = path.join(queriesDir, 'find.liquid'); + + expect(await fileExists(searchQuery)).toBe(true); + expect(await fileExists(findQuery)).toBe(true); + + // Verify translations + const translationsPath = path.join(testDir, 'app', 'translations', 'en', 'products.yml'); + expect(await fileExists(translationsPath)).toBe(true); + }); + + test('generates view files when --includeViews option is used', async () => { + const { stdout, code } = await run( + 'test/fixtures/yeoman/modules/core/generators/crud article title:text --includeViews', + { cwd: testDir, timeout: 10000 } + ); + + expect(code).toBe(0); + expect(stdout).toContain('CRUD generated'); + + // Verify pages + const pagesDir = path.join(testDir, 'app', 'views', 'pages', 'articles'); + const indexPage = path.join(pagesDir, 'index.liquid'); + const showPage = path.join(pagesDir, 'show.liquid'); + const newPage = path.join(pagesDir, 'new.liquid'); + const editPage = path.join(pagesDir, 'edit.liquid'); + + expect(await fileExists(indexPage)).toBe(true); + expect(await fileExists(showPage)).toBe(true); + expect(await fileExists(newPage)).toBe(true); + expect(await fileExists(editPage)).toBe(true); + + // Verify partials + const partialsDir = path.join(testDir, 'app', 'views', 'partials', 'theme', 'simple', 'articles'); + const indexPartial = path.join(partialsDir, 'index.liquid'); + const showPartial = path.join(partialsDir, 'show.liquid'); + const newPartial = path.join(partialsDir, 'new.liquid'); + const editPartial = path.join(partialsDir, 'edit.liquid'); + const emptyStatePartial = path.join(partialsDir, 'empty_state.liquid'); + const formPartial = path.join(partialsDir, 'form.liquid'); + + expect(await fileExists(indexPartial)).toBe(true); + expect(await fileExists(showPartial)).toBe(true); + expect(await fileExists(newPartial)).toBe(true); + expect(await fileExists(editPartial)).toBe(true); + expect(await fileExists(emptyStatePartial)).toBe(true); + expect(await fileExists(formPartial)).toBe(true); + + // Verify field_error partial + const fieldErrorPath = path.join(testDir, 'app', 'views', 'partials', 'theme', 'simple', 'field_error.liquid'); + expect(await fileExists(fieldErrorPath)).toBe(true); + }); + + test('does not generate view files without --includeViews option', async () => { + const { code } = await run( + 'test/fixtures/yeoman/modules/core/generators/crud book title:string', + { cwd: testDir, timeout: 10000 } + ); + + expect(code).toBe(0); + + // Verify pages directory doesn't exist + const pagesDir = path.join(testDir, 'app', 'views', 'pages', 'books'); + const pagesDirExists = await fileExists(pagesDir); + expect(pagesDirExists).toBe(false); + }); + + test('pluralizes model name correctly', async () => { + const { code } = await run( + 'test/fixtures/yeoman/modules/core/generators/crud person name:string', + { cwd: testDir, timeout: 10000 } + ); + + expect(code).toBe(0); + + // Verify pluralized directory names + const graphqlDir = path.join(testDir, 'app', 'graphql', 'people'); + const commandsDir = path.join(testDir, 'app', 'lib', 'commands', 'people'); + const queriesDir = path.join(testDir, 'app', 'lib', 'queries', 'people'); + + expect(await fileExists(graphqlDir)).toBe(true); + expect(await fileExists(commandsDir)).toBe(true); + expect(await fileExists(queriesDir)).toBe(true); + }); + + test('generates files with correct content using template variables', async () => { + const { code } = await run( + 'test/fixtures/yeoman/modules/core/generators/crud user name:string email:string age:integer', + { cwd: testDir, timeout: 10000 } + ); + + expect(code).toBe(0); + + const createGraphQLPath = path.join(testDir, 'app', 'graphql', 'users', 'create.graphql'); + const createGraphQLContent = await readFile(createGraphQLPath); + + expect(createGraphQLContent).toContain('name'); + expect(createGraphQLContent).toContain('email'); + expect(createGraphQLContent).toContain('age'); + expect(createGraphQLContent).toContain('String'); + expect(createGraphQLContent).toContain('Int'); + }); + + test('handles model with multiple word names', async () => { + const { code } = await run( + 'test/fixtures/yeoman/modules/core/generators/crud blog_post title:string content:text', + { cwd: testDir, timeout: 10000 } + ); + + expect(code).toBe(0); + + const schemaPath = path.join(testDir, 'app', 'schema', 'blog_post.yml'); + expect(await fileExists(schemaPath)).toBe(true); + }); + + test('supports array type attributes', async () => { + const { code } = await run( + 'test/fixtures/yeoman/modules/core/generators/crud tag name:string categories:array', + { cwd: testDir, timeout: 10000 } + ); + + expect(code).toBe(0); + + const createGraphQLPath = path.join(testDir, 'app', 'graphql', 'tags', 'create.graphql'); + const createGraphQLContent = await readFile(createGraphQLPath); + + expect(createGraphQLContent).toContain('[String]'); + }); + + test('supports float and date types', async () => { + const { code } = await run( + 'test/fixtures/yeoman/modules/core/generators/crud product price:float published_at:date', + { cwd: testDir, timeout: 10000 } + ); + + expect(code).toBe(0); + + const createGraphQLPath = path.join(testDir, 'app', 'graphql', 'products', 'create.graphql'); + const createGraphQLContent = await readFile(createGraphQLPath); + + expect(createGraphQLContent).toContain('Float'); + expect(createGraphQLContent).toContain('String'); + }); + + test('generates config.yml file', async () => { + const { code } = await run( + 'test/fixtures/yeoman/modules/core/generators/crud custom_model name:string', + { cwd: testDir, timeout: 10000 } + ); + + expect(code).toBe(0); + + const configPath = path.join(testDir, 'app', 'config.yml'); + const configExists = await fileExists(configPath); + expect(configExists).toBe(true); + }); + }); + + describe('command generator', () => { + let testDir; + + beforeEach(async () => { + testDir = await setupTestProject(); + }); + + afterEach(async () => { + if (testDir) { + await cleanupTestProject(testDir); + } + }); + + test('requires commandName argument', async () => { + const { stderr, code } = await run( + 'test/fixtures/yeoman/modules/core/generators/command', + { cwd: testDir, timeout: 5000 } + ); + + // Yeoman shows error but exits with code 0 + expect(stderr).toMatch(/Did not provide required argument|error|Error/i); + }); + + test('generates command files with model/action format', async () => { + const { stdout, stderr, code } = await run( + 'test/fixtures/yeoman/modules/core/generators/command users/create', + { cwd: testDir, timeout: 10000 } + ); + + expect(code).toBe(0); + expect(stdout).toContain('Command generated'); + expect(stderr).not.toContain('Error'); + + // Verify command file + const commandPath = path.join(testDir, 'app', 'lib', 'commands', 'users', 'create.liquid'); + const commandExists = await fileExists(commandPath); + expect(commandExists).toBe(true); + + const commandContent = await readFile(commandPath); + expect(commandContent).toContain('commands/users/create'); + + // Verify GraphQL file + const graphqlPath = path.join(testDir, 'app', 'graphql', 'users', 'create.graphql'); + const graphqlExists = await fileExists(graphqlPath); + expect(graphqlExists).toBe(true); + }); + + test('generates command directory with build and check phases', async () => { + const { code } = await run( + 'test/fixtures/yeoman/modules/core/generators/command products/update', + { cwd: testDir, timeout: 10000 } + ); + + expect(code).toBe(0); + + const commandDir = path.join(testDir, 'app', 'lib', 'commands', 'products', 'update'); + const buildPhase = path.join(commandDir, 'build.liquid'); + const checkPhase = path.join(commandDir, 'check.liquid'); + + expect(await fileExists(buildPhase)).toBe(true); + expect(await fileExists(checkPhase)).toBe(true); + }); + + test('parses modelName and actionName from command path', async () => { + const { code } = await run( + 'test/fixtures/yeoman/modules/core/generators/command orders/process_payment', + { cwd: testDir, timeout: 10000 } + ); + + expect(code).toBe(0); + + const commandPath = path.join(testDir, 'app', 'lib', 'commands', 'orders', 'process_payment.liquid'); + const commandContent = await readFile(commandPath); + + // Verify template substitution + expect(commandContent).toContain('orders/process_payment'); + }); + + test('handles simple command name without model', async () => { + const { code } = await run( + 'test/fixtures/yeoman/modules/core/generators/command simple_task', + { cwd: testDir, timeout: 10000 } + ); + + expect(code).toBe(0); + + // Verify files are created + const commandPath = path.join(testDir, 'app', 'lib', 'commands', 'simple_task.liquid'); + const commandDir = path.join(testDir, 'app', 'lib', 'commands', 'simple_task'); + + expect(await fileExists(commandPath)).toBe(true); + expect(await fileExists(commandDir)).toBe(true); + }); + + test('generates GraphQL mutation file', async () => { + const { code } = await run( + 'test/fixtures/yeoman/modules/core/generators/command notifications/send', + { cwd: testDir, timeout: 10000 } + ); + + expect(code).toBe(0); + + const graphqlPath = path.join(testDir, 'app', 'graphql', 'notifications', 'send.graphql'); + const graphqlExists = await fileExists(graphqlPath); + expect(graphqlExists).toBe(true); + + const graphqlContent = await readFile(graphqlPath); + expect(graphqlContent).toBeTruthy(); + }); + + test('handles multiple directory levels', async () => { + const { code } = await run( + 'test/fixtures/yeoman/modules/core/generators/command admin/users/create', + { cwd: testDir, timeout: 10000 } + ); + + expect(code).toBe(0); + + const commandPath = path.join(testDir, 'app', 'lib', 'commands', 'admin', 'users', 'create.liquid'); + const graphqlPath = path.join(testDir, 'app', 'graphql', 'admin', 'users', 'create.graphql'); + + expect(await fileExists(commandPath)).toBe(true); + expect(await fileExists(graphqlPath)).toBe(true); + }); + + test('substitutes actionName template variable correctly', async () => { + const { code } = await run( + 'test/fixtures/yeoman/modules/core/generators/command comments/delete', + { cwd: testDir, timeout: 10000 } + ); + + expect(code).toBe(0); + + const commandContent = await readFile( + path.join(testDir, 'app', 'lib', 'commands', 'comments', 'delete.liquid') + ); + expect(commandContent).toContain('delete'); + }); + + test('substitutes modelName template variable correctly', async () => { + const { code } = await run( + 'test/fixtures/yeoman/modules/core/generators/command sessions/destroy', + { cwd: testDir, timeout: 10000 } + ); + + expect(code).toBe(0); + + const commandContent = await readFile( + path.join(testDir, 'app', 'lib', 'commands', 'sessions', 'destroy.liquid') + ); + expect(commandContent).toContain('sessions'); + }); + + test('generates build phase with correct structure', async () => { + const { code } = await run( + 'test/fixtures/yeoman/modules/core/generators/command reports/generate', + { cwd: testDir, timeout: 10000 } + ); + + expect(code).toBe(0); + + // The build.liquid is a static template without template variables + const buildPhase = path.join( + testDir, + 'app', + 'lib', + 'commands', + 'reports', + 'generate', + 'build.liquid' + ); + const buildContent = await readFile(buildPhase); + + // Build phase should contain the expected Liquid code structure + expect(buildContent).toContain('assign data'); + expect(buildContent).toContain('return data'); + }); + + test('generates check phase with correct structure', async () => { + const { code } = await run( + 'test/fixtures/yeoman/modules/core/generators/command documents/approve', + { cwd: testDir, timeout: 10000 } + ); + + expect(code).toBe(0); + + const checkPhase = path.join( + testDir, + 'app', + 'lib', + 'commands', + 'documents', + 'approve', + 'check.liquid' + ); + const checkContent = await readFile(checkPhase); + + expect(checkContent).toBeTruthy(); + }); + }); + + describe('generator help', () => { + let testDir; + + beforeEach(async () => { + testDir = await setupTestProject(); + }); + + afterEach(async () => { + if (testDir) { + await cleanupTestProject(testDir); + } + }); + + test('shows help for crud generator', async () => { + const { stdout, code } = await run( + 'test/fixtures/yeoman/modules/core/generators/crud --generator-help', + { cwd: testDir, timeout: 5000 } + ); + + expect(code).toBe(0); + expect(stdout).toContain('Generator'); + expect(stdout).toContain('Usage'); + expect(stdout).toContain('Arguments'); + expect(stdout).toContain('modelName'); + }); + + test('shows help for command generator', async () => { + const { stdout, code } = await run( + 'test/fixtures/yeoman/modules/core/generators/command --generator-help', + { cwd: testDir, timeout: 5000 } + ); + + expect(code).toBe(0); + expect(stdout).toContain('Generator'); + expect(stdout).toContain('Usage'); + expect(stdout).toContain('Arguments'); + expect(stdout).toContain('commandName'); + }); + }); +}); diff --git a/test/gui-serve.test.js b/test/gui-serve.test.js new file mode 100644 index 00000000..9512ef8f --- /dev/null +++ b/test/gui-serve.test.js @@ -0,0 +1,93 @@ +import 'dotenv/config'; +import { describe, test, expect, beforeAll, afterAll } from 'vitest'; +import { spawn } from 'child_process'; +import path from 'path'; +import { requireRealCredentials } from './utils/credentials'; + +vi.setConfig({ testTimeout: 30000 }); + +const cliPath = path.join(process.cwd(), 'bin', 'pos-cli.js'); + +const waitForServer = async (server, port, maxWait = 5000) => { + const start = Date.now(); + while (Date.now() - start < maxWait) { + const serverStarted = server.getStdout().includes('Connected to') && + server.getStdout().includes(`Admin: http://localhost:${port}`); + + if (serverStarted) { + try { + const response = await fetch(`http://localhost:${port}/`); + if (response.ok) return true; + } catch (e) { } + } + + const serverHasError = server.getStderr().includes('Error') || + server.getStderr().includes('Failed') || + server.getStdout().includes('Error'); + if (serverHasError) { + return false; + } + + await new Promise(resolve => setTimeout(resolve, 100)); + } + return false; +}; + +const startServer = (args, env = process.env) => { + const child = spawn('node', [cliPath, ...args], { + env: { ...process.env, ...env }, + stdio: ['pipe', 'pipe', 'pipe'] + }); + + let stdout = ''; + let stderr = ''; + + child.stdout.on('data', data => { stdout += data.toString(); }); + child.stderr.on('data', data => { stderr += data.toString(); }); + + return { + process: child, + getStdout: () => stdout, + getStderr: () => stderr, + kill: () => { + child.stdout.destroy(); + child.stderr.destroy(); + child.kill(); + } + }; +}; + +describe('pos-cli gui serve command', () => { + let port = 0; + + beforeAll(async () => { + const portArg = Math.floor(Math.random() * 10000) + 40000; + port = portArg; + }); + + afterAll(async () => { + }); + + test('gui serve should start server without errors', async () => { + requireRealCredentials(); + + const server = startServer(['gui', 'serve', 'staging', '--port', port.toString()]); + + try { + const serverReady = await waitForServer(server, port); + + if (!serverReady) { + await new Promise(resolve => setTimeout(resolve, 500)); + throw new Error(`Server could not start: ${server.getStdout()}\n${server.getStderr()}`); + } + + expect(server.getStdout()).toContain('Connected to'); + expect(server.getStdout()).toContain('Admin:'); + expect(server.getStdout()).toContain(`http://localhost:${port}`); + expect(server.getStdout()).toContain('GraphiQL IDE:'); + expect(server.getStdout()).toContain('Liquid evaluator:'); + } finally { + server.kill(); + } + }); +}); diff --git a/test/lib/commands.test.js b/test/lib/commands.test.js index 3d8485a8..34bb3100 100644 --- a/test/lib/commands.test.js +++ b/test/lib/commands.test.js @@ -1,5 +1,5 @@ -const exec = require('../utils/exec'); -const cliPath = require('../utils/cliPath'); +import exec from '../utils/exec'; +import cliPath from '../utils/cliPath'; const getEnvs = () => { const env = Object.assign({}, process.env, { CI: true }); @@ -60,13 +60,13 @@ test('should run help on env add', async () => { test('should run help on gui serve', async () => { const { stderr, code } = await run('gui serve'); - expect(stderr).toMatch('No environment specified, please pass environment for a command `pos-cli [environment]'); + expect(stderr).toMatch('No environment specified, please pass environment for a command `pos-cli [environment]`'); expect(code).toEqual(1); }); test('should run help on logs', async () => { const { stderr, code } = await run('logs'); - expect(stderr).toMatch('No environment specified, please pass environment for a command `pos-cli [environment]'); + expect(stderr).toMatch('No environment specified, please pass environment for a command `pos-cli [environment]`'); expect(code).toEqual(1); }); @@ -118,8 +118,6 @@ test('should run help on init', async () => { expect(code).toEqual(0); }); -// LOGSV2 -// test('should run help on logsv2', async () => { const { stderr, code } = await run('logsv2'); expect(stderr).toMatch('Usage: pos-cli logsv2 [options] [command]'); diff --git a/test/logs.test.js b/test/logs.test.js index 7b6328b2..1863324e 100644 --- a/test/logs.test.js +++ b/test/logs.test.js @@ -1,17 +1,12 @@ -/* global jest */ +import 'dotenv/config'; +import { describe, test, expect, beforeAll, afterAll, vi } from 'vitest'; +import { spawn } from 'child_process'; +import path from 'path'; +import Gateway from '../lib/proxy.js'; +import { fetchSettings } from '../lib/settings.js'; +import { hasRealCredentials, requireRealCredentials } from './utils/credentials'; -require('dotenv').config(); - -const { spawn } = require('child_process'); -const path = require('path'); -const Gateway = require('../lib/proxy'); -const { fetchSettings } = require('../lib/settings'); -const { requireRealCredentials } = require('./utils/realCredentials'); - -requireRealCredentials(); - -jest.setTimeout(20000); -jest.retryTimes(2); +vi.setConfig({ testTimeout: 20000 }); const generateUniqueId = () => `test-${Date.now()}-${Math.random().toString(36).substring(7)}`; @@ -76,7 +71,11 @@ const execLiquidLog = async (message, type) => { }; describe('pos-cli logs integration', () => { - test('displays log messages with and without type', async () => { + beforeAll(() => { + requireRealCredentials(); + }); + + test('displays log messages with and without type', { retry: 2 }, async () => { const testId = generateUniqueId(); const logWithType = { message: `With type: ${testId}`, type: 'pos-cli-test' }; const logWithoutType = { message: `Default type: ${testId}` }; @@ -106,7 +105,7 @@ describe('pos-cli logs integration', () => { } }); - test('filters logs to show only matching type', async () => { + test('filters logs to show only matching type', { retry: 2 }, async () => { const testId = generateUniqueId(); const matchingLog = { message: `Matching: ${testId}`, type: 'filter-test-type' }; const nonMatchingLog = { message: `Non-matching: ${testId}`, type: 'other-type' }; diff --git a/test/logsv2s.test.js b/test/logsv2s.test.js deleted file mode 100644 index 95702ecd..00000000 --- a/test/logsv2s.test.js +++ /dev/null @@ -1,46 +0,0 @@ -/* global jest */ - -const exec = require('./utils/exec'); -const cliPath = require('./utils/cliPath'); -const fs = require('fs'); -const path = require('path'); - -require('dotenv').config(); - -const swagger = require('../lib/swagger-client'); -const HTTP = require('../lib/logsv2/http'); - -jest.mock('../lib/logsv2/http'); - -const toDate = (timestamp) => { return new Date(timestamp / 1000).toLocaleString() }; - -describe('Happy path', () => { - test('search', async () => { - - const expected = { - hits: [{ _timestamp: "1701428187696722", message: "hello", type: "info" }] - } - - HTTP.get = jest.fn(x => Promise.resolve(expected)); - - const logs = [] - console.log = jest.fn(x => { logs.push(x) }); - - const params = { - // key: '174', - } - - const client = await swagger.SwaggerProxy.client(); - const response = await client.searchAround(params); - - console.log(response); - - expect(HTTP.get).toBeCalledTimes(1); - expect(console.log).toBeCalledTimes(1); - - swagger.search.printLogs(response, params.key); - expect(logs).toContain(`[${toDate("1701428187696722")}] 1701428187696722 info | hello`) - - expect(response).toEqual(expected); - }); -}) diff --git a/test/lib/assets/manifest.test.js b/test/manifest.test.js similarity index 86% rename from test/lib/assets/manifest.test.js rename to test/manifest.test.js index 7b8159a0..09a4d2ad 100644 --- a/test/lib/assets/manifest.test.js +++ b/test/manifest.test.js @@ -1,4 +1,4 @@ -const manifest = require('../../../lib/assets/manifest'); +import { manifestGenerateForAssets } from '../lib/assets/manifest'; const oldCwd = process.cwd(); beforeEach(() => { @@ -14,7 +14,7 @@ test('manifest for files on linux', () => { 'modules/testModule/public/assets/bar.js' ]; - const manifestFile = manifest.manifestGenerateForAssets(assets); + const manifestFile = manifestGenerateForAssets(assets); Object.entries(manifestFile).forEach(([key, value]) => delete value['updated_at']); expect(manifestFile).toEqual({ "app/assets/foo.js": { @@ -34,7 +34,7 @@ test('manifest for files on windows', () => { 'modules\\testModule\\public\\assets\\bar.js' ]; - const manifestFile = manifest.manifestGenerateForAssets(assets); + const manifestFile = manifestGenerateForAssets(assets); Object.entries(manifestFile).forEach(([key, value]) => delete value['updated_at']); expect(manifestFile).toEqual({ "app/assets/foo.js": { diff --git a/test/modules-download.test.js b/test/modules-download.test.js index 1c340802..f72d896d 100644 --- a/test/modules-download.test.js +++ b/test/modules-download.test.js @@ -1,21 +1,18 @@ -/* global jest */ - -const exec = require('./utils/exec'); -const cliPath = require('./utils/cliPath'); -const fs = require('fs'); -const path = require('path'); - -require('dotenv').config(); -const { requireRealCredentials } = require('./utils/realCredentials'); -requireRealCredentials(); +import 'dotenv/config'; +import { describe, test, expect } from 'vitest'; +import exec from './utils/exec'; +import cliPath from './utils/cliPath'; +import fs from 'fs'; +import path from 'path'; +import { hasRealCredentials, requireRealCredentials } from './utils/credentials'; const cwd = name => path.join(process.cwd(), 'test', 'fixtures', name); const run = async (fixtureName, options) => await exec(`${cliPath} modules download ${options}`, { cwd: cwd(fixtureName), env: process.env }); describe('Successful download', () => { - test('download test module in the correct version', async () => { + requireRealCredentials(); const pathToModuleJson = `${cwd('deploy/modules_test')}/modules/tests/template-values.json`; const pathToDirectory = `${cwd('deploy/modules_test')}/modules`; @@ -89,14 +86,10 @@ describe('Successful download', () => { const coreModuleJson = JSON.parse(fs.readFileSync(pathToCoreModuleJson, 'utf8')); expect(coreModuleJson.version).toBe('1.5.5'); - // do not download dependency again - const { stdout: stdout2 } = await run('deploy/modules_user', 'user'); expect(stdout2).toContain('Downloading user@3.0.8'); expect(stdout2).not.toContain('Downloading core@1.5.5'); - // download again if forced - const { stdout: stdout3 } = await run('deploy/modules_user', 'user --force-dependencies'); expect(stdout3).toContain('Downloading user@3.0.8'); expect(stdout3).toContain('Downloading core@1.5.5'); @@ -116,6 +109,6 @@ describe('Failed download', () => { }); test('Unescaped characters in request path', async () => { const { stderr } = await run('deploy/modules_test', 'ąę'); - expect(stderr).toMatch('[ERR_UNESCAPED_CHARACTERS]: Request path contains unescaped characters'); + expect(stderr).toMatch('404 not found'); }); }); diff --git a/test/modules-push.test.js b/test/modules-push.test.js index 40419be4..c422a84f 100644 --- a/test/modules-push.test.js +++ b/test/modules-push.test.js @@ -1,13 +1,10 @@ -/* global jest */ - -const exec = require('./utils/exec'); -const cliPath = require('./utils/cliPath'); -const fs = require('fs'); -const path = require('path'); - -require('dotenv').config(); -const { requireRealCredentials } = require('./utils/realCredentials'); -requireRealCredentials(); +import 'dotenv/config'; +import { describe, test, expect } from 'vitest'; +import exec from './utils/exec'; +import cliPath from './utils/cliPath'; +import fs from 'fs'; +import path from 'path'; +import { hasRealCredentials, requireRealCredentials } from './utils/credentials'; Object.assign(process.env, { DEBUG: true @@ -19,21 +16,25 @@ const run = (fixtureName, options) => exec(`${cliPath} modules push ${options}`, describe('Server errors', () => { test('Empty directory', async () => { + requireRealCredentials(); const { stdout, stderr } = await run('empty', '--email pos-cli-ci@platformos.com'); expect(stderr).toMatch("File doesn't exist: template-values.json"); }); test('Multiple modules with template-values.json', async () => { + requireRealCredentials(); const { stdout, stderr } = await run('multiple_modules', '--email pos-cli-ci@platformos.com'); expect(stderr).toMatch("There is more than one modules/*/template-values.json, please use --name parameter or create template-values.json in the root of the project."); }); test('Multiple modules with template-values.json and invalid name', async () => { + requireRealCredentials(); const { stdout, stderr } = await run('multiple_modules', '--email pos-cli-ci@platformos.com --name missing'); expect(stderr).toMatch("File doesn't exist: modules/missing/template-values.json"); }); test('Error in root template-values.json', async () => { + requireRealCredentials(); const { stdout, stderr } = await run('template_values_in_root_first', '--email pos-cli-ci@platformos.com --name foo'); expect(stderr).toMatch("There is no directory modules/bar"); }); @@ -44,12 +45,14 @@ describe('Server errors', () => { }); test('Wrong email', async () => { + requireRealCredentials(); const { stdout, stderr } = await run('good', '--email foo@example.com'); expect(stderr).toMatch('Cannot find modules/pos_cli_ci_test, creating archive with the current directory'); expect(stderr).toMatch('You are unauthorized to do this operation. Check if your Token/URL or email/password are correct.'); }); test('Wrong version', async () => { + requireRealCredentials(); const { stdout, stderr } = await run('good', '--email pos-cli-ci@platformos.com'); expect(stdout).toMatch("for access token"); expect(stdout).toMatch("Release Uploaded"); diff --git a/test/modules-update.test.js b/test/modules-update.test.js index 4152695f..7bdcb10b 100644 --- a/test/modules-update.test.js +++ b/test/modules-update.test.js @@ -1,18 +1,17 @@ -/* global jest */ - -const exec = require('./utils/exec'); -const cliPath = require('./utils/cliPath'); -const fs = require('fs'); -const path = require('path'); -require('dotenv').config(); -const { requireRealCredentials } = require('./utils/realCredentials'); -requireRealCredentials(); +import 'dotenv/config'; +import { describe, test, expect } from 'vitest'; +import exec from './utils/exec'; +import cliPath from './utils/cliPath'; +import fs from 'fs'; +import path from 'path'; +import { hasRealCredentials, requireRealCredentials, noCredentials, applyCredentials } from './utils/credentials'; const cwd = name => path.join(process.cwd(), 'test', 'fixtures', name); const run = async (fixtureName, options) => await exec(`${cliPath} modules update ${options}`, { cwd: cwd(fixtureName), env: process.env }); describe('Successful update', () => { test('update core module', async () => { + requireRealCredentials(); const pathToLockFile = `${cwd('deploy/modules_update')}/app/pos-modules.lock.json`; const { stdout, stderr } = await run('deploy/modules_update', 'core'); @@ -25,11 +24,31 @@ describe('Successful update', () => { describe('Failed download', () => { test('Module not found - non-existing module', async () => { - const { stdout, stderr } = await run('deploy/modules_update', 'moduleNotFound'); - expect(stderr).toMatch("Can't find module moduleNotFound"); + const savedCreds = applyCredentials(noCredentials); + const savedPortalHost = process.env.PARTNER_PORTAL_HOST; + delete process.env.PARTNER_PORTAL_HOST; + try { + const { stdout, stderr } = await run('deploy/modules_update', 'moduleNotFound'); + expect(stderr).toMatch("Can't find module moduleNotFound"); + } finally { + applyCredentials(savedCreds); + if (savedPortalHost) { + process.env.PARTNER_PORTAL_HOST = savedPortalHost; + } + } }); test('Module not found - no name for module', async () => { - const { stdout, stderr } = await run('deploy/modules_update', ''); - expect(stderr).toMatch("error: missing required argument 'module-name'"); + const savedCreds = applyCredentials(noCredentials); + const savedPortalHost = process.env.PARTNER_PORTAL_HOST; + delete process.env.PARTNER_PORTAL_HOST; + try { + const { stdout, stderr } = await run('deploy/modules_update', ''); + expect(stderr).toMatch("error: missing required argument 'module-name'"); + } finally { + applyCredentials(savedCreds); + if (savedPortalHost) { + process.env.PARTNER_PORTAL_HOST = savedPortalHost; + } + } }); }); diff --git a/test/productionEnvironment.test.js b/test/productionEnvironment.test.js index 0bbbd68c..b58fa11b 100644 --- a/test/productionEnvironment.test.js +++ b/test/productionEnvironment.test.js @@ -1,13 +1,20 @@ -// Mock prompts module before requiring the module under test -jest.mock('prompts'); -jest.mock('../lib/logger', () => ({ - Warn: jest.fn(), - Info: jest.fn(), - Error: jest.fn() +import { vi, describe, test, expect, beforeEach } from 'vitest'; + +const prompts = vi.fn(); +vi.mock('prompts', () => ({ + default: prompts +})); + +const logger = { + Warn: vi.fn(), + Info: vi.fn(), + Error: vi.fn() +}; +vi.mock('../lib/logger.js', () => ({ + default: logger })); -const { isProductionEnvironment, confirmProductionExecution } = require('../lib/productionEnvironment'); -const prompts = require('prompts'); +const { isProductionEnvironment, confirmProductionExecution } = await import('../lib/productionEnvironment.js'); describe('isProductionEnvironment', () => { describe('returns true for production environments', () => { @@ -40,8 +47,6 @@ describe('isProductionEnvironment', () => { }); test('detects "preprod" as production (contains "prod")', () => { - // Note: This is current behavior - "preprod" contains "prod" so it triggers - // If this is undesirable, the regex should be updated to use word boundaries expect(isProductionEnvironment('preprod')).toBe(true); }); @@ -113,7 +118,7 @@ describe('isProductionEnvironment', () => { describe('confirmProductionExecution', () => { beforeEach(() => { - jest.clearAllMocks(); + vi.clearAllMocks(); }); test('returns true when user confirms', async () => { diff --git a/test/sync.test.js b/test/sync.test.js index 1476129c..6a69c93c 100644 --- a/test/sync.test.js +++ b/test/sync.test.js @@ -1,16 +1,15 @@ -/* global jest */ +import 'dotenv/config'; +import { describe, test, expect, afterAll, vi } from 'vitest'; +import exec from './utils/exec'; +import cliPath from './utils/cliPath'; +import path from 'path'; +import fs from 'fs'; +import { requireRealCredentials } from './utils/credentials'; -const exec = require('./utils/exec'); -const cliPath = require('./utils/cliPath'); -const path = require('path'); -const fs = require('fs'); +vi.setConfig({ testTimeout: 20000 }); const stepTimeout = 3500; -require('dotenv').config(); -const { requireRealCredentials } = require('./utils/realCredentials'); -requireRealCredentials(); - const cwd = name => path.join(process.cwd(), 'test', 'fixtures', 'deploy', name); const run = (fixtureName, options, callback) => { return exec( @@ -21,32 +20,28 @@ const run = (fixtureName, options, callback) => { }; const sleep = ms => new Promise(resolve => setTimeout(resolve, ms)); -jest.setTimeout(20000); // default jasmine timeout is 5 seconds - we need more. - const kill = p => { p.stdout.destroy(); p.stderr.destroy(); p.kill() } -jest.retryTimes(2); - -// Store original content to restore after tests const barJsPath = path.join(cwd('correct_with_assets'), 'app/assets/bar.js'); const originalBarJsContent = fs.readFileSync(barJsPath, 'utf8'); afterAll(() => { - // Restore bar.js to original content after all tests fs.writeFileSync(barJsPath, originalBarJsContent); }); +// Skip all tests if credentials aren't available describe('Happy path', () => { - test('sync assets', async () => { + test('sync assets', { retry: 2 }, async () => { + requireRealCredentials(); const steps = async (child) => { - await sleep(stepTimeout); //wait for sync to start + await sleep(stepTimeout); exec('echo "x" >> app/assets/bar.js', { cwd: cwd('correct_with_assets') }); - await sleep(stepTimeout); //wait for syncing the file + await sleep(stepTimeout); kill(child); } @@ -56,11 +51,11 @@ describe('Happy path', () => { expect(stdout).toMatch('[Sync] Synced asset: app/assets/bar.js'); }); - test('sync with direct assets upload', async () => { + test('sync with direct assets upload', { retry: 2 }, async () => { const steps = async (child) => { - await sleep(stepTimeout); //wait for sync to start + await sleep(stepTimeout); exec('echo "x" >> app/assets/bar.js', { cwd: cwd('correct_with_assets') }); - await sleep(stepTimeout); //wait for syncing the file + await sleep(stepTimeout); kill(child); } const { stdout, stderr } = await run('correct_with_assets', '-d', steps); @@ -69,7 +64,7 @@ describe('Happy path', () => { expect(stdout).toMatch('[Sync] Synced asset: app/assets/bar.js'); }); - test('delete synced file', async () => { + test('delete synced file', { retry: 2 }, async () => { const dir = 'model_schemas'; const fileName = `${dir}/test.yml`; const validYML = `name: test @@ -80,11 +75,11 @@ properties: const steps = async (child) => { await exec(`mkdir -p app/${dir}`, { cwd: cwd('correct_with_assets') }); - await sleep(stepTimeout); //wait for syncing the file + await sleep(stepTimeout); await exec(`echo "${validYML}" >> app/${fileName}`, { cwd: cwd('correct_with_assets') }); - await sleep(stepTimeout); //wait for syncing the file + await sleep(stepTimeout); await exec(`rm app/${fileName}`, { cwd: cwd('correct_with_assets') }); - await sleep(stepTimeout); //wait for deleting the file + await sleep(stepTimeout); kill(child); } const { stderr, stdout } = await run('correct_with_assets', null, steps); diff --git a/test/lib/templates.test.js b/test/templates.test.js similarity index 51% rename from test/lib/templates.test.js rename to test/templates.test.js index ac0fd8df..ee476b7b 100644 --- a/test/lib/templates.test.js +++ b/test/templates.test.js @@ -1,15 +1,15 @@ -const templates = require('./../../lib/templates'); -const fs = require('fs'); +import { fillInTemplateValues } from '../lib/templates'; +import fs from 'fs'; const fileWithTemplatePath = 'test/fixtures/template.liquid'; const missformatedTemplatePath = 'test/fixtures/missformatedTemplate.html'; test('ignores file if template values are empty', () => { - expect(templates.fillInTemplateValues(missformatedTemplatePath, Object({}))).not.toEqual(fs.readFileSync(missformatedTemplatePath, 'utf8')); + expect(fillInTemplateValues(missformatedTemplatePath, Object({}))).not.toEqual(fs.readFileSync(missformatedTemplatePath, 'utf8')); }); test('returns oryginal file body if it runs into error', () => { - expect(templates.fillInTemplateValues(missformatedTemplatePath, Object({ "aKey": 1}))).toEqual(fs.readFileSync(missformatedTemplatePath, 'utf8')); + expect(fillInTemplateValues(missformatedTemplatePath, Object({ "aKey": 1}))).toEqual(fs.readFileSync(missformatedTemplatePath, 'utf8')); }); test('fills template with values ', () => { @@ -17,7 +17,7 @@ test('fills template with values ', () => { "aKey": "aStringValue", "otherKey": 1 }) - expect(templates.fillInTemplateValues(fileWithTemplatePath, templateValues)).toEqual(`--- + expect(fillInTemplateValues(fileWithTemplatePath, templateValues)).toEqual(`--- slug: aStringValue --- @@ -29,7 +29,7 @@ test('render nothing for non existing keys ', () => { const templateValues = Object({ "otherKey": 1 }) - expect(templates.fillInTemplateValues(fileWithTemplatePath, templateValues)).toEqual(`--- + expect(fillInTemplateValues(fileWithTemplatePath, templateValues)).toEqual(`--- slug: --- diff --git a/test/test-run.test.js b/test/test-run.test.js index aa24215f..fb6c6d6c 100644 --- a/test/test-run.test.js +++ b/test/test-run.test.js @@ -1,89 +1,93 @@ -/* global jest */ - -jest.mock('../lib/apiRequest', () => ({ - apiRequest: jest.fn() -})); - -require('dotenv').config(); - -const exec = require('./utils/exec'); -const cliPath = require('./utils/cliPath'); -const Gateway = require('../lib/proxy'); -const { cleanInstance } = require('./utils/commands'); - -// Import test-runner modules -const { TestLogStream } = require('../lib/test-runner/logStream'); -const { formatDuration, formatTestLog } = require('../lib/test-runner/formatters'); +import 'dotenv/config'; +import { describe, test, expect, beforeEach, vi } from 'vitest'; +import { spawn } from 'child_process'; +import path from 'path'; +import { requireRealCredentials } from './utils/credentials'; +import Gateway from '../lib/proxy.js'; +import { TestLogStream } from '../lib/test-runner/logStream.js'; +import { formatDuration, formatTestLog, transformTestResponse } from '../lib/test-runner/formatters.js'; + +vi.setConfig({ testTimeout: 30000 }); + +const cliPath = path.join(process.cwd(), 'bin', 'pos-cli.js'); + +const startCommand = (args, env = process.env) => { + const child = spawn('node', [cliPath, ...args], { + env: { ...process.env, ...env }, + stdio: ['pipe', 'pipe', 'pipe'] + }); -const cwd = name => `${process.cwd()}/test/fixtures/test/${name}`; -const run = (fixtureName, options) => exec(`${cliPath} test run ${options || ''}`, { cwd: cwd(fixtureName), env: process.env }); -const deploy = (fixtureName) => exec(`${cliPath} deploy`, { cwd: cwd(fixtureName), env: process.env }); + let stdout = ''; + let stderr = ''; + + child.stdout.on('data', data => { stdout += data.toString(); }); + child.stderr.on('data', data => { stderr += data.toString(); }); + + return { + process: child, + getStdout: () => stdout, + getStderr: () => stderr, + kill: () => { + child.stdout.destroy(); + child.stderr.destroy(); + child.kill(); + } + }; +}; + +const exec = (command, options = {}) => { + return new Promise((resolve) => { + const child = spawn('bash', ['-c', command], { + ...options, + stdio: ['pipe', 'pipe', 'pipe'] + }); -jest.setTimeout(200000); + let stdout = ''; + let stderr = ''; -describe('pos-cli test run', () => { - describe('Unit tests', () => { - const { apiRequest } = require('../lib/apiRequest'); + child.stdout.on('data', data => { stdout += data.toString(); }); + child.stderr.on('data', data => { stderr += data.toString(); }); - beforeEach(() => { - apiRequest.mockReset(); + child.on('close', code => { + resolve({ stdout, stderr, code }); }); - describe('Gateway.test(name)', () => { - test('calls apiRequest with correct URL for single test (JS format)', async () => { - apiRequest.mockResolvedValue({ passed: 1, failed: 0, total: 1, tests: [] }); - - const gateway = new Gateway({ url: 'http://example.com', token: '1234', email: 'test@example.com' }); - const result = await gateway.test('example_test'); + if (options.timeout) { + setTimeout(() => { + child.kill(); + resolve({ stdout, stderr, code: null }); + }, options.timeout); + } + }); +}; - expect(apiRequest).toHaveBeenCalledWith({ - method: 'GET', - uri: 'http://example.com/_tests/run.js?name=example_test', - formData: undefined, - json: true, - forever: undefined, - request: expect.any(Function) - }); - expect(result).toEqual({ passed: 1, failed: 0, total: 1, tests: [] }); +describe('pos-cli test-run command', () => { + describe('Unit tests', () => { + describe('formatDuration', () => { + test('formats milliseconds under 1 second', () => { + expect(formatDuration(0)).toBe('0ms'); + expect(formatDuration(1)).toBe('1ms'); + expect(formatDuration(500)).toBe('500ms'); + expect(formatDuration(999)).toBe('999ms'); }); - test('handles test with path in name', async () => { - apiRequest.mockResolvedValue({ passed: 1, failed: 0, total: 1 }); - - const gateway = new Gateway({ url: 'http://example.com', token: '1234', email: 'test@example.com' }); - await gateway.test('test/examples/assertions_test'); - - expect(apiRequest).toHaveBeenCalledWith(expect.objectContaining({ - uri: 'http://example.com/_tests/run.js?name=test/examples/assertions_test' - })); + test('formats seconds under 1 minute', () => { + expect(formatDuration(1000)).toBe('1.00s'); + expect(formatDuration(1500)).toBe('1.50s'); + expect(formatDuration(2345)).toBe('2.35s'); + expect(formatDuration(59999)).toBe('60.00s'); }); - }); - - describe('Gateway.testRunAsync()', () => { - test('calls apiRequest with run_async endpoint (no .js extension for v1.1.0+)', async () => { - apiRequest.mockResolvedValue({ test_name: 'liquid_test_abc123' }); - const gateway = new Gateway({ url: 'http://example.com', token: '1234', email: 'test@example.com' }); - const result = await gateway.testRunAsync(); - - expect(apiRequest).toHaveBeenCalledWith({ - method: 'GET', - uri: 'http://example.com/_tests/run_async', - formData: undefined, - json: true, - forever: undefined, - request: expect.any(Function) - }); - expect(result).toEqual({ test_name: 'liquid_test_abc123' }); + test('formats minutes and seconds', () => { + expect(formatDuration(60000)).toBe('1m 0.00s'); + expect(formatDuration(65000)).toBe('1m 5.00s'); + expect(formatDuration(90000)).toBe('1m 30.00s'); + expect(formatDuration(125500)).toBe('2m 5.50s'); }); - test('handles error response', async () => { - apiRequest.mockResolvedValue({ error: 'Tests module not found' }); - - const gateway = new Gateway({ url: 'http://example.com', token: '1234', email: 'test@example.com' }); - const result = await gateway.testRunAsync(); - - expect(result).toEqual({ error: 'Tests module not found' }); + test('formats large durations', () => { + expect(formatDuration(300000)).toBe('5m 0.00s'); + expect(formatDuration(3600000)).toBe('60m 0.00s'); }); }); @@ -120,7 +124,7 @@ describe('pos-cli test run', () => { const result = formatTestLog(logRow, false); - expect(result).toContain('debug:'); + expect(result).toContain(' debug:'); expect(result).toContain('Debug: checking variable value'); }); @@ -132,7 +136,7 @@ describe('pos-cli test run', () => { const result = formatTestLog(logRow, false); - expect(result).toContain('custom_debug:'); + expect(result).toContain(' custom_debug:'); expect(result).toContain('Custom debug message from test'); }); @@ -156,41 +160,8 @@ describe('pos-cli test run', () => { const result = formatTestLog(logRow, true); - expect(result).toMatch(/\n$/); expect(result).toContain('Test message with newline'); - }); - - test('formatTestLog output ends with newline for test path messages', () => { - const logRow = { - message: '{"path": "app/lib/test/example_test.liquid"}', - error_type: 'liquid_test_abc123' - }; - - const result = formatTestLog(logRow, true); - - expect(result).toMatch(/\n$/); - }); - - test('formatTestLog output ends with newline for regular test logs', () => { - const logRow = { - message: 'Test assertion passed', - error_type: 'liquid_test_abc123' - }; - - const result = formatTestLog(logRow, true); - - expect(result).toMatch(/\n$/); - }); - - test('formatTestLog output ends with newline for debug logs', () => { - const logRow = { - message: 'Debug: checking variable value', - error_type: 'debug' - }; - - const result = formatTestLog(logRow, false); - - expect(result).toMatch(/\n$/); + expect(result).not.toContain('Test message with newline\n\n'); }); test('handles non-string message by converting to JSON', () => { @@ -206,227 +177,178 @@ describe('pos-cli test run', () => { }); }); - describe('formatDuration', () => { - test('formats milliseconds under 1 second', () => { - expect(formatDuration(0)).toBe('0ms'); - expect(formatDuration(1)).toBe('1ms'); - expect(formatDuration(500)).toBe('500ms'); - expect(formatDuration(999)).toBe('999ms'); - }); - - test('formats seconds under 1 minute', () => { - expect(formatDuration(1000)).toBe('1.00s'); - expect(formatDuration(1500)).toBe('1.50s'); - expect(formatDuration(2345)).toBe('2.35s'); - expect(formatDuration(59999)).toBe('60.00s'); - }); - - test('formats minutes and seconds', () => { - expect(formatDuration(60000)).toBe('1m 0.00s'); - expect(formatDuration(65000)).toBe('1m 5.00s'); - expect(formatDuration(90000)).toBe('1m 30.00s'); - expect(formatDuration(125500)).toBe('2m 5.50s'); - }); - - test('formats large durations', () => { - expect(formatDuration(300000)).toBe('5m 0.00s'); - expect(formatDuration(3600000)).toBe('60m 0.00s'); - }); - }); - - describe('TestLogStream', () => { - describe('parseJsonSummary', () => { - test('parses successful test completion JSON from tests module 1.1.1+', () => { - const stream = new TestLogStream({}); - - const message = JSON.stringify({ - success: true, - total_tests: 5, - total_assertions: 16, - total_errors: 0, - duration_ms: 26, - tests: [ - { name: "test/array_test", success: true, assertions: 2, errors: {} }, - { name: "test/examples/assertions_test", success: true, assertions: 4, errors: {} }, - { name: "test/example_test", success: true, assertions: 5, errors: {} }, - { name: "test/object_test", success: true, assertions: 3, errors: {} }, - { name: "test/string_test", success: true, assertions: 2, errors: {} } - ] - }); - - const result = stream.parseJsonSummary(message); + describe('transformTestResponse', () => { + test('parses successful test completion JSON from tests module 1.1.1+', () => { + const response = { + success: true, + total_tests: 5, + total_assertions: 16, + total_errors: 0, + duration_ms: 26, + tests: [ + { name: "test/array_test", success: true, assertions: 2, errors: {} }, + { name: "test/examples/assertions_test", success: true, assertions: 4, errors: {} }, + { name: "test/example_test", success: true, assertions: 5, errors: {} }, + { name: "test/object_test", success: true, assertions: 3, errors: {} }, + { name: "test/string_test", success: true, assertions: 2, errors: {} } + ] + }; - expect(result).toEqual({ - total: 5, - passed: 5, - failed: 0, - assertions: 16, - tests: [ - { name: "test/array_test", status: "passed", passed: true, assertions: 2 }, - { name: "test/examples/assertions_test", status: "passed", passed: true, assertions: 4 }, - { name: "test/example_test", status: "passed", passed: true, assertions: 5 }, - { name: "test/object_test", status: "passed", passed: true, assertions: 3 }, - { name: "test/string_test", status: "passed", passed: true, assertions: 2 } - ], - duration: 26 - }); + const result = transformTestResponse(response); + + expect(result).toEqual({ + total: 5, + passed: 5, + failed: 0, + assertions: 16, + tests: [ + { name: "test/array_test", status: "passed", passed: true, assertions: 2 }, + { name: "test/examples/assertions_test", status: "passed", passed: true, assertions: 4 }, + { name: "test/example_test", status: "passed", passed: true, assertions: 5 }, + { name: "test/object_test", status: "passed", passed: true, assertions: 3 }, + { name: "test/string_test", status: "passed", passed: true, assertions: 2 } + ], + duration: 26 }); + }); - test('parses failed test completion JSON with error details', () => { - const stream = new TestLogStream({}); - - const message = JSON.stringify({ - success: false, - total_tests: 3, - total_assertions: 10, - total_errors: 1, - duration_ms: 45, - tests: [ - { name: "test/passing_test", success: true, assertions: 3, errors: {} }, - { name: "test/failing_test", success: false, assertions: 2, errors: { expected: "field to be 2", actual: "field is 1" } }, - { name: "test/another_passing_test", success: true, assertions: 5, errors: {} } - ] - }); - - const result = stream.parseJsonSummary(message); + test('parses failed test completion JSON with error details', () => { + const response = { + success: false, + total_tests: 3, + total_assertions: 10, + total_errors: 1, + duration_ms: 45, + tests: [ + { name: "test/passing_test", success: true, assertions: 3, errors: {} }, + { name: "test/failing_test", success: false, assertions: 2, errors: { expected: "field to be 2", actual: "field is 1" } }, + { name: "test/another_passing_test", success: true, assertions: 5, errors: {} } + ] + }; - expect(result).toEqual({ - total: 3, - passed: 2, - failed: 1, - assertions: 10, - tests: [ - { name: "test/passing_test", status: "passed", passed: true, assertions: 3 }, - { name: "test/failing_test", status: "failed", passed: false, assertions: 2, error: "{\"expected\":\"field to be 2\",\"actual\":\"field is 1\"}" }, - { name: "test/another_passing_test", status: "passed", passed: true, assertions: 5 } - ], - duration: 45 - }); + const result = transformTestResponse(response); + + expect(result).toEqual({ + total: 3, + passed: 2, + failed: 1, + assertions: 10, + tests: [ + { name: "test/passing_test", status: "passed", passed: true, assertions: 3 }, + { name: "test/failing_test", status: "failed", passed: false, assertions: 2, error: "{\"expected\":\"field to be 2\",\"actual\":\"field is 1\"}" }, + { name: "test/another_passing_test", status: "passed", passed: true, assertions: 5 } + ], + duration: 45 }); + }); - test('handles alternative field names (total instead of total_tests)', () => { - const stream = new TestLogStream({}); - - const message = JSON.stringify({ - success: true, - total: 4, - assertions: 8, - duration: 30, - tests: [ - { name: "test1", success: true, assertions: 2, errors: {} }, - { name: "test2", success: true, assertions: 2, errors: {} }, - { name: "test3", success: true, assertions: 2, errors: {} }, - { name: "test4", success: true, assertions: 2, errors: {} } - ] - }); - - const result = stream.parseJsonSummary(message); - - expect(result).toEqual({ - total: 4, - passed: 4, - failed: 0, - assertions: 8, - tests: [ - { name: "test1", status: "passed", passed: true, assertions: 2 }, - { name: "test2", status: "passed", passed: true, assertions: 2 }, - { name: "test3", status: "passed", passed: true, assertions: 2 }, - { name: "test4", status: "passed", passed: true, assertions: 2 } - ], - duration: 30 - }); - }); + test('handles alternative field names (total instead of total_tests)', () => { + const response = { + success: true, + total: 4, + assertions: 8, + duration: 30, + tests: [ + { name: "test1", success: true, assertions: 2, errors: {} }, + { name: "test2", success: true, assertions: 2, errors: {} }, + { name: "test3", success: true, assertions: 2, errors: {} }, + { name: "test4", success: true, assertions: 2, errors: {} } + ] + }; - test('returns null for invalid JSON', () => { - const stream = new TestLogStream({}); - const invalidJson = '{ "invalid": json }'; - const result = stream.parseJsonSummary(invalidJson); - expect(result).toBeNull(); + const result = transformTestResponse(response); + + expect(result).toEqual({ + total: 4, + passed: 4, + failed: 0, + assertions: 8, + tests: [ + { name: "test1", status: "passed", passed: true, assertions: 2 }, + { name: "test2", status: "passed", passed: true, assertions: 2 }, + { name: "test3", status: "passed", passed: true, assertions: 2 }, + { name: "test4", status: "passed", passed: true, assertions: 2 } + ], + duration: 30 }); + }); - test('handles empty tests array in summary', () => { - const stream = new TestLogStream({}); - - const message = JSON.stringify({ - success: true, - total_tests: 0, - total_assertions: 0, - duration_ms: 5, - tests: [] - }); + test('handles empty tests array in summary', () => { + const response = { + success: true, + total_tests: 0, + total_assertions: 0, + duration_ms: 5, + tests: [] + }; - const result = stream.parseJsonSummary(message); + const result = transformTestResponse(response); - expect(result).toEqual({ - total: 0, - passed: 0, - failed: 0, - assertions: 0, - tests: [], - duration: 5 - }); + expect(result).toEqual({ + total: 0, + passed: 0, + failed: 0, + assertions: 0, + tests: [], + duration: 5 }); + }); - test('handles test with no assertions', () => { - const stream = new TestLogStream({}); - - const message = JSON.stringify({ - success: true, - total_tests: 1, - total_assertions: 0, - duration_ms: 10, - tests: [ - { name: "test/empty_test", success: true, assertions: 0, errors: {} } - ] - }); - - const result = stream.parseJsonSummary(message); - - expect(result.tests[0].assertions).toBe(0); - expect(result.assertions).toBe(0); - }); + test('handles test with no assertions', () => { + const response = { + success: true, + total_tests: 1, + total_assertions: 0, + duration_ms: 10, + tests: [ + { name: "test/empty_test", success: true, assertions: 0, errors: {} } + ] + }; - test('handles test with array of errors', () => { - const stream = new TestLogStream({}); + const result = transformTestResponse(response); - const message = JSON.stringify({ - success: false, - total_tests: 1, - total_errors: 1, - duration_ms: 15, - tests: [ - { - name: "test/multi_error_test", - success: false, - assertions: 3, - errors: ["Error 1", "Error 2", "Error 3"] - } - ] - }); + expect(result.tests[0].assertions).toBe(0); + expect(result.assertions).toBe(0); + }); - const result = stream.parseJsonSummary(message); + test('handles test with array of errors', () => { + const response = { + success: false, + total_tests: 1, + total_errors: 1, + duration_ms: 15, + tests: [ + { + name: "test/multi_error_test", + success: false, + assertions: 3, + errors: ["Error 1", "Error 2", "Error 3"] + } + ] + }; - expect(result.tests[0].errors).toEqual(["Error 1", "Error 2", "Error 3"]); - }); + const result = transformTestResponse(response); - test('handles missing test name gracefully', () => { - const stream = new TestLogStream({}); + expect(result.tests[0].errors).toEqual(["Error 1", "Error 2", "Error 3"]); + }); - const message = JSON.stringify({ - success: true, - total_tests: 1, - duration_ms: 10, - tests: [ - { success: true, assertions: 1, errors: {} } - ] - }); + test('handles missing test name gracefully', () => { + const response = { + success: true, + total_tests: 1, + duration_ms: 10, + tests: [ + { success: true, assertions: 1, errors: {} } + ] + }; - const result = stream.parseJsonSummary(message); + const result = transformTestResponse(response); - expect(result.tests[0].name).toBe('Unknown test'); - }); + expect(result.tests[0].name).toBe('Unknown test'); }); + }); + describe('TestLogStream', () => { describe('isValidTestSummaryJson', () => { test('identifies valid test summary JSON', () => { const stream = new TestLogStream({}); @@ -477,10 +399,10 @@ describe('pos-cli test run', () => { }); }); - describe('testCompleted event emission', () => { + describe('parseJsonSummary', () => { test('emits testCompleted only once even when duplicate JSON summaries are received', () => { const stream = new TestLogStream({}); - const mockEmit = jest.fn(); + const mockEmit = vi.fn(); stream.emit = mockEmit; const testSummaryJson = JSON.stringify({ @@ -514,12 +436,18 @@ describe('pos-cli test run', () => { expect(emittedResults.failed).toBe(0); }); + test('returns null for invalid JSON', () => { + const stream = new TestLogStream({}); + const invalidJson = '{ "invalid": json }'; + const result = stream.parseJsonSummary(invalidJson); + expect(result).toBeNull(); + }); }); describe('testName filtering', () => { test('detects test start with matching testName type', () => { const stream = new TestLogStream({}, 30000, 'liquid_test_abc123'); - const mockEmit = jest.fn(); + const mockEmit = vi.fn(); stream.emit = mockEmit; const startLog = { @@ -536,7 +464,7 @@ describe('pos-cli test run', () => { test('ignores test start with non-matching testName type', () => { const stream = new TestLogStream({}, 30000, 'liquid_test_abc123'); - const mockEmit = jest.fn(); + const mockEmit = vi.fn(); stream.emit = mockEmit; const startLog = { @@ -554,7 +482,7 @@ describe('pos-cli test run', () => { test('detects test completion with testName SUMMARY type', () => { const stream = new TestLogStream({}, 30000, 'liquid_test_abc123'); stream.testStarted = true; - const mockEmit = jest.fn(); + const mockEmit = vi.fn(); stream.emit = mockEmit; const summaryJson = JSON.stringify({ @@ -581,7 +509,7 @@ describe('pos-cli test run', () => { test('ignores summary with non-matching testName SUMMARY type', () => { const stream = new TestLogStream({}, 30000, 'liquid_test_abc123'); stream.testStarted = true; - const mockEmit = jest.fn(); + const mockEmit = vi.fn(); stream.emit = mockEmit; const summaryJson = JSON.stringify({ @@ -608,7 +536,7 @@ describe('pos-cli test run', () => { test('emits testLog with isTestLog=true for logs with matching testName type', () => { const stream = new TestLogStream({}, 30000, 'liquid_test_abc123'); stream.testStarted = true; - const mockEmit = jest.fn(); + const mockEmit = vi.fn(); stream.emit = mockEmit; const testLog = { @@ -625,7 +553,7 @@ describe('pos-cli test run', () => { test('emits testLog with isTestLog=false for logs with different type (debug logs)', () => { const stream = new TestLogStream({}, 30000, 'liquid_test_abc123'); stream.testStarted = true; - const mockEmit = jest.fn(); + const mockEmit = vi.fn(); stream.emit = mockEmit; const debugLog = { @@ -639,28 +567,9 @@ describe('pos-cli test run', () => { expect(mockEmit).toHaveBeenCalledWith('testLog', debugLog, false); }); - test('emits user log with JSON content that matches test summary structure', () => { - const stream = new TestLogStream({}, 30000, 'liquid_test_abc123'); - stream.testStarted = true; - const mockEmit = jest.fn(); - stream.emit = mockEmit; - - // User log that accidentally has JSON structure similar to test summary - const userLogWithJson = { - id: 2, - message: JSON.stringify({ success: true, total: 5, data: 'user content' }), - error_type: 'world' - }; - - stream.processLogMessage(userLogWithJson); - - // Should be emitted as testLog because error_type is 'world', not 'liquid_test_abc123 SUMMARY' - expect(mockEmit).toHaveBeenCalledWith('testLog', userLogWithJson, false); - }); - - test('does not emit logs before test started (non-test-path logs)', () => { - const stream = new TestLogStream({}, 30000, 'liquid_test_abc123'); - const mockEmit = jest.fn(); + test('does not emit logs before test started', () => { + const stream = new TestLogStream({}, 3000, 'liquid_test_abc123'); + const mockEmit = vi.fn(); stream.emit = mockEmit; const earlyLog = { @@ -671,34 +580,14 @@ describe('pos-cli test run', () => { stream.processLogMessage(earlyLog); - // Non-test-path logs should not be emitted before testStarted expect(mockEmit).not.toHaveBeenCalled(); }); - test('emits test path logs even before testStarted flag is set', () => { - const stream = new TestLogStream({}, 30000, 'liquid_test_abc123'); - const mockEmit = jest.fn(); - stream.emit = mockEmit; - - // First log with test path should be emitted even if testStarted is false - // This handles cases where test framework doesn't emit "Starting unit tests" log - const testPathLog = { - id: 1, - message: '{"path":"modules/community/test/commands/can_profiles_test"}', - error_type: 'liquid_test_abc123' - }; - - stream.processLogMessage(testPathLog); - - // Test path log should be emitted to mark test start - expect(mockEmit).toHaveBeenCalledWith('testLog', testPathLog, true); - }); - test('does not emit logs after test completed', () => { - const stream = new TestLogStream({}, 30000, 'liquid_test_abc123'); + const stream = new TestLogStream({}, 3000, 'liquid_test_abc123'); stream.testStarted = true; stream.completed = true; - const mockEmit = jest.fn(); + const mockEmit = vi.fn(); stream.emit = mockEmit; const lateLog = { @@ -712,28 +601,10 @@ describe('pos-cli test run', () => { expect(mockEmit).not.toHaveBeenCalled(); }); - test('emits user logs with custom error_type (not testName) as testLog events', () => { - const stream = new TestLogStream({}, 30000, 'liquid_test_abc123'); - stream.testStarted = true; - const mockEmit = jest.fn(); - stream.emit = mockEmit; - - const userLog = { - id: 2, - message: 'hello', - error_type: 'world' - }; - - stream.processLogMessage(userLog); - - // User log should be emitted as testLog with isTestLog=false (it's not from test framework) - expect(mockEmit).toHaveBeenCalledWith('testLog', userLog, false); - }); - test('filters noise from past test runs by only processing logs with matching testName', () => { - const stream = new TestLogStream({}, 30000, 'liquid_test_current'); + const stream = new TestLogStream({}, 3000, 'liquid_test_current'); stream.testStarted = true; - const mockEmit = jest.fn(); + const mockEmit = vi.fn(); stream.emit = mockEmit; const pastLog = { @@ -768,7 +639,7 @@ describe('pos-cli test run', () => { MPKIT_EMAIL: 'foo@example.com' }; - const CLI_TIMEOUT = 10000; + const CLI_TIMEOUT = 1000; test('requires environment argument', async () => { const { code, stderr } = await exec(`${cliPath} test run`, { env, timeout: CLI_TIMEOUT }); @@ -789,109 +660,87 @@ describe('pos-cli test run', () => { expect(stderr).not.toMatch("error: missing required argument"); }); - test('handles invalid URL format', async () => { + test('handles connection refused error', async () => { const badEnv = { ...process.env, CI: 'true', - MPKIT_URL: 'not-a-valid-url', + MPKIT_URL: 'http://localhost:1', MPKIT_TOKEN: 'test-token', MPKIT_EMAIL: 'test@example.com' }; - const { code } = await exec(`${cliPath} test run staging`, { env: badEnv, timeout: CLI_TIMEOUT }); + const { code, stderr } = await exec(`${cliPath} test run staging`, { env: badEnv, timeout: CLI_TIMEOUT }); expect(code).toBe(1); - }); - }); - - describe('Integration tests', () => { - const { requireRealCredentials } = require('./utils/realCredentials'); - - beforeAll(() => { - requireRealCredentials(); + expect(stderr).toMatch(/Request to server failed|fetch failed|TypeError/); }); - describe('without tests module', () => { - beforeAll(async () => { - await cleanInstance(cwd('without-tests-module')); - const { stdout, stderr } = await deploy('without-tests-module'); - if (!stdout.includes('Deploy succeeded')) { - throw new Error(`Failed to deploy test fixtures: ${stderr}`); - } - }); + test('handles invalid URL format', async () => { + const badEnv = { + ...process.env, + CI: 'true', + MPKIT_URL: 'not-a-valid-url', + MPKIT_TOKEN: 'test-token', + MPKIT_EMAIL: 'test@example.com' + }; - test('shows error when tests module is not installed', async () => { - const { stderr } = await run('without-tests-module', 'staging'); + const { code } = await exec(`${cliPath} test run staging`, { env: badEnv, timeout: CLI_TIMEOUT }); - expect(stderr).toMatch('Tests module not found'); - }); + expect(code).toBe(1); }); + }); - describe('with mixed tests (passing and failing)', () => { - beforeAll(async () => { - const { stdout, stderr } = await deploy('with-tests-module'); - if (!stdout.includes('Deploy succeeded')) { - throw new Error(`Failed to deploy test fixtures: ${stderr}`); - } - }); - - test('runs all tests, displays URL and results, exits with code 1 when at least one fails', async () => { - const { stdout, stderr, code } = await run('with-tests-module', 'staging'); - const output = stdout + stderr; - - expect(stdout).toMatch(`Running tests on: ${process.env.MPKIT_URL}`); - - const hasTestResults = output.includes('passed') || - output.includes('failed') || - output.includes('Test Results:') || - output.includes('total)'); - expect(hasTestResults).toBe(true); - - expect(output).toMatch(/\d+ passed/); - expect(output).toMatch(/\d+ failed/); - - expect(code).toBe(1); - }); - - test('runs a single passing test by name and shows success', async () => { - const { stdout, stderr, code } = await run('with-tests-module', 'staging example_test'); - - expect(stdout + stderr).toMatch(/✓.*example_test/); - expect(stdout + stderr).toMatch(/1 passed/); - - expect(code).toBe(0); - }); - - test('runs a single failing test by name and shows failure', async () => { - const { stdout, stderr, code } = await run('with-tests-module', 'staging failing_test'); - - expect(stdout + stderr).toMatch(/✗.*failing_test/); - expect(stdout + stderr).toMatch(/1 failed/); - - expect(code).toBe(1); + test('test run with no tests module should fail gracefully', async () => { + requireRealCredentials(); + + const cleanProc = startCommand(['data', 'clean', 'staging', '--include-schema', '--auto-confirm']); + try { + await new Promise((resolve, reject) => { + const startTime = Date.now(); + const maxWait = 10000; + + const checkInterval = setInterval(() => { + const stdout = cleanProc.getStdout(); + const stderr = cleanProc.getStderr(); + + if (stdout.includes('DONE. Instance cleaned')) { + clearInterval(checkInterval); + resolve(); + } else if (stderr.includes('Error') || stderr.includes('Failed')) { + clearInterval(checkInterval); + reject(new Error(`Data clean failed: ${stderr}`)); + } else if (Date.now() - startTime > maxWait) { + clearInterval(checkInterval); + reject(new Error(`Data clean timed out after ${maxWait}ms`)); + } + }, 100); }); - }); - - describe('with only passing tests', () => { - beforeAll(async () => { - const { stdout, stderr } = await deploy('with-passing-tests'); - if (!stdout.includes('Deploy succeeded')) { - throw new Error(`Failed to deploy test fixtures: ${stderr}`); - } + } finally { + cleanProc.kill(); + } + + const proc = startCommand(['test', 'run', 'staging']); + + try { + await new Promise(resolve => { + const checkInterval = setInterval(() => { + const stderr = proc.getStderr(); + if (stderr.includes('Tests module not found') || stderr.includes('Error')) { + clearInterval(checkInterval); + resolve(); + } + }, 100); }); - test('exits with code 0 when running all tests and all pass', async () => { - const { stdout, stderr, code } = await run('with-passing-tests', 'staging'); + const hasModuleNotFoundError = proc.getStderr().includes('Tests module not found') - // Check for presence of test output (exact message may vary by tests module version) - expect(stdout).toMatch('Running tests on:'); - - const output = stdout + stderr; - expect(output).toMatch(/\d+ passed/); - expect(output).not.toMatch(/[1-9]\d* failed/); - - expect(code).toBe(0); - }); - }); + expect(hasModuleNotFoundError).toBe(true); + expect(proc.getStderr()).not.toContain('Cannot read properties of undefined'); + expect(proc.getStderr()).not.toContain('TypeError'); + expect(proc.getStderr()).not.toContain('ReferenceError'); + expect(proc.getStderr()).not.toContain('SyntaxError'); + } finally { + proc.kill(); + } }); }); diff --git a/test/utils/cliPath.js b/test/utils/cliPath.js index 9782d24b..b27d3c76 100644 --- a/test/utils/cliPath.js +++ b/test/utils/cliPath.js @@ -1,4 +1,9 @@ -const path = require('path'); -const bin = `node ${path.join(process.cwd(), 'bin', 'pos-cli.js')}`; +import path from 'path'; +import { fileURLToPath } from 'url'; -module.exports = bin; +const __filename = fileURLToPath(import.meta.url); +const __dirname = path.dirname(__filename); + +const bin = `node ${path.join(__dirname, '../../bin', 'pos-cli.js')}`; + +export default bin; diff --git a/test/utils/commands.js b/test/utils/commands.js index 44b99a1a..cad8909a 100644 --- a/test/utils/commands.js +++ b/test/utils/commands.js @@ -1,12 +1,6 @@ -const exec = require('./exec'); -const cliPath = require('./cliPath'); +import exec from './exec'; +import cliPath from './cliPath'; -/** - * Clean the instance (remove all data and schemas). - * Uses MPKIT_URL/MPKIT_TOKEN from environment variables. - * - * @param {string} cwd - Working directory for the command - */ const cleanInstance = async (cwd) => { const result = await exec(`${cliPath} data clean --auto-confirm --include-schema`, { cwd, env: process.env }); if (result.code !== 0) { @@ -15,4 +9,4 @@ const cleanInstance = async (cwd) => { return result; }; -module.exports = { cleanInstance }; +export { cleanInstance }; diff --git a/test/utils/credentials.js b/test/utils/credentials.js new file mode 100644 index 00000000..ff4eaa08 --- /dev/null +++ b/test/utils/credentials.js @@ -0,0 +1,55 @@ +// Credential utilities for tests +// Provides three modes: real, example, and none + +// Note: Tests that need real credentials should import 'dotenv/config' at the top of their file +// This loads .env file into process.env before any test code runs + +// Example/test credentials (for tests that need valid-looking but fake credentials) +const exampleCredentials = { + MPKIT_URL: 'https://example.com', + MPKIT_TOKEN: 'test-token', + MPKIT_EMAIL: 'test@example.com' +}; + +// No credentials (for tests that check if environment is required) +const noCredentials = { + MPKIT_URL: undefined, + MPKIT_TOKEN: undefined, + MPKIT_EMAIL: undefined +}; + +// Apply credentials to process.env +const applyCredentials = (creds) => { + if (creds) { + process.env.MPKIT_URL = creds.MPKIT_URL; + process.env.MPKIT_TOKEN = creds.MPKIT_TOKEN; + process.env.MPKIT_EMAIL = creds.MPKIT_EMAIL; + } else { + delete process.env.MPKIT_URL; + delete process.env.MPKIT_TOKEN; + delete process.env.MPKIT_EMAIL; + } +}; + +const hasRealCredentials = () => { + return !!(process.env.MPKIT_URL && process.env.MPKIT_TOKEN && process.env.MPKIT_EMAIL && !process.env.MPKIT_URL.includes('example.com')); +}; + +const requireRealCredentials = () => { + if (!hasRealCredentials()) { + throw new Error('Missing real platformOS credentials (MPKIT_URL, MPKIT_TOKEN, MPKIT_EMAIL). Load .env file to run these tests.'); + } +}; + +// Save and restore credentials (for tests that need to switch between different credential sets) +const saveCredentials = () => ({ + MPKIT_URL: process.env.MPKIT_URL, + MPKIT_TOKEN: process.env.MPKIT_TOKEN, + MPKIT_EMAIL: process.env.MPKIT_EMAIL +}); + +const restoreCredentials = (saved) => { + applyCredentials(saved); +}; + +export { exampleCredentials, noCredentials, applyCredentials, hasRealCredentials, requireRealCredentials, saveCredentials, restoreCredentials }; diff --git a/test/utils/exec.js b/test/utils/exec.js index 7f08b593..3c415ac2 100644 --- a/test/utils/exec.js +++ b/test/utils/exec.js @@ -1,6 +1,6 @@ -const { exec } = require('child_process'); +import { exec } from 'child_process'; -module.exports = (cmd, opts, callback) => +const execCommand = (cmd, opts, callback) => new Promise((resolve, reject) => { const child = exec(cmd, opts, (err, stdout, stderr) => { let code = err ? err.code : 0; @@ -9,3 +9,5 @@ module.exports = (cmd, opts, callback) => if (callback) callback(child); return child; }); + +export default execCommand; diff --git a/test/utils/realCredentials.js b/test/utils/realCredentials.js deleted file mode 100644 index 257f78c5..00000000 --- a/test/utils/realCredentials.js +++ /dev/null @@ -1,13 +0,0 @@ -const hasRealCredentials = () => { - return process.env.MPKIT_URL && - process.env.MPKIT_TOKEN && - !process.env.MPKIT_URL.includes('example.com'); -}; - -const requireRealCredentials = () => { - if (!hasRealCredentials()) { - throw new Error('Missing real platformOS credentials (MPKIT_URL, MPKIT_TOKEN). Load .env file to run these tests.'); - } -}; - -module.exports = { hasRealCredentials, requireRealCredentials }; diff --git a/test/valid-file-path.test.js b/test/valid-file-path.test.js index 1f8b9815..ae645e1f 100644 --- a/test/valid-file-path.test.js +++ b/test/valid-file-path.test.js @@ -1,4 +1,4 @@ -const validFilePath = require('../lib/utils/valid-file-path'); +import validFilePath from '../lib/utils/valid-file-path.js'; describe('Linux - Correct', () => { const correct = [ @@ -65,4 +65,4 @@ describe('Windows - Incorrect', () => { expect(validFilePath(p)).toBe(false); }); }); -}); \ No newline at end of file +}); diff --git a/test/vitest-setup.js b/test/vitest-setup.js new file mode 100644 index 00000000..2cf95d8b --- /dev/null +++ b/test/vitest-setup.js @@ -0,0 +1,10 @@ +// Do NOT load dotenv here automatically +// Tests that need real credentials should import 'dotenv/config' at the top of their file +// Tests that don't need credentials will work without loading dotenv + +// Note: We do NOT clear credentials here because: +// 1. Integration tests import 'dotenv/config' at the top of their file (before this setup runs) +// 2. Unit tests don't import dotenv, so they won't have credentials +// 3. Clearing credentials here would break integration tests + +// If a unit test accidentally has credentials set (e.g., from environment), it should handle that in the test itself diff --git a/vitest.config.js b/vitest.config.js new file mode 100644 index 00000000..d029fbd7 --- /dev/null +++ b/vitest.config.js @@ -0,0 +1,16 @@ +import { defineConfig } from 'vitest/config'; + +export default defineConfig({ + test: { + environment: 'node', + globals: true, + include: ['test/**/*.{test,spec}.js'], + pool: 'forks', + poolOptions: { + forks: { + singleFork: true + } + }, + setupFiles: ['./test/vitest-setup.js'] + } +}); From 7c9e6aafd30791b20fa1e18d3648d6d1feb29022 Mon Sep 17 00:00:00 2001 From: Maciej Krajowski-Kukiel Date: Mon, 19 Jan 2026 08:47:16 +0100 Subject: [PATCH 7/8] bump minimum version to node 20 --- .github/workflows/tests.yaml | 2 +- bin/pos-cli-gui-serve.js | 2 +- bin/pos-cli-logs.js | 3 +- lib/assets/packAssets.js | 37 +- package-lock.json | 674 +++++++++++++++++++---------------- package.json | 4 +- test/dependencies.test.js | 14 +- test/deploy.test.js | 19 +- test/env-add-unit.test.js | 4 + test/gui-serve.test.js | 40 ++- vitest.config.js | 12 +- 11 files changed, 472 insertions(+), 339 deletions(-) diff --git a/.github/workflows/tests.yaml b/.github/workflows/tests.yaml index f4cd9b75..044c1054 100644 --- a/.github/workflows/tests.yaml +++ b/.github/workflows/tests.yaml @@ -14,7 +14,7 @@ jobs: strategy: max-parallel: 1 matrix: - version: ['20.18.0', '20.11.0', '22', '24'] + version: ['20.20.0', '22', '24'] steps: - name: Checkout repository diff --git a/bin/pos-cli-gui-serve.js b/bin/pos-cli-gui-serve.js index c13072aa..31b9fd6c 100755 --- a/bin/pos-cli-gui-serve.js +++ b/bin/pos-cli-gui-serve.js @@ -44,7 +44,7 @@ program } if (params.sync){ - watch.start(env, true, false); + await watch(env, true, false); } } catch (e) { console.log(e); diff --git a/bin/pos-cli-logs.js b/bin/pos-cli-logs.js index a0849cf5..82f78899 100755 --- a/bin/pos-cli-logs.js +++ b/bin/pos-cli-logs.js @@ -2,7 +2,6 @@ import EventEmitter from 'events'; import path from 'path'; -import url from 'url'; import { fileURLToPath } from 'url'; const __filename = fileURLToPath(import.meta.url); @@ -107,7 +106,7 @@ program if (!program.quiet && data) { let parts = []; if (data.url) { - const requestUrl = url.parse(`https://${data.url}`); + const requestUrl = new URL(`https://${data.url}`); let line = `path: ${requestUrl.pathname}`; if (requestUrl.search) line += `${requestUrl.search}`; parts.push(line); diff --git a/lib/assets/packAssets.js b/lib/assets/packAssets.js index db46983e..1f668248 100644 --- a/lib/assets/packAssets.js +++ b/lib/assets/packAssets.js @@ -1,4 +1,4 @@ -import archiver from 'archiver-promise'; +import archiver from 'archiver'; import fs from 'fs'; import glob from 'fast-glob'; import shell from 'shelljs'; @@ -9,7 +9,7 @@ import dir from '../directories.js'; const appDirectory = fs.existsSync(dir.APP) ? dir.APP : dir.LEGACY_APP; const addModulesToArchive = async archive => { - if (!fs.existsSync(dir.MODULES)) return true; + if (!fs.existsSync(dir.MODULES)) return Promise.resolve(true); let modules = await glob('./*', { cwd: dir.MODULES, onlyDirectories: true }); for (const module of modules) { @@ -44,10 +44,35 @@ const prepareDestination = path => { const packAssets = async path => { prepareDestination(path); - const assetsArchive = archiver(path, { zlib: { level: 6 }, store: true }); - assetsArchive.glob('**/*', { cwd: `${appDirectory}/assets` }); - await addModulesToArchive(assetsArchive); - return assetsArchive.finalize(); + + return new Promise((resolve, reject) => { + const output = fs.createWriteStream(path); + const assetsArchive = archiver('zip', { zlib: { level: 6 } }); + + assetsArchive.on('error', err => { + reject(err); + }); + + output.on('close', () => { + resolve(); + }); + + output.on('error', err => { + reject(err); + }); + + assetsArchive.pipe(output); + + if (fs.existsSync(`${appDirectory}/assets`)) { + assetsArchive.glob('**/*', { cwd: `${appDirectory}/assets` }); + } + + addModulesToArchive(assetsArchive) + .then(() => { + assetsArchive.finalize(); + }) + .catch(reject); + }); }; export default packAssets; diff --git a/package-lock.json b/package-lock.json index d3761ed5..f89bf713 100644 --- a/package-lock.json +++ b/package-lock.json @@ -71,10 +71,10 @@ }, "devDependencies": { "dotenv": "^16.6.1", - "vitest": "^2.1.9" + "vitest": "^4.0.0" }, "engines": { - "node": ">=18" + "node": ">=20" }, "optionalDependencies": { "fsevents": "^2.3.3" @@ -104,9 +104,9 @@ } }, "node_modules/@esbuild/aix-ppc64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz", - "integrity": "sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==", + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.27.2.tgz", + "integrity": "sha512-GZMB+a0mOMZs4MpDbj8RJp4cw+w1WV5NYD6xzgvzUJ5Ek2jerwfO2eADyI6ExDSUED+1X8aMbegahsJi+8mgpw==", "cpu": [ "ppc64" ], @@ -117,13 +117,13 @@ "aix" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/android-arm": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.21.5.tgz", - "integrity": "sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==", + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.27.2.tgz", + "integrity": "sha512-DVNI8jlPa7Ujbr1yjU2PfUSRtAUZPG9I1RwW4F4xFB1Imiu2on0ADiI/c3td+KmDtVKNbi+nffGDQMfcIMkwIA==", "cpu": [ "arm" ], @@ -134,13 +134,13 @@ "android" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/android-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz", - "integrity": "sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==", + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.27.2.tgz", + "integrity": "sha512-pvz8ZZ7ot/RBphf8fv60ljmaoydPU12VuXHImtAs0XhLLw+EXBi2BLe3OYSBslR4rryHvweW5gmkKFwTiFy6KA==", "cpu": [ "arm64" ], @@ -151,13 +151,13 @@ "android" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/android-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.21.5.tgz", - "integrity": "sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==", + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.27.2.tgz", + "integrity": "sha512-z8Ank4Byh4TJJOh4wpz8g2vDy75zFL0TlZlkUkEwYXuPSgX8yzep596n6mT7905kA9uHZsf/o2OJZubl2l3M7A==", "cpu": [ "x64" ], @@ -168,13 +168,13 @@ "android" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/darwin-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz", - "integrity": "sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==", + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.27.2.tgz", + "integrity": "sha512-davCD2Zc80nzDVRwXTcQP/28fiJbcOwvdolL0sOiOsbwBa72kegmVU0Wrh1MYrbuCL98Omp5dVhQFWRKR2ZAlg==", "cpu": [ "arm64" ], @@ -185,13 +185,13 @@ "darwin" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/darwin-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz", - "integrity": "sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==", + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.27.2.tgz", + "integrity": "sha512-ZxtijOmlQCBWGwbVmwOF/UCzuGIbUkqB1faQRf5akQmxRJ1ujusWsb3CVfk/9iZKr2L5SMU5wPBi1UWbvL+VQA==", "cpu": [ "x64" ], @@ -202,13 +202,13 @@ "darwin" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/freebsd-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz", - "integrity": "sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==", + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.27.2.tgz", + "integrity": "sha512-lS/9CN+rgqQ9czogxlMcBMGd+l8Q3Nj1MFQwBZJyoEKI50XGxwuzznYdwcav6lpOGv5BqaZXqvBSiB/kJ5op+g==", "cpu": [ "arm64" ], @@ -219,13 +219,13 @@ "freebsd" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/freebsd-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz", - "integrity": "sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==", + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.27.2.tgz", + "integrity": "sha512-tAfqtNYb4YgPnJlEFu4c212HYjQWSO/w/h/lQaBK7RbwGIkBOuNKQI9tqWzx7Wtp7bTPaGC6MJvWI608P3wXYA==", "cpu": [ "x64" ], @@ -236,13 +236,13 @@ "freebsd" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-arm": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz", - "integrity": "sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==", + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.27.2.tgz", + "integrity": "sha512-vWfq4GaIMP9AIe4yj1ZUW18RDhx6EPQKjwe7n8BbIecFtCQG4CfHGaHuh7fdfq+y3LIA2vGS/o9ZBGVxIDi9hw==", "cpu": [ "arm" ], @@ -253,13 +253,13 @@ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz", - "integrity": "sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==", + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.27.2.tgz", + "integrity": "sha512-hYxN8pr66NsCCiRFkHUAsxylNOcAQaxSSkHMMjcpx0si13t1LHFphxJZUiGwojB1a/Hd5OiPIqDdXONia6bhTw==", "cpu": [ "arm64" ], @@ -270,13 +270,13 @@ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-ia32": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz", - "integrity": "sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==", + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.27.2.tgz", + "integrity": "sha512-MJt5BRRSScPDwG2hLelYhAAKh9imjHK5+NE/tvnRLbIqUWa+0E9N4WNMjmp/kXXPHZGqPLxggwVhz7QP8CTR8w==", "cpu": [ "ia32" ], @@ -287,13 +287,13 @@ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-loong64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz", - "integrity": "sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==", + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.27.2.tgz", + "integrity": "sha512-lugyF1atnAT463aO6KPshVCJK5NgRnU4yb3FUumyVz+cGvZbontBgzeGFO1nF+dPueHD367a2ZXe1NtUkAjOtg==", "cpu": [ "loong64" ], @@ -304,13 +304,13 @@ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-mips64el": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz", - "integrity": "sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==", + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.27.2.tgz", + "integrity": "sha512-nlP2I6ArEBewvJ2gjrrkESEZkB5mIoaTswuqNFRv/WYd+ATtUpe9Y09RnJvgvdag7he0OWgEZWhviS1OTOKixw==", "cpu": [ "mips64el" ], @@ -321,13 +321,13 @@ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-ppc64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz", - "integrity": "sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==", + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.27.2.tgz", + "integrity": "sha512-C92gnpey7tUQONqg1n6dKVbx3vphKtTHJaNG2Ok9lGwbZil6DrfyecMsp9CrmXGQJmZ7iiVXvvZH6Ml5hL6XdQ==", "cpu": [ "ppc64" ], @@ -338,13 +338,13 @@ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-riscv64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz", - "integrity": "sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==", + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.27.2.tgz", + "integrity": "sha512-B5BOmojNtUyN8AXlK0QJyvjEZkWwy/FKvakkTDCziX95AowLZKR6aCDhG7LeF7uMCXEJqwa8Bejz5LTPYm8AvA==", "cpu": [ "riscv64" ], @@ -355,13 +355,13 @@ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-s390x": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz", - "integrity": "sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==", + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.27.2.tgz", + "integrity": "sha512-p4bm9+wsPwup5Z8f4EpfN63qNagQ47Ua2znaqGH6bqLlmJ4bx97Y9JdqxgGZ6Y8xVTixUnEkoKSHcpRlDnNr5w==", "cpu": [ "s390x" ], @@ -372,13 +372,13 @@ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz", - "integrity": "sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==", + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.27.2.tgz", + "integrity": "sha512-uwp2Tip5aPmH+NRUwTcfLb+W32WXjpFejTIOWZFw/v7/KnpCDKG66u4DLcurQpiYTiYwQ9B7KOeMJvLCu/OvbA==", "cpu": [ "x64" ], @@ -389,13 +389,30 @@ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-arm64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.27.2.tgz", + "integrity": "sha512-Kj6DiBlwXrPsCRDeRvGAUb/LNrBASrfqAIok+xB0LxK8CHqxZ037viF13ugfsIpePH93mX7xfJp97cyDuTZ3cw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" } }, "node_modules/@esbuild/netbsd-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz", - "integrity": "sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==", + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.27.2.tgz", + "integrity": "sha512-HwGDZ0VLVBY3Y+Nw0JexZy9o/nUAWq9MlV7cahpaXKW6TOzfVno3y3/M8Ga8u8Yr7GldLOov27xiCnqRZf0tCA==", "cpu": [ "x64" ], @@ -406,13 +423,30 @@ "netbsd" ], "engines": { - "node": ">=12" + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-arm64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.27.2.tgz", + "integrity": "sha512-DNIHH2BPQ5551A7oSHD0CKbwIA/Ox7+78/AWkbS5QoRzaqlev2uFayfSxq68EkonB+IKjiuxBFoV8ESJy8bOHA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" } }, "node_modules/@esbuild/openbsd-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz", - "integrity": "sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==", + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.27.2.tgz", + "integrity": "sha512-/it7w9Nb7+0KFIzjalNJVR5bOzA9Vay+yIPLVHfIQYG/j+j9VTH84aNB8ExGKPU4AzfaEvN9/V4HV+F+vo8OEg==", "cpu": [ "x64" ], @@ -423,13 +457,30 @@ "openbsd" ], "engines": { - "node": ">=12" + "node": ">=18" + } + }, + "node_modules/@esbuild/openharmony-arm64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.27.2.tgz", + "integrity": "sha512-LRBbCmiU51IXfeXk59csuX/aSaToeG7w48nMwA6049Y4J4+VbWALAuXcs+qcD04rHDuSCSRKdmY63sruDS5qag==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ], + "engines": { + "node": ">=18" } }, "node_modules/@esbuild/sunos-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz", - "integrity": "sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==", + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.27.2.tgz", + "integrity": "sha512-kMtx1yqJHTmqaqHPAzKCAkDaKsffmXkPHThSfRwZGyuqyIeBvf08KSsYXl+abf5HDAPMJIPnbBfXvP2ZC2TfHg==", "cpu": [ "x64" ], @@ -440,13 +491,13 @@ "sunos" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/win32-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz", - "integrity": "sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==", + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.27.2.tgz", + "integrity": "sha512-Yaf78O/B3Kkh+nKABUF++bvJv5Ijoy9AN1ww904rOXZFLWVc5OLOfL56W+C8F9xn5JQZa3UX6m+IktJnIb1Jjg==", "cpu": [ "arm64" ], @@ -457,13 +508,13 @@ "win32" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/win32-ia32": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz", - "integrity": "sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==", + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.27.2.tgz", + "integrity": "sha512-Iuws0kxo4yusk7sw70Xa2E2imZU5HoixzxfGCdxwBdhiDgt9vX9VUCBhqcwY7/uh//78A1hMkkROMJq9l27oLQ==", "cpu": [ "ia32" ], @@ -474,13 +525,13 @@ "win32" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/win32-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz", - "integrity": "sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==", + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.27.2.tgz", + "integrity": "sha512-sRdU18mcKf7F+YgheI/zGf5alZatMUTKj/jNS6l744f9u3WFu4v7twcUI9vu4mknF4Y9aDlblIie0IM+5xxaqQ==", "cpu": [ "x64" ], @@ -491,7 +542,7 @@ "win32" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@inquirer/ansi": { @@ -1433,7 +1484,6 @@ "resolved": "https://registry.npmjs.org/@octokit/core/-/core-6.1.6.tgz", "integrity": "sha512-kIU8SLQkYWGp3pVKiYzA5OSaNF5EE03P/R8zEmmrG6XwOg5oBjXyQVVIauQ0dgau4zYhpZEhJrvIYt6oM+zZZA==", "license": "MIT", - "peer": true, "dependencies": { "@octokit/auth-token": "^5.0.0", "@octokit/graphql": "^8.2.2", @@ -2097,6 +2147,13 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/@standard-schema/spec": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@standard-schema/spec/-/spec-1.1.0.tgz", + "integrity": "sha512-l2aFy5jALhniG5HgqrD6jXLi/rUWrKvqN/qJx6yoJsgKhblVd+iqqU4RCXavm/jPityDo5TCvKMnpjKnOriy0w==", + "dev": true, + "license": "MIT" + }, "node_modules/@tufjs/canonical-json": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/@tufjs/canonical-json/-/canonical-json-2.0.0.tgz", @@ -2134,6 +2191,24 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/@types/chai": { + "version": "5.2.3", + "resolved": "https://registry.npmjs.org/@types/chai/-/chai-5.2.3.tgz", + "integrity": "sha512-Mw558oeA9fFbv65/y4mHtXDs9bPnFMZAL/jxdPFUpOHHIXX91mcgEHbS5Lahr+pwZFR8A7GQleRWeI6cGFC2UA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/deep-eql": "*", + "assertion-error": "^2.0.1" + } + }, + "node_modules/@types/deep-eql": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@types/deep-eql/-/deep-eql-4.0.2.tgz", + "integrity": "sha512-c9h9dVVMigMPc4bwTvC5dxqtqJZwQPePsWjPlpSOnojbor6pGqdk541lfA7AqFQr5pB1BRdq0juY9db81BwyFw==", + "dev": true, + "license": "MIT" + }, "node_modules/@types/ejs": { "version": "3.1.5", "resolved": "https://registry.npmjs.org/@types/ejs/-/ejs-3.1.5.tgz", @@ -2173,7 +2248,6 @@ "resolved": "https://registry.npmjs.org/@types/node/-/node-25.0.9.tgz", "integrity": "sha512-/rpCXHlCWeqClNBwUhDcusJxXYDjZTyE8v5oTO7WbL8eij2nKhUeU89/6xgjU7N4/Vh3He0BtyhJdQbDyhiXAw==", "license": "MIT", - "peer": true, "dependencies": { "undici-types": "~7.16.0" } @@ -2195,38 +2269,40 @@ } }, "node_modules/@vitest/expect": { - "version": "2.1.9", - "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-2.1.9.tgz", - "integrity": "sha512-UJCIkTBenHeKT1TTlKMJWy1laZewsRIzYighyYiJKZreqtdxSos/S1t+ktRMQWu2CKqaarrkeszJx1cgC5tGZw==", + "version": "4.0.17", + "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-4.0.17.tgz", + "integrity": "sha512-mEoqP3RqhKlbmUmntNDDCJeTDavDR+fVYkSOw8qRwJFaW/0/5zA9zFeTrHqNtcmwh6j26yMmwx2PqUDPzt5ZAQ==", "dev": true, "license": "MIT", "dependencies": { - "@vitest/spy": "2.1.9", - "@vitest/utils": "2.1.9", - "chai": "^5.1.2", - "tinyrainbow": "^1.2.0" + "@standard-schema/spec": "^1.0.0", + "@types/chai": "^5.2.2", + "@vitest/spy": "4.0.17", + "@vitest/utils": "4.0.17", + "chai": "^6.2.1", + "tinyrainbow": "^3.0.3" }, "funding": { "url": "https://opencollective.com/vitest" } }, "node_modules/@vitest/mocker": { - "version": "2.1.9", - "resolved": "https://registry.npmjs.org/@vitest/mocker/-/mocker-2.1.9.tgz", - "integrity": "sha512-tVL6uJgoUdi6icpxmdrn5YNo3g3Dxv+IHJBr0GXHaEdTcw3F+cPKnsXFhli6nO+f/6SDKPHEK1UN+k+TQv0Ehg==", + "version": "4.0.17", + "resolved": "https://registry.npmjs.org/@vitest/mocker/-/mocker-4.0.17.tgz", + "integrity": "sha512-+ZtQhLA3lDh1tI2wxe3yMsGzbp7uuJSWBM1iTIKCbppWTSBN09PUC+L+fyNlQApQoR+Ps8twt2pbSSXg2fQVEQ==", "dev": true, "license": "MIT", "dependencies": { - "@vitest/spy": "2.1.9", + "@vitest/spy": "4.0.17", "estree-walker": "^3.0.3", - "magic-string": "^0.30.12" + "magic-string": "^0.30.21" }, "funding": { "url": "https://opencollective.com/vitest" }, "peerDependencies": { "msw": "^2.4.9", - "vite": "^5.0.0" + "vite": "^6.0.0 || ^7.0.0-0" }, "peerDependenciesMeta": { "msw": { @@ -2238,70 +2314,66 @@ } }, "node_modules/@vitest/pretty-format": { - "version": "2.1.9", - "resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-2.1.9.tgz", - "integrity": "sha512-KhRIdGV2U9HOUzxfiHmY8IFHTdqtOhIzCpd8WRdJiE7D/HUcZVD0EgQCVjm+Q9gkUXWgBvMmTtZgIG48wq7sOQ==", + "version": "4.0.17", + "resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-4.0.17.tgz", + "integrity": "sha512-Ah3VAYmjcEdHg6+MwFE17qyLqBHZ+ni2ScKCiW2XrlSBV4H3Z7vYfPfz7CWQ33gyu76oc0Ai36+kgLU3rfF4nw==", "dev": true, "license": "MIT", "dependencies": { - "tinyrainbow": "^1.2.0" + "tinyrainbow": "^3.0.3" }, "funding": { "url": "https://opencollective.com/vitest" } }, "node_modules/@vitest/runner": { - "version": "2.1.9", - "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-2.1.9.tgz", - "integrity": "sha512-ZXSSqTFIrzduD63btIfEyOmNcBmQvgOVsPNPe0jYtESiXkhd8u2erDLnMxmGrDCwHCCHE7hxwRDCT3pt0esT4g==", + "version": "4.0.17", + "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-4.0.17.tgz", + "integrity": "sha512-JmuQyf8aMWoo/LmNFppdpkfRVHJcsgzkbCA+/Bk7VfNH7RE6Ut2qxegeyx2j3ojtJtKIbIGy3h+KxGfYfk28YQ==", "dev": true, "license": "MIT", "dependencies": { - "@vitest/utils": "2.1.9", - "pathe": "^1.1.2" + "@vitest/utils": "4.0.17", + "pathe": "^2.0.3" }, "funding": { "url": "https://opencollective.com/vitest" } }, "node_modules/@vitest/snapshot": { - "version": "2.1.9", - "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-2.1.9.tgz", - "integrity": "sha512-oBO82rEjsxLNJincVhLhaxxZdEtV0EFHMK5Kmx5sJ6H9L183dHECjiefOAdnqpIgT5eZwT04PoggUnW88vOBNQ==", + "version": "4.0.17", + "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-4.0.17.tgz", + "integrity": "sha512-npPelD7oyL+YQM2gbIYvlavlMVWUfNNGZPcu0aEUQXt7FXTuqhmgiYupPnAanhKvyP6Srs2pIbWo30K0RbDtRQ==", "dev": true, "license": "MIT", "dependencies": { - "@vitest/pretty-format": "2.1.9", - "magic-string": "^0.30.12", - "pathe": "^1.1.2" + "@vitest/pretty-format": "4.0.17", + "magic-string": "^0.30.21", + "pathe": "^2.0.3" }, "funding": { "url": "https://opencollective.com/vitest" } }, "node_modules/@vitest/spy": { - "version": "2.1.9", - "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-2.1.9.tgz", - "integrity": "sha512-E1B35FwzXXTs9FHNK6bDszs7mtydNi5MIfUWpceJ8Xbfb1gBMscAnwLbEu+B44ed6W3XjL9/ehLPHR1fkf1KLQ==", + "version": "4.0.17", + "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-4.0.17.tgz", + "integrity": "sha512-I1bQo8QaP6tZlTomQNWKJE6ym4SHf3oLS7ceNjozxxgzavRAgZDc06T7kD8gb9bXKEgcLNt00Z+kZO6KaJ62Ew==", "dev": true, "license": "MIT", - "dependencies": { - "tinyspy": "^3.0.2" - }, "funding": { "url": "https://opencollective.com/vitest" } }, "node_modules/@vitest/utils": { - "version": "2.1.9", - "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-2.1.9.tgz", - "integrity": "sha512-v0psaMSkNJ3A2NMrUEHFRzJtDPFn+/VWZ5WxImB21T9fjucJRmS7xCS3ppEnARb9y11OAzaD+P2Ps+b+BGX5iQ==", + "version": "4.0.17", + "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-4.0.17.tgz", + "integrity": "sha512-RG6iy+IzQpa9SB8HAFHJ9Y+pTzI+h8553MrciN9eC6TFBErqrQaTas4vG+MVj8S4uKk8uTT2p0vgZPnTdxd96w==", "dev": true, "license": "MIT", "dependencies": { - "@vitest/pretty-format": "2.1.9", - "loupe": "^3.1.2", - "tinyrainbow": "^1.2.0" + "@vitest/pretty-format": "4.0.17", + "tinyrainbow": "^3.0.3" }, "funding": { "url": "https://opencollective.com/vitest" @@ -2841,7 +2913,6 @@ "resolved": "https://registry.npmjs.org/@yeoman/types/-/types-1.9.1.tgz", "integrity": "sha512-5BMdA/zMzLv/ahnL1ktaV46nSXorb4sU4kQPQKDhIcK8ERbx9TAbGAE+XAlCXKioNIiOrihYj6gW1d/GEfU9Zw==", "license": "MIT", - "peer": true, "engines": { "node": "^16.13.0 || >=18.12.0" }, @@ -3645,16 +3716,6 @@ "node": ">= 0.8" } }, - "node_modules/cac": { - "version": "6.7.14", - "resolved": "https://registry.npmjs.org/cac/-/cac-6.7.14.tgz", - "integrity": "sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, "node_modules/cacache": { "version": "20.0.3", "resolved": "https://registry.npmjs.org/cacache/-/cacache-20.0.3.tgz", @@ -3794,18 +3855,11 @@ } }, "node_modules/chai": { - "version": "5.3.3", - "resolved": "https://registry.npmjs.org/chai/-/chai-5.3.3.tgz", - "integrity": "sha512-4zNhdJD/iOjSH0A05ea+Ke6MU5mmpQcbQsSOkgdaUMJ9zTlDTD/GYlwohmIE2u0gaxHYiVHEn1Fw9mZ/ktJWgw==", + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/chai/-/chai-6.2.2.tgz", + "integrity": "sha512-NUPRluOfOiTKBKvWPtSD4PhFvWCqOi0BGStNWs57X9js7XGTprSmFoz5F0tWhR4WPjNeR9jXqdC7/UpSJTnlRg==", "dev": true, "license": "MIT", - "dependencies": { - "assertion-error": "^2.0.1", - "check-error": "^2.1.1", - "deep-eql": "^5.0.1", - "loupe": "^3.1.0", - "pathval": "^2.0.0" - }, "engines": { "node": ">=18" } @@ -3828,16 +3882,6 @@ "integrity": "sha512-PsezH1rqdV9VvyNhxxOW32/d75r01NY7TQCmOqomRo15ZSOKbpTFVsfjghxo6JloQUCGnH4k1LGu0R4yCLlWQQ==", "license": "MIT" }, - "node_modules/check-error": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/check-error/-/check-error-2.1.3.tgz", - "integrity": "sha512-PAJdDJusoxnwm1VwW07VWwUN1sl7smmC3OKggvndJFadxxDRyFJBX/ggnu/KE4kQAB7a3Dp8f/YXC1FlUprWmA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 16" - } - }, "node_modules/chokidar": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-5.0.0.tgz", @@ -4230,16 +4274,6 @@ } } }, - "node_modules/deep-eql": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-5.0.2.tgz", - "integrity": "sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, "node_modules/deep-extend": { "version": "0.6.0", "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", @@ -4572,9 +4606,9 @@ } }, "node_modules/esbuild": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz", - "integrity": "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==", + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.27.2.tgz", + "integrity": "sha512-HyNQImnsOC7X9PMNaCIeAm4ISCQXs5a5YasTXVliKv4uuBo1dKrG0A+uQS8M5eXjVMnLg3WgXaKvprHlFJQffw==", "dev": true, "hasInstallScript": true, "license": "MIT", @@ -4582,32 +4616,35 @@ "esbuild": "bin/esbuild" }, "engines": { - "node": ">=12" + "node": ">=18" }, "optionalDependencies": { - "@esbuild/aix-ppc64": "0.21.5", - "@esbuild/android-arm": "0.21.5", - "@esbuild/android-arm64": "0.21.5", - "@esbuild/android-x64": "0.21.5", - "@esbuild/darwin-arm64": "0.21.5", - "@esbuild/darwin-x64": "0.21.5", - "@esbuild/freebsd-arm64": "0.21.5", - "@esbuild/freebsd-x64": "0.21.5", - "@esbuild/linux-arm": "0.21.5", - "@esbuild/linux-arm64": "0.21.5", - "@esbuild/linux-ia32": "0.21.5", - "@esbuild/linux-loong64": "0.21.5", - "@esbuild/linux-mips64el": "0.21.5", - "@esbuild/linux-ppc64": "0.21.5", - "@esbuild/linux-riscv64": "0.21.5", - "@esbuild/linux-s390x": "0.21.5", - "@esbuild/linux-x64": "0.21.5", - "@esbuild/netbsd-x64": "0.21.5", - "@esbuild/openbsd-x64": "0.21.5", - "@esbuild/sunos-x64": "0.21.5", - "@esbuild/win32-arm64": "0.21.5", - "@esbuild/win32-ia32": "0.21.5", - "@esbuild/win32-x64": "0.21.5" + "@esbuild/aix-ppc64": "0.27.2", + "@esbuild/android-arm": "0.27.2", + "@esbuild/android-arm64": "0.27.2", + "@esbuild/android-x64": "0.27.2", + "@esbuild/darwin-arm64": "0.27.2", + "@esbuild/darwin-x64": "0.27.2", + "@esbuild/freebsd-arm64": "0.27.2", + "@esbuild/freebsd-x64": "0.27.2", + "@esbuild/linux-arm": "0.27.2", + "@esbuild/linux-arm64": "0.27.2", + "@esbuild/linux-ia32": "0.27.2", + "@esbuild/linux-loong64": "0.27.2", + "@esbuild/linux-mips64el": "0.27.2", + "@esbuild/linux-ppc64": "0.27.2", + "@esbuild/linux-riscv64": "0.27.2", + "@esbuild/linux-s390x": "0.27.2", + "@esbuild/linux-x64": "0.27.2", + "@esbuild/netbsd-arm64": "0.27.2", + "@esbuild/netbsd-x64": "0.27.2", + "@esbuild/openbsd-arm64": "0.27.2", + "@esbuild/openbsd-x64": "0.27.2", + "@esbuild/openharmony-arm64": "0.27.2", + "@esbuild/sunos-x64": "0.27.2", + "@esbuild/win32-arm64": "0.27.2", + "@esbuild/win32-ia32": "0.27.2", + "@esbuild/win32-x64": "0.27.2" } }, "node_modules/escape-goat": { @@ -6196,13 +6233,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/loupe": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/loupe/-/loupe-3.2.1.tgz", - "integrity": "sha512-CdzqowRJCeLU72bHvWqwRBBlLcMEtIvGrlvef74kMnV2AolS9Y8xUv1I0U/MNAWMhBlKIoyuEgoJ0t/bbwHbLQ==", - "dev": true, - "license": "MIT" - }, "node_modules/lru-cache": { "version": "10.4.3", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", @@ -6264,7 +6294,6 @@ "resolved": "https://registry.npmjs.org/mem-fs/-/mem-fs-4.1.3.tgz", "integrity": "sha512-+2zSUVKcDWgcF90mPPwyH4J814uRI1PJcVt2RZ4/E8VggPEiIEL7ikMTlPR91P2ZySkyPgD0YGrccwo55SZvnw==", "license": "MIT", - "peer": true, "dependencies": { "@types/node": ">=18", "@types/vinyl": "^2.0.12", @@ -7016,6 +7045,17 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/obug": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/obug/-/obug-2.1.1.tgz", + "integrity": "sha512-uTqF9MuPraAQ+IsnPf366RG4cP9RtUi7MLO1N3KEc+wb0a6yKpeL0lmk2IB1jY5KHPAlTc6T/JRdC/YqxHNwkQ==", + "dev": true, + "funding": [ + "https://github.com/sponsors/sxzz", + "https://opencollective.com/debug" + ], + "license": "MIT" + }, "node_modules/on-finished": { "version": "2.4.1", "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", @@ -7402,22 +7442,12 @@ } }, "node_modules/pathe": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/pathe/-/pathe-1.1.2.tgz", - "integrity": "sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/pathe/-/pathe-2.0.3.tgz", + "integrity": "sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==", "dev": true, "license": "MIT" }, - "node_modules/pathval": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pathval/-/pathval-2.0.1.tgz", - "integrity": "sha512-//nshmD55c46FuFw26xV/xFAaB5HF9Xdap7HJBBnrKdAd6/GxDBaNA1870O79+9ueg61cZLSVc+OaFlfmObYVQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 14.16" - } - }, "node_modules/picocolors": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", @@ -8714,11 +8744,14 @@ "license": "MIT" }, "node_modules/tinyexec": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-0.3.2.tgz", - "integrity": "sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-1.0.2.tgz", + "integrity": "sha512-W/KYk+NFhkmsYpuHq5JykngiOCnxeVL8v8dFnqxSD8qEEdRfXk1SDM6JzNqcERbcGYj9tMrDQBYV9cjgnunFIg==", "dev": true, - "license": "MIT" + "license": "MIT", + "engines": { + "node": ">=18" + } }, "node_modules/tinyglobby": { "version": "0.2.15", @@ -8758,7 +8791,6 @@ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", "license": "MIT", - "peer": true, "engines": { "node": ">=12" }, @@ -8766,30 +8798,10 @@ "url": "https://github.com/sponsors/jonschlinkert" } }, - "node_modules/tinypool": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/tinypool/-/tinypool-1.1.1.tgz", - "integrity": "sha512-Zba82s87IFq9A9XmjiX5uZA/ARWDrB03OHlq+Vw1fSdt0I+4/Kutwy8BP4Y/y/aORMo61FQ0vIb5j44vSo5Pkg==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^18.0.0 || >=20.0.0" - } - }, "node_modules/tinyrainbow": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/tinyrainbow/-/tinyrainbow-1.2.0.tgz", - "integrity": "sha512-weEDEq7Z5eTHPDh4xjX789+fHfF+P8boiFB+0vbWzpbnbsEr/GRaohi/uMKxg8RZMXnl1ItAi/IUHWMsjDV7kQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/tinyspy": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/tinyspy/-/tinyspy-3.0.2.tgz", - "integrity": "sha512-n1cw8k1k0x4pgA2+9XrOkFydTerNcJ1zWCO5Nn9scWHTD+5tp8dghT2x1uduQePZTZgd3Tupf+x9BxJjeJi77Q==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/tinyrainbow/-/tinyrainbow-3.0.3.tgz", + "integrity": "sha512-PSkbLUoxOFRzJYjjxHJt9xro7D+iilgMX/C9lawzVuYiIdcihh9DXmVibBe8lmcFrRi/VzlPjBxbN7rH24q8/Q==", "dev": true, "license": "MIT", "engines": { @@ -9117,21 +9129,24 @@ } }, "node_modules/vite": { - "version": "5.4.21", - "resolved": "https://registry.npmjs.org/vite/-/vite-5.4.21.tgz", - "integrity": "sha512-o5a9xKjbtuhY6Bi5S3+HvbRERmouabWbyUcpXXUA1u+GNUKoROi9byOJ8M0nHbHYHkYICiMlqxkg1KkYmm25Sw==", + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/vite/-/vite-7.3.1.tgz", + "integrity": "sha512-w+N7Hifpc3gRjZ63vYBXA56dvvRlNWRczTdmCBBa+CotUzAPf5b7YMdMR/8CQoeYE5LX3W4wj6RYTgonm1b9DA==", "dev": true, "license": "MIT", "dependencies": { - "esbuild": "^0.21.3", - "postcss": "^8.4.43", - "rollup": "^4.20.0" + "esbuild": "^0.27.0", + "fdir": "^6.5.0", + "picomatch": "^4.0.3", + "postcss": "^8.5.6", + "rollup": "^4.43.0", + "tinyglobby": "^0.2.15" }, "bin": { "vite": "bin/vite.js" }, "engines": { - "node": "^18.0.0 || >=20.0.0" + "node": "^20.19.0 || >=22.12.0" }, "funding": { "url": "https://github.com/vitejs/vite?sponsor=1" @@ -9140,19 +9155,25 @@ "fsevents": "~2.3.3" }, "peerDependencies": { - "@types/node": "^18.0.0 || >=20.0.0", - "less": "*", + "@types/node": "^20.19.0 || >=22.12.0", + "jiti": ">=1.21.0", + "less": "^4.0.0", "lightningcss": "^1.21.0", - "sass": "*", - "sass-embedded": "*", - "stylus": "*", - "sugarss": "*", - "terser": "^5.4.0" + "sass": "^1.70.0", + "sass-embedded": "^1.70.0", + "stylus": ">=0.54.8", + "sugarss": "^5.0.0", + "terser": "^5.16.0", + "tsx": "^4.8.1", + "yaml": "^2.4.2" }, "peerDependenciesMeta": { "@types/node": { "optional": true }, + "jiti": { + "optional": true + }, "less": { "optional": true }, @@ -9173,74 +9194,91 @@ }, "terser": { "optional": true + }, + "tsx": { + "optional": true + }, + "yaml": { + "optional": true } } }, - "node_modules/vite-node": { - "version": "2.1.9", - "resolved": "https://registry.npmjs.org/vite-node/-/vite-node-2.1.9.tgz", - "integrity": "sha512-AM9aQ/IPrW/6ENLQg3AGY4K1N2TGZdR5e4gu/MmmR2xR3Ll1+dib+nook92g4TV3PXVyeyxdWwtaCAiUL0hMxA==", + "node_modules/vite/node_modules/fdir": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", + "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", "dev": true, "license": "MIT", - "dependencies": { - "cac": "^6.7.14", - "debug": "^4.3.7", - "es-module-lexer": "^1.5.4", - "pathe": "^1.1.2", - "vite": "^5.0.0" + "engines": { + "node": ">=12.0.0" }, - "bin": { - "vite-node": "vite-node.mjs" + "peerDependencies": { + "picomatch": "^3 || ^4" }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } + } + }, + "node_modules/vite/node_modules/picomatch": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", + "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", + "dev": true, + "license": "MIT", "engines": { - "node": "^18.0.0 || >=20.0.0" + "node": ">=12" }, "funding": { - "url": "https://opencollective.com/vitest" + "url": "https://github.com/sponsors/jonschlinkert" } }, "node_modules/vitest": { - "version": "2.1.9", - "resolved": "https://registry.npmjs.org/vitest/-/vitest-2.1.9.tgz", - "integrity": "sha512-MSmPM9REYqDGBI8439mA4mWhV5sKmDlBKWIYbA3lRb2PTHACE0mgKwA8yQ2xq9vxDTuk4iPrECBAEW2aoFXY0Q==", + "version": "4.0.17", + "resolved": "https://registry.npmjs.org/vitest/-/vitest-4.0.17.tgz", + "integrity": "sha512-FQMeF0DJdWY0iOnbv466n/0BudNdKj1l5jYgl5JVTwjSsZSlqyXFt/9+1sEyhR6CLowbZpV7O1sCHrzBhucKKg==", "dev": true, "license": "MIT", "dependencies": { - "@vitest/expect": "2.1.9", - "@vitest/mocker": "2.1.9", - "@vitest/pretty-format": "^2.1.9", - "@vitest/runner": "2.1.9", - "@vitest/snapshot": "2.1.9", - "@vitest/spy": "2.1.9", - "@vitest/utils": "2.1.9", - "chai": "^5.1.2", - "debug": "^4.3.7", - "expect-type": "^1.1.0", - "magic-string": "^0.30.12", - "pathe": "^1.1.2", - "std-env": "^3.8.0", + "@vitest/expect": "4.0.17", + "@vitest/mocker": "4.0.17", + "@vitest/pretty-format": "4.0.17", + "@vitest/runner": "4.0.17", + "@vitest/snapshot": "4.0.17", + "@vitest/spy": "4.0.17", + "@vitest/utils": "4.0.17", + "es-module-lexer": "^1.7.0", + "expect-type": "^1.2.2", + "magic-string": "^0.30.21", + "obug": "^2.1.1", + "pathe": "^2.0.3", + "picomatch": "^4.0.3", + "std-env": "^3.10.0", "tinybench": "^2.9.0", - "tinyexec": "^0.3.1", - "tinypool": "^1.0.1", - "tinyrainbow": "^1.2.0", - "vite": "^5.0.0", - "vite-node": "2.1.9", + "tinyexec": "^1.0.2", + "tinyglobby": "^0.2.15", + "tinyrainbow": "^3.0.3", + "vite": "^6.0.0 || ^7.0.0", "why-is-node-running": "^2.3.0" }, "bin": { "vitest": "vitest.mjs" }, "engines": { - "node": "^18.0.0 || >=20.0.0" + "node": "^20.0.0 || ^22.0.0 || >=24.0.0" }, "funding": { "url": "https://opencollective.com/vitest" }, "peerDependencies": { "@edge-runtime/vm": "*", - "@types/node": "^18.0.0 || >=20.0.0", - "@vitest/browser": "2.1.9", - "@vitest/ui": "2.1.9", + "@opentelemetry/api": "^1.9.0", + "@types/node": "^20.0.0 || ^22.0.0 || >=24.0.0", + "@vitest/browser-playwright": "4.0.17", + "@vitest/browser-preview": "4.0.17", + "@vitest/browser-webdriverio": "4.0.17", + "@vitest/ui": "4.0.17", "happy-dom": "*", "jsdom": "*" }, @@ -9248,10 +9286,19 @@ "@edge-runtime/vm": { "optional": true }, + "@opentelemetry/api": { + "optional": true + }, "@types/node": { "optional": true }, - "@vitest/browser": { + "@vitest/browser-playwright": { + "optional": true + }, + "@vitest/browser-preview": { + "optional": true + }, + "@vitest/browser-webdriverio": { "optional": true }, "@vitest/ui": { @@ -9265,6 +9312,19 @@ } } }, + "node_modules/vitest/node_modules/picomatch": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", + "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, "node_modules/walk-up-path": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/walk-up-path/-/walk-up-path-4.0.0.tgz", diff --git a/package.json b/package.json index 1a28d6fc..65c40c61 100644 --- a/package.json +++ b/package.json @@ -28,7 +28,6 @@ ], "dependencies": { "archiver": "^7.0.1", - "archiver-promise": "^1.0.0", "chalk": "^5.6.2", "chokidar": "^5.0.0", "commander": "^12.1.0", @@ -43,7 +42,6 @@ "lodash.compact": "^3.0.1", "lodash.debounce": "^4.0.8", "lodash.flatten": "^4.4.0", - "lodash.isequal": "^4.5.0", "lodash.reject": "^4.6.0", "lodash.startcase": "^4.4.0", "lodash.uniq": "^4.5.0", @@ -90,7 +88,7 @@ "homepage": "https://github.com/Platform-OS/pos-cli/issues#readme", "devDependencies": { "dotenv": "^16.6.1", - "vitest": "^2.1.9" + "vitest": "^4.0.0" }, "bundleDependencies": [ "commander", diff --git a/test/dependencies.test.js b/test/dependencies.test.js index 7244cff8..e756edf3 100644 --- a/test/dependencies.test.js +++ b/test/dependencies.test.js @@ -1,21 +1,21 @@ import { resolveDependencies, findModuleVersion } from '../lib/modules/dependencies'; -import isEqual from 'lodash.isequal'; +import { isDeepStrictEqual } from 'node:util'; test('resolveDependencies ok', async () => { const core = {"module":"core","versions":{"1.0.0":{"dependencies":{}}, "1.5.0":{"dependencies":{}}, "1.6.0":{"dependencies":{}}, "1.8.0":{"dependencies":{}}}}; const modulesVersions = async (modulesNames) => { - if(isEqual(modulesNames, ['payments_stripe', 'tests', 'a'])) { + if(isDeepStrictEqual(modulesNames, ['payments_stripe', 'tests', 'a'])) { return [ {"module":"payments_stripe","versions":{"1.0.6":{"dependencies":{"payments":"^1.0.0", "core":"^1.0.0"}}}}, {"module":"tests","versions":{"1.0.7":{"dependencies":{"core":"^1.5.0"}}}}, {"module":"a","versions":{"1.0.0":{"dependencies":{"b":"1.0.0"}}}} ]; - } else if(isEqual(modulesNames, ['payments', 'core', 'b'])){ + } else if(isDeepStrictEqual(modulesNames, ['payments', 'core', 'b'])){ return [ {"module":"payments","versions":{"1.0.0":{"dependencies":{"core":"1.6.0"}}}}, {"module":"b","versions":{"1.0.0":{"dependencies":{"c":"1.0.0"}}}} ].concat(core); - } else if(isEqual(modulesNames, ['core', 'c'])){ + } else if(isDeepStrictEqual(modulesNames, ['core', 'c'])){ return [ {"module":"c","versions":{"1.0.0":{"dependencies":{}}}} ].concat(core); @@ -47,11 +47,11 @@ test('resolveDependencies do not use newest available version but the one define const core = {"module":"core","versions":{"1.6.0":{"dependencies":{}}, "1.6.1":{"dependencies":{}}, "1.8.0":{"dependencies":{}}}}; const tests = {"module":"tests","versions":{"1.0.7":{"dependencies":{"core":"^1.6.0"}}}} const modulesVersions = async (modulesNames) => { - if(isEqual(modulesNames, ['tests', 'core'])) { + if(isDeepStrictEqual(modulesNames, ['tests', 'core'])) { return [tests, core]; - } else if(isEqual(modulesNames, ['tests'])) { + } else if(isDeepStrictEqual(modulesNames, ['tests'])) { return [tests]; - } else if(isEqual(modulesNames, ['core'])) { + } else if(isDeepStrictEqual(modulesNames, ['core'])) { return [core] } throw new Error(`Unexpected modulesNames: ${JSON.stringify(modulesNames)}`); diff --git a/test/deploy.test.js b/test/deploy.test.js index 727a3ab0..f78041f5 100644 --- a/test/deploy.test.js +++ b/test/deploy.test.js @@ -1,25 +1,42 @@ import 'dotenv/config'; -import { describe, test, expect, vi } from 'vitest'; +import { describe, test, expect, vi, beforeAll, afterAll } from 'vitest'; import exec from './utils/exec'; import cliPath from './utils/cliPath'; import unzip from 'unzipper'; import fs from 'fs'; import path from 'path'; import { hasRealCredentials, requireRealCredentials } from './utils/credentials'; +import shell from 'shelljs'; vi.setConfig({ testTimeout: 40000 }); const cwd = name => path.join(process.cwd(), 'test', 'fixtures', 'deploy', name); +const cleanupTmp = () => { + const tmpDir = path.join(process.cwd(), 'test', 'fixtures', 'deploy', 'correct', 'tmp'); + if (fs.existsSync(tmpDir)) { + shell.rm('-rf', tmpDir); + } +}; + +beforeAll(() => { + cleanupTmp(); +}); + +const sleep = ms => new Promise(resolve => setTimeout(resolve, ms)); const run = (fixtureName, options) => exec(`${cliPath} deploy ${options || ''}`, { cwd: cwd(fixtureName), env: process.env }); const extract = async (inputPath, outputPath) => { return unzip.Open.file(inputPath).then(d => d.extract({ path: outputPath, concurrency: 5 })); }; + describe('Happy path', () => { test('App directory + modules', async () => { requireRealCredentials(); + await sleep(2000); // it's needed to run tests in parallel mode + + const { stderr, stdout } = await run('correct'); expect(stdout).toMatch(process.env.MPKIT_URL); diff --git a/test/env-add-unit.test.js b/test/env-add-unit.test.js index 9866853c..974c927a 100644 --- a/test/env-add-unit.test.js +++ b/test/env-add-unit.test.js @@ -3,6 +3,10 @@ import fs from 'fs'; import path from 'path'; import { settingsFromDotPos } from '../lib/settings.js'; +vi.mock('open', () => ({ + default: vi.fn(() => Promise.resolve()) +})); + let addEnv; let storeEnvironment; diff --git a/test/gui-serve.test.js b/test/gui-serve.test.js index 9512ef8f..01697421 100644 --- a/test/gui-serve.test.js +++ b/test/gui-serve.test.js @@ -1,5 +1,5 @@ import 'dotenv/config'; -import { describe, test, expect, beforeAll, afterAll } from 'vitest'; +import { describe, test, expect, beforeAll, afterAll, vi } from 'vitest'; import { spawn } from 'child_process'; import path from 'path'; import { requireRealCredentials } from './utils/credentials'; @@ -7,8 +7,9 @@ import { requireRealCredentials } from './utils/credentials'; vi.setConfig({ testTimeout: 30000 }); const cliPath = path.join(process.cwd(), 'bin', 'pos-cli.js'); +const fixturePath = path.join(process.cwd(), 'test', 'fixtures', 'deploy', 'correct_with_assets'); -const waitForServer = async (server, port, maxWait = 5000) => { +const waitForServer = async (server, port, maxWait = 5000, waitForSync = false) => { const start = Date.now(); while (Date.now() - start < maxWait) { const serverStarted = server.getStdout().includes('Connected to') && @@ -17,7 +18,13 @@ const waitForServer = async (server, port, maxWait = 5000) => { if (serverStarted) { try { const response = await fetch(`http://localhost:${port}/`); - if (response.ok) return true; + if (response.ok) { + if (waitForSync && !server.getStdout().includes('[Sync] Synchronizing changes to:')) { + await new Promise(resolve => setTimeout(resolve, 100)); + continue; + } + return true; + } } catch (e) { } } @@ -33,9 +40,10 @@ const waitForServer = async (server, port, maxWait = 5000) => { return false; }; -const startServer = (args, env = process.env) => { +const startServer = (args, env = process.env, cwd = process.cwd()) => { const child = spawn('node', [cliPath, ...args], { env: { ...process.env, ...env }, + cwd, stdio: ['pipe', 'pipe', 'pipe'] }); @@ -90,4 +98,28 @@ describe('pos-cli gui serve command', () => { server.kill(); } }); + + test('gui serve with --sync should start both server and sync', async () => { + requireRealCredentials(); + + const server = startServer(['gui', 'serve', 'staging', '--port', port.toString(), '--sync'], process.env, fixturePath); + + try { + const serverReady = await waitForServer(server, port, 5000, true); + + if (!serverReady) { + await new Promise(resolve => setTimeout(resolve, 500)); + throw new Error(`Server could not start: ${server.getStdout()}\n${server.getStderr()}`); + } + + expect(server.getStdout()).toContain('Connected to'); + expect(server.getStdout()).toContain('Admin:'); + expect(server.getStdout()).toContain(`http://localhost:${port}`); + expect(server.getStdout()).toContain('GraphiQL IDE:'); + expect(server.getStdout()).toContain('Liquid evaluator:'); + expect(server.getStdout()).toContain('[Sync] Synchronizing changes to:'); + } finally { + server.kill(); + } + }); }); diff --git a/vitest.config.js b/vitest.config.js index d029fbd7..14024944 100644 --- a/vitest.config.js +++ b/vitest.config.js @@ -5,12 +5,10 @@ export default defineConfig({ environment: 'node', globals: true, include: ['test/**/*.{test,spec}.js'], - pool: 'forks', - poolOptions: { - forks: { - singleFork: true - } - }, - setupFiles: ['./test/vitest-setup.js'] + fileParallelism: true, + setupFiles: ['./test/vitest-setup.js'], + testTimeout: 10000, + hookTimeout: 20000 + } }); From 6804c0dff96e4206487417210e219e3571ccaf14 Mon Sep 17 00:00:00 2001 From: Maciej Krajowski-Kukiel Date: Mon, 19 Jan 2026 15:08:26 +0100 Subject: [PATCH 8/8] eslint --- .eslintrc.json | 63 + bin/pos-cli-archive.js | 2 +- bin/pos-cli-clone-init.js | 29 +- bin/pos-cli-constants-list.js | 14 +- bin/pos-cli-constants-set.js | 20 +- bin/pos-cli-constants-unset.js | 24 +- bin/pos-cli-data-clean.js | 29 +- bin/pos-cli-data-export.js | 2 +- bin/pos-cli-data-import.js | 3 +- bin/pos-cli-data-update.js | 4 +- bin/pos-cli-env-add.js | 4 +- bin/pos-cli-env-refresh-token.js | 10 +- bin/pos-cli-generate-list.js | 7 +- bin/pos-cli-generate-run.js | 43 +- bin/pos-cli-init.js | 10 +- bin/pos-cli-logs.js | 47 +- bin/pos-cli-logsv2-alerts-add.js | 16 +- bin/pos-cli-logsv2-alerts-list.js | 11 +- bin/pos-cli-logsv2-alerts-trigger.js | 10 +- bin/pos-cli-logsv2-reports.js | 7 +- bin/pos-cli-logsv2-search.js | 7 +- bin/pos-cli-logsv2-searchAround.js | 6 +- bin/pos-cli-modules-download.js | 9 +- bin/pos-cli-modules-install.js | 5 +- bin/pos-cli-modules-pull.js | 46 +- bin/pos-cli-modules-push.js | 3 +- bin/pos-cli-modules-update.js | 5 +- bin/pos-cli-modules-version.js | 9 +- bin/pos-cli-modules.js | 1 - bin/pos-cli.js | 7 +- eslint.config.js | 152 + gui/admin/rollup.config.js | 46 +- gui/admin/src/lib/_typemap.js | 2 +- gui/admin/src/lib/api.js | 18 +- gui/admin/src/main.js | 4 +- .../src/pages/Constants/fetchConstants.js | 4 +- gui/admin/src/pages/Logs/fetchLogs.js | 14 +- .../src/pages/Models/Manage/_models-store.js | 3 +- .../src/pages/Models/Manage/_page-store.js | 2 +- gui/admin/tailwind.config.cjs | 8 +- gui/admin/tests/Models.js | 2 +- gui/admin/tests/Schemas.js | 10 +- gui/graphql/public/main.js | 17768 +++++++++++++++- gui/next/playwright.config.js | 6 +- gui/next/playwright/database.spec.js | 3 +- gui/next/playwright/helpers/posInstance.js | 6 +- gui/next/playwright/logs.spec.js | 2 +- gui/next/playwright/users.spec.js | 2 +- gui/next/src/lib/api/constant.js | 2 +- gui/next/src/lib/api/graphql.js | 28 +- gui/next/src/lib/api/logsv2.js | 10 +- gui/next/src/lib/api/network.js | 12 +- gui/next/src/lib/api/record.js | 28 +- gui/next/src/lib/api/table.js | 4 +- gui/next/src/lib/api/user.js | 4 +- .../lib/helpers/buildMutationIngredients.js | 2 +- gui/next/src/lib/helpers/clickOutside.js | 4 +- gui/next/src/lib/helpers/httpStatusCodes.js | 4 +- gui/next/src/lib/state.js | 114 +- gui/next/src/lib/tryParseJSON.js | 6 +- gui/next/static/prism.js | 258 +- gui/next/svelte.config.js | 2 +- gui/next/vite.config.js | 2 +- lib/ServerError.js | 78 +- lib/apiRequest.js | 5 +- lib/archive.js | 17 +- lib/assets.js | 2 +- lib/assets/manifest.js | 2 +- lib/data/fetchFiles.js | 12 +- lib/data/isValidJSON.js | 2 +- lib/data/uploadFiles.js | 2 +- lib/data/waitForStatus.js | 5 +- lib/deploy/defaultStrategy.js | 4 +- lib/deploy/directAssetsUploadStrategy.js | 4 +- lib/deploy/strategy.js | 2 +- lib/environments.js | 28 +- lib/envs/add.js | 9 +- lib/files.js | 4 +- lib/graph/queries.js | 2 +- lib/logger.js | 15 +- lib/logger/report.js | 40 +- lib/modules.js | 40 +- lib/modules/configFiles.js | 4 +- lib/modules/dependencies.js | 6 +- lib/overwrites.js | 6 +- lib/portal.js | 16 +- lib/presignUrl.js | 11 +- lib/productionEnvironment.js | 2 +- lib/proxy.js | 18 +- lib/push.js | 4 +- lib/server.js | 32 +- lib/shouldBeSynced.js | 1 - lib/swagger-client.js | 163 +- lib/test-runner/index.js | 3 +- lib/test-runner/logStream.js | 2 +- lib/unzip.js | 1 - lib/utils/create-directory.js | 3 +- lib/utils/password.js | 2 +- lib/validators/url.js | 2 +- lib/watch.js | 2 +- package.json | 7 + scripts/check-node-version.js | 2 +- test/dependencies.test.js | 80 +- test/deploy.test.js | 20 +- test/env-add-unit.test.js | 146 +- test/env-add.test.js | 12 +- .../correct_with_assets/app/assets/bar.js | 206 +- .../modules/core/generators/command/index.js | 1 - .../modules/core/generators/crud/index.js | 52 +- test/generators.test.js | 12 +- test/gui-serve.test.js | 12 +- test/lib/commands.test.js | 14 +- test/logs.test.js | 4 +- test/manifest.test.js | 28 +- test/modules-download.test.js | 2 +- test/modules-push.test.js | 25 +- test/modules-update.test.js | 8 +- test/sync.test.js | 16 +- test/templates.test.js | 12 +- test/test-run.test.js | 101 +- test/utils/credentials.js | 5 +- test/utils/exec.js | 2 +- 122 files changed, 19194 insertions(+), 1109 deletions(-) create mode 100644 .eslintrc.json create mode 100644 eslint.config.js diff --git a/.eslintrc.json b/.eslintrc.json new file mode 100644 index 00000000..c40f84d1 --- /dev/null +++ b/.eslintrc.json @@ -0,0 +1,63 @@ +{ + "env": { + "browser": true, + "es2024": true, + "node": true + }, + "parserOptions": { + "ecmaVersion": "latest", + "sourceType": "module" + }, + "extends": [ + "eslint:recommended", + "plugin:n/recommended", + "plugin:import/recommended", + "plugin:import/typescript" + ], + "plugins": ["n", "import", "promise"], + "rules": { + "no-console": "off", + "no-unused-vars": ["error", { "argsIgnorePattern": "^_" }], + "no-magic-numbers": "off", + "no-underscore-dangle": "off", + "comma-dangle": ["error", "never"], + "quotes": ["error", "single", { "avoidEscape": true }], + "semi": ["error", "always"], + "indent": ["error", 2, { "SwitchCase": 1 }], + "brace-style": ["error", "1tbs"], + "padded-blocks": "off", + "spaced-comment": ["warn", "always"], + "quote-props": "off", + "prefer-arrow-callback": "off", + "space-before-function-paren": "off", + "no-new": "off", + "func-names": "off", + "new-cap": "off", + "arrow-body-style": "off", + "class-methods-use-this": "off", + "consistent-return": "off", + "max-len": ["warn", { "code": 140, "ignoreUrls": true }], + "n/no-missing-import": ["error", { "tryExtensions": [".js", ".json"] }], + "n/no-extraneous-import": "off", + "n/no-extraneous-require": "off", + "n/no-unsupported-features/es-syntax": "off", + "n/no-process-exit": "off", + "import/no-unresolved": ["error", { "ignore": ["^@platformos/"] }], + "import/extensions": ["error", "ignorePackages", { "js": "always" }] + }, + "ignorePatterns": [ + "node_modules/", + "gui/*/node_modules/", + "gui/*/dist/", + "gui/*/build/", + "coverage/", + "*.min.js" + ], + "settings": { + "import/resolver": { + "node": { + "extensions": [".js", ".json"] + } + } + } +} diff --git a/bin/pos-cli-archive.js b/bin/pos-cli-archive.js index 233026f5..5fd4e3b2 100644 --- a/bin/pos-cli-archive.js +++ b/bin/pos-cli-archive.js @@ -29,7 +29,7 @@ program TARGET: params.output }); - await createArchive(env) + await createArchive(env); }); program.parse(process.argv); diff --git a/bin/pos-cli-clone-init.js b/bin/pos-cli-clone-init.js index ddc5c3c5..16c8e19a 100755 --- a/bin/pos-cli-clone-init.js +++ b/bin/pos-cli-clone-init.js @@ -1,45 +1,42 @@ #!/usr/bin/env node -import fs from 'fs'; import { program } from 'commander'; -import shell from 'shelljs'; import Gateway from '../lib/proxy.js'; import { fetchSettings } from '../lib/settings.js'; -import fetchFiles from '../lib/data/fetchFiles.js'; import waitForStatus from '../lib/data/waitForStatus.js'; -import downloadFile from '../lib/downloadFile.js'; import logger from '../lib/logger.js'; -import report from '../lib/logger/report.js'; import ora from 'ora'; -const sleep = ms => new Promise(resolve => setTimeout(resolve, ms)); - program.showHelpAfterError(); program .name('pos-cli clone init') .arguments('[sourceEnv]', 'source environment. Example: staging') .arguments('[targetEnv]', 'target environment. Example: staging2') - .action(async (sourceEnv, targetEnv, params) => { + .action(async (sourceEnv, _targetEnv, _params) => { const spinner = ora({ text: 'InstanceClone initilized', stream: process.stdout, interval: 500 }); try { const sourceAuthData = fetchSettings(sourceEnv, program); - const targetAuthData = fetchSettings(targetEnv, program); + const targetAuthData = fetchSettings(_targetEnv, program); - sourceGateway = new Gateway(sourceAuthData); - targetGateway = new Gateway(targetAuthData); + const sourceGateway = new Gateway(sourceAuthData); + const targetGateway = new Gateway(targetAuthData); spinner.start(); const payload = await targetGateway.cloneInstanceInit(); - const response = await sourceGateway.cloneInstanceExport(payload); + await sourceGateway.cloneInstanceExport(payload); - const checkInstanceCloneStatus = () => { return targetGateway.cloneInstanceStatus(payload.id) } - const formatResponse = r => `${r.status.name} \n${r.statuses.map((item) => [item.created_at, item.name].join(" ")).join("\n")}` - await waitForStatus(checkInstanceCloneStatus, [], 'done', 2000, (msg) => { spinner.text = formatResponse(msg) }) + const checkInstanceCloneStatus = () => { + return targetGateway.cloneInstanceStatus(payload.id); + }; + const formatResponse = r => `${r.status.name} \n${r.statuses.map((item) => [item.created_at, item.name].join(' ')).join('\n')}`; + await waitForStatus(checkInstanceCloneStatus, [], 'done', 2000, (msg) => { + spinner.text = formatResponse(msg); + }); - spinner.stopAndPersist().succeed(`${sourceEnv} instance clone to ${targetEnv} succeeded.`); + spinner.stopAndPersist().succeed(`${sourceEnv} instance clone to ${_targetEnv} succeeded.`); } catch(e) { spinner.stop(); logger.Error(e); diff --git a/bin/pos-cli-constants-list.js b/bin/pos-cli-constants-list.js index 7e101302..424bb3cb 100644 --- a/bin/pos-cli-constants-list.js +++ b/bin/pos-cli-constants-list.js @@ -7,21 +7,21 @@ import { fetchSettings } from '../lib/settings.js'; import logger from '../lib/logger.js'; const success = (msg) => { - msg.data.constants.results.forEach(x => console.log(x.name.padEnd(50), safe(x.value))) - logger.Print("\n") -} + msg.data.constants.results.forEach(x => console.log(x.name.padEnd(50), safe(x.value))); + logger.Print('\n'); +}; const safe = (str) => { if ( process.env.SAFE ) - return JSON.stringify(str) + return JSON.stringify(str); else - return JSON.stringify(str.slice(0,2) + '...') -} + return JSON.stringify(str.slice(0,2) + '...'); +}; program .name('pos-cli constants list') .arguments('[environment]', 'name of environment. Example: staging') - .action((environment, params) => { + .action((environment, _params) => { const authData = fetchSettings(environment, program); const gateway = new Gateway(authData); diff --git a/bin/pos-cli-constants-set.js b/bin/pos-cli-constants-set.js index ed11b329..dc560da5 100644 --- a/bin/pos-cli-constants-set.js +++ b/bin/pos-cli-constants-set.js @@ -10,20 +10,20 @@ import logger from '../lib/logger.js'; const help = () => { program.outputHelp(); process.exit(1); -} +}; const checkParams = ({name, value}) => { validateExistence({ argumentValue: value, argumentName: 'value', fail: help }); validateExistence({ argumentValue: name, argumentName: 'name', fail: help }); -} +}; const success = (msg) => { - logger.Success(`Constant variable <${msg.data.constant_set.name}> added successfuly.`) -} + logger.Success(`Constant variable <${msg.data.constant_set.name}> added successfuly.`); +}; const error = (msg) => { - logger.Error(`Adding Constant variable <${msg.data.constant_set.name}> failed successfuly.`) -} + logger.Error(`Adding Constant variable <${msg.data.constant_set.name}> failed successfuly.`); +}; program .name('pos-cli constants set') @@ -35,10 +35,10 @@ program const authData = fetchSettings(environment, program); const gateway = new Gateway(authData); - const constant = gateway - .graph({query: queries.setConstant(params.name, params.value)}) - .then(success) - .catch(error); + gateway + .graph({query: queries.setConstant(params.name, params.value)}) + .then(success) + .catch(error); }); program.parse(process.argv); diff --git a/bin/pos-cli-constants-unset.js b/bin/pos-cli-constants-unset.js index c37ccfeb..4f0afe32 100755 --- a/bin/pos-cli-constants-unset.js +++ b/bin/pos-cli-constants-unset.js @@ -10,22 +10,22 @@ import logger from '../lib/logger.js'; const help = () => { program.outputHelp(); process.exit(1); -} +}; -const checkParams = ({name, value}) => { +const checkParams = ({name}) => { validateExistence({ argumentValue: name, argumentName: 'name', fail: help }); -} +}; const success = (msg) => { if (msg.data.constant_unset) - logger.Success(`Constant variable <${msg.data.constant_unset.name}> deleted successfuly.`) + logger.Success(`Constant variable <${msg.data.constant_unset.name}> deleted successfuly.`); else - logger.Success(`Constant variable not found.`) -} + logger.Success('Constant variable not found.'); +}; const error = (msg) => { - logger.Error(`Adding Constant variable <${msg.data.constant_unset.name}> failed successfuly.`) -} + logger.Error(`Adding Constant variable <${msg.data.constant_unset.name}> failed successfuly.`); +}; program .name('pos-cli constants unset') @@ -36,10 +36,10 @@ program const authData = fetchSettings(environment, program); const gateway = new Gateway(authData); - const constant = gateway - .graph({query: queries.unsetConstant(params.name)}) - .then(success) - .catch(error); + gateway + .graph({query: queries.unsetConstant(params.name)}) + .then(success) + .catch(error); }); program.parse(process.argv); diff --git a/bin/pos-cli-data-clean.js b/bin/pos-cli-data-clean.js index 59ba2070..719de424 100755 --- a/bin/pos-cli-data-clean.js +++ b/bin/pos-cli-data-clean.js @@ -25,9 +25,8 @@ const confirmCleanup = async (autoConfirm, includeSchema, url) => { const response = await prompts({ type: 'text', name: 'confirmation', message: message }); return response.confirmation == confirmationText; - } - catch(e) { - logger.Error(e) + } catch(e) { + logger.Error(e); return false; } }; @@ -43,32 +42,32 @@ program try { const gateway = new Gateway(fetchSettings(environment)); - const confirmed = await confirmCleanup(params.autoConfirm, params.includeSchema, gateway.url) + const confirmed = await confirmCleanup(params.autoConfirm, params.includeSchema, gateway.url); if (confirmed) { - spinner.start(`Cleaning instance`); + spinner.start('Cleaning instance'); - const response = await gateway.dataClean(confirmationText, params.includeSchema) + const response = await gateway.dataClean(confirmationText, params.includeSchema); logger.Debug(`Cleanup request id: ${response}`); - const checkDataCleanJobStatus = () => { return gateway.dataCleanStatus(response.id) } - await waitForStatus(checkDataCleanJobStatus, 'pending', 'done') + const checkDataCleanJobStatus = () => { + return gateway.dataCleanStatus(response.id); + }; + await waitForStatus(checkDataCleanJobStatus, 'pending', 'done'); spinner.stopAndPersist().succeed('DONE. Instance cleaned'); - } - else logger.Error('Wrong confirmation. Closed without cleaning instance data.'); + } else logger.Error('Wrong confirmation. Closed without cleaning instance data.'); - } - catch(e) { - spinner.fail(`Instance cleanup has failed.`); + } catch(e) { + spinner.fail('Instance cleanup has failed.'); console.log(e.name); // custom handle 422 if (e.statusCode == 422) logger.Error('[422] Data clean is either not supported by the server or has been disabled.'); else if (ServerError.isNetworkError(e)) - ServerError.handler(e) + ServerError.handler(e); else - logger.Error(e) + logger.Error(e); } }); diff --git a/bin/pos-cli-data-export.js b/bin/pos-cli-data-export.js index c0c4cee4..450ea768 100755 --- a/bin/pos-cli-data-export.js +++ b/bin/pos-cli-data-export.js @@ -18,7 +18,7 @@ const transform = ({ users = { results: [] }, transactables = { results: [] }, m return { users: users.results, transactables: transactables.results, - models: models.results, + models: models.results }; }; diff --git a/bin/pos-cli-data-import.js b/bin/pos-cli-data-import.js index 0c7a5243..1ba670e4 100755 --- a/bin/pos-cli-data-import.js +++ b/bin/pos-cli-data-import.js @@ -1,7 +1,6 @@ #!/usr/bin/env node import fs from 'fs'; -import shell from 'shelljs'; import crypto from 'crypto'; import { program } from 'commander'; import Gateway from '../lib/proxy.js'; @@ -96,7 +95,7 @@ program const authData = fetchSettings(environment); Object.assign(process.env, { MARKETPLACE_TOKEN: authData.token, - MARKETPLACE_URL: authData.url, + MARKETPLACE_URL: authData.url }); if (!fs.existsSync(filename)) { diff --git a/bin/pos-cli-data-update.js b/bin/pos-cli-data-update.js index 36a011ea..f15a203e 100755 --- a/bin/pos-cli-data-update.js +++ b/bin/pos-cli-data-update.js @@ -22,7 +22,7 @@ program const authData = fetchSettings(environment, program); Object.assign(process.env, { MARKETPLACE_TOKEN: authData.token, - MARKETPLACE_URL: authData.url, + MARKETPLACE_URL: authData.url }); const spinner = ora({ text: 'Sending data', stream: process.stdout }); @@ -56,7 +56,7 @@ For example: https://jsonlint.com` .catch((e) => { spinner.fail('Update failed'); logger.Error(e.message); - report('[ERR] Data: Update'); + report('[ERR] Data: Update'); }); }); diff --git a/bin/pos-cli-env-add.js b/bin/pos-cli-env-add.js index b72383bc..08fb95f4 100755 --- a/bin/pos-cli-env-add.js +++ b/bin/pos-cli-env-add.js @@ -3,7 +3,7 @@ import { program } from 'commander'; import ServerError from '../lib/ServerError.js'; import logger from '../lib/logger.js'; -import addEnv from '../lib/envs/add.js' +import addEnv from '../lib/envs/add.js'; program.showHelpAfterError(); program @@ -21,7 +21,7 @@ program await addEnv(environment, params); } catch (e) { if (ServerError.isNetworkError(e)) - ServerError.handler(e) + ServerError.handler(e); else logger.Error(e); } diff --git a/bin/pos-cli-env-refresh-token.js b/bin/pos-cli-env-refresh-token.js index f576e0be..cd877607 100644 --- a/bin/pos-cli-env-refresh-token.js +++ b/bin/pos-cli-env-refresh-token.js @@ -15,16 +15,16 @@ const login = async (email, password, url) => { return Portal.login(email, password, url) .then(response => { if (response) return Promise.resolve(response[0].token); - }) -} + }); +}; program .name('pos-cli env refresh-token') .arguments('[environment]', 'name of environment. Example: staging') - .action(async (environment, params) => { + .action(async (environment, _params) => { try { - const authData = fetchSettings(environment) + const authData = fetchSettings(environment); if (!authData.email){ token = await deviceAuthorizationFlow(authData.url); @@ -44,7 +44,7 @@ program } catch (e) { if (ServerError.isNetworkError(e)) - ServerError.handler(e) + ServerError.handler(e); else logger.Error(e); process.exit(1); diff --git a/bin/pos-cli-generate-list.js b/bin/pos-cli-generate-list.js index c42a309a..ff427316 100755 --- a/bin/pos-cli-generate-list.js +++ b/bin/pos-cli-generate-list.js @@ -1,7 +1,6 @@ #!/usr/bin/env node -import { program } from "commander"; -import path from "path"; +import { program } from 'commander'; import glob from 'fast-glob'; import table from 'text-table'; @@ -11,9 +10,9 @@ program .action(async () => { const files = await glob('**/generators/*/index.js'); if (files.length > 0) { - console.log("List of available generators:"); + console.log('List of available generators:'); const generators = files.map((file) => { - const generatorPath = file.replace('\/index.js', '') + const generatorPath = file.replace('/index.js', ''); const generatorName = generatorPath.split('/').pop(); return [generatorName, `pos-cli generate run ${generatorPath} --generator-help`]; }); diff --git a/bin/pos-cli-generate-run.js b/bin/pos-cli-generate-run.js index f9782cca..68049d25 100755 --- a/bin/pos-cli-generate-run.js +++ b/bin/pos-cli-generate-run.js @@ -1,19 +1,14 @@ #!/usr/bin/env node -import { createRequire } from 'module'; import { fileURLToPath } from 'url'; import path from 'path'; const __filename = fileURLToPath(import.meta.url); const __dirname = path.dirname(__filename); -const require = createRequire(import.meta.url); - import { program } from 'commander'; import { createEnv } from 'yeoman-environment'; const yeomanEnv = createEnv(); -import express from 'express'; -import dir from '../lib/directories.js'; import compact from 'lodash.compact'; import spawn from 'execa'; import reject from 'lodash.reject'; @@ -25,30 +20,28 @@ const registerGenerator = (generatorPath) => { const generatorPathFull = path.resolve(generatorPath, 'index.js'); yeomanEnv.register(generatorPathFull, generatorName); - let generator; try { - generator = yeomanEnv.get(generatorName); + yeomanEnv.get(generatorName); } catch(e) { if (e.message.includes('Cannot find module')){ installModulesAndLoadGenerator(generatorPath, generatorName); } } return generatorName; -} +}; -const installModulesAndLoadGenerator = (generatorPath, generatorName) => { +const installModulesAndLoadGenerator = (generatorPath, _generatorName) => { console.log('# Trying to install missing packages'); - const modulePath = generatorPath.match(/modules\/\w+/) + const modulePath = generatorPath.match(/modules\/\w+/); const moduleDir = `./${modulePath[0]}`; spawnCommand('npm', ['install'], { cwd: moduleDir }); - const generator = yeomanEnv.get(generatorName); -} +}; const runYeoman = async (generatorPath, attributes, options) => { const generatorName = registerGenerator(generatorPath); const generatorArgs = compact([generatorName].concat(attributes)); await yeomanEnv.run(generatorArgs, options); -} +}; const optionsHelp = (generatorOptions) => { const options = reject(generatorOptions, (x) => x.hide != 'no'); @@ -62,10 +55,10 @@ const optionsHelp = (generatorOptions) => { ? 'Default: ' + opt.default : '' ]; - }) + }); - return table(rows) -} + return table(rows); +}; const getGeneratorHelp = (generator) => { const help = { arguments: [], options: [], usage: '' }; @@ -75,7 +68,7 @@ const getGeneratorHelp = (generator) => { help.arguments = generator._arguments; help.usage = generator._arguments.map(arg => `<${arg.name}> `).join(' '); } - } catch (e) { + } catch { // Ignore - internal API not available } @@ -83,12 +76,12 @@ const getGeneratorHelp = (generator) => { if (generator._options && Array.isArray(generator._options)) { help.options = generator._options; } - } catch (e) { + } catch { // Ignore - internal API not available } return help; -} +}; const showHelpForGenerator = (generatorPath) => { const generatorName = registerGenerator(generatorPath); @@ -96,7 +89,7 @@ const showHelpForGenerator = (generatorPath) => { const generatorInstance = yeomanEnv.instantiate(generator, ['']); console.log(`Generator: ${generatorName}`); console.log(` ${generatorInstance.description || 'No description available'}`); - console.log(`\nUsage: `); + console.log('\nUsage: '); const help = getGeneratorHelp(generatorInstance); console.log( @@ -106,19 +99,19 @@ const showHelpForGenerator = (generatorPath) => { console.log('\nArguments:'); try { console.log(generatorInstance.argumentsHelp ? generatorInstance.argumentsHelp() : formatArgumentsHelp(help.arguments)); - } catch (e) { + } catch { console.log(formatArgumentsHelp(help.arguments)); } console.log(optionsHelp(help.options)); console.log(''); -} +}; const formatArgumentsHelp = (args) => { if (!args || args.length === 0) { return ' (No arguments required)'; } return args.map(arg => ` <${arg.name}> ${arg.description || ''}`).join('\n'); -} +}; const unknownOptions = (command) => { const options = {}; @@ -131,7 +124,7 @@ const unknownOptions = (command) => { } }); return options; -} +}; const spawnCommand = (command, args, opt) => { return spawn.sync(command, args, { @@ -153,7 +146,7 @@ program .argument('[generatorArguments...]', 'generator arguments') .option('--generator-help', 'show help for given generator') .allowUnknownOption() - .usage(" ", 'arguments that will be passed to the generator') + .usage(' ', 'arguments that will be passed to the generator') .action(async function (generatorPath, generatorArguments, options, command) { try{ if (options.generatorHelp){ diff --git a/bin/pos-cli-init.js b/bin/pos-cli-init.js index 261b2d2a..d826d927 100755 --- a/bin/pos-cli-init.js +++ b/bin/pos-cli-init.js @@ -11,7 +11,7 @@ const repos = { empty: 'mdyd-dev/directory-structure', 'Hello world': 'mdyd-dev/hello-world', 'Todo app': 'mdyd-dev/todo-app', - 'Product Marketplace Template': 'mdyd-dev/product-marketplace-template', + 'Product Marketplace Template': 'mdyd-dev/product-marketplace-template' }; function createStructure(url, branch) { @@ -46,20 +46,20 @@ program name: 'repo', message: 'Example app', default: 'empty', - choices: Object.keys(repos), + choices: Object.keys(repos) }, { type: 'string', name: 'branch', message: 'Branch', - default: 'master', - }, + default: 'master' + } ]) .then((answers) => { createStructure(repos[answers.repo], answers.branch); report('Init: Wizard'); - }) + }); return; } diff --git a/bin/pos-cli-logs.js b/bin/pos-cli-logs.js index 82f78899..808b9f74 100755 --- a/bin/pos-cli-logs.js +++ b/bin/pos-cli-logs.js @@ -19,8 +19,8 @@ class LogStream extends EventEmitter { super(); this.authData = authData; this.gateway = new Gateway(authData); - this.interval = interval - this.filter = !!filter && filter.toLowerCase() + this.interval = interval; + this.filter = !!filter && filter.toLowerCase(); } start() { @@ -33,11 +33,10 @@ class LogStream extends EventEmitter { if (!this.filter) return; try { - return this.filter !== (row.error_type || 'error').toLowerCase() - } - catch(e) { - logger.Error(`${row.error_type} error`) - return false + return this.filter !== (row.error_type || 'error').toLowerCase(); + } catch { + logger.Error(`${row.error_type} error`); + return false; } } @@ -59,7 +58,7 @@ class LogStream extends EventEmitter { this.emit('message', row); } } - }) + }); } } @@ -70,7 +69,7 @@ const storage = { storage.logs[item.id] = item; storage.lastId = item.id; }, - exists: (key) => storage.logs.hasOwnProperty(key), + exists: (key) => storage.logs.hasOwnProperty(key) }; const isError = (msg) => /error/.test(msg.error_type); @@ -81,13 +80,13 @@ program .option('-i, --interval ', 'time to wait between updates in ms', 3000) .option('--filter ', 'display only logs of given type, example: error') .option('-q, --quiet', 'show only log message, without context') - .action((environment, program, argument) => { + .action((environment, program, _argument) => { const authData = fetchSettings(environment, program); const stream = new LogStream(authData, program.interval, program.filter); stream.on('message', ({ created_at, error_type, message, data }) => { if (message == null) message = ''; - if (typeof(message) != "string") message = JSON.stringify(message); + if (typeof(message) != 'string') message = JSON.stringify(message); const text = `[${created_at.replace('T', ' ')}] - ${error_type}: ${message.replace(/\n$/, '')}`; const options = { exit: false, hideTimestamp: true }; @@ -97,25 +96,25 @@ program title: error_type, message: message.slice(0, 100), icon: path.resolve(__dirname, '../lib/pos-logo.png'), - 'app-name': 'pos-cli', + 'app-name': 'pos-cli' }); logger.Info(text, options); } else { logger.Info(text, options); - if (!program.quiet && data) { - let parts = []; - if (data.url) { - const requestUrl = new URL(`https://${data.url}`); - let line = `path: ${requestUrl.pathname}`; - if (requestUrl.search) line += `${requestUrl.search}`; - parts.push(line); + if (!program.quiet && data) { + let parts = []; + if (data.url) { + const requestUrl = new URL(`https://${data.url}`); + let line = `path: ${requestUrl.pathname}`; + if (requestUrl.search) line += `${requestUrl.search}`; + parts.push(line); + } + if (data.page) parts.push(`page: ${data.page}`); + if (data.partial) parts.push(`partial: ${data.partial}`); + if (data.user && data.user.email) parts.push(`email: ${data.user.email}`); + if (parts.length > 0) logger.Info(parts.join(' '), options); } - if (data.page) parts.push(`page: ${data.page}`); - if (data.partial) parts.push(`partial: ${data.partial}`); - if (data.user && data.user.email) parts.push(`email: ${data.user.email}`); - if (parts.length > 0) logger.Info(parts.join(' '), options); - } } }); diff --git a/bin/pos-cli-logsv2-alerts-add.js b/bin/pos-cli-logsv2-alerts-add.js index 8ef202a7..0fce7607 100644 --- a/bin/pos-cli-logsv2-alerts-add.js +++ b/bin/pos-cli-logsv2-alerts-add.js @@ -10,25 +10,27 @@ program .option('--url ', 'post alarms to this url') .option('--name ', 'alert name') .option('--keyword ', 'alert keyword trigger') - .option('--operator ', 'operator', "Contains") - .option('--column ', 'column', "message") + .option('--operator ', 'operator', 'Contains') + .option('--column ', 'column', 'message') .option('--channel ') .option('--json', 'output as json') .action(async (environment, params) => { try { if (!params.channel) { - throw Error("--channel is required") + throw Error('--channel is required'); } const client = await SwaggerProxy.client(environment); - const response = await client.createAlert(params) + const response = await client.createAlert(params); if (!params.json) - console.log(response) + console.log(response); else - console.log(response) + console.log(response); - } catch(e) { logger.Error(e) } + } catch(e) { + logger.Error(e); + } }); program.parse(process.argv); diff --git a/bin/pos-cli-logsv2-alerts-list.js b/bin/pos-cli-logsv2-alerts-list.js index b4aa84b6..9f35b3bd 100644 --- a/bin/pos-cli-logsv2-alerts-list.js +++ b/bin/pos-cli-logsv2-alerts-list.js @@ -11,14 +11,15 @@ program .action(async (environment) => { try { const client = await SwaggerProxy.client(environment); - const response = await client.alerts(program) + const response = await client.alerts(program); if (!program.json) - console.log(response) + console.log(response); else - console.log(response) + console.log(response); + } catch(e) { + logger.Error(e); } - catch(e) { logger.Error(e) } - }) + }); program.parse(process.argv); diff --git a/bin/pos-cli-logsv2-alerts-trigger.js b/bin/pos-cli-logsv2-alerts-trigger.js index 5851b323..7558e8aa 100644 --- a/bin/pos-cli-logsv2-alerts-trigger.js +++ b/bin/pos-cli-logsv2-alerts-trigger.js @@ -12,14 +12,16 @@ program .action(async (environment, params) => { try { const client = await SwaggerProxy.client(environment); - const response = await client.triggerAlert(params) + const response = await client.triggerAlert(params); if (!params.json) - console.log(response) + console.log(response); else - console.log(response) + console.log(response); - } catch(e) { logger.Error(e) } + } catch(e) { + logger.Error(e); + } }); program.parse(process.argv); diff --git a/bin/pos-cli-logsv2-reports.js b/bin/pos-cli-logsv2-reports.js index 67f65b71..ccee3122 100644 --- a/bin/pos-cli-logsv2-reports.js +++ b/bin/pos-cli-logsv2-reports.js @@ -7,7 +7,6 @@ import { search } from '../lib/swagger-client.js'; import path from 'path'; import { fileURLToPath } from 'url'; import fs from 'fs'; -import ServerError from '../lib/ServerError.js'; const __filename = fileURLToPath(import.meta.url); const __dirname = path.dirname(__filename); @@ -27,12 +26,12 @@ program const client = await SwaggerProxy.client(environment); const report = JSON.parse(fs.readFileSync(path.join(__dirname, `../lib/reports/${program.report}.json`))); - const response = await client.searchSQLByQuery(report) + const response = await client.searchSQLByQuery(report); if (!program.json) - search.printReport(response, report) + search.printReport(response, report); else - console.log(JSON.stringify(response)) + console.log(JSON.stringify(response)); } catch(e) { logger.Error(e); diff --git a/bin/pos-cli-logsv2-search.js b/bin/pos-cli-logsv2-search.js index 525fd550..125f1aad 100755 --- a/bin/pos-cli-logsv2-search.js +++ b/bin/pos-cli-logsv2-search.js @@ -3,7 +3,6 @@ import { program } from 'commander'; import logger from '../lib/logger.js'; import { SwaggerProxy, search } from '../lib/swagger-client.js'; -import ServerError from '../lib/ServerError.js'; program .name('pos-cli logsv2 search') @@ -17,12 +16,12 @@ program .action(async (environment, program) => { try { const client = await SwaggerProxy.client(environment); - const response = await client.searchSQL(program) + const response = await client.searchSQL(program); if (!program.json) - search.printLogs(response) + search.printLogs(response); else - console.log(response) + console.log(response); } catch(e) { logger.Error(e); diff --git a/bin/pos-cli-logsv2-searchAround.js b/bin/pos-cli-logsv2-searchAround.js index bd9cc293..79be9a0f 100644 --- a/bin/pos-cli-logsv2-searchAround.js +++ b/bin/pos-cli-logsv2-searchAround.js @@ -14,12 +14,12 @@ program .action(async (environment, params) => { try { const client = await SwaggerProxy.client(environment); - const response = await client.searchAround(params) + const response = await client.searchAround(params); if (!params.json) - search.printLogs(response, params.key) + search.printLogs(response, params.key); else - console.log(response) + console.log(response); } catch(e) { logger.Error(e); diff --git a/bin/pos-cli-modules-download.js b/bin/pos-cli-modules-download.js index d15954e0..a06825ff 100755 --- a/bin/pos-cli-modules-download.js +++ b/bin/pos-cli-modules-download.js @@ -8,7 +8,6 @@ import { unzip } from '../lib/unzip.js'; import Portal from '../lib/portal.js'; import fs from 'fs'; import path from 'path'; -import ora from 'ora'; const downloadModule = async (module, lockData) => { const filename = 'modules.zip'; @@ -25,7 +24,7 @@ const downloadModule = async (module, lockData) => { logger.Info(`Searching for ${module}...`); const moduleVersion = await Portal.moduleVersionsSearch(module); - const modulePath = `${process.cwd()}/modules/${module.split('@')[0]}` + const modulePath = `${process.cwd()}/modules/${module.split('@')[0]}`; logger.Info(`Downloading ${module}...`); await downloadFile(moduleVersion['public_archive'], filename); logger.Info(`Cleaning ${modulePath}...`); @@ -40,7 +39,7 @@ const downloadModule = async (module, lockData) => { throw `${module}: ${error.message}`; } } -} +}; program .name('pos-cli modules download') @@ -55,12 +54,12 @@ program if (fs.existsSync(lockFilePath)) { lockData = JSON.parse(fs.readFileSync(lockFilePath, 'utf-8'))['modules']; } else { - logger.Warn(`Warning: Can't find app/pos-modules.lock.json`); + logger.Warn('Warning: Can\'t find app/pos-modules.lock.json'); } try { await downloadModule(module, lockData); - logger.Info("Resolving dependencies..."); + logger.Info('Resolving dependencies...'); const templateValuesPath = path.join('modules', module.split('@')[0], 'template-values.json'); if (fs.existsSync(templateValuesPath)) { const templateValuesContent = fs.readFileSync(templateValuesPath, 'utf-8'); diff --git a/bin/pos-cli-modules-install.js b/bin/pos-cli-modules-install.js index 9e3a9faa..211900fe 100755 --- a/bin/pos-cli-modules-install.js +++ b/bin/pos-cli-modules-install.js @@ -58,9 +58,8 @@ program spinner.stopAndPersist(); spinner.fail(e.message); } - } - catch(error) { - logger.Error(`Aborting - ${posConfigDirectory} directory has not been created.`) + } catch { + logger.Error(`Aborting - ${posConfigDirectory} directory has not been created.`); } }); diff --git a/bin/pos-cli-modules-pull.js b/bin/pos-cli-modules-pull.js index 69ce482b..5ec8ad16 100755 --- a/bin/pos-cli-modules-pull.js +++ b/bin/pos-cli-modules-pull.js @@ -9,31 +9,31 @@ import waitForStatus from '../lib/data/waitForStatus.js'; import ora from 'ora'; program -.name('pos-cli modules pull') -.arguments('[environment]', 'name of the environment. Example: staging') -.arguments('[module]', 'module name to pull') -.action(async (environment, module, params) => { + .name('pos-cli modules pull') + .arguments('[environment]', 'name of the environment. Example: staging') + .arguments('[module]', 'module name to pull') + .action(async (environment, module, _params) => { - const spinner = ora({ text: 'Exporting', stream: process.stdout }); + const spinner = ora({ text: 'Exporting', stream: process.stdout }); - const filename = 'modules.zip'; - spinner.start(); - const authData = fetchSettings(environment, program); - const gateway = new Gateway(authData); - gateway - .appExportStart({ module_name: module }) - .then(exportTask => waitForStatus(() => gateway.appExportStatus(exportTask.id), 'ready_for_export', 'success')) - .then(exportTask => downloadFile(exportTask.zip_file.url, filename)) - .then(() => spinner.succeed('Downloading files')) - .catch({ statusCode: 404 }, () => { - spinner.fail(`Pulling ${module} failed.`); - logger.Error('[404] Zip file with module files not found'); - }) - .catch(e => { - spinner.fail(`Pulling ${module} failed.`); - logger.Error(e.message || e.error.error || e.error); - }); + const filename = 'modules.zip'; + spinner.start(); + const authData = fetchSettings(environment, program); + const gateway = new Gateway(authData); + gateway + .appExportStart({ module_name: module }) + .then(exportTask => waitForStatus(() => gateway.appExportStatus(exportTask.id), 'ready_for_export', 'success')) + .then(exportTask => downloadFile(exportTask.zip_file.url, filename)) + .then(() => spinner.succeed('Downloading files')) + .catch({ statusCode: 404 }, () => { + spinner.fail(`Pulling ${module} failed.`); + logger.Error('[404] Zip file with module files not found'); + }) + .catch(e => { + spinner.fail(`Pulling ${module} failed.`); + logger.Error(e.message || e.error.error || e.error); + }); -}); + }); program.parse(process.argv); diff --git a/bin/pos-cli-modules-push.js b/bin/pos-cli-modules-push.js index 873b9890..dcbd2546 100644 --- a/bin/pos-cli-modules-push.js +++ b/bin/pos-cli-modules-push.js @@ -18,8 +18,9 @@ program if (params.path) process.chdir(params.path); checkParams(params); await publishVersion(params); + } catch(e) { + console.log(e); } - catch(e) { console.log(e) } }); program.showHelpAfterError(); diff --git a/bin/pos-cli-modules-update.js b/bin/pos-cli-modules-update.js index 1a4b4a33..ed2f8ccc 100755 --- a/bin/pos-cli-modules-update.js +++ b/bin/pos-cli-modules-update.js @@ -53,9 +53,8 @@ program spinner.stopAndPersist(); logger.Error(e.message); } - } - catch(error) { - logger.Error(`Aborting - ${posConfigDirectory} directory has not been created.`) + } catch { + logger.Error(`Aborting - ${posConfigDirectory} directory has not been created.`); } }); diff --git a/bin/pos-cli-modules-version.js b/bin/pos-cli-modules-version.js index d46e772b..719ddab3 100644 --- a/bin/pos-cli-modules-version.js +++ b/bin/pos-cli-modules-version.js @@ -3,14 +3,13 @@ import { program } from 'commander'; import semver from 'semver'; -import dir from '../lib/directories.js'; import files from '../lib/files.js'; import logger from '../lib/logger.js'; import report from '../lib/logger/report.js'; import { moduleConfig, moduleConfigFilePath } from '../lib/modules.js'; -const readVersionFromPackage = (options, version) => { - let packageJSONPath = `package.json`; +const readVersionFromPackage = (options) => { + let packageJSONPath = 'package.json'; if (typeof options.package === 'string') { packageJSONPath = `${options.package}`; } @@ -28,12 +27,12 @@ const validateVersions = (config, version, moduleName) => { if (!semver.valid(config.version)) { report('[ERR] The current version is not valid'); logger.Error(`The "${moduleName}" module's version ("${config.version}") is not valid`); - return + return; } if (!semver.valid(version)) { report('[ERR] The given version is not valid'); logger.Error(`The "${moduleName}" module's new version ("${version}") is not valid`); - return + return; } return true; diff --git a/bin/pos-cli-modules.js b/bin/pos-cli-modules.js index b71f078f..7f53ff07 100755 --- a/bin/pos-cli-modules.js +++ b/bin/pos-cli-modules.js @@ -1,7 +1,6 @@ #!/usr/bin/env node import { program } from 'commander'; -import logger from '../lib/logger.js'; program.showHelpAfterError(); program diff --git a/bin/pos-cli.js b/bin/pos-cli.js index dc17f686..bbf24d80 100755 --- a/bin/pos-cli.js +++ b/bin/pos-cli.js @@ -2,17 +2,16 @@ import { program } from 'commander'; import updateNotifier from 'update-notifier'; -import pkg from '../package.json' with { type: "json" }; -import logger from '../lib/logger.js'; +import pkg from '../package.json' with { type: 'json' }; const version = pkg.version; updateNotifier({ pkg: pkg - }).notify({ +}).notify({ defer: true, isGlobal: true - }); +}); program.showHelpAfterError(); program diff --git a/eslint.config.js b/eslint.config.js new file mode 100644 index 00000000..693ed68b --- /dev/null +++ b/eslint.config.js @@ -0,0 +1,152 @@ +import js from '@eslint/js'; + +export default [ + { + ignores: [ + 'node_modules/**', + 'gui/*/node_modules/**', + 'gui/*/dist/**', + 'gui/*/build/**', + 'coverage/**', + '*.min.js', + // Generated/vendor files + 'gui/graphql/public/**', + 'gui/admin/dist/**', + 'gui/next/static/prism.js' + ] + }, + js.configs.recommended, + { + files: ['**/*.test.js', '**/*.spec.js', 'test/**/*.js'], + languageOptions: { + ecmaVersion: 'latest', + sourceType: 'module', + globals: { + describe: 'readonly', + test: 'readonly', + it: 'readonly', + expect: 'readonly', + vi: 'readonly', + beforeAll: 'readonly', + afterAll: 'readonly', + beforeEach: 'readonly', + afterEach: 'readonly', + fixture: 'readonly' + } + }, + rules: { + 'no-undef': 'off', + 'no-unused-vars': ['warn', { argsIgnorePattern: '^_', varsIgnorePattern: '^_' }] + } + }, + { + files: ['**/*.js', '!**/*.test.js', '!**/*.spec.js', '!test/**/*.js', '!gui/**'], + languageOptions: { + ecmaVersion: 'latest', + sourceType: 'module', + globals: { + process: 'readonly', + console: 'readonly', + setTimeout: 'readonly', + setInterval: 'readonly', + clearTimeout: 'readonly', + clearInterval: 'readonly', + Buffer: 'readonly', + __dirname: 'readonly', + __filename: 'readonly', + global: 'readonly', + require: 'readonly', + URL: 'readonly', + module: 'readonly', + program: 'readonly', + token: 'readonly', + gateway: 'readonly', + FormData: 'readonly', + Blob: 'readonly', + fetch: 'readonly', + URLSearchParams: 'readonly', + query: 'readonly' + } + }, + rules: { + 'no-unused-vars': ['warn', { argsIgnorePattern: '^_', varsIgnorePattern: '^_' }], + 'no-global-assign': 'off' + } + }, + { + files: ['gui/**'], + rules: { + 'no-console': 'off', + 'no-magic-numbers': 'off', + 'no-underscore-dangle': 'off', + 'no-undef': 'off', + 'no-unused-vars': 'warn', + 'comma-dangle': ['warn', 'never'], + 'quotes': ['warn', 'single', { avoidEscape: true }], + 'semi': ['warn', 'always'], + 'indent': ['warn', 2, { SwitchCase: 1 }], + 'brace-style': ['warn', '1tbs'], + 'padded-blocks': 'off', + 'spaced-comment': 'off', + 'quote-props': 'off', + 'prefer-arrow-callback': 'off', + 'space-before-function-paren': 'off', + 'no-new': 'off', + 'func-names': 'off', + 'new-cap': 'off', + 'arrow-body-style': 'off', + 'class-methods-use-this': 'off', + 'consistent-return': 'off', + 'max-len': 'off', + 'no-empty': 'off', + 'no-prototype-builtins': 'off', + 'no-useless-escape': 'off', + 'no-func-assign': 'off', + 'no-fallthrough': 'off', + 'no-case-declarations': 'off', + 'no-global-assign': 'off', + 'no-cond-assign': 'off', + 'getter-return': 'off', + 'valid-typeof': 'off', + 'no-control-regex': 'off', + 'no-constant-condition': 'off', + 'no-misleading-character-class': 'off', + 'no-async-promise-executor': 'off', + 'no-constant-binary-expression': 'off', + 'no-useless-catch': 'off', + 'no-unreachable': 'off' + } + }, + { + rules: { + 'no-console': 'off', + 'no-magic-numbers': 'off', + 'no-underscore-dangle': 'off', + 'comma-dangle': ['error', 'never'], + 'quotes': ['error', 'single', { avoidEscape: true }], + 'semi': ['error', 'always'], + 'indent': ['error', 2, { SwitchCase: 1 }], + 'brace-style': ['error', '1tbs'], + 'padded-blocks': 'off', + 'spaced-comment': ['warn', 'always'], + 'quote-props': 'off', + 'prefer-arrow-callback': 'off', + 'space-before-function-paren': 'off', + 'no-new': 'off', + 'func-names': 'off', + 'new-cap': 'off', + 'arrow-body-style': 'off', + 'class-methods-use-this': 'off', + 'consistent-return': 'off', + 'max-len': ['warn', { code: 140, ignoreUrls: true, ignoreStrings: true, ignoreTemplateLiterals: true }], + 'no-empty': 'warn', + 'no-prototype-builtins': 'off', + 'no-useless-escape': 'warn', + 'no-async-promise-executor': 'warn', + 'no-constant-binary-expression': 'warn', + 'no-useless-catch': 'warn', + 'no-unreachable': 'warn', + 'no-global-assign': 'off' + } + } +]; diff --git a/gui/admin/rollup.config.js b/gui/admin/rollup.config.js index 0c1937e1..4683e65f 100644 --- a/gui/admin/rollup.config.js +++ b/gui/admin/rollup.config.js @@ -5,7 +5,7 @@ import alias from '@rollup/plugin-alias'; import livereload from 'rollup-plugin-livereload'; import copy from 'rollup-plugin-copy'; import postcss from 'rollup-plugin-postcss'; -import esbuild from 'rollup-plugin-esbuild' +import esbuild from 'rollup-plugin-esbuild'; import path from 'path'; import del from 'del'; @@ -23,12 +23,12 @@ function createConfig({ output, inlineDynamicImports, plugins = [] }) { return { inlineDynamicImports, - input: `src/main.js`, + input: 'src/main.js', output: { name: 'app', assetFileNames: '[name].[extname]', chunkFileNames: '[name].js', - ...output, + ...output }, plugins: [ postcss({ @@ -37,42 +37,42 @@ function createConfig({ output, inlineDynamicImports, plugins = [] }) { require('postcss-import')(), require('autoprefixer')(), require('tailwindcss')() - ], + ] }), alias({ - entries: [{ find: '@', replacement: path.resolve('src') }], + entries: [{ find: '@', replacement: path.resolve('src') }] }), copy({ targets: [ { src: [staticDir + '/*', '!*/(__index.html)'], dest: distDir }, - { src: `${staticDir}/__index.html`, dest: distDir, rename: '__app.html', transform }, + { src: `${staticDir}/__index.html`, dest: distDir, rename: '__app.html', transform } ], copyOnce: true, - flatten: false, + flatten: false }), svelte({ dev: !production, - hydratable: true, + hydratable: true }), resolve({ browser: true, - dedupe: (importee) => importee === 'svelte' || importee.startsWith('svelte/'), + dedupe: (importee) => importee === 'svelte' || importee.startsWith('svelte/') }), commonjs(), esbuild({ include: /\.js?$/, // default, inferred from `loaders` option - minify: process.env.NODE_ENV === 'production', + minify: process.env.NODE_ENV === 'production' }), - ...plugins, + ...plugins ], watch: { - clearScreen: false, - }, + clearScreen: false + } }; } @@ -80,18 +80,18 @@ const bundledConfig = { inlineDynamicImports: true, output: { format: 'iife', - file: `${buildDir}/bundle.js`, + file: `${buildDir}/bundle.js` }, - plugins: [!production && serve(), !production && livereload(distDir)], + plugins: [!production && serve(), !production && livereload(distDir)] }; const dynamicConfig = { inlineDynamicImports: false, output: { format: 'esm', - dir: buildDir, + dir: buildDir }, - plugins: [!production && livereload(distDir)], + plugins: [!production && livereload(distDir)] }; const configs = [createConfig(bundledConfig)]; @@ -107,10 +107,10 @@ function serve() { started = true; require('child_process').spawn('npm', ['run', 'serve'], { stdio: ['ignore', 'inherit', 'inherit'], - shell: true, + shell: true }); } - }, + } }; } @@ -120,23 +120,23 @@ function prerender() { if (shouldPrerender) { require('child_process').spawn('npm', ['run', 'export'], { stdio: ['ignore', 'inherit', 'inherit'], - shell: true, + shell: true }); } - }, + } }; } function bundledTransform(contents) { return contents.toString().replace( '__SCRIPT__', - `` + '' ); } function dynamicTransform(contents) { return contents.toString().replace( '__SCRIPT__', - `` + '' ); } diff --git a/gui/admin/src/lib/_typemap.js b/gui/admin/src/lib/_typemap.js index 1da02a8e..9b0a842a 100644 --- a/gui/admin/src/lib/_typemap.js +++ b/gui/admin/src/lib/_typemap.js @@ -7,5 +7,5 @@ export default { integer: 'value_int', string: 'value', text: 'value', - upload: 'value', + upload: 'value' }; \ No newline at end of file diff --git a/gui/admin/src/lib/api.js b/gui/admin/src/lib/api.js index 26503e50..5edff15b 100644 --- a/gui/admin/src/lib/api.js +++ b/gui/admin/src/lib/api.js @@ -1,12 +1,10 @@ -import { NotificationDisplay, notifier } from '@beyonk/svelte-notifications'; +import { notifier } from '@beyonk/svelte-notifications'; import { get } from 'svelte/store'; import filtersStore from '../pages/Models/Manage/_filters-store'; import pageStore from '../pages/Models/Manage/_page-store'; import typeMap from './_typemap'; -let timeout = 5000; - const getPropsString = (props) => { return Object.keys(props) .map((prop) => { @@ -30,11 +28,11 @@ const getPropertiesFilter = (f) => { return filterString; }; -const graph = (body, successMessage = "Success") => { +const graph = (body, successMessage = 'Success') => { return fetch(`http://localhost:${parseInt(window.location.port)-1}/api/graph`, { headers: { 'Content-Type': 'application/json' }, method: 'POST', - body: JSON.stringify(body), + body: JSON.stringify(body) }) .then((res) => res.json()) .then((res) => { @@ -48,7 +46,7 @@ const graph = (body, successMessage = "Success") => { } return res && res.data; - }) + }); }; export default { @@ -80,7 +78,7 @@ export default { propertyFilter = getPropertiesFilter(f); } - const deletedFilter = deleted ? `deleted_at: { exists: true }` : ''; + const deletedFilter = deleted ? 'deleted_at: { exists: true }' : ''; const idFilter = id ? `id: { value: ${id} }` : ''; const schemaIdFilter = schemaId ? `model_schema_id: { value: ${schemaId} }` : ''; const query = `query { @@ -167,7 +165,7 @@ export default { return graph({ query }); }, - getUsers(email = "", fn = "", ln = "") { + getUsers(email = '', fn = '', ln = '') { const query = `query getUsers { users(per_page: 20, page: 1, @@ -212,7 +210,7 @@ export default { } }`; - return graph({ query }, "Constant updated"); + return graph({ query }, 'Constant updated'); }, unsetConstant(name) { const query = `mutation { @@ -221,6 +219,6 @@ export default { } }`; - return graph({ query }, "Constant unset"); + return graph({ query }, 'Constant unset'); } }; diff --git a/gui/admin/src/main.js b/gui/admin/src/main.js index 3ef40d43..14a0e9c4 100644 --- a/gui/admin/src/main.js +++ b/gui/admin/src/main.js @@ -1,8 +1,8 @@ import './css/main.css'; -import HMR from '@sveltech/routify/hmr' +import HMR from '@sveltech/routify/hmr'; import App from './App.svelte'; -const app = HMR(App, { target: document.body }, 'routify-app') +const app = HMR(App, { target: document.body }, 'routify-app'); export default app; diff --git a/gui/admin/src/pages/Constants/fetchConstants.js b/gui/admin/src/pages/Constants/fetchConstants.js index be5b06a5..0e33c4d8 100644 --- a/gui/admin/src/pages/Constants/fetchConstants.js +++ b/gui/admin/src/pages/Constants/fetchConstants.js @@ -1,5 +1,5 @@ -import api from "@/lib/api"; -import { constants } from "./store.js"; +import api from '@/lib/api'; +import { constants } from './store.js'; export default function fetchConstants() { api diff --git a/gui/admin/src/pages/Logs/fetchLogs.js b/gui/admin/src/pages/Logs/fetchLogs.js index a1c4104b..04875666 100644 --- a/gui/admin/src/pages/Logs/fetchLogs.js +++ b/gui/admin/src/pages/Logs/fetchLogs.js @@ -5,7 +5,7 @@ const isBrowserTabFocused = () => !document.hidden; const scrollToBottom = () => { setTimeout(() => document.querySelector('footer').scrollIntoView(), 200); -} +}; export default function () { // Make sure first load is always done (middle button click) by checking for cachedLastId @@ -28,12 +28,12 @@ export default function () { class LogEntry { constructor(data) { - this.id = data.id || "missing" - this.message = data.message || "missing" - this.error_type = data.error_type || "missing" - this.data = data.data || {} - this.updated_at = data.updated_at || new Date() + this.id = data.id || 'missing'; + this.message = data.message || 'missing'; + this.error_type = data.error_type || 'missing'; + this.data = data.data || {}; + this.updated_at = data.updated_at || new Date(); - this.isHighlighted = !!this.error_type.match(/error/i) + this.isHighlighted = !!this.error_type.match(/error/i); } } diff --git a/gui/admin/src/pages/Models/Manage/_models-store.js b/gui/admin/src/pages/Models/Manage/_models-store.js index 59d86111..62f51a1e 100644 --- a/gui/admin/src/pages/Models/Manage/_models-store.js +++ b/gui/admin/src/pages/Models/Manage/_models-store.js @@ -1,6 +1,5 @@ -import { onMount } from "svelte"; import { writable } from 'svelte/store'; -import api from "@/lib/api"; +import api from '@/lib/api'; const createStore = () => { const { subscribe, set, update } = writable([]); diff --git a/gui/admin/src/pages/Models/Manage/_page-store.js b/gui/admin/src/pages/Models/Manage/_page-store.js index 7f0b9d31..09f550df 100644 --- a/gui/admin/src/pages/Models/Manage/_page-store.js +++ b/gui/admin/src/pages/Models/Manage/_page-store.js @@ -13,7 +13,7 @@ const createStore = () => { }); }, setSchemaId: id => { - update(s => ({ ...s, schemaId: id })) + update(s => ({ ...s, schemaId: id })); }, reset: () => update(s => ({ ...s, page: 1 })), increment: () => { diff --git a/gui/admin/tailwind.config.cjs b/gui/admin/tailwind.config.cjs index fbb2e866..695aab50 100644 --- a/gui/admin/tailwind.config.cjs +++ b/gui/admin/tailwind.config.cjs @@ -2,19 +2,19 @@ module.exports = { mode: 'JIT', purge: { content: [ - './src/**/*.svelte', - ], + './src/**/*.svelte' + ] }, theme: { screens: { 'md': '1024px', 'lg': '1280px', - 'xl': '1400px', + 'xl': '1400px' }, container: { center: true, padding: '0' - }, + } }, plugins: [require('@tailwindcss/custom-forms')] }; diff --git a/gui/admin/tests/Models.js b/gui/admin/tests/Models.js index 195bfa13..c58cee30 100644 --- a/gui/admin/tests/Models.js +++ b/gui/admin/tests/Models.js @@ -2,7 +2,7 @@ import { Selector } from 'testcafe'; import faker from 'faker'; fixture('Models') - .page(`http://localhost:3333/Models`) + .page('http://localhost:3333/Models') .beforeEach(async (t) => { await t.click(Selector('h1').withText('feedback')); }); diff --git a/gui/admin/tests/Schemas.js b/gui/admin/tests/Schemas.js index 89fc7bd4..9352d58b 100644 --- a/gui/admin/tests/Schemas.js +++ b/gui/admin/tests/Schemas.js @@ -1,13 +1,13 @@ import { Selector } from 'testcafe'; -fixture('Schemas').page(`http://localhost:3333/Models`); +fixture('Schemas').page('http://localhost:3333/Models'); test('Lists all schemas', async t => { - await t.expect(Selector('h1').withText('contact_request').exists).ok() - await t.expect(Selector('h1').withText('feedback').exists).ok() + await t.expect(Selector('h1').withText('contact_request').exists).ok(); + await t.expect(Selector('h1').withText('feedback').exists).ok(); }); test('Lists all schemas properties', async t => { - await t.expect(Selector('p').withText('company (string)').exists).ok() - await t.expect(Selector('p').withText('rate (integer)').exists).ok() + await t.expect(Selector('p').withText('company (string)').exists).ok(); + await t.expect(Selector('p').withText('rate (integer)').exists).ok(); }); \ No newline at end of file diff --git a/gui/graphql/public/main.js b/gui/graphql/public/main.js index caae7a4a..6358b8a1 100644 --- a/gui/graphql/public/main.js +++ b/gui/graphql/public/main.js @@ -1,42 +1,3238 @@ -var X$=Object.create;var sS=Object.defineProperty;var Z$=Object.getOwnPropertyDescriptor;var J$=Object.getOwnPropertyNames;var _$=Object.getPrototypeOf,$$=Object.prototype.hasOwnProperty;var at=(e,t)=>()=>(e&&(t=e(e=0)),t);var X=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),Ui=(e,t)=>{for(var r in t)sS(e,r,{get:t[r],enumerable:!0})},eee=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of J$(t))!$$.call(e,i)&&i!==r&&sS(e,i,{get:()=>t[i],enumerable:!(n=Z$(t,i))||n.enumerable});return e};var fe=(e,t,r)=>(r=e!=null?X$(_$(e)):{},eee(t||!e||!e.__esModule?sS(r,"default",{value:e,enumerable:!0}):r,e));var z3=X(Ot=>{"use strict";var Uh=Symbol.for("react.element"),tee=Symbol.for("react.portal"),ree=Symbol.for("react.fragment"),nee=Symbol.for("react.strict_mode"),iee=Symbol.for("react.profiler"),oee=Symbol.for("react.provider"),aee=Symbol.for("react.context"),see=Symbol.for("react.forward_ref"),lee=Symbol.for("react.suspense"),uee=Symbol.for("react.memo"),cee=Symbol.for("react.lazy"),R3=Symbol.iterator;function fee(e){return e===null||typeof e!="object"?null:(e=R3&&e[R3]||e["@@iterator"],typeof e=="function"?e:null)}var F3={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},q3=Object.assign,j3={};function Pd(e,t,r){this.props=e,this.context=t,this.refs=j3,this.updater=r||F3}Pd.prototype.isReactComponent={};Pd.prototype.setState=function(e,t){if(typeof e!="object"&&typeof e!="function"&&e!=null)throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,e,t,"setState")};Pd.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")};function V3(){}V3.prototype=Pd.prototype;function uS(e,t,r){this.props=e,this.context=t,this.refs=j3,this.updater=r||F3}var cS=uS.prototype=new V3;cS.constructor=uS;q3(cS,Pd.prototype);cS.isPureReactComponent=!0;var M3=Array.isArray,U3=Object.prototype.hasOwnProperty,fS={current:null},B3={key:!0,ref:!0,__self:!0,__source:!0};function G3(e,t,r){var n,i={},o=null,s=null;if(t!=null)for(n in t.ref!==void 0&&(s=t.ref),t.key!==void 0&&(o=""+t.key),t)U3.call(t,n)&&!B3.hasOwnProperty(n)&&(i[n]=t[n]);var l=arguments.length-2;if(l===1)i.children=r;else if(1{"use strict";H3.exports=z3()});var W3=X(eb=>{"use strict";var vee=Ee(),gee=Symbol.for("react.element"),yee=Symbol.for("react.fragment"),bee=Object.prototype.hasOwnProperty,Aee=vee.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,xee={key:!0,ref:!0,__self:!0,__source:!0};function Q3(e,t,r){var n,i={},o=null,s=null;r!==void 0&&(o=""+r),t.key!==void 0&&(o=""+t.key),t.ref!==void 0&&(s=t.ref);for(n in t)bee.call(t,n)&&!xee.hasOwnProperty(n)&&(i[n]=t[n]);if(e&&e.defaultProps)for(n in t=e.defaultProps,t)i[n]===void 0&&(i[n]=t[n]);return{$$typeof:gee,type:e,key:o,ref:s,props:i,_owner:Aee.current}}eb.Fragment=yee;eb.jsx=Q3;eb.jsxs=Q3});var K3=X(($Te,Y3)=>{"use strict";Y3.exports=W3()});var Z3=X(Rd=>{"use strict";Object.defineProperty(Rd,"__esModule",{value:!0});Rd.versionInfo=Rd.version=void 0;var wee="15.8.0";Rd.version=wee;var Eee=Object.freeze({major:15,minor:8,patch:0,preReleaseTag:null});Rd.versionInfo=Eee});var tb=X(pS=>{"use strict";Object.defineProperty(pS,"__esModule",{value:!0});pS.default=Tee;function Tee(e){return typeof e?.then=="function"}});var es=X(mS=>{"use strict";Object.defineProperty(mS,"__esModule",{value:!0});mS.default=Cee;function rb(e){"@babel/helpers - typeof";return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?rb=function(r){return typeof r}:rb=function(r){return r&&typeof Symbol=="function"&&r.constructor===Symbol&&r!==Symbol.prototype?"symbol":typeof r},rb(e)}function Cee(e){return rb(e)=="object"&&e!==null}});var ts=X(Zl=>{"use strict";Object.defineProperty(Zl,"__esModule",{value:!0});Zl.SYMBOL_TO_STRING_TAG=Zl.SYMBOL_ASYNC_ITERATOR=Zl.SYMBOL_ITERATOR=void 0;var See=typeof Symbol=="function"&&Symbol.iterator!=null?Symbol.iterator:"@@iterator";Zl.SYMBOL_ITERATOR=See;var kee=typeof Symbol=="function"&&Symbol.asyncIterator!=null?Symbol.asyncIterator:"@@asyncIterator";Zl.SYMBOL_ASYNC_ITERATOR=kee;var Oee=typeof Symbol=="function"&&Symbol.toStringTag!=null?Symbol.toStringTag:"@@toStringTag";Zl.SYMBOL_TO_STRING_TAG=Oee});var nb=X(hS=>{"use strict";Object.defineProperty(hS,"__esModule",{value:!0});hS.getLocation=Nee;function Nee(e,t){for(var r=/\r\n|[\n\r]/g,n=1,i=t+1,o;(o=r.exec(e.body))&&o.index{"use strict";Object.defineProperty(ob,"__esModule",{value:!0});ob.printLocation=Lee;ob.printSourceLocation=_3;var Dee=nb();function Lee(e){return _3(e.source,(0,Dee.getLocation)(e.source,e.start))}function _3(e,t){var r=e.locationOffset.column-1,n=ib(r)+e.body,i=t.line-1,o=e.locationOffset.line-1,s=t.line+o,l=t.line===1?r:0,c=t.column+l,f="".concat(e.name,":").concat(s,":").concat(c,` -`),m=n.split(/\r\n|[\n\r]/g),v=m[i];if(v.length>120){for(var g=Math.floor(c/80),y=c%80,w=[],T=0;T{"use strict";function ab(e){"@babel/helpers - typeof";return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?ab=function(r){return typeof r}:ab=function(r){return r&&typeof Symbol=="function"&&r.constructor===Symbol&&r!==Symbol.prototype?"symbol":typeof r},ab(e)}Object.defineProperty(Hh,"__esModule",{value:!0});Hh.printError=a5;Hh.GraphQLError=void 0;var Ree=Iee(es()),Mee=ts(),$3=nb(),e5=vS();function Iee(e){return e&&e.__esModule?e:{default:e}}function t5(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function Fee(e){for(var t=1;t"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],function(){})),!0}catch{return!1}}function Gee(e){return Function.toString.call(e).indexOf("[native code]")!==-1}function Gh(e,t){return Gh=Object.setPrototypeOf||function(n,i){return n.__proto__=i,n},Gh(e,t)}function zh(e){return zh=Object.setPrototypeOf?Object.getPrototypeOf:function(r){return r.__proto__||Object.getPrototypeOf(r)},zh(e)}var zee=function(e){Uee(r,e);var t=Bee(r);function r(n,i,o,s,l,c,f){var m,v,g,y;jee(this,r),y=t.call(this,n),y.name="GraphQLError",y.originalError=c??void 0,y.nodes=n5(Array.isArray(i)?i:i?[i]:void 0);for(var w=[],T=0,S=(A=y.nodes)!==null&&A!==void 0?A:[];T0},name:{enumerable:!1},nodes:{enumerable:!1},source:{enumerable:!1},positions:{enumerable:!1},originalError:{enumerable:!1}}),c!=null&&c.stack?(Object.defineProperty(Bh(y),"stack",{value:c.stack,writable:!0,configurable:!0}),i5(y)):(Error.captureStackTrace?Error.captureStackTrace(Bh(y),r):Object.defineProperty(Bh(y),"stack",{value:Error().stack,writable:!0,configurable:!0}),y)}return Vee(r,[{key:"toString",value:function(){return a5(this)}},{key:Mee.SYMBOL_TO_STRING_TAG,get:function(){return"Object"}}]),r}(gS(Error));Hh.GraphQLError=zee;function n5(e){return e===void 0||e.length===0?void 0:e}function a5(e){var t=e.message;if(e.nodes)for(var r=0,n=e.nodes;r()=>(e&&(t=e(e=0)),t);var X=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),Ui=(e,t)=>{ + for(var r in t)sS(e,r,{get:t[r],enumerable:!0}); + },eee=(e,t,r,n)=>{ + if(t&&typeof t=='object'||typeof t=='function')for(let i of J$(t))!$$.call(e,i)&&i!==r&&sS(e,i,{get:()=>t[i],enumerable:!(n=Z$(t,i))||n.enumerable});return e; + };var fe=(e,t,r)=>(r=e!=null?X$(_$(e)):{},eee(t||!e||!e.__esModule?sS(r,'default',{value:e,enumerable:!0}):r,e));var z3=X(Ot=>{ + 'use strict';var Uh=Symbol.for('react.element'),tee=Symbol.for('react.portal'),ree=Symbol.for('react.fragment'),nee=Symbol.for('react.strict_mode'),iee=Symbol.for('react.profiler'),oee=Symbol.for('react.provider'),aee=Symbol.for('react.context'),see=Symbol.for('react.forward_ref'),lee=Symbol.for('react.suspense'),uee=Symbol.for('react.memo'),cee=Symbol.for('react.lazy'),R3=Symbol.iterator;function fee(e){ + return e===null||typeof e!='object'?null:(e=R3&&e[R3]||e['@@iterator'],typeof e=='function'?e:null); + }var F3={isMounted:function(){ + return!1; + },enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},q3=Object.assign,j3={};function Pd(e,t,r){ + this.props=e,this.context=t,this.refs=j3,this.updater=r||F3; + }Pd.prototype.isReactComponent={};Pd.prototype.setState=function(e,t){ + if(typeof e!='object'&&typeof e!='function'&&e!=null)throw Error('setState(...): takes an object of state variables to update or a function which returns an object of state variables.');this.updater.enqueueSetState(this,e,t,'setState'); + };Pd.prototype.forceUpdate=function(e){ + this.updater.enqueueForceUpdate(this,e,'forceUpdate'); + };function V3(){}V3.prototype=Pd.prototype;function uS(e,t,r){ + this.props=e,this.context=t,this.refs=j3,this.updater=r||F3; + }var cS=uS.prototype=new V3;cS.constructor=uS;q3(cS,Pd.prototype);cS.isPureReactComponent=!0;var M3=Array.isArray,U3=Object.prototype.hasOwnProperty,fS={current:null},B3={key:!0,ref:!0,__self:!0,__source:!0};function G3(e,t,r){ + var n,i={},o=null,s=null;if(t!=null)for(n in t.ref!==void 0&&(s=t.ref),t.key!==void 0&&(o=''+t.key),t)U3.call(t,n)&&!B3.hasOwnProperty(n)&&(i[n]=t[n]);var l=arguments.length-2;if(l===1)i.children=r;else if(1{ + 'use strict';H3.exports=z3(); +});var W3=X(eb=>{ + 'use strict';var vee=Ee(),gee=Symbol.for('react.element'),yee=Symbol.for('react.fragment'),bee=Object.prototype.hasOwnProperty,Aee=vee.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,xee={key:!0,ref:!0,__self:!0,__source:!0};function Q3(e,t,r){ + var n,i={},o=null,s=null;r!==void 0&&(o=''+r),t.key!==void 0&&(o=''+t.key),t.ref!==void 0&&(s=t.ref);for(n in t)bee.call(t,n)&&!xee.hasOwnProperty(n)&&(i[n]=t[n]);if(e&&e.defaultProps)for(n in t=e.defaultProps,t)i[n]===void 0&&(i[n]=t[n]);return{$$typeof:gee,type:e,key:o,ref:s,props:i,_owner:Aee.current}; + }eb.Fragment=yee;eb.jsx=Q3;eb.jsxs=Q3; +});var K3=X(($Te,Y3)=>{ + 'use strict';Y3.exports=W3(); +});var Z3=X(Rd=>{ + 'use strict';Object.defineProperty(Rd,'__esModule',{value:!0});Rd.versionInfo=Rd.version=void 0;var wee='15.8.0';Rd.version=wee;var Eee=Object.freeze({major:15,minor:8,patch:0,preReleaseTag:null});Rd.versionInfo=Eee; +});var tb=X(pS=>{ + 'use strict';Object.defineProperty(pS,'__esModule',{value:!0});pS.default=Tee;function Tee(e){ + return typeof e?.then=='function'; + } +});var es=X(mS=>{ + 'use strict';Object.defineProperty(mS,'__esModule',{value:!0});mS.default=Cee;function rb(e){ + '@babel/helpers - typeof';return typeof Symbol=='function'&&typeof Symbol.iterator=='symbol'?rb=function(r){ + return typeof r; + }:rb=function(r){ + return r&&typeof Symbol=='function'&&r.constructor===Symbol&&r!==Symbol.prototype?'symbol':typeof r; + },rb(e); + }function Cee(e){ + return rb(e)=='object'&&e!==null; + } +});var ts=X(Zl=>{ + 'use strict';Object.defineProperty(Zl,'__esModule',{value:!0});Zl.SYMBOL_TO_STRING_TAG=Zl.SYMBOL_ASYNC_ITERATOR=Zl.SYMBOL_ITERATOR=void 0;var See=typeof Symbol=='function'&&Symbol.iterator!=null?Symbol.iterator:'@@iterator';Zl.SYMBOL_ITERATOR=See;var kee=typeof Symbol=='function'&&Symbol.asyncIterator!=null?Symbol.asyncIterator:'@@asyncIterator';Zl.SYMBOL_ASYNC_ITERATOR=kee;var Oee=typeof Symbol=='function'&&Symbol.toStringTag!=null?Symbol.toStringTag:'@@toStringTag';Zl.SYMBOL_TO_STRING_TAG=Oee; +});var nb=X(hS=>{ + 'use strict';Object.defineProperty(hS,'__esModule',{value:!0});hS.getLocation=Nee;function Nee(e,t){ + for(var r=/\r\n|[\n\r]/g,n=1,i=t+1,o;(o=r.exec(e.body))&&o.index{ + 'use strict';Object.defineProperty(ob,'__esModule',{value:!0});ob.printLocation=Lee;ob.printSourceLocation=_3;var Dee=nb();function Lee(e){ + return _3(e.source,(0,Dee.getLocation)(e.source,e.start)); + }function _3(e,t){ + var r=e.locationOffset.column-1,n=ib(r)+e.body,i=t.line-1,o=e.locationOffset.line-1,s=t.line+o,l=t.line===1?r:0,c=t.column+l,f=''.concat(e.name,':').concat(s,':').concat(c,` +`),m=n.split(/\r\n|[\n\r]/g),v=m[i];if(v.length>120){ + for(var g=Math.floor(c/80),y=c%80,w=[],T=0;T{ + 'use strict';function ab(e){ + '@babel/helpers - typeof';return typeof Symbol=='function'&&typeof Symbol.iterator=='symbol'?ab=function(r){ + return typeof r; + }:ab=function(r){ + return r&&typeof Symbol=='function'&&r.constructor===Symbol&&r!==Symbol.prototype?'symbol':typeof r; + },ab(e); + }Object.defineProperty(Hh,'__esModule',{value:!0});Hh.printError=a5;Hh.GraphQLError=void 0;var Ree=Iee(es()),Mee=ts(),$3=nb(),e5=vS();function Iee(e){ + return e&&e.__esModule?e:{default:e}; + }function t5(e,t){ + var r=Object.keys(e);if(Object.getOwnPropertySymbols){ + var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){ + return Object.getOwnPropertyDescriptor(e,i).enumerable; + })),r.push.apply(r,n); + }return r; + }function Fee(e){ + for(var t=1;t'u'||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=='function')return!0;try{ + return Date.prototype.toString.call(Reflect.construct(Date,[],function(){})),!0; + }catch{ + return!1; + } + }function Gee(e){ + return Function.toString.call(e).indexOf('[native code]')!==-1; + }function Gh(e,t){ + return Gh=Object.setPrototypeOf||function(n,i){ + return n.__proto__=i,n; + },Gh(e,t); + }function zh(e){ + return zh=Object.setPrototypeOf?Object.getPrototypeOf:function(r){ + return r.__proto__||Object.getPrototypeOf(r); + },zh(e); + }var zee=function(e){ + Uee(r,e);var t=Bee(r);function r(n,i,o,s,l,c,f){ + var m,v,g,y;jee(this,r),y=t.call(this,n),y.name='GraphQLError',y.originalError=c??void 0,y.nodes=n5(Array.isArray(i)?i:i?[i]:void 0);for(var w=[],T=0,S=(A=y.nodes)!==null&&A!==void 0?A:[];T0},name:{enumerable:!1},nodes:{enumerable:!1},source:{enumerable:!1},positions:{enumerable:!1},originalError:{enumerable:!1}}),c!=null&&c.stack?(Object.defineProperty(Bh(y),'stack',{value:c.stack,writable:!0,configurable:!0}),i5(y)):(Error.captureStackTrace?Error.captureStackTrace(Bh(y),r):Object.defineProperty(Bh(y),'stack',{value:Error().stack,writable:!0,configurable:!0}),y); + }return Vee(r,[{key:'toString',value:function(){ + return a5(this); + }},{key:Mee.SYMBOL_TO_STRING_TAG,get:function(){ + return'Object'; + }}]),r; + }(gS(Error));Hh.GraphQLError=zee;function n5(e){ + return e===void 0||e.length===0?void 0:e; + }function a5(e){ + var t=e.message;if(e.nodes)for(var r=0,n=e.nodes;r{"use strict";Object.defineProperty(yS,"__esModule",{value:!0});yS.syntaxError=Qee;var Hee=ft();function Qee(e,t,r){return new Hee.GraphQLError("Syntax Error: ".concat(r),void 0,e,[t])}});var tr=X(ub=>{"use strict";Object.defineProperty(ub,"__esModule",{value:!0});ub.Kind=void 0;var Wee=Object.freeze({NAME:"Name",DOCUMENT:"Document",OPERATION_DEFINITION:"OperationDefinition",VARIABLE_DEFINITION:"VariableDefinition",SELECTION_SET:"SelectionSet",FIELD:"Field",ARGUMENT:"Argument",FRAGMENT_SPREAD:"FragmentSpread",INLINE_FRAGMENT:"InlineFragment",FRAGMENT_DEFINITION:"FragmentDefinition",VARIABLE:"Variable",INT:"IntValue",FLOAT:"FloatValue",STRING:"StringValue",BOOLEAN:"BooleanValue",NULL:"NullValue",ENUM:"EnumValue",LIST:"ListValue",OBJECT:"ObjectValue",OBJECT_FIELD:"ObjectField",DIRECTIVE:"Directive",NAMED_TYPE:"NamedType",LIST_TYPE:"ListType",NON_NULL_TYPE:"NonNullType",SCHEMA_DEFINITION:"SchemaDefinition",OPERATION_TYPE_DEFINITION:"OperationTypeDefinition",SCALAR_TYPE_DEFINITION:"ScalarTypeDefinition",OBJECT_TYPE_DEFINITION:"ObjectTypeDefinition",FIELD_DEFINITION:"FieldDefinition",INPUT_VALUE_DEFINITION:"InputValueDefinition",INTERFACE_TYPE_DEFINITION:"InterfaceTypeDefinition",UNION_TYPE_DEFINITION:"UnionTypeDefinition",ENUM_TYPE_DEFINITION:"EnumTypeDefinition",ENUM_VALUE_DEFINITION:"EnumValueDefinition",INPUT_OBJECT_TYPE_DEFINITION:"InputObjectTypeDefinition",DIRECTIVE_DEFINITION:"DirectiveDefinition",SCHEMA_EXTENSION:"SchemaExtension",SCALAR_TYPE_EXTENSION:"ScalarTypeExtension",OBJECT_TYPE_EXTENSION:"ObjectTypeExtension",INTERFACE_TYPE_EXTENSION:"InterfaceTypeExtension",UNION_TYPE_EXTENSION:"UnionTypeExtension",ENUM_TYPE_EXTENSION:"EnumTypeExtension",INPUT_OBJECT_TYPE_EXTENSION:"InputObjectTypeExtension"});ub.Kind=Wee});var Gn=X(bS=>{"use strict";Object.defineProperty(bS,"__esModule",{value:!0});bS.default=Yee;function Yee(e,t){var r=!!e;if(!r)throw new Error(t??"Unexpected invariant triggered.")}});var AS=X(cb=>{"use strict";Object.defineProperty(cb,"__esModule",{value:!0});cb.default=void 0;var Kee=typeof Symbol=="function"&&typeof Symbol.for=="function"?Symbol.for("nodejs.util.inspect.custom"):void 0,Xee=Kee;cb.default=Xee});var fb=X(xS=>{"use strict";Object.defineProperty(xS,"__esModule",{value:!0});xS.default=Jee;var Zee=l5(Gn()),s5=l5(AS());function l5(e){return e&&e.__esModule?e:{default:e}}function Jee(e){var t=e.prototype.toJSON;typeof t=="function"||(0,Zee.default)(0),e.prototype.inspect=t,s5.default&&(e.prototype[s5.default]=t)}});var Md=X(kc=>{"use strict";Object.defineProperty(kc,"__esModule",{value:!0});kc.isNode=$ee;kc.Token=kc.Location=void 0;var u5=_ee(fb());function _ee(e){return e&&e.__esModule?e:{default:e}}var c5=function(){function e(r,n,i){this.start=r.start,this.end=n.end,this.startToken=r,this.endToken=n,this.source=i}var t=e.prototype;return t.toJSON=function(){return{start:this.start,end:this.end}},e}();kc.Location=c5;(0,u5.default)(c5);var f5=function(){function e(r,n,i,o,s,l,c){this.kind=r,this.start=n,this.end=i,this.line=o,this.column=s,this.value=c,this.prev=l,this.next=null}var t=e.prototype;return t.toJSON=function(){return{kind:this.kind,value:this.value,line:this.line,column:this.column}},e}();kc.Token=f5;(0,u5.default)(f5);function $ee(e){return e!=null&&typeof e.kind=="string"}});var Id=X(db=>{"use strict";Object.defineProperty(db,"__esModule",{value:!0});db.TokenKind=void 0;var ete=Object.freeze({SOF:"",EOF:"",BANG:"!",DOLLAR:"$",AMP:"&",PAREN_L:"(",PAREN_R:")",SPREAD:"...",COLON:":",EQUALS:"=",AT:"@",BRACKET_L:"[",BRACKET_R:"]",BRACE_L:"{",PIPE:"|",BRACE_R:"}",NAME:"Name",INT:"Int",FLOAT:"Float",STRING:"String",BLOCK_STRING:"BlockString",COMMENT:"Comment"});db.TokenKind=ete});var jt=X(wS=>{"use strict";Object.defineProperty(wS,"__esModule",{value:!0});wS.default=ite;var tte=rte(AS());function rte(e){return e&&e.__esModule?e:{default:e}}function pb(e){"@babel/helpers - typeof";return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?pb=function(r){return typeof r}:pb=function(r){return r&&typeof Symbol=="function"&&r.constructor===Symbol&&r!==Symbol.prototype?"symbol":typeof r},pb(e)}var nte=10,d5=2;function ite(e){return mb(e,[])}function mb(e,t){switch(pb(e)){case"string":return JSON.stringify(e);case"function":return e.name?"[function ".concat(e.name,"]"):"[function]";case"object":return e===null?"null":ote(e,t);default:return String(e)}}function ote(e,t){if(t.indexOf(e)!==-1)return"[Circular]";var r=[].concat(t,[e]),n=lte(e);if(n!==void 0){var i=n.call(e);if(i!==e)return typeof i=="string"?i:mb(i,r)}else if(Array.isArray(e))return ste(e,r);return ate(e,r)}function ate(e,t){var r=Object.keys(e);if(r.length===0)return"{}";if(t.length>d5)return"["+ute(e)+"]";var n=r.map(function(i){var o=mb(e[i],t);return i+": "+o});return"{ "+n.join(", ")+" }"}function ste(e,t){if(e.length===0)return"[]";if(t.length>d5)return"[Array]";for(var r=Math.min(nte,e.length),n=e.length-r,i=[],o=0;o1&&i.push("... ".concat(n," more items")),"["+i.join(", ")+"]"}function lte(e){var t=e[String(tte.default)];if(typeof t=="function")return t;if(typeof e.inspect=="function")return e.inspect}function ute(e){var t=Object.prototype.toString.call(e).replace(/^\[object /,"").replace(/]$/,"");if(t==="Object"&&typeof e.constructor=="function"){var r=e.constructor.name;if(typeof r=="string"&&r!=="")return r}return t}});var Io=X(ES=>{"use strict";Object.defineProperty(ES,"__esModule",{value:!0});ES.default=cte;function cte(e,t){var r=!!e;if(!r)throw new Error(t)}});var Qh=X(hb=>{"use strict";Object.defineProperty(hb,"__esModule",{value:!0});hb.default=void 0;var gCe=fte(jt());function fte(e){return e&&e.__esModule?e:{default:e}}var dte=function(t,r){return t instanceof r};hb.default=dte});var vb=X(Wh=>{"use strict";Object.defineProperty(Wh,"__esModule",{value:!0});Wh.isSource=gte;Wh.Source=void 0;var pte=ts(),mte=CS(jt()),TS=CS(Io()),hte=CS(Qh());function CS(e){return e&&e.__esModule?e:{default:e}}function p5(e,t){for(var r=0;r1&&arguments[1]!==void 0?arguments[1]:"GraphQL request",n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{line:1,column:1};typeof t=="string"||(0,TS.default)(0,"Body must be a string. Received: ".concat((0,mte.default)(t),".")),this.body=t,this.name=r,this.locationOffset=n,this.locationOffset.line>0||(0,TS.default)(0,"line in locationOffset is 1-indexed and must be positive."),this.locationOffset.column>0||(0,TS.default)(0,"column in locationOffset is 1-indexed and must be positive.")}return vte(e,[{key:pte.SYMBOL_TO_STRING_TAG,get:function(){return"Source"}}]),e}();Wh.Source=m5;function gte(e){return(0,hte.default)(e,m5)}});var Fd=X(gb=>{"use strict";Object.defineProperty(gb,"__esModule",{value:!0});gb.DirectiveLocation=void 0;var yte=Object.freeze({QUERY:"QUERY",MUTATION:"MUTATION",SUBSCRIPTION:"SUBSCRIPTION",FIELD:"FIELD",FRAGMENT_DEFINITION:"FRAGMENT_DEFINITION",FRAGMENT_SPREAD:"FRAGMENT_SPREAD",INLINE_FRAGMENT:"INLINE_FRAGMENT",VARIABLE_DEFINITION:"VARIABLE_DEFINITION",SCHEMA:"SCHEMA",SCALAR:"SCALAR",OBJECT:"OBJECT",FIELD_DEFINITION:"FIELD_DEFINITION",ARGUMENT_DEFINITION:"ARGUMENT_DEFINITION",INTERFACE:"INTERFACE",UNION:"UNION",ENUM:"ENUM",ENUM_VALUE:"ENUM_VALUE",INPUT_OBJECT:"INPUT_OBJECT",INPUT_FIELD_DEFINITION:"INPUT_FIELD_DEFINITION"});gb.DirectiveLocation=yte});var qd=X(Yh=>{"use strict";Object.defineProperty(Yh,"__esModule",{value:!0});Yh.dedentBlockStringValue=bte;Yh.getBlockStringIndentation=v5;Yh.printBlockString=Ate;function bte(e){var t=e.split(/\r\n|[\n\r]/g),r=v5(e);if(r!==0)for(var n=1;ni&&h5(t[o-1]);)--o;return t.slice(i,o).join(` -`)}function h5(e){for(var t=0;t1&&arguments[1]!==void 0?arguments[1]:"",r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1,n=e.indexOf(` -`)===-1,i=e[0]===" "||e[0]===" ",o=e[e.length-1]==='"',s=e[e.length-1]==="\\",l=!n||o||s||r,c="";return l&&!(n&&i)&&(c+=` +`+(0,e5.printSourceLocation)(e.source,l); + }return t; + } +});var lb=X(yS=>{ + 'use strict';Object.defineProperty(yS,'__esModule',{value:!0});yS.syntaxError=Qee;var Hee=ft();function Qee(e,t,r){ + return new Hee.GraphQLError('Syntax Error: '.concat(r),void 0,e,[t]); + } +});var tr=X(ub=>{ + 'use strict';Object.defineProperty(ub,'__esModule',{value:!0});ub.Kind=void 0;var Wee=Object.freeze({NAME:'Name',DOCUMENT:'Document',OPERATION_DEFINITION:'OperationDefinition',VARIABLE_DEFINITION:'VariableDefinition',SELECTION_SET:'SelectionSet',FIELD:'Field',ARGUMENT:'Argument',FRAGMENT_SPREAD:'FragmentSpread',INLINE_FRAGMENT:'InlineFragment',FRAGMENT_DEFINITION:'FragmentDefinition',VARIABLE:'Variable',INT:'IntValue',FLOAT:'FloatValue',STRING:'StringValue',BOOLEAN:'BooleanValue',NULL:'NullValue',ENUM:'EnumValue',LIST:'ListValue',OBJECT:'ObjectValue',OBJECT_FIELD:'ObjectField',DIRECTIVE:'Directive',NAMED_TYPE:'NamedType',LIST_TYPE:'ListType',NON_NULL_TYPE:'NonNullType',SCHEMA_DEFINITION:'SchemaDefinition',OPERATION_TYPE_DEFINITION:'OperationTypeDefinition',SCALAR_TYPE_DEFINITION:'ScalarTypeDefinition',OBJECT_TYPE_DEFINITION:'ObjectTypeDefinition',FIELD_DEFINITION:'FieldDefinition',INPUT_VALUE_DEFINITION:'InputValueDefinition',INTERFACE_TYPE_DEFINITION:'InterfaceTypeDefinition',UNION_TYPE_DEFINITION:'UnionTypeDefinition',ENUM_TYPE_DEFINITION:'EnumTypeDefinition',ENUM_VALUE_DEFINITION:'EnumValueDefinition',INPUT_OBJECT_TYPE_DEFINITION:'InputObjectTypeDefinition',DIRECTIVE_DEFINITION:'DirectiveDefinition',SCHEMA_EXTENSION:'SchemaExtension',SCALAR_TYPE_EXTENSION:'ScalarTypeExtension',OBJECT_TYPE_EXTENSION:'ObjectTypeExtension',INTERFACE_TYPE_EXTENSION:'InterfaceTypeExtension',UNION_TYPE_EXTENSION:'UnionTypeExtension',ENUM_TYPE_EXTENSION:'EnumTypeExtension',INPUT_OBJECT_TYPE_EXTENSION:'InputObjectTypeExtension'});ub.Kind=Wee; +});var Gn=X(bS=>{ + 'use strict';Object.defineProperty(bS,'__esModule',{value:!0});bS.default=Yee;function Yee(e,t){ + var r=!!e;if(!r)throw new Error(t??'Unexpected invariant triggered.'); + } +});var AS=X(cb=>{ + 'use strict';Object.defineProperty(cb,'__esModule',{value:!0});cb.default=void 0;var Kee=typeof Symbol=='function'&&typeof Symbol.for=='function'?Symbol.for('nodejs.util.inspect.custom'):void 0,Xee=Kee;cb.default=Xee; +});var fb=X(xS=>{ + 'use strict';Object.defineProperty(xS,'__esModule',{value:!0});xS.default=Jee;var Zee=l5(Gn()),s5=l5(AS());function l5(e){ + return e&&e.__esModule?e:{default:e}; + }function Jee(e){ + var t=e.prototype.toJSON;typeof t=='function'||(0,Zee.default)(0),e.prototype.inspect=t,s5.default&&(e.prototype[s5.default]=t); + } +});var Md=X(kc=>{ + 'use strict';Object.defineProperty(kc,'__esModule',{value:!0});kc.isNode=$ee;kc.Token=kc.Location=void 0;var u5=_ee(fb());function _ee(e){ + return e&&e.__esModule?e:{default:e}; + }var c5=function(){ + function e(r,n,i){ + this.start=r.start,this.end=n.end,this.startToken=r,this.endToken=n,this.source=i; + }var t=e.prototype;return t.toJSON=function(){ + return{start:this.start,end:this.end}; + },e; + }();kc.Location=c5;(0,u5.default)(c5);var f5=function(){ + function e(r,n,i,o,s,l,c){ + this.kind=r,this.start=n,this.end=i,this.line=o,this.column=s,this.value=c,this.prev=l,this.next=null; + }var t=e.prototype;return t.toJSON=function(){ + return{kind:this.kind,value:this.value,line:this.line,column:this.column}; + },e; + }();kc.Token=f5;(0,u5.default)(f5);function $ee(e){ + return e!=null&&typeof e.kind=='string'; + } +});var Id=X(db=>{ + 'use strict';Object.defineProperty(db,'__esModule',{value:!0});db.TokenKind=void 0;var ete=Object.freeze({SOF:'',EOF:'',BANG:'!',DOLLAR:'$',AMP:'&',PAREN_L:'(',PAREN_R:')',SPREAD:'...',COLON:':',EQUALS:'=',AT:'@',BRACKET_L:'[',BRACKET_R:']',BRACE_L:'{',PIPE:'|',BRACE_R:'}',NAME:'Name',INT:'Int',FLOAT:'Float',STRING:'String',BLOCK_STRING:'BlockString',COMMENT:'Comment'});db.TokenKind=ete; +});var jt=X(wS=>{ + 'use strict';Object.defineProperty(wS,'__esModule',{value:!0});wS.default=ite;var tte=rte(AS());function rte(e){ + return e&&e.__esModule?e:{default:e}; + }function pb(e){ + '@babel/helpers - typeof';return typeof Symbol=='function'&&typeof Symbol.iterator=='symbol'?pb=function(r){ + return typeof r; + }:pb=function(r){ + return r&&typeof Symbol=='function'&&r.constructor===Symbol&&r!==Symbol.prototype?'symbol':typeof r; + },pb(e); + }var nte=10,d5=2;function ite(e){ + return mb(e,[]); + }function mb(e,t){ + switch(pb(e)){ + case'string':return JSON.stringify(e);case'function':return e.name?'[function '.concat(e.name,']'):'[function]';case'object':return e===null?'null':ote(e,t);default:return String(e); + } + }function ote(e,t){ + if(t.indexOf(e)!==-1)return'[Circular]';var r=[].concat(t,[e]),n=lte(e);if(n!==void 0){ + var i=n.call(e);if(i!==e)return typeof i=='string'?i:mb(i,r); + }else if(Array.isArray(e))return ste(e,r);return ate(e,r); + }function ate(e,t){ + var r=Object.keys(e);if(r.length===0)return'{}';if(t.length>d5)return'['+ute(e)+']';var n=r.map(function(i){ + var o=mb(e[i],t);return i+': '+o; + });return'{ '+n.join(', ')+' }'; + }function ste(e,t){ + if(e.length===0)return'[]';if(t.length>d5)return'[Array]';for(var r=Math.min(nte,e.length),n=e.length-r,i=[],o=0;o1&&i.push('... '.concat(n,' more items')),'['+i.join(', ')+']'; + }function lte(e){ + var t=e[String(tte.default)];if(typeof t=='function')return t;if(typeof e.inspect=='function')return e.inspect; + }function ute(e){ + var t=Object.prototype.toString.call(e).replace(/^\[object /,'').replace(/]$/,'');if(t==='Object'&&typeof e.constructor=='function'){ + var r=e.constructor.name;if(typeof r=='string'&&r!=='')return r; + }return t; + } +});var Io=X(ES=>{ + 'use strict';Object.defineProperty(ES,'__esModule',{value:!0});ES.default=cte;function cte(e,t){ + var r=!!e;if(!r)throw new Error(t); + } +});var Qh=X(hb=>{ + 'use strict';Object.defineProperty(hb,'__esModule',{value:!0});hb.default=void 0;var gCe=fte(jt());function fte(e){ + return e&&e.__esModule?e:{default:e}; + }var dte=function(t,r){ + return t instanceof r; + };hb.default=dte; +});var vb=X(Wh=>{ + 'use strict';Object.defineProperty(Wh,'__esModule',{value:!0});Wh.isSource=gte;Wh.Source=void 0;var pte=ts(),mte=CS(jt()),TS=CS(Io()),hte=CS(Qh());function CS(e){ + return e&&e.__esModule?e:{default:e}; + }function p5(e,t){ + for(var r=0;r1&&arguments[1]!==void 0?arguments[1]:'GraphQL request',n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{line:1,column:1};typeof t=='string'||(0,TS.default)(0,'Body must be a string. Received: '.concat((0,mte.default)(t),'.')),this.body=t,this.name=r,this.locationOffset=n,this.locationOffset.line>0||(0,TS.default)(0,'line in locationOffset is 1-indexed and must be positive.'),this.locationOffset.column>0||(0,TS.default)(0,'column in locationOffset is 1-indexed and must be positive.'); + }return vte(e,[{key:pte.SYMBOL_TO_STRING_TAG,get:function(){ + return'Source'; + }}]),e; + }();Wh.Source=m5;function gte(e){ + return(0,hte.default)(e,m5); + } +});var Fd=X(gb=>{ + 'use strict';Object.defineProperty(gb,'__esModule',{value:!0});gb.DirectiveLocation=void 0;var yte=Object.freeze({QUERY:'QUERY',MUTATION:'MUTATION',SUBSCRIPTION:'SUBSCRIPTION',FIELD:'FIELD',FRAGMENT_DEFINITION:'FRAGMENT_DEFINITION',FRAGMENT_SPREAD:'FRAGMENT_SPREAD',INLINE_FRAGMENT:'INLINE_FRAGMENT',VARIABLE_DEFINITION:'VARIABLE_DEFINITION',SCHEMA:'SCHEMA',SCALAR:'SCALAR',OBJECT:'OBJECT',FIELD_DEFINITION:'FIELD_DEFINITION',ARGUMENT_DEFINITION:'ARGUMENT_DEFINITION',INTERFACE:'INTERFACE',UNION:'UNION',ENUM:'ENUM',ENUM_VALUE:'ENUM_VALUE',INPUT_OBJECT:'INPUT_OBJECT',INPUT_FIELD_DEFINITION:'INPUT_FIELD_DEFINITION'});gb.DirectiveLocation=yte; +});var qd=X(Yh=>{ + 'use strict';Object.defineProperty(Yh,'__esModule',{value:!0});Yh.dedentBlockStringValue=bte;Yh.getBlockStringIndentation=v5;Yh.printBlockString=Ate;function bte(e){ + var t=e.split(/\r\n|[\n\r]/g),r=v5(e);if(r!==0)for(var n=1;ni&&h5(t[o-1]);)--o;return t.slice(i,o).join(` +`); + }function h5(e){ + for(var t=0;t1&&arguments[1]!==void 0?arguments[1]:'',r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1,n=e.indexOf(` +`)===-1,i=e[0]===' '||e[0]===' ',o=e[e.length-1]==='"',s=e[e.length-1]==='\\',l=!n||o||s||r,c='';return l&&!(n&&i)&&(c+=` `+t),c+=t?e.replace(/\n/g,` `+t):e,l&&(c+=` -`),'"""'+c.replace(/"""/g,'\\"""')+'"""'}});var bb=X(Kh=>{"use strict";Object.defineProperty(Kh,"__esModule",{value:!0});Kh.isPunctuatorTokenKind=Ete;Kh.Lexer=void 0;var rs=lb(),Qr=Md(),Ct=Id(),xte=qd(),wte=function(){function e(r){var n=new Qr.Token(Ct.TokenKind.SOF,0,0,0,0,null);this.source=r,this.lastToken=n,this.token=n,this.line=1,this.lineStart=0}var t=e.prototype;return t.advance=function(){this.lastToken=this.token;var n=this.token=this.lookahead();return n},t.lookahead=function(){var n=this.token;if(n.kind!==Ct.TokenKind.EOF)do{var i;n=(i=n.next)!==null&&i!==void 0?i:n.next=Tte(this,n)}while(n.kind===Ct.TokenKind.COMMENT);return n},e}();Kh.Lexer=wte;function Ete(e){return e===Ct.TokenKind.BANG||e===Ct.TokenKind.DOLLAR||e===Ct.TokenKind.AMP||e===Ct.TokenKind.PAREN_L||e===Ct.TokenKind.PAREN_R||e===Ct.TokenKind.SPREAD||e===Ct.TokenKind.COLON||e===Ct.TokenKind.EQUALS||e===Ct.TokenKind.AT||e===Ct.TokenKind.BRACKET_L||e===Ct.TokenKind.BRACKET_R||e===Ct.TokenKind.BRACE_L||e===Ct.TokenKind.PIPE||e===Ct.TokenKind.BRACE_R}function Oc(e){return isNaN(e)?Ct.TokenKind.EOF:e<127?JSON.stringify(String.fromCharCode(e)):'"\\u'.concat(("00"+e.toString(16).toUpperCase()).slice(-4),'"')}function Tte(e,t){for(var r=e.source,n=r.body,i=n.length,o=t.end;o31||s===9));return new Qr.Token(Ct.TokenKind.COMMENT,t,l,r,n,i,o.slice(t+1,l))}function kte(e,t,r,n,i,o){var s=e.body,l=r,c=t,f=!1;if(l===45&&(l=s.charCodeAt(++c)),l===48){if(l=s.charCodeAt(++c),l>=48&&l<=57)throw(0,rs.syntaxError)(e,c,"Invalid number, unexpected digit after 0: ".concat(Oc(l),"."))}else c=SS(e,c,l),l=s.charCodeAt(c);if(l===46&&(f=!0,l=s.charCodeAt(++c),c=SS(e,c,l),l=s.charCodeAt(c)),(l===69||l===101)&&(f=!0,l=s.charCodeAt(++c),(l===43||l===45)&&(l=s.charCodeAt(++c)),c=SS(e,c,l),l=s.charCodeAt(c)),l===46||Pte(l))throw(0,rs.syntaxError)(e,c,"Invalid number, expected digit but got: ".concat(Oc(l),"."));return new Qr.Token(f?Ct.TokenKind.FLOAT:Ct.TokenKind.INT,t,c,n,i,o,s.slice(t,c))}function SS(e,t,r){var n=e.body,i=t,o=r;if(o>=48&&o<=57){do o=n.charCodeAt(++i);while(o>=48&&o<=57);return i}throw(0,rs.syntaxError)(e,i,"Invalid number, expected digit but got: ".concat(Oc(o),"."))}function Ote(e,t,r,n,i){for(var o=e.body,s=t+1,l=s,c=0,f="";s=48&&e<=57?e-48:e>=65&&e<=70?e-55:e>=97&&e<=102?e-87:-1}function Lte(e,t,r,n,i){for(var o=e.body,s=o.length,l=t+1,c=0;l!==s&&!isNaN(c=o.charCodeAt(l))&&(c===95||c>=48&&c<=57||c>=65&&c<=90||c>=97&&c<=122);)++l;return new Qr.Token(Ct.TokenKind.NAME,t,l,r,n,i,o.slice(t,l))}function Pte(e){return e===95||e>=65&&e<=90||e>=97&&e<=122}});var jd=X(Nc=>{"use strict";Object.defineProperty(Nc,"__esModule",{value:!0});Nc.parse=Ite;Nc.parseValue=Fte;Nc.parseType=qte;Nc.Parser=void 0;var kS=lb(),dt=tr(),Rte=Md(),je=Id(),g5=vb(),Mte=Fd(),y5=bb();function Ite(e,t){var r=new Ab(e,t);return r.parseDocument()}function Fte(e,t){var r=new Ab(e,t);r.expectToken(je.TokenKind.SOF);var n=r.parseValueLiteral(!1);return r.expectToken(je.TokenKind.EOF),n}function qte(e,t){var r=new Ab(e,t);r.expectToken(je.TokenKind.SOF);var n=r.parseTypeReference();return r.expectToken(je.TokenKind.EOF),n}var Ab=function(){function e(r,n){var i=(0,g5.isSource)(r)?r:new g5.Source(r);this._lexer=new y5.Lexer(i),this._options=n}var t=e.prototype;return t.parseName=function(){var n=this.expectToken(je.TokenKind.NAME);return{kind:dt.Kind.NAME,value:n.value,loc:this.loc(n)}},t.parseDocument=function(){var n=this._lexer.token;return{kind:dt.Kind.DOCUMENT,definitions:this.many(je.TokenKind.SOF,this.parseDefinition,je.TokenKind.EOF),loc:this.loc(n)}},t.parseDefinition=function(){if(this.peek(je.TokenKind.NAME))switch(this._lexer.token.value){case"query":case"mutation":case"subscription":return this.parseOperationDefinition();case"fragment":return this.parseFragmentDefinition();case"schema":case"scalar":case"type":case"interface":case"union":case"enum":case"input":case"directive":return this.parseTypeSystemDefinition();case"extend":return this.parseTypeSystemExtension()}else{if(this.peek(je.TokenKind.BRACE_L))return this.parseOperationDefinition();if(this.peekDescription())return this.parseTypeSystemDefinition()}throw this.unexpected()},t.parseOperationDefinition=function(){var n=this._lexer.token;if(this.peek(je.TokenKind.BRACE_L))return{kind:dt.Kind.OPERATION_DEFINITION,operation:"query",name:void 0,variableDefinitions:[],directives:[],selectionSet:this.parseSelectionSet(),loc:this.loc(n)};var i=this.parseOperationType(),o;return this.peek(je.TokenKind.NAME)&&(o=this.parseName()),{kind:dt.Kind.OPERATION_DEFINITION,operation:i,name:o,variableDefinitions:this.parseVariableDefinitions(),directives:this.parseDirectives(!1),selectionSet:this.parseSelectionSet(),loc:this.loc(n)}},t.parseOperationType=function(){var n=this.expectToken(je.TokenKind.NAME);switch(n.value){case"query":return"query";case"mutation":return"mutation";case"subscription":return"subscription"}throw this.unexpected(n)},t.parseVariableDefinitions=function(){return this.optionalMany(je.TokenKind.PAREN_L,this.parseVariableDefinition,je.TokenKind.PAREN_R)},t.parseVariableDefinition=function(){var n=this._lexer.token;return{kind:dt.Kind.VARIABLE_DEFINITION,variable:this.parseVariable(),type:(this.expectToken(je.TokenKind.COLON),this.parseTypeReference()),defaultValue:this.expectOptionalToken(je.TokenKind.EQUALS)?this.parseValueLiteral(!0):void 0,directives:this.parseDirectives(!0),loc:this.loc(n)}},t.parseVariable=function(){var n=this._lexer.token;return this.expectToken(je.TokenKind.DOLLAR),{kind:dt.Kind.VARIABLE,name:this.parseName(),loc:this.loc(n)}},t.parseSelectionSet=function(){var n=this._lexer.token;return{kind:dt.Kind.SELECTION_SET,selections:this.many(je.TokenKind.BRACE_L,this.parseSelection,je.TokenKind.BRACE_R),loc:this.loc(n)}},t.parseSelection=function(){return this.peek(je.TokenKind.SPREAD)?this.parseFragment():this.parseField()},t.parseField=function(){var n=this._lexer.token,i=this.parseName(),o,s;return this.expectOptionalToken(je.TokenKind.COLON)?(o=i,s=this.parseName()):s=i,{kind:dt.Kind.FIELD,alias:o,name:s,arguments:this.parseArguments(!1),directives:this.parseDirectives(!1),selectionSet:this.peek(je.TokenKind.BRACE_L)?this.parseSelectionSet():void 0,loc:this.loc(n)}},t.parseArguments=function(n){var i=n?this.parseConstArgument:this.parseArgument;return this.optionalMany(je.TokenKind.PAREN_L,i,je.TokenKind.PAREN_R)},t.parseArgument=function(){var n=this._lexer.token,i=this.parseName();return this.expectToken(je.TokenKind.COLON),{kind:dt.Kind.ARGUMENT,name:i,value:this.parseValueLiteral(!1),loc:this.loc(n)}},t.parseConstArgument=function(){var n=this._lexer.token;return{kind:dt.Kind.ARGUMENT,name:this.parseName(),value:(this.expectToken(je.TokenKind.COLON),this.parseValueLiteral(!0)),loc:this.loc(n)}},t.parseFragment=function(){var n=this._lexer.token;this.expectToken(je.TokenKind.SPREAD);var i=this.expectOptionalKeyword("on");return!i&&this.peek(je.TokenKind.NAME)?{kind:dt.Kind.FRAGMENT_SPREAD,name:this.parseFragmentName(),directives:this.parseDirectives(!1),loc:this.loc(n)}:{kind:dt.Kind.INLINE_FRAGMENT,typeCondition:i?this.parseNamedType():void 0,directives:this.parseDirectives(!1),selectionSet:this.parseSelectionSet(),loc:this.loc(n)}},t.parseFragmentDefinition=function(){var n,i=this._lexer.token;return this.expectKeyword("fragment"),((n=this._options)===null||n===void 0?void 0:n.experimentalFragmentVariables)===!0?{kind:dt.Kind.FRAGMENT_DEFINITION,name:this.parseFragmentName(),variableDefinitions:this.parseVariableDefinitions(),typeCondition:(this.expectKeyword("on"),this.parseNamedType()),directives:this.parseDirectives(!1),selectionSet:this.parseSelectionSet(),loc:this.loc(i)}:{kind:dt.Kind.FRAGMENT_DEFINITION,name:this.parseFragmentName(),typeCondition:(this.expectKeyword("on"),this.parseNamedType()),directives:this.parseDirectives(!1),selectionSet:this.parseSelectionSet(),loc:this.loc(i)}},t.parseFragmentName=function(){if(this._lexer.token.value==="on")throw this.unexpected();return this.parseName()},t.parseValueLiteral=function(n){var i=this._lexer.token;switch(i.kind){case je.TokenKind.BRACKET_L:return this.parseList(n);case je.TokenKind.BRACE_L:return this.parseObject(n);case je.TokenKind.INT:return this._lexer.advance(),{kind:dt.Kind.INT,value:i.value,loc:this.loc(i)};case je.TokenKind.FLOAT:return this._lexer.advance(),{kind:dt.Kind.FLOAT,value:i.value,loc:this.loc(i)};case je.TokenKind.STRING:case je.TokenKind.BLOCK_STRING:return this.parseStringLiteral();case je.TokenKind.NAME:switch(this._lexer.advance(),i.value){case"true":return{kind:dt.Kind.BOOLEAN,value:!0,loc:this.loc(i)};case"false":return{kind:dt.Kind.BOOLEAN,value:!1,loc:this.loc(i)};case"null":return{kind:dt.Kind.NULL,loc:this.loc(i)};default:return{kind:dt.Kind.ENUM,value:i.value,loc:this.loc(i)}}case je.TokenKind.DOLLAR:if(!n)return this.parseVariable();break}throw this.unexpected()},t.parseStringLiteral=function(){var n=this._lexer.token;return this._lexer.advance(),{kind:dt.Kind.STRING,value:n.value,block:n.kind===je.TokenKind.BLOCK_STRING,loc:this.loc(n)}},t.parseList=function(n){var i=this,o=this._lexer.token,s=function(){return i.parseValueLiteral(n)};return{kind:dt.Kind.LIST,values:this.any(je.TokenKind.BRACKET_L,s,je.TokenKind.BRACKET_R),loc:this.loc(o)}},t.parseObject=function(n){var i=this,o=this._lexer.token,s=function(){return i.parseObjectField(n)};return{kind:dt.Kind.OBJECT,fields:this.any(je.TokenKind.BRACE_L,s,je.TokenKind.BRACE_R),loc:this.loc(o)}},t.parseObjectField=function(n){var i=this._lexer.token,o=this.parseName();return this.expectToken(je.TokenKind.COLON),{kind:dt.Kind.OBJECT_FIELD,name:o,value:this.parseValueLiteral(n),loc:this.loc(i)}},t.parseDirectives=function(n){for(var i=[];this.peek(je.TokenKind.AT);)i.push(this.parseDirective(n));return i},t.parseDirective=function(n){var i=this._lexer.token;return this.expectToken(je.TokenKind.AT),{kind:dt.Kind.DIRECTIVE,name:this.parseName(),arguments:this.parseArguments(n),loc:this.loc(i)}},t.parseTypeReference=function(){var n=this._lexer.token,i;return this.expectOptionalToken(je.TokenKind.BRACKET_L)?(i=this.parseTypeReference(),this.expectToken(je.TokenKind.BRACKET_R),i={kind:dt.Kind.LIST_TYPE,type:i,loc:this.loc(n)}):i=this.parseNamedType(),this.expectOptionalToken(je.TokenKind.BANG)?{kind:dt.Kind.NON_NULL_TYPE,type:i,loc:this.loc(n)}:i},t.parseNamedType=function(){var n=this._lexer.token;return{kind:dt.Kind.NAMED_TYPE,name:this.parseName(),loc:this.loc(n)}},t.parseTypeSystemDefinition=function(){var n=this.peekDescription()?this._lexer.lookahead():this._lexer.token;if(n.kind===je.TokenKind.NAME)switch(n.value){case"schema":return this.parseSchemaDefinition();case"scalar":return this.parseScalarTypeDefinition();case"type":return this.parseObjectTypeDefinition();case"interface":return this.parseInterfaceTypeDefinition();case"union":return this.parseUnionTypeDefinition();case"enum":return this.parseEnumTypeDefinition();case"input":return this.parseInputObjectTypeDefinition();case"directive":return this.parseDirectiveDefinition()}throw this.unexpected(n)},t.peekDescription=function(){return this.peek(je.TokenKind.STRING)||this.peek(je.TokenKind.BLOCK_STRING)},t.parseDescription=function(){if(this.peekDescription())return this.parseStringLiteral()},t.parseSchemaDefinition=function(){var n=this._lexer.token,i=this.parseDescription();this.expectKeyword("schema");var o=this.parseDirectives(!0),s=this.many(je.TokenKind.BRACE_L,this.parseOperationTypeDefinition,je.TokenKind.BRACE_R);return{kind:dt.Kind.SCHEMA_DEFINITION,description:i,directives:o,operationTypes:s,loc:this.loc(n)}},t.parseOperationTypeDefinition=function(){var n=this._lexer.token,i=this.parseOperationType();this.expectToken(je.TokenKind.COLON);var o=this.parseNamedType();return{kind:dt.Kind.OPERATION_TYPE_DEFINITION,operation:i,type:o,loc:this.loc(n)}},t.parseScalarTypeDefinition=function(){var n=this._lexer.token,i=this.parseDescription();this.expectKeyword("scalar");var o=this.parseName(),s=this.parseDirectives(!0);return{kind:dt.Kind.SCALAR_TYPE_DEFINITION,description:i,name:o,directives:s,loc:this.loc(n)}},t.parseObjectTypeDefinition=function(){var n=this._lexer.token,i=this.parseDescription();this.expectKeyword("type");var o=this.parseName(),s=this.parseImplementsInterfaces(),l=this.parseDirectives(!0),c=this.parseFieldsDefinition();return{kind:dt.Kind.OBJECT_TYPE_DEFINITION,description:i,name:o,interfaces:s,directives:l,fields:c,loc:this.loc(n)}},t.parseImplementsInterfaces=function(){var n;if(!this.expectOptionalKeyword("implements"))return[];if(((n=this._options)===null||n===void 0?void 0:n.allowLegacySDLImplementsInterfaces)===!0){var i=[];this.expectOptionalToken(je.TokenKind.AMP);do i.push(this.parseNamedType());while(this.expectOptionalToken(je.TokenKind.AMP)||this.peek(je.TokenKind.NAME));return i}return this.delimitedMany(je.TokenKind.AMP,this.parseNamedType)},t.parseFieldsDefinition=function(){var n;return((n=this._options)===null||n===void 0?void 0:n.allowLegacySDLEmptyFields)===!0&&this.peek(je.TokenKind.BRACE_L)&&this._lexer.lookahead().kind===je.TokenKind.BRACE_R?(this._lexer.advance(),this._lexer.advance(),[]):this.optionalMany(je.TokenKind.BRACE_L,this.parseFieldDefinition,je.TokenKind.BRACE_R)},t.parseFieldDefinition=function(){var n=this._lexer.token,i=this.parseDescription(),o=this.parseName(),s=this.parseArgumentDefs();this.expectToken(je.TokenKind.COLON);var l=this.parseTypeReference(),c=this.parseDirectives(!0);return{kind:dt.Kind.FIELD_DEFINITION,description:i,name:o,arguments:s,type:l,directives:c,loc:this.loc(n)}},t.parseArgumentDefs=function(){return this.optionalMany(je.TokenKind.PAREN_L,this.parseInputValueDef,je.TokenKind.PAREN_R)},t.parseInputValueDef=function(){var n=this._lexer.token,i=this.parseDescription(),o=this.parseName();this.expectToken(je.TokenKind.COLON);var s=this.parseTypeReference(),l;this.expectOptionalToken(je.TokenKind.EQUALS)&&(l=this.parseValueLiteral(!0));var c=this.parseDirectives(!0);return{kind:dt.Kind.INPUT_VALUE_DEFINITION,description:i,name:o,type:s,defaultValue:l,directives:c,loc:this.loc(n)}},t.parseInterfaceTypeDefinition=function(){var n=this._lexer.token,i=this.parseDescription();this.expectKeyword("interface");var o=this.parseName(),s=this.parseImplementsInterfaces(),l=this.parseDirectives(!0),c=this.parseFieldsDefinition();return{kind:dt.Kind.INTERFACE_TYPE_DEFINITION,description:i,name:o,interfaces:s,directives:l,fields:c,loc:this.loc(n)}},t.parseUnionTypeDefinition=function(){var n=this._lexer.token,i=this.parseDescription();this.expectKeyword("union");var o=this.parseName(),s=this.parseDirectives(!0),l=this.parseUnionMemberTypes();return{kind:dt.Kind.UNION_TYPE_DEFINITION,description:i,name:o,directives:s,types:l,loc:this.loc(n)}},t.parseUnionMemberTypes=function(){return this.expectOptionalToken(je.TokenKind.EQUALS)?this.delimitedMany(je.TokenKind.PIPE,this.parseNamedType):[]},t.parseEnumTypeDefinition=function(){var n=this._lexer.token,i=this.parseDescription();this.expectKeyword("enum");var o=this.parseName(),s=this.parseDirectives(!0),l=this.parseEnumValuesDefinition();return{kind:dt.Kind.ENUM_TYPE_DEFINITION,description:i,name:o,directives:s,values:l,loc:this.loc(n)}},t.parseEnumValuesDefinition=function(){return this.optionalMany(je.TokenKind.BRACE_L,this.parseEnumValueDefinition,je.TokenKind.BRACE_R)},t.parseEnumValueDefinition=function(){var n=this._lexer.token,i=this.parseDescription(),o=this.parseName(),s=this.parseDirectives(!0);return{kind:dt.Kind.ENUM_VALUE_DEFINITION,description:i,name:o,directives:s,loc:this.loc(n)}},t.parseInputObjectTypeDefinition=function(){var n=this._lexer.token,i=this.parseDescription();this.expectKeyword("input");var o=this.parseName(),s=this.parseDirectives(!0),l=this.parseInputFieldsDefinition();return{kind:dt.Kind.INPUT_OBJECT_TYPE_DEFINITION,description:i,name:o,directives:s,fields:l,loc:this.loc(n)}},t.parseInputFieldsDefinition=function(){return this.optionalMany(je.TokenKind.BRACE_L,this.parseInputValueDef,je.TokenKind.BRACE_R)},t.parseTypeSystemExtension=function(){var n=this._lexer.lookahead();if(n.kind===je.TokenKind.NAME)switch(n.value){case"schema":return this.parseSchemaExtension();case"scalar":return this.parseScalarTypeExtension();case"type":return this.parseObjectTypeExtension();case"interface":return this.parseInterfaceTypeExtension();case"union":return this.parseUnionTypeExtension();case"enum":return this.parseEnumTypeExtension();case"input":return this.parseInputObjectTypeExtension()}throw this.unexpected(n)},t.parseSchemaExtension=function(){var n=this._lexer.token;this.expectKeyword("extend"),this.expectKeyword("schema");var i=this.parseDirectives(!0),o=this.optionalMany(je.TokenKind.BRACE_L,this.parseOperationTypeDefinition,je.TokenKind.BRACE_R);if(i.length===0&&o.length===0)throw this.unexpected();return{kind:dt.Kind.SCHEMA_EXTENSION,directives:i,operationTypes:o,loc:this.loc(n)}},t.parseScalarTypeExtension=function(){var n=this._lexer.token;this.expectKeyword("extend"),this.expectKeyword("scalar");var i=this.parseName(),o=this.parseDirectives(!0);if(o.length===0)throw this.unexpected();return{kind:dt.Kind.SCALAR_TYPE_EXTENSION,name:i,directives:o,loc:this.loc(n)}},t.parseObjectTypeExtension=function(){var n=this._lexer.token;this.expectKeyword("extend"),this.expectKeyword("type");var i=this.parseName(),o=this.parseImplementsInterfaces(),s=this.parseDirectives(!0),l=this.parseFieldsDefinition();if(o.length===0&&s.length===0&&l.length===0)throw this.unexpected();return{kind:dt.Kind.OBJECT_TYPE_EXTENSION,name:i,interfaces:o,directives:s,fields:l,loc:this.loc(n)}},t.parseInterfaceTypeExtension=function(){var n=this._lexer.token;this.expectKeyword("extend"),this.expectKeyword("interface");var i=this.parseName(),o=this.parseImplementsInterfaces(),s=this.parseDirectives(!0),l=this.parseFieldsDefinition();if(o.length===0&&s.length===0&&l.length===0)throw this.unexpected();return{kind:dt.Kind.INTERFACE_TYPE_EXTENSION,name:i,interfaces:o,directives:s,fields:l,loc:this.loc(n)}},t.parseUnionTypeExtension=function(){var n=this._lexer.token;this.expectKeyword("extend"),this.expectKeyword("union");var i=this.parseName(),o=this.parseDirectives(!0),s=this.parseUnionMemberTypes();if(o.length===0&&s.length===0)throw this.unexpected();return{kind:dt.Kind.UNION_TYPE_EXTENSION,name:i,directives:o,types:s,loc:this.loc(n)}},t.parseEnumTypeExtension=function(){var n=this._lexer.token;this.expectKeyword("extend"),this.expectKeyword("enum");var i=this.parseName(),o=this.parseDirectives(!0),s=this.parseEnumValuesDefinition();if(o.length===0&&s.length===0)throw this.unexpected();return{kind:dt.Kind.ENUM_TYPE_EXTENSION,name:i,directives:o,values:s,loc:this.loc(n)}},t.parseInputObjectTypeExtension=function(){var n=this._lexer.token;this.expectKeyword("extend"),this.expectKeyword("input");var i=this.parseName(),o=this.parseDirectives(!0),s=this.parseInputFieldsDefinition();if(o.length===0&&s.length===0)throw this.unexpected();return{kind:dt.Kind.INPUT_OBJECT_TYPE_EXTENSION,name:i,directives:o,fields:s,loc:this.loc(n)}},t.parseDirectiveDefinition=function(){var n=this._lexer.token,i=this.parseDescription();this.expectKeyword("directive"),this.expectToken(je.TokenKind.AT);var o=this.parseName(),s=this.parseArgumentDefs(),l=this.expectOptionalKeyword("repeatable");this.expectKeyword("on");var c=this.parseDirectiveLocations();return{kind:dt.Kind.DIRECTIVE_DEFINITION,description:i,name:o,arguments:s,repeatable:l,locations:c,loc:this.loc(n)}},t.parseDirectiveLocations=function(){return this.delimitedMany(je.TokenKind.PIPE,this.parseDirectiveLocation)},t.parseDirectiveLocation=function(){var n=this._lexer.token,i=this.parseName();if(Mte.DirectiveLocation[i.value]!==void 0)return i;throw this.unexpected(n)},t.loc=function(n){var i;if(((i=this._options)===null||i===void 0?void 0:i.noLocation)!==!0)return new Rte.Location(n,this._lexer.lastToken,this._lexer.source)},t.peek=function(n){return this._lexer.token.kind===n},t.expectToken=function(n){var i=this._lexer.token;if(i.kind===n)return this._lexer.advance(),i;throw(0,kS.syntaxError)(this._lexer.source,i.start,"Expected ".concat(b5(n),", found ").concat(OS(i),"."))},t.expectOptionalToken=function(n){var i=this._lexer.token;if(i.kind===n)return this._lexer.advance(),i},t.expectKeyword=function(n){var i=this._lexer.token;if(i.kind===je.TokenKind.NAME&&i.value===n)this._lexer.advance();else throw(0,kS.syntaxError)(this._lexer.source,i.start,'Expected "'.concat(n,'", found ').concat(OS(i),"."))},t.expectOptionalKeyword=function(n){var i=this._lexer.token;return i.kind===je.TokenKind.NAME&&i.value===n?(this._lexer.advance(),!0):!1},t.unexpected=function(n){var i=n??this._lexer.token;return(0,kS.syntaxError)(this._lexer.source,i.start,"Unexpected ".concat(OS(i),"."))},t.any=function(n,i,o){this.expectToken(n);for(var s=[];!this.expectOptionalToken(o);)s.push(i.call(this));return s},t.optionalMany=function(n,i,o){if(this.expectOptionalToken(n)){var s=[];do s.push(i.call(this));while(!this.expectOptionalToken(o));return s}return[]},t.many=function(n,i,o){this.expectToken(n);var s=[];do s.push(i.call(this));while(!this.expectOptionalToken(o));return s},t.delimitedMany=function(n,i){this.expectOptionalToken(n);var o=[];do o.push(i.call(this));while(this.expectOptionalToken(n));return o},e}();Nc.Parser=Ab;function OS(e){var t=e.value;return b5(e.kind)+(t!=null?' "'.concat(t,'"'):"")}function b5(e){return(0,y5.isPunctuatorTokenKind)(e)?'"'.concat(e,'"'):e}});var Jl=X(_s=>{"use strict";Object.defineProperty(_s,"__esModule",{value:!0});_s.visit=Ute;_s.visitInParallel=Bte;_s.getVisitFn=xb;_s.BREAK=_s.QueryDocumentKeys=void 0;var jte=Vte(jt()),A5=Md();function Vte(e){return e&&e.__esModule?e:{default:e}}var x5={Name:[],Document:["definitions"],OperationDefinition:["name","variableDefinitions","directives","selectionSet"],VariableDefinition:["variable","type","defaultValue","directives"],Variable:["name"],SelectionSet:["selections"],Field:["alias","name","arguments","directives","selectionSet"],Argument:["name","value"],FragmentSpread:["name","directives"],InlineFragment:["typeCondition","directives","selectionSet"],FragmentDefinition:["name","variableDefinitions","typeCondition","directives","selectionSet"],IntValue:[],FloatValue:[],StringValue:[],BooleanValue:[],NullValue:[],EnumValue:[],ListValue:["values"],ObjectValue:["fields"],ObjectField:["name","value"],Directive:["name","arguments"],NamedType:["name"],ListType:["type"],NonNullType:["type"],SchemaDefinition:["description","directives","operationTypes"],OperationTypeDefinition:["type"],ScalarTypeDefinition:["description","name","directives"],ObjectTypeDefinition:["description","name","interfaces","directives","fields"],FieldDefinition:["description","name","arguments","type","directives"],InputValueDefinition:["description","name","type","defaultValue","directives"],InterfaceTypeDefinition:["description","name","interfaces","directives","fields"],UnionTypeDefinition:["description","name","directives","types"],EnumTypeDefinition:["description","name","directives","values"],EnumValueDefinition:["description","name","directives"],InputObjectTypeDefinition:["description","name","directives","fields"],DirectiveDefinition:["description","name","arguments","locations"],SchemaExtension:["directives","operationTypes"],ScalarTypeExtension:["name","directives"],ObjectTypeExtension:["name","interfaces","directives","fields"],InterfaceTypeExtension:["name","interfaces","directives","fields"],UnionTypeExtension:["name","directives","types"],EnumTypeExtension:["name","directives","values"],InputObjectTypeExtension:["name","directives","fields"]};_s.QueryDocumentKeys=x5;var Vd=Object.freeze({});_s.BREAK=Vd;function Ute(e,t){var r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:x5,n=void 0,i=Array.isArray(e),o=[e],s=-1,l=[],c=void 0,f=void 0,m=void 0,v=[],g=[],y=e;do{s++;var w=s===o.length,T=w&&l.length!==0;if(w){if(f=g.length===0?void 0:v[v.length-1],c=m,m=g.pop(),T){if(i)c=c.slice();else{for(var S={},A=0,b=Object.keys(c);A{"use strict";Object.defineProperty(wb,"__esModule",{value:!0});wb.default=void 0;var Gte=Array.prototype.find?function(e,t){return Array.prototype.find.call(e,t)}:function(e,t){for(var r=0;r{"use strict";Object.defineProperty(Eb,"__esModule",{value:!0});Eb.default=void 0;var Hte=Object.values||function(e){return Object.keys(e).map(function(t){return e[t]})},Qte=Hte;Eb.default=Qte});var Xh=X(NS=>{"use strict";Object.defineProperty(NS,"__esModule",{value:!0});NS.locatedError=Xte;var Wte=Kte(jt()),Yte=ft();function Kte(e){return e&&e.__esModule?e:{default:e}}function Xte(e,t,r){var n,i=e instanceof Error?e:new Error("Unexpected error value: "+(0,Wte.default)(e));return Array.isArray(i.path)?i:new Yte.GraphQLError(i.message,(n=i.nodes)!==null&&n!==void 0?n:t,i.source,i.positions,r,i)}});var DS=X(Tb=>{"use strict";Object.defineProperty(Tb,"__esModule",{value:!0});Tb.assertValidName=$te;Tb.isValidNameError=E5;var Zte=Jte(Io()),w5=ft();function Jte(e){return e&&e.__esModule?e:{default:e}}var _te=/^[_a-zA-Z][_a-zA-Z0-9]*$/;function $te(e){var t=E5(e);if(t)throw t;return e}function E5(e){if(typeof e=="string"||(0,Zte.default)(0,"Expected name to be a string."),e.length>1&&e[0]==="_"&&e[1]==="_")return new w5.GraphQLError('Name "'.concat(e,'" must not begin with "__", which is reserved by GraphQL introspection.'));if(!_te.test(e))return new w5.GraphQLError('Names must match /^[_a-zA-Z][_a-zA-Z0-9]*$/ but "'.concat(e,'" does not.'))}});var Bd=X(Cb=>{"use strict";Object.defineProperty(Cb,"__esModule",{value:!0});Cb.default=void 0;var ere=Object.entries||function(e){return Object.keys(e).map(function(t){return[t,e[t]]})},tre=ere;Cb.default=tre});var _l=X(LS=>{"use strict";Object.defineProperty(LS,"__esModule",{value:!0});LS.default=rre;function rre(e,t){return e.reduce(function(r,n){return r[t(n)]=n,r},Object.create(null))}});var RS=X(PS=>{"use strict";Object.defineProperty(PS,"__esModule",{value:!0});PS.default=ore;var nre=ire(Bd());function ire(e){return e&&e.__esModule?e:{default:e}}function ore(e,t){for(var r=Object.create(null),n=0,i=(0,nre.default)(e);n{"use strict";Object.defineProperty(MS,"__esModule",{value:!0});MS.default=lre;var are=sre(Bd());function sre(e){return e&&e.__esModule?e:{default:e}}function lre(e){if(Object.getPrototypeOf(e)===null)return e;for(var t=Object.create(null),r=0,n=(0,are.default)(e);r{"use strict";Object.defineProperty(IS,"__esModule",{value:!0});IS.default=ure;function ure(e,t,r){return e.reduce(function(n,i){return n[t(i)]=r(i),n},Object.create(null))}});var $l=X(FS=>{"use strict";Object.defineProperty(FS,"__esModule",{value:!0});FS.default=fre;var cre=5;function fre(e,t){var r=typeof e=="string"?[e,t]:[void 0,e],n=r[0],i=r[1],o=" Did you mean ";n&&(o+=n+" ");var s=i.map(function(f){return'"'.concat(f,'"')});switch(s.length){case 0:return"";case 1:return o+s[0]+"?";case 2:return o+s[0]+" or "+s[1]+"?"}var l=s.slice(0,cre),c=l.pop();return o+l.join(", ")+", or "+c+"?"}});var T5=X(qS=>{"use strict";Object.defineProperty(qS,"__esModule",{value:!0});qS.default=dre;function dre(e){return e}});var Jh=X(VS=>{"use strict";Object.defineProperty(VS,"__esModule",{value:!0});VS.default=pre;function pre(e,t){for(var r=0,n=0;r0);var l=0;do++n,l=l*10+o-jS,o=t.charCodeAt(n);while(kb(o)&&l>0);if(sl)return 1}else{if(io)return 1;++r,++n}}return e.length-t.length}var jS=48,mre=57;function kb(e){return!isNaN(e)&&jS<=e&&e<=mre}});var eu=X(US=>{"use strict";Object.defineProperty(US,"__esModule",{value:!0});US.default=gre;var hre=vre(Jh());function vre(e){return e&&e.__esModule?e:{default:e}}function gre(e,t){for(var r=Object.create(null),n=new yre(e),i=Math.floor(e.length*.4)+1,o=0;oi)){for(var v=this._rows,g=0;g<=m;g++)v[0][g]=g;for(var y=1;y<=f;y++){for(var w=v[(y-1)%3],T=v[y%3],S=T[0]=y,A=1;A<=m;A++){var b=s[y-1]===l[A-1]?0:1,C=Math.min(w[A]+1,T[A-1]+1,w[A-1]+b);if(y>1&&A>1&&s[y-1]===l[A-2]&&s[y-2]===l[A-1]){var x=v[(y-2)%3][A-2];C=Math.min(C,x+1)}Ci)return}var k=v[f%3][m];return k<=i?k:void 0}},e}();function C5(e){for(var t=e.length,r=new Array(t),n=0;n{"use strict";Object.defineProperty(BS,"__esModule",{value:!0});BS.print=xre;var bre=Jl(),Are=qd();function xre(e){return(0,bre.visit)(e,{leave:Ere})}var wre=80,Ere={Name:function(t){return t.value},Variable:function(t){return"$"+t.name},Document:function(t){return Ke(t.definitions,` +`),'"""'+c.replace(/"""/g,'\\"""')+'"""'; + } +});var bb=X(Kh=>{ + 'use strict';Object.defineProperty(Kh,'__esModule',{value:!0});Kh.isPunctuatorTokenKind=Ete;Kh.Lexer=void 0;var rs=lb(),Qr=Md(),Ct=Id(),xte=qd(),wte=function(){ + function e(r){ + var n=new Qr.Token(Ct.TokenKind.SOF,0,0,0,0,null);this.source=r,this.lastToken=n,this.token=n,this.line=1,this.lineStart=0; + }var t=e.prototype;return t.advance=function(){ + this.lastToken=this.token;var n=this.token=this.lookahead();return n; + },t.lookahead=function(){ + var n=this.token;if(n.kind!==Ct.TokenKind.EOF)do{ + var i;n=(i=n.next)!==null&&i!==void 0?i:n.next=Tte(this,n); + }while(n.kind===Ct.TokenKind.COMMENT);return n; + },e; + }();Kh.Lexer=wte;function Ete(e){ + return e===Ct.TokenKind.BANG||e===Ct.TokenKind.DOLLAR||e===Ct.TokenKind.AMP||e===Ct.TokenKind.PAREN_L||e===Ct.TokenKind.PAREN_R||e===Ct.TokenKind.SPREAD||e===Ct.TokenKind.COLON||e===Ct.TokenKind.EQUALS||e===Ct.TokenKind.AT||e===Ct.TokenKind.BRACKET_L||e===Ct.TokenKind.BRACKET_R||e===Ct.TokenKind.BRACE_L||e===Ct.TokenKind.PIPE||e===Ct.TokenKind.BRACE_R; + }function Oc(e){ + return isNaN(e)?Ct.TokenKind.EOF:e<127?JSON.stringify(String.fromCharCode(e)):'"\\u'.concat(('00'+e.toString(16).toUpperCase()).slice(-4),'"'); + }function Tte(e,t){ + for(var r=e.source,n=r.body,i=n.length,o=t.end;o31||s===9));return new Qr.Token(Ct.TokenKind.COMMENT,t,l,r,n,i,o.slice(t+1,l)); + }function kte(e,t,r,n,i,o){ + var s=e.body,l=r,c=t,f=!1;if(l===45&&(l=s.charCodeAt(++c)),l===48){ + if(l=s.charCodeAt(++c),l>=48&&l<=57)throw(0,rs.syntaxError)(e,c,'Invalid number, unexpected digit after 0: '.concat(Oc(l),'.')); + }else c=SS(e,c,l),l=s.charCodeAt(c);if(l===46&&(f=!0,l=s.charCodeAt(++c),c=SS(e,c,l),l=s.charCodeAt(c)),(l===69||l===101)&&(f=!0,l=s.charCodeAt(++c),(l===43||l===45)&&(l=s.charCodeAt(++c)),c=SS(e,c,l),l=s.charCodeAt(c)),l===46||Pte(l))throw(0,rs.syntaxError)(e,c,'Invalid number, expected digit but got: '.concat(Oc(l),'.'));return new Qr.Token(f?Ct.TokenKind.FLOAT:Ct.TokenKind.INT,t,c,n,i,o,s.slice(t,c)); + }function SS(e,t,r){ + var n=e.body,i=t,o=r;if(o>=48&&o<=57){ + do o=n.charCodeAt(++i);while(o>=48&&o<=57);return i; + }throw(0,rs.syntaxError)(e,i,'Invalid number, expected digit but got: '.concat(Oc(o),'.')); + }function Ote(e,t,r,n,i){ + for(var o=e.body,s=t+1,l=s,c=0,f='';s=48&&e<=57?e-48:e>=65&&e<=70?e-55:e>=97&&e<=102?e-87:-1; + }function Lte(e,t,r,n,i){ + for(var o=e.body,s=o.length,l=t+1,c=0;l!==s&&!isNaN(c=o.charCodeAt(l))&&(c===95||c>=48&&c<=57||c>=65&&c<=90||c>=97&&c<=122);)++l;return new Qr.Token(Ct.TokenKind.NAME,t,l,r,n,i,o.slice(t,l)); + }function Pte(e){ + return e===95||e>=65&&e<=90||e>=97&&e<=122; + } +});var jd=X(Nc=>{ + 'use strict';Object.defineProperty(Nc,'__esModule',{value:!0});Nc.parse=Ite;Nc.parseValue=Fte;Nc.parseType=qte;Nc.Parser=void 0;var kS=lb(),dt=tr(),Rte=Md(),je=Id(),g5=vb(),Mte=Fd(),y5=bb();function Ite(e,t){ + var r=new Ab(e,t);return r.parseDocument(); + }function Fte(e,t){ + var r=new Ab(e,t);r.expectToken(je.TokenKind.SOF);var n=r.parseValueLiteral(!1);return r.expectToken(je.TokenKind.EOF),n; + }function qte(e,t){ + var r=new Ab(e,t);r.expectToken(je.TokenKind.SOF);var n=r.parseTypeReference();return r.expectToken(je.TokenKind.EOF),n; + }var Ab=function(){ + function e(r,n){ + var i=(0,g5.isSource)(r)?r:new g5.Source(r);this._lexer=new y5.Lexer(i),this._options=n; + }var t=e.prototype;return t.parseName=function(){ + var n=this.expectToken(je.TokenKind.NAME);return{kind:dt.Kind.NAME,value:n.value,loc:this.loc(n)}; + },t.parseDocument=function(){ + var n=this._lexer.token;return{kind:dt.Kind.DOCUMENT,definitions:this.many(je.TokenKind.SOF,this.parseDefinition,je.TokenKind.EOF),loc:this.loc(n)}; + },t.parseDefinition=function(){ + if(this.peek(je.TokenKind.NAME))switch(this._lexer.token.value){ + case'query':case'mutation':case'subscription':return this.parseOperationDefinition();case'fragment':return this.parseFragmentDefinition();case'schema':case'scalar':case'type':case'interface':case'union':case'enum':case'input':case'directive':return this.parseTypeSystemDefinition();case'extend':return this.parseTypeSystemExtension(); + }else{ + if(this.peek(je.TokenKind.BRACE_L))return this.parseOperationDefinition();if(this.peekDescription())return this.parseTypeSystemDefinition(); + }throw this.unexpected(); + },t.parseOperationDefinition=function(){ + var n=this._lexer.token;if(this.peek(je.TokenKind.BRACE_L))return{kind:dt.Kind.OPERATION_DEFINITION,operation:'query',name:void 0,variableDefinitions:[],directives:[],selectionSet:this.parseSelectionSet(),loc:this.loc(n)};var i=this.parseOperationType(),o;return this.peek(je.TokenKind.NAME)&&(o=this.parseName()),{kind:dt.Kind.OPERATION_DEFINITION,operation:i,name:o,variableDefinitions:this.parseVariableDefinitions(),directives:this.parseDirectives(!1),selectionSet:this.parseSelectionSet(),loc:this.loc(n)}; + },t.parseOperationType=function(){ + var n=this.expectToken(je.TokenKind.NAME);switch(n.value){ + case'query':return'query';case'mutation':return'mutation';case'subscription':return'subscription'; + }throw this.unexpected(n); + },t.parseVariableDefinitions=function(){ + return this.optionalMany(je.TokenKind.PAREN_L,this.parseVariableDefinition,je.TokenKind.PAREN_R); + },t.parseVariableDefinition=function(){ + var n=this._lexer.token;return{kind:dt.Kind.VARIABLE_DEFINITION,variable:this.parseVariable(),type:(this.expectToken(je.TokenKind.COLON),this.parseTypeReference()),defaultValue:this.expectOptionalToken(je.TokenKind.EQUALS)?this.parseValueLiteral(!0):void 0,directives:this.parseDirectives(!0),loc:this.loc(n)}; + },t.parseVariable=function(){ + var n=this._lexer.token;return this.expectToken(je.TokenKind.DOLLAR),{kind:dt.Kind.VARIABLE,name:this.parseName(),loc:this.loc(n)}; + },t.parseSelectionSet=function(){ + var n=this._lexer.token;return{kind:dt.Kind.SELECTION_SET,selections:this.many(je.TokenKind.BRACE_L,this.parseSelection,je.TokenKind.BRACE_R),loc:this.loc(n)}; + },t.parseSelection=function(){ + return this.peek(je.TokenKind.SPREAD)?this.parseFragment():this.parseField(); + },t.parseField=function(){ + var n=this._lexer.token,i=this.parseName(),o,s;return this.expectOptionalToken(je.TokenKind.COLON)?(o=i,s=this.parseName()):s=i,{kind:dt.Kind.FIELD,alias:o,name:s,arguments:this.parseArguments(!1),directives:this.parseDirectives(!1),selectionSet:this.peek(je.TokenKind.BRACE_L)?this.parseSelectionSet():void 0,loc:this.loc(n)}; + },t.parseArguments=function(n){ + var i=n?this.parseConstArgument:this.parseArgument;return this.optionalMany(je.TokenKind.PAREN_L,i,je.TokenKind.PAREN_R); + },t.parseArgument=function(){ + var n=this._lexer.token,i=this.parseName();return this.expectToken(je.TokenKind.COLON),{kind:dt.Kind.ARGUMENT,name:i,value:this.parseValueLiteral(!1),loc:this.loc(n)}; + },t.parseConstArgument=function(){ + var n=this._lexer.token;return{kind:dt.Kind.ARGUMENT,name:this.parseName(),value:(this.expectToken(je.TokenKind.COLON),this.parseValueLiteral(!0)),loc:this.loc(n)}; + },t.parseFragment=function(){ + var n=this._lexer.token;this.expectToken(je.TokenKind.SPREAD);var i=this.expectOptionalKeyword('on');return!i&&this.peek(je.TokenKind.NAME)?{kind:dt.Kind.FRAGMENT_SPREAD,name:this.parseFragmentName(),directives:this.parseDirectives(!1),loc:this.loc(n)}:{kind:dt.Kind.INLINE_FRAGMENT,typeCondition:i?this.parseNamedType():void 0,directives:this.parseDirectives(!1),selectionSet:this.parseSelectionSet(),loc:this.loc(n)}; + },t.parseFragmentDefinition=function(){ + var n,i=this._lexer.token;return this.expectKeyword('fragment'),((n=this._options)===null||n===void 0?void 0:n.experimentalFragmentVariables)===!0?{kind:dt.Kind.FRAGMENT_DEFINITION,name:this.parseFragmentName(),variableDefinitions:this.parseVariableDefinitions(),typeCondition:(this.expectKeyword('on'),this.parseNamedType()),directives:this.parseDirectives(!1),selectionSet:this.parseSelectionSet(),loc:this.loc(i)}:{kind:dt.Kind.FRAGMENT_DEFINITION,name:this.parseFragmentName(),typeCondition:(this.expectKeyword('on'),this.parseNamedType()),directives:this.parseDirectives(!1),selectionSet:this.parseSelectionSet(),loc:this.loc(i)}; + },t.parseFragmentName=function(){ + if(this._lexer.token.value==='on')throw this.unexpected();return this.parseName(); + },t.parseValueLiteral=function(n){ + var i=this._lexer.token;switch(i.kind){ + case je.TokenKind.BRACKET_L:return this.parseList(n);case je.TokenKind.BRACE_L:return this.parseObject(n);case je.TokenKind.INT:return this._lexer.advance(),{kind:dt.Kind.INT,value:i.value,loc:this.loc(i)};case je.TokenKind.FLOAT:return this._lexer.advance(),{kind:dt.Kind.FLOAT,value:i.value,loc:this.loc(i)};case je.TokenKind.STRING:case je.TokenKind.BLOCK_STRING:return this.parseStringLiteral();case je.TokenKind.NAME:switch(this._lexer.advance(),i.value){ + case'true':return{kind:dt.Kind.BOOLEAN,value:!0,loc:this.loc(i)};case'false':return{kind:dt.Kind.BOOLEAN,value:!1,loc:this.loc(i)};case'null':return{kind:dt.Kind.NULL,loc:this.loc(i)};default:return{kind:dt.Kind.ENUM,value:i.value,loc:this.loc(i)}; + }case je.TokenKind.DOLLAR:if(!n)return this.parseVariable();break; + }throw this.unexpected(); + },t.parseStringLiteral=function(){ + var n=this._lexer.token;return this._lexer.advance(),{kind:dt.Kind.STRING,value:n.value,block:n.kind===je.TokenKind.BLOCK_STRING,loc:this.loc(n)}; + },t.parseList=function(n){ + var i=this,o=this._lexer.token,s=function(){ + return i.parseValueLiteral(n); + };return{kind:dt.Kind.LIST,values:this.any(je.TokenKind.BRACKET_L,s,je.TokenKind.BRACKET_R),loc:this.loc(o)}; + },t.parseObject=function(n){ + var i=this,o=this._lexer.token,s=function(){ + return i.parseObjectField(n); + };return{kind:dt.Kind.OBJECT,fields:this.any(je.TokenKind.BRACE_L,s,je.TokenKind.BRACE_R),loc:this.loc(o)}; + },t.parseObjectField=function(n){ + var i=this._lexer.token,o=this.parseName();return this.expectToken(je.TokenKind.COLON),{kind:dt.Kind.OBJECT_FIELD,name:o,value:this.parseValueLiteral(n),loc:this.loc(i)}; + },t.parseDirectives=function(n){ + for(var i=[];this.peek(je.TokenKind.AT);)i.push(this.parseDirective(n));return i; + },t.parseDirective=function(n){ + var i=this._lexer.token;return this.expectToken(je.TokenKind.AT),{kind:dt.Kind.DIRECTIVE,name:this.parseName(),arguments:this.parseArguments(n),loc:this.loc(i)}; + },t.parseTypeReference=function(){ + var n=this._lexer.token,i;return this.expectOptionalToken(je.TokenKind.BRACKET_L)?(i=this.parseTypeReference(),this.expectToken(je.TokenKind.BRACKET_R),i={kind:dt.Kind.LIST_TYPE,type:i,loc:this.loc(n)}):i=this.parseNamedType(),this.expectOptionalToken(je.TokenKind.BANG)?{kind:dt.Kind.NON_NULL_TYPE,type:i,loc:this.loc(n)}:i; + },t.parseNamedType=function(){ + var n=this._lexer.token;return{kind:dt.Kind.NAMED_TYPE,name:this.parseName(),loc:this.loc(n)}; + },t.parseTypeSystemDefinition=function(){ + var n=this.peekDescription()?this._lexer.lookahead():this._lexer.token;if(n.kind===je.TokenKind.NAME)switch(n.value){ + case'schema':return this.parseSchemaDefinition();case'scalar':return this.parseScalarTypeDefinition();case'type':return this.parseObjectTypeDefinition();case'interface':return this.parseInterfaceTypeDefinition();case'union':return this.parseUnionTypeDefinition();case'enum':return this.parseEnumTypeDefinition();case'input':return this.parseInputObjectTypeDefinition();case'directive':return this.parseDirectiveDefinition(); + }throw this.unexpected(n); + },t.peekDescription=function(){ + return this.peek(je.TokenKind.STRING)||this.peek(je.TokenKind.BLOCK_STRING); + },t.parseDescription=function(){ + if(this.peekDescription())return this.parseStringLiteral(); + },t.parseSchemaDefinition=function(){ + var n=this._lexer.token,i=this.parseDescription();this.expectKeyword('schema');var o=this.parseDirectives(!0),s=this.many(je.TokenKind.BRACE_L,this.parseOperationTypeDefinition,je.TokenKind.BRACE_R);return{kind:dt.Kind.SCHEMA_DEFINITION,description:i,directives:o,operationTypes:s,loc:this.loc(n)}; + },t.parseOperationTypeDefinition=function(){ + var n=this._lexer.token,i=this.parseOperationType();this.expectToken(je.TokenKind.COLON);var o=this.parseNamedType();return{kind:dt.Kind.OPERATION_TYPE_DEFINITION,operation:i,type:o,loc:this.loc(n)}; + },t.parseScalarTypeDefinition=function(){ + var n=this._lexer.token,i=this.parseDescription();this.expectKeyword('scalar');var o=this.parseName(),s=this.parseDirectives(!0);return{kind:dt.Kind.SCALAR_TYPE_DEFINITION,description:i,name:o,directives:s,loc:this.loc(n)}; + },t.parseObjectTypeDefinition=function(){ + var n=this._lexer.token,i=this.parseDescription();this.expectKeyword('type');var o=this.parseName(),s=this.parseImplementsInterfaces(),l=this.parseDirectives(!0),c=this.parseFieldsDefinition();return{kind:dt.Kind.OBJECT_TYPE_DEFINITION,description:i,name:o,interfaces:s,directives:l,fields:c,loc:this.loc(n)}; + },t.parseImplementsInterfaces=function(){ + var n;if(!this.expectOptionalKeyword('implements'))return[];if(((n=this._options)===null||n===void 0?void 0:n.allowLegacySDLImplementsInterfaces)===!0){ + var i=[];this.expectOptionalToken(je.TokenKind.AMP);do i.push(this.parseNamedType());while(this.expectOptionalToken(je.TokenKind.AMP)||this.peek(je.TokenKind.NAME));return i; + }return this.delimitedMany(je.TokenKind.AMP,this.parseNamedType); + },t.parseFieldsDefinition=function(){ + var n;return((n=this._options)===null||n===void 0?void 0:n.allowLegacySDLEmptyFields)===!0&&this.peek(je.TokenKind.BRACE_L)&&this._lexer.lookahead().kind===je.TokenKind.BRACE_R?(this._lexer.advance(),this._lexer.advance(),[]):this.optionalMany(je.TokenKind.BRACE_L,this.parseFieldDefinition,je.TokenKind.BRACE_R); + },t.parseFieldDefinition=function(){ + var n=this._lexer.token,i=this.parseDescription(),o=this.parseName(),s=this.parseArgumentDefs();this.expectToken(je.TokenKind.COLON);var l=this.parseTypeReference(),c=this.parseDirectives(!0);return{kind:dt.Kind.FIELD_DEFINITION,description:i,name:o,arguments:s,type:l,directives:c,loc:this.loc(n)}; + },t.parseArgumentDefs=function(){ + return this.optionalMany(je.TokenKind.PAREN_L,this.parseInputValueDef,je.TokenKind.PAREN_R); + },t.parseInputValueDef=function(){ + var n=this._lexer.token,i=this.parseDescription(),o=this.parseName();this.expectToken(je.TokenKind.COLON);var s=this.parseTypeReference(),l;this.expectOptionalToken(je.TokenKind.EQUALS)&&(l=this.parseValueLiteral(!0));var c=this.parseDirectives(!0);return{kind:dt.Kind.INPUT_VALUE_DEFINITION,description:i,name:o,type:s,defaultValue:l,directives:c,loc:this.loc(n)}; + },t.parseInterfaceTypeDefinition=function(){ + var n=this._lexer.token,i=this.parseDescription();this.expectKeyword('interface');var o=this.parseName(),s=this.parseImplementsInterfaces(),l=this.parseDirectives(!0),c=this.parseFieldsDefinition();return{kind:dt.Kind.INTERFACE_TYPE_DEFINITION,description:i,name:o,interfaces:s,directives:l,fields:c,loc:this.loc(n)}; + },t.parseUnionTypeDefinition=function(){ + var n=this._lexer.token,i=this.parseDescription();this.expectKeyword('union');var o=this.parseName(),s=this.parseDirectives(!0),l=this.parseUnionMemberTypes();return{kind:dt.Kind.UNION_TYPE_DEFINITION,description:i,name:o,directives:s,types:l,loc:this.loc(n)}; + },t.parseUnionMemberTypes=function(){ + return this.expectOptionalToken(je.TokenKind.EQUALS)?this.delimitedMany(je.TokenKind.PIPE,this.parseNamedType):[]; + },t.parseEnumTypeDefinition=function(){ + var n=this._lexer.token,i=this.parseDescription();this.expectKeyword('enum');var o=this.parseName(),s=this.parseDirectives(!0),l=this.parseEnumValuesDefinition();return{kind:dt.Kind.ENUM_TYPE_DEFINITION,description:i,name:o,directives:s,values:l,loc:this.loc(n)}; + },t.parseEnumValuesDefinition=function(){ + return this.optionalMany(je.TokenKind.BRACE_L,this.parseEnumValueDefinition,je.TokenKind.BRACE_R); + },t.parseEnumValueDefinition=function(){ + var n=this._lexer.token,i=this.parseDescription(),o=this.parseName(),s=this.parseDirectives(!0);return{kind:dt.Kind.ENUM_VALUE_DEFINITION,description:i,name:o,directives:s,loc:this.loc(n)}; + },t.parseInputObjectTypeDefinition=function(){ + var n=this._lexer.token,i=this.parseDescription();this.expectKeyword('input');var o=this.parseName(),s=this.parseDirectives(!0),l=this.parseInputFieldsDefinition();return{kind:dt.Kind.INPUT_OBJECT_TYPE_DEFINITION,description:i,name:o,directives:s,fields:l,loc:this.loc(n)}; + },t.parseInputFieldsDefinition=function(){ + return this.optionalMany(je.TokenKind.BRACE_L,this.parseInputValueDef,je.TokenKind.BRACE_R); + },t.parseTypeSystemExtension=function(){ + var n=this._lexer.lookahead();if(n.kind===je.TokenKind.NAME)switch(n.value){ + case'schema':return this.parseSchemaExtension();case'scalar':return this.parseScalarTypeExtension();case'type':return this.parseObjectTypeExtension();case'interface':return this.parseInterfaceTypeExtension();case'union':return this.parseUnionTypeExtension();case'enum':return this.parseEnumTypeExtension();case'input':return this.parseInputObjectTypeExtension(); + }throw this.unexpected(n); + },t.parseSchemaExtension=function(){ + var n=this._lexer.token;this.expectKeyword('extend'),this.expectKeyword('schema');var i=this.parseDirectives(!0),o=this.optionalMany(je.TokenKind.BRACE_L,this.parseOperationTypeDefinition,je.TokenKind.BRACE_R);if(i.length===0&&o.length===0)throw this.unexpected();return{kind:dt.Kind.SCHEMA_EXTENSION,directives:i,operationTypes:o,loc:this.loc(n)}; + },t.parseScalarTypeExtension=function(){ + var n=this._lexer.token;this.expectKeyword('extend'),this.expectKeyword('scalar');var i=this.parseName(),o=this.parseDirectives(!0);if(o.length===0)throw this.unexpected();return{kind:dt.Kind.SCALAR_TYPE_EXTENSION,name:i,directives:o,loc:this.loc(n)}; + },t.parseObjectTypeExtension=function(){ + var n=this._lexer.token;this.expectKeyword('extend'),this.expectKeyword('type');var i=this.parseName(),o=this.parseImplementsInterfaces(),s=this.parseDirectives(!0),l=this.parseFieldsDefinition();if(o.length===0&&s.length===0&&l.length===0)throw this.unexpected();return{kind:dt.Kind.OBJECT_TYPE_EXTENSION,name:i,interfaces:o,directives:s,fields:l,loc:this.loc(n)}; + },t.parseInterfaceTypeExtension=function(){ + var n=this._lexer.token;this.expectKeyword('extend'),this.expectKeyword('interface');var i=this.parseName(),o=this.parseImplementsInterfaces(),s=this.parseDirectives(!0),l=this.parseFieldsDefinition();if(o.length===0&&s.length===0&&l.length===0)throw this.unexpected();return{kind:dt.Kind.INTERFACE_TYPE_EXTENSION,name:i,interfaces:o,directives:s,fields:l,loc:this.loc(n)}; + },t.parseUnionTypeExtension=function(){ + var n=this._lexer.token;this.expectKeyword('extend'),this.expectKeyword('union');var i=this.parseName(),o=this.parseDirectives(!0),s=this.parseUnionMemberTypes();if(o.length===0&&s.length===0)throw this.unexpected();return{kind:dt.Kind.UNION_TYPE_EXTENSION,name:i,directives:o,types:s,loc:this.loc(n)}; + },t.parseEnumTypeExtension=function(){ + var n=this._lexer.token;this.expectKeyword('extend'),this.expectKeyword('enum');var i=this.parseName(),o=this.parseDirectives(!0),s=this.parseEnumValuesDefinition();if(o.length===0&&s.length===0)throw this.unexpected();return{kind:dt.Kind.ENUM_TYPE_EXTENSION,name:i,directives:o,values:s,loc:this.loc(n)}; + },t.parseInputObjectTypeExtension=function(){ + var n=this._lexer.token;this.expectKeyword('extend'),this.expectKeyword('input');var i=this.parseName(),o=this.parseDirectives(!0),s=this.parseInputFieldsDefinition();if(o.length===0&&s.length===0)throw this.unexpected();return{kind:dt.Kind.INPUT_OBJECT_TYPE_EXTENSION,name:i,directives:o,fields:s,loc:this.loc(n)}; + },t.parseDirectiveDefinition=function(){ + var n=this._lexer.token,i=this.parseDescription();this.expectKeyword('directive'),this.expectToken(je.TokenKind.AT);var o=this.parseName(),s=this.parseArgumentDefs(),l=this.expectOptionalKeyword('repeatable');this.expectKeyword('on');var c=this.parseDirectiveLocations();return{kind:dt.Kind.DIRECTIVE_DEFINITION,description:i,name:o,arguments:s,repeatable:l,locations:c,loc:this.loc(n)}; + },t.parseDirectiveLocations=function(){ + return this.delimitedMany(je.TokenKind.PIPE,this.parseDirectiveLocation); + },t.parseDirectiveLocation=function(){ + var n=this._lexer.token,i=this.parseName();if(Mte.DirectiveLocation[i.value]!==void 0)return i;throw this.unexpected(n); + },t.loc=function(n){ + var i;if(((i=this._options)===null||i===void 0?void 0:i.noLocation)!==!0)return new Rte.Location(n,this._lexer.lastToken,this._lexer.source); + },t.peek=function(n){ + return this._lexer.token.kind===n; + },t.expectToken=function(n){ + var i=this._lexer.token;if(i.kind===n)return this._lexer.advance(),i;throw(0,kS.syntaxError)(this._lexer.source,i.start,'Expected '.concat(b5(n),', found ').concat(OS(i),'.')); + },t.expectOptionalToken=function(n){ + var i=this._lexer.token;if(i.kind===n)return this._lexer.advance(),i; + },t.expectKeyword=function(n){ + var i=this._lexer.token;if(i.kind===je.TokenKind.NAME&&i.value===n)this._lexer.advance();else throw(0,kS.syntaxError)(this._lexer.source,i.start,'Expected "'.concat(n,'", found ').concat(OS(i),'.')); + },t.expectOptionalKeyword=function(n){ + var i=this._lexer.token;return i.kind===je.TokenKind.NAME&&i.value===n?(this._lexer.advance(),!0):!1; + },t.unexpected=function(n){ + var i=n??this._lexer.token;return(0,kS.syntaxError)(this._lexer.source,i.start,'Unexpected '.concat(OS(i),'.')); + },t.any=function(n,i,o){ + this.expectToken(n);for(var s=[];!this.expectOptionalToken(o);)s.push(i.call(this));return s; + },t.optionalMany=function(n,i,o){ + if(this.expectOptionalToken(n)){ + var s=[];do s.push(i.call(this));while(!this.expectOptionalToken(o));return s; + }return[]; + },t.many=function(n,i,o){ + this.expectToken(n);var s=[];do s.push(i.call(this));while(!this.expectOptionalToken(o));return s; + },t.delimitedMany=function(n,i){ + this.expectOptionalToken(n);var o=[];do o.push(i.call(this));while(this.expectOptionalToken(n));return o; + },e; + }();Nc.Parser=Ab;function OS(e){ + var t=e.value;return b5(e.kind)+(t!=null?' "'.concat(t,'"'):''); + }function b5(e){ + return(0,y5.isPunctuatorTokenKind)(e)?'"'.concat(e,'"'):e; + } +});var Jl=X(_s=>{ + 'use strict';Object.defineProperty(_s,'__esModule',{value:!0});_s.visit=Ute;_s.visitInParallel=Bte;_s.getVisitFn=xb;_s.BREAK=_s.QueryDocumentKeys=void 0;var jte=Vte(jt()),A5=Md();function Vte(e){ + return e&&e.__esModule?e:{default:e}; + }var x5={Name:[],Document:['definitions'],OperationDefinition:['name','variableDefinitions','directives','selectionSet'],VariableDefinition:['variable','type','defaultValue','directives'],Variable:['name'],SelectionSet:['selections'],Field:['alias','name','arguments','directives','selectionSet'],Argument:['name','value'],FragmentSpread:['name','directives'],InlineFragment:['typeCondition','directives','selectionSet'],FragmentDefinition:['name','variableDefinitions','typeCondition','directives','selectionSet'],IntValue:[],FloatValue:[],StringValue:[],BooleanValue:[],NullValue:[],EnumValue:[],ListValue:['values'],ObjectValue:['fields'],ObjectField:['name','value'],Directive:['name','arguments'],NamedType:['name'],ListType:['type'],NonNullType:['type'],SchemaDefinition:['description','directives','operationTypes'],OperationTypeDefinition:['type'],ScalarTypeDefinition:['description','name','directives'],ObjectTypeDefinition:['description','name','interfaces','directives','fields'],FieldDefinition:['description','name','arguments','type','directives'],InputValueDefinition:['description','name','type','defaultValue','directives'],InterfaceTypeDefinition:['description','name','interfaces','directives','fields'],UnionTypeDefinition:['description','name','directives','types'],EnumTypeDefinition:['description','name','directives','values'],EnumValueDefinition:['description','name','directives'],InputObjectTypeDefinition:['description','name','directives','fields'],DirectiveDefinition:['description','name','arguments','locations'],SchemaExtension:['directives','operationTypes'],ScalarTypeExtension:['name','directives'],ObjectTypeExtension:['name','interfaces','directives','fields'],InterfaceTypeExtension:['name','interfaces','directives','fields'],UnionTypeExtension:['name','directives','types'],EnumTypeExtension:['name','directives','values'],InputObjectTypeExtension:['name','directives','fields']};_s.QueryDocumentKeys=x5;var Vd=Object.freeze({});_s.BREAK=Vd;function Ute(e,t){ + var r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:x5,n=void 0,i=Array.isArray(e),o=[e],s=-1,l=[],c=void 0,f=void 0,m=void 0,v=[],g=[],y=e;do{ + s++;var w=s===o.length,T=w&&l.length!==0;if(w){ + if(f=g.length===0?void 0:v[v.length-1],c=m,m=g.pop(),T){ + if(i)c=c.slice();else{ + for(var S={},A=0,b=Object.keys(c);A{ + 'use strict';Object.defineProperty(wb,'__esModule',{value:!0});wb.default=void 0;var Gte=Array.prototype.find?function(e,t){ + return Array.prototype.find.call(e,t); + }:function(e,t){ + for(var r=0;r{ + 'use strict';Object.defineProperty(Eb,'__esModule',{value:!0});Eb.default=void 0;var Hte=Object.values||function(e){ + return Object.keys(e).map(function(t){ + return e[t]; + }); + },Qte=Hte;Eb.default=Qte; +});var Xh=X(NS=>{ + 'use strict';Object.defineProperty(NS,'__esModule',{value:!0});NS.locatedError=Xte;var Wte=Kte(jt()),Yte=ft();function Kte(e){ + return e&&e.__esModule?e:{default:e}; + }function Xte(e,t,r){ + var n,i=e instanceof Error?e:new Error('Unexpected error value: '+(0,Wte.default)(e));return Array.isArray(i.path)?i:new Yte.GraphQLError(i.message,(n=i.nodes)!==null&&n!==void 0?n:t,i.source,i.positions,r,i); + } +});var DS=X(Tb=>{ + 'use strict';Object.defineProperty(Tb,'__esModule',{value:!0});Tb.assertValidName=$te;Tb.isValidNameError=E5;var Zte=Jte(Io()),w5=ft();function Jte(e){ + return e&&e.__esModule?e:{default:e}; + }var _te=/^[_a-zA-Z][_a-zA-Z0-9]*$/;function $te(e){ + var t=E5(e);if(t)throw t;return e; + }function E5(e){ + if(typeof e=='string'||(0,Zte.default)(0,'Expected name to be a string.'),e.length>1&&e[0]==='_'&&e[1]==='_')return new w5.GraphQLError('Name "'.concat(e,'" must not begin with "__", which is reserved by GraphQL introspection.'));if(!_te.test(e))return new w5.GraphQLError('Names must match /^[_a-zA-Z][_a-zA-Z0-9]*$/ but "'.concat(e,'" does not.')); + } +});var Bd=X(Cb=>{ + 'use strict';Object.defineProperty(Cb,'__esModule',{value:!0});Cb.default=void 0;var ere=Object.entries||function(e){ + return Object.keys(e).map(function(t){ + return[t,e[t]]; + }); + },tre=ere;Cb.default=tre; +});var _l=X(LS=>{ + 'use strict';Object.defineProperty(LS,'__esModule',{value:!0});LS.default=rre;function rre(e,t){ + return e.reduce(function(r,n){ + return r[t(n)]=n,r; + },Object.create(null)); + } +});var RS=X(PS=>{ + 'use strict';Object.defineProperty(PS,'__esModule',{value:!0});PS.default=ore;var nre=ire(Bd());function ire(e){ + return e&&e.__esModule?e:{default:e}; + }function ore(e,t){ + for(var r=Object.create(null),n=0,i=(0,nre.default)(e);n{ + 'use strict';Object.defineProperty(MS,'__esModule',{value:!0});MS.default=lre;var are=sre(Bd());function sre(e){ + return e&&e.__esModule?e:{default:e}; + }function lre(e){ + if(Object.getPrototypeOf(e)===null)return e;for(var t=Object.create(null),r=0,n=(0,are.default)(e);r{ + 'use strict';Object.defineProperty(IS,'__esModule',{value:!0});IS.default=ure;function ure(e,t,r){ + return e.reduce(function(n,i){ + return n[t(i)]=r(i),n; + },Object.create(null)); + } +});var $l=X(FS=>{ + 'use strict';Object.defineProperty(FS,'__esModule',{value:!0});FS.default=fre;var cre=5;function fre(e,t){ + var r=typeof e=='string'?[e,t]:[void 0,e],n=r[0],i=r[1],o=' Did you mean ';n&&(o+=n+' ');var s=i.map(function(f){ + return'"'.concat(f,'"'); + });switch(s.length){ + case 0:return'';case 1:return o+s[0]+'?';case 2:return o+s[0]+' or '+s[1]+'?'; + }var l=s.slice(0,cre),c=l.pop();return o+l.join(', ')+', or '+c+'?'; + } +});var T5=X(qS=>{ + 'use strict';Object.defineProperty(qS,'__esModule',{value:!0});qS.default=dre;function dre(e){ + return e; + } +});var Jh=X(VS=>{ + 'use strict';Object.defineProperty(VS,'__esModule',{value:!0});VS.default=pre;function pre(e,t){ + for(var r=0,n=0;r0);var l=0;do++n,l=l*10+o-jS,o=t.charCodeAt(n);while(kb(o)&&l>0);if(sl)return 1; + }else{ + if(io)return 1;++r,++n; + } + }return e.length-t.length; + }var jS=48,mre=57;function kb(e){ + return!isNaN(e)&&jS<=e&&e<=mre; + } +});var eu=X(US=>{ + 'use strict';Object.defineProperty(US,'__esModule',{value:!0});US.default=gre;var hre=vre(Jh());function vre(e){ + return e&&e.__esModule?e:{default:e}; + }function gre(e,t){ + for(var r=Object.create(null),n=new yre(e),i=Math.floor(e.length*.4)+1,o=0;oi)){ + for(var v=this._rows,g=0;g<=m;g++)v[0][g]=g;for(var y=1;y<=f;y++){ + for(var w=v[(y-1)%3],T=v[y%3],S=T[0]=y,A=1;A<=m;A++){ + var b=s[y-1]===l[A-1]?0:1,C=Math.min(w[A]+1,T[A-1]+1,w[A-1]+b);if(y>1&&A>1&&s[y-1]===l[A-2]&&s[y-2]===l[A-1]){ + var x=v[(y-2)%3][A-2];C=Math.min(C,x+1); + }Ci)return; + }var k=v[f%3][m];return k<=i?k:void 0; + } + },e; + }();function C5(e){ + for(var t=e.length,r=new Array(t),n=0;n{ + 'use strict';Object.defineProperty(BS,'__esModule',{value:!0});BS.print=xre;var bre=Jl(),Are=qd();function xre(e){ + return(0,bre.visit)(e,{leave:Ere}); + }var wre=80,Ere={Name:function(t){ + return t.value; + },Variable:function(t){ + return'$'+t.name; + },Document:function(t){ + return Ke(t.definitions,` `)+` -`},OperationDefinition:function(t){var r=t.operation,n=t.name,i=Lr("(",Ke(t.variableDefinitions,", "),")"),o=Ke(t.directives," "),s=t.selectionSet;return!n&&!o&&!i&&r==="query"?s:Ke([r,Ke([n,i]),o,s]," ")},VariableDefinition:function(t){var r=t.variable,n=t.type,i=t.defaultValue,o=t.directives;return r+": "+n+Lr(" = ",i)+Lr(" ",Ke(o," "))},SelectionSet:function(t){var r=t.selections;return ha(r)},Field:function(t){var r=t.alias,n=t.name,i=t.arguments,o=t.directives,s=t.selectionSet,l=Lr("",r,": ")+n,c=l+Lr("(",Ke(i,", "),")");return c.length>wre&&(c=l+Lr(`( +`; + },OperationDefinition:function(t){ + var r=t.operation,n=t.name,i=Lr('(',Ke(t.variableDefinitions,', '),')'),o=Ke(t.directives,' '),s=t.selectionSet;return!n&&!o&&!i&&r==='query'?s:Ke([r,Ke([n,i]),o,s],' '); + },VariableDefinition:function(t){ + var r=t.variable,n=t.type,i=t.defaultValue,o=t.directives;return r+': '+n+Lr(' = ',i)+Lr(' ',Ke(o,' ')); + },SelectionSet:function(t){ + var r=t.selections;return ha(r); + },Field:function(t){ + var r=t.alias,n=t.name,i=t.arguments,o=t.directives,s=t.selectionSet,l=Lr('',r,': ')+n,c=l+Lr('(',Ke(i,', '),')');return c.length>wre&&(c=l+Lr(`( `,Ob(Ke(i,` `)),` -)`)),Ke([c,Ke(o," "),s]," ")},Argument:function(t){var r=t.name,n=t.value;return r+": "+n},FragmentSpread:function(t){var r=t.name,n=t.directives;return"..."+r+Lr(" ",Ke(n," "))},InlineFragment:function(t){var r=t.typeCondition,n=t.directives,i=t.selectionSet;return Ke(["...",Lr("on ",r),Ke(n," "),i]," ")},FragmentDefinition:function(t){var r=t.name,n=t.typeCondition,i=t.variableDefinitions,o=t.directives,s=t.selectionSet;return"fragment ".concat(r).concat(Lr("(",Ke(i,", "),")")," ")+"on ".concat(n," ").concat(Lr("",Ke(o," ")," "))+s},IntValue:function(t){var r=t.value;return r},FloatValue:function(t){var r=t.value;return r},StringValue:function(t,r){var n=t.value,i=t.block;return i?(0,Are.printBlockString)(n,r==="description"?"":" "):JSON.stringify(n)},BooleanValue:function(t){var r=t.value;return r?"true":"false"},NullValue:function(){return"null"},EnumValue:function(t){var r=t.value;return r},ListValue:function(t){var r=t.values;return"["+Ke(r,", ")+"]"},ObjectValue:function(t){var r=t.fields;return"{"+Ke(r,", ")+"}"},ObjectField:function(t){var r=t.name,n=t.value;return r+": "+n},Directive:function(t){var r=t.name,n=t.arguments;return"@"+r+Lr("(",Ke(n,", "),")")},NamedType:function(t){var r=t.name;return r},ListType:function(t){var r=t.type;return"["+r+"]"},NonNullType:function(t){var r=t.type;return r+"!"},SchemaDefinition:ma(function(e){var t=e.directives,r=e.operationTypes;return Ke(["schema",Ke(t," "),ha(r)]," ")}),OperationTypeDefinition:function(t){var r=t.operation,n=t.type;return r+": "+n},ScalarTypeDefinition:ma(function(e){var t=e.name,r=e.directives;return Ke(["scalar",t,Ke(r," ")]," ")}),ObjectTypeDefinition:ma(function(e){var t=e.name,r=e.interfaces,n=e.directives,i=e.fields;return Ke(["type",t,Lr("implements ",Ke(r," & ")),Ke(n," "),ha(i)]," ")}),FieldDefinition:ma(function(e){var t=e.name,r=e.arguments,n=e.type,i=e.directives;return t+(S5(r)?Lr(`( +)`)),Ke([c,Ke(o,' '),s],' '); + },Argument:function(t){ + var r=t.name,n=t.value;return r+': '+n; + },FragmentSpread:function(t){ + var r=t.name,n=t.directives;return'...'+r+Lr(' ',Ke(n,' ')); + },InlineFragment:function(t){ + var r=t.typeCondition,n=t.directives,i=t.selectionSet;return Ke(['...',Lr('on ',r),Ke(n,' '),i],' '); + },FragmentDefinition:function(t){ + var r=t.name,n=t.typeCondition,i=t.variableDefinitions,o=t.directives,s=t.selectionSet;return'fragment '.concat(r).concat(Lr('(',Ke(i,', '),')'),' ')+'on '.concat(n,' ').concat(Lr('',Ke(o,' '),' '))+s; + },IntValue:function(t){ + var r=t.value;return r; + },FloatValue:function(t){ + var r=t.value;return r; + },StringValue:function(t,r){ + var n=t.value,i=t.block;return i?(0,Are.printBlockString)(n,r==='description'?'':' '):JSON.stringify(n); + },BooleanValue:function(t){ + var r=t.value;return r?'true':'false'; + },NullValue:function(){ + return'null'; + },EnumValue:function(t){ + var r=t.value;return r; + },ListValue:function(t){ + var r=t.values;return'['+Ke(r,', ')+']'; + },ObjectValue:function(t){ + var r=t.fields;return'{'+Ke(r,', ')+'}'; + },ObjectField:function(t){ + var r=t.name,n=t.value;return r+': '+n; + },Directive:function(t){ + var r=t.name,n=t.arguments;return'@'+r+Lr('(',Ke(n,', '),')'); + },NamedType:function(t){ + var r=t.name;return r; + },ListType:function(t){ + var r=t.type;return'['+r+']'; + },NonNullType:function(t){ + var r=t.type;return r+'!'; + },SchemaDefinition:ma(function(e){ + var t=e.directives,r=e.operationTypes;return Ke(['schema',Ke(t,' '),ha(r)],' '); + }),OperationTypeDefinition:function(t){ + var r=t.operation,n=t.type;return r+': '+n; + },ScalarTypeDefinition:ma(function(e){ + var t=e.name,r=e.directives;return Ke(['scalar',t,Ke(r,' ')],' '); + }),ObjectTypeDefinition:ma(function(e){ + var t=e.name,r=e.interfaces,n=e.directives,i=e.fields;return Ke(['type',t,Lr('implements ',Ke(r,' & ')),Ke(n,' '),ha(i)],' '); + }),FieldDefinition:ma(function(e){ + var t=e.name,r=e.arguments,n=e.type,i=e.directives;return t+(S5(r)?Lr(`( `,Ob(Ke(r,` `)),` -)`):Lr("(",Ke(r,", "),")"))+": "+n+Lr(" ",Ke(i," "))}),InputValueDefinition:ma(function(e){var t=e.name,r=e.type,n=e.defaultValue,i=e.directives;return Ke([t+": "+r,Lr("= ",n),Ke(i," ")]," ")}),InterfaceTypeDefinition:ma(function(e){var t=e.name,r=e.interfaces,n=e.directives,i=e.fields;return Ke(["interface",t,Lr("implements ",Ke(r," & ")),Ke(n," "),ha(i)]," ")}),UnionTypeDefinition:ma(function(e){var t=e.name,r=e.directives,n=e.types;return Ke(["union",t,Ke(r," "),n&&n.length!==0?"= "+Ke(n," | "):""]," ")}),EnumTypeDefinition:ma(function(e){var t=e.name,r=e.directives,n=e.values;return Ke(["enum",t,Ke(r," "),ha(n)]," ")}),EnumValueDefinition:ma(function(e){var t=e.name,r=e.directives;return Ke([t,Ke(r," ")]," ")}),InputObjectTypeDefinition:ma(function(e){var t=e.name,r=e.directives,n=e.fields;return Ke(["input",t,Ke(r," "),ha(n)]," ")}),DirectiveDefinition:ma(function(e){var t=e.name,r=e.arguments,n=e.repeatable,i=e.locations;return"directive @"+t+(S5(r)?Lr(`( +)`):Lr('(',Ke(r,', '),')'))+': '+n+Lr(' ',Ke(i,' ')); + }),InputValueDefinition:ma(function(e){ + var t=e.name,r=e.type,n=e.defaultValue,i=e.directives;return Ke([t+': '+r,Lr('= ',n),Ke(i,' ')],' '); + }),InterfaceTypeDefinition:ma(function(e){ + var t=e.name,r=e.interfaces,n=e.directives,i=e.fields;return Ke(['interface',t,Lr('implements ',Ke(r,' & ')),Ke(n,' '),ha(i)],' '); + }),UnionTypeDefinition:ma(function(e){ + var t=e.name,r=e.directives,n=e.types;return Ke(['union',t,Ke(r,' '),n&&n.length!==0?'= '+Ke(n,' | '):''],' '); + }),EnumTypeDefinition:ma(function(e){ + var t=e.name,r=e.directives,n=e.values;return Ke(['enum',t,Ke(r,' '),ha(n)],' '); + }),EnumValueDefinition:ma(function(e){ + var t=e.name,r=e.directives;return Ke([t,Ke(r,' ')],' '); + }),InputObjectTypeDefinition:ma(function(e){ + var t=e.name,r=e.directives,n=e.fields;return Ke(['input',t,Ke(r,' '),ha(n)],' '); + }),DirectiveDefinition:ma(function(e){ + var t=e.name,r=e.arguments,n=e.repeatable,i=e.locations;return'directive @'+t+(S5(r)?Lr(`( `,Ob(Ke(r,` `)),` -)`):Lr("(",Ke(r,", "),")"))+(n?" repeatable":"")+" on "+Ke(i," | ")}),SchemaExtension:function(t){var r=t.directives,n=t.operationTypes;return Ke(["extend schema",Ke(r," "),ha(n)]," ")},ScalarTypeExtension:function(t){var r=t.name,n=t.directives;return Ke(["extend scalar",r,Ke(n," ")]," ")},ObjectTypeExtension:function(t){var r=t.name,n=t.interfaces,i=t.directives,o=t.fields;return Ke(["extend type",r,Lr("implements ",Ke(n," & ")),Ke(i," "),ha(o)]," ")},InterfaceTypeExtension:function(t){var r=t.name,n=t.interfaces,i=t.directives,o=t.fields;return Ke(["extend interface",r,Lr("implements ",Ke(n," & ")),Ke(i," "),ha(o)]," ")},UnionTypeExtension:function(t){var r=t.name,n=t.directives,i=t.types;return Ke(["extend union",r,Ke(n," "),i&&i.length!==0?"= "+Ke(i," | "):""]," ")},EnumTypeExtension:function(t){var r=t.name,n=t.directives,i=t.values;return Ke(["extend enum",r,Ke(n," "),ha(i)]," ")},InputObjectTypeExtension:function(t){var r=t.name,n=t.directives,i=t.fields;return Ke(["extend input",r,Ke(n," "),ha(i)]," ")}};function ma(e){return function(t){return Ke([t.description,e(t)],` -`)}}function Ke(e){var t,r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"";return(t=e?.filter(function(n){return n}).join(r))!==null&&t!==void 0?t:""}function ha(e){return Lr(`{ +)`):Lr('(',Ke(r,', '),')'))+(n?' repeatable':'')+' on '+Ke(i,' | '); + }),SchemaExtension:function(t){ + var r=t.directives,n=t.operationTypes;return Ke(['extend schema',Ke(r,' '),ha(n)],' '); + },ScalarTypeExtension:function(t){ + var r=t.name,n=t.directives;return Ke(['extend scalar',r,Ke(n,' ')],' '); + },ObjectTypeExtension:function(t){ + var r=t.name,n=t.interfaces,i=t.directives,o=t.fields;return Ke(['extend type',r,Lr('implements ',Ke(n,' & ')),Ke(i,' '),ha(o)],' '); + },InterfaceTypeExtension:function(t){ + var r=t.name,n=t.interfaces,i=t.directives,o=t.fields;return Ke(['extend interface',r,Lr('implements ',Ke(n,' & ')),Ke(i,' '),ha(o)],' '); + },UnionTypeExtension:function(t){ + var r=t.name,n=t.directives,i=t.types;return Ke(['extend union',r,Ke(n,' '),i&&i.length!==0?'= '+Ke(i,' | '):''],' '); + },EnumTypeExtension:function(t){ + var r=t.name,n=t.directives,i=t.values;return Ke(['extend enum',r,Ke(n,' '),ha(i)],' '); + },InputObjectTypeExtension:function(t){ + var r=t.name,n=t.directives,i=t.fields;return Ke(['extend input',r,Ke(n,' '),ha(i)],' '); + }};function ma(e){ + return function(t){ + return Ke([t.description,e(t)],` +`); + }; + }function Ke(e){ + var t,r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:'';return(t=e?.filter(function(n){ + return n; + }).join(r))!==null&&t!==void 0?t:''; + }function ha(e){ + return Lr(`{ `,Ob(Ke(e,` `)),` -}`)}function Lr(e,t){var r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:"";return t!=null&&t!==""?e+t+r:""}function Ob(e){return Lr(" ",e.replace(/\n/g,` - `))}function Tre(e){return e.indexOf(` -`)!==-1}function S5(e){return e!=null&&e.some(Tre)}});var QS=X(HS=>{"use strict";Object.defineProperty(HS,"__esModule",{value:!0});HS.valueFromASTUntyped=GS;var Cre=zS(jt()),Sre=zS(Gn()),kre=zS(Zh()),$s=tr();function zS(e){return e&&e.__esModule?e:{default:e}}function GS(e,t){switch(e.kind){case $s.Kind.NULL:return null;case $s.Kind.INT:return parseInt(e.value,10);case $s.Kind.FLOAT:return parseFloat(e.value);case $s.Kind.STRING:case $s.Kind.ENUM:case $s.Kind.BOOLEAN:return e.value;case $s.Kind.LIST:return e.values.map(function(r){return GS(r,t)});case $s.Kind.OBJECT:return(0,kre.default)(e.fields,function(r){return r.name.value},function(r){return GS(r.value,t)});case $s.Kind.VARIABLE:return t?.[e.name.value]}(0,Sre.default)(0,"Unexpected value node: "+(0,Cre.default)(e))}});var Rt=X(ot=>{"use strict";Object.defineProperty(ot,"__esModule",{value:!0});ot.isType=WS;ot.assertType=P5;ot.isScalarType=Dc;ot.assertScalarType=Mre;ot.isObjectType=Hd;ot.assertObjectType=Ire;ot.isInterfaceType=Lc;ot.assertInterfaceType=Fre;ot.isUnionType=Pc;ot.assertUnionType=qre;ot.isEnumType=Rc;ot.assertEnumType=jre;ot.isInputObjectType=$h;ot.assertInputObjectType=Vre;ot.isListType=Lb;ot.assertListType=Ure;ot.isNonNullType=au;ot.assertNonNullType=Bre;ot.isInputType=YS;ot.assertInputType=Gre;ot.isOutputType=KS;ot.assertOutputType=zre;ot.isLeafType=R5;ot.assertLeafType=Hre;ot.isCompositeType=M5;ot.assertCompositeType=Qre;ot.isAbstractType=I5;ot.assertAbstractType=Wre;ot.GraphQLList=tu;ot.GraphQLNonNull=ru;ot.isWrappingType=ev;ot.assertWrappingType=Yre;ot.isNullableType=F5;ot.assertNullableType=q5;ot.getNullableType=Kre;ot.isNamedType=j5;ot.assertNamedType=Xre;ot.getNamedType=Zre;ot.argsToArgsConfig=G5;ot.isRequiredArgument=Jre;ot.isRequiredInputField=tne;ot.GraphQLInputObjectType=ot.GraphQLEnumType=ot.GraphQLUnionType=ot.GraphQLInterfaceType=ot.GraphQLObjectType=ot.GraphQLScalarType=void 0;var D5=so(Bd()),nu=ts(),hr=so(jt()),Ore=so(_l()),Db=so(RS()),ns=so(Sb()),wr=so(Io()),L5=so(Zh()),iu=so(Qh()),Nre=so($l()),Dre=so(es()),k5=so(T5()),ou=so(fb()),Lre=so(eu()),_h=ft(),Pre=tr(),O5=ao(),Rre=QS();function so(e){return e&&e.__esModule?e:{default:e}}function N5(e,t){for(var r=0;r0?e:void 0}var XS=function(){function e(r){var n,i,o,s=(n=r.parseValue)!==null&&n!==void 0?n:k5.default;this.name=r.name,this.description=r.description,this.specifiedByUrl=r.specifiedByUrl,this.serialize=(i=r.serialize)!==null&&i!==void 0?i:k5.default,this.parseValue=s,this.parseLiteral=(o=r.parseLiteral)!==null&&o!==void 0?o:function(l,c){return s((0,Rre.valueFromASTUntyped)(l,c))},this.extensions=r.extensions&&(0,ns.default)(r.extensions),this.astNode=r.astNode,this.extensionASTNodes=Qd(r.extensionASTNodes),typeof r.name=="string"||(0,wr.default)(0,"Must provide name."),r.specifiedByUrl==null||typeof r.specifiedByUrl=="string"||(0,wr.default)(0,"".concat(this.name,' must provide "specifiedByUrl" as a string, ')+"but got: ".concat((0,hr.default)(r.specifiedByUrl),".")),r.serialize==null||typeof r.serialize=="function"||(0,wr.default)(0,"".concat(this.name,' must provide "serialize" function. If this custom Scalar is also used as an input type, ensure "parseValue" and "parseLiteral" functions are also provided.')),r.parseLiteral&&(typeof r.parseValue=="function"&&typeof r.parseLiteral=="function"||(0,wr.default)(0,"".concat(this.name,' must provide both "parseValue" and "parseLiteral" functions.')))}var t=e.prototype;return t.toConfig=function(){var n;return{name:this.name,description:this.description,specifiedByUrl:this.specifiedByUrl,serialize:this.serialize,parseValue:this.parseValue,parseLiteral:this.parseLiteral,extensions:this.extensions,astNode:this.astNode,extensionASTNodes:(n=this.extensionASTNodes)!==null&&n!==void 0?n:[]}},t.toString=function(){return this.name},t.toJSON=function(){return this.toString()},zd(e,[{key:nu.SYMBOL_TO_STRING_TAG,get:function(){return"GraphQLScalarType"}}]),e}();ot.GraphQLScalarType=XS;(0,ou.default)(XS);var ZS=function(){function e(r){this.name=r.name,this.description=r.description,this.isTypeOf=r.isTypeOf,this.extensions=r.extensions&&(0,ns.default)(r.extensions),this.astNode=r.astNode,this.extensionASTNodes=Qd(r.extensionASTNodes),this._fields=U5.bind(void 0,r),this._interfaces=V5.bind(void 0,r),typeof r.name=="string"||(0,wr.default)(0,"Must provide name."),r.isTypeOf==null||typeof r.isTypeOf=="function"||(0,wr.default)(0,"".concat(this.name,' must provide "isTypeOf" as a function, ')+"but got: ".concat((0,hr.default)(r.isTypeOf),"."))}var t=e.prototype;return t.getFields=function(){return typeof this._fields=="function"&&(this._fields=this._fields()),this._fields},t.getInterfaces=function(){return typeof this._interfaces=="function"&&(this._interfaces=this._interfaces()),this._interfaces},t.toConfig=function(){return{name:this.name,description:this.description,interfaces:this.getInterfaces(),fields:B5(this.getFields()),isTypeOf:this.isTypeOf,extensions:this.extensions,astNode:this.astNode,extensionASTNodes:this.extensionASTNodes||[]}},t.toString=function(){return this.name},t.toJSON=function(){return this.toString()},zd(e,[{key:nu.SYMBOL_TO_STRING_TAG,get:function(){return"GraphQLObjectType"}}]),e}();ot.GraphQLObjectType=ZS;(0,ou.default)(ZS);function V5(e){var t,r=(t=Pb(e.interfaces))!==null&&t!==void 0?t:[];return Array.isArray(r)||(0,wr.default)(0,"".concat(e.name," interfaces must be an Array or a function which returns an Array.")),r}function U5(e){var t=Pb(e.fields);return Gd(t)||(0,wr.default)(0,"".concat(e.name," fields must be an object with field names as keys or a function which returns such an object.")),(0,Db.default)(t,function(r,n){var i;Gd(r)||(0,wr.default)(0,"".concat(e.name,".").concat(n," field config must be an object.")),!("isDeprecated"in r)||(0,wr.default)(0,"".concat(e.name,".").concat(n,' should provide "deprecationReason" instead of "isDeprecated".')),r.resolve==null||typeof r.resolve=="function"||(0,wr.default)(0,"".concat(e.name,".").concat(n," field resolver must be a function if ")+"provided, but got: ".concat((0,hr.default)(r.resolve),"."));var o=(i=r.args)!==null&&i!==void 0?i:{};Gd(o)||(0,wr.default)(0,"".concat(e.name,".").concat(n," args must be an object with argument names as keys."));var s=(0,D5.default)(o).map(function(l){var c=l[0],f=l[1];return{name:c,description:f.description,type:f.type,defaultValue:f.defaultValue,deprecationReason:f.deprecationReason,extensions:f.extensions&&(0,ns.default)(f.extensions),astNode:f.astNode}});return{name:n,description:r.description,type:r.type,args:s,resolve:r.resolve,subscribe:r.subscribe,isDeprecated:r.deprecationReason!=null,deprecationReason:r.deprecationReason,extensions:r.extensions&&(0,ns.default)(r.extensions),astNode:r.astNode}})}function Gd(e){return(0,Dre.default)(e)&&!Array.isArray(e)}function B5(e){return(0,Db.default)(e,function(t){return{description:t.description,type:t.type,args:G5(t.args),resolve:t.resolve,subscribe:t.subscribe,deprecationReason:t.deprecationReason,extensions:t.extensions,astNode:t.astNode}})}function G5(e){return(0,L5.default)(e,function(t){return t.name},function(t){return{description:t.description,type:t.type,defaultValue:t.defaultValue,deprecationReason:t.deprecationReason,extensions:t.extensions,astNode:t.astNode}})}function Jre(e){return au(e.type)&&e.defaultValue===void 0}var JS=function(){function e(r){this.name=r.name,this.description=r.description,this.resolveType=r.resolveType,this.extensions=r.extensions&&(0,ns.default)(r.extensions),this.astNode=r.astNode,this.extensionASTNodes=Qd(r.extensionASTNodes),this._fields=U5.bind(void 0,r),this._interfaces=V5.bind(void 0,r),typeof r.name=="string"||(0,wr.default)(0,"Must provide name."),r.resolveType==null||typeof r.resolveType=="function"||(0,wr.default)(0,"".concat(this.name,' must provide "resolveType" as a function, ')+"but got: ".concat((0,hr.default)(r.resolveType),"."))}var t=e.prototype;return t.getFields=function(){return typeof this._fields=="function"&&(this._fields=this._fields()),this._fields},t.getInterfaces=function(){return typeof this._interfaces=="function"&&(this._interfaces=this._interfaces()),this._interfaces},t.toConfig=function(){var n;return{name:this.name,description:this.description,interfaces:this.getInterfaces(),fields:B5(this.getFields()),resolveType:this.resolveType,extensions:this.extensions,astNode:this.astNode,extensionASTNodes:(n=this.extensionASTNodes)!==null&&n!==void 0?n:[]}},t.toString=function(){return this.name},t.toJSON=function(){return this.toString()},zd(e,[{key:nu.SYMBOL_TO_STRING_TAG,get:function(){return"GraphQLInterfaceType"}}]),e}();ot.GraphQLInterfaceType=JS;(0,ou.default)(JS);var _S=function(){function e(r){this.name=r.name,this.description=r.description,this.resolveType=r.resolveType,this.extensions=r.extensions&&(0,ns.default)(r.extensions),this.astNode=r.astNode,this.extensionASTNodes=Qd(r.extensionASTNodes),this._types=_re.bind(void 0,r),typeof r.name=="string"||(0,wr.default)(0,"Must provide name."),r.resolveType==null||typeof r.resolveType=="function"||(0,wr.default)(0,"".concat(this.name,' must provide "resolveType" as a function, ')+"but got: ".concat((0,hr.default)(r.resolveType),"."))}var t=e.prototype;return t.getTypes=function(){return typeof this._types=="function"&&(this._types=this._types()),this._types},t.toConfig=function(){var n;return{name:this.name,description:this.description,types:this.getTypes(),resolveType:this.resolveType,extensions:this.extensions,astNode:this.astNode,extensionASTNodes:(n=this.extensionASTNodes)!==null&&n!==void 0?n:[]}},t.toString=function(){return this.name},t.toJSON=function(){return this.toString()},zd(e,[{key:nu.SYMBOL_TO_STRING_TAG,get:function(){return"GraphQLUnionType"}}]),e}();ot.GraphQLUnionType=_S;(0,ou.default)(_S);function _re(e){var t=Pb(e.types);return Array.isArray(t)||(0,wr.default)(0,"Must provide Array of types or a function which returns such an array for Union ".concat(e.name,".")),t}var $S=function(){function e(r){this.name=r.name,this.description=r.description,this.extensions=r.extensions&&(0,ns.default)(r.extensions),this.astNode=r.astNode,this.extensionASTNodes=Qd(r.extensionASTNodes),this._values=$re(this.name,r.values),this._valueLookup=new Map(this._values.map(function(n){return[n.value,n]})),this._nameLookup=(0,Ore.default)(this._values,function(n){return n.name}),typeof r.name=="string"||(0,wr.default)(0,"Must provide name.")}var t=e.prototype;return t.getValues=function(){return this._values},t.getValue=function(n){return this._nameLookup[n]},t.serialize=function(n){var i=this._valueLookup.get(n);if(i===void 0)throw new _h.GraphQLError('Enum "'.concat(this.name,'" cannot represent value: ').concat((0,hr.default)(n)));return i.name},t.parseValue=function(n){if(typeof n!="string"){var i=(0,hr.default)(n);throw new _h.GraphQLError('Enum "'.concat(this.name,'" cannot represent non-string value: ').concat(i,".")+Nb(this,i))}var o=this.getValue(n);if(o==null)throw new _h.GraphQLError('Value "'.concat(n,'" does not exist in "').concat(this.name,'" enum.')+Nb(this,n));return o.value},t.parseLiteral=function(n,i){if(n.kind!==Pre.Kind.ENUM){var o=(0,O5.print)(n);throw new _h.GraphQLError('Enum "'.concat(this.name,'" cannot represent non-enum value: ').concat(o,".")+Nb(this,o),n)}var s=this.getValue(n.value);if(s==null){var l=(0,O5.print)(n);throw new _h.GraphQLError('Value "'.concat(l,'" does not exist in "').concat(this.name,'" enum.')+Nb(this,l),n)}return s.value},t.toConfig=function(){var n,i=(0,L5.default)(this.getValues(),function(o){return o.name},function(o){return{description:o.description,value:o.value,deprecationReason:o.deprecationReason,extensions:o.extensions,astNode:o.astNode}});return{name:this.name,description:this.description,values:i,extensions:this.extensions,astNode:this.astNode,extensionASTNodes:(n=this.extensionASTNodes)!==null&&n!==void 0?n:[]}},t.toString=function(){return this.name},t.toJSON=function(){return this.toString()},zd(e,[{key:nu.SYMBOL_TO_STRING_TAG,get:function(){return"GraphQLEnumType"}}]),e}();ot.GraphQLEnumType=$S;(0,ou.default)($S);function Nb(e,t){var r=e.getValues().map(function(i){return i.name}),n=(0,Lre.default)(t,r);return(0,Nre.default)("the enum value",n)}function $re(e,t){return Gd(t)||(0,wr.default)(0,"".concat(e," values must be an object with value names as keys.")),(0,D5.default)(t).map(function(r){var n=r[0],i=r[1];return Gd(i)||(0,wr.default)(0,"".concat(e,".").concat(n,' must refer to an object with a "value" key ')+"representing an internal value but got: ".concat((0,hr.default)(i),".")),!("isDeprecated"in i)||(0,wr.default)(0,"".concat(e,".").concat(n,' should provide "deprecationReason" instead of "isDeprecated".')),{name:n,description:i.description,value:i.value!==void 0?i.value:n,isDeprecated:i.deprecationReason!=null,deprecationReason:i.deprecationReason,extensions:i.extensions&&(0,ns.default)(i.extensions),astNode:i.astNode}})}var ek=function(){function e(r){this.name=r.name,this.description=r.description,this.extensions=r.extensions&&(0,ns.default)(r.extensions),this.astNode=r.astNode,this.extensionASTNodes=Qd(r.extensionASTNodes),this._fields=ene.bind(void 0,r),typeof r.name=="string"||(0,wr.default)(0,"Must provide name.")}var t=e.prototype;return t.getFields=function(){return typeof this._fields=="function"&&(this._fields=this._fields()),this._fields},t.toConfig=function(){var n,i=(0,Db.default)(this.getFields(),function(o){return{description:o.description,type:o.type,defaultValue:o.defaultValue,deprecationReason:o.deprecationReason,extensions:o.extensions,astNode:o.astNode}});return{name:this.name,description:this.description,fields:i,extensions:this.extensions,astNode:this.astNode,extensionASTNodes:(n=this.extensionASTNodes)!==null&&n!==void 0?n:[]}},t.toString=function(){return this.name},t.toJSON=function(){return this.toString()},zd(e,[{key:nu.SYMBOL_TO_STRING_TAG,get:function(){return"GraphQLInputObjectType"}}]),e}();ot.GraphQLInputObjectType=ek;(0,ou.default)(ek);function ene(e){var t=Pb(e.fields);return Gd(t)||(0,wr.default)(0,"".concat(e.name," fields must be an object with field names as keys or a function which returns such an object.")),(0,Db.default)(t,function(r,n){return!("resolve"in r)||(0,wr.default)(0,"".concat(e.name,".").concat(n," field has a resolve property, but Input Types cannot define resolvers.")),{name:n,description:r.description,type:r.type,defaultValue:r.defaultValue,deprecationReason:r.deprecationReason,extensions:r.extensions&&(0,ns.default)(r.extensions),astNode:r.astNode}})}function tne(e){return au(e.type)&&e.defaultValue===void 0}});var rv=X(tv=>{"use strict";Object.defineProperty(tv,"__esModule",{value:!0});tv.isEqualType=tk;tv.isTypeSubTypeOf=Rb;tv.doTypesOverlap=rne;var si=Rt();function tk(e,t){return e===t?!0:(0,si.isNonNullType)(e)&&(0,si.isNonNullType)(t)||(0,si.isListType)(e)&&(0,si.isListType)(t)?tk(e.ofType,t.ofType):!1}function Rb(e,t,r){return t===r?!0:(0,si.isNonNullType)(r)?(0,si.isNonNullType)(t)?Rb(e,t.ofType,r.ofType):!1:(0,si.isNonNullType)(t)?Rb(e,t.ofType,r):(0,si.isListType)(r)?(0,si.isListType)(t)?Rb(e,t.ofType,r.ofType):!1:(0,si.isListType)(t)?!1:(0,si.isAbstractType)(r)&&((0,si.isInterfaceType)(t)||(0,si.isObjectType)(t))&&e.isSubType(r,t)}function rne(e,t,r){return t===r?!0:(0,si.isAbstractType)(t)?(0,si.isAbstractType)(r)?e.getPossibleTypes(t).some(function(n){return e.isSubType(r,n)}):e.isSubType(t,r):(0,si.isAbstractType)(r)?e.isSubType(r,t):!1}});var rk=X(Mb=>{"use strict";Object.defineProperty(Mb,"__esModule",{value:!0});Mb.default=void 0;var nne=ts(),ine=Array.from||function(e,t,r){if(e==null)throw new TypeError("Array.from requires an array-like object - not null or undefined");var n=e[nne.SYMBOL_ITERATOR];if(typeof n=="function"){for(var i=n.call(e),o=[],s,l=0;!(s=i.next()).done;++l)if(o.push(t.call(r,s.value,l)),l>9999999)throw new TypeError("Near-infinite iteration.");return o}var c=e.length;if(typeof c=="number"&&c>=0&&c%1===0){for(var f=[],m=0;m{"use strict";Object.defineProperty(Ib,"__esModule",{value:!0});Ib.default=void 0;var ane=Number.isFinite||function(e){return typeof e=="number"&&isFinite(e)},sne=ane;Ib.default=sne});var qb=X(ik=>{"use strict";Object.defineProperty(ik,"__esModule",{value:!0});ik.default=une;var lne=ts();function Fb(e){"@babel/helpers - typeof";return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?Fb=function(r){return typeof r}:Fb=function(r){return r&&typeof Symbol=="function"&&r.constructor===Symbol&&r!==Symbol.prototype?"symbol":typeof r},Fb(e)}function une(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:function(m){return m};if(e==null||Fb(e)!=="object")return null;if(Array.isArray(e))return e.map(t);var r=e[lne.SYMBOL_ITERATOR];if(typeof r=="function"){for(var n=r.call(e),i=[],o,s=0;!(o=n.next()).done;++s)i.push(t(o.value,s));return i}var l=e.length;if(typeof l=="number"&&l>=0&&l%1===0){for(var c=[],f=0;f{"use strict";Object.defineProperty(jb,"__esModule",{value:!0});jb.default=void 0;var cne=Number.isInteger||function(e){return typeof e=="number"&&isFinite(e)&&Math.floor(e)===e},fne=cne;jb.default=fne});var is=X(Di=>{"use strict";Object.defineProperty(Di,"__esModule",{value:!0});Di.isSpecifiedScalarType=wne;Di.specifiedScalarTypes=Di.GraphQLID=Di.GraphQLBoolean=Di.GraphQLString=Di.GraphQLFloat=Di.GraphQLInt=void 0;var Vb=Bb(nk()),Ub=Bb(z5()),va=Bb(jt()),H5=Bb(es()),Mc=tr(),nv=ao(),Nn=ft(),iv=Rt();function Bb(e){return e&&e.__esModule?e:{default:e}}var ok=2147483647,ak=-2147483648;function dne(e){var t=ov(e);if(typeof t=="boolean")return t?1:0;var r=t;if(typeof t=="string"&&t!==""&&(r=Number(t)),!(0,Ub.default)(r))throw new Nn.GraphQLError("Int cannot represent non-integer value: ".concat((0,va.default)(t)));if(r>ok||rok||eok||r{"use strict";Object.defineProperty(sk,"__esModule",{value:!0});sk.astFromValue=sv;var Ene=Wd(nk()),Tne=Wd(oo()),J5=Wd(jt()),Cne=Wd(Gn()),Sne=Wd(es()),kne=Wd(qb()),Fo=tr(),One=is(),av=Rt();function Wd(e){return e&&e.__esModule?e:{default:e}}function sv(e,t){if((0,av.isNonNullType)(t)){var r=sv(e,t.ofType);return r?.kind===Fo.Kind.NULL?null:r}if(e===null)return{kind:Fo.Kind.NULL};if(e===void 0)return null;if((0,av.isListType)(t)){var n=t.ofType,i=(0,kne.default)(e);if(i!=null){for(var o=[],s=0;s{"use strict";Object.defineProperty(Xt,"__esModule",{value:!0});Xt.isIntrospectionType=Fne;Xt.introspectionTypes=Xt.TypeNameMetaFieldDef=Xt.TypeMetaFieldDef=Xt.SchemaMetaFieldDef=Xt.__TypeKind=Xt.TypeKind=Xt.__EnumValue=Xt.__InputValue=Xt.__Field=Xt.__Type=Xt.__DirectiveLocation=Xt.__Directive=Xt.__Schema=void 0;var lk=uk(oo()),Nne=uk(jt()),Dne=uk(Gn()),Lne=ao(),yn=Fd(),Pne=lv(),rr=is(),Xe=Rt();function uk(e){return e&&e.__esModule?e:{default:e}}var ck=new Xe.GraphQLObjectType({name:"__Schema",description:"A GraphQL Schema defines the capabilities of a GraphQL server. It exposes all available types and directives on the server, as well as the entry points for query, mutation, and subscription operations.",fields:function(){return{description:{type:rr.GraphQLString,resolve:function(r){return r.description}},types:{description:"A list of all types supported by this server.",type:new Xe.GraphQLNonNull(new Xe.GraphQLList(new Xe.GraphQLNonNull(qo))),resolve:function(r){return(0,lk.default)(r.getTypeMap())}},queryType:{description:"The type that query operations will be rooted at.",type:new Xe.GraphQLNonNull(qo),resolve:function(r){return r.getQueryType()}},mutationType:{description:"If this server supports mutation, the type that mutation operations will be rooted at.",type:qo,resolve:function(r){return r.getMutationType()}},subscriptionType:{description:"If this server support subscription, the type that subscription operations will be rooted at.",type:qo,resolve:function(r){return r.getSubscriptionType()}},directives:{description:"A list of all directives supported by this server.",type:new Xe.GraphQLNonNull(new Xe.GraphQLList(new Xe.GraphQLNonNull(fk))),resolve:function(r){return r.getDirectives()}}}}});Xt.__Schema=ck;var fk=new Xe.GraphQLObjectType({name:"__Directive",description:`A Directive provides a way to describe alternate runtime execution and type validation behavior in a GraphQL document. +}`); + }function Lr(e,t){ + var r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:'';return t!=null&&t!==''?e+t+r:''; + }function Ob(e){ + return Lr(' ',e.replace(/\n/g,` + `)); + }function Tre(e){ + return e.indexOf(` +`)!==-1; + }function S5(e){ + return e!=null&&e.some(Tre); + } +});var QS=X(HS=>{ + 'use strict';Object.defineProperty(HS,'__esModule',{value:!0});HS.valueFromASTUntyped=GS;var Cre=zS(jt()),Sre=zS(Gn()),kre=zS(Zh()),$s=tr();function zS(e){ + return e&&e.__esModule?e:{default:e}; + }function GS(e,t){ + switch(e.kind){ + case $s.Kind.NULL:return null;case $s.Kind.INT:return parseInt(e.value,10);case $s.Kind.FLOAT:return parseFloat(e.value);case $s.Kind.STRING:case $s.Kind.ENUM:case $s.Kind.BOOLEAN:return e.value;case $s.Kind.LIST:return e.values.map(function(r){ + return GS(r,t); + });case $s.Kind.OBJECT:return(0,kre.default)(e.fields,function(r){ + return r.name.value; + },function(r){ + return GS(r.value,t); + });case $s.Kind.VARIABLE:return t?.[e.name.value]; + }(0,Sre.default)(0,'Unexpected value node: '+(0,Cre.default)(e)); + } +});var Rt=X(ot=>{ + 'use strict';Object.defineProperty(ot,'__esModule',{value:!0});ot.isType=WS;ot.assertType=P5;ot.isScalarType=Dc;ot.assertScalarType=Mre;ot.isObjectType=Hd;ot.assertObjectType=Ire;ot.isInterfaceType=Lc;ot.assertInterfaceType=Fre;ot.isUnionType=Pc;ot.assertUnionType=qre;ot.isEnumType=Rc;ot.assertEnumType=jre;ot.isInputObjectType=$h;ot.assertInputObjectType=Vre;ot.isListType=Lb;ot.assertListType=Ure;ot.isNonNullType=au;ot.assertNonNullType=Bre;ot.isInputType=YS;ot.assertInputType=Gre;ot.isOutputType=KS;ot.assertOutputType=zre;ot.isLeafType=R5;ot.assertLeafType=Hre;ot.isCompositeType=M5;ot.assertCompositeType=Qre;ot.isAbstractType=I5;ot.assertAbstractType=Wre;ot.GraphQLList=tu;ot.GraphQLNonNull=ru;ot.isWrappingType=ev;ot.assertWrappingType=Yre;ot.isNullableType=F5;ot.assertNullableType=q5;ot.getNullableType=Kre;ot.isNamedType=j5;ot.assertNamedType=Xre;ot.getNamedType=Zre;ot.argsToArgsConfig=G5;ot.isRequiredArgument=Jre;ot.isRequiredInputField=tne;ot.GraphQLInputObjectType=ot.GraphQLEnumType=ot.GraphQLUnionType=ot.GraphQLInterfaceType=ot.GraphQLObjectType=ot.GraphQLScalarType=void 0;var D5=so(Bd()),nu=ts(),hr=so(jt()),Ore=so(_l()),Db=so(RS()),ns=so(Sb()),wr=so(Io()),L5=so(Zh()),iu=so(Qh()),Nre=so($l()),Dre=so(es()),k5=so(T5()),ou=so(fb()),Lre=so(eu()),_h=ft(),Pre=tr(),O5=ao(),Rre=QS();function so(e){ + return e&&e.__esModule?e:{default:e}; + }function N5(e,t){ + for(var r=0;r0?e:void 0; + }var XS=function(){ + function e(r){ + var n,i,o,s=(n=r.parseValue)!==null&&n!==void 0?n:k5.default;this.name=r.name,this.description=r.description,this.specifiedByUrl=r.specifiedByUrl,this.serialize=(i=r.serialize)!==null&&i!==void 0?i:k5.default,this.parseValue=s,this.parseLiteral=(o=r.parseLiteral)!==null&&o!==void 0?o:function(l,c){ + return s((0,Rre.valueFromASTUntyped)(l,c)); + },this.extensions=r.extensions&&(0,ns.default)(r.extensions),this.astNode=r.astNode,this.extensionASTNodes=Qd(r.extensionASTNodes),typeof r.name=='string'||(0,wr.default)(0,'Must provide name.'),r.specifiedByUrl==null||typeof r.specifiedByUrl=='string'||(0,wr.default)(0,''.concat(this.name,' must provide "specifiedByUrl" as a string, ')+'but got: '.concat((0,hr.default)(r.specifiedByUrl),'.')),r.serialize==null||typeof r.serialize=='function'||(0,wr.default)(0,''.concat(this.name,' must provide "serialize" function. If this custom Scalar is also used as an input type, ensure "parseValue" and "parseLiteral" functions are also provided.')),r.parseLiteral&&(typeof r.parseValue=='function'&&typeof r.parseLiteral=='function'||(0,wr.default)(0,''.concat(this.name,' must provide both "parseValue" and "parseLiteral" functions.'))); + }var t=e.prototype;return t.toConfig=function(){ + var n;return{name:this.name,description:this.description,specifiedByUrl:this.specifiedByUrl,serialize:this.serialize,parseValue:this.parseValue,parseLiteral:this.parseLiteral,extensions:this.extensions,astNode:this.astNode,extensionASTNodes:(n=this.extensionASTNodes)!==null&&n!==void 0?n:[]}; + },t.toString=function(){ + return this.name; + },t.toJSON=function(){ + return this.toString(); + },zd(e,[{key:nu.SYMBOL_TO_STRING_TAG,get:function(){ + return'GraphQLScalarType'; + }}]),e; + }();ot.GraphQLScalarType=XS;(0,ou.default)(XS);var ZS=function(){ + function e(r){ + this.name=r.name,this.description=r.description,this.isTypeOf=r.isTypeOf,this.extensions=r.extensions&&(0,ns.default)(r.extensions),this.astNode=r.astNode,this.extensionASTNodes=Qd(r.extensionASTNodes),this._fields=U5.bind(void 0,r),this._interfaces=V5.bind(void 0,r),typeof r.name=='string'||(0,wr.default)(0,'Must provide name.'),r.isTypeOf==null||typeof r.isTypeOf=='function'||(0,wr.default)(0,''.concat(this.name,' must provide "isTypeOf" as a function, ')+'but got: '.concat((0,hr.default)(r.isTypeOf),'.')); + }var t=e.prototype;return t.getFields=function(){ + return typeof this._fields=='function'&&(this._fields=this._fields()),this._fields; + },t.getInterfaces=function(){ + return typeof this._interfaces=='function'&&(this._interfaces=this._interfaces()),this._interfaces; + },t.toConfig=function(){ + return{name:this.name,description:this.description,interfaces:this.getInterfaces(),fields:B5(this.getFields()),isTypeOf:this.isTypeOf,extensions:this.extensions,astNode:this.astNode,extensionASTNodes:this.extensionASTNodes||[]}; + },t.toString=function(){ + return this.name; + },t.toJSON=function(){ + return this.toString(); + },zd(e,[{key:nu.SYMBOL_TO_STRING_TAG,get:function(){ + return'GraphQLObjectType'; + }}]),e; + }();ot.GraphQLObjectType=ZS;(0,ou.default)(ZS);function V5(e){ + var t,r=(t=Pb(e.interfaces))!==null&&t!==void 0?t:[];return Array.isArray(r)||(0,wr.default)(0,''.concat(e.name,' interfaces must be an Array or a function which returns an Array.')),r; + }function U5(e){ + var t=Pb(e.fields);return Gd(t)||(0,wr.default)(0,''.concat(e.name,' fields must be an object with field names as keys or a function which returns such an object.')),(0,Db.default)(t,function(r,n){ + var i;Gd(r)||(0,wr.default)(0,''.concat(e.name,'.').concat(n,' field config must be an object.')),!('isDeprecated'in r)||(0,wr.default)(0,''.concat(e.name,'.').concat(n,' should provide "deprecationReason" instead of "isDeprecated".')),r.resolve==null||typeof r.resolve=='function'||(0,wr.default)(0,''.concat(e.name,'.').concat(n,' field resolver must be a function if ')+'provided, but got: '.concat((0,hr.default)(r.resolve),'.'));var o=(i=r.args)!==null&&i!==void 0?i:{};Gd(o)||(0,wr.default)(0,''.concat(e.name,'.').concat(n,' args must be an object with argument names as keys.'));var s=(0,D5.default)(o).map(function(l){ + var c=l[0],f=l[1];return{name:c,description:f.description,type:f.type,defaultValue:f.defaultValue,deprecationReason:f.deprecationReason,extensions:f.extensions&&(0,ns.default)(f.extensions),astNode:f.astNode}; + });return{name:n,description:r.description,type:r.type,args:s,resolve:r.resolve,subscribe:r.subscribe,isDeprecated:r.deprecationReason!=null,deprecationReason:r.deprecationReason,extensions:r.extensions&&(0,ns.default)(r.extensions),astNode:r.astNode}; + }); + }function Gd(e){ + return(0,Dre.default)(e)&&!Array.isArray(e); + }function B5(e){ + return(0,Db.default)(e,function(t){ + return{description:t.description,type:t.type,args:G5(t.args),resolve:t.resolve,subscribe:t.subscribe,deprecationReason:t.deprecationReason,extensions:t.extensions,astNode:t.astNode}; + }); + }function G5(e){ + return(0,L5.default)(e,function(t){ + return t.name; + },function(t){ + return{description:t.description,type:t.type,defaultValue:t.defaultValue,deprecationReason:t.deprecationReason,extensions:t.extensions,astNode:t.astNode}; + }); + }function Jre(e){ + return au(e.type)&&e.defaultValue===void 0; + }var JS=function(){ + function e(r){ + this.name=r.name,this.description=r.description,this.resolveType=r.resolveType,this.extensions=r.extensions&&(0,ns.default)(r.extensions),this.astNode=r.astNode,this.extensionASTNodes=Qd(r.extensionASTNodes),this._fields=U5.bind(void 0,r),this._interfaces=V5.bind(void 0,r),typeof r.name=='string'||(0,wr.default)(0,'Must provide name.'),r.resolveType==null||typeof r.resolveType=='function'||(0,wr.default)(0,''.concat(this.name,' must provide "resolveType" as a function, ')+'but got: '.concat((0,hr.default)(r.resolveType),'.')); + }var t=e.prototype;return t.getFields=function(){ + return typeof this._fields=='function'&&(this._fields=this._fields()),this._fields; + },t.getInterfaces=function(){ + return typeof this._interfaces=='function'&&(this._interfaces=this._interfaces()),this._interfaces; + },t.toConfig=function(){ + var n;return{name:this.name,description:this.description,interfaces:this.getInterfaces(),fields:B5(this.getFields()),resolveType:this.resolveType,extensions:this.extensions,astNode:this.astNode,extensionASTNodes:(n=this.extensionASTNodes)!==null&&n!==void 0?n:[]}; + },t.toString=function(){ + return this.name; + },t.toJSON=function(){ + return this.toString(); + },zd(e,[{key:nu.SYMBOL_TO_STRING_TAG,get:function(){ + return'GraphQLInterfaceType'; + }}]),e; + }();ot.GraphQLInterfaceType=JS;(0,ou.default)(JS);var _S=function(){ + function e(r){ + this.name=r.name,this.description=r.description,this.resolveType=r.resolveType,this.extensions=r.extensions&&(0,ns.default)(r.extensions),this.astNode=r.astNode,this.extensionASTNodes=Qd(r.extensionASTNodes),this._types=_re.bind(void 0,r),typeof r.name=='string'||(0,wr.default)(0,'Must provide name.'),r.resolveType==null||typeof r.resolveType=='function'||(0,wr.default)(0,''.concat(this.name,' must provide "resolveType" as a function, ')+'but got: '.concat((0,hr.default)(r.resolveType),'.')); + }var t=e.prototype;return t.getTypes=function(){ + return typeof this._types=='function'&&(this._types=this._types()),this._types; + },t.toConfig=function(){ + var n;return{name:this.name,description:this.description,types:this.getTypes(),resolveType:this.resolveType,extensions:this.extensions,astNode:this.astNode,extensionASTNodes:(n=this.extensionASTNodes)!==null&&n!==void 0?n:[]}; + },t.toString=function(){ + return this.name; + },t.toJSON=function(){ + return this.toString(); + },zd(e,[{key:nu.SYMBOL_TO_STRING_TAG,get:function(){ + return'GraphQLUnionType'; + }}]),e; + }();ot.GraphQLUnionType=_S;(0,ou.default)(_S);function _re(e){ + var t=Pb(e.types);return Array.isArray(t)||(0,wr.default)(0,'Must provide Array of types or a function which returns such an array for Union '.concat(e.name,'.')),t; + }var $S=function(){ + function e(r){ + this.name=r.name,this.description=r.description,this.extensions=r.extensions&&(0,ns.default)(r.extensions),this.astNode=r.astNode,this.extensionASTNodes=Qd(r.extensionASTNodes),this._values=$re(this.name,r.values),this._valueLookup=new Map(this._values.map(function(n){ + return[n.value,n]; + })),this._nameLookup=(0,Ore.default)(this._values,function(n){ + return n.name; + }),typeof r.name=='string'||(0,wr.default)(0,'Must provide name.'); + }var t=e.prototype;return t.getValues=function(){ + return this._values; + },t.getValue=function(n){ + return this._nameLookup[n]; + },t.serialize=function(n){ + var i=this._valueLookup.get(n);if(i===void 0)throw new _h.GraphQLError('Enum "'.concat(this.name,'" cannot represent value: ').concat((0,hr.default)(n)));return i.name; + },t.parseValue=function(n){ + if(typeof n!='string'){ + var i=(0,hr.default)(n);throw new _h.GraphQLError('Enum "'.concat(this.name,'" cannot represent non-string value: ').concat(i,'.')+Nb(this,i)); + }var o=this.getValue(n);if(o==null)throw new _h.GraphQLError('Value "'.concat(n,'" does not exist in "').concat(this.name,'" enum.')+Nb(this,n));return o.value; + },t.parseLiteral=function(n,i){ + if(n.kind!==Pre.Kind.ENUM){ + var o=(0,O5.print)(n);throw new _h.GraphQLError('Enum "'.concat(this.name,'" cannot represent non-enum value: ').concat(o,'.')+Nb(this,o),n); + }var s=this.getValue(n.value);if(s==null){ + var l=(0,O5.print)(n);throw new _h.GraphQLError('Value "'.concat(l,'" does not exist in "').concat(this.name,'" enum.')+Nb(this,l),n); + }return s.value; + },t.toConfig=function(){ + var n,i=(0,L5.default)(this.getValues(),function(o){ + return o.name; + },function(o){ + return{description:o.description,value:o.value,deprecationReason:o.deprecationReason,extensions:o.extensions,astNode:o.astNode}; + });return{name:this.name,description:this.description,values:i,extensions:this.extensions,astNode:this.astNode,extensionASTNodes:(n=this.extensionASTNodes)!==null&&n!==void 0?n:[]}; + },t.toString=function(){ + return this.name; + },t.toJSON=function(){ + return this.toString(); + },zd(e,[{key:nu.SYMBOL_TO_STRING_TAG,get:function(){ + return'GraphQLEnumType'; + }}]),e; + }();ot.GraphQLEnumType=$S;(0,ou.default)($S);function Nb(e,t){ + var r=e.getValues().map(function(i){ + return i.name; + }),n=(0,Lre.default)(t,r);return(0,Nre.default)('the enum value',n); + }function $re(e,t){ + return Gd(t)||(0,wr.default)(0,''.concat(e,' values must be an object with value names as keys.')),(0,D5.default)(t).map(function(r){ + var n=r[0],i=r[1];return Gd(i)||(0,wr.default)(0,''.concat(e,'.').concat(n,' must refer to an object with a "value" key ')+'representing an internal value but got: '.concat((0,hr.default)(i),'.')),!('isDeprecated'in i)||(0,wr.default)(0,''.concat(e,'.').concat(n,' should provide "deprecationReason" instead of "isDeprecated".')),{name:n,description:i.description,value:i.value!==void 0?i.value:n,isDeprecated:i.deprecationReason!=null,deprecationReason:i.deprecationReason,extensions:i.extensions&&(0,ns.default)(i.extensions),astNode:i.astNode}; + }); + }var ek=function(){ + function e(r){ + this.name=r.name,this.description=r.description,this.extensions=r.extensions&&(0,ns.default)(r.extensions),this.astNode=r.astNode,this.extensionASTNodes=Qd(r.extensionASTNodes),this._fields=ene.bind(void 0,r),typeof r.name=='string'||(0,wr.default)(0,'Must provide name.'); + }var t=e.prototype;return t.getFields=function(){ + return typeof this._fields=='function'&&(this._fields=this._fields()),this._fields; + },t.toConfig=function(){ + var n,i=(0,Db.default)(this.getFields(),function(o){ + return{description:o.description,type:o.type,defaultValue:o.defaultValue,deprecationReason:o.deprecationReason,extensions:o.extensions,astNode:o.astNode}; + });return{name:this.name,description:this.description,fields:i,extensions:this.extensions,astNode:this.astNode,extensionASTNodes:(n=this.extensionASTNodes)!==null&&n!==void 0?n:[]}; + },t.toString=function(){ + return this.name; + },t.toJSON=function(){ + return this.toString(); + },zd(e,[{key:nu.SYMBOL_TO_STRING_TAG,get:function(){ + return'GraphQLInputObjectType'; + }}]),e; + }();ot.GraphQLInputObjectType=ek;(0,ou.default)(ek);function ene(e){ + var t=Pb(e.fields);return Gd(t)||(0,wr.default)(0,''.concat(e.name,' fields must be an object with field names as keys or a function which returns such an object.')),(0,Db.default)(t,function(r,n){ + return!('resolve'in r)||(0,wr.default)(0,''.concat(e.name,'.').concat(n,' field has a resolve property, but Input Types cannot define resolvers.')),{name:n,description:r.description,type:r.type,defaultValue:r.defaultValue,deprecationReason:r.deprecationReason,extensions:r.extensions&&(0,ns.default)(r.extensions),astNode:r.astNode}; + }); + }function tne(e){ + return au(e.type)&&e.defaultValue===void 0; + } +});var rv=X(tv=>{ + 'use strict';Object.defineProperty(tv,'__esModule',{value:!0});tv.isEqualType=tk;tv.isTypeSubTypeOf=Rb;tv.doTypesOverlap=rne;var si=Rt();function tk(e,t){ + return e===t?!0:(0,si.isNonNullType)(e)&&(0,si.isNonNullType)(t)||(0,si.isListType)(e)&&(0,si.isListType)(t)?tk(e.ofType,t.ofType):!1; + }function Rb(e,t,r){ + return t===r?!0:(0,si.isNonNullType)(r)?(0,si.isNonNullType)(t)?Rb(e,t.ofType,r.ofType):!1:(0,si.isNonNullType)(t)?Rb(e,t.ofType,r):(0,si.isListType)(r)?(0,si.isListType)(t)?Rb(e,t.ofType,r.ofType):!1:(0,si.isListType)(t)?!1:(0,si.isAbstractType)(r)&&((0,si.isInterfaceType)(t)||(0,si.isObjectType)(t))&&e.isSubType(r,t); + }function rne(e,t,r){ + return t===r?!0:(0,si.isAbstractType)(t)?(0,si.isAbstractType)(r)?e.getPossibleTypes(t).some(function(n){ + return e.isSubType(r,n); + }):e.isSubType(t,r):(0,si.isAbstractType)(r)?e.isSubType(r,t):!1; + } +});var rk=X(Mb=>{ + 'use strict';Object.defineProperty(Mb,'__esModule',{value:!0});Mb.default=void 0;var nne=ts(),ine=Array.from||function(e,t,r){ + if(e==null)throw new TypeError('Array.from requires an array-like object - not null or undefined');var n=e[nne.SYMBOL_ITERATOR];if(typeof n=='function'){ + for(var i=n.call(e),o=[],s,l=0;!(s=i.next()).done;++l)if(o.push(t.call(r,s.value,l)),l>9999999)throw new TypeError('Near-infinite iteration.');return o; + }var c=e.length;if(typeof c=='number'&&c>=0&&c%1===0){ + for(var f=[],m=0;m{ + 'use strict';Object.defineProperty(Ib,'__esModule',{value:!0});Ib.default=void 0;var ane=Number.isFinite||function(e){ + return typeof e=='number'&&isFinite(e); + },sne=ane;Ib.default=sne; +});var qb=X(ik=>{ + 'use strict';Object.defineProperty(ik,'__esModule',{value:!0});ik.default=une;var lne=ts();function Fb(e){ + '@babel/helpers - typeof';return typeof Symbol=='function'&&typeof Symbol.iterator=='symbol'?Fb=function(r){ + return typeof r; + }:Fb=function(r){ + return r&&typeof Symbol=='function'&&r.constructor===Symbol&&r!==Symbol.prototype?'symbol':typeof r; + },Fb(e); + }function une(e){ + var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:function(m){ + return m; + };if(e==null||Fb(e)!=='object')return null;if(Array.isArray(e))return e.map(t);var r=e[lne.SYMBOL_ITERATOR];if(typeof r=='function'){ + for(var n=r.call(e),i=[],o,s=0;!(o=n.next()).done;++s)i.push(t(o.value,s));return i; + }var l=e.length;if(typeof l=='number'&&l>=0&&l%1===0){ + for(var c=[],f=0;f{ + 'use strict';Object.defineProperty(jb,'__esModule',{value:!0});jb.default=void 0;var cne=Number.isInteger||function(e){ + return typeof e=='number'&&isFinite(e)&&Math.floor(e)===e; + },fne=cne;jb.default=fne; +});var is=X(Di=>{ + 'use strict';Object.defineProperty(Di,'__esModule',{value:!0});Di.isSpecifiedScalarType=wne;Di.specifiedScalarTypes=Di.GraphQLID=Di.GraphQLBoolean=Di.GraphQLString=Di.GraphQLFloat=Di.GraphQLInt=void 0;var Vb=Bb(nk()),Ub=Bb(z5()),va=Bb(jt()),H5=Bb(es()),Mc=tr(),nv=ao(),Nn=ft(),iv=Rt();function Bb(e){ + return e&&e.__esModule?e:{default:e}; + }var ok=2147483647,ak=-2147483648;function dne(e){ + var t=ov(e);if(typeof t=='boolean')return t?1:0;var r=t;if(typeof t=='string'&&t!==''&&(r=Number(t)),!(0,Ub.default)(r))throw new Nn.GraphQLError('Int cannot represent non-integer value: '.concat((0,va.default)(t)));if(r>ok||rok||eok||r{ + 'use strict';Object.defineProperty(sk,'__esModule',{value:!0});sk.astFromValue=sv;var Ene=Wd(nk()),Tne=Wd(oo()),J5=Wd(jt()),Cne=Wd(Gn()),Sne=Wd(es()),kne=Wd(qb()),Fo=tr(),One=is(),av=Rt();function Wd(e){ + return e&&e.__esModule?e:{default:e}; + }function sv(e,t){ + if((0,av.isNonNullType)(t)){ + var r=sv(e,t.ofType);return r?.kind===Fo.Kind.NULL?null:r; + }if(e===null)return{kind:Fo.Kind.NULL};if(e===void 0)return null;if((0,av.isListType)(t)){ + var n=t.ofType,i=(0,kne.default)(e);if(i!=null){ + for(var o=[],s=0;s{ + 'use strict';Object.defineProperty(Xt,'__esModule',{value:!0});Xt.isIntrospectionType=Fne;Xt.introspectionTypes=Xt.TypeNameMetaFieldDef=Xt.TypeMetaFieldDef=Xt.SchemaMetaFieldDef=Xt.__TypeKind=Xt.TypeKind=Xt.__EnumValue=Xt.__InputValue=Xt.__Field=Xt.__Type=Xt.__DirectiveLocation=Xt.__Directive=Xt.__Schema=void 0;var lk=uk(oo()),Nne=uk(jt()),Dne=uk(Gn()),Lne=ao(),yn=Fd(),Pne=lv(),rr=is(),Xe=Rt();function uk(e){ + return e&&e.__esModule?e:{default:e}; + }var ck=new Xe.GraphQLObjectType({name:'__Schema',description:'A GraphQL Schema defines the capabilities of a GraphQL server. It exposes all available types and directives on the server, as well as the entry points for query, mutation, and subscription operations.',fields:function(){ + return{description:{type:rr.GraphQLString,resolve:function(r){ + return r.description; + }},types:{description:'A list of all types supported by this server.',type:new Xe.GraphQLNonNull(new Xe.GraphQLList(new Xe.GraphQLNonNull(qo))),resolve:function(r){ + return(0,lk.default)(r.getTypeMap()); + }},queryType:{description:'The type that query operations will be rooted at.',type:new Xe.GraphQLNonNull(qo),resolve:function(r){ + return r.getQueryType(); + }},mutationType:{description:'If this server supports mutation, the type that mutation operations will be rooted at.',type:qo,resolve:function(r){ + return r.getMutationType(); + }},subscriptionType:{description:'If this server support subscription, the type that subscription operations will be rooted at.',type:qo,resolve:function(r){ + return r.getSubscriptionType(); + }},directives:{description:'A list of all directives supported by this server.',type:new Xe.GraphQLNonNull(new Xe.GraphQLList(new Xe.GraphQLNonNull(fk))),resolve:function(r){ + return r.getDirectives(); + }}}; + }});Xt.__Schema=ck;var fk=new Xe.GraphQLObjectType({name:'__Directive',description:`A Directive provides a way to describe alternate runtime execution and type validation behavior in a GraphQL document. -In some cases, you need to provide options to alter GraphQL's execution behavior in ways field arguments will not suffice, such as conditionally including or skipping a field. Directives provide this by describing additional information to the executor.`,fields:function(){return{name:{type:new Xe.GraphQLNonNull(rr.GraphQLString),resolve:function(r){return r.name}},description:{type:rr.GraphQLString,resolve:function(r){return r.description}},isRepeatable:{type:new Xe.GraphQLNonNull(rr.GraphQLBoolean),resolve:function(r){return r.isRepeatable}},locations:{type:new Xe.GraphQLNonNull(new Xe.GraphQLList(new Xe.GraphQLNonNull(dk))),resolve:function(r){return r.locations}},args:{type:new Xe.GraphQLNonNull(new Xe.GraphQLList(new Xe.GraphQLNonNull(uv))),args:{includeDeprecated:{type:rr.GraphQLBoolean,defaultValue:!1}},resolve:function(r,n){var i=n.includeDeprecated;return i?r.args:r.args.filter(function(o){return o.deprecationReason==null})}}}}});Xt.__Directive=fk;var dk=new Xe.GraphQLEnumType({name:"__DirectiveLocation",description:"A Directive can be adjacent to many parts of the GraphQL language, a __DirectiveLocation describes one such possible adjacencies.",values:{QUERY:{value:yn.DirectiveLocation.QUERY,description:"Location adjacent to a query operation."},MUTATION:{value:yn.DirectiveLocation.MUTATION,description:"Location adjacent to a mutation operation."},SUBSCRIPTION:{value:yn.DirectiveLocation.SUBSCRIPTION,description:"Location adjacent to a subscription operation."},FIELD:{value:yn.DirectiveLocation.FIELD,description:"Location adjacent to a field."},FRAGMENT_DEFINITION:{value:yn.DirectiveLocation.FRAGMENT_DEFINITION,description:"Location adjacent to a fragment definition."},FRAGMENT_SPREAD:{value:yn.DirectiveLocation.FRAGMENT_SPREAD,description:"Location adjacent to a fragment spread."},INLINE_FRAGMENT:{value:yn.DirectiveLocation.INLINE_FRAGMENT,description:"Location adjacent to an inline fragment."},VARIABLE_DEFINITION:{value:yn.DirectiveLocation.VARIABLE_DEFINITION,description:"Location adjacent to a variable definition."},SCHEMA:{value:yn.DirectiveLocation.SCHEMA,description:"Location adjacent to a schema definition."},SCALAR:{value:yn.DirectiveLocation.SCALAR,description:"Location adjacent to a scalar definition."},OBJECT:{value:yn.DirectiveLocation.OBJECT,description:"Location adjacent to an object type definition."},FIELD_DEFINITION:{value:yn.DirectiveLocation.FIELD_DEFINITION,description:"Location adjacent to a field definition."},ARGUMENT_DEFINITION:{value:yn.DirectiveLocation.ARGUMENT_DEFINITION,description:"Location adjacent to an argument definition."},INTERFACE:{value:yn.DirectiveLocation.INTERFACE,description:"Location adjacent to an interface definition."},UNION:{value:yn.DirectiveLocation.UNION,description:"Location adjacent to a union definition."},ENUM:{value:yn.DirectiveLocation.ENUM,description:"Location adjacent to an enum definition."},ENUM_VALUE:{value:yn.DirectiveLocation.ENUM_VALUE,description:"Location adjacent to an enum value definition."},INPUT_OBJECT:{value:yn.DirectiveLocation.INPUT_OBJECT,description:"Location adjacent to an input object type definition."},INPUT_FIELD_DEFINITION:{value:yn.DirectiveLocation.INPUT_FIELD_DEFINITION,description:"Location adjacent to an input object field definition."}}});Xt.__DirectiveLocation=dk;var qo=new Xe.GraphQLObjectType({name:"__Type",description:"The fundamental unit of any GraphQL Schema is the type. There are many kinds of types in GraphQL as represented by the `__TypeKind` enum.\n\nDepending on the kind of a type, certain fields describe information about that type. Scalar types provide no information beyond a name, description and optional `specifiedByUrl`, while Enum types provide their values. Object and Interface types provide the fields they describe. Abstract types, Union and Interface, provide the Object types possible at runtime. List and NonNull types compose other types.",fields:function(){return{kind:{type:new Xe.GraphQLNonNull(hk),resolve:function(r){if((0,Xe.isScalarType)(r))return zn.SCALAR;if((0,Xe.isObjectType)(r))return zn.OBJECT;if((0,Xe.isInterfaceType)(r))return zn.INTERFACE;if((0,Xe.isUnionType)(r))return zn.UNION;if((0,Xe.isEnumType)(r))return zn.ENUM;if((0,Xe.isInputObjectType)(r))return zn.INPUT_OBJECT;if((0,Xe.isListType)(r))return zn.LIST;if((0,Xe.isNonNullType)(r))return zn.NON_NULL;(0,Dne.default)(0,'Unexpected type: "'.concat((0,Nne.default)(r),'".'))}},name:{type:rr.GraphQLString,resolve:function(r){return r.name!==void 0?r.name:void 0}},description:{type:rr.GraphQLString,resolve:function(r){return r.description!==void 0?r.description:void 0}},specifiedByUrl:{type:rr.GraphQLString,resolve:function(r){return r.specifiedByUrl!==void 0?r.specifiedByUrl:void 0}},fields:{type:new Xe.GraphQLList(new Xe.GraphQLNonNull(pk)),args:{includeDeprecated:{type:rr.GraphQLBoolean,defaultValue:!1}},resolve:function(r,n){var i=n.includeDeprecated;if((0,Xe.isObjectType)(r)||(0,Xe.isInterfaceType)(r)){var o=(0,lk.default)(r.getFields());return i?o:o.filter(function(s){return s.deprecationReason==null})}}},interfaces:{type:new Xe.GraphQLList(new Xe.GraphQLNonNull(qo)),resolve:function(r){if((0,Xe.isObjectType)(r)||(0,Xe.isInterfaceType)(r))return r.getInterfaces()}},possibleTypes:{type:new Xe.GraphQLList(new Xe.GraphQLNonNull(qo)),resolve:function(r,n,i,o){var s=o.schema;if((0,Xe.isAbstractType)(r))return s.getPossibleTypes(r)}},enumValues:{type:new Xe.GraphQLList(new Xe.GraphQLNonNull(mk)),args:{includeDeprecated:{type:rr.GraphQLBoolean,defaultValue:!1}},resolve:function(r,n){var i=n.includeDeprecated;if((0,Xe.isEnumType)(r)){var o=r.getValues();return i?o:o.filter(function(s){return s.deprecationReason==null})}}},inputFields:{type:new Xe.GraphQLList(new Xe.GraphQLNonNull(uv)),args:{includeDeprecated:{type:rr.GraphQLBoolean,defaultValue:!1}},resolve:function(r,n){var i=n.includeDeprecated;if((0,Xe.isInputObjectType)(r)){var o=(0,lk.default)(r.getFields());return i?o:o.filter(function(s){return s.deprecationReason==null})}}},ofType:{type:qo,resolve:function(r){return r.ofType!==void 0?r.ofType:void 0}}}}});Xt.__Type=qo;var pk=new Xe.GraphQLObjectType({name:"__Field",description:"Object and Interface types are described by a list of Fields, each of which has a name, potentially a list of arguments, and a return type.",fields:function(){return{name:{type:new Xe.GraphQLNonNull(rr.GraphQLString),resolve:function(r){return r.name}},description:{type:rr.GraphQLString,resolve:function(r){return r.description}},args:{type:new Xe.GraphQLNonNull(new Xe.GraphQLList(new Xe.GraphQLNonNull(uv))),args:{includeDeprecated:{type:rr.GraphQLBoolean,defaultValue:!1}},resolve:function(r,n){var i=n.includeDeprecated;return i?r.args:r.args.filter(function(o){return o.deprecationReason==null})}},type:{type:new Xe.GraphQLNonNull(qo),resolve:function(r){return r.type}},isDeprecated:{type:new Xe.GraphQLNonNull(rr.GraphQLBoolean),resolve:function(r){return r.deprecationReason!=null}},deprecationReason:{type:rr.GraphQLString,resolve:function(r){return r.deprecationReason}}}}});Xt.__Field=pk;var uv=new Xe.GraphQLObjectType({name:"__InputValue",description:"Arguments provided to Fields or Directives and the input fields of an InputObject are represented as Input Values which describe their type and optionally a default value.",fields:function(){return{name:{type:new Xe.GraphQLNonNull(rr.GraphQLString),resolve:function(r){return r.name}},description:{type:rr.GraphQLString,resolve:function(r){return r.description}},type:{type:new Xe.GraphQLNonNull(qo),resolve:function(r){return r.type}},defaultValue:{type:rr.GraphQLString,description:"A GraphQL-formatted string representing the default value for this input value.",resolve:function(r){var n=r.type,i=r.defaultValue,o=(0,Pne.astFromValue)(i,n);return o?(0,Lne.print)(o):null}},isDeprecated:{type:new Xe.GraphQLNonNull(rr.GraphQLBoolean),resolve:function(r){return r.deprecationReason!=null}},deprecationReason:{type:rr.GraphQLString,resolve:function(r){return r.deprecationReason}}}}});Xt.__InputValue=uv;var mk=new Xe.GraphQLObjectType({name:"__EnumValue",description:"One possible value for a given Enum. Enum values are unique values, not a placeholder for a string or numeric value. However an Enum value is returned in a JSON response as a string.",fields:function(){return{name:{type:new Xe.GraphQLNonNull(rr.GraphQLString),resolve:function(r){return r.name}},description:{type:rr.GraphQLString,resolve:function(r){return r.description}},isDeprecated:{type:new Xe.GraphQLNonNull(rr.GraphQLBoolean),resolve:function(r){return r.deprecationReason!=null}},deprecationReason:{type:rr.GraphQLString,resolve:function(r){return r.deprecationReason}}}}});Xt.__EnumValue=mk;var zn=Object.freeze({SCALAR:"SCALAR",OBJECT:"OBJECT",INTERFACE:"INTERFACE",UNION:"UNION",ENUM:"ENUM",INPUT_OBJECT:"INPUT_OBJECT",LIST:"LIST",NON_NULL:"NON_NULL"});Xt.TypeKind=zn;var hk=new Xe.GraphQLEnumType({name:"__TypeKind",description:"An enum describing what kind of type a given `__Type` is.",values:{SCALAR:{value:zn.SCALAR,description:"Indicates this type is a scalar."},OBJECT:{value:zn.OBJECT,description:"Indicates this type is an object. `fields` and `interfaces` are valid fields."},INTERFACE:{value:zn.INTERFACE,description:"Indicates this type is an interface. `fields`, `interfaces`, and `possibleTypes` are valid fields."},UNION:{value:zn.UNION,description:"Indicates this type is a union. `possibleTypes` is a valid field."},ENUM:{value:zn.ENUM,description:"Indicates this type is an enum. `enumValues` is a valid field."},INPUT_OBJECT:{value:zn.INPUT_OBJECT,description:"Indicates this type is an input object. `inputFields` is a valid field."},LIST:{value:zn.LIST,description:"Indicates this type is a list. `ofType` is a valid field."},NON_NULL:{value:zn.NON_NULL,description:"Indicates this type is a non-null. `ofType` is a valid field."}}});Xt.__TypeKind=hk;var Rne={name:"__schema",type:new Xe.GraphQLNonNull(ck),description:"Access the current type schema of this server.",args:[],resolve:function(t,r,n,i){var o=i.schema;return o},isDeprecated:!1,deprecationReason:void 0,extensions:void 0,astNode:void 0};Xt.SchemaMetaFieldDef=Rne;var Mne={name:"__type",type:qo,description:"Request the type information of a single type.",args:[{name:"name",description:void 0,type:new Xe.GraphQLNonNull(rr.GraphQLString),defaultValue:void 0,deprecationReason:void 0,extensions:void 0,astNode:void 0}],resolve:function(t,r,n,i){var o=r.name,s=i.schema;return s.getType(o)},isDeprecated:!1,deprecationReason:void 0,extensions:void 0,astNode:void 0};Xt.TypeMetaFieldDef=Mne;var Ine={name:"__typename",type:new Xe.GraphQLNonNull(rr.GraphQLString),description:"The name of the current Object type at runtime.",args:[],resolve:function(t,r,n,i){var o=i.parentType;return o.name},isDeprecated:!1,deprecationReason:void 0,extensions:void 0,astNode:void 0};Xt.TypeNameMetaFieldDef=Ine;var $5=Object.freeze([ck,fk,dk,qo,pk,uv,mk,hk]);Xt.introspectionTypes=$5;function Fne(e){return $5.some(function(t){var r=t.name;return e.name===r})}});var Bi=X(bn=>{"use strict";Object.defineProperty(bn,"__esModule",{value:!0});bn.isDirective=r7;bn.assertDirective=Hne;bn.isSpecifiedDirective=Qne;bn.specifiedDirectives=bn.GraphQLSpecifiedByDirective=bn.GraphQLDeprecatedDirective=bn.DEFAULT_DEPRECATION_REASON=bn.GraphQLSkipDirective=bn.GraphQLIncludeDirective=bn.GraphQLDirective=void 0;var qne=Ic(Bd()),jne=ts(),Vne=Ic(jt()),e7=Ic(Sb()),vk=Ic(Io()),Une=Ic(Qh()),Bne=Ic(es()),Gne=Ic(fb()),ga=Fd(),Gb=is(),zb=Rt();function Ic(e){return e&&e.__esModule?e:{default:e}}function t7(e,t){for(var r=0;r{"use strict";Object.defineProperty(Yd,"__esModule",{value:!0});Yd.isSchema=f7;Yd.assertSchema=eie;Yd.GraphQLSchema=void 0;var Wne=su(Ud()),Yne=su(rk()),gk=su(oo()),Kne=ts(),yk=su(jt()),Xne=su(Sb()),Hb=su(Io()),Zne=su(Qh()),Jne=su(es()),_ne=jo(),u7=Bi(),ya=Rt();function su(e){return e&&e.__esModule?e:{default:e}}function c7(e,t){for(var r=0;r{"use strict";Object.defineProperty(Qb,"__esModule",{value:!0});Qb.validateSchema=b7;Qb.assertValidSchema=aie;var p7=Ak(Ud()),fv=Ak(oo()),li=Ak(jt()),tie=ft(),rie=Xh(),nie=DS(),m7=rv(),iie=qc(),oie=jo(),y7=Bi(),Wr=Rt();function Ak(e){return e&&e.__esModule?e:{default:e}}function b7(e){if((0,iie.assertSchema)(e),e.__validationErrors)return e.__validationErrors;var t=new sie(e);lie(t),uie(t),cie(t);var r=t.getErrors();return e.__validationErrors=r,r}function aie(e){var t=b7(e);if(t.length!==0)throw new Error(t.map(function(r){return r.message}).join(` +In some cases, you need to provide options to alter GraphQL's execution behavior in ways field arguments will not suffice, such as conditionally including or skipping a field. Directives provide this by describing additional information to the executor.`,fields:function(){ + return{name:{type:new Xe.GraphQLNonNull(rr.GraphQLString),resolve:function(r){ + return r.name; + }},description:{type:rr.GraphQLString,resolve:function(r){ + return r.description; + }},isRepeatable:{type:new Xe.GraphQLNonNull(rr.GraphQLBoolean),resolve:function(r){ + return r.isRepeatable; + }},locations:{type:new Xe.GraphQLNonNull(new Xe.GraphQLList(new Xe.GraphQLNonNull(dk))),resolve:function(r){ + return r.locations; + }},args:{type:new Xe.GraphQLNonNull(new Xe.GraphQLList(new Xe.GraphQLNonNull(uv))),args:{includeDeprecated:{type:rr.GraphQLBoolean,defaultValue:!1}},resolve:function(r,n){ + var i=n.includeDeprecated;return i?r.args:r.args.filter(function(o){ + return o.deprecationReason==null; + }); + }}}; + }});Xt.__Directive=fk;var dk=new Xe.GraphQLEnumType({name:'__DirectiveLocation',description:'A Directive can be adjacent to many parts of the GraphQL language, a __DirectiveLocation describes one such possible adjacencies.',values:{QUERY:{value:yn.DirectiveLocation.QUERY,description:'Location adjacent to a query operation.'},MUTATION:{value:yn.DirectiveLocation.MUTATION,description:'Location adjacent to a mutation operation.'},SUBSCRIPTION:{value:yn.DirectiveLocation.SUBSCRIPTION,description:'Location adjacent to a subscription operation.'},FIELD:{value:yn.DirectiveLocation.FIELD,description:'Location adjacent to a field.'},FRAGMENT_DEFINITION:{value:yn.DirectiveLocation.FRAGMENT_DEFINITION,description:'Location adjacent to a fragment definition.'},FRAGMENT_SPREAD:{value:yn.DirectiveLocation.FRAGMENT_SPREAD,description:'Location adjacent to a fragment spread.'},INLINE_FRAGMENT:{value:yn.DirectiveLocation.INLINE_FRAGMENT,description:'Location adjacent to an inline fragment.'},VARIABLE_DEFINITION:{value:yn.DirectiveLocation.VARIABLE_DEFINITION,description:'Location adjacent to a variable definition.'},SCHEMA:{value:yn.DirectiveLocation.SCHEMA,description:'Location adjacent to a schema definition.'},SCALAR:{value:yn.DirectiveLocation.SCALAR,description:'Location adjacent to a scalar definition.'},OBJECT:{value:yn.DirectiveLocation.OBJECT,description:'Location adjacent to an object type definition.'},FIELD_DEFINITION:{value:yn.DirectiveLocation.FIELD_DEFINITION,description:'Location adjacent to a field definition.'},ARGUMENT_DEFINITION:{value:yn.DirectiveLocation.ARGUMENT_DEFINITION,description:'Location adjacent to an argument definition.'},INTERFACE:{value:yn.DirectiveLocation.INTERFACE,description:'Location adjacent to an interface definition.'},UNION:{value:yn.DirectiveLocation.UNION,description:'Location adjacent to a union definition.'},ENUM:{value:yn.DirectiveLocation.ENUM,description:'Location adjacent to an enum definition.'},ENUM_VALUE:{value:yn.DirectiveLocation.ENUM_VALUE,description:'Location adjacent to an enum value definition.'},INPUT_OBJECT:{value:yn.DirectiveLocation.INPUT_OBJECT,description:'Location adjacent to an input object type definition.'},INPUT_FIELD_DEFINITION:{value:yn.DirectiveLocation.INPUT_FIELD_DEFINITION,description:'Location adjacent to an input object field definition.'}}});Xt.__DirectiveLocation=dk;var qo=new Xe.GraphQLObjectType({name:'__Type',description:'The fundamental unit of any GraphQL Schema is the type. There are many kinds of types in GraphQL as represented by the `__TypeKind` enum.\n\nDepending on the kind of a type, certain fields describe information about that type. Scalar types provide no information beyond a name, description and optional `specifiedByUrl`, while Enum types provide their values. Object and Interface types provide the fields they describe. Abstract types, Union and Interface, provide the Object types possible at runtime. List and NonNull types compose other types.',fields:function(){ + return{kind:{type:new Xe.GraphQLNonNull(hk),resolve:function(r){ + if((0,Xe.isScalarType)(r))return zn.SCALAR;if((0,Xe.isObjectType)(r))return zn.OBJECT;if((0,Xe.isInterfaceType)(r))return zn.INTERFACE;if((0,Xe.isUnionType)(r))return zn.UNION;if((0,Xe.isEnumType)(r))return zn.ENUM;if((0,Xe.isInputObjectType)(r))return zn.INPUT_OBJECT;if((0,Xe.isListType)(r))return zn.LIST;if((0,Xe.isNonNullType)(r))return zn.NON_NULL;(0,Dne.default)(0,'Unexpected type: "'.concat((0,Nne.default)(r),'".')); + }},name:{type:rr.GraphQLString,resolve:function(r){ + return r.name!==void 0?r.name:void 0; + }},description:{type:rr.GraphQLString,resolve:function(r){ + return r.description!==void 0?r.description:void 0; + }},specifiedByUrl:{type:rr.GraphQLString,resolve:function(r){ + return r.specifiedByUrl!==void 0?r.specifiedByUrl:void 0; + }},fields:{type:new Xe.GraphQLList(new Xe.GraphQLNonNull(pk)),args:{includeDeprecated:{type:rr.GraphQLBoolean,defaultValue:!1}},resolve:function(r,n){ + var i=n.includeDeprecated;if((0,Xe.isObjectType)(r)||(0,Xe.isInterfaceType)(r)){ + var o=(0,lk.default)(r.getFields());return i?o:o.filter(function(s){ + return s.deprecationReason==null; + }); + } + }},interfaces:{type:new Xe.GraphQLList(new Xe.GraphQLNonNull(qo)),resolve:function(r){ + if((0,Xe.isObjectType)(r)||(0,Xe.isInterfaceType)(r))return r.getInterfaces(); + }},possibleTypes:{type:new Xe.GraphQLList(new Xe.GraphQLNonNull(qo)),resolve:function(r,n,i,o){ + var s=o.schema;if((0,Xe.isAbstractType)(r))return s.getPossibleTypes(r); + }},enumValues:{type:new Xe.GraphQLList(new Xe.GraphQLNonNull(mk)),args:{includeDeprecated:{type:rr.GraphQLBoolean,defaultValue:!1}},resolve:function(r,n){ + var i=n.includeDeprecated;if((0,Xe.isEnumType)(r)){ + var o=r.getValues();return i?o:o.filter(function(s){ + return s.deprecationReason==null; + }); + } + }},inputFields:{type:new Xe.GraphQLList(new Xe.GraphQLNonNull(uv)),args:{includeDeprecated:{type:rr.GraphQLBoolean,defaultValue:!1}},resolve:function(r,n){ + var i=n.includeDeprecated;if((0,Xe.isInputObjectType)(r)){ + var o=(0,lk.default)(r.getFields());return i?o:o.filter(function(s){ + return s.deprecationReason==null; + }); + } + }},ofType:{type:qo,resolve:function(r){ + return r.ofType!==void 0?r.ofType:void 0; + }}}; + }});Xt.__Type=qo;var pk=new Xe.GraphQLObjectType({name:'__Field',description:'Object and Interface types are described by a list of Fields, each of which has a name, potentially a list of arguments, and a return type.',fields:function(){ + return{name:{type:new Xe.GraphQLNonNull(rr.GraphQLString),resolve:function(r){ + return r.name; + }},description:{type:rr.GraphQLString,resolve:function(r){ + return r.description; + }},args:{type:new Xe.GraphQLNonNull(new Xe.GraphQLList(new Xe.GraphQLNonNull(uv))),args:{includeDeprecated:{type:rr.GraphQLBoolean,defaultValue:!1}},resolve:function(r,n){ + var i=n.includeDeprecated;return i?r.args:r.args.filter(function(o){ + return o.deprecationReason==null; + }); + }},type:{type:new Xe.GraphQLNonNull(qo),resolve:function(r){ + return r.type; + }},isDeprecated:{type:new Xe.GraphQLNonNull(rr.GraphQLBoolean),resolve:function(r){ + return r.deprecationReason!=null; + }},deprecationReason:{type:rr.GraphQLString,resolve:function(r){ + return r.deprecationReason; + }}}; + }});Xt.__Field=pk;var uv=new Xe.GraphQLObjectType({name:'__InputValue',description:'Arguments provided to Fields or Directives and the input fields of an InputObject are represented as Input Values which describe their type and optionally a default value.',fields:function(){ + return{name:{type:new Xe.GraphQLNonNull(rr.GraphQLString),resolve:function(r){ + return r.name; + }},description:{type:rr.GraphQLString,resolve:function(r){ + return r.description; + }},type:{type:new Xe.GraphQLNonNull(qo),resolve:function(r){ + return r.type; + }},defaultValue:{type:rr.GraphQLString,description:'A GraphQL-formatted string representing the default value for this input value.',resolve:function(r){ + var n=r.type,i=r.defaultValue,o=(0,Pne.astFromValue)(i,n);return o?(0,Lne.print)(o):null; + }},isDeprecated:{type:new Xe.GraphQLNonNull(rr.GraphQLBoolean),resolve:function(r){ + return r.deprecationReason!=null; + }},deprecationReason:{type:rr.GraphQLString,resolve:function(r){ + return r.deprecationReason; + }}}; + }});Xt.__InputValue=uv;var mk=new Xe.GraphQLObjectType({name:'__EnumValue',description:'One possible value for a given Enum. Enum values are unique values, not a placeholder for a string or numeric value. However an Enum value is returned in a JSON response as a string.',fields:function(){ + return{name:{type:new Xe.GraphQLNonNull(rr.GraphQLString),resolve:function(r){ + return r.name; + }},description:{type:rr.GraphQLString,resolve:function(r){ + return r.description; + }},isDeprecated:{type:new Xe.GraphQLNonNull(rr.GraphQLBoolean),resolve:function(r){ + return r.deprecationReason!=null; + }},deprecationReason:{type:rr.GraphQLString,resolve:function(r){ + return r.deprecationReason; + }}}; + }});Xt.__EnumValue=mk;var zn=Object.freeze({SCALAR:'SCALAR',OBJECT:'OBJECT',INTERFACE:'INTERFACE',UNION:'UNION',ENUM:'ENUM',INPUT_OBJECT:'INPUT_OBJECT',LIST:'LIST',NON_NULL:'NON_NULL'});Xt.TypeKind=zn;var hk=new Xe.GraphQLEnumType({name:'__TypeKind',description:'An enum describing what kind of type a given `__Type` is.',values:{SCALAR:{value:zn.SCALAR,description:'Indicates this type is a scalar.'},OBJECT:{value:zn.OBJECT,description:'Indicates this type is an object. `fields` and `interfaces` are valid fields.'},INTERFACE:{value:zn.INTERFACE,description:'Indicates this type is an interface. `fields`, `interfaces`, and `possibleTypes` are valid fields.'},UNION:{value:zn.UNION,description:'Indicates this type is a union. `possibleTypes` is a valid field.'},ENUM:{value:zn.ENUM,description:'Indicates this type is an enum. `enumValues` is a valid field.'},INPUT_OBJECT:{value:zn.INPUT_OBJECT,description:'Indicates this type is an input object. `inputFields` is a valid field.'},LIST:{value:zn.LIST,description:'Indicates this type is a list. `ofType` is a valid field.'},NON_NULL:{value:zn.NON_NULL,description:'Indicates this type is a non-null. `ofType` is a valid field.'}}});Xt.__TypeKind=hk;var Rne={name:'__schema',type:new Xe.GraphQLNonNull(ck),description:'Access the current type schema of this server.',args:[],resolve:function(t,r,n,i){ + var o=i.schema;return o; + },isDeprecated:!1,deprecationReason:void 0,extensions:void 0,astNode:void 0};Xt.SchemaMetaFieldDef=Rne;var Mne={name:'__type',type:qo,description:'Request the type information of a single type.',args:[{name:'name',description:void 0,type:new Xe.GraphQLNonNull(rr.GraphQLString),defaultValue:void 0,deprecationReason:void 0,extensions:void 0,astNode:void 0}],resolve:function(t,r,n,i){ + var o=r.name,s=i.schema;return s.getType(o); + },isDeprecated:!1,deprecationReason:void 0,extensions:void 0,astNode:void 0};Xt.TypeMetaFieldDef=Mne;var Ine={name:'__typename',type:new Xe.GraphQLNonNull(rr.GraphQLString),description:'The name of the current Object type at runtime.',args:[],resolve:function(t,r,n,i){ + var o=i.parentType;return o.name; + },isDeprecated:!1,deprecationReason:void 0,extensions:void 0,astNode:void 0};Xt.TypeNameMetaFieldDef=Ine;var $5=Object.freeze([ck,fk,dk,qo,pk,uv,mk,hk]);Xt.introspectionTypes=$5;function Fne(e){ + return $5.some(function(t){ + var r=t.name;return e.name===r; + }); + } +});var Bi=X(bn=>{ + 'use strict';Object.defineProperty(bn,'__esModule',{value:!0});bn.isDirective=r7;bn.assertDirective=Hne;bn.isSpecifiedDirective=Qne;bn.specifiedDirectives=bn.GraphQLSpecifiedByDirective=bn.GraphQLDeprecatedDirective=bn.DEFAULT_DEPRECATION_REASON=bn.GraphQLSkipDirective=bn.GraphQLIncludeDirective=bn.GraphQLDirective=void 0;var qne=Ic(Bd()),jne=ts(),Vne=Ic(jt()),e7=Ic(Sb()),vk=Ic(Io()),Une=Ic(Qh()),Bne=Ic(es()),Gne=Ic(fb()),ga=Fd(),Gb=is(),zb=Rt();function Ic(e){ + return e&&e.__esModule?e:{default:e}; + }function t7(e,t){ + for(var r=0;r{ + 'use strict';Object.defineProperty(Yd,'__esModule',{value:!0});Yd.isSchema=f7;Yd.assertSchema=eie;Yd.GraphQLSchema=void 0;var Wne=su(Ud()),Yne=su(rk()),gk=su(oo()),Kne=ts(),yk=su(jt()),Xne=su(Sb()),Hb=su(Io()),Zne=su(Qh()),Jne=su(es()),_ne=jo(),u7=Bi(),ya=Rt();function su(e){ + return e&&e.__esModule?e:{default:e}; + }function c7(e,t){ + for(var r=0;r{ + 'use strict';Object.defineProperty(Qb,'__esModule',{value:!0});Qb.validateSchema=b7;Qb.assertValidSchema=aie;var p7=Ak(Ud()),fv=Ak(oo()),li=Ak(jt()),tie=ft(),rie=Xh(),nie=DS(),m7=rv(),iie=qc(),oie=jo(),y7=Bi(),Wr=Rt();function Ak(e){ + return e&&e.__esModule?e:{default:e}; + }function b7(e){ + if((0,iie.assertSchema)(e),e.__validationErrors)return e.__validationErrors;var t=new sie(e);lie(t),uie(t),cie(t);var r=t.getErrors();return e.__validationErrors=r,r; + }function aie(e){ + var t=b7(e);if(t.length!==0)throw new Error(t.map(function(r){ + return r.message; + }).join(` -`))}var sie=function(){function e(r){this._errors=[],this.schema=r}var t=e.prototype;return t.reportError=function(n,i){var o=Array.isArray(i)?i.filter(Boolean):i;this.addError(new tie.GraphQLError(n,o))},t.addError=function(n){this._errors.push(n)},t.getErrors=function(){return this._errors},e}();function lie(e){var t=e.schema,r=t.getQueryType();if(!r)e.reportError("Query root type must be provided.",t.astNode);else if(!(0,Wr.isObjectType)(r)){var n;e.reportError("Query root type must be Object type, it cannot be ".concat((0,li.default)(r),"."),(n=bk(t,"query"))!==null&&n!==void 0?n:r.astNode)}var i=t.getMutationType();if(i&&!(0,Wr.isObjectType)(i)){var o;e.reportError("Mutation root type must be Object type if provided, it cannot be "+"".concat((0,li.default)(i),"."),(o=bk(t,"mutation"))!==null&&o!==void 0?o:i.astNode)}var s=t.getSubscriptionType();if(s&&!(0,Wr.isObjectType)(s)){var l;e.reportError("Subscription root type must be Object type if provided, it cannot be "+"".concat((0,li.default)(s),"."),(l=bk(t,"subscription"))!==null&&l!==void 0?l:s.astNode)}}function bk(e,t){for(var r=xk(e,function(o){return o.operationTypes}),n=0;n{"use strict";Object.defineProperty(Ck,"__esModule",{value:!0});Ck.typeFromAST=Tk;var gie=x7(jt()),yie=x7(Gn()),Ek=tr(),A7=Rt();function x7(e){return e&&e.__esModule?e:{default:e}}function Tk(e,t){var r;if(t.kind===Ek.Kind.LIST_TYPE)return r=Tk(e,t.type),r&&new A7.GraphQLList(r);if(t.kind===Ek.Kind.NON_NULL_TYPE)return r=Tk(e,t.type),r&&new A7.GraphQLNonNull(r);if(t.kind===Ek.Kind.NAMED_TYPE)return e.getType(t.name.value);(0,yie.default)(0,"Unexpected type node: "+(0,gie.default)(t))}});var Wb=X(pv=>{"use strict";Object.defineProperty(pv,"__esModule",{value:!0});pv.visitWithTypeInfo=Tie;pv.TypeInfo=void 0;var bie=xie(Ud()),jr=tr(),Aie=Md(),w7=Jl(),Vr=Rt(),Xd=jo(),E7=os();function xie(e){return e&&e.__esModule?e:{default:e}}var wie=function(){function e(r,n,i){this._schema=r,this._typeStack=[],this._parentTypeStack=[],this._inputTypeStack=[],this._fieldDefStack=[],this._defaultValueStack=[],this._directive=null,this._argument=null,this._enumValue=null,this._getFieldDef=n??Eie,i&&((0,Vr.isInputType)(i)&&this._inputTypeStack.push(i),(0,Vr.isCompositeType)(i)&&this._parentTypeStack.push(i),(0,Vr.isOutputType)(i)&&this._typeStack.push(i))}var t=e.prototype;return t.getType=function(){if(this._typeStack.length>0)return this._typeStack[this._typeStack.length-1]},t.getParentType=function(){if(this._parentTypeStack.length>0)return this._parentTypeStack[this._parentTypeStack.length-1]},t.getInputType=function(){if(this._inputTypeStack.length>0)return this._inputTypeStack[this._inputTypeStack.length-1]},t.getParentInputType=function(){if(this._inputTypeStack.length>1)return this._inputTypeStack[this._inputTypeStack.length-2]},t.getFieldDef=function(){if(this._fieldDefStack.length>0)return this._fieldDefStack[this._fieldDefStack.length-1]},t.getDefaultValue=function(){if(this._defaultValueStack.length>0)return this._defaultValueStack[this._defaultValueStack.length-1]},t.getDirective=function(){return this._directive},t.getArgument=function(){return this._argument},t.getEnumValue=function(){return this._enumValue},t.enter=function(n){var i=this._schema;switch(n.kind){case jr.Kind.SELECTION_SET:{var o=(0,Vr.getNamedType)(this.getType());this._parentTypeStack.push((0,Vr.isCompositeType)(o)?o:void 0);break}case jr.Kind.FIELD:{var s=this.getParentType(),l,c;s&&(l=this._getFieldDef(i,s,n),l&&(c=l.type)),this._fieldDefStack.push(l),this._typeStack.push((0,Vr.isOutputType)(c)?c:void 0);break}case jr.Kind.DIRECTIVE:this._directive=i.getDirective(n.name.value);break;case jr.Kind.OPERATION_DEFINITION:{var f;switch(n.operation){case"query":f=i.getQueryType();break;case"mutation":f=i.getMutationType();break;case"subscription":f=i.getSubscriptionType();break}this._typeStack.push((0,Vr.isObjectType)(f)?f:void 0);break}case jr.Kind.INLINE_FRAGMENT:case jr.Kind.FRAGMENT_DEFINITION:{var m=n.typeCondition,v=m?(0,E7.typeFromAST)(i,m):(0,Vr.getNamedType)(this.getType());this._typeStack.push((0,Vr.isOutputType)(v)?v:void 0);break}case jr.Kind.VARIABLE_DEFINITION:{var g=(0,E7.typeFromAST)(i,n.type);this._inputTypeStack.push((0,Vr.isInputType)(g)?g:void 0);break}case jr.Kind.ARGUMENT:{var y,w,T,S=(y=this.getDirective())!==null&&y!==void 0?y:this.getFieldDef();S&&(w=(0,bie.default)(S.args,function(N){return N.name===n.name.value}),w&&(T=w.type)),this._argument=w,this._defaultValueStack.push(w?w.defaultValue:void 0),this._inputTypeStack.push((0,Vr.isInputType)(T)?T:void 0);break}case jr.Kind.LIST:{var A=(0,Vr.getNullableType)(this.getInputType()),b=(0,Vr.isListType)(A)?A.ofType:A;this._defaultValueStack.push(void 0),this._inputTypeStack.push((0,Vr.isInputType)(b)?b:void 0);break}case jr.Kind.OBJECT_FIELD:{var C=(0,Vr.getNamedType)(this.getInputType()),x,k;(0,Vr.isInputObjectType)(C)&&(k=C.getFields()[n.name.value],k&&(x=k.type)),this._defaultValueStack.push(k?k.defaultValue:void 0),this._inputTypeStack.push((0,Vr.isInputType)(x)?x:void 0);break}case jr.Kind.ENUM:{var P=(0,Vr.getNamedType)(this.getInputType()),D;(0,Vr.isEnumType)(P)&&(D=P.getValue(n.value)),this._enumValue=D;break}}},t.leave=function(n){switch(n.kind){case jr.Kind.SELECTION_SET:this._parentTypeStack.pop();break;case jr.Kind.FIELD:this._fieldDefStack.pop(),this._typeStack.pop();break;case jr.Kind.DIRECTIVE:this._directive=null;break;case jr.Kind.OPERATION_DEFINITION:case jr.Kind.INLINE_FRAGMENT:case jr.Kind.FRAGMENT_DEFINITION:this._typeStack.pop();break;case jr.Kind.VARIABLE_DEFINITION:this._inputTypeStack.pop();break;case jr.Kind.ARGUMENT:this._argument=null,this._defaultValueStack.pop(),this._inputTypeStack.pop();break;case jr.Kind.LIST:case jr.Kind.OBJECT_FIELD:this._defaultValueStack.pop(),this._inputTypeStack.pop();break;case jr.Kind.ENUM:this._enumValue=null;break}},e}();pv.TypeInfo=wie;function Eie(e,t,r){var n=r.name.value;if(n===Xd.SchemaMetaFieldDef.name&&e.getQueryType()===t)return Xd.SchemaMetaFieldDef;if(n===Xd.TypeMetaFieldDef.name&&e.getQueryType()===t)return Xd.TypeMetaFieldDef;if(n===Xd.TypeNameMetaFieldDef.name&&(0,Vr.isCompositeType)(t))return Xd.TypeNameMetaFieldDef;if((0,Vr.isObjectType)(t)||(0,Vr.isInterfaceType)(t))return t.getFields()[n]}function Tie(e,t){return{enter:function(n){e.enter(n);var i=(0,w7.getVisitFn)(t,n.kind,!1);if(i){var o=i.apply(t,arguments);return o!==void 0&&(e.leave(n),(0,Aie.isNode)(o)&&e.enter(o)),o}},leave:function(n){var i=(0,w7.getVisitFn)(t,n.kind,!0),o;return i&&(o=i.apply(t,arguments)),e.leave(n),o}}}});var Vc=X(Aa=>{"use strict";Object.defineProperty(Aa,"__esModule",{value:!0});Aa.isDefinitionNode=Cie;Aa.isExecutableDefinitionNode=T7;Aa.isSelectionNode=Sie;Aa.isValueNode=kie;Aa.isTypeNode=Oie;Aa.isTypeSystemDefinitionNode=C7;Aa.isTypeDefinitionNode=S7;Aa.isTypeSystemExtensionNode=k7;Aa.isTypeExtensionNode=O7;var Vt=tr();function Cie(e){return T7(e)||C7(e)||k7(e)}function T7(e){return e.kind===Vt.Kind.OPERATION_DEFINITION||e.kind===Vt.Kind.FRAGMENT_DEFINITION}function Sie(e){return e.kind===Vt.Kind.FIELD||e.kind===Vt.Kind.FRAGMENT_SPREAD||e.kind===Vt.Kind.INLINE_FRAGMENT}function kie(e){return e.kind===Vt.Kind.VARIABLE||e.kind===Vt.Kind.INT||e.kind===Vt.Kind.FLOAT||e.kind===Vt.Kind.STRING||e.kind===Vt.Kind.BOOLEAN||e.kind===Vt.Kind.NULL||e.kind===Vt.Kind.ENUM||e.kind===Vt.Kind.LIST||e.kind===Vt.Kind.OBJECT}function Oie(e){return e.kind===Vt.Kind.NAMED_TYPE||e.kind===Vt.Kind.LIST_TYPE||e.kind===Vt.Kind.NON_NULL_TYPE}function C7(e){return e.kind===Vt.Kind.SCHEMA_DEFINITION||S7(e)||e.kind===Vt.Kind.DIRECTIVE_DEFINITION}function S7(e){return e.kind===Vt.Kind.SCALAR_TYPE_DEFINITION||e.kind===Vt.Kind.OBJECT_TYPE_DEFINITION||e.kind===Vt.Kind.INTERFACE_TYPE_DEFINITION||e.kind===Vt.Kind.UNION_TYPE_DEFINITION||e.kind===Vt.Kind.ENUM_TYPE_DEFINITION||e.kind===Vt.Kind.INPUT_OBJECT_TYPE_DEFINITION}function k7(e){return e.kind===Vt.Kind.SCHEMA_EXTENSION||O7(e)}function O7(e){return e.kind===Vt.Kind.SCALAR_TYPE_EXTENSION||e.kind===Vt.Kind.OBJECT_TYPE_EXTENSION||e.kind===Vt.Kind.INTERFACE_TYPE_EXTENSION||e.kind===Vt.Kind.UNION_TYPE_EXTENSION||e.kind===Vt.Kind.ENUM_TYPE_EXTENSION||e.kind===Vt.Kind.INPUT_OBJECT_TYPE_EXTENSION}});var kk=X(Sk=>{"use strict";Object.defineProperty(Sk,"__esModule",{value:!0});Sk.ExecutableDefinitionsRule=Lie;var Nie=ft(),N7=tr(),Die=Vc();function Lie(e){return{Document:function(r){for(var n=0,i=r.definitions;n{"use strict";Object.defineProperty(Ok,"__esModule",{value:!0});Ok.UniqueOperationNamesRule=Rie;var Pie=ft();function Rie(e){var t=Object.create(null);return{OperationDefinition:function(n){var i=n.name;return i&&(t[i.value]?e.reportError(new Pie.GraphQLError('There can be only one operation named "'.concat(i.value,'".'),[t[i.value],i])):t[i.value]=i),!1},FragmentDefinition:function(){return!1}}}});var Lk=X(Dk=>{"use strict";Object.defineProperty(Dk,"__esModule",{value:!0});Dk.LoneAnonymousOperationRule=Fie;var Mie=ft(),Iie=tr();function Fie(e){var t=0;return{Document:function(n){t=n.definitions.filter(function(i){return i.kind===Iie.Kind.OPERATION_DEFINITION}).length},OperationDefinition:function(n){!n.name&&t>1&&e.reportError(new Mie.GraphQLError("This anonymous operation must be the only defined operation.",n))}}}});var Rk=X(Pk=>{"use strict";Object.defineProperty(Pk,"__esModule",{value:!0});Pk.SingleFieldSubscriptionsRule=jie;var qie=ft();function jie(e){return{OperationDefinition:function(r){r.operation==="subscription"&&r.selectionSet.selections.length!==1&&e.reportError(new qie.GraphQLError(r.name?'Subscription "'.concat(r.name.value,'" must select only one top level field.'):"Anonymous Subscription must select only one top level field.",r.selectionSet.selections.slice(1)))}}}});var Fk=X(Ik=>{"use strict";Object.defineProperty(Ik,"__esModule",{value:!0});Ik.KnownTypeNamesRule=Hie;var Vie=D7($l()),Uie=D7(eu()),Bie=ft(),Mk=Vc(),Gie=is(),zie=jo();function D7(e){return e&&e.__esModule?e:{default:e}}function Hie(e){for(var t=e.getSchema(),r=t?t.getTypeMap():Object.create(null),n=Object.create(null),i=0,o=e.getDocument().definitions;i{"use strict";Object.defineProperty(qk,"__esModule",{value:!0});qk.FragmentsOnCompositeTypesRule=Yie;var P7=ft(),R7=ao(),M7=Rt(),I7=os();function Yie(e){return{InlineFragment:function(r){var n=r.typeCondition;if(n){var i=(0,I7.typeFromAST)(e.getSchema(),n);if(i&&!(0,M7.isCompositeType)(i)){var o=(0,R7.print)(n);e.reportError(new P7.GraphQLError('Fragment cannot condition on non composite type "'.concat(o,'".'),n))}}},FragmentDefinition:function(r){var n=(0,I7.typeFromAST)(e.getSchema(),r.typeCondition);if(n&&!(0,M7.isCompositeType)(n)){var i=(0,R7.print)(r.typeCondition);e.reportError(new P7.GraphQLError('Fragment "'.concat(r.name.value,'" cannot condition on non composite type "').concat(i,'".'),r.typeCondition))}}}}});var Uk=X(Vk=>{"use strict";Object.defineProperty(Vk,"__esModule",{value:!0});Vk.VariablesAreInputTypesRule=_ie;var Kie=ft(),Xie=ao(),Zie=Rt(),Jie=os();function _ie(e){return{VariableDefinition:function(r){var n=(0,Jie.typeFromAST)(e.getSchema(),r.type);if(n&&!(0,Zie.isInputType)(n)){var i=r.variable.name.value,o=(0,Xie.print)(r.type);e.reportError(new Kie.GraphQLError('Variable "$'.concat(i,'" cannot be non-input type "').concat(o,'".'),r.type))}}}}});var Gk=X(Bk=>{"use strict";Object.defineProperty(Bk,"__esModule",{value:!0});Bk.ScalarLeafsRule=eoe;var F7=$ie(jt()),q7=ft(),j7=Rt();function $ie(e){return e&&e.__esModule?e:{default:e}}function eoe(e){return{Field:function(r){var n=e.getType(),i=r.selectionSet;if(n){if((0,j7.isLeafType)((0,j7.getNamedType)(n))){if(i){var o=r.name.value,s=(0,F7.default)(n);e.reportError(new q7.GraphQLError('Field "'.concat(o,'" must not have a selection since type "').concat(s,'" has no subfields.'),i))}}else if(!i){var l=r.name.value,c=(0,F7.default)(n);e.reportError(new q7.GraphQLError('Field "'.concat(l,'" of type "').concat(c,'" must have a selection of subfields. Did you mean "').concat(l,' { ... }"?'),r))}}}}}});var Hk=X(zk=>{"use strict";Object.defineProperty(zk,"__esModule",{value:!0});zk.FieldsOnCorrectTypeRule=ooe;var toe=Yb(rk()),V7=Yb($l()),roe=Yb(eu()),noe=Yb(Jh()),ioe=ft(),mv=Rt();function Yb(e){return e&&e.__esModule?e:{default:e}}function ooe(e){return{Field:function(r){var n=e.getParentType();if(n){var i=e.getFieldDef();if(!i){var o=e.getSchema(),s=r.name.value,l=(0,V7.default)("to use an inline fragment on",aoe(o,n,s));l===""&&(l=(0,V7.default)(soe(n,s))),e.reportError(new ioe.GraphQLError('Cannot query field "'.concat(s,'" on type "').concat(n.name,'".')+l,r))}}}}}function aoe(e,t,r){if(!(0,mv.isAbstractType)(t))return[];for(var n=new Set,i=Object.create(null),o=0,s=e.getPossibleTypes(t);o{"use strict";Object.defineProperty(Qk,"__esModule",{value:!0});Qk.UniqueFragmentNamesRule=uoe;var loe=ft();function uoe(e){var t=Object.create(null);return{OperationDefinition:function(){return!1},FragmentDefinition:function(n){var i=n.name.value;return t[i]?e.reportError(new loe.GraphQLError('There can be only one fragment named "'.concat(i,'".'),[t[i],n.name])):t[i]=n.name,!1}}}});var Kk=X(Yk=>{"use strict";Object.defineProperty(Yk,"__esModule",{value:!0});Yk.KnownFragmentNamesRule=foe;var coe=ft();function foe(e){return{FragmentSpread:function(r){var n=r.name.value,i=e.getFragment(n);i||e.reportError(new coe.GraphQLError('Unknown fragment "'.concat(n,'".'),r.name))}}}});var Zk=X(Xk=>{"use strict";Object.defineProperty(Xk,"__esModule",{value:!0});Xk.NoUnusedFragmentsRule=poe;var doe=ft();function poe(e){var t=[],r=[];return{OperationDefinition:function(i){return t.push(i),!1},FragmentDefinition:function(i){return r.push(i),!1},Document:{leave:function(){for(var i=Object.create(null),o=0;o{"use strict";Object.defineProperty(_k,"__esModule",{value:!0});_k.PossibleFragmentSpreadsRule=voe;var Kb=hoe(jt()),U7=ft(),Jk=Rt(),moe=os(),B7=rv();function hoe(e){return e&&e.__esModule?e:{default:e}}function voe(e){return{InlineFragment:function(r){var n=e.getType(),i=e.getParentType();if((0,Jk.isCompositeType)(n)&&(0,Jk.isCompositeType)(i)&&!(0,B7.doTypesOverlap)(e.getSchema(),n,i)){var o=(0,Kb.default)(i),s=(0,Kb.default)(n);e.reportError(new U7.GraphQLError('Fragment cannot be spread here as objects of type "'.concat(o,'" can never be of type "').concat(s,'".'),r))}},FragmentSpread:function(r){var n=r.name.value,i=goe(e,n),o=e.getParentType();if(i&&o&&!(0,B7.doTypesOverlap)(e.getSchema(),i,o)){var s=(0,Kb.default)(o),l=(0,Kb.default)(i);e.reportError(new U7.GraphQLError('Fragment "'.concat(n,'" cannot be spread here as objects of type "').concat(s,'" can never be of type "').concat(l,'".'),r))}}}}function goe(e,t){var r=e.getFragment(t);if(r){var n=(0,moe.typeFromAST)(e.getSchema(),r.typeCondition);if((0,Jk.isCompositeType)(n))return n}}});var tO=X(eO=>{"use strict";Object.defineProperty(eO,"__esModule",{value:!0});eO.NoFragmentCyclesRule=boe;var yoe=ft();function boe(e){var t=Object.create(null),r=[],n=Object.create(null);return{OperationDefinition:function(){return!1},FragmentDefinition:function(s){return i(s),!1}};function i(o){if(!t[o.name.value]){var s=o.name.value;t[s]=!0;var l=e.getFragmentSpreads(o.selectionSet);if(l.length!==0){n[s]=r.length;for(var c=0;c{"use strict";Object.defineProperty(rO,"__esModule",{value:!0});rO.UniqueVariableNamesRule=xoe;var Aoe=ft();function xoe(e){var t=Object.create(null);return{OperationDefinition:function(){t=Object.create(null)},VariableDefinition:function(n){var i=n.variable.name.value;t[i]?e.reportError(new Aoe.GraphQLError('There can be only one variable named "$'.concat(i,'".'),[t[i],n.variable.name])):t[i]=n.variable.name}}}});var oO=X(iO=>{"use strict";Object.defineProperty(iO,"__esModule",{value:!0});iO.NoUndefinedVariablesRule=Eoe;var woe=ft();function Eoe(e){var t=Object.create(null);return{OperationDefinition:{enter:function(){t=Object.create(null)},leave:function(n){for(var i=e.getRecursiveVariableUsages(n),o=0;o{"use strict";Object.defineProperty(aO,"__esModule",{value:!0});aO.NoUnusedVariablesRule=Coe;var Toe=ft();function Coe(e){var t=[];return{OperationDefinition:{enter:function(){t=[]},leave:function(n){for(var i=Object.create(null),o=e.getRecursiveVariableUsages(n),s=0;s{"use strict";Object.defineProperty(lO,"__esModule",{value:!0});lO.KnownDirectivesRule=Ooe;var Soe=H7(jt()),z7=H7(Gn()),G7=ft(),vr=tr(),An=Fd(),koe=Bi();function H7(e){return e&&e.__esModule?e:{default:e}}function Ooe(e){for(var t=Object.create(null),r=e.getSchema(),n=r?r.getDirectives():koe.specifiedDirectives,i=0;i{"use strict";Object.defineProperty(fO,"__esModule",{value:!0});fO.UniqueDirectivesPerLocationRule=Roe;var Loe=ft(),cO=tr(),Q7=Vc(),Poe=Bi();function Roe(e){for(var t=Object.create(null),r=e.getSchema(),n=r?r.getDirectives():Poe.specifiedDirectives,i=0;i{"use strict";Object.defineProperty(Xb,"__esModule",{value:!0});Xb.KnownArgumentNamesRule=qoe;Xb.KnownArgumentNamesOnDirectivesRule=_7;var K7=J7($l()),X7=J7(eu()),Z7=ft(),Moe=tr(),Ioe=Bi();function J7(e){return e&&e.__esModule?e:{default:e}}function W7(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function Y7(e){for(var t=1;t{"use strict";Object.defineProperty(mO,"__esModule",{value:!0});mO.UniqueArgumentNamesRule=Voe;var joe=ft();function Voe(e){var t=Object.create(null);return{Field:function(){t=Object.create(null)},Directive:function(){t=Object.create(null)},Argument:function(n){var i=n.name.value;return t[i]?e.reportError(new joe.GraphQLError('There can be only one argument named "'.concat(i,'".'),[t[i],n.name])):t[i]=n.name,!1}}}});var gO=X(vO=>{"use strict";Object.defineProperty(vO,"__esModule",{value:!0});vO.ValuesOfCorrectTypeRule=Hoe;var Uoe=vv(oo()),Boe=vv(_l()),hv=vv(jt()),Goe=vv($l()),zoe=vv(eu()),Bc=ft(),Zb=ao(),as=Rt();function vv(e){return e&&e.__esModule?e:{default:e}}function Hoe(e){return{ListValue:function(r){var n=(0,as.getNullableType)(e.getParentInputType());if(!(0,as.isListType)(n))return Uc(e,r),!1},ObjectValue:function(r){var n=(0,as.getNamedType)(e.getInputType());if(!(0,as.isInputObjectType)(n))return Uc(e,r),!1;for(var i=(0,Boe.default)(r.fields,function(m){return m.name.value}),o=0,s=(0,Uoe.default)(n.getFields());o{"use strict";Object.defineProperty(_b,"__esModule",{value:!0});_b.ProvidedRequiredArgumentsRule=Koe;_b.ProvidedRequiredArgumentsOnDirectivesRule=o9;var t9=i9(jt()),Jb=i9(_l()),r9=ft(),n9=tr(),Qoe=ao(),Woe=Bi(),yO=Rt();function i9(e){return e&&e.__esModule?e:{default:e}}function $7(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function e9(e){for(var t=1;t{"use strict";Object.defineProperty(AO,"__esModule",{value:!0});AO.VariablesInAllowedPositionRule=eae;var a9=$oe(jt()),Zoe=ft(),Joe=tr(),s9=Rt(),_oe=os(),l9=rv();function $oe(e){return e&&e.__esModule?e:{default:e}}function eae(e){var t=Object.create(null);return{OperationDefinition:{enter:function(){t=Object.create(null)},leave:function(n){for(var i=e.getRecursiveVariableUsages(n),o=0;o{"use strict";Object.defineProperty(kO,"__esModule",{value:!0});kO.OverlappingFieldsCanBeMergedRule=oae;var rae=CO(Ud()),nae=CO(Bd()),u9=CO(jt()),iae=ft(),wO=tr(),c9=ao(),Gi=Rt(),f9=os();function CO(e){return e&&e.__esModule?e:{default:e}}function d9(e){return Array.isArray(e)?e.map(function(t){var r=t[0],n=t[1];return'subfields "'.concat(r,'" conflict because ')+d9(n)}).join(" and "):e}function oae(e){var t=new dae,r=new Map;return{SelectionSet:function(i){for(var o=aae(e,r,t,e.getParentType(),i),s=0;s1)for(var m=0;m0)return[[t,e.map(function(i){var o=i[0];return o})],e.reduce(function(i,o){var s=o[1];return i.concat(s)},[r]),e.reduce(function(i,o){var s=o[2];return i.concat(s)},[n])]}var dae=function(){function e(){this._data=Object.create(null)}var t=e.prototype;return t.has=function(n,i,o){var s=this._data[n],l=s&&s[i];return l===void 0?!1:o===!1?l===!1:!0},t.add=function(n,i,o){this._pairSetAdd(n,i,o),this._pairSetAdd(i,n,o)},t._pairSetAdd=function(n,i,o){var s=this._data[n];s||(s=Object.create(null),this._data[n]=s),s[i]=o},e}()});var DO=X(NO=>{"use strict";Object.defineProperty(NO,"__esModule",{value:!0});NO.UniqueInputFieldNamesRule=mae;var pae=ft();function mae(e){var t=[],r=Object.create(null);return{ObjectValue:{enter:function(){t.push(r),r=Object.create(null)},leave:function(){r=t.pop()}},ObjectField:function(i){var o=i.name.value;r[o]?e.reportError(new pae.GraphQLError('There can be only one input field named "'.concat(o,'".'),[r[o],i.name])):r[o]=i.name}}}});var PO=X(LO=>{"use strict";Object.defineProperty(LO,"__esModule",{value:!0});LO.LoneSchemaDefinitionRule=hae;var h9=ft();function hae(e){var t,r,n,i=e.getSchema(),o=(t=(r=(n=i?.astNode)!==null&&n!==void 0?n:i?.getQueryType())!==null&&r!==void 0?r:i?.getMutationType())!==null&&t!==void 0?t:i?.getSubscriptionType(),s=0;return{SchemaDefinition:function(c){if(o){e.reportError(new h9.GraphQLError("Cannot define a new schema within a schema extension.",c));return}s>0&&e.reportError(new h9.GraphQLError("Must provide only one schema definition.",c)),++s}}}});var MO=X(RO=>{"use strict";Object.defineProperty(RO,"__esModule",{value:!0});RO.UniqueOperationTypesRule=vae;var v9=ft();function vae(e){var t=e.getSchema(),r=Object.create(null),n=t?{query:t.getQueryType(),mutation:t.getMutationType(),subscription:t.getSubscriptionType()}:{};return{SchemaDefinition:i,SchemaExtension:i};function i(o){for(var s,l=(s=o.operationTypes)!==null&&s!==void 0?s:[],c=0;c{"use strict";Object.defineProperty(IO,"__esModule",{value:!0});IO.UniqueTypeNamesRule=gae;var g9=ft();function gae(e){var t=Object.create(null),r=e.getSchema();return{ScalarTypeDefinition:n,ObjectTypeDefinition:n,InterfaceTypeDefinition:n,UnionTypeDefinition:n,EnumTypeDefinition:n,InputObjectTypeDefinition:n};function n(i){var o=i.name.value;if(r!=null&&r.getType(o)){e.reportError(new g9.GraphQLError('Type "'.concat(o,'" already exists in the schema. It cannot also be defined in this type definition.'),i.name));return}return t[o]?e.reportError(new g9.GraphQLError('There can be only one type named "'.concat(o,'".'),[t[o],i.name])):t[o]=i.name,!1}}});var jO=X(qO=>{"use strict";Object.defineProperty(qO,"__esModule",{value:!0});qO.UniqueEnumValueNamesRule=bae;var y9=ft(),yae=Rt();function bae(e){var t=e.getSchema(),r=t?t.getTypeMap():Object.create(null),n=Object.create(null);return{EnumTypeDefinition:i,EnumTypeExtension:i};function i(o){var s,l=o.name.value;n[l]||(n[l]=Object.create(null));for(var c=(s=o.values)!==null&&s!==void 0?s:[],f=n[l],m=0;m{"use strict";Object.defineProperty(UO,"__esModule",{value:!0});UO.UniqueFieldDefinitionNamesRule=Aae;var b9=ft(),VO=Rt();function Aae(e){var t=e.getSchema(),r=t?t.getTypeMap():Object.create(null),n=Object.create(null);return{InputObjectTypeDefinition:i,InputObjectTypeExtension:i,InterfaceTypeDefinition:i,InterfaceTypeExtension:i,ObjectTypeDefinition:i,ObjectTypeExtension:i};function i(o){var s,l=o.name.value;n[l]||(n[l]=Object.create(null));for(var c=(s=o.fields)!==null&&s!==void 0?s:[],f=n[l],m=0;m{"use strict";Object.defineProperty(GO,"__esModule",{value:!0});GO.UniqueDirectiveNamesRule=wae;var A9=ft();function wae(e){var t=Object.create(null),r=e.getSchema();return{DirectiveDefinition:function(i){var o=i.name.value;if(r!=null&&r.getDirective(o)){e.reportError(new A9.GraphQLError('Directive "@'.concat(o,'" already exists in the schema. It cannot be redefined.'),i.name));return}return t[o]?e.reportError(new A9.GraphQLError('There can be only one directive named "@'.concat(o,'".'),[t[o],i.name])):t[o]=i.name,!1}}}});var QO=X(HO=>{"use strict";Object.defineProperty(HO,"__esModule",{value:!0});HO.PossibleTypeExtensionsRule=Sae;var w9=rA(jt()),E9=rA(Gn()),Eae=rA($l()),Tae=rA(eu()),x9=ft(),Er=tr(),Cae=Vc(),Zd=Rt(),lu;function rA(e){return e&&e.__esModule?e:{default:e}}function Jd(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function Sae(e){for(var t=e.getSchema(),r=Object.create(null),n=0,i=e.getDocument().definitions;n{"use strict";Object.defineProperty(_d,"__esModule",{value:!0});_d.specifiedSDLRules=_d.specifiedRules=void 0;var Dae=kk(),Lae=Nk(),Pae=Lk(),Rae=Rk(),T9=Fk(),Mae=jk(),Iae=Uk(),Fae=Gk(),qae=Hk(),jae=Wk(),Vae=Kk(),Uae=Zk(),Bae=$k(),Gae=tO(),zae=nO(),Hae=oO(),Qae=sO(),C9=uO(),S9=dO(),k9=pO(),O9=hO(),Wae=gO(),N9=bO(),Yae=xO(),Kae=OO(),D9=DO(),Xae=PO(),Zae=MO(),Jae=FO(),_ae=jO(),$ae=BO(),ese=zO(),tse=QO(),rse=Object.freeze([Dae.ExecutableDefinitionsRule,Lae.UniqueOperationNamesRule,Pae.LoneAnonymousOperationRule,Rae.SingleFieldSubscriptionsRule,T9.KnownTypeNamesRule,Mae.FragmentsOnCompositeTypesRule,Iae.VariablesAreInputTypesRule,Fae.ScalarLeafsRule,qae.FieldsOnCorrectTypeRule,jae.UniqueFragmentNamesRule,Vae.KnownFragmentNamesRule,Uae.NoUnusedFragmentsRule,Bae.PossibleFragmentSpreadsRule,Gae.NoFragmentCyclesRule,zae.UniqueVariableNamesRule,Hae.NoUndefinedVariablesRule,Qae.NoUnusedVariablesRule,C9.KnownDirectivesRule,S9.UniqueDirectivesPerLocationRule,k9.KnownArgumentNamesRule,O9.UniqueArgumentNamesRule,Wae.ValuesOfCorrectTypeRule,N9.ProvidedRequiredArgumentsRule,Yae.VariablesInAllowedPositionRule,Kae.OverlappingFieldsCanBeMergedRule,D9.UniqueInputFieldNamesRule]);_d.specifiedRules=rse;var nse=Object.freeze([Xae.LoneSchemaDefinitionRule,Zae.UniqueOperationTypesRule,Jae.UniqueTypeNamesRule,_ae.UniqueEnumValueNamesRule,$ae.UniqueFieldDefinitionNamesRule,ese.UniqueDirectiveNamesRule,T9.KnownTypeNamesRule,C9.KnownDirectivesRule,S9.UniqueDirectivesPerLocationRule,tse.PossibleTypeExtensionsRule,k9.KnownArgumentNamesOnDirectivesRule,O9.UniqueArgumentNamesRule,D9.UniqueInputFieldNamesRule,N9.ProvidedRequiredArgumentsOnDirectivesRule]);_d.specifiedSDLRules=nse});var KO=X(uu=>{"use strict";Object.defineProperty(uu,"__esModule",{value:!0});uu.ValidationContext=uu.SDLValidationContext=uu.ASTValidationContext=void 0;var L9=tr(),ise=Jl(),P9=Wb();function R9(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,e.__proto__=t}var YO=function(){function e(r,n){this._ast=r,this._fragments=void 0,this._fragmentSpreads=new Map,this._recursivelyReferencedFragments=new Map,this._onError=n}var t=e.prototype;return t.reportError=function(n){this._onError(n)},t.getDocument=function(){return this._ast},t.getFragment=function(n){var i=this._fragments;return i||(this._fragments=i=this.getDocument().definitions.reduce(function(o,s){return s.kind===L9.Kind.FRAGMENT_DEFINITION&&(o[s.name.value]=s),o},Object.create(null))),i[n]},t.getFragmentSpreads=function(n){var i=this._fragmentSpreads.get(n);if(!i){i=[];for(var o=[n];o.length!==0;)for(var s=o.pop(),l=0,c=s.selections;l{"use strict";Object.defineProperty($d,"__esModule",{value:!0});$d.validate=fse;$d.validateSDL=XO;$d.assertValidSDL=dse;$d.assertValidSDLExtension=pse;var sse=cse(Io()),lse=ft(),nA=Jl(),use=dv(),M9=Wb(),I9=WO(),F9=KO();function cse(e){return e&&e.__esModule?e:{default:e}}function fse(e,t){var r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:I9.specifiedRules,n=arguments.length>3&&arguments[3]!==void 0?arguments[3]:new M9.TypeInfo(e),i=arguments.length>4&&arguments[4]!==void 0?arguments[4]:{maxErrors:void 0};t||(0,sse.default)(0,"Must provide document."),(0,use.assertValidSchema)(e);var o=Object.freeze({}),s=[],l=new F9.ValidationContext(e,t,n,function(f){if(i.maxErrors!=null&&s.length>=i.maxErrors)throw s.push(new lse.GraphQLError("Too many validation errors, error limit reached. Validation aborted.")),o;s.push(f)}),c=(0,nA.visitInParallel)(r.map(function(f){return f(l)}));try{(0,nA.visit)(t,(0,M9.visitWithTypeInfo)(n,c))}catch(f){if(f!==o)throw f}return s}function XO(e,t){var r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:I9.specifiedSDLRules,n=[],i=new F9.SDLValidationContext(e,t,function(s){n.push(s)}),o=r.map(function(s){return s(i)});return(0,nA.visit)(e,(0,nA.visitInParallel)(o)),n}function dse(e){var t=XO(e);if(t.length!==0)throw new Error(t.map(function(r){return r.message}).join(` +`)); + }var sie=function(){ + function e(r){ + this._errors=[],this.schema=r; + }var t=e.prototype;return t.reportError=function(n,i){ + var o=Array.isArray(i)?i.filter(Boolean):i;this.addError(new tie.GraphQLError(n,o)); + },t.addError=function(n){ + this._errors.push(n); + },t.getErrors=function(){ + return this._errors; + },e; + }();function lie(e){ + var t=e.schema,r=t.getQueryType();if(!r)e.reportError('Query root type must be provided.',t.astNode);else if(!(0,Wr.isObjectType)(r)){ + var n;e.reportError('Query root type must be Object type, it cannot be '.concat((0,li.default)(r),'.'),(n=bk(t,'query'))!==null&&n!==void 0?n:r.astNode); + }var i=t.getMutationType();if(i&&!(0,Wr.isObjectType)(i)){ + var o;e.reportError('Mutation root type must be Object type if provided, it cannot be '+''.concat((0,li.default)(i),'.'),(o=bk(t,'mutation'))!==null&&o!==void 0?o:i.astNode); + }var s=t.getSubscriptionType();if(s&&!(0,Wr.isObjectType)(s)){ + var l;e.reportError('Subscription root type must be Object type if provided, it cannot be '+''.concat((0,li.default)(s),'.'),(l=bk(t,'subscription'))!==null&&l!==void 0?l:s.astNode); + } + }function bk(e,t){ + for(var r=xk(e,function(o){ + return o.operationTypes; + }),n=0;n{ + 'use strict';Object.defineProperty(Ck,'__esModule',{value:!0});Ck.typeFromAST=Tk;var gie=x7(jt()),yie=x7(Gn()),Ek=tr(),A7=Rt();function x7(e){ + return e&&e.__esModule?e:{default:e}; + }function Tk(e,t){ + var r;if(t.kind===Ek.Kind.LIST_TYPE)return r=Tk(e,t.type),r&&new A7.GraphQLList(r);if(t.kind===Ek.Kind.NON_NULL_TYPE)return r=Tk(e,t.type),r&&new A7.GraphQLNonNull(r);if(t.kind===Ek.Kind.NAMED_TYPE)return e.getType(t.name.value);(0,yie.default)(0,'Unexpected type node: '+(0,gie.default)(t)); + } +});var Wb=X(pv=>{ + 'use strict';Object.defineProperty(pv,'__esModule',{value:!0});pv.visitWithTypeInfo=Tie;pv.TypeInfo=void 0;var bie=xie(Ud()),jr=tr(),Aie=Md(),w7=Jl(),Vr=Rt(),Xd=jo(),E7=os();function xie(e){ + return e&&e.__esModule?e:{default:e}; + }var wie=function(){ + function e(r,n,i){ + this._schema=r,this._typeStack=[],this._parentTypeStack=[],this._inputTypeStack=[],this._fieldDefStack=[],this._defaultValueStack=[],this._directive=null,this._argument=null,this._enumValue=null,this._getFieldDef=n??Eie,i&&((0,Vr.isInputType)(i)&&this._inputTypeStack.push(i),(0,Vr.isCompositeType)(i)&&this._parentTypeStack.push(i),(0,Vr.isOutputType)(i)&&this._typeStack.push(i)); + }var t=e.prototype;return t.getType=function(){ + if(this._typeStack.length>0)return this._typeStack[this._typeStack.length-1]; + },t.getParentType=function(){ + if(this._parentTypeStack.length>0)return this._parentTypeStack[this._parentTypeStack.length-1]; + },t.getInputType=function(){ + if(this._inputTypeStack.length>0)return this._inputTypeStack[this._inputTypeStack.length-1]; + },t.getParentInputType=function(){ + if(this._inputTypeStack.length>1)return this._inputTypeStack[this._inputTypeStack.length-2]; + },t.getFieldDef=function(){ + if(this._fieldDefStack.length>0)return this._fieldDefStack[this._fieldDefStack.length-1]; + },t.getDefaultValue=function(){ + if(this._defaultValueStack.length>0)return this._defaultValueStack[this._defaultValueStack.length-1]; + },t.getDirective=function(){ + return this._directive; + },t.getArgument=function(){ + return this._argument; + },t.getEnumValue=function(){ + return this._enumValue; + },t.enter=function(n){ + var i=this._schema;switch(n.kind){ + case jr.Kind.SELECTION_SET:{var o=(0,Vr.getNamedType)(this.getType());this._parentTypeStack.push((0,Vr.isCompositeType)(o)?o:void 0);break;}case jr.Kind.FIELD:{var s=this.getParentType(),l,c;s&&(l=this._getFieldDef(i,s,n),l&&(c=l.type)),this._fieldDefStack.push(l),this._typeStack.push((0,Vr.isOutputType)(c)?c:void 0);break;}case jr.Kind.DIRECTIVE:this._directive=i.getDirective(n.name.value);break;case jr.Kind.OPERATION_DEFINITION:{var f;switch(n.operation){ + case'query':f=i.getQueryType();break;case'mutation':f=i.getMutationType();break;case'subscription':f=i.getSubscriptionType();break; + }this._typeStack.push((0,Vr.isObjectType)(f)?f:void 0);break;}case jr.Kind.INLINE_FRAGMENT:case jr.Kind.FRAGMENT_DEFINITION:{var m=n.typeCondition,v=m?(0,E7.typeFromAST)(i,m):(0,Vr.getNamedType)(this.getType());this._typeStack.push((0,Vr.isOutputType)(v)?v:void 0);break;}case jr.Kind.VARIABLE_DEFINITION:{var g=(0,E7.typeFromAST)(i,n.type);this._inputTypeStack.push((0,Vr.isInputType)(g)?g:void 0);break;}case jr.Kind.ARGUMENT:{var y,w,T,S=(y=this.getDirective())!==null&&y!==void 0?y:this.getFieldDef();S&&(w=(0,bie.default)(S.args,function(N){ + return N.name===n.name.value; + }),w&&(T=w.type)),this._argument=w,this._defaultValueStack.push(w?w.defaultValue:void 0),this._inputTypeStack.push((0,Vr.isInputType)(T)?T:void 0);break;}case jr.Kind.LIST:{var A=(0,Vr.getNullableType)(this.getInputType()),b=(0,Vr.isListType)(A)?A.ofType:A;this._defaultValueStack.push(void 0),this._inputTypeStack.push((0,Vr.isInputType)(b)?b:void 0);break;}case jr.Kind.OBJECT_FIELD:{var C=(0,Vr.getNamedType)(this.getInputType()),x,k;(0,Vr.isInputObjectType)(C)&&(k=C.getFields()[n.name.value],k&&(x=k.type)),this._defaultValueStack.push(k?k.defaultValue:void 0),this._inputTypeStack.push((0,Vr.isInputType)(x)?x:void 0);break;}case jr.Kind.ENUM:{var P=(0,Vr.getNamedType)(this.getInputType()),D;(0,Vr.isEnumType)(P)&&(D=P.getValue(n.value)),this._enumValue=D;break;} + } + },t.leave=function(n){ + switch(n.kind){ + case jr.Kind.SELECTION_SET:this._parentTypeStack.pop();break;case jr.Kind.FIELD:this._fieldDefStack.pop(),this._typeStack.pop();break;case jr.Kind.DIRECTIVE:this._directive=null;break;case jr.Kind.OPERATION_DEFINITION:case jr.Kind.INLINE_FRAGMENT:case jr.Kind.FRAGMENT_DEFINITION:this._typeStack.pop();break;case jr.Kind.VARIABLE_DEFINITION:this._inputTypeStack.pop();break;case jr.Kind.ARGUMENT:this._argument=null,this._defaultValueStack.pop(),this._inputTypeStack.pop();break;case jr.Kind.LIST:case jr.Kind.OBJECT_FIELD:this._defaultValueStack.pop(),this._inputTypeStack.pop();break;case jr.Kind.ENUM:this._enumValue=null;break; + } + },e; + }();pv.TypeInfo=wie;function Eie(e,t,r){ + var n=r.name.value;if(n===Xd.SchemaMetaFieldDef.name&&e.getQueryType()===t)return Xd.SchemaMetaFieldDef;if(n===Xd.TypeMetaFieldDef.name&&e.getQueryType()===t)return Xd.TypeMetaFieldDef;if(n===Xd.TypeNameMetaFieldDef.name&&(0,Vr.isCompositeType)(t))return Xd.TypeNameMetaFieldDef;if((0,Vr.isObjectType)(t)||(0,Vr.isInterfaceType)(t))return t.getFields()[n]; + }function Tie(e,t){ + return{enter:function(n){ + e.enter(n);var i=(0,w7.getVisitFn)(t,n.kind,!1);if(i){ + var o=i.apply(t,arguments);return o!==void 0&&(e.leave(n),(0,Aie.isNode)(o)&&e.enter(o)),o; + } + },leave:function(n){ + var i=(0,w7.getVisitFn)(t,n.kind,!0),o;return i&&(o=i.apply(t,arguments)),e.leave(n),o; + }}; + } +});var Vc=X(Aa=>{ + 'use strict';Object.defineProperty(Aa,'__esModule',{value:!0});Aa.isDefinitionNode=Cie;Aa.isExecutableDefinitionNode=T7;Aa.isSelectionNode=Sie;Aa.isValueNode=kie;Aa.isTypeNode=Oie;Aa.isTypeSystemDefinitionNode=C7;Aa.isTypeDefinitionNode=S7;Aa.isTypeSystemExtensionNode=k7;Aa.isTypeExtensionNode=O7;var Vt=tr();function Cie(e){ + return T7(e)||C7(e)||k7(e); + }function T7(e){ + return e.kind===Vt.Kind.OPERATION_DEFINITION||e.kind===Vt.Kind.FRAGMENT_DEFINITION; + }function Sie(e){ + return e.kind===Vt.Kind.FIELD||e.kind===Vt.Kind.FRAGMENT_SPREAD||e.kind===Vt.Kind.INLINE_FRAGMENT; + }function kie(e){ + return e.kind===Vt.Kind.VARIABLE||e.kind===Vt.Kind.INT||e.kind===Vt.Kind.FLOAT||e.kind===Vt.Kind.STRING||e.kind===Vt.Kind.BOOLEAN||e.kind===Vt.Kind.NULL||e.kind===Vt.Kind.ENUM||e.kind===Vt.Kind.LIST||e.kind===Vt.Kind.OBJECT; + }function Oie(e){ + return e.kind===Vt.Kind.NAMED_TYPE||e.kind===Vt.Kind.LIST_TYPE||e.kind===Vt.Kind.NON_NULL_TYPE; + }function C7(e){ + return e.kind===Vt.Kind.SCHEMA_DEFINITION||S7(e)||e.kind===Vt.Kind.DIRECTIVE_DEFINITION; + }function S7(e){ + return e.kind===Vt.Kind.SCALAR_TYPE_DEFINITION||e.kind===Vt.Kind.OBJECT_TYPE_DEFINITION||e.kind===Vt.Kind.INTERFACE_TYPE_DEFINITION||e.kind===Vt.Kind.UNION_TYPE_DEFINITION||e.kind===Vt.Kind.ENUM_TYPE_DEFINITION||e.kind===Vt.Kind.INPUT_OBJECT_TYPE_DEFINITION; + }function k7(e){ + return e.kind===Vt.Kind.SCHEMA_EXTENSION||O7(e); + }function O7(e){ + return e.kind===Vt.Kind.SCALAR_TYPE_EXTENSION||e.kind===Vt.Kind.OBJECT_TYPE_EXTENSION||e.kind===Vt.Kind.INTERFACE_TYPE_EXTENSION||e.kind===Vt.Kind.UNION_TYPE_EXTENSION||e.kind===Vt.Kind.ENUM_TYPE_EXTENSION||e.kind===Vt.Kind.INPUT_OBJECT_TYPE_EXTENSION; + } +});var kk=X(Sk=>{ + 'use strict';Object.defineProperty(Sk,'__esModule',{value:!0});Sk.ExecutableDefinitionsRule=Lie;var Nie=ft(),N7=tr(),Die=Vc();function Lie(e){ + return{Document:function(r){ + for(var n=0,i=r.definitions;n{ + 'use strict';Object.defineProperty(Ok,'__esModule',{value:!0});Ok.UniqueOperationNamesRule=Rie;var Pie=ft();function Rie(e){ + var t=Object.create(null);return{OperationDefinition:function(n){ + var i=n.name;return i&&(t[i.value]?e.reportError(new Pie.GraphQLError('There can be only one operation named "'.concat(i.value,'".'),[t[i.value],i])):t[i.value]=i),!1; + },FragmentDefinition:function(){ + return!1; + }}; + } +});var Lk=X(Dk=>{ + 'use strict';Object.defineProperty(Dk,'__esModule',{value:!0});Dk.LoneAnonymousOperationRule=Fie;var Mie=ft(),Iie=tr();function Fie(e){ + var t=0;return{Document:function(n){ + t=n.definitions.filter(function(i){ + return i.kind===Iie.Kind.OPERATION_DEFINITION; + }).length; + },OperationDefinition:function(n){ + !n.name&&t>1&&e.reportError(new Mie.GraphQLError('This anonymous operation must be the only defined operation.',n)); + }}; + } +});var Rk=X(Pk=>{ + 'use strict';Object.defineProperty(Pk,'__esModule',{value:!0});Pk.SingleFieldSubscriptionsRule=jie;var qie=ft();function jie(e){ + return{OperationDefinition:function(r){ + r.operation==='subscription'&&r.selectionSet.selections.length!==1&&e.reportError(new qie.GraphQLError(r.name?'Subscription "'.concat(r.name.value,'" must select only one top level field.'):'Anonymous Subscription must select only one top level field.',r.selectionSet.selections.slice(1))); + }}; + } +});var Fk=X(Ik=>{ + 'use strict';Object.defineProperty(Ik,'__esModule',{value:!0});Ik.KnownTypeNamesRule=Hie;var Vie=D7($l()),Uie=D7(eu()),Bie=ft(),Mk=Vc(),Gie=is(),zie=jo();function D7(e){ + return e&&e.__esModule?e:{default:e}; + }function Hie(e){ + for(var t=e.getSchema(),r=t?t.getTypeMap():Object.create(null),n=Object.create(null),i=0,o=e.getDocument().definitions;i{ + 'use strict';Object.defineProperty(qk,'__esModule',{value:!0});qk.FragmentsOnCompositeTypesRule=Yie;var P7=ft(),R7=ao(),M7=Rt(),I7=os();function Yie(e){ + return{InlineFragment:function(r){ + var n=r.typeCondition;if(n){ + var i=(0,I7.typeFromAST)(e.getSchema(),n);if(i&&!(0,M7.isCompositeType)(i)){ + var o=(0,R7.print)(n);e.reportError(new P7.GraphQLError('Fragment cannot condition on non composite type "'.concat(o,'".'),n)); + } + } + },FragmentDefinition:function(r){ + var n=(0,I7.typeFromAST)(e.getSchema(),r.typeCondition);if(n&&!(0,M7.isCompositeType)(n)){ + var i=(0,R7.print)(r.typeCondition);e.reportError(new P7.GraphQLError('Fragment "'.concat(r.name.value,'" cannot condition on non composite type "').concat(i,'".'),r.typeCondition)); + } + }}; + } +});var Uk=X(Vk=>{ + 'use strict';Object.defineProperty(Vk,'__esModule',{value:!0});Vk.VariablesAreInputTypesRule=_ie;var Kie=ft(),Xie=ao(),Zie=Rt(),Jie=os();function _ie(e){ + return{VariableDefinition:function(r){ + var n=(0,Jie.typeFromAST)(e.getSchema(),r.type);if(n&&!(0,Zie.isInputType)(n)){ + var i=r.variable.name.value,o=(0,Xie.print)(r.type);e.reportError(new Kie.GraphQLError('Variable "$'.concat(i,'" cannot be non-input type "').concat(o,'".'),r.type)); + } + }}; + } +});var Gk=X(Bk=>{ + 'use strict';Object.defineProperty(Bk,'__esModule',{value:!0});Bk.ScalarLeafsRule=eoe;var F7=$ie(jt()),q7=ft(),j7=Rt();function $ie(e){ + return e&&e.__esModule?e:{default:e}; + }function eoe(e){ + return{Field:function(r){ + var n=e.getType(),i=r.selectionSet;if(n){ + if((0,j7.isLeafType)((0,j7.getNamedType)(n))){ + if(i){ + var o=r.name.value,s=(0,F7.default)(n);e.reportError(new q7.GraphQLError('Field "'.concat(o,'" must not have a selection since type "').concat(s,'" has no subfields.'),i)); + } + }else if(!i){ + var l=r.name.value,c=(0,F7.default)(n);e.reportError(new q7.GraphQLError('Field "'.concat(l,'" of type "').concat(c,'" must have a selection of subfields. Did you mean "').concat(l,' { ... }"?'),r)); + } + } + }}; + } +});var Hk=X(zk=>{ + 'use strict';Object.defineProperty(zk,'__esModule',{value:!0});zk.FieldsOnCorrectTypeRule=ooe;var toe=Yb(rk()),V7=Yb($l()),roe=Yb(eu()),noe=Yb(Jh()),ioe=ft(),mv=Rt();function Yb(e){ + return e&&e.__esModule?e:{default:e}; + }function ooe(e){ + return{Field:function(r){ + var n=e.getParentType();if(n){ + var i=e.getFieldDef();if(!i){ + var o=e.getSchema(),s=r.name.value,l=(0,V7.default)('to use an inline fragment on',aoe(o,n,s));l===''&&(l=(0,V7.default)(soe(n,s))),e.reportError(new ioe.GraphQLError('Cannot query field "'.concat(s,'" on type "').concat(n.name,'".')+l,r)); + } + } + }}; + }function aoe(e,t,r){ + if(!(0,mv.isAbstractType)(t))return[];for(var n=new Set,i=Object.create(null),o=0,s=e.getPossibleTypes(t);o{ + 'use strict';Object.defineProperty(Qk,'__esModule',{value:!0});Qk.UniqueFragmentNamesRule=uoe;var loe=ft();function uoe(e){ + var t=Object.create(null);return{OperationDefinition:function(){ + return!1; + },FragmentDefinition:function(n){ + var i=n.name.value;return t[i]?e.reportError(new loe.GraphQLError('There can be only one fragment named "'.concat(i,'".'),[t[i],n.name])):t[i]=n.name,!1; + }}; + } +});var Kk=X(Yk=>{ + 'use strict';Object.defineProperty(Yk,'__esModule',{value:!0});Yk.KnownFragmentNamesRule=foe;var coe=ft();function foe(e){ + return{FragmentSpread:function(r){ + var n=r.name.value,i=e.getFragment(n);i||e.reportError(new coe.GraphQLError('Unknown fragment "'.concat(n,'".'),r.name)); + }}; + } +});var Zk=X(Xk=>{ + 'use strict';Object.defineProperty(Xk,'__esModule',{value:!0});Xk.NoUnusedFragmentsRule=poe;var doe=ft();function poe(e){ + var t=[],r=[];return{OperationDefinition:function(i){ + return t.push(i),!1; + },FragmentDefinition:function(i){ + return r.push(i),!1; + },Document:{leave:function(){ + for(var i=Object.create(null),o=0;o{ + 'use strict';Object.defineProperty(_k,'__esModule',{value:!0});_k.PossibleFragmentSpreadsRule=voe;var Kb=hoe(jt()),U7=ft(),Jk=Rt(),moe=os(),B7=rv();function hoe(e){ + return e&&e.__esModule?e:{default:e}; + }function voe(e){ + return{InlineFragment:function(r){ + var n=e.getType(),i=e.getParentType();if((0,Jk.isCompositeType)(n)&&(0,Jk.isCompositeType)(i)&&!(0,B7.doTypesOverlap)(e.getSchema(),n,i)){ + var o=(0,Kb.default)(i),s=(0,Kb.default)(n);e.reportError(new U7.GraphQLError('Fragment cannot be spread here as objects of type "'.concat(o,'" can never be of type "').concat(s,'".'),r)); + } + },FragmentSpread:function(r){ + var n=r.name.value,i=goe(e,n),o=e.getParentType();if(i&&o&&!(0,B7.doTypesOverlap)(e.getSchema(),i,o)){ + var s=(0,Kb.default)(o),l=(0,Kb.default)(i);e.reportError(new U7.GraphQLError('Fragment "'.concat(n,'" cannot be spread here as objects of type "').concat(s,'" can never be of type "').concat(l,'".'),r)); + } + }}; + }function goe(e,t){ + var r=e.getFragment(t);if(r){ + var n=(0,moe.typeFromAST)(e.getSchema(),r.typeCondition);if((0,Jk.isCompositeType)(n))return n; + } + } +});var tO=X(eO=>{ + 'use strict';Object.defineProperty(eO,'__esModule',{value:!0});eO.NoFragmentCyclesRule=boe;var yoe=ft();function boe(e){ + var t=Object.create(null),r=[],n=Object.create(null);return{OperationDefinition:function(){ + return!1; + },FragmentDefinition:function(s){ + return i(s),!1; + }};function i(o){ + if(!t[o.name.value]){ + var s=o.name.value;t[s]=!0;var l=e.getFragmentSpreads(o.selectionSet);if(l.length!==0){ + n[s]=r.length;for(var c=0;c{ + 'use strict';Object.defineProperty(rO,'__esModule',{value:!0});rO.UniqueVariableNamesRule=xoe;var Aoe=ft();function xoe(e){ + var t=Object.create(null);return{OperationDefinition:function(){ + t=Object.create(null); + },VariableDefinition:function(n){ + var i=n.variable.name.value;t[i]?e.reportError(new Aoe.GraphQLError('There can be only one variable named "$'.concat(i,'".'),[t[i],n.variable.name])):t[i]=n.variable.name; + }}; + } +});var oO=X(iO=>{ + 'use strict';Object.defineProperty(iO,'__esModule',{value:!0});iO.NoUndefinedVariablesRule=Eoe;var woe=ft();function Eoe(e){ + var t=Object.create(null);return{OperationDefinition:{enter:function(){ + t=Object.create(null); + },leave:function(n){ + for(var i=e.getRecursiveVariableUsages(n),o=0;o{ + 'use strict';Object.defineProperty(aO,'__esModule',{value:!0});aO.NoUnusedVariablesRule=Coe;var Toe=ft();function Coe(e){ + var t=[];return{OperationDefinition:{enter:function(){ + t=[]; + },leave:function(n){ + for(var i=Object.create(null),o=e.getRecursiveVariableUsages(n),s=0;s{ + 'use strict';Object.defineProperty(lO,'__esModule',{value:!0});lO.KnownDirectivesRule=Ooe;var Soe=H7(jt()),z7=H7(Gn()),G7=ft(),vr=tr(),An=Fd(),koe=Bi();function H7(e){ + return e&&e.__esModule?e:{default:e}; + }function Ooe(e){ + for(var t=Object.create(null),r=e.getSchema(),n=r?r.getDirectives():koe.specifiedDirectives,i=0;i{ + 'use strict';Object.defineProperty(fO,'__esModule',{value:!0});fO.UniqueDirectivesPerLocationRule=Roe;var Loe=ft(),cO=tr(),Q7=Vc(),Poe=Bi();function Roe(e){ + for(var t=Object.create(null),r=e.getSchema(),n=r?r.getDirectives():Poe.specifiedDirectives,i=0;i{ + 'use strict';Object.defineProperty(Xb,'__esModule',{value:!0});Xb.KnownArgumentNamesRule=qoe;Xb.KnownArgumentNamesOnDirectivesRule=_7;var K7=J7($l()),X7=J7(eu()),Z7=ft(),Moe=tr(),Ioe=Bi();function J7(e){ + return e&&e.__esModule?e:{default:e}; + }function W7(e,t){ + var r=Object.keys(e);if(Object.getOwnPropertySymbols){ + var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){ + return Object.getOwnPropertyDescriptor(e,i).enumerable; + })),r.push.apply(r,n); + }return r; + }function Y7(e){ + for(var t=1;t{ + 'use strict';Object.defineProperty(mO,'__esModule',{value:!0});mO.UniqueArgumentNamesRule=Voe;var joe=ft();function Voe(e){ + var t=Object.create(null);return{Field:function(){ + t=Object.create(null); + },Directive:function(){ + t=Object.create(null); + },Argument:function(n){ + var i=n.name.value;return t[i]?e.reportError(new joe.GraphQLError('There can be only one argument named "'.concat(i,'".'),[t[i],n.name])):t[i]=n.name,!1; + }}; + } +});var gO=X(vO=>{ + 'use strict';Object.defineProperty(vO,'__esModule',{value:!0});vO.ValuesOfCorrectTypeRule=Hoe;var Uoe=vv(oo()),Boe=vv(_l()),hv=vv(jt()),Goe=vv($l()),zoe=vv(eu()),Bc=ft(),Zb=ao(),as=Rt();function vv(e){ + return e&&e.__esModule?e:{default:e}; + }function Hoe(e){ + return{ListValue:function(r){ + var n=(0,as.getNullableType)(e.getParentInputType());if(!(0,as.isListType)(n))return Uc(e,r),!1; + },ObjectValue:function(r){ + var n=(0,as.getNamedType)(e.getInputType());if(!(0,as.isInputObjectType)(n))return Uc(e,r),!1;for(var i=(0,Boe.default)(r.fields,function(m){ + return m.name.value; + }),o=0,s=(0,Uoe.default)(n.getFields());o{ + 'use strict';Object.defineProperty(_b,'__esModule',{value:!0});_b.ProvidedRequiredArgumentsRule=Koe;_b.ProvidedRequiredArgumentsOnDirectivesRule=o9;var t9=i9(jt()),Jb=i9(_l()),r9=ft(),n9=tr(),Qoe=ao(),Woe=Bi(),yO=Rt();function i9(e){ + return e&&e.__esModule?e:{default:e}; + }function $7(e,t){ + var r=Object.keys(e);if(Object.getOwnPropertySymbols){ + var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){ + return Object.getOwnPropertyDescriptor(e,i).enumerable; + })),r.push.apply(r,n); + }return r; + }function e9(e){ + for(var t=1;t{ + 'use strict';Object.defineProperty(AO,'__esModule',{value:!0});AO.VariablesInAllowedPositionRule=eae;var a9=$oe(jt()),Zoe=ft(),Joe=tr(),s9=Rt(),_oe=os(),l9=rv();function $oe(e){ + return e&&e.__esModule?e:{default:e}; + }function eae(e){ + var t=Object.create(null);return{OperationDefinition:{enter:function(){ + t=Object.create(null); + },leave:function(n){ + for(var i=e.getRecursiveVariableUsages(n),o=0;o{ + 'use strict';Object.defineProperty(kO,'__esModule',{value:!0});kO.OverlappingFieldsCanBeMergedRule=oae;var rae=CO(Ud()),nae=CO(Bd()),u9=CO(jt()),iae=ft(),wO=tr(),c9=ao(),Gi=Rt(),f9=os();function CO(e){ + return e&&e.__esModule?e:{default:e}; + }function d9(e){ + return Array.isArray(e)?e.map(function(t){ + var r=t[0],n=t[1];return'subfields "'.concat(r,'" conflict because ')+d9(n); + }).join(' and '):e; + }function oae(e){ + var t=new dae,r=new Map;return{SelectionSet:function(i){ + for(var o=aae(e,r,t,e.getParentType(),i),s=0;s1)for(var m=0;m0)return[[t,e.map(function(i){ + var o=i[0];return o; + })],e.reduce(function(i,o){ + var s=o[1];return i.concat(s); + },[r]),e.reduce(function(i,o){ + var s=o[2];return i.concat(s); + },[n])]; + }var dae=function(){ + function e(){ + this._data=Object.create(null); + }var t=e.prototype;return t.has=function(n,i,o){ + var s=this._data[n],l=s&&s[i];return l===void 0?!1:o===!1?l===!1:!0; + },t.add=function(n,i,o){ + this._pairSetAdd(n,i,o),this._pairSetAdd(i,n,o); + },t._pairSetAdd=function(n,i,o){ + var s=this._data[n];s||(s=Object.create(null),this._data[n]=s),s[i]=o; + },e; + }(); +});var DO=X(NO=>{ + 'use strict';Object.defineProperty(NO,'__esModule',{value:!0});NO.UniqueInputFieldNamesRule=mae;var pae=ft();function mae(e){ + var t=[],r=Object.create(null);return{ObjectValue:{enter:function(){ + t.push(r),r=Object.create(null); + },leave:function(){ + r=t.pop(); + }},ObjectField:function(i){ + var o=i.name.value;r[o]?e.reportError(new pae.GraphQLError('There can be only one input field named "'.concat(o,'".'),[r[o],i.name])):r[o]=i.name; + }}; + } +});var PO=X(LO=>{ + 'use strict';Object.defineProperty(LO,'__esModule',{value:!0});LO.LoneSchemaDefinitionRule=hae;var h9=ft();function hae(e){ + var t,r,n,i=e.getSchema(),o=(t=(r=(n=i?.astNode)!==null&&n!==void 0?n:i?.getQueryType())!==null&&r!==void 0?r:i?.getMutationType())!==null&&t!==void 0?t:i?.getSubscriptionType(),s=0;return{SchemaDefinition:function(c){ + if(o){ + e.reportError(new h9.GraphQLError('Cannot define a new schema within a schema extension.',c));return; + }s>0&&e.reportError(new h9.GraphQLError('Must provide only one schema definition.',c)),++s; + }}; + } +});var MO=X(RO=>{ + 'use strict';Object.defineProperty(RO,'__esModule',{value:!0});RO.UniqueOperationTypesRule=vae;var v9=ft();function vae(e){ + var t=e.getSchema(),r=Object.create(null),n=t?{query:t.getQueryType(),mutation:t.getMutationType(),subscription:t.getSubscriptionType()}:{};return{SchemaDefinition:i,SchemaExtension:i};function i(o){ + for(var s,l=(s=o.operationTypes)!==null&&s!==void 0?s:[],c=0;c{ + 'use strict';Object.defineProperty(IO,'__esModule',{value:!0});IO.UniqueTypeNamesRule=gae;var g9=ft();function gae(e){ + var t=Object.create(null),r=e.getSchema();return{ScalarTypeDefinition:n,ObjectTypeDefinition:n,InterfaceTypeDefinition:n,UnionTypeDefinition:n,EnumTypeDefinition:n,InputObjectTypeDefinition:n};function n(i){ + var o=i.name.value;if(r!=null&&r.getType(o)){ + e.reportError(new g9.GraphQLError('Type "'.concat(o,'" already exists in the schema. It cannot also be defined in this type definition.'),i.name));return; + }return t[o]?e.reportError(new g9.GraphQLError('There can be only one type named "'.concat(o,'".'),[t[o],i.name])):t[o]=i.name,!1; + } + } +});var jO=X(qO=>{ + 'use strict';Object.defineProperty(qO,'__esModule',{value:!0});qO.UniqueEnumValueNamesRule=bae;var y9=ft(),yae=Rt();function bae(e){ + var t=e.getSchema(),r=t?t.getTypeMap():Object.create(null),n=Object.create(null);return{EnumTypeDefinition:i,EnumTypeExtension:i};function i(o){ + var s,l=o.name.value;n[l]||(n[l]=Object.create(null));for(var c=(s=o.values)!==null&&s!==void 0?s:[],f=n[l],m=0;m{ + 'use strict';Object.defineProperty(UO,'__esModule',{value:!0});UO.UniqueFieldDefinitionNamesRule=Aae;var b9=ft(),VO=Rt();function Aae(e){ + var t=e.getSchema(),r=t?t.getTypeMap():Object.create(null),n=Object.create(null);return{InputObjectTypeDefinition:i,InputObjectTypeExtension:i,InterfaceTypeDefinition:i,InterfaceTypeExtension:i,ObjectTypeDefinition:i,ObjectTypeExtension:i};function i(o){ + var s,l=o.name.value;n[l]||(n[l]=Object.create(null));for(var c=(s=o.fields)!==null&&s!==void 0?s:[],f=n[l],m=0;m{ + 'use strict';Object.defineProperty(GO,'__esModule',{value:!0});GO.UniqueDirectiveNamesRule=wae;var A9=ft();function wae(e){ + var t=Object.create(null),r=e.getSchema();return{DirectiveDefinition:function(i){ + var o=i.name.value;if(r!=null&&r.getDirective(o)){ + e.reportError(new A9.GraphQLError('Directive "@'.concat(o,'" already exists in the schema. It cannot be redefined.'),i.name));return; + }return t[o]?e.reportError(new A9.GraphQLError('There can be only one directive named "@'.concat(o,'".'),[t[o],i.name])):t[o]=i.name,!1; + }}; + } +});var QO=X(HO=>{ + 'use strict';Object.defineProperty(HO,'__esModule',{value:!0});HO.PossibleTypeExtensionsRule=Sae;var w9=rA(jt()),E9=rA(Gn()),Eae=rA($l()),Tae=rA(eu()),x9=ft(),Er=tr(),Cae=Vc(),Zd=Rt(),lu;function rA(e){ + return e&&e.__esModule?e:{default:e}; + }function Jd(e,t,r){ + return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e; + }function Sae(e){ + for(var t=e.getSchema(),r=Object.create(null),n=0,i=e.getDocument().definitions;n{ + 'use strict';Object.defineProperty(_d,'__esModule',{value:!0});_d.specifiedSDLRules=_d.specifiedRules=void 0;var Dae=kk(),Lae=Nk(),Pae=Lk(),Rae=Rk(),T9=Fk(),Mae=jk(),Iae=Uk(),Fae=Gk(),qae=Hk(),jae=Wk(),Vae=Kk(),Uae=Zk(),Bae=$k(),Gae=tO(),zae=nO(),Hae=oO(),Qae=sO(),C9=uO(),S9=dO(),k9=pO(),O9=hO(),Wae=gO(),N9=bO(),Yae=xO(),Kae=OO(),D9=DO(),Xae=PO(),Zae=MO(),Jae=FO(),_ae=jO(),$ae=BO(),ese=zO(),tse=QO(),rse=Object.freeze([Dae.ExecutableDefinitionsRule,Lae.UniqueOperationNamesRule,Pae.LoneAnonymousOperationRule,Rae.SingleFieldSubscriptionsRule,T9.KnownTypeNamesRule,Mae.FragmentsOnCompositeTypesRule,Iae.VariablesAreInputTypesRule,Fae.ScalarLeafsRule,qae.FieldsOnCorrectTypeRule,jae.UniqueFragmentNamesRule,Vae.KnownFragmentNamesRule,Uae.NoUnusedFragmentsRule,Bae.PossibleFragmentSpreadsRule,Gae.NoFragmentCyclesRule,zae.UniqueVariableNamesRule,Hae.NoUndefinedVariablesRule,Qae.NoUnusedVariablesRule,C9.KnownDirectivesRule,S9.UniqueDirectivesPerLocationRule,k9.KnownArgumentNamesRule,O9.UniqueArgumentNamesRule,Wae.ValuesOfCorrectTypeRule,N9.ProvidedRequiredArgumentsRule,Yae.VariablesInAllowedPositionRule,Kae.OverlappingFieldsCanBeMergedRule,D9.UniqueInputFieldNamesRule]);_d.specifiedRules=rse;var nse=Object.freeze([Xae.LoneSchemaDefinitionRule,Zae.UniqueOperationTypesRule,Jae.UniqueTypeNamesRule,_ae.UniqueEnumValueNamesRule,$ae.UniqueFieldDefinitionNamesRule,ese.UniqueDirectiveNamesRule,T9.KnownTypeNamesRule,C9.KnownDirectivesRule,S9.UniqueDirectivesPerLocationRule,tse.PossibleTypeExtensionsRule,k9.KnownArgumentNamesOnDirectivesRule,O9.UniqueArgumentNamesRule,D9.UniqueInputFieldNamesRule,N9.ProvidedRequiredArgumentsOnDirectivesRule]);_d.specifiedSDLRules=nse; +});var KO=X(uu=>{ + 'use strict';Object.defineProperty(uu,'__esModule',{value:!0});uu.ValidationContext=uu.SDLValidationContext=uu.ASTValidationContext=void 0;var L9=tr(),ise=Jl(),P9=Wb();function R9(e,t){ + e.prototype=Object.create(t.prototype),e.prototype.constructor=e,e.__proto__=t; + }var YO=function(){ + function e(r,n){ + this._ast=r,this._fragments=void 0,this._fragmentSpreads=new Map,this._recursivelyReferencedFragments=new Map,this._onError=n; + }var t=e.prototype;return t.reportError=function(n){ + this._onError(n); + },t.getDocument=function(){ + return this._ast; + },t.getFragment=function(n){ + var i=this._fragments;return i||(this._fragments=i=this.getDocument().definitions.reduce(function(o,s){ + return s.kind===L9.Kind.FRAGMENT_DEFINITION&&(o[s.name.value]=s),o; + },Object.create(null))),i[n]; + },t.getFragmentSpreads=function(n){ + var i=this._fragmentSpreads.get(n);if(!i){ + i=[];for(var o=[n];o.length!==0;)for(var s=o.pop(),l=0,c=s.selections;l{ + 'use strict';Object.defineProperty($d,'__esModule',{value:!0});$d.validate=fse;$d.validateSDL=XO;$d.assertValidSDL=dse;$d.assertValidSDLExtension=pse;var sse=cse(Io()),lse=ft(),nA=Jl(),use=dv(),M9=Wb(),I9=WO(),F9=KO();function cse(e){ + return e&&e.__esModule?e:{default:e}; + }function fse(e,t){ + var r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:I9.specifiedRules,n=arguments.length>3&&arguments[3]!==void 0?arguments[3]:new M9.TypeInfo(e),i=arguments.length>4&&arguments[4]!==void 0?arguments[4]:{maxErrors:void 0};t||(0,sse.default)(0,'Must provide document.'),(0,use.assertValidSchema)(e);var o=Object.freeze({}),s=[],l=new F9.ValidationContext(e,t,n,function(f){ + if(i.maxErrors!=null&&s.length>=i.maxErrors)throw s.push(new lse.GraphQLError('Too many validation errors, error limit reached. Validation aborted.')),o;s.push(f); + }),c=(0,nA.visitInParallel)(r.map(function(f){ + return f(l); + }));try{ + (0,nA.visit)(t,(0,M9.visitWithTypeInfo)(n,c)); + }catch(f){ + if(f!==o)throw f; + }return s; + }function XO(e,t){ + var r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:I9.specifiedSDLRules,n=[],i=new F9.SDLValidationContext(e,t,function(s){ + n.push(s); + }),o=r.map(function(s){ + return s(i); + });return(0,nA.visit)(e,(0,nA.visitInParallel)(o)),n; + }function dse(e){ + var t=XO(e);if(t.length!==0)throw new Error(t.map(function(r){ + return r.message; + }).join(` -`))}function pse(e,t){var r=XO(e,t);if(r.length!==0)throw new Error(r.map(function(n){return n.message}).join(` +`)); + }function pse(e,t){ + var r=XO(e,t);if(r.length!==0)throw new Error(r.map(function(n){ + return n.message; + }).join(` -`))}});var q9=X(ZO=>{"use strict";Object.defineProperty(ZO,"__esModule",{value:!0});ZO.default=mse;function mse(e){var t;return function(n,i,o){t||(t=new WeakMap);var s=t.get(n),l;if(s){if(l=s.get(i),l){var c=l.get(o);if(c!==void 0)return c}}else s=new WeakMap,t.set(n,s);l||(l=new WeakMap,s.set(i,l));var f=e(n,i,o);return l.set(o,f),f}}});var j9=X(JO=>{"use strict";Object.defineProperty(JO,"__esModule",{value:!0});JO.default=gse;var hse=vse(tb());function vse(e){return e&&e.__esModule?e:{default:e}}function gse(e,t,r){return e.reduce(function(n,i){return(0,hse.default)(n)?n.then(function(o){return t(o,i)}):t(n,i)},r)}});var V9=X(_O=>{"use strict";Object.defineProperty(_O,"__esModule",{value:!0});_O.default=yse;function yse(e){var t=Object.keys(e),r=t.map(function(n){return e[n]});return Promise.all(r).then(function(n){return n.reduce(function(i,o,s){return i[t[s]]=o,i},Object.create(null))})}});var gv=X(iA=>{"use strict";Object.defineProperty(iA,"__esModule",{value:!0});iA.addPath=bse;iA.pathToArray=Ase;function bse(e,t,r){return{prev:e,key:t,typename:r}}function Ase(e){for(var t=[],r=e;r;)t.push(r.key),r=r.prev;return t.reverse()}});var aA=X($O=>{"use strict";Object.defineProperty($O,"__esModule",{value:!0});$O.getOperationRootType=xse;var oA=ft();function xse(e,t){if(t.operation==="query"){var r=e.getQueryType();if(!r)throw new oA.GraphQLError("Schema does not define the required query root type.",t);return r}if(t.operation==="mutation"){var n=e.getMutationType();if(!n)throw new oA.GraphQLError("Schema is not configured for mutations.",t);return n}if(t.operation==="subscription"){var i=e.getSubscriptionType();if(!i)throw new oA.GraphQLError("Schema is not configured for subscriptions.",t);return i}throw new oA.GraphQLError("Can only have query, mutation and subscription operations.",t)}});var tN=X(eN=>{"use strict";Object.defineProperty(eN,"__esModule",{value:!0});eN.default=wse;function wse(e){return e.map(function(t){return typeof t=="number"?"["+t.toString()+"]":"."+t}).join("")}});var bv=X(rN=>{"use strict";Object.defineProperty(rN,"__esModule",{value:!0});rN.valueFromAST=yv;var Ese=sA(oo()),Tse=sA(_l()),Cse=sA(jt()),Sse=sA(Gn()),tp=tr(),Gc=Rt();function sA(e){return e&&e.__esModule?e:{default:e}}function yv(e,t,r){if(e){if(e.kind===tp.Kind.VARIABLE){var n=e.name.value;if(r==null||r[n]===void 0)return;var i=r[n];return i===null&&(0,Gc.isNonNullType)(t)?void 0:i}if((0,Gc.isNonNullType)(t))return e.kind===tp.Kind.NULL?void 0:yv(e,t.ofType,r);if(e.kind===tp.Kind.NULL)return null;if((0,Gc.isListType)(t)){var o=t.ofType;if(e.kind===tp.Kind.LIST){for(var s=[],l=0,c=e.values;l{"use strict";Object.defineProperty(nN,"__esModule",{value:!0});nN.coerceInputValue=Mse;var kse=cu(oo()),lA=cu(jt()),Ose=cu(Gn()),Nse=cu($l()),Dse=cu(es()),Lse=cu(qb()),Pse=cu(eu()),Rse=cu(tN()),el=gv(),zc=ft(),Av=Rt();function cu(e){return e&&e.__esModule?e:{default:e}}function Mse(e,t){var r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:Ise;return xv(e,t,r)}function Ise(e,t,r){var n="Invalid value "+(0,lA.default)(t);throw e.length>0&&(n+=' at "value'.concat((0,Rse.default)(e),'"')),r.message=n+": "+r.message,r}function xv(e,t,r,n){if((0,Av.isNonNullType)(t)){if(e!=null)return xv(e,t.ofType,r,n);r((0,el.pathToArray)(n),e,new zc.GraphQLError('Expected non-nullable type "'.concat((0,lA.default)(t),'" not to be null.')));return}if(e==null)return null;if((0,Av.isListType)(t)){var i=t.ofType,o=(0,Lse.default)(e,function(b,C){var x=(0,el.addPath)(n,C,void 0);return xv(b,i,r,x)});return o??[xv(e,i,r,n)]}if((0,Av.isInputObjectType)(t)){if(!(0,Dse.default)(e)){r((0,el.pathToArray)(n),e,new zc.GraphQLError('Expected type "'.concat(t.name,'" to be an object.')));return}for(var s={},l=t.getFields(),c=0,f=(0,kse.default)(l);c{"use strict";Object.defineProperty(wv,"__esModule",{value:!0});wv.getVariableValues=Bse;wv.getArgumentValues=H9;wv.getDirectiveValues=zse;var Fse=uA(Ud()),qse=uA(_l()),rp=uA(jt()),jse=uA(tN()),tl=ft(),B9=tr(),G9=ao(),np=Rt(),Vse=os(),z9=bv(),Use=iN();function uA(e){return e&&e.__esModule?e:{default:e}}function Bse(e,t,r,n){var i=[],o=n?.maxErrors;try{var s=Gse(e,t,r,function(l){if(o!=null&&i.length>=o)throw new tl.GraphQLError("Too many errors processing variables, error limit reached. Execution aborted.");i.push(l)});if(i.length===0)return{coerced:s}}catch(l){i.push(l)}return{errors:i}}function Gse(e,t,r,n){for(var i={},o=function(f){var m=t[f],v=m.variable.name.value,g=(0,Vse.typeFromAST)(e,m.type);if(!(0,np.isInputType)(g)){var y=(0,G9.print)(m.type);return n(new tl.GraphQLError('Variable "$'.concat(v,'" expected value of type "').concat(y,'" which cannot be used as an input type.'),m.type)),"continue"}if(!Q9(r,v)){if(m.defaultValue)i[v]=(0,z9.valueFromAST)(m.defaultValue,g);else if((0,np.isNonNullType)(g)){var w=(0,rp.default)(g);n(new tl.GraphQLError('Variable "$'.concat(v,'" of required type "').concat(w,'" was not provided.'),m))}return"continue"}var T=r[v];if(T===null&&(0,np.isNonNullType)(g)){var S=(0,rp.default)(g);return n(new tl.GraphQLError('Variable "$'.concat(v,'" of non-null type "').concat(S,'" must not be null.'),m)),"continue"}i[v]=(0,Use.coerceInputValue)(T,g,function(A,b,C){var x='Variable "$'.concat(v,'" got invalid value ')+(0,rp.default)(b);A.length>0&&(x+=' at "'.concat(v).concat((0,jse.default)(A),'"')),n(new tl.GraphQLError(x+"; "+C.message,m,void 0,void 0,void 0,C.originalError))})},s=0;s{"use strict";Object.defineProperty(lo,"__esModule",{value:!0});lo.execute=_se;lo.executeSync=$se;lo.assertValidExecutionArguments=$9;lo.buildExecutionContext=e8;lo.collectFields=Cv;lo.buildResolveInfo=n8;lo.getFieldDef=a8;lo.defaultFieldResolver=lo.defaultTypeResolver=void 0;var op=nl(jt()),Hse=nl(q9()),Qse=nl(Gn()),W9=nl(Io()),Vo=nl(tb()),lN=nl(es()),Wse=nl(qb()),Yse=nl(j9()),Kse=nl(V9()),Hc=gv(),ss=ft(),cA=Xh(),Tv=tr(),Xse=dv(),ip=jo(),Y9=Bi(),rl=Rt(),Zse=os(),Jse=aA(),fA=Ev();function nl(e){return e&&e.__esModule?e:{default:e}}function _se(e,t,r,n,i,o,s,l){return arguments.length===1?aN(e):aN({schema:e,document:t,rootValue:r,contextValue:n,variableValues:i,operationName:o,fieldResolver:s,typeResolver:l})}function $se(e){var t=aN(e);if((0,Vo.default)(t))throw new Error("GraphQL execution failed to complete synchronously.");return t}function aN(e){var t=e.schema,r=e.document,n=e.rootValue,i=e.contextValue,o=e.variableValues,s=e.operationName,l=e.fieldResolver,c=e.typeResolver;$9(t,r,o);var f=e8(t,r,n,i,o,s,l,c);if(Array.isArray(f))return{errors:f};var m=ele(f,f.operation,n);return _9(f,m)}function _9(e,t){return(0,Vo.default)(t)?t.then(function(r){return _9(e,r)}):e.errors.length===0?{data:t}:{errors:e.errors,data:t}}function $9(e,t,r){t||(0,W9.default)(0,"Must provide document."),(0,Xse.assertValidSchema)(e),r==null||(0,lN.default)(r)||(0,W9.default)(0,"Variables must be provided as an Object where each property is a variable value. Perhaps look to see if an unparsed JSON string was provided.")}function e8(e,t,r,n,i,o,s,l){for(var c,f,m,v=Object.create(null),g=0,y=t.definitions;g{"use strict";Object.defineProperty(mA,"__esModule",{value:!0});mA.graphql=mle;mA.graphqlSync=hle;var lle=ple(tb()),ule=jd(),cle=ep(),fle=dv(),dle=kv();function ple(e){return e&&e.__esModule?e:{default:e}}function mle(e,t,r,n,i,o,s,l){var c=arguments;return new Promise(function(f){return f(c.length===1?pA(e):pA({schema:e,source:t,rootValue:r,contextValue:n,variableValues:i,operationName:o,fieldResolver:s,typeResolver:l}))})}function hle(e,t,r,n,i,o,s,l){var c=arguments.length===1?pA(e):pA({schema:e,source:t,rootValue:r,contextValue:n,variableValues:i,operationName:o,fieldResolver:s,typeResolver:l});if((0,lle.default)(c))throw new Error("GraphQL execution failed to complete synchronously.");return c}function pA(e){var t=e.schema,r=e.source,n=e.rootValue,i=e.contextValue,o=e.variableValues,s=e.operationName,l=e.fieldResolver,c=e.typeResolver,f=(0,fle.validateSchema)(t);if(f.length>0)return{errors:f};var m;try{m=(0,ule.parse)(r)}catch(g){return{errors:[g]}}var v=(0,cle.validate)(t,m);return v.length>0?{errors:v}:(0,dle.execute)({schema:t,document:m,rootValue:n,contextValue:i,variableValues:o,operationName:s,fieldResolver:l,typeResolver:c})}});var u8=X(Pe=>{"use strict";Object.defineProperty(Pe,"__esModule",{value:!0});Object.defineProperty(Pe,"isSchema",{enumerable:!0,get:function(){return uN.isSchema}});Object.defineProperty(Pe,"assertSchema",{enumerable:!0,get:function(){return uN.assertSchema}});Object.defineProperty(Pe,"GraphQLSchema",{enumerable:!0,get:function(){return uN.GraphQLSchema}});Object.defineProperty(Pe,"isType",{enumerable:!0,get:function(){return mt.isType}});Object.defineProperty(Pe,"isScalarType",{enumerable:!0,get:function(){return mt.isScalarType}});Object.defineProperty(Pe,"isObjectType",{enumerable:!0,get:function(){return mt.isObjectType}});Object.defineProperty(Pe,"isInterfaceType",{enumerable:!0,get:function(){return mt.isInterfaceType}});Object.defineProperty(Pe,"isUnionType",{enumerable:!0,get:function(){return mt.isUnionType}});Object.defineProperty(Pe,"isEnumType",{enumerable:!0,get:function(){return mt.isEnumType}});Object.defineProperty(Pe,"isInputObjectType",{enumerable:!0,get:function(){return mt.isInputObjectType}});Object.defineProperty(Pe,"isListType",{enumerable:!0,get:function(){return mt.isListType}});Object.defineProperty(Pe,"isNonNullType",{enumerable:!0,get:function(){return mt.isNonNullType}});Object.defineProperty(Pe,"isInputType",{enumerable:!0,get:function(){return mt.isInputType}});Object.defineProperty(Pe,"isOutputType",{enumerable:!0,get:function(){return mt.isOutputType}});Object.defineProperty(Pe,"isLeafType",{enumerable:!0,get:function(){return mt.isLeafType}});Object.defineProperty(Pe,"isCompositeType",{enumerable:!0,get:function(){return mt.isCompositeType}});Object.defineProperty(Pe,"isAbstractType",{enumerable:!0,get:function(){return mt.isAbstractType}});Object.defineProperty(Pe,"isWrappingType",{enumerable:!0,get:function(){return mt.isWrappingType}});Object.defineProperty(Pe,"isNullableType",{enumerable:!0,get:function(){return mt.isNullableType}});Object.defineProperty(Pe,"isNamedType",{enumerable:!0,get:function(){return mt.isNamedType}});Object.defineProperty(Pe,"isRequiredArgument",{enumerable:!0,get:function(){return mt.isRequiredArgument}});Object.defineProperty(Pe,"isRequiredInputField",{enumerable:!0,get:function(){return mt.isRequiredInputField}});Object.defineProperty(Pe,"assertType",{enumerable:!0,get:function(){return mt.assertType}});Object.defineProperty(Pe,"assertScalarType",{enumerable:!0,get:function(){return mt.assertScalarType}});Object.defineProperty(Pe,"assertObjectType",{enumerable:!0,get:function(){return mt.assertObjectType}});Object.defineProperty(Pe,"assertInterfaceType",{enumerable:!0,get:function(){return mt.assertInterfaceType}});Object.defineProperty(Pe,"assertUnionType",{enumerable:!0,get:function(){return mt.assertUnionType}});Object.defineProperty(Pe,"assertEnumType",{enumerable:!0,get:function(){return mt.assertEnumType}});Object.defineProperty(Pe,"assertInputObjectType",{enumerable:!0,get:function(){return mt.assertInputObjectType}});Object.defineProperty(Pe,"assertListType",{enumerable:!0,get:function(){return mt.assertListType}});Object.defineProperty(Pe,"assertNonNullType",{enumerable:!0,get:function(){return mt.assertNonNullType}});Object.defineProperty(Pe,"assertInputType",{enumerable:!0,get:function(){return mt.assertInputType}});Object.defineProperty(Pe,"assertOutputType",{enumerable:!0,get:function(){return mt.assertOutputType}});Object.defineProperty(Pe,"assertLeafType",{enumerable:!0,get:function(){return mt.assertLeafType}});Object.defineProperty(Pe,"assertCompositeType",{enumerable:!0,get:function(){return mt.assertCompositeType}});Object.defineProperty(Pe,"assertAbstractType",{enumerable:!0,get:function(){return mt.assertAbstractType}});Object.defineProperty(Pe,"assertWrappingType",{enumerable:!0,get:function(){return mt.assertWrappingType}});Object.defineProperty(Pe,"assertNullableType",{enumerable:!0,get:function(){return mt.assertNullableType}});Object.defineProperty(Pe,"assertNamedType",{enumerable:!0,get:function(){return mt.assertNamedType}});Object.defineProperty(Pe,"getNullableType",{enumerable:!0,get:function(){return mt.getNullableType}});Object.defineProperty(Pe,"getNamedType",{enumerable:!0,get:function(){return mt.getNamedType}});Object.defineProperty(Pe,"GraphQLScalarType",{enumerable:!0,get:function(){return mt.GraphQLScalarType}});Object.defineProperty(Pe,"GraphQLObjectType",{enumerable:!0,get:function(){return mt.GraphQLObjectType}});Object.defineProperty(Pe,"GraphQLInterfaceType",{enumerable:!0,get:function(){return mt.GraphQLInterfaceType}});Object.defineProperty(Pe,"GraphQLUnionType",{enumerable:!0,get:function(){return mt.GraphQLUnionType}});Object.defineProperty(Pe,"GraphQLEnumType",{enumerable:!0,get:function(){return mt.GraphQLEnumType}});Object.defineProperty(Pe,"GraphQLInputObjectType",{enumerable:!0,get:function(){return mt.GraphQLInputObjectType}});Object.defineProperty(Pe,"GraphQLList",{enumerable:!0,get:function(){return mt.GraphQLList}});Object.defineProperty(Pe,"GraphQLNonNull",{enumerable:!0,get:function(){return mt.GraphQLNonNull}});Object.defineProperty(Pe,"isDirective",{enumerable:!0,get:function(){return ls.isDirective}});Object.defineProperty(Pe,"assertDirective",{enumerable:!0,get:function(){return ls.assertDirective}});Object.defineProperty(Pe,"GraphQLDirective",{enumerable:!0,get:function(){return ls.GraphQLDirective}});Object.defineProperty(Pe,"isSpecifiedDirective",{enumerable:!0,get:function(){return ls.isSpecifiedDirective}});Object.defineProperty(Pe,"specifiedDirectives",{enumerable:!0,get:function(){return ls.specifiedDirectives}});Object.defineProperty(Pe,"GraphQLIncludeDirective",{enumerable:!0,get:function(){return ls.GraphQLIncludeDirective}});Object.defineProperty(Pe,"GraphQLSkipDirective",{enumerable:!0,get:function(){return ls.GraphQLSkipDirective}});Object.defineProperty(Pe,"GraphQLDeprecatedDirective",{enumerable:!0,get:function(){return ls.GraphQLDeprecatedDirective}});Object.defineProperty(Pe,"GraphQLSpecifiedByDirective",{enumerable:!0,get:function(){return ls.GraphQLSpecifiedByDirective}});Object.defineProperty(Pe,"DEFAULT_DEPRECATION_REASON",{enumerable:!0,get:function(){return ls.DEFAULT_DEPRECATION_REASON}});Object.defineProperty(Pe,"isSpecifiedScalarType",{enumerable:!0,get:function(){return Qc.isSpecifiedScalarType}});Object.defineProperty(Pe,"specifiedScalarTypes",{enumerable:!0,get:function(){return Qc.specifiedScalarTypes}});Object.defineProperty(Pe,"GraphQLInt",{enumerable:!0,get:function(){return Qc.GraphQLInt}});Object.defineProperty(Pe,"GraphQLFloat",{enumerable:!0,get:function(){return Qc.GraphQLFloat}});Object.defineProperty(Pe,"GraphQLString",{enumerable:!0,get:function(){return Qc.GraphQLString}});Object.defineProperty(Pe,"GraphQLBoolean",{enumerable:!0,get:function(){return Qc.GraphQLBoolean}});Object.defineProperty(Pe,"GraphQLID",{enumerable:!0,get:function(){return Qc.GraphQLID}});Object.defineProperty(Pe,"isIntrospectionType",{enumerable:!0,get:function(){return zi.isIntrospectionType}});Object.defineProperty(Pe,"introspectionTypes",{enumerable:!0,get:function(){return zi.introspectionTypes}});Object.defineProperty(Pe,"__Schema",{enumerable:!0,get:function(){return zi.__Schema}});Object.defineProperty(Pe,"__Directive",{enumerable:!0,get:function(){return zi.__Directive}});Object.defineProperty(Pe,"__DirectiveLocation",{enumerable:!0,get:function(){return zi.__DirectiveLocation}});Object.defineProperty(Pe,"__Type",{enumerable:!0,get:function(){return zi.__Type}});Object.defineProperty(Pe,"__Field",{enumerable:!0,get:function(){return zi.__Field}});Object.defineProperty(Pe,"__InputValue",{enumerable:!0,get:function(){return zi.__InputValue}});Object.defineProperty(Pe,"__EnumValue",{enumerable:!0,get:function(){return zi.__EnumValue}});Object.defineProperty(Pe,"__TypeKind",{enumerable:!0,get:function(){return zi.__TypeKind}});Object.defineProperty(Pe,"TypeKind",{enumerable:!0,get:function(){return zi.TypeKind}});Object.defineProperty(Pe,"SchemaMetaFieldDef",{enumerable:!0,get:function(){return zi.SchemaMetaFieldDef}});Object.defineProperty(Pe,"TypeMetaFieldDef",{enumerable:!0,get:function(){return zi.TypeMetaFieldDef}});Object.defineProperty(Pe,"TypeNameMetaFieldDef",{enumerable:!0,get:function(){return zi.TypeNameMetaFieldDef}});Object.defineProperty(Pe,"validateSchema",{enumerable:!0,get:function(){return l8.validateSchema}});Object.defineProperty(Pe,"assertValidSchema",{enumerable:!0,get:function(){return l8.assertValidSchema}});var uN=qc(),mt=Rt(),ls=Bi(),Qc=is(),zi=jo(),l8=dv()});var d8=X(Zt=>{"use strict";Object.defineProperty(Zt,"__esModule",{value:!0});Object.defineProperty(Zt,"Source",{enumerable:!0,get:function(){return vle.Source}});Object.defineProperty(Zt,"getLocation",{enumerable:!0,get:function(){return gle.getLocation}});Object.defineProperty(Zt,"printLocation",{enumerable:!0,get:function(){return c8.printLocation}});Object.defineProperty(Zt,"printSourceLocation",{enumerable:!0,get:function(){return c8.printSourceLocation}});Object.defineProperty(Zt,"Kind",{enumerable:!0,get:function(){return yle.Kind}});Object.defineProperty(Zt,"TokenKind",{enumerable:!0,get:function(){return ble.TokenKind}});Object.defineProperty(Zt,"Lexer",{enumerable:!0,get:function(){return Ale.Lexer}});Object.defineProperty(Zt,"parse",{enumerable:!0,get:function(){return cN.parse}});Object.defineProperty(Zt,"parseValue",{enumerable:!0,get:function(){return cN.parseValue}});Object.defineProperty(Zt,"parseType",{enumerable:!0,get:function(){return cN.parseType}});Object.defineProperty(Zt,"print",{enumerable:!0,get:function(){return xle.print}});Object.defineProperty(Zt,"visit",{enumerable:!0,get:function(){return hA.visit}});Object.defineProperty(Zt,"visitInParallel",{enumerable:!0,get:function(){return hA.visitInParallel}});Object.defineProperty(Zt,"getVisitFn",{enumerable:!0,get:function(){return hA.getVisitFn}});Object.defineProperty(Zt,"BREAK",{enumerable:!0,get:function(){return hA.BREAK}});Object.defineProperty(Zt,"Location",{enumerable:!0,get:function(){return f8.Location}});Object.defineProperty(Zt,"Token",{enumerable:!0,get:function(){return f8.Token}});Object.defineProperty(Zt,"isDefinitionNode",{enumerable:!0,get:function(){return il.isDefinitionNode}});Object.defineProperty(Zt,"isExecutableDefinitionNode",{enumerable:!0,get:function(){return il.isExecutableDefinitionNode}});Object.defineProperty(Zt,"isSelectionNode",{enumerable:!0,get:function(){return il.isSelectionNode}});Object.defineProperty(Zt,"isValueNode",{enumerable:!0,get:function(){return il.isValueNode}});Object.defineProperty(Zt,"isTypeNode",{enumerable:!0,get:function(){return il.isTypeNode}});Object.defineProperty(Zt,"isTypeSystemDefinitionNode",{enumerable:!0,get:function(){return il.isTypeSystemDefinitionNode}});Object.defineProperty(Zt,"isTypeDefinitionNode",{enumerable:!0,get:function(){return il.isTypeDefinitionNode}});Object.defineProperty(Zt,"isTypeSystemExtensionNode",{enumerable:!0,get:function(){return il.isTypeSystemExtensionNode}});Object.defineProperty(Zt,"isTypeExtensionNode",{enumerable:!0,get:function(){return il.isTypeExtensionNode}});Object.defineProperty(Zt,"DirectiveLocation",{enumerable:!0,get:function(){return wle.DirectiveLocation}});var vle=vb(),gle=nb(),c8=vS(),yle=tr(),ble=Id(),Ale=bb(),cN=jd(),xle=ao(),hA=Jl(),f8=Md(),il=Vc(),wle=Fd()});var p8=X(fu=>{"use strict";Object.defineProperty(fu,"__esModule",{value:!0});Object.defineProperty(fu,"responsePathAsArray",{enumerable:!0,get:function(){return Ele.pathToArray}});Object.defineProperty(fu,"execute",{enumerable:!0,get:function(){return vA.execute}});Object.defineProperty(fu,"executeSync",{enumerable:!0,get:function(){return vA.executeSync}});Object.defineProperty(fu,"defaultFieldResolver",{enumerable:!0,get:function(){return vA.defaultFieldResolver}});Object.defineProperty(fu,"defaultTypeResolver",{enumerable:!0,get:function(){return vA.defaultTypeResolver}});Object.defineProperty(fu,"getDirectiveValues",{enumerable:!0,get:function(){return Tle.getDirectiveValues}});var Ele=gv(),vA=kv(),Tle=Ev()});var m8=X(fN=>{"use strict";Object.defineProperty(fN,"__esModule",{value:!0});fN.default=Sle;var Cle=ts();function Sle(e){return typeof e?.[Cle.SYMBOL_ASYNC_ITERATOR]=="function"}});var y8=X(dN=>{"use strict";Object.defineProperty(dN,"__esModule",{value:!0});dN.default=Ole;var h8=ts();function kle(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function Ole(e,t,r){var n=e[h8.SYMBOL_ASYNC_ITERATOR],i=n.call(e),o,s;typeof i.return=="function"&&(o=i.return,s=function(v){var g=function(){return Promise.reject(v)};return o.call(i).then(g,g)});function l(m){return m.done?m:v8(m.value,t).then(g8,s)}var c;if(r){var f=r;c=function(v){return v8(v,f).then(g8,s)}}return kle({next:function(){return i.next().then(l,c)},return:function(){return o?o.call(i).then(l,c):Promise.resolve({value:void 0,done:!0})},throw:function(v){return typeof i.throw=="function"?i.throw(v).then(l,c):Promise.reject(v).catch(s)}},h8.SYMBOL_ASYNC_ITERATOR,function(){return this})}function v8(e,t){return new Promise(function(r){return r(t(e))})}function g8(e){return{value:e,done:!1}}});var C8=X(gA=>{"use strict";Object.defineProperty(gA,"__esModule",{value:!0});gA.subscribe=Rle;gA.createSourceEventStream=T8;var Nle=mN(jt()),x8=mN(m8()),pN=gv(),w8=ft(),b8=Xh(),Dle=Ev(),ap=kv(),Lle=aA(),Ple=mN(y8());function mN(e){return e&&e.__esModule?e:{default:e}}function Rle(e,t,r,n,i,o,s,l){return arguments.length===1?A8(e):A8({schema:e,document:t,rootValue:r,contextValue:n,variableValues:i,operationName:o,fieldResolver:s,subscribeFieldResolver:l})}function E8(e){if(e instanceof w8.GraphQLError)return{errors:[e]};throw e}function A8(e){var t=e.schema,r=e.document,n=e.rootValue,i=e.contextValue,o=e.variableValues,s=e.operationName,l=e.fieldResolver,c=e.subscribeFieldResolver,f=T8(t,r,n,i,o,s,c),m=function(g){return(0,ap.execute)({schema:t,document:r,rootValue:g,contextValue:i,variableValues:o,operationName:s,fieldResolver:l})};return f.then(function(v){return(0,x8.default)(v)?(0,Ple.default)(v,m,E8):v})}function T8(e,t,r,n,i,o,s){return(0,ap.assertValidExecutionArguments)(e,t,i),new Promise(function(l){var c=(0,ap.buildExecutionContext)(e,t,r,n,i,o,s);l(Array.isArray(c)?{errors:c}:Mle(c))}).catch(E8)}function Mle(e){var t=e.schema,r=e.operation,n=e.variableValues,i=e.rootValue,o=(0,Lle.getOperationRootType)(t,r),s=(0,ap.collectFields)(e,o,r.selectionSet,Object.create(null),Object.create(null)),l=Object.keys(s),c=l[0],f=s[c],m=f[0],v=m.name.value,g=(0,ap.getFieldDef)(t,o,v);if(!g)throw new w8.GraphQLError('The subscription field "'.concat(v,'" is not defined.'),f);var y=(0,pN.addPath)(void 0,c,o.name),w=(0,ap.buildResolveInfo)(e,g,f,o,y);return new Promise(function(T){var S,A=(0,Dle.getArgumentValues)(g,f[0],n),b=e.contextValue,C=(S=g.subscribe)!==null&&S!==void 0?S:e.fieldResolver;T(C(i,A,b,w))}).then(function(T){if(T instanceof Error)throw(0,b8.locatedError)(T,f,(0,pN.pathToArray)(y));if(!(0,x8.default)(T))throw new Error("Subscription field must return Async Iterable. "+"Received: ".concat((0,Nle.default)(T),"."));return T},function(T){throw(0,b8.locatedError)(T,f,(0,pN.pathToArray)(y))})}});var k8=X(yA=>{"use strict";Object.defineProperty(yA,"__esModule",{value:!0});Object.defineProperty(yA,"subscribe",{enumerable:!0,get:function(){return S8.subscribe}});Object.defineProperty(yA,"createSourceEventStream",{enumerable:!0,get:function(){return S8.createSourceEventStream}});var S8=C8()});var yN=X(gN=>{"use strict";Object.defineProperty(gN,"__esModule",{value:!0});gN.NoDeprecatedCustomRule=Fle;var hN=Ile(Gn()),Ov=ft(),vN=Rt();function Ile(e){return e&&e.__esModule?e:{default:e}}function Fle(e){return{Field:function(r){var n=e.getFieldDef(),i=n?.deprecationReason;if(n&&i!=null){var o=e.getParentType();o!=null||(0,hN.default)(0),e.reportError(new Ov.GraphQLError("The field ".concat(o.name,".").concat(n.name," is deprecated. ").concat(i),r))}},Argument:function(r){var n=e.getArgument(),i=n?.deprecationReason;if(n&&i!=null){var o=e.getDirective();if(o!=null)e.reportError(new Ov.GraphQLError('Directive "@'.concat(o.name,'" argument "').concat(n.name,'" is deprecated. ').concat(i),r));else{var s=e.getParentType(),l=e.getFieldDef();s!=null&&l!=null||(0,hN.default)(0),e.reportError(new Ov.GraphQLError('Field "'.concat(s.name,".").concat(l.name,'" argument "').concat(n.name,'" is deprecated. ').concat(i),r))}}},ObjectField:function(r){var n=(0,vN.getNamedType)(e.getParentInputType());if((0,vN.isInputObjectType)(n)){var i=n.getFields()[r.name.value],o=i?.deprecationReason;o!=null&&e.reportError(new Ov.GraphQLError("The input field ".concat(n.name,".").concat(i.name," is deprecated. ").concat(o),r))}},EnumValue:function(r){var n=e.getEnumValue(),i=n?.deprecationReason;if(n&&i!=null){var o=(0,vN.getNamedType)(e.getInputType());o!=null||(0,hN.default)(0),e.reportError(new Ov.GraphQLError('The enum value "'.concat(o.name,".").concat(n.name,'" is deprecated. ').concat(i),r))}}}}});var O8=X(bN=>{"use strict";Object.defineProperty(bN,"__esModule",{value:!0});bN.NoSchemaIntrospectionCustomRule=Ule;var qle=ft(),jle=Rt(),Vle=jo();function Ule(e){return{Field:function(r){var n=(0,jle.getNamedType)(e.getType());n&&(0,Vle.isIntrospectionType)(n)&&e.reportError(new qle.GraphQLError('GraphQL introspection has been disabled, but the requested query contained the field "'.concat(r.name.value,'".'),r))}}}});var N8=X(Tt=>{"use strict";Object.defineProperty(Tt,"__esModule",{value:!0});Object.defineProperty(Tt,"validate",{enumerable:!0,get:function(){return Ble.validate}});Object.defineProperty(Tt,"ValidationContext",{enumerable:!0,get:function(){return Gle.ValidationContext}});Object.defineProperty(Tt,"specifiedRules",{enumerable:!0,get:function(){return zle.specifiedRules}});Object.defineProperty(Tt,"ExecutableDefinitionsRule",{enumerable:!0,get:function(){return Hle.ExecutableDefinitionsRule}});Object.defineProperty(Tt,"FieldsOnCorrectTypeRule",{enumerable:!0,get:function(){return Qle.FieldsOnCorrectTypeRule}});Object.defineProperty(Tt,"FragmentsOnCompositeTypesRule",{enumerable:!0,get:function(){return Wle.FragmentsOnCompositeTypesRule}});Object.defineProperty(Tt,"KnownArgumentNamesRule",{enumerable:!0,get:function(){return Yle.KnownArgumentNamesRule}});Object.defineProperty(Tt,"KnownDirectivesRule",{enumerable:!0,get:function(){return Kle.KnownDirectivesRule}});Object.defineProperty(Tt,"KnownFragmentNamesRule",{enumerable:!0,get:function(){return Xle.KnownFragmentNamesRule}});Object.defineProperty(Tt,"KnownTypeNamesRule",{enumerable:!0,get:function(){return Zle.KnownTypeNamesRule}});Object.defineProperty(Tt,"LoneAnonymousOperationRule",{enumerable:!0,get:function(){return Jle.LoneAnonymousOperationRule}});Object.defineProperty(Tt,"NoFragmentCyclesRule",{enumerable:!0,get:function(){return _le.NoFragmentCyclesRule}});Object.defineProperty(Tt,"NoUndefinedVariablesRule",{enumerable:!0,get:function(){return $le.NoUndefinedVariablesRule}});Object.defineProperty(Tt,"NoUnusedFragmentsRule",{enumerable:!0,get:function(){return eue.NoUnusedFragmentsRule}});Object.defineProperty(Tt,"NoUnusedVariablesRule",{enumerable:!0,get:function(){return tue.NoUnusedVariablesRule}});Object.defineProperty(Tt,"OverlappingFieldsCanBeMergedRule",{enumerable:!0,get:function(){return rue.OverlappingFieldsCanBeMergedRule}});Object.defineProperty(Tt,"PossibleFragmentSpreadsRule",{enumerable:!0,get:function(){return nue.PossibleFragmentSpreadsRule}});Object.defineProperty(Tt,"ProvidedRequiredArgumentsRule",{enumerable:!0,get:function(){return iue.ProvidedRequiredArgumentsRule}});Object.defineProperty(Tt,"ScalarLeafsRule",{enumerable:!0,get:function(){return oue.ScalarLeafsRule}});Object.defineProperty(Tt,"SingleFieldSubscriptionsRule",{enumerable:!0,get:function(){return aue.SingleFieldSubscriptionsRule}});Object.defineProperty(Tt,"UniqueArgumentNamesRule",{enumerable:!0,get:function(){return sue.UniqueArgumentNamesRule}});Object.defineProperty(Tt,"UniqueDirectivesPerLocationRule",{enumerable:!0,get:function(){return lue.UniqueDirectivesPerLocationRule}});Object.defineProperty(Tt,"UniqueFragmentNamesRule",{enumerable:!0,get:function(){return uue.UniqueFragmentNamesRule}});Object.defineProperty(Tt,"UniqueInputFieldNamesRule",{enumerable:!0,get:function(){return cue.UniqueInputFieldNamesRule}});Object.defineProperty(Tt,"UniqueOperationNamesRule",{enumerable:!0,get:function(){return fue.UniqueOperationNamesRule}});Object.defineProperty(Tt,"UniqueVariableNamesRule",{enumerable:!0,get:function(){return due.UniqueVariableNamesRule}});Object.defineProperty(Tt,"ValuesOfCorrectTypeRule",{enumerable:!0,get:function(){return pue.ValuesOfCorrectTypeRule}});Object.defineProperty(Tt,"VariablesAreInputTypesRule",{enumerable:!0,get:function(){return mue.VariablesAreInputTypesRule}});Object.defineProperty(Tt,"VariablesInAllowedPositionRule",{enumerable:!0,get:function(){return hue.VariablesInAllowedPositionRule}});Object.defineProperty(Tt,"LoneSchemaDefinitionRule",{enumerable:!0,get:function(){return vue.LoneSchemaDefinitionRule}});Object.defineProperty(Tt,"UniqueOperationTypesRule",{enumerable:!0,get:function(){return gue.UniqueOperationTypesRule}});Object.defineProperty(Tt,"UniqueTypeNamesRule",{enumerable:!0,get:function(){return yue.UniqueTypeNamesRule}});Object.defineProperty(Tt,"UniqueEnumValueNamesRule",{enumerable:!0,get:function(){return bue.UniqueEnumValueNamesRule}});Object.defineProperty(Tt,"UniqueFieldDefinitionNamesRule",{enumerable:!0,get:function(){return Aue.UniqueFieldDefinitionNamesRule}});Object.defineProperty(Tt,"UniqueDirectiveNamesRule",{enumerable:!0,get:function(){return xue.UniqueDirectiveNamesRule}});Object.defineProperty(Tt,"PossibleTypeExtensionsRule",{enumerable:!0,get:function(){return wue.PossibleTypeExtensionsRule}});Object.defineProperty(Tt,"NoDeprecatedCustomRule",{enumerable:!0,get:function(){return Eue.NoDeprecatedCustomRule}});Object.defineProperty(Tt,"NoSchemaIntrospectionCustomRule",{enumerable:!0,get:function(){return Tue.NoSchemaIntrospectionCustomRule}});var Ble=ep(),Gle=KO(),zle=WO(),Hle=kk(),Qle=Hk(),Wle=jk(),Yle=pO(),Kle=uO(),Xle=Kk(),Zle=Fk(),Jle=Lk(),_le=tO(),$le=oO(),eue=Zk(),tue=sO(),rue=OO(),nue=$k(),iue=bO(),oue=Gk(),aue=Rk(),sue=hO(),lue=dO(),uue=Wk(),cue=DO(),fue=Nk(),due=nO(),pue=gO(),mue=Uk(),hue=xO(),vue=PO(),gue=MO(),yue=FO(),bue=jO(),Aue=BO(),xue=zO(),wue=QO(),Eue=yN(),Tue=O8()});var D8=X(AN=>{"use strict";Object.defineProperty(AN,"__esModule",{value:!0});AN.formatError=kue;var Cue=Sue(Io());function Sue(e){return e&&e.__esModule?e:{default:e}}function kue(e){var t;e||(0,Cue.default)(0,"Received null or undefined error.");var r=(t=e.message)!==null&&t!==void 0?t:"An unknown error occurred.",n=e.locations,i=e.path,o=e.extensions;return o&&Object.keys(o).length>0?{message:r,locations:n,path:i,extensions:o}:{message:r,locations:n,path:i}}});var P8=X(Wc=>{"use strict";Object.defineProperty(Wc,"__esModule",{value:!0});Object.defineProperty(Wc,"GraphQLError",{enumerable:!0,get:function(){return L8.GraphQLError}});Object.defineProperty(Wc,"printError",{enumerable:!0,get:function(){return L8.printError}});Object.defineProperty(Wc,"syntaxError",{enumerable:!0,get:function(){return Oue.syntaxError}});Object.defineProperty(Wc,"locatedError",{enumerable:!0,get:function(){return Nue.locatedError}});Object.defineProperty(Wc,"formatError",{enumerable:!0,get:function(){return Due.formatError}});var L8=ft(),Oue=lb(),Nue=Xh(),Due=D8()});var wN=X(xN=>{"use strict";Object.defineProperty(xN,"__esModule",{value:!0});xN.getIntrospectionQuery=Rue;function R8(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function Lue(e){for(var t=1;t{ + 'use strict';Object.defineProperty(ZO,'__esModule',{value:!0});ZO.default=mse;function mse(e){ + var t;return function(n,i,o){ + t||(t=new WeakMap);var s=t.get(n),l;if(s){ + if(l=s.get(i),l){ + var c=l.get(o);if(c!==void 0)return c; + } + }else s=new WeakMap,t.set(n,s);l||(l=new WeakMap,s.set(i,l));var f=e(n,i,o);return l.set(o,f),f; + }; + } +});var j9=X(JO=>{ + 'use strict';Object.defineProperty(JO,'__esModule',{value:!0});JO.default=gse;var hse=vse(tb());function vse(e){ + return e&&e.__esModule?e:{default:e}; + }function gse(e,t,r){ + return e.reduce(function(n,i){ + return(0,hse.default)(n)?n.then(function(o){ + return t(o,i); + }):t(n,i); + },r); + } +});var V9=X(_O=>{ + 'use strict';Object.defineProperty(_O,'__esModule',{value:!0});_O.default=yse;function yse(e){ + var t=Object.keys(e),r=t.map(function(n){ + return e[n]; + });return Promise.all(r).then(function(n){ + return n.reduce(function(i,o,s){ + return i[t[s]]=o,i; + },Object.create(null)); + }); + } +});var gv=X(iA=>{ + 'use strict';Object.defineProperty(iA,'__esModule',{value:!0});iA.addPath=bse;iA.pathToArray=Ase;function bse(e,t,r){ + return{prev:e,key:t,typename:r}; + }function Ase(e){ + for(var t=[],r=e;r;)t.push(r.key),r=r.prev;return t.reverse(); + } +});var aA=X($O=>{ + 'use strict';Object.defineProperty($O,'__esModule',{value:!0});$O.getOperationRootType=xse;var oA=ft();function xse(e,t){ + if(t.operation==='query'){ + var r=e.getQueryType();if(!r)throw new oA.GraphQLError('Schema does not define the required query root type.',t);return r; + }if(t.operation==='mutation'){ + var n=e.getMutationType();if(!n)throw new oA.GraphQLError('Schema is not configured for mutations.',t);return n; + }if(t.operation==='subscription'){ + var i=e.getSubscriptionType();if(!i)throw new oA.GraphQLError('Schema is not configured for subscriptions.',t);return i; + }throw new oA.GraphQLError('Can only have query, mutation and subscription operations.',t); + } +});var tN=X(eN=>{ + 'use strict';Object.defineProperty(eN,'__esModule',{value:!0});eN.default=wse;function wse(e){ + return e.map(function(t){ + return typeof t=='number'?'['+t.toString()+']':'.'+t; + }).join(''); + } +});var bv=X(rN=>{ + 'use strict';Object.defineProperty(rN,'__esModule',{value:!0});rN.valueFromAST=yv;var Ese=sA(oo()),Tse=sA(_l()),Cse=sA(jt()),Sse=sA(Gn()),tp=tr(),Gc=Rt();function sA(e){ + return e&&e.__esModule?e:{default:e}; + }function yv(e,t,r){ + if(e){ + if(e.kind===tp.Kind.VARIABLE){ + var n=e.name.value;if(r==null||r[n]===void 0)return;var i=r[n];return i===null&&(0,Gc.isNonNullType)(t)?void 0:i; + }if((0,Gc.isNonNullType)(t))return e.kind===tp.Kind.NULL?void 0:yv(e,t.ofType,r);if(e.kind===tp.Kind.NULL)return null;if((0,Gc.isListType)(t)){ + var o=t.ofType;if(e.kind===tp.Kind.LIST){ + for(var s=[],l=0,c=e.values;l{ + 'use strict';Object.defineProperty(nN,'__esModule',{value:!0});nN.coerceInputValue=Mse;var kse=cu(oo()),lA=cu(jt()),Ose=cu(Gn()),Nse=cu($l()),Dse=cu(es()),Lse=cu(qb()),Pse=cu(eu()),Rse=cu(tN()),el=gv(),zc=ft(),Av=Rt();function cu(e){ + return e&&e.__esModule?e:{default:e}; + }function Mse(e,t){ + var r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:Ise;return xv(e,t,r); + }function Ise(e,t,r){ + var n='Invalid value '+(0,lA.default)(t);throw e.length>0&&(n+=' at "value'.concat((0,Rse.default)(e),'"')),r.message=n+': '+r.message,r; + }function xv(e,t,r,n){ + if((0,Av.isNonNullType)(t)){ + if(e!=null)return xv(e,t.ofType,r,n);r((0,el.pathToArray)(n),e,new zc.GraphQLError('Expected non-nullable type "'.concat((0,lA.default)(t),'" not to be null.')));return; + }if(e==null)return null;if((0,Av.isListType)(t)){ + var i=t.ofType,o=(0,Lse.default)(e,function(b,C){ + var x=(0,el.addPath)(n,C,void 0);return xv(b,i,r,x); + });return o??[xv(e,i,r,n)]; + }if((0,Av.isInputObjectType)(t)){ + if(!(0,Dse.default)(e)){ + r((0,el.pathToArray)(n),e,new zc.GraphQLError('Expected type "'.concat(t.name,'" to be an object.')));return; + }for(var s={},l=t.getFields(),c=0,f=(0,kse.default)(l);c{ + 'use strict';Object.defineProperty(wv,'__esModule',{value:!0});wv.getVariableValues=Bse;wv.getArgumentValues=H9;wv.getDirectiveValues=zse;var Fse=uA(Ud()),qse=uA(_l()),rp=uA(jt()),jse=uA(tN()),tl=ft(),B9=tr(),G9=ao(),np=Rt(),Vse=os(),z9=bv(),Use=iN();function uA(e){ + return e&&e.__esModule?e:{default:e}; + }function Bse(e,t,r,n){ + var i=[],o=n?.maxErrors;try{ + var s=Gse(e,t,r,function(l){ + if(o!=null&&i.length>=o)throw new tl.GraphQLError('Too many errors processing variables, error limit reached. Execution aborted.');i.push(l); + });if(i.length===0)return{coerced:s}; + }catch(l){ + i.push(l); + }return{errors:i}; + }function Gse(e,t,r,n){ + for(var i={},o=function(f){ + var m=t[f],v=m.variable.name.value,g=(0,Vse.typeFromAST)(e,m.type);if(!(0,np.isInputType)(g)){ + var y=(0,G9.print)(m.type);return n(new tl.GraphQLError('Variable "$'.concat(v,'" expected value of type "').concat(y,'" which cannot be used as an input type.'),m.type)),'continue'; + }if(!Q9(r,v)){ + if(m.defaultValue)i[v]=(0,z9.valueFromAST)(m.defaultValue,g);else if((0,np.isNonNullType)(g)){ + var w=(0,rp.default)(g);n(new tl.GraphQLError('Variable "$'.concat(v,'" of required type "').concat(w,'" was not provided.'),m)); + }return'continue'; + }var T=r[v];if(T===null&&(0,np.isNonNullType)(g)){ + var S=(0,rp.default)(g);return n(new tl.GraphQLError('Variable "$'.concat(v,'" of non-null type "').concat(S,'" must not be null.'),m)),'continue'; + }i[v]=(0,Use.coerceInputValue)(T,g,function(A,b,C){ + var x='Variable "$'.concat(v,'" got invalid value ')+(0,rp.default)(b);A.length>0&&(x+=' at "'.concat(v).concat((0,jse.default)(A),'"')),n(new tl.GraphQLError(x+'; '+C.message,m,void 0,void 0,void 0,C.originalError)); + }); + },s=0;s{ + 'use strict';Object.defineProperty(lo,'__esModule',{value:!0});lo.execute=_se;lo.executeSync=$se;lo.assertValidExecutionArguments=$9;lo.buildExecutionContext=e8;lo.collectFields=Cv;lo.buildResolveInfo=n8;lo.getFieldDef=a8;lo.defaultFieldResolver=lo.defaultTypeResolver=void 0;var op=nl(jt()),Hse=nl(q9()),Qse=nl(Gn()),W9=nl(Io()),Vo=nl(tb()),lN=nl(es()),Wse=nl(qb()),Yse=nl(j9()),Kse=nl(V9()),Hc=gv(),ss=ft(),cA=Xh(),Tv=tr(),Xse=dv(),ip=jo(),Y9=Bi(),rl=Rt(),Zse=os(),Jse=aA(),fA=Ev();function nl(e){ + return e&&e.__esModule?e:{default:e}; + }function _se(e,t,r,n,i,o,s,l){ + return arguments.length===1?aN(e):aN({schema:e,document:t,rootValue:r,contextValue:n,variableValues:i,operationName:o,fieldResolver:s,typeResolver:l}); + }function $se(e){ + var t=aN(e);if((0,Vo.default)(t))throw new Error('GraphQL execution failed to complete synchronously.');return t; + }function aN(e){ + var t=e.schema,r=e.document,n=e.rootValue,i=e.contextValue,o=e.variableValues,s=e.operationName,l=e.fieldResolver,c=e.typeResolver;$9(t,r,o);var f=e8(t,r,n,i,o,s,l,c);if(Array.isArray(f))return{errors:f};var m=ele(f,f.operation,n);return _9(f,m); + }function _9(e,t){ + return(0,Vo.default)(t)?t.then(function(r){ + return _9(e,r); + }):e.errors.length===0?{data:t}:{errors:e.errors,data:t}; + }function $9(e,t,r){ + t||(0,W9.default)(0,'Must provide document.'),(0,Xse.assertValidSchema)(e),r==null||(0,lN.default)(r)||(0,W9.default)(0,'Variables must be provided as an Object where each property is a variable value. Perhaps look to see if an unparsed JSON string was provided.'); + }function e8(e,t,r,n,i,o,s,l){ + for(var c,f,m,v=Object.create(null),g=0,y=t.definitions;g{ + 'use strict';Object.defineProperty(mA,'__esModule',{value:!0});mA.graphql=mle;mA.graphqlSync=hle;var lle=ple(tb()),ule=jd(),cle=ep(),fle=dv(),dle=kv();function ple(e){ + return e&&e.__esModule?e:{default:e}; + }function mle(e,t,r,n,i,o,s,l){ + var c=arguments;return new Promise(function(f){ + return f(c.length===1?pA(e):pA({schema:e,source:t,rootValue:r,contextValue:n,variableValues:i,operationName:o,fieldResolver:s,typeResolver:l})); + }); + }function hle(e,t,r,n,i,o,s,l){ + var c=arguments.length===1?pA(e):pA({schema:e,source:t,rootValue:r,contextValue:n,variableValues:i,operationName:o,fieldResolver:s,typeResolver:l});if((0,lle.default)(c))throw new Error('GraphQL execution failed to complete synchronously.');return c; + }function pA(e){ + var t=e.schema,r=e.source,n=e.rootValue,i=e.contextValue,o=e.variableValues,s=e.operationName,l=e.fieldResolver,c=e.typeResolver,f=(0,fle.validateSchema)(t);if(f.length>0)return{errors:f};var m;try{ + m=(0,ule.parse)(r); + }catch(g){ + return{errors:[g]}; + }var v=(0,cle.validate)(t,m);return v.length>0?{errors:v}:(0,dle.execute)({schema:t,document:m,rootValue:n,contextValue:i,variableValues:o,operationName:s,fieldResolver:l,typeResolver:c}); + } +});var u8=X(Pe=>{ + 'use strict';Object.defineProperty(Pe,'__esModule',{value:!0});Object.defineProperty(Pe,'isSchema',{enumerable:!0,get:function(){ + return uN.isSchema; + }});Object.defineProperty(Pe,'assertSchema',{enumerable:!0,get:function(){ + return uN.assertSchema; + }});Object.defineProperty(Pe,'GraphQLSchema',{enumerable:!0,get:function(){ + return uN.GraphQLSchema; + }});Object.defineProperty(Pe,'isType',{enumerable:!0,get:function(){ + return mt.isType; + }});Object.defineProperty(Pe,'isScalarType',{enumerable:!0,get:function(){ + return mt.isScalarType; + }});Object.defineProperty(Pe,'isObjectType',{enumerable:!0,get:function(){ + return mt.isObjectType; + }});Object.defineProperty(Pe,'isInterfaceType',{enumerable:!0,get:function(){ + return mt.isInterfaceType; + }});Object.defineProperty(Pe,'isUnionType',{enumerable:!0,get:function(){ + return mt.isUnionType; + }});Object.defineProperty(Pe,'isEnumType',{enumerable:!0,get:function(){ + return mt.isEnumType; + }});Object.defineProperty(Pe,'isInputObjectType',{enumerable:!0,get:function(){ + return mt.isInputObjectType; + }});Object.defineProperty(Pe,'isListType',{enumerable:!0,get:function(){ + return mt.isListType; + }});Object.defineProperty(Pe,'isNonNullType',{enumerable:!0,get:function(){ + return mt.isNonNullType; + }});Object.defineProperty(Pe,'isInputType',{enumerable:!0,get:function(){ + return mt.isInputType; + }});Object.defineProperty(Pe,'isOutputType',{enumerable:!0,get:function(){ + return mt.isOutputType; + }});Object.defineProperty(Pe,'isLeafType',{enumerable:!0,get:function(){ + return mt.isLeafType; + }});Object.defineProperty(Pe,'isCompositeType',{enumerable:!0,get:function(){ + return mt.isCompositeType; + }});Object.defineProperty(Pe,'isAbstractType',{enumerable:!0,get:function(){ + return mt.isAbstractType; + }});Object.defineProperty(Pe,'isWrappingType',{enumerable:!0,get:function(){ + return mt.isWrappingType; + }});Object.defineProperty(Pe,'isNullableType',{enumerable:!0,get:function(){ + return mt.isNullableType; + }});Object.defineProperty(Pe,'isNamedType',{enumerable:!0,get:function(){ + return mt.isNamedType; + }});Object.defineProperty(Pe,'isRequiredArgument',{enumerable:!0,get:function(){ + return mt.isRequiredArgument; + }});Object.defineProperty(Pe,'isRequiredInputField',{enumerable:!0,get:function(){ + return mt.isRequiredInputField; + }});Object.defineProperty(Pe,'assertType',{enumerable:!0,get:function(){ + return mt.assertType; + }});Object.defineProperty(Pe,'assertScalarType',{enumerable:!0,get:function(){ + return mt.assertScalarType; + }});Object.defineProperty(Pe,'assertObjectType',{enumerable:!0,get:function(){ + return mt.assertObjectType; + }});Object.defineProperty(Pe,'assertInterfaceType',{enumerable:!0,get:function(){ + return mt.assertInterfaceType; + }});Object.defineProperty(Pe,'assertUnionType',{enumerable:!0,get:function(){ + return mt.assertUnionType; + }});Object.defineProperty(Pe,'assertEnumType',{enumerable:!0,get:function(){ + return mt.assertEnumType; + }});Object.defineProperty(Pe,'assertInputObjectType',{enumerable:!0,get:function(){ + return mt.assertInputObjectType; + }});Object.defineProperty(Pe,'assertListType',{enumerable:!0,get:function(){ + return mt.assertListType; + }});Object.defineProperty(Pe,'assertNonNullType',{enumerable:!0,get:function(){ + return mt.assertNonNullType; + }});Object.defineProperty(Pe,'assertInputType',{enumerable:!0,get:function(){ + return mt.assertInputType; + }});Object.defineProperty(Pe,'assertOutputType',{enumerable:!0,get:function(){ + return mt.assertOutputType; + }});Object.defineProperty(Pe,'assertLeafType',{enumerable:!0,get:function(){ + return mt.assertLeafType; + }});Object.defineProperty(Pe,'assertCompositeType',{enumerable:!0,get:function(){ + return mt.assertCompositeType; + }});Object.defineProperty(Pe,'assertAbstractType',{enumerable:!0,get:function(){ + return mt.assertAbstractType; + }});Object.defineProperty(Pe,'assertWrappingType',{enumerable:!0,get:function(){ + return mt.assertWrappingType; + }});Object.defineProperty(Pe,'assertNullableType',{enumerable:!0,get:function(){ + return mt.assertNullableType; + }});Object.defineProperty(Pe,'assertNamedType',{enumerable:!0,get:function(){ + return mt.assertNamedType; + }});Object.defineProperty(Pe,'getNullableType',{enumerable:!0,get:function(){ + return mt.getNullableType; + }});Object.defineProperty(Pe,'getNamedType',{enumerable:!0,get:function(){ + return mt.getNamedType; + }});Object.defineProperty(Pe,'GraphQLScalarType',{enumerable:!0,get:function(){ + return mt.GraphQLScalarType; + }});Object.defineProperty(Pe,'GraphQLObjectType',{enumerable:!0,get:function(){ + return mt.GraphQLObjectType; + }});Object.defineProperty(Pe,'GraphQLInterfaceType',{enumerable:!0,get:function(){ + return mt.GraphQLInterfaceType; + }});Object.defineProperty(Pe,'GraphQLUnionType',{enumerable:!0,get:function(){ + return mt.GraphQLUnionType; + }});Object.defineProperty(Pe,'GraphQLEnumType',{enumerable:!0,get:function(){ + return mt.GraphQLEnumType; + }});Object.defineProperty(Pe,'GraphQLInputObjectType',{enumerable:!0,get:function(){ + return mt.GraphQLInputObjectType; + }});Object.defineProperty(Pe,'GraphQLList',{enumerable:!0,get:function(){ + return mt.GraphQLList; + }});Object.defineProperty(Pe,'GraphQLNonNull',{enumerable:!0,get:function(){ + return mt.GraphQLNonNull; + }});Object.defineProperty(Pe,'isDirective',{enumerable:!0,get:function(){ + return ls.isDirective; + }});Object.defineProperty(Pe,'assertDirective',{enumerable:!0,get:function(){ + return ls.assertDirective; + }});Object.defineProperty(Pe,'GraphQLDirective',{enumerable:!0,get:function(){ + return ls.GraphQLDirective; + }});Object.defineProperty(Pe,'isSpecifiedDirective',{enumerable:!0,get:function(){ + return ls.isSpecifiedDirective; + }});Object.defineProperty(Pe,'specifiedDirectives',{enumerable:!0,get:function(){ + return ls.specifiedDirectives; + }});Object.defineProperty(Pe,'GraphQLIncludeDirective',{enumerable:!0,get:function(){ + return ls.GraphQLIncludeDirective; + }});Object.defineProperty(Pe,'GraphQLSkipDirective',{enumerable:!0,get:function(){ + return ls.GraphQLSkipDirective; + }});Object.defineProperty(Pe,'GraphQLDeprecatedDirective',{enumerable:!0,get:function(){ + return ls.GraphQLDeprecatedDirective; + }});Object.defineProperty(Pe,'GraphQLSpecifiedByDirective',{enumerable:!0,get:function(){ + return ls.GraphQLSpecifiedByDirective; + }});Object.defineProperty(Pe,'DEFAULT_DEPRECATION_REASON',{enumerable:!0,get:function(){ + return ls.DEFAULT_DEPRECATION_REASON; + }});Object.defineProperty(Pe,'isSpecifiedScalarType',{enumerable:!0,get:function(){ + return Qc.isSpecifiedScalarType; + }});Object.defineProperty(Pe,'specifiedScalarTypes',{enumerable:!0,get:function(){ + return Qc.specifiedScalarTypes; + }});Object.defineProperty(Pe,'GraphQLInt',{enumerable:!0,get:function(){ + return Qc.GraphQLInt; + }});Object.defineProperty(Pe,'GraphQLFloat',{enumerable:!0,get:function(){ + return Qc.GraphQLFloat; + }});Object.defineProperty(Pe,'GraphQLString',{enumerable:!0,get:function(){ + return Qc.GraphQLString; + }});Object.defineProperty(Pe,'GraphQLBoolean',{enumerable:!0,get:function(){ + return Qc.GraphQLBoolean; + }});Object.defineProperty(Pe,'GraphQLID',{enumerable:!0,get:function(){ + return Qc.GraphQLID; + }});Object.defineProperty(Pe,'isIntrospectionType',{enumerable:!0,get:function(){ + return zi.isIntrospectionType; + }});Object.defineProperty(Pe,'introspectionTypes',{enumerable:!0,get:function(){ + return zi.introspectionTypes; + }});Object.defineProperty(Pe,'__Schema',{enumerable:!0,get:function(){ + return zi.__Schema; + }});Object.defineProperty(Pe,'__Directive',{enumerable:!0,get:function(){ + return zi.__Directive; + }});Object.defineProperty(Pe,'__DirectiveLocation',{enumerable:!0,get:function(){ + return zi.__DirectiveLocation; + }});Object.defineProperty(Pe,'__Type',{enumerable:!0,get:function(){ + return zi.__Type; + }});Object.defineProperty(Pe,'__Field',{enumerable:!0,get:function(){ + return zi.__Field; + }});Object.defineProperty(Pe,'__InputValue',{enumerable:!0,get:function(){ + return zi.__InputValue; + }});Object.defineProperty(Pe,'__EnumValue',{enumerable:!0,get:function(){ + return zi.__EnumValue; + }});Object.defineProperty(Pe,'__TypeKind',{enumerable:!0,get:function(){ + return zi.__TypeKind; + }});Object.defineProperty(Pe,'TypeKind',{enumerable:!0,get:function(){ + return zi.TypeKind; + }});Object.defineProperty(Pe,'SchemaMetaFieldDef',{enumerable:!0,get:function(){ + return zi.SchemaMetaFieldDef; + }});Object.defineProperty(Pe,'TypeMetaFieldDef',{enumerable:!0,get:function(){ + return zi.TypeMetaFieldDef; + }});Object.defineProperty(Pe,'TypeNameMetaFieldDef',{enumerable:!0,get:function(){ + return zi.TypeNameMetaFieldDef; + }});Object.defineProperty(Pe,'validateSchema',{enumerable:!0,get:function(){ + return l8.validateSchema; + }});Object.defineProperty(Pe,'assertValidSchema',{enumerable:!0,get:function(){ + return l8.assertValidSchema; + }});var uN=qc(),mt=Rt(),ls=Bi(),Qc=is(),zi=jo(),l8=dv(); +});var d8=X(Zt=>{ + 'use strict';Object.defineProperty(Zt,'__esModule',{value:!0});Object.defineProperty(Zt,'Source',{enumerable:!0,get:function(){ + return vle.Source; + }});Object.defineProperty(Zt,'getLocation',{enumerable:!0,get:function(){ + return gle.getLocation; + }});Object.defineProperty(Zt,'printLocation',{enumerable:!0,get:function(){ + return c8.printLocation; + }});Object.defineProperty(Zt,'printSourceLocation',{enumerable:!0,get:function(){ + return c8.printSourceLocation; + }});Object.defineProperty(Zt,'Kind',{enumerable:!0,get:function(){ + return yle.Kind; + }});Object.defineProperty(Zt,'TokenKind',{enumerable:!0,get:function(){ + return ble.TokenKind; + }});Object.defineProperty(Zt,'Lexer',{enumerable:!0,get:function(){ + return Ale.Lexer; + }});Object.defineProperty(Zt,'parse',{enumerable:!0,get:function(){ + return cN.parse; + }});Object.defineProperty(Zt,'parseValue',{enumerable:!0,get:function(){ + return cN.parseValue; + }});Object.defineProperty(Zt,'parseType',{enumerable:!0,get:function(){ + return cN.parseType; + }});Object.defineProperty(Zt,'print',{enumerable:!0,get:function(){ + return xle.print; + }});Object.defineProperty(Zt,'visit',{enumerable:!0,get:function(){ + return hA.visit; + }});Object.defineProperty(Zt,'visitInParallel',{enumerable:!0,get:function(){ + return hA.visitInParallel; + }});Object.defineProperty(Zt,'getVisitFn',{enumerable:!0,get:function(){ + return hA.getVisitFn; + }});Object.defineProperty(Zt,'BREAK',{enumerable:!0,get:function(){ + return hA.BREAK; + }});Object.defineProperty(Zt,'Location',{enumerable:!0,get:function(){ + return f8.Location; + }});Object.defineProperty(Zt,'Token',{enumerable:!0,get:function(){ + return f8.Token; + }});Object.defineProperty(Zt,'isDefinitionNode',{enumerable:!0,get:function(){ + return il.isDefinitionNode; + }});Object.defineProperty(Zt,'isExecutableDefinitionNode',{enumerable:!0,get:function(){ + return il.isExecutableDefinitionNode; + }});Object.defineProperty(Zt,'isSelectionNode',{enumerable:!0,get:function(){ + return il.isSelectionNode; + }});Object.defineProperty(Zt,'isValueNode',{enumerable:!0,get:function(){ + return il.isValueNode; + }});Object.defineProperty(Zt,'isTypeNode',{enumerable:!0,get:function(){ + return il.isTypeNode; + }});Object.defineProperty(Zt,'isTypeSystemDefinitionNode',{enumerable:!0,get:function(){ + return il.isTypeSystemDefinitionNode; + }});Object.defineProperty(Zt,'isTypeDefinitionNode',{enumerable:!0,get:function(){ + return il.isTypeDefinitionNode; + }});Object.defineProperty(Zt,'isTypeSystemExtensionNode',{enumerable:!0,get:function(){ + return il.isTypeSystemExtensionNode; + }});Object.defineProperty(Zt,'isTypeExtensionNode',{enumerable:!0,get:function(){ + return il.isTypeExtensionNode; + }});Object.defineProperty(Zt,'DirectiveLocation',{enumerable:!0,get:function(){ + return wle.DirectiveLocation; + }});var vle=vb(),gle=nb(),c8=vS(),yle=tr(),ble=Id(),Ale=bb(),cN=jd(),xle=ao(),hA=Jl(),f8=Md(),il=Vc(),wle=Fd(); +});var p8=X(fu=>{ + 'use strict';Object.defineProperty(fu,'__esModule',{value:!0});Object.defineProperty(fu,'responsePathAsArray',{enumerable:!0,get:function(){ + return Ele.pathToArray; + }});Object.defineProperty(fu,'execute',{enumerable:!0,get:function(){ + return vA.execute; + }});Object.defineProperty(fu,'executeSync',{enumerable:!0,get:function(){ + return vA.executeSync; + }});Object.defineProperty(fu,'defaultFieldResolver',{enumerable:!0,get:function(){ + return vA.defaultFieldResolver; + }});Object.defineProperty(fu,'defaultTypeResolver',{enumerable:!0,get:function(){ + return vA.defaultTypeResolver; + }});Object.defineProperty(fu,'getDirectiveValues',{enumerable:!0,get:function(){ + return Tle.getDirectiveValues; + }});var Ele=gv(),vA=kv(),Tle=Ev(); +});var m8=X(fN=>{ + 'use strict';Object.defineProperty(fN,'__esModule',{value:!0});fN.default=Sle;var Cle=ts();function Sle(e){ + return typeof e?.[Cle.SYMBOL_ASYNC_ITERATOR]=='function'; + } +});var y8=X(dN=>{ + 'use strict';Object.defineProperty(dN,'__esModule',{value:!0});dN.default=Ole;var h8=ts();function kle(e,t,r){ + return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e; + }function Ole(e,t,r){ + var n=e[h8.SYMBOL_ASYNC_ITERATOR],i=n.call(e),o,s;typeof i.return=='function'&&(o=i.return,s=function(v){ + var g=function(){ + return Promise.reject(v); + };return o.call(i).then(g,g); + });function l(m){ + return m.done?m:v8(m.value,t).then(g8,s); + }var c;if(r){ + var f=r;c=function(v){ + return v8(v,f).then(g8,s); + }; + }return kle({next:function(){ + return i.next().then(l,c); + },return:function(){ + return o?o.call(i).then(l,c):Promise.resolve({value:void 0,done:!0}); + },throw:function(v){ + return typeof i.throw=='function'?i.throw(v).then(l,c):Promise.reject(v).catch(s); + }},h8.SYMBOL_ASYNC_ITERATOR,function(){ + return this; + }); + }function v8(e,t){ + return new Promise(function(r){ + return r(t(e)); + }); + }function g8(e){ + return{value:e,done:!1}; + } +});var C8=X(gA=>{ + 'use strict';Object.defineProperty(gA,'__esModule',{value:!0});gA.subscribe=Rle;gA.createSourceEventStream=T8;var Nle=mN(jt()),x8=mN(m8()),pN=gv(),w8=ft(),b8=Xh(),Dle=Ev(),ap=kv(),Lle=aA(),Ple=mN(y8());function mN(e){ + return e&&e.__esModule?e:{default:e}; + }function Rle(e,t,r,n,i,o,s,l){ + return arguments.length===1?A8(e):A8({schema:e,document:t,rootValue:r,contextValue:n,variableValues:i,operationName:o,fieldResolver:s,subscribeFieldResolver:l}); + }function E8(e){ + if(e instanceof w8.GraphQLError)return{errors:[e]};throw e; + }function A8(e){ + var t=e.schema,r=e.document,n=e.rootValue,i=e.contextValue,o=e.variableValues,s=e.operationName,l=e.fieldResolver,c=e.subscribeFieldResolver,f=T8(t,r,n,i,o,s,c),m=function(g){ + return(0,ap.execute)({schema:t,document:r,rootValue:g,contextValue:i,variableValues:o,operationName:s,fieldResolver:l}); + };return f.then(function(v){ + return(0,x8.default)(v)?(0,Ple.default)(v,m,E8):v; + }); + }function T8(e,t,r,n,i,o,s){ + return(0,ap.assertValidExecutionArguments)(e,t,i),new Promise(function(l){ + var c=(0,ap.buildExecutionContext)(e,t,r,n,i,o,s);l(Array.isArray(c)?{errors:c}:Mle(c)); + }).catch(E8); + }function Mle(e){ + var t=e.schema,r=e.operation,n=e.variableValues,i=e.rootValue,o=(0,Lle.getOperationRootType)(t,r),s=(0,ap.collectFields)(e,o,r.selectionSet,Object.create(null),Object.create(null)),l=Object.keys(s),c=l[0],f=s[c],m=f[0],v=m.name.value,g=(0,ap.getFieldDef)(t,o,v);if(!g)throw new w8.GraphQLError('The subscription field "'.concat(v,'" is not defined.'),f);var y=(0,pN.addPath)(void 0,c,o.name),w=(0,ap.buildResolveInfo)(e,g,f,o,y);return new Promise(function(T){ + var S,A=(0,Dle.getArgumentValues)(g,f[0],n),b=e.contextValue,C=(S=g.subscribe)!==null&&S!==void 0?S:e.fieldResolver;T(C(i,A,b,w)); + }).then(function(T){ + if(T instanceof Error)throw(0,b8.locatedError)(T,f,(0,pN.pathToArray)(y));if(!(0,x8.default)(T))throw new Error('Subscription field must return Async Iterable. '+'Received: '.concat((0,Nle.default)(T),'.'));return T; + },function(T){ + throw(0,b8.locatedError)(T,f,(0,pN.pathToArray)(y)); + }); + } +});var k8=X(yA=>{ + 'use strict';Object.defineProperty(yA,'__esModule',{value:!0});Object.defineProperty(yA,'subscribe',{enumerable:!0,get:function(){ + return S8.subscribe; + }});Object.defineProperty(yA,'createSourceEventStream',{enumerable:!0,get:function(){ + return S8.createSourceEventStream; + }});var S8=C8(); +});var yN=X(gN=>{ + 'use strict';Object.defineProperty(gN,'__esModule',{value:!0});gN.NoDeprecatedCustomRule=Fle;var hN=Ile(Gn()),Ov=ft(),vN=Rt();function Ile(e){ + return e&&e.__esModule?e:{default:e}; + }function Fle(e){ + return{Field:function(r){ + var n=e.getFieldDef(),i=n?.deprecationReason;if(n&&i!=null){ + var o=e.getParentType();o!=null||(0,hN.default)(0),e.reportError(new Ov.GraphQLError('The field '.concat(o.name,'.').concat(n.name,' is deprecated. ').concat(i),r)); + } + },Argument:function(r){ + var n=e.getArgument(),i=n?.deprecationReason;if(n&&i!=null){ + var o=e.getDirective();if(o!=null)e.reportError(new Ov.GraphQLError('Directive "@'.concat(o.name,'" argument "').concat(n.name,'" is deprecated. ').concat(i),r));else{ + var s=e.getParentType(),l=e.getFieldDef();s!=null&&l!=null||(0,hN.default)(0),e.reportError(new Ov.GraphQLError('Field "'.concat(s.name,'.').concat(l.name,'" argument "').concat(n.name,'" is deprecated. ').concat(i),r)); + } + } + },ObjectField:function(r){ + var n=(0,vN.getNamedType)(e.getParentInputType());if((0,vN.isInputObjectType)(n)){ + var i=n.getFields()[r.name.value],o=i?.deprecationReason;o!=null&&e.reportError(new Ov.GraphQLError('The input field '.concat(n.name,'.').concat(i.name,' is deprecated. ').concat(o),r)); + } + },EnumValue:function(r){ + var n=e.getEnumValue(),i=n?.deprecationReason;if(n&&i!=null){ + var o=(0,vN.getNamedType)(e.getInputType());o!=null||(0,hN.default)(0),e.reportError(new Ov.GraphQLError('The enum value "'.concat(o.name,'.').concat(n.name,'" is deprecated. ').concat(i),r)); + } + }}; + } +});var O8=X(bN=>{ + 'use strict';Object.defineProperty(bN,'__esModule',{value:!0});bN.NoSchemaIntrospectionCustomRule=Ule;var qle=ft(),jle=Rt(),Vle=jo();function Ule(e){ + return{Field:function(r){ + var n=(0,jle.getNamedType)(e.getType());n&&(0,Vle.isIntrospectionType)(n)&&e.reportError(new qle.GraphQLError('GraphQL introspection has been disabled, but the requested query contained the field "'.concat(r.name.value,'".'),r)); + }}; + } +});var N8=X(Tt=>{ + 'use strict';Object.defineProperty(Tt,'__esModule',{value:!0});Object.defineProperty(Tt,'validate',{enumerable:!0,get:function(){ + return Ble.validate; + }});Object.defineProperty(Tt,'ValidationContext',{enumerable:!0,get:function(){ + return Gle.ValidationContext; + }});Object.defineProperty(Tt,'specifiedRules',{enumerable:!0,get:function(){ + return zle.specifiedRules; + }});Object.defineProperty(Tt,'ExecutableDefinitionsRule',{enumerable:!0,get:function(){ + return Hle.ExecutableDefinitionsRule; + }});Object.defineProperty(Tt,'FieldsOnCorrectTypeRule',{enumerable:!0,get:function(){ + return Qle.FieldsOnCorrectTypeRule; + }});Object.defineProperty(Tt,'FragmentsOnCompositeTypesRule',{enumerable:!0,get:function(){ + return Wle.FragmentsOnCompositeTypesRule; + }});Object.defineProperty(Tt,'KnownArgumentNamesRule',{enumerable:!0,get:function(){ + return Yle.KnownArgumentNamesRule; + }});Object.defineProperty(Tt,'KnownDirectivesRule',{enumerable:!0,get:function(){ + return Kle.KnownDirectivesRule; + }});Object.defineProperty(Tt,'KnownFragmentNamesRule',{enumerable:!0,get:function(){ + return Xle.KnownFragmentNamesRule; + }});Object.defineProperty(Tt,'KnownTypeNamesRule',{enumerable:!0,get:function(){ + return Zle.KnownTypeNamesRule; + }});Object.defineProperty(Tt,'LoneAnonymousOperationRule',{enumerable:!0,get:function(){ + return Jle.LoneAnonymousOperationRule; + }});Object.defineProperty(Tt,'NoFragmentCyclesRule',{enumerable:!0,get:function(){ + return _le.NoFragmentCyclesRule; + }});Object.defineProperty(Tt,'NoUndefinedVariablesRule',{enumerable:!0,get:function(){ + return $le.NoUndefinedVariablesRule; + }});Object.defineProperty(Tt,'NoUnusedFragmentsRule',{enumerable:!0,get:function(){ + return eue.NoUnusedFragmentsRule; + }});Object.defineProperty(Tt,'NoUnusedVariablesRule',{enumerable:!0,get:function(){ + return tue.NoUnusedVariablesRule; + }});Object.defineProperty(Tt,'OverlappingFieldsCanBeMergedRule',{enumerable:!0,get:function(){ + return rue.OverlappingFieldsCanBeMergedRule; + }});Object.defineProperty(Tt,'PossibleFragmentSpreadsRule',{enumerable:!0,get:function(){ + return nue.PossibleFragmentSpreadsRule; + }});Object.defineProperty(Tt,'ProvidedRequiredArgumentsRule',{enumerable:!0,get:function(){ + return iue.ProvidedRequiredArgumentsRule; + }});Object.defineProperty(Tt,'ScalarLeafsRule',{enumerable:!0,get:function(){ + return oue.ScalarLeafsRule; + }});Object.defineProperty(Tt,'SingleFieldSubscriptionsRule',{enumerable:!0,get:function(){ + return aue.SingleFieldSubscriptionsRule; + }});Object.defineProperty(Tt,'UniqueArgumentNamesRule',{enumerable:!0,get:function(){ + return sue.UniqueArgumentNamesRule; + }});Object.defineProperty(Tt,'UniqueDirectivesPerLocationRule',{enumerable:!0,get:function(){ + return lue.UniqueDirectivesPerLocationRule; + }});Object.defineProperty(Tt,'UniqueFragmentNamesRule',{enumerable:!0,get:function(){ + return uue.UniqueFragmentNamesRule; + }});Object.defineProperty(Tt,'UniqueInputFieldNamesRule',{enumerable:!0,get:function(){ + return cue.UniqueInputFieldNamesRule; + }});Object.defineProperty(Tt,'UniqueOperationNamesRule',{enumerable:!0,get:function(){ + return fue.UniqueOperationNamesRule; + }});Object.defineProperty(Tt,'UniqueVariableNamesRule',{enumerable:!0,get:function(){ + return due.UniqueVariableNamesRule; + }});Object.defineProperty(Tt,'ValuesOfCorrectTypeRule',{enumerable:!0,get:function(){ + return pue.ValuesOfCorrectTypeRule; + }});Object.defineProperty(Tt,'VariablesAreInputTypesRule',{enumerable:!0,get:function(){ + return mue.VariablesAreInputTypesRule; + }});Object.defineProperty(Tt,'VariablesInAllowedPositionRule',{enumerable:!0,get:function(){ + return hue.VariablesInAllowedPositionRule; + }});Object.defineProperty(Tt,'LoneSchemaDefinitionRule',{enumerable:!0,get:function(){ + return vue.LoneSchemaDefinitionRule; + }});Object.defineProperty(Tt,'UniqueOperationTypesRule',{enumerable:!0,get:function(){ + return gue.UniqueOperationTypesRule; + }});Object.defineProperty(Tt,'UniqueTypeNamesRule',{enumerable:!0,get:function(){ + return yue.UniqueTypeNamesRule; + }});Object.defineProperty(Tt,'UniqueEnumValueNamesRule',{enumerable:!0,get:function(){ + return bue.UniqueEnumValueNamesRule; + }});Object.defineProperty(Tt,'UniqueFieldDefinitionNamesRule',{enumerable:!0,get:function(){ + return Aue.UniqueFieldDefinitionNamesRule; + }});Object.defineProperty(Tt,'UniqueDirectiveNamesRule',{enumerable:!0,get:function(){ + return xue.UniqueDirectiveNamesRule; + }});Object.defineProperty(Tt,'PossibleTypeExtensionsRule',{enumerable:!0,get:function(){ + return wue.PossibleTypeExtensionsRule; + }});Object.defineProperty(Tt,'NoDeprecatedCustomRule',{enumerable:!0,get:function(){ + return Eue.NoDeprecatedCustomRule; + }});Object.defineProperty(Tt,'NoSchemaIntrospectionCustomRule',{enumerable:!0,get:function(){ + return Tue.NoSchemaIntrospectionCustomRule; + }});var Ble=ep(),Gle=KO(),zle=WO(),Hle=kk(),Qle=Hk(),Wle=jk(),Yle=pO(),Kle=uO(),Xle=Kk(),Zle=Fk(),Jle=Lk(),_le=tO(),$le=oO(),eue=Zk(),tue=sO(),rue=OO(),nue=$k(),iue=bO(),oue=Gk(),aue=Rk(),sue=hO(),lue=dO(),uue=Wk(),cue=DO(),fue=Nk(),due=nO(),pue=gO(),mue=Uk(),hue=xO(),vue=PO(),gue=MO(),yue=FO(),bue=jO(),Aue=BO(),xue=zO(),wue=QO(),Eue=yN(),Tue=O8(); +});var D8=X(AN=>{ + 'use strict';Object.defineProperty(AN,'__esModule',{value:!0});AN.formatError=kue;var Cue=Sue(Io());function Sue(e){ + return e&&e.__esModule?e:{default:e}; + }function kue(e){ + var t;e||(0,Cue.default)(0,'Received null or undefined error.');var r=(t=e.message)!==null&&t!==void 0?t:'An unknown error occurred.',n=e.locations,i=e.path,o=e.extensions;return o&&Object.keys(o).length>0?{message:r,locations:n,path:i,extensions:o}:{message:r,locations:n,path:i}; + } +});var P8=X(Wc=>{ + 'use strict';Object.defineProperty(Wc,'__esModule',{value:!0});Object.defineProperty(Wc,'GraphQLError',{enumerable:!0,get:function(){ + return L8.GraphQLError; + }});Object.defineProperty(Wc,'printError',{enumerable:!0,get:function(){ + return L8.printError; + }});Object.defineProperty(Wc,'syntaxError',{enumerable:!0,get:function(){ + return Oue.syntaxError; + }});Object.defineProperty(Wc,'locatedError',{enumerable:!0,get:function(){ + return Nue.locatedError; + }});Object.defineProperty(Wc,'formatError',{enumerable:!0,get:function(){ + return Due.formatError; + }});var L8=ft(),Oue=lb(),Nue=Xh(),Due=D8(); +});var wN=X(xN=>{ + 'use strict';Object.defineProperty(xN,'__esModule',{value:!0});xN.getIntrospectionQuery=Rue;function R8(e,t){ + var r=Object.keys(e);if(Object.getOwnPropertySymbols){ + var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){ + return Object.getOwnPropertyDescriptor(e,i).enumerable; + })),r.push.apply(r,n); + }return r; + }function Lue(e){ + for(var t=1;t{"use strict";Object.defineProperty(EN,"__esModule",{value:!0});EN.getOperationAST=Iue;var Mue=tr();function Iue(e,t){for(var r=null,n=0,i=e.definitions;n{"use strict";Object.defineProperty(TN,"__esModule",{value:!0});TN.introspectionFromSchema=zue;var Fue=Uue(Gn()),que=jd(),jue=kv(),Vue=wN();function Uue(e){return e&&e.__esModule?e:{default:e}}function I8(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function Bue(e){for(var t=1;t{"use strict";Object.defineProperty(CN,"__esModule",{value:!0});CN.buildClientSchema=Jue;var Hue=Nv(oo()),uo=Nv(jt()),Que=Nv(Io()),bA=Nv(Zh()),q8=Nv(es()),Wue=jd(),Yue=qc(),Kue=Bi(),Xue=is(),us=jo(),co=Rt(),Zue=bv();function Nv(e){return e&&e.__esModule?e:{default:e}}function Jue(e,t){(0,q8.default)(e)&&(0,q8.default)(e.__schema)||(0,Que.default)(0,'Invalid or incomplete introspection result. Ensure that you are passing "data" property of introspection response and no "errors" was returned alongside: '.concat((0,uo.default)(e),"."));for(var r=e.__schema,n=(0,bA.default)(r.types,function(B){return B.name},function(B){return T(B)}),i=0,o=[].concat(Xue.specifiedScalarTypes,us.introspectionTypes);i{"use strict";Object.defineProperty(Lv,"__esModule",{value:!0});Lv.extendSchema=oce;Lv.extendSchemaImpl=Z8;Lv.getDescription=Yc;var _ue=sp(oo()),$ue=sp(_l()),V8=sp(jt()),Dv=sp(RS()),U8=sp(Gn()),ece=sp(Io()),Uo=tr(),tce=Id(),rce=qd(),B8=Vc(),nce=ep(),Y8=Ev(),G8=qc(),K8=is(),X8=jo(),xA=Bi(),Tr=Rt(),z8=bv();function sp(e){return e&&e.__esModule?e:{default:e}}function H8(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function Ut(e){for(var t=1;t0?r.reverse().join(` -`):void 0}}});var $8=X(wA=>{"use strict";Object.defineProperty(wA,"__esModule",{value:!0});wA.buildASTSchema=_8;wA.buildSchema=mce;var sce=pce(Io()),lce=tr(),uce=jd(),cce=ep(),fce=qc(),J8=Bi(),dce=SN();function pce(e){return e&&e.__esModule?e:{default:e}}function _8(e,t){e!=null&&e.kind===lce.Kind.DOCUMENT||(0,sce.default)(0,"Must provide valid Document AST."),t?.assumeValid!==!0&&t?.assumeValidSDL!==!0&&(0,cce.assertValidSDL)(e);var r={description:void 0,types:[],directives:[],extensions:void 0,extensionASTNodes:[],assumeValid:!1},n=(0,dce.extendSchemaImpl)(r,e,t);if(n.astNode==null)for(var i=0,o=n.types;i{"use strict";Object.defineProperty(NN,"__esModule",{value:!0});NN.lexicographicSortSchema=Tce;var hce=Pv(oo()),vce=Pv(jt()),gce=Pv(Gn()),yce=Pv(Zh()),bce=Pv(Jh()),Ace=qc(),xce=Bi(),wce=jo(),Li=Rt();function Pv(e){return e&&e.__esModule?e:{default:e}}function e4(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function ln(e){for(var t=1;t{"use strict";Object.defineProperty(Rv,"__esModule",{value:!0});Rv.printSchema=kce;Rv.printIntrospectionSchema=Oce;Rv.printType=o4;var LN=FN(oo()),Cce=FN(jt()),r4=FN(Gn()),PN=ao(),Sce=qd(),n4=jo(),RN=is(),MN=Bi(),lp=Rt(),IN=lv();function FN(e){return e&&e.__esModule?e:{default:e}}function kce(e,t){return i4(e,function(r){return!(0,MN.isSpecifiedDirective)(r)},Nce,t)}function Oce(e,t){return i4(e,MN.isSpecifiedDirective,n4.isIntrospectionType,t)}function Nce(e){return!(0,RN.isSpecifiedScalarType)(e)&&!(0,n4.isIntrospectionType)(e)}function i4(e,t,r,n){var i=e.getDirectives().filter(t),o=(0,LN.default)(e.getTypeMap()).filter(r);return[Dce(e)].concat(i.map(function(s){return jce(s,n)}),o.map(function(s){return o4(s,n)})).filter(Boolean).join(` + `); + } +});var M8=X(EN=>{ + 'use strict';Object.defineProperty(EN,'__esModule',{value:!0});EN.getOperationAST=Iue;var Mue=tr();function Iue(e,t){ + for(var r=null,n=0,i=e.definitions;n{ + 'use strict';Object.defineProperty(TN,'__esModule',{value:!0});TN.introspectionFromSchema=zue;var Fue=Uue(Gn()),que=jd(),jue=kv(),Vue=wN();function Uue(e){ + return e&&e.__esModule?e:{default:e}; + }function I8(e,t){ + var r=Object.keys(e);if(Object.getOwnPropertySymbols){ + var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){ + return Object.getOwnPropertyDescriptor(e,i).enumerable; + })),r.push.apply(r,n); + }return r; + }function Bue(e){ + for(var t=1;t{ + 'use strict';Object.defineProperty(CN,'__esModule',{value:!0});CN.buildClientSchema=Jue;var Hue=Nv(oo()),uo=Nv(jt()),Que=Nv(Io()),bA=Nv(Zh()),q8=Nv(es()),Wue=jd(),Yue=qc(),Kue=Bi(),Xue=is(),us=jo(),co=Rt(),Zue=bv();function Nv(e){ + return e&&e.__esModule?e:{default:e}; + }function Jue(e,t){ + (0,q8.default)(e)&&(0,q8.default)(e.__schema)||(0,Que.default)(0,'Invalid or incomplete introspection result. Ensure that you are passing "data" property of introspection response and no "errors" was returned alongside: '.concat((0,uo.default)(e),'.'));for(var r=e.__schema,n=(0,bA.default)(r.types,function(B){ + return B.name; + },function(B){ + return T(B); + }),i=0,o=[].concat(Xue.specifiedScalarTypes,us.introspectionTypes);i{ + 'use strict';Object.defineProperty(Lv,'__esModule',{value:!0});Lv.extendSchema=oce;Lv.extendSchemaImpl=Z8;Lv.getDescription=Yc;var _ue=sp(oo()),$ue=sp(_l()),V8=sp(jt()),Dv=sp(RS()),U8=sp(Gn()),ece=sp(Io()),Uo=tr(),tce=Id(),rce=qd(),B8=Vc(),nce=ep(),Y8=Ev(),G8=qc(),K8=is(),X8=jo(),xA=Bi(),Tr=Rt(),z8=bv();function sp(e){ + return e&&e.__esModule?e:{default:e}; + }function H8(e,t){ + var r=Object.keys(e);if(Object.getOwnPropertySymbols){ + var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){ + return Object.getOwnPropertyDescriptor(e,i).enumerable; + })),r.push.apply(r,n); + }return r; + }function Ut(e){ + for(var t=1;t0?r.reverse().join(` +`):void 0; + } + } +});var $8=X(wA=>{ + 'use strict';Object.defineProperty(wA,'__esModule',{value:!0});wA.buildASTSchema=_8;wA.buildSchema=mce;var sce=pce(Io()),lce=tr(),uce=jd(),cce=ep(),fce=qc(),J8=Bi(),dce=SN();function pce(e){ + return e&&e.__esModule?e:{default:e}; + }function _8(e,t){ + e!=null&&e.kind===lce.Kind.DOCUMENT||(0,sce.default)(0,'Must provide valid Document AST.'),t?.assumeValid!==!0&&t?.assumeValidSDL!==!0&&(0,cce.assertValidSDL)(e);var r={description:void 0,types:[],directives:[],extensions:void 0,extensionASTNodes:[],assumeValid:!1},n=(0,dce.extendSchemaImpl)(r,e,t);if(n.astNode==null)for(var i=0,o=n.types;i{ + 'use strict';Object.defineProperty(NN,'__esModule',{value:!0});NN.lexicographicSortSchema=Tce;var hce=Pv(oo()),vce=Pv(jt()),gce=Pv(Gn()),yce=Pv(Zh()),bce=Pv(Jh()),Ace=qc(),xce=Bi(),wce=jo(),Li=Rt();function Pv(e){ + return e&&e.__esModule?e:{default:e}; + }function e4(e,t){ + var r=Object.keys(e);if(Object.getOwnPropertySymbols){ + var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){ + return Object.getOwnPropertyDescriptor(e,i).enumerable; + })),r.push.apply(r,n); + }return r; + }function ln(e){ + for(var t=1;t{ + 'use strict';Object.defineProperty(Rv,'__esModule',{value:!0});Rv.printSchema=kce;Rv.printIntrospectionSchema=Oce;Rv.printType=o4;var LN=FN(oo()),Cce=FN(jt()),r4=FN(Gn()),PN=ao(),Sce=qd(),n4=jo(),RN=is(),MN=Bi(),lp=Rt(),IN=lv();function FN(e){ + return e&&e.__esModule?e:{default:e}; + }function kce(e,t){ + return i4(e,function(r){ + return!(0,MN.isSpecifiedDirective)(r); + },Nce,t); + }function Oce(e,t){ + return i4(e,MN.isSpecifiedDirective,n4.isIntrospectionType,t); + }function Nce(e){ + return!(0,RN.isSpecifiedScalarType)(e)&&!(0,n4.isIntrospectionType)(e); + }function i4(e,t,r,n){ + var i=e.getDirectives().filter(t),o=(0,LN.default)(e.getTypeMap()).filter(r);return[Dce(e)].concat(i.map(function(s){ + return jce(s,n); + }),o.map(function(s){ + return o4(s,n); + })).filter(Boolean).join(` `)+` -`}function Dce(e){if(!(e.description==null&&Lce(e))){var t=[],r=e.getQueryType();r&&t.push(" query: ".concat(r.name));var n=e.getMutationType();n&&t.push(" mutation: ".concat(n.name));var i=e.getSubscriptionType();return i&&t.push(" subscription: ".concat(i.name)),Bo({},e)+`schema { +`; + }function Dce(e){ + if(!(e.description==null&&Lce(e))){ + var t=[],r=e.getQueryType();r&&t.push(' query: '.concat(r.name));var n=e.getMutationType();n&&t.push(' mutation: '.concat(n.name));var i=e.getSubscriptionType();return i&&t.push(' subscription: '.concat(i.name)),Bo({},e)+`schema { `.concat(t.join(` `),` -}`)}}function Lce(e){var t=e.getQueryType();if(t&&t.name!=="Query")return!1;var r=e.getMutationType();if(r&&r.name!=="Mutation")return!1;var n=e.getSubscriptionType();return!(n&&n.name!=="Subscription")}function o4(e,t){if((0,lp.isScalarType)(e))return Pce(e,t);if((0,lp.isObjectType)(e))return Rce(e,t);if((0,lp.isInterfaceType)(e))return Mce(e,t);if((0,lp.isUnionType)(e))return Ice(e,t);if((0,lp.isEnumType)(e))return Fce(e,t);if((0,lp.isInputObjectType)(e))return qce(e,t);(0,r4.default)(0,"Unexpected type: "+(0,Cce.default)(e))}function Pce(e,t){return Bo(t,e)+"scalar ".concat(e.name)+Vce(e)}function a4(e){var t=e.getInterfaces();return t.length?" implements "+t.map(function(r){return r.name}).join(" & "):""}function Rce(e,t){return Bo(t,e)+"type ".concat(e.name)+a4(e)+s4(t,e)}function Mce(e,t){return Bo(t,e)+"interface ".concat(e.name)+a4(e)+s4(t,e)}function Ice(e,t){var r=e.getTypes(),n=r.length?" = "+r.join(" | "):"";return Bo(t,e)+"union "+e.name+n}function Fce(e,t){var r=e.getValues().map(function(n,i){return Bo(t,n," ",!i)+" "+n.name+jN(n.deprecationReason)});return Bo(t,e)+"enum ".concat(e.name)+qN(r)}function qce(e,t){var r=(0,LN.default)(e.getFields()).map(function(n,i){return Bo(t,n," ",!i)+" "+DN(n)});return Bo(t,e)+"input ".concat(e.name)+qN(r)}function s4(e,t){var r=(0,LN.default)(t.getFields()).map(function(n,i){return Bo(e,n," ",!i)+" "+n.name+l4(e,n.args," ")+": "+String(n.type)+jN(n.deprecationReason)});return qN(r)}function qN(e){return e.length!==0?` { +}`); + } + }function Lce(e){ + var t=e.getQueryType();if(t&&t.name!=='Query')return!1;var r=e.getMutationType();if(r&&r.name!=='Mutation')return!1;var n=e.getSubscriptionType();return!(n&&n.name!=='Subscription'); + }function o4(e,t){ + if((0,lp.isScalarType)(e))return Pce(e,t);if((0,lp.isObjectType)(e))return Rce(e,t);if((0,lp.isInterfaceType)(e))return Mce(e,t);if((0,lp.isUnionType)(e))return Ice(e,t);if((0,lp.isEnumType)(e))return Fce(e,t);if((0,lp.isInputObjectType)(e))return qce(e,t);(0,r4.default)(0,'Unexpected type: '+(0,Cce.default)(e)); + }function Pce(e,t){ + return Bo(t,e)+'scalar '.concat(e.name)+Vce(e); + }function a4(e){ + var t=e.getInterfaces();return t.length?' implements '+t.map(function(r){ + return r.name; + }).join(' & '):''; + }function Rce(e,t){ + return Bo(t,e)+'type '.concat(e.name)+a4(e)+s4(t,e); + }function Mce(e,t){ + return Bo(t,e)+'interface '.concat(e.name)+a4(e)+s4(t,e); + }function Ice(e,t){ + var r=e.getTypes(),n=r.length?' = '+r.join(' | '):'';return Bo(t,e)+'union '+e.name+n; + }function Fce(e,t){ + var r=e.getValues().map(function(n,i){ + return Bo(t,n,' ',!i)+' '+n.name+jN(n.deprecationReason); + });return Bo(t,e)+'enum '.concat(e.name)+qN(r); + }function qce(e,t){ + var r=(0,LN.default)(e.getFields()).map(function(n,i){ + return Bo(t,n,' ',!i)+' '+DN(n); + });return Bo(t,e)+'input '.concat(e.name)+qN(r); + }function s4(e,t){ + var r=(0,LN.default)(t.getFields()).map(function(n,i){ + return Bo(e,n,' ',!i)+' '+n.name+l4(e,n.args,' ')+': '+String(n.type)+jN(n.deprecationReason); + });return qN(r); + }function qN(e){ + return e.length!==0?` { `+e.join(` `)+` -}`:""}function l4(e,t){var r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:"";return t.length===0?"":t.every(function(n){return!n.description})?"("+t.map(DN).join(", ")+")":`( -`+t.map(function(n,i){return Bo(e,n," "+r,!i)+" "+r+DN(n)}).join(` +}`:''; + }function l4(e,t){ + var r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:'';return t.length===0?'':t.every(function(n){ + return!n.description; + })?'('+t.map(DN).join(', ')+')':`( +`+t.map(function(n,i){ + return Bo(e,n,' '+r,!i)+' '+r+DN(n); + }).join(` `)+` -`+r+")"}function DN(e){var t=(0,IN.astFromValue)(e.defaultValue,e.type),r=e.name+": "+String(e.type);return t&&(r+=" = ".concat((0,PN.print)(t))),r+jN(e.deprecationReason)}function jce(e,t){return Bo(t,e)+"directive @"+e.name+l4(t,e.args)+(e.isRepeatable?" repeatable":"")+" on "+e.locations.join(" | ")}function jN(e){if(e==null)return"";var t=(0,IN.astFromValue)(e,RN.GraphQLString);return t&&e!==MN.DEFAULT_DEPRECATION_REASON?" @deprecated(reason: "+(0,PN.print)(t)+")":" @deprecated"}function Vce(e){if(e.specifiedByUrl==null)return"";var t=e.specifiedByUrl,r=(0,IN.astFromValue)(t,RN.GraphQLString);return r||(0,r4.default)(0,"Unexpected null value returned from `astFromValue` for specifiedByUrl")," @specifiedBy(url: "+(0,PN.print)(r)+")"}function Bo(e,t){var r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:"",n=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!0,i=t.description;if(i==null)return"";if(e?.commentDescriptions===!0)return Uce(i,r,n);var o=i.length>70,s=(0,Sce.printBlockString)(i,"",o),l=r&&!n?` +`+r+')'; + }function DN(e){ + var t=(0,IN.astFromValue)(e.defaultValue,e.type),r=e.name+': '+String(e.type);return t&&(r+=' = '.concat((0,PN.print)(t))),r+jN(e.deprecationReason); + }function jce(e,t){ + return Bo(t,e)+'directive @'+e.name+l4(t,e.args)+(e.isRepeatable?' repeatable':'')+' on '+e.locations.join(' | '); + }function jN(e){ + if(e==null)return'';var t=(0,IN.astFromValue)(e,RN.GraphQLString);return t&&e!==MN.DEFAULT_DEPRECATION_REASON?' @deprecated(reason: '+(0,PN.print)(t)+')':' @deprecated'; + }function Vce(e){ + if(e.specifiedByUrl==null)return'';var t=e.specifiedByUrl,r=(0,IN.astFromValue)(t,RN.GraphQLString);return r||(0,r4.default)(0,'Unexpected null value returned from `astFromValue` for specifiedByUrl'),' @specifiedBy(url: '+(0,PN.print)(r)+')'; + }function Bo(e,t){ + var r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:'',n=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!0,i=t.description;if(i==null)return'';if(e?.commentDescriptions===!0)return Uce(i,r,n);var o=i.length>70,s=(0,Sce.printBlockString)(i,'',o),l=r&&!n?` `+r:r;return l+s.replace(/\n/g,` `+r)+` -`}function Uce(e,t,r){var n=t&&!r?` -`:"",i=e.split(` -`).map(function(o){return t+(o!==""?"# "+o:"#")}).join(` +`; + }function Uce(e,t,r){ + var n=t&&!r?` +`:'',i=e.split(` +`).map(function(o){ + return t+(o!==''?'# '+o:'#'); + }).join(` `);return n+i+` -`}});var c4=X(VN=>{"use strict";Object.defineProperty(VN,"__esModule",{value:!0});VN.concatAST=Bce;function Bce(e){for(var t=[],r=0;r{"use strict";Object.defineProperty(UN,"__esModule",{value:!0});UN.separateOperations=zce;var TA=tr(),Gce=Jl();function zce(e){for(var t=[],r=Object.create(null),n=0,i=e.definitions;n{"use strict";Object.defineProperty(GN,"__esModule",{value:!0});GN.stripIgnoredCharacters=Hce;var m4=vb(),BN=Id(),h4=bb(),v4=qd();function Hce(e){for(var t=(0,m4.isSource)(e)?e:new m4.Source(e),r=t.body,n=new h4.Lexer(t),i="",o=!1;n.advance().kind!==BN.TokenKind.EOF;){var s=n.token,l=s.kind,c=!(0,h4.isPunctuatorTokenKind)(s.kind);o&&(c||s.kind===BN.TokenKind.SPREAD)&&(i+=" ");var f=r.slice(s.start,s.end);l===BN.TokenKind.BLOCK_STRING?i+=Qce(f):i+=f,o=c}return i}function Qce(e){var t=e.slice(3,-3),r=(0,v4.dedentBlockStringValue)(t);(0,v4.getBlockStringIndentation)(r)>0&&(r=` -`+r);var n=r[r.length-1],i=n==='"'&&r.slice(-4)!=='\\"""';return(i||n==="\\")&&(r+=` -`),'"""'+r+'"""'}});var k4=X(du=>{"use strict";Object.defineProperty(du,"__esModule",{value:!0});du.findBreakingChanges=$ce;du.findDangerousChanges=efe;du.DangerousChangeType=du.BreakingChangeType=void 0;var up=Fv(oo()),y4=Fv(_l()),Wce=Fv(jt()),C4=Fv(Gn()),Yce=Fv(Jh()),Kce=ao(),Xce=Jl(),Zce=is(),Bt=Rt(),Jce=lv();function Fv(e){return e&&e.__esModule?e:{default:e}}function b4(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function A4(e){for(var t=1;t{"use strict";Object.defineProperty(zN,"__esModule",{value:!0});zN.findDeprecatedUsages=ufe;var sfe=ep(),lfe=yN();function ufe(e,t){return(0,sfe.validate)(e,t,[lfe.NoDeprecatedCustomRule])}});var R4=X(Lt=>{"use strict";Object.defineProperty(Lt,"__esModule",{value:!0});Object.defineProperty(Lt,"getIntrospectionQuery",{enumerable:!0,get:function(){return cfe.getIntrospectionQuery}});Object.defineProperty(Lt,"getOperationAST",{enumerable:!0,get:function(){return ffe.getOperationAST}});Object.defineProperty(Lt,"getOperationRootType",{enumerable:!0,get:function(){return dfe.getOperationRootType}});Object.defineProperty(Lt,"introspectionFromSchema",{enumerable:!0,get:function(){return pfe.introspectionFromSchema}});Object.defineProperty(Lt,"buildClientSchema",{enumerable:!0,get:function(){return mfe.buildClientSchema}});Object.defineProperty(Lt,"buildASTSchema",{enumerable:!0,get:function(){return N4.buildASTSchema}});Object.defineProperty(Lt,"buildSchema",{enumerable:!0,get:function(){return N4.buildSchema}});Object.defineProperty(Lt,"extendSchema",{enumerable:!0,get:function(){return D4.extendSchema}});Object.defineProperty(Lt,"getDescription",{enumerable:!0,get:function(){return D4.getDescription}});Object.defineProperty(Lt,"lexicographicSortSchema",{enumerable:!0,get:function(){return hfe.lexicographicSortSchema}});Object.defineProperty(Lt,"printSchema",{enumerable:!0,get:function(){return HN.printSchema}});Object.defineProperty(Lt,"printType",{enumerable:!0,get:function(){return HN.printType}});Object.defineProperty(Lt,"printIntrospectionSchema",{enumerable:!0,get:function(){return HN.printIntrospectionSchema}});Object.defineProperty(Lt,"typeFromAST",{enumerable:!0,get:function(){return vfe.typeFromAST}});Object.defineProperty(Lt,"valueFromAST",{enumerable:!0,get:function(){return gfe.valueFromAST}});Object.defineProperty(Lt,"valueFromASTUntyped",{enumerable:!0,get:function(){return yfe.valueFromASTUntyped}});Object.defineProperty(Lt,"astFromValue",{enumerable:!0,get:function(){return bfe.astFromValue}});Object.defineProperty(Lt,"TypeInfo",{enumerable:!0,get:function(){return L4.TypeInfo}});Object.defineProperty(Lt,"visitWithTypeInfo",{enumerable:!0,get:function(){return L4.visitWithTypeInfo}});Object.defineProperty(Lt,"coerceInputValue",{enumerable:!0,get:function(){return Afe.coerceInputValue}});Object.defineProperty(Lt,"concatAST",{enumerable:!0,get:function(){return xfe.concatAST}});Object.defineProperty(Lt,"separateOperations",{enumerable:!0,get:function(){return wfe.separateOperations}});Object.defineProperty(Lt,"stripIgnoredCharacters",{enumerable:!0,get:function(){return Efe.stripIgnoredCharacters}});Object.defineProperty(Lt,"isEqualType",{enumerable:!0,get:function(){return QN.isEqualType}});Object.defineProperty(Lt,"isTypeSubTypeOf",{enumerable:!0,get:function(){return QN.isTypeSubTypeOf}});Object.defineProperty(Lt,"doTypesOverlap",{enumerable:!0,get:function(){return QN.doTypesOverlap}});Object.defineProperty(Lt,"assertValidName",{enumerable:!0,get:function(){return P4.assertValidName}});Object.defineProperty(Lt,"isValidNameError",{enumerable:!0,get:function(){return P4.isValidNameError}});Object.defineProperty(Lt,"BreakingChangeType",{enumerable:!0,get:function(){return CA.BreakingChangeType}});Object.defineProperty(Lt,"DangerousChangeType",{enumerable:!0,get:function(){return CA.DangerousChangeType}});Object.defineProperty(Lt,"findBreakingChanges",{enumerable:!0,get:function(){return CA.findBreakingChanges}});Object.defineProperty(Lt,"findDangerousChanges",{enumerable:!0,get:function(){return CA.findDangerousChanges}});Object.defineProperty(Lt,"findDeprecatedUsages",{enumerable:!0,get:function(){return Tfe.findDeprecatedUsages}});var cfe=wN(),ffe=M8(),dfe=aA(),pfe=F8(),mfe=j8(),N4=$8(),D4=SN(),hfe=t4(),HN=u4(),vfe=os(),gfe=bv(),yfe=QS(),bfe=lv(),L4=Wb(),Afe=iN(),xfe=c4(),wfe=p4(),Efe=g4(),QN=rv(),P4=DS(),CA=k4(),Tfe=O4()});var Ur=X(_=>{"use strict";Object.defineProperty(_,"__esModule",{value:!0});Object.defineProperty(_,"version",{enumerable:!0,get:function(){return M4.version}});Object.defineProperty(_,"versionInfo",{enumerable:!0,get:function(){return M4.versionInfo}});Object.defineProperty(_,"graphql",{enumerable:!0,get:function(){return I4.graphql}});Object.defineProperty(_,"graphqlSync",{enumerable:!0,get:function(){return I4.graphqlSync}});Object.defineProperty(_,"GraphQLSchema",{enumerable:!0,get:function(){return Ie.GraphQLSchema}});Object.defineProperty(_,"GraphQLDirective",{enumerable:!0,get:function(){return Ie.GraphQLDirective}});Object.defineProperty(_,"GraphQLScalarType",{enumerable:!0,get:function(){return Ie.GraphQLScalarType}});Object.defineProperty(_,"GraphQLObjectType",{enumerable:!0,get:function(){return Ie.GraphQLObjectType}});Object.defineProperty(_,"GraphQLInterfaceType",{enumerable:!0,get:function(){return Ie.GraphQLInterfaceType}});Object.defineProperty(_,"GraphQLUnionType",{enumerable:!0,get:function(){return Ie.GraphQLUnionType}});Object.defineProperty(_,"GraphQLEnumType",{enumerable:!0,get:function(){return Ie.GraphQLEnumType}});Object.defineProperty(_,"GraphQLInputObjectType",{enumerable:!0,get:function(){return Ie.GraphQLInputObjectType}});Object.defineProperty(_,"GraphQLList",{enumerable:!0,get:function(){return Ie.GraphQLList}});Object.defineProperty(_,"GraphQLNonNull",{enumerable:!0,get:function(){return Ie.GraphQLNonNull}});Object.defineProperty(_,"specifiedScalarTypes",{enumerable:!0,get:function(){return Ie.specifiedScalarTypes}});Object.defineProperty(_,"GraphQLInt",{enumerable:!0,get:function(){return Ie.GraphQLInt}});Object.defineProperty(_,"GraphQLFloat",{enumerable:!0,get:function(){return Ie.GraphQLFloat}});Object.defineProperty(_,"GraphQLString",{enumerable:!0,get:function(){return Ie.GraphQLString}});Object.defineProperty(_,"GraphQLBoolean",{enumerable:!0,get:function(){return Ie.GraphQLBoolean}});Object.defineProperty(_,"GraphQLID",{enumerable:!0,get:function(){return Ie.GraphQLID}});Object.defineProperty(_,"specifiedDirectives",{enumerable:!0,get:function(){return Ie.specifiedDirectives}});Object.defineProperty(_,"GraphQLIncludeDirective",{enumerable:!0,get:function(){return Ie.GraphQLIncludeDirective}});Object.defineProperty(_,"GraphQLSkipDirective",{enumerable:!0,get:function(){return Ie.GraphQLSkipDirective}});Object.defineProperty(_,"GraphQLDeprecatedDirective",{enumerable:!0,get:function(){return Ie.GraphQLDeprecatedDirective}});Object.defineProperty(_,"GraphQLSpecifiedByDirective",{enumerable:!0,get:function(){return Ie.GraphQLSpecifiedByDirective}});Object.defineProperty(_,"TypeKind",{enumerable:!0,get:function(){return Ie.TypeKind}});Object.defineProperty(_,"DEFAULT_DEPRECATION_REASON",{enumerable:!0,get:function(){return Ie.DEFAULT_DEPRECATION_REASON}});Object.defineProperty(_,"introspectionTypes",{enumerable:!0,get:function(){return Ie.introspectionTypes}});Object.defineProperty(_,"__Schema",{enumerable:!0,get:function(){return Ie.__Schema}});Object.defineProperty(_,"__Directive",{enumerable:!0,get:function(){return Ie.__Directive}});Object.defineProperty(_,"__DirectiveLocation",{enumerable:!0,get:function(){return Ie.__DirectiveLocation}});Object.defineProperty(_,"__Type",{enumerable:!0,get:function(){return Ie.__Type}});Object.defineProperty(_,"__Field",{enumerable:!0,get:function(){return Ie.__Field}});Object.defineProperty(_,"__InputValue",{enumerable:!0,get:function(){return Ie.__InputValue}});Object.defineProperty(_,"__EnumValue",{enumerable:!0,get:function(){return Ie.__EnumValue}});Object.defineProperty(_,"__TypeKind",{enumerable:!0,get:function(){return Ie.__TypeKind}});Object.defineProperty(_,"SchemaMetaFieldDef",{enumerable:!0,get:function(){return Ie.SchemaMetaFieldDef}});Object.defineProperty(_,"TypeMetaFieldDef",{enumerable:!0,get:function(){return Ie.TypeMetaFieldDef}});Object.defineProperty(_,"TypeNameMetaFieldDef",{enumerable:!0,get:function(){return Ie.TypeNameMetaFieldDef}});Object.defineProperty(_,"isSchema",{enumerable:!0,get:function(){return Ie.isSchema}});Object.defineProperty(_,"isDirective",{enumerable:!0,get:function(){return Ie.isDirective}});Object.defineProperty(_,"isType",{enumerable:!0,get:function(){return Ie.isType}});Object.defineProperty(_,"isScalarType",{enumerable:!0,get:function(){return Ie.isScalarType}});Object.defineProperty(_,"isObjectType",{enumerable:!0,get:function(){return Ie.isObjectType}});Object.defineProperty(_,"isInterfaceType",{enumerable:!0,get:function(){return Ie.isInterfaceType}});Object.defineProperty(_,"isUnionType",{enumerable:!0,get:function(){return Ie.isUnionType}});Object.defineProperty(_,"isEnumType",{enumerable:!0,get:function(){return Ie.isEnumType}});Object.defineProperty(_,"isInputObjectType",{enumerable:!0,get:function(){return Ie.isInputObjectType}});Object.defineProperty(_,"isListType",{enumerable:!0,get:function(){return Ie.isListType}});Object.defineProperty(_,"isNonNullType",{enumerable:!0,get:function(){return Ie.isNonNullType}});Object.defineProperty(_,"isInputType",{enumerable:!0,get:function(){return Ie.isInputType}});Object.defineProperty(_,"isOutputType",{enumerable:!0,get:function(){return Ie.isOutputType}});Object.defineProperty(_,"isLeafType",{enumerable:!0,get:function(){return Ie.isLeafType}});Object.defineProperty(_,"isCompositeType",{enumerable:!0,get:function(){return Ie.isCompositeType}});Object.defineProperty(_,"isAbstractType",{enumerable:!0,get:function(){return Ie.isAbstractType}});Object.defineProperty(_,"isWrappingType",{enumerable:!0,get:function(){return Ie.isWrappingType}});Object.defineProperty(_,"isNullableType",{enumerable:!0,get:function(){return Ie.isNullableType}});Object.defineProperty(_,"isNamedType",{enumerable:!0,get:function(){return Ie.isNamedType}});Object.defineProperty(_,"isRequiredArgument",{enumerable:!0,get:function(){return Ie.isRequiredArgument}});Object.defineProperty(_,"isRequiredInputField",{enumerable:!0,get:function(){return Ie.isRequiredInputField}});Object.defineProperty(_,"isSpecifiedScalarType",{enumerable:!0,get:function(){return Ie.isSpecifiedScalarType}});Object.defineProperty(_,"isIntrospectionType",{enumerable:!0,get:function(){return Ie.isIntrospectionType}});Object.defineProperty(_,"isSpecifiedDirective",{enumerable:!0,get:function(){return Ie.isSpecifiedDirective}});Object.defineProperty(_,"assertSchema",{enumerable:!0,get:function(){return Ie.assertSchema}});Object.defineProperty(_,"assertDirective",{enumerable:!0,get:function(){return Ie.assertDirective}});Object.defineProperty(_,"assertType",{enumerable:!0,get:function(){return Ie.assertType}});Object.defineProperty(_,"assertScalarType",{enumerable:!0,get:function(){return Ie.assertScalarType}});Object.defineProperty(_,"assertObjectType",{enumerable:!0,get:function(){return Ie.assertObjectType}});Object.defineProperty(_,"assertInterfaceType",{enumerable:!0,get:function(){return Ie.assertInterfaceType}});Object.defineProperty(_,"assertUnionType",{enumerable:!0,get:function(){return Ie.assertUnionType}});Object.defineProperty(_,"assertEnumType",{enumerable:!0,get:function(){return Ie.assertEnumType}});Object.defineProperty(_,"assertInputObjectType",{enumerable:!0,get:function(){return Ie.assertInputObjectType}});Object.defineProperty(_,"assertListType",{enumerable:!0,get:function(){return Ie.assertListType}});Object.defineProperty(_,"assertNonNullType",{enumerable:!0,get:function(){return Ie.assertNonNullType}});Object.defineProperty(_,"assertInputType",{enumerable:!0,get:function(){return Ie.assertInputType}});Object.defineProperty(_,"assertOutputType",{enumerable:!0,get:function(){return Ie.assertOutputType}});Object.defineProperty(_,"assertLeafType",{enumerable:!0,get:function(){return Ie.assertLeafType}});Object.defineProperty(_,"assertCompositeType",{enumerable:!0,get:function(){return Ie.assertCompositeType}});Object.defineProperty(_,"assertAbstractType",{enumerable:!0,get:function(){return Ie.assertAbstractType}});Object.defineProperty(_,"assertWrappingType",{enumerable:!0,get:function(){return Ie.assertWrappingType}});Object.defineProperty(_,"assertNullableType",{enumerable:!0,get:function(){return Ie.assertNullableType}});Object.defineProperty(_,"assertNamedType",{enumerable:!0,get:function(){return Ie.assertNamedType}});Object.defineProperty(_,"getNullableType",{enumerable:!0,get:function(){return Ie.getNullableType}});Object.defineProperty(_,"getNamedType",{enumerable:!0,get:function(){return Ie.getNamedType}});Object.defineProperty(_,"validateSchema",{enumerable:!0,get:function(){return Ie.validateSchema}});Object.defineProperty(_,"assertValidSchema",{enumerable:!0,get:function(){return Ie.assertValidSchema}});Object.defineProperty(_,"Token",{enumerable:!0,get:function(){return nr.Token}});Object.defineProperty(_,"Source",{enumerable:!0,get:function(){return nr.Source}});Object.defineProperty(_,"Location",{enumerable:!0,get:function(){return nr.Location}});Object.defineProperty(_,"getLocation",{enumerable:!0,get:function(){return nr.getLocation}});Object.defineProperty(_,"printLocation",{enumerable:!0,get:function(){return nr.printLocation}});Object.defineProperty(_,"printSourceLocation",{enumerable:!0,get:function(){return nr.printSourceLocation}});Object.defineProperty(_,"Lexer",{enumerable:!0,get:function(){return nr.Lexer}});Object.defineProperty(_,"TokenKind",{enumerable:!0,get:function(){return nr.TokenKind}});Object.defineProperty(_,"parse",{enumerable:!0,get:function(){return nr.parse}});Object.defineProperty(_,"parseValue",{enumerable:!0,get:function(){return nr.parseValue}});Object.defineProperty(_,"parseType",{enumerable:!0,get:function(){return nr.parseType}});Object.defineProperty(_,"print",{enumerable:!0,get:function(){return nr.print}});Object.defineProperty(_,"visit",{enumerable:!0,get:function(){return nr.visit}});Object.defineProperty(_,"visitInParallel",{enumerable:!0,get:function(){return nr.visitInParallel}});Object.defineProperty(_,"getVisitFn",{enumerable:!0,get:function(){return nr.getVisitFn}});Object.defineProperty(_,"BREAK",{enumerable:!0,get:function(){return nr.BREAK}});Object.defineProperty(_,"Kind",{enumerable:!0,get:function(){return nr.Kind}});Object.defineProperty(_,"DirectiveLocation",{enumerable:!0,get:function(){return nr.DirectiveLocation}});Object.defineProperty(_,"isDefinitionNode",{enumerable:!0,get:function(){return nr.isDefinitionNode}});Object.defineProperty(_,"isExecutableDefinitionNode",{enumerable:!0,get:function(){return nr.isExecutableDefinitionNode}});Object.defineProperty(_,"isSelectionNode",{enumerable:!0,get:function(){return nr.isSelectionNode}});Object.defineProperty(_,"isValueNode",{enumerable:!0,get:function(){return nr.isValueNode}});Object.defineProperty(_,"isTypeNode",{enumerable:!0,get:function(){return nr.isTypeNode}});Object.defineProperty(_,"isTypeSystemDefinitionNode",{enumerable:!0,get:function(){return nr.isTypeSystemDefinitionNode}});Object.defineProperty(_,"isTypeDefinitionNode",{enumerable:!0,get:function(){return nr.isTypeDefinitionNode}});Object.defineProperty(_,"isTypeSystemExtensionNode",{enumerable:!0,get:function(){return nr.isTypeSystemExtensionNode}});Object.defineProperty(_,"isTypeExtensionNode",{enumerable:!0,get:function(){return nr.isTypeExtensionNode}});Object.defineProperty(_,"execute",{enumerable:!0,get:function(){return cp.execute}});Object.defineProperty(_,"executeSync",{enumerable:!0,get:function(){return cp.executeSync}});Object.defineProperty(_,"defaultFieldResolver",{enumerable:!0,get:function(){return cp.defaultFieldResolver}});Object.defineProperty(_,"defaultTypeResolver",{enumerable:!0,get:function(){return cp.defaultTypeResolver}});Object.defineProperty(_,"responsePathAsArray",{enumerable:!0,get:function(){return cp.responsePathAsArray}});Object.defineProperty(_,"getDirectiveValues",{enumerable:!0,get:function(){return cp.getDirectiveValues}});Object.defineProperty(_,"subscribe",{enumerable:!0,get:function(){return F4.subscribe}});Object.defineProperty(_,"createSourceEventStream",{enumerable:!0,get:function(){return F4.createSourceEventStream}});Object.defineProperty(_,"validate",{enumerable:!0,get:function(){return St.validate}});Object.defineProperty(_,"ValidationContext",{enumerable:!0,get:function(){return St.ValidationContext}});Object.defineProperty(_,"specifiedRules",{enumerable:!0,get:function(){return St.specifiedRules}});Object.defineProperty(_,"ExecutableDefinitionsRule",{enumerable:!0,get:function(){return St.ExecutableDefinitionsRule}});Object.defineProperty(_,"FieldsOnCorrectTypeRule",{enumerable:!0,get:function(){return St.FieldsOnCorrectTypeRule}});Object.defineProperty(_,"FragmentsOnCompositeTypesRule",{enumerable:!0,get:function(){return St.FragmentsOnCompositeTypesRule}});Object.defineProperty(_,"KnownArgumentNamesRule",{enumerable:!0,get:function(){return St.KnownArgumentNamesRule}});Object.defineProperty(_,"KnownDirectivesRule",{enumerable:!0,get:function(){return St.KnownDirectivesRule}});Object.defineProperty(_,"KnownFragmentNamesRule",{enumerable:!0,get:function(){return St.KnownFragmentNamesRule}});Object.defineProperty(_,"KnownTypeNamesRule",{enumerable:!0,get:function(){return St.KnownTypeNamesRule}});Object.defineProperty(_,"LoneAnonymousOperationRule",{enumerable:!0,get:function(){return St.LoneAnonymousOperationRule}});Object.defineProperty(_,"NoFragmentCyclesRule",{enumerable:!0,get:function(){return St.NoFragmentCyclesRule}});Object.defineProperty(_,"NoUndefinedVariablesRule",{enumerable:!0,get:function(){return St.NoUndefinedVariablesRule}});Object.defineProperty(_,"NoUnusedFragmentsRule",{enumerable:!0,get:function(){return St.NoUnusedFragmentsRule}});Object.defineProperty(_,"NoUnusedVariablesRule",{enumerable:!0,get:function(){return St.NoUnusedVariablesRule}});Object.defineProperty(_,"OverlappingFieldsCanBeMergedRule",{enumerable:!0,get:function(){return St.OverlappingFieldsCanBeMergedRule}});Object.defineProperty(_,"PossibleFragmentSpreadsRule",{enumerable:!0,get:function(){return St.PossibleFragmentSpreadsRule}});Object.defineProperty(_,"ProvidedRequiredArgumentsRule",{enumerable:!0,get:function(){return St.ProvidedRequiredArgumentsRule}});Object.defineProperty(_,"ScalarLeafsRule",{enumerable:!0,get:function(){return St.ScalarLeafsRule}});Object.defineProperty(_,"SingleFieldSubscriptionsRule",{enumerable:!0,get:function(){return St.SingleFieldSubscriptionsRule}});Object.defineProperty(_,"UniqueArgumentNamesRule",{enumerable:!0,get:function(){return St.UniqueArgumentNamesRule}});Object.defineProperty(_,"UniqueDirectivesPerLocationRule",{enumerable:!0,get:function(){return St.UniqueDirectivesPerLocationRule}});Object.defineProperty(_,"UniqueFragmentNamesRule",{enumerable:!0,get:function(){return St.UniqueFragmentNamesRule}});Object.defineProperty(_,"UniqueInputFieldNamesRule",{enumerable:!0,get:function(){return St.UniqueInputFieldNamesRule}});Object.defineProperty(_,"UniqueOperationNamesRule",{enumerable:!0,get:function(){return St.UniqueOperationNamesRule}});Object.defineProperty(_,"UniqueVariableNamesRule",{enumerable:!0,get:function(){return St.UniqueVariableNamesRule}});Object.defineProperty(_,"ValuesOfCorrectTypeRule",{enumerable:!0,get:function(){return St.ValuesOfCorrectTypeRule}});Object.defineProperty(_,"VariablesAreInputTypesRule",{enumerable:!0,get:function(){return St.VariablesAreInputTypesRule}});Object.defineProperty(_,"VariablesInAllowedPositionRule",{enumerable:!0,get:function(){return St.VariablesInAllowedPositionRule}});Object.defineProperty(_,"LoneSchemaDefinitionRule",{enumerable:!0,get:function(){return St.LoneSchemaDefinitionRule}});Object.defineProperty(_,"UniqueOperationTypesRule",{enumerable:!0,get:function(){return St.UniqueOperationTypesRule}});Object.defineProperty(_,"UniqueTypeNamesRule",{enumerable:!0,get:function(){return St.UniqueTypeNamesRule}});Object.defineProperty(_,"UniqueEnumValueNamesRule",{enumerable:!0,get:function(){return St.UniqueEnumValueNamesRule}});Object.defineProperty(_,"UniqueFieldDefinitionNamesRule",{enumerable:!0,get:function(){return St.UniqueFieldDefinitionNamesRule}});Object.defineProperty(_,"UniqueDirectiveNamesRule",{enumerable:!0,get:function(){return St.UniqueDirectiveNamesRule}});Object.defineProperty(_,"PossibleTypeExtensionsRule",{enumerable:!0,get:function(){return St.PossibleTypeExtensionsRule}});Object.defineProperty(_,"NoDeprecatedCustomRule",{enumerable:!0,get:function(){return St.NoDeprecatedCustomRule}});Object.defineProperty(_,"NoSchemaIntrospectionCustomRule",{enumerable:!0,get:function(){return St.NoSchemaIntrospectionCustomRule}});Object.defineProperty(_,"GraphQLError",{enumerable:!0,get:function(){return qv.GraphQLError}});Object.defineProperty(_,"syntaxError",{enumerable:!0,get:function(){return qv.syntaxError}});Object.defineProperty(_,"locatedError",{enumerable:!0,get:function(){return qv.locatedError}});Object.defineProperty(_,"printError",{enumerable:!0,get:function(){return qv.printError}});Object.defineProperty(_,"formatError",{enumerable:!0,get:function(){return qv.formatError}});Object.defineProperty(_,"getIntrospectionQuery",{enumerable:!0,get:function(){return Mt.getIntrospectionQuery}});Object.defineProperty(_,"getOperationAST",{enumerable:!0,get:function(){return Mt.getOperationAST}});Object.defineProperty(_,"getOperationRootType",{enumerable:!0,get:function(){return Mt.getOperationRootType}});Object.defineProperty(_,"introspectionFromSchema",{enumerable:!0,get:function(){return Mt.introspectionFromSchema}});Object.defineProperty(_,"buildClientSchema",{enumerable:!0,get:function(){return Mt.buildClientSchema}});Object.defineProperty(_,"buildASTSchema",{enumerable:!0,get:function(){return Mt.buildASTSchema}});Object.defineProperty(_,"buildSchema",{enumerable:!0,get:function(){return Mt.buildSchema}});Object.defineProperty(_,"getDescription",{enumerable:!0,get:function(){return Mt.getDescription}});Object.defineProperty(_,"extendSchema",{enumerable:!0,get:function(){return Mt.extendSchema}});Object.defineProperty(_,"lexicographicSortSchema",{enumerable:!0,get:function(){return Mt.lexicographicSortSchema}});Object.defineProperty(_,"printSchema",{enumerable:!0,get:function(){return Mt.printSchema}});Object.defineProperty(_,"printType",{enumerable:!0,get:function(){return Mt.printType}});Object.defineProperty(_,"printIntrospectionSchema",{enumerable:!0,get:function(){return Mt.printIntrospectionSchema}});Object.defineProperty(_,"typeFromAST",{enumerable:!0,get:function(){return Mt.typeFromAST}});Object.defineProperty(_,"valueFromAST",{enumerable:!0,get:function(){return Mt.valueFromAST}});Object.defineProperty(_,"valueFromASTUntyped",{enumerable:!0,get:function(){return Mt.valueFromASTUntyped}});Object.defineProperty(_,"astFromValue",{enumerable:!0,get:function(){return Mt.astFromValue}});Object.defineProperty(_,"TypeInfo",{enumerable:!0,get:function(){return Mt.TypeInfo}});Object.defineProperty(_,"visitWithTypeInfo",{enumerable:!0,get:function(){return Mt.visitWithTypeInfo}});Object.defineProperty(_,"coerceInputValue",{enumerable:!0,get:function(){return Mt.coerceInputValue}});Object.defineProperty(_,"concatAST",{enumerable:!0,get:function(){return Mt.concatAST}});Object.defineProperty(_,"separateOperations",{enumerable:!0,get:function(){return Mt.separateOperations}});Object.defineProperty(_,"stripIgnoredCharacters",{enumerable:!0,get:function(){return Mt.stripIgnoredCharacters}});Object.defineProperty(_,"isEqualType",{enumerable:!0,get:function(){return Mt.isEqualType}});Object.defineProperty(_,"isTypeSubTypeOf",{enumerable:!0,get:function(){return Mt.isTypeSubTypeOf}});Object.defineProperty(_,"doTypesOverlap",{enumerable:!0,get:function(){return Mt.doTypesOverlap}});Object.defineProperty(_,"assertValidName",{enumerable:!0,get:function(){return Mt.assertValidName}});Object.defineProperty(_,"isValidNameError",{enumerable:!0,get:function(){return Mt.isValidNameError}});Object.defineProperty(_,"BreakingChangeType",{enumerable:!0,get:function(){return Mt.BreakingChangeType}});Object.defineProperty(_,"DangerousChangeType",{enumerable:!0,get:function(){return Mt.DangerousChangeType}});Object.defineProperty(_,"findBreakingChanges",{enumerable:!0,get:function(){return Mt.findBreakingChanges}});Object.defineProperty(_,"findDangerousChanges",{enumerable:!0,get:function(){return Mt.findDangerousChanges}});Object.defineProperty(_,"findDeprecatedUsages",{enumerable:!0,get:function(){return Mt.findDeprecatedUsages}});var M4=Z3(),I4=s8(),Ie=u8(),nr=d8(),cp=p8(),F4=k8(),St=N8(),qv=P8(),Mt=R4()});function _N(e){let t;return $N(e,r=>{switch(r.kind){case"Query":case"ShortQuery":case"Mutation":case"Subscription":case"FragmentDefinition":t=r;break}}),t}function NA(e,t,r){return r===xa.SchemaMetaFieldDef.name&&e.getQueryType()===t?xa.SchemaMetaFieldDef:r===xa.TypeMetaFieldDef.name&&e.getQueryType()===t?xa.TypeMetaFieldDef:r===xa.TypeNameMetaFieldDef.name&&(0,xa.isCompositeType)(t)?xa.TypeNameMetaFieldDef:"getFields"in t?t.getFields()[r]:null}function $N(e,t){let r=[],n=e;for(;n?.kind;)r.push(n),n=n.prevState;for(let i=r.length-1;i>=0;i--)t(r[i])}function pu(e){let t=Object.keys(e),r=t.length,n=new Array(r);for(let i=0;i!n.isDeprecated);let r=e.map(n=>({proximity:Ffe(Q4(n.label),t),entry:n}));return JN(JN(r,n=>n.proximity<=2),n=>!n.entry.isDeprecated).sort((n,i)=>(n.entry.isDeprecated?1:0)-(i.entry.isDeprecated?1:0)||n.proximity-i.proximity||n.entry.label.length-i.entry.label.length).map(n=>n.entry)}function JN(e,t){let r=e.filter(t);return r.length===0?e:r}function Q4(e){return e.toLowerCase().replaceAll(/\W/g,"")}function Ffe(e,t){let r=qfe(t,e);return e.length>t.length&&(r-=e.length-t.length-1,r+=e.indexOf(t)===0?0:.5),r}function qfe(e,t){let r,n,i=[],o=e.length,s=t.length;for(r=0;r<=o;r++)i[r]=[r];for(n=1;n<=s;n++)i[0][n]=n;for(r=1;r<=o;r++)for(n=1;n<=s;n++){let l=e[r-1]===t[n-1]?0:1;i[r][n]=Math.min(i[r-1][n]+1,i[r][n-1]+1,i[r-1][n-1]+l),r>1&&n>1&&e[r-1]===t[n-2]&&e[r-2]===t[n-1]&&(i[r][n]=Math.min(i[r][n],i[r-2][n-2]+l))}return i[o][s]}var xa,eD=at(()=>{xa=fe(Ur())});var W4,tD,Y4,DA,wa,Yr,LA,K4,rD,X4,Z4,J4,_4,nD,$4,e6,t6,PA,pp,mp,iD,hp,r6,oD,aD,sD,lD,uD,n6,i6,cD,o6,fD,Vv,a6,Uv,s6,l6,u6,c6,f6,d6,RA,p6,m6,h6,v6,g6,y6,b6,A6,x6,w6,E6,MA,T6,C6,S6,k6,O6,N6,D6,L6,P6,R6,M6,I6,F6,dD,pD,q6,j6,V6,U6,B6,G6,z6,H6,Q6,mD,ne,W6=at(()=>{"use strict";(function(e){function t(r){return typeof r=="string"}e.is=t})(W4||(W4={}));(function(e){function t(r){return typeof r=="string"}e.is=t})(tD||(tD={}));(function(e){e.MIN_VALUE=-2147483648,e.MAX_VALUE=2147483647;function t(r){return typeof r=="number"&&e.MIN_VALUE<=r&&r<=e.MAX_VALUE}e.is=t})(Y4||(Y4={}));(function(e){e.MIN_VALUE=0,e.MAX_VALUE=2147483647;function t(r){return typeof r=="number"&&e.MIN_VALUE<=r&&r<=e.MAX_VALUE}e.is=t})(DA||(DA={}));(function(e){function t(n,i){return n===Number.MAX_VALUE&&(n=DA.MAX_VALUE),i===Number.MAX_VALUE&&(i=DA.MAX_VALUE),{line:n,character:i}}e.create=t;function r(n){let i=n;return ne.objectLiteral(i)&&ne.uinteger(i.line)&&ne.uinteger(i.character)}e.is=r})(wa||(wa={}));(function(e){function t(n,i,o,s){if(ne.uinteger(n)&&ne.uinteger(i)&&ne.uinteger(o)&&ne.uinteger(s))return{start:wa.create(n,i),end:wa.create(o,s)};if(wa.is(n)&&wa.is(i))return{start:n,end:i};throw new Error(`Range#create called with invalid arguments[${n}, ${i}, ${o}, ${s}]`)}e.create=t;function r(n){let i=n;return ne.objectLiteral(i)&&wa.is(i.start)&&wa.is(i.end)}e.is=r})(Yr||(Yr={}));(function(e){function t(n,i){return{uri:n,range:i}}e.create=t;function r(n){let i=n;return ne.objectLiteral(i)&&Yr.is(i.range)&&(ne.string(i.uri)||ne.undefined(i.uri))}e.is=r})(LA||(LA={}));(function(e){function t(n,i,o,s){return{targetUri:n,targetRange:i,targetSelectionRange:o,originSelectionRange:s}}e.create=t;function r(n){let i=n;return ne.objectLiteral(i)&&Yr.is(i.targetRange)&&ne.string(i.targetUri)&&Yr.is(i.targetSelectionRange)&&(Yr.is(i.originSelectionRange)||ne.undefined(i.originSelectionRange))}e.is=r})(K4||(K4={}));(function(e){function t(n,i,o,s){return{red:n,green:i,blue:o,alpha:s}}e.create=t;function r(n){let i=n;return ne.objectLiteral(i)&&ne.numberRange(i.red,0,1)&&ne.numberRange(i.green,0,1)&&ne.numberRange(i.blue,0,1)&&ne.numberRange(i.alpha,0,1)}e.is=r})(rD||(rD={}));(function(e){function t(n,i){return{range:n,color:i}}e.create=t;function r(n){let i=n;return ne.objectLiteral(i)&&Yr.is(i.range)&&rD.is(i.color)}e.is=r})(X4||(X4={}));(function(e){function t(n,i,o){return{label:n,textEdit:i,additionalTextEdits:o}}e.create=t;function r(n){let i=n;return ne.objectLiteral(i)&&ne.string(i.label)&&(ne.undefined(i.textEdit)||mp.is(i))&&(ne.undefined(i.additionalTextEdits)||ne.typedArray(i.additionalTextEdits,mp.is))}e.is=r})(Z4||(Z4={}));(function(e){e.Comment="comment",e.Imports="imports",e.Region="region"})(J4||(J4={}));(function(e){function t(n,i,o,s,l,c){let f={startLine:n,endLine:i};return ne.defined(o)&&(f.startCharacter=o),ne.defined(s)&&(f.endCharacter=s),ne.defined(l)&&(f.kind=l),ne.defined(c)&&(f.collapsedText=c),f}e.create=t;function r(n){let i=n;return ne.objectLiteral(i)&&ne.uinteger(i.startLine)&&ne.uinteger(i.startLine)&&(ne.undefined(i.startCharacter)||ne.uinteger(i.startCharacter))&&(ne.undefined(i.endCharacter)||ne.uinteger(i.endCharacter))&&(ne.undefined(i.kind)||ne.string(i.kind))}e.is=r})(_4||(_4={}));(function(e){function t(n,i){return{location:n,message:i}}e.create=t;function r(n){let i=n;return ne.defined(i)&&LA.is(i.location)&&ne.string(i.message)}e.is=r})(nD||(nD={}));(function(e){e.Error=1,e.Warning=2,e.Information=3,e.Hint=4})($4||($4={}));(function(e){e.Unnecessary=1,e.Deprecated=2})(e6||(e6={}));(function(e){function t(r){let n=r;return ne.objectLiteral(n)&&ne.string(n.href)}e.is=t})(t6||(t6={}));(function(e){function t(n,i,o,s,l,c){let f={range:n,message:i};return ne.defined(o)&&(f.severity=o),ne.defined(s)&&(f.code=s),ne.defined(l)&&(f.source=l),ne.defined(c)&&(f.relatedInformation=c),f}e.create=t;function r(n){var i;let o=n;return ne.defined(o)&&Yr.is(o.range)&&ne.string(o.message)&&(ne.number(o.severity)||ne.undefined(o.severity))&&(ne.integer(o.code)||ne.string(o.code)||ne.undefined(o.code))&&(ne.undefined(o.codeDescription)||ne.string((i=o.codeDescription)===null||i===void 0?void 0:i.href))&&(ne.string(o.source)||ne.undefined(o.source))&&(ne.undefined(o.relatedInformation)||ne.typedArray(o.relatedInformation,nD.is))}e.is=r})(PA||(PA={}));(function(e){function t(n,i,...o){let s={title:n,command:i};return ne.defined(o)&&o.length>0&&(s.arguments=o),s}e.create=t;function r(n){let i=n;return ne.defined(i)&&ne.string(i.title)&&ne.string(i.command)}e.is=r})(pp||(pp={}));(function(e){function t(o,s){return{range:o,newText:s}}e.replace=t;function r(o,s){return{range:{start:o,end:o},newText:s}}e.insert=r;function n(o){return{range:o,newText:""}}e.del=n;function i(o){let s=o;return ne.objectLiteral(s)&&ne.string(s.newText)&&Yr.is(s.range)}e.is=i})(mp||(mp={}));(function(e){function t(n,i,o){let s={label:n};return i!==void 0&&(s.needsConfirmation=i),o!==void 0&&(s.description=o),s}e.create=t;function r(n){let i=n;return ne.objectLiteral(i)&&ne.string(i.label)&&(ne.boolean(i.needsConfirmation)||i.needsConfirmation===void 0)&&(ne.string(i.description)||i.description===void 0)}e.is=r})(iD||(iD={}));(function(e){function t(r){let n=r;return ne.string(n)}e.is=t})(hp||(hp={}));(function(e){function t(o,s,l){return{range:o,newText:s,annotationId:l}}e.replace=t;function r(o,s,l){return{range:{start:o,end:o},newText:s,annotationId:l}}e.insert=r;function n(o,s){return{range:o,newText:"",annotationId:s}}e.del=n;function i(o){let s=o;return mp.is(s)&&(iD.is(s.annotationId)||hp.is(s.annotationId))}e.is=i})(r6||(r6={}));(function(e){function t(n,i){return{textDocument:n,edits:i}}e.create=t;function r(n){let i=n;return ne.defined(i)&&cD.is(i.textDocument)&&Array.isArray(i.edits)}e.is=r})(oD||(oD={}));(function(e){function t(n,i,o){let s={kind:"create",uri:n};return i!==void 0&&(i.overwrite!==void 0||i.ignoreIfExists!==void 0)&&(s.options=i),o!==void 0&&(s.annotationId=o),s}e.create=t;function r(n){let i=n;return i&&i.kind==="create"&&ne.string(i.uri)&&(i.options===void 0||(i.options.overwrite===void 0||ne.boolean(i.options.overwrite))&&(i.options.ignoreIfExists===void 0||ne.boolean(i.options.ignoreIfExists)))&&(i.annotationId===void 0||hp.is(i.annotationId))}e.is=r})(aD||(aD={}));(function(e){function t(n,i,o,s){let l={kind:"rename",oldUri:n,newUri:i};return o!==void 0&&(o.overwrite!==void 0||o.ignoreIfExists!==void 0)&&(l.options=o),s!==void 0&&(l.annotationId=s),l}e.create=t;function r(n){let i=n;return i&&i.kind==="rename"&&ne.string(i.oldUri)&&ne.string(i.newUri)&&(i.options===void 0||(i.options.overwrite===void 0||ne.boolean(i.options.overwrite))&&(i.options.ignoreIfExists===void 0||ne.boolean(i.options.ignoreIfExists)))&&(i.annotationId===void 0||hp.is(i.annotationId))}e.is=r})(sD||(sD={}));(function(e){function t(n,i,o){let s={kind:"delete",uri:n};return i!==void 0&&(i.recursive!==void 0||i.ignoreIfNotExists!==void 0)&&(s.options=i),o!==void 0&&(s.annotationId=o),s}e.create=t;function r(n){let i=n;return i&&i.kind==="delete"&&ne.string(i.uri)&&(i.options===void 0||(i.options.recursive===void 0||ne.boolean(i.options.recursive))&&(i.options.ignoreIfNotExists===void 0||ne.boolean(i.options.ignoreIfNotExists)))&&(i.annotationId===void 0||hp.is(i.annotationId))}e.is=r})(lD||(lD={}));(function(e){function t(r){let n=r;return n&&(n.changes!==void 0||n.documentChanges!==void 0)&&(n.documentChanges===void 0||n.documentChanges.every(i=>ne.string(i.kind)?aD.is(i)||sD.is(i)||lD.is(i):oD.is(i)))}e.is=t})(uD||(uD={}));(function(e){function t(n){return{uri:n}}e.create=t;function r(n){let i=n;return ne.defined(i)&&ne.string(i.uri)}e.is=r})(n6||(n6={}));(function(e){function t(n,i){return{uri:n,version:i}}e.create=t;function r(n){let i=n;return ne.defined(i)&&ne.string(i.uri)&&ne.integer(i.version)}e.is=r})(i6||(i6={}));(function(e){function t(n,i){return{uri:n,version:i}}e.create=t;function r(n){let i=n;return ne.defined(i)&&ne.string(i.uri)&&(i.version===null||ne.integer(i.version))}e.is=r})(cD||(cD={}));(function(e){function t(n,i,o,s){return{uri:n,languageId:i,version:o,text:s}}e.create=t;function r(n){let i=n;return ne.defined(i)&&ne.string(i.uri)&&ne.string(i.languageId)&&ne.integer(i.version)&&ne.string(i.text)}e.is=r})(o6||(o6={}));(function(e){e.PlainText="plaintext",e.Markdown="markdown";function t(r){let n=r;return n===e.PlainText||n===e.Markdown}e.is=t})(fD||(fD={}));(function(e){function t(r){let n=r;return ne.objectLiteral(r)&&fD.is(n.kind)&&ne.string(n.value)}e.is=t})(Vv||(Vv={}));(function(e){e.Text=1,e.Method=2,e.Function=3,e.Constructor=4,e.Field=5,e.Variable=6,e.Class=7,e.Interface=8,e.Module=9,e.Property=10,e.Unit=11,e.Value=12,e.Enum=13,e.Keyword=14,e.Snippet=15,e.Color=16,e.File=17,e.Reference=18,e.Folder=19,e.EnumMember=20,e.Constant=21,e.Struct=22,e.Event=23,e.Operator=24,e.TypeParameter=25})(a6||(a6={}));(function(e){e.PlainText=1,e.Snippet=2})(Uv||(Uv={}));(function(e){e.Deprecated=1})(s6||(s6={}));(function(e){function t(n,i,o){return{newText:n,insert:i,replace:o}}e.create=t;function r(n){let i=n;return i&&ne.string(i.newText)&&Yr.is(i.insert)&&Yr.is(i.replace)}e.is=r})(l6||(l6={}));(function(e){e.asIs=1,e.adjustIndentation=2})(u6||(u6={}));(function(e){function t(r){let n=r;return n&&(ne.string(n.detail)||n.detail===void 0)&&(ne.string(n.description)||n.description===void 0)}e.is=t})(c6||(c6={}));(function(e){function t(r){return{label:r}}e.create=t})(f6||(f6={}));(function(e){function t(r,n){return{items:r||[],isIncomplete:!!n}}e.create=t})(d6||(d6={}));(function(e){function t(n){return n.replace(/[\\`*_{}[\]()#+\-.!]/g,"\\$&")}e.fromPlainText=t;function r(n){let i=n;return ne.string(i)||ne.objectLiteral(i)&&ne.string(i.language)&&ne.string(i.value)}e.is=r})(RA||(RA={}));(function(e){function t(r){let n=r;return!!n&&ne.objectLiteral(n)&&(Vv.is(n.contents)||RA.is(n.contents)||ne.typedArray(n.contents,RA.is))&&(r.range===void 0||Yr.is(r.range))}e.is=t})(p6||(p6={}));(function(e){function t(r,n){return n?{label:r,documentation:n}:{label:r}}e.create=t})(m6||(m6={}));(function(e){function t(r,n,...i){let o={label:r};return ne.defined(n)&&(o.documentation=n),ne.defined(i)?o.parameters=i:o.parameters=[],o}e.create=t})(h6||(h6={}));(function(e){e.Text=1,e.Read=2,e.Write=3})(v6||(v6={}));(function(e){function t(r,n){let i={range:r};return ne.number(n)&&(i.kind=n),i}e.create=t})(g6||(g6={}));(function(e){e.File=1,e.Module=2,e.Namespace=3,e.Package=4,e.Class=5,e.Method=6,e.Property=7,e.Field=8,e.Constructor=9,e.Enum=10,e.Interface=11,e.Function=12,e.Variable=13,e.Constant=14,e.String=15,e.Number=16,e.Boolean=17,e.Array=18,e.Object=19,e.Key=20,e.Null=21,e.EnumMember=22,e.Struct=23,e.Event=24,e.Operator=25,e.TypeParameter=26})(y6||(y6={}));(function(e){e.Deprecated=1})(b6||(b6={}));(function(e){function t(r,n,i,o,s){let l={name:r,kind:n,location:{uri:o,range:i}};return s&&(l.containerName=s),l}e.create=t})(A6||(A6={}));(function(e){function t(r,n,i,o){return o!==void 0?{name:r,kind:n,location:{uri:i,range:o}}:{name:r,kind:n,location:{uri:i}}}e.create=t})(x6||(x6={}));(function(e){function t(n,i,o,s,l,c){let f={name:n,detail:i,kind:o,range:s,selectionRange:l};return c!==void 0&&(f.children=c),f}e.create=t;function r(n){let i=n;return i&&ne.string(i.name)&&ne.number(i.kind)&&Yr.is(i.range)&&Yr.is(i.selectionRange)&&(i.detail===void 0||ne.string(i.detail))&&(i.deprecated===void 0||ne.boolean(i.deprecated))&&(i.children===void 0||Array.isArray(i.children))&&(i.tags===void 0||Array.isArray(i.tags))}e.is=r})(w6||(w6={}));(function(e){e.Empty="",e.QuickFix="quickfix",e.Refactor="refactor",e.RefactorExtract="refactor.extract",e.RefactorInline="refactor.inline",e.RefactorRewrite="refactor.rewrite",e.Source="source",e.SourceOrganizeImports="source.organizeImports",e.SourceFixAll="source.fixAll"})(E6||(E6={}));(function(e){e.Invoked=1,e.Automatic=2})(MA||(MA={}));(function(e){function t(n,i,o){let s={diagnostics:n};return i!=null&&(s.only=i),o!=null&&(s.triggerKind=o),s}e.create=t;function r(n){let i=n;return ne.defined(i)&&ne.typedArray(i.diagnostics,PA.is)&&(i.only===void 0||ne.typedArray(i.only,ne.string))&&(i.triggerKind===void 0||i.triggerKind===MA.Invoked||i.triggerKind===MA.Automatic)}e.is=r})(T6||(T6={}));(function(e){function t(n,i,o){let s={title:n},l=!0;return typeof i=="string"?(l=!1,s.kind=i):pp.is(i)?s.command=i:s.edit=i,l&&o!==void 0&&(s.kind=o),s}e.create=t;function r(n){let i=n;return i&&ne.string(i.title)&&(i.diagnostics===void 0||ne.typedArray(i.diagnostics,PA.is))&&(i.kind===void 0||ne.string(i.kind))&&(i.edit!==void 0||i.command!==void 0)&&(i.command===void 0||pp.is(i.command))&&(i.isPreferred===void 0||ne.boolean(i.isPreferred))&&(i.edit===void 0||uD.is(i.edit))}e.is=r})(C6||(C6={}));(function(e){function t(n,i){let o={range:n};return ne.defined(i)&&(o.data=i),o}e.create=t;function r(n){let i=n;return ne.defined(i)&&Yr.is(i.range)&&(ne.undefined(i.command)||pp.is(i.command))}e.is=r})(S6||(S6={}));(function(e){function t(n,i){return{tabSize:n,insertSpaces:i}}e.create=t;function r(n){let i=n;return ne.defined(i)&&ne.uinteger(i.tabSize)&&ne.boolean(i.insertSpaces)}e.is=r})(k6||(k6={}));(function(e){function t(n,i,o){return{range:n,target:i,data:o}}e.create=t;function r(n){let i=n;return ne.defined(i)&&Yr.is(i.range)&&(ne.undefined(i.target)||ne.string(i.target))}e.is=r})(O6||(O6={}));(function(e){function t(n,i){return{range:n,parent:i}}e.create=t;function r(n){let i=n;return ne.objectLiteral(i)&&Yr.is(i.range)&&(i.parent===void 0||e.is(i.parent))}e.is=r})(N6||(N6={}));(function(e){e.namespace="namespace",e.type="type",e.class="class",e.enum="enum",e.interface="interface",e.struct="struct",e.typeParameter="typeParameter",e.parameter="parameter",e.variable="variable",e.property="property",e.enumMember="enumMember",e.event="event",e.function="function",e.method="method",e.macro="macro",e.keyword="keyword",e.modifier="modifier",e.comment="comment",e.string="string",e.number="number",e.regexp="regexp",e.operator="operator",e.decorator="decorator"})(D6||(D6={}));(function(e){e.declaration="declaration",e.definition="definition",e.readonly="readonly",e.static="static",e.deprecated="deprecated",e.abstract="abstract",e.async="async",e.modification="modification",e.documentation="documentation",e.defaultLibrary="defaultLibrary"})(L6||(L6={}));(function(e){function t(r){let n=r;return ne.objectLiteral(n)&&(n.resultId===void 0||typeof n.resultId=="string")&&Array.isArray(n.data)&&(n.data.length===0||typeof n.data[0]=="number")}e.is=t})(P6||(P6={}));(function(e){function t(n,i){return{range:n,text:i}}e.create=t;function r(n){let i=n;return i!=null&&Yr.is(i.range)&&ne.string(i.text)}e.is=r})(R6||(R6={}));(function(e){function t(n,i,o){return{range:n,variableName:i,caseSensitiveLookup:o}}e.create=t;function r(n){let i=n;return i!=null&&Yr.is(i.range)&&ne.boolean(i.caseSensitiveLookup)&&(ne.string(i.variableName)||i.variableName===void 0)}e.is=r})(M6||(M6={}));(function(e){function t(n,i){return{range:n,expression:i}}e.create=t;function r(n){let i=n;return i!=null&&Yr.is(i.range)&&(ne.string(i.expression)||i.expression===void 0)}e.is=r})(I6||(I6={}));(function(e){function t(n,i){return{frameId:n,stoppedLocation:i}}e.create=t;function r(n){let i=n;return ne.defined(i)&&Yr.is(n.stoppedLocation)}e.is=r})(F6||(F6={}));(function(e){e.Type=1,e.Parameter=2;function t(r){return r===1||r===2}e.is=t})(dD||(dD={}));(function(e){function t(n){return{value:n}}e.create=t;function r(n){let i=n;return ne.objectLiteral(i)&&(i.tooltip===void 0||ne.string(i.tooltip)||Vv.is(i.tooltip))&&(i.location===void 0||LA.is(i.location))&&(i.command===void 0||pp.is(i.command))}e.is=r})(pD||(pD={}));(function(e){function t(n,i,o){let s={position:n,label:i};return o!==void 0&&(s.kind=o),s}e.create=t;function r(n){let i=n;return ne.objectLiteral(i)&&wa.is(i.position)&&(ne.string(i.label)||ne.typedArray(i.label,pD.is))&&(i.kind===void 0||dD.is(i.kind))&&i.textEdits===void 0||ne.typedArray(i.textEdits,mp.is)&&(i.tooltip===void 0||ne.string(i.tooltip)||Vv.is(i.tooltip))&&(i.paddingLeft===void 0||ne.boolean(i.paddingLeft))&&(i.paddingRight===void 0||ne.boolean(i.paddingRight))}e.is=r})(q6||(q6={}));(function(e){function t(r){return{kind:"snippet",value:r}}e.createSnippet=t})(j6||(j6={}));(function(e){function t(r,n,i,o){return{insertText:r,filterText:n,range:i,command:o}}e.create=t})(V6||(V6={}));(function(e){function t(r){return{items:r}}e.create=t})(U6||(U6={}));(function(e){e.Invoked=0,e.Automatic=1})(B6||(B6={}));(function(e){function t(r,n){return{range:r,text:n}}e.create=t})(G6||(G6={}));(function(e){function t(r,n){return{triggerKind:r,selectedCompletionInfo:n}}e.create=t})(z6||(z6={}));(function(e){function t(r){let n=r;return ne.objectLiteral(n)&&tD.is(n.uri)&&ne.string(n.name)}e.is=t})(H6||(H6={}));(function(e){function t(o,s,l,c){return new mD(o,s,l,c)}e.create=t;function r(o){let s=o;return!!(ne.defined(s)&&ne.string(s.uri)&&(ne.undefined(s.languageId)||ne.string(s.languageId))&&ne.uinteger(s.lineCount)&&ne.func(s.getText)&&ne.func(s.positionAt)&&ne.func(s.offsetAt))}e.is=r;function n(o,s){let l=o.getText(),c=i(s,(m,v)=>{let g=m.range.start.line-v.range.start.line;return g===0?m.range.start.character-v.range.start.character:g}),f=l.length;for(let m=c.length-1;m>=0;m--){let v=c[m],g=o.offsetAt(v.range.start),y=o.offsetAt(v.range.end);if(y<=f)l=l.substring(0,g)+v.newText+l.substring(y,l.length);else throw new Error("Overlapping edit");f=g}return l}e.applyEdits=n;function i(o,s){if(o.length<=1)return o;let l=o.length/2|0,c=o.slice(0,l),f=o.slice(l);i(c,s),i(f,s);let m=0,v=0,g=0;for(;m0&&t.push(r.length),this._lineOffsets=t}return this._lineOffsets}positionAt(t){t=Math.max(Math.min(t,this._content.length),0);let r=this.getLineOffsets(),n=0,i=r.length;if(i===0)return wa.create(0,t);for(;nt?i=s:n=s+1}let o=n-1;return wa.create(o,t-r[o])}offsetAt(t){let r=this.getLineOffsets();if(t.line>=r.length)return this._content.length;if(t.line<0)return 0;let n=r[t.line],i=t.line+1"u"}e.undefined=n;function i(y){return y===!0||y===!1}e.boolean=i;function o(y){return t.call(y)==="[object String]"}e.string=o;function s(y){return t.call(y)==="[object Number]"}e.number=s;function l(y,w,T){return t.call(y)==="[object Number]"&&w<=y&&y<=T}e.numberRange=l;function c(y){return t.call(y)==="[object Number]"&&-2147483648<=y&&y<=2147483647}e.integer=c;function f(y){return t.call(y)==="[object Number]"&&0<=y&&y<=2147483647}e.uinteger=f;function m(y){return t.call(y)==="[object Function]"}e.func=m;function v(y){return y!==null&&typeof y=="object"}e.objectLiteral=v;function g(y,w){return Array.isArray(y)&&y.every(w)}e.typedArray=g})(ne||(ne={}))});var At,hD=at(()=>{W6();(function(e){e.Text=1,e.Method=2,e.Function=3,e.Constructor=4,e.Field=5,e.Variable=6,e.Class=7,e.Interface=8,e.Module=9,e.Property=10,e.Unit=11,e.Value=12,e.Enum=13,e.Keyword=14,e.Snippet=15,e.Color=16,e.File=17,e.Reference=18,e.Folder=19,e.EnumMember=20,e.Constant=21,e.Struct=22,e.Event=23,e.Operator=24,e.TypeParameter=25})(At||(At={}))});var cs,Y6=at(()=>{cs=class{constructor(t){this._start=0,this._pos=0,this.getStartOfToken=()=>this._start,this.getCurrentPosition=()=>this._pos,this.eol=()=>this._sourceText.length===this._pos,this.sol=()=>this._pos===0,this.peek=()=>this._sourceText.charAt(this._pos)||null,this.next=()=>{let r=this._sourceText.charAt(this._pos);return this._pos++,r},this.eat=r=>{if(this._testNextCharacter(r))return this._start=this._pos,this._pos++,this._sourceText.charAt(this._pos-1)},this.eatWhile=r=>{let n=this._testNextCharacter(r),i=!1;for(n&&(i=n,this._start=this._pos);n;)this._pos++,n=this._testNextCharacter(r),i=!0;return i},this.eatSpace=()=>this.eatWhile(/[\s\u00a0]/),this.skipToEnd=()=>{this._pos=this._sourceText.length},this.skipTo=r=>{this._pos=r},this.match=(r,n=!0,i=!1)=>{let o=null,s=null;return typeof r=="string"?(s=new RegExp(r,i?"i":"g").test(this._sourceText.slice(this._pos,this._pos+r.length)),o=r):r instanceof RegExp&&(s=this._sourceText.slice(this._pos).match(r),o=s?.[0]),s!=null&&(typeof r=="string"||s instanceof Array&&this._sourceText.startsWith(s[0],this._pos))?(n&&(this._start=this._pos,o&&o.length&&(this._pos+=o.length)),s):!1},this.backUp=r=>{this._pos-=r},this.column=()=>this._pos,this.indentation=()=>{let r=this._sourceText.match(/\s*/),n=0;if(r&&r.length!==0){let i=r[0],o=0;for(;i.length>o;)i.charCodeAt(o)===9?n+=2:n++,o++}return n},this.current=()=>this._sourceText.slice(this._start,this._pos),this._sourceText=t}_testNextCharacter(t){let r=this._sourceText.charAt(this._pos),n=!1;return typeof t=="string"?n=r===t:n=t instanceof RegExp?t.test(r):t(r),n}}});function er(e){return{ofRule:e}}function gt(e,t){return{ofRule:e,isList:!0,separator:t}}function vD(e,t){let r=e.match;return e.match=n=>{let i=!1;return r&&(i=r(n)),i&&t.every(o=>o.match&&!o.match(n))},e}function Dn(e,t){return{style:t,match:r=>r.kind===e}}function ze(e,t){return{style:t||"punctuation",match:r=>r.kind==="Punctuation"&&r.value===e}}var gD=at(()=>{});function Qn(e){return{style:"keyword",match:t=>t.kind==="Name"&&t.value===e}}function ar(e){return{style:e,match:t=>t.kind==="Name",update(t,r){t.name=r.value}}}function jfe(e){return{style:e,match:t=>t.kind==="Name",update(t,r){var n;!((n=t.prevState)===null||n===void 0)&&n.prevState&&(t.name=r.value,t.prevState.prevState.type=r.value)}}}var ui,vp,gp,yp,yD=at(()=>{gD();ui=fe(Ur()),vp=e=>e===" "||e===" "||e===","||e===` -`||e==="\r"||e==="\uFEFF"||e==="\xA0",gp={Name:/^[_A-Za-z][_0-9A-Za-z]*/,Punctuation:/^(?:!|\$|\(|\)|\.\.\.|:|=|&|@|\[|]|\{|\||\})/,Number:/^-?(?:0|(?:[1-9][0-9]*))(?:\.[0-9]*)?(?:[eE][+-]?[0-9]+)?/,String:/^(?:"""(?:\\"""|[^"]|"[^"]|""[^"])*(?:""")?|"(?:[^"\\]|\\(?:"|\/|\\|b|f|n|r|t|u[0-9a-fA-F]{4}))*"?)/,Comment:/^#.*/},yp={Document:[gt("Definition")],Definition(e){switch(e.value){case"{":return"ShortQuery";case"query":return"Query";case"mutation":return"Mutation";case"subscription":return"Subscription";case"fragment":return ui.Kind.FRAGMENT_DEFINITION;case"schema":return"SchemaDef";case"scalar":return"ScalarDef";case"type":return"ObjectTypeDef";case"interface":return"InterfaceDef";case"union":return"UnionDef";case"enum":return"EnumDef";case"input":return"InputDef";case"extend":return"ExtendDef";case"directive":return"DirectiveDef"}},ShortQuery:["SelectionSet"],Query:[Qn("query"),er(ar("def")),er("VariableDefinitions"),gt("Directive"),"SelectionSet"],Mutation:[Qn("mutation"),er(ar("def")),er("VariableDefinitions"),gt("Directive"),"SelectionSet"],Subscription:[Qn("subscription"),er(ar("def")),er("VariableDefinitions"),gt("Directive"),"SelectionSet"],VariableDefinitions:[ze("("),gt("VariableDefinition"),ze(")")],VariableDefinition:["Variable",ze(":"),"Type",er("DefaultValue")],Variable:[ze("$","variable"),ar("variable")],DefaultValue:[ze("="),"Value"],SelectionSet:[ze("{"),gt("Selection"),ze("}")],Selection(e,t){return e.value==="..."?t.match(/[\s\u00a0,]*(on\b|@|{)/,!1)?"InlineFragment":"FragmentSpread":t.match(/[\s\u00a0,]*:/,!1)?"AliasedField":"Field"},AliasedField:[ar("property"),ze(":"),ar("qualifier"),er("Arguments"),gt("Directive"),er("SelectionSet")],Field:[ar("property"),er("Arguments"),gt("Directive"),er("SelectionSet")],Arguments:[ze("("),gt("Argument"),ze(")")],Argument:[ar("attribute"),ze(":"),"Value"],FragmentSpread:[ze("..."),ar("def"),gt("Directive")],InlineFragment:[ze("..."),er("TypeCondition"),gt("Directive"),"SelectionSet"],FragmentDefinition:[Qn("fragment"),er(vD(ar("def"),[Qn("on")])),"TypeCondition",gt("Directive"),"SelectionSet"],TypeCondition:[Qn("on"),"NamedType"],Value(e){switch(e.kind){case"Number":return"NumberValue";case"String":return"StringValue";case"Punctuation":switch(e.value){case"[":return"ListValue";case"{":return"ObjectValue";case"$":return"Variable";case"&":return"NamedType"}return null;case"Name":switch(e.value){case"true":case"false":return"BooleanValue"}return e.value==="null"?"NullValue":"EnumValue"}},NumberValue:[Dn("Number","number")],StringValue:[{style:"string",match:e=>e.kind==="String",update(e,t){t.value.startsWith('"""')&&(e.inBlockstring=!t.value.slice(3).endsWith('"""'))}}],BooleanValue:[Dn("Name","builtin")],NullValue:[Dn("Name","keyword")],EnumValue:[ar("string-2")],ListValue:[ze("["),gt("Value"),ze("]")],ObjectValue:[ze("{"),gt("ObjectField"),ze("}")],ObjectField:[ar("attribute"),ze(":"),"Value"],Type(e){return e.value==="["?"ListType":"NonNullType"},ListType:[ze("["),"Type",ze("]"),er(ze("!"))],NonNullType:["NamedType",er(ze("!"))],NamedType:[jfe("atom")],Directive:[ze("@","meta"),ar("meta"),er("Arguments")],DirectiveDef:[Qn("directive"),ze("@","meta"),ar("meta"),er("ArgumentsDef"),Qn("on"),gt("DirectiveLocation",ze("|"))],InterfaceDef:[Qn("interface"),ar("atom"),er("Implements"),gt("Directive"),ze("{"),gt("FieldDef"),ze("}")],Implements:[Qn("implements"),gt("NamedType",ze("&"))],DirectiveLocation:[ar("string-2")],SchemaDef:[Qn("schema"),gt("Directive"),ze("{"),gt("OperationTypeDef"),ze("}")],OperationTypeDef:[ar("keyword"),ze(":"),ar("atom")],ScalarDef:[Qn("scalar"),ar("atom"),gt("Directive")],ObjectTypeDef:[Qn("type"),ar("atom"),er("Implements"),gt("Directive"),ze("{"),gt("FieldDef"),ze("}")],FieldDef:[ar("property"),er("ArgumentsDef"),ze(":"),"Type",gt("Directive")],ArgumentsDef:[ze("("),gt("InputValueDef"),ze(")")],InputValueDef:[ar("attribute"),ze(":"),"Type",er("DefaultValue"),gt("Directive")],UnionDef:[Qn("union"),ar("atom"),gt("Directive"),ze("="),gt("UnionMember",ze("|"))],UnionMember:["NamedType"],EnumDef:[Qn("enum"),ar("atom"),gt("Directive"),ze("{"),gt("EnumValueDef"),ze("}")],EnumValueDef:[ar("string-2"),gt("Directive")],InputDef:[Qn("input"),ar("atom"),gt("Directive"),ze("{"),gt("InputValueDef"),ze("}")],ExtendDef:[Qn("extend"),"ExtensionDefinition"],ExtensionDefinition(e){switch(e.value){case"schema":return ui.Kind.SCHEMA_EXTENSION;case"scalar":return ui.Kind.SCALAR_TYPE_EXTENSION;case"type":return ui.Kind.OBJECT_TYPE_EXTENSION;case"interface":return ui.Kind.INTERFACE_TYPE_EXTENSION;case"union":return ui.Kind.UNION_TYPE_EXTENSION;case"enum":return ui.Kind.ENUM_TYPE_EXTENSION;case"input":return ui.Kind.INPUT_OBJECT_TYPE_EXTENSION}},[ui.Kind.SCHEMA_EXTENSION]:["SchemaDef"],[ui.Kind.SCALAR_TYPE_EXTENSION]:["ScalarDef"],[ui.Kind.OBJECT_TYPE_EXTENSION]:["ObjectTypeDef"],[ui.Kind.INTERFACE_TYPE_EXTENSION]:["InterfaceDef"],[ui.Kind.UNION_TYPE_EXTENSION]:["UnionDef"],[ui.Kind.ENUM_TYPE_EXTENSION]:["EnumDef"],[ui.Kind.INPUT_OBJECT_TYPE_EXTENSION]:["InputDef"]}});function po(e={eatWhitespace:t=>t.eatWhile(vp),lexRules:gp,parseRules:yp,editorConfig:{}}){return{startState(){let t={level:0,step:0,name:null,kind:null,type:null,rule:null,needsSeparator:!1,prevState:null};return Bv(e.parseRules,t,Z6.Kind.DOCUMENT),t},token(t,r){return Vfe(t,r,e)}}}function Vfe(e,t,r){var n;if(t.inBlockstring)return e.match(/.*"""/)?(t.inBlockstring=!1,"string"):(e.skipToEnd(),"string");let{lexRules:i,parseRules:o,eatWhitespace:s,editorConfig:l}=r;if(t.rule&&t.rule.length===0?xD(t):t.needsAdvance&&(t.needsAdvance=!1,AD(t,!0)),e.sol()){let m=l?.tabSize||2;t.indentLevel=Math.floor(e.indentation()/m)}if(s(e))return"ws";let c=Bfe(i,e);if(!c)return e.match(/\S+/)||e.match(/\s/),Bv(bD,t,"Invalid"),"invalidchar";if(c.kind==="Comment")return Bv(bD,t,"Comment"),"comment";let f=K6({},t);if(c.kind==="Punctuation"){if(/^[{([]/.test(c.value))t.indentLevel!==void 0&&(t.levels=(t.levels||[]).concat(t.indentLevel+1));else if(/^[})\]]/.test(c.value)){let m=t.levels=(t.levels||[]).slice(0,-1);t.indentLevel&&m.length>0&&m.at(-1){yD();Z6=fe(Ur());bD={Invalid:[],Comment:[]}});var _6,Gfe,Ne,$6=at(()=>{_6=fe(Ur()),Gfe={ALIASED_FIELD:"AliasedField",ARGUMENTS:"Arguments",SHORT_QUERY:"ShortQuery",QUERY:"Query",MUTATION:"Mutation",SUBSCRIPTION:"Subscription",TYPE_CONDITION:"TypeCondition",INVALID:"Invalid",COMMENT:"Comment",SCHEMA_DEF:"SchemaDef",SCALAR_DEF:"ScalarDef",OBJECT_TYPE_DEF:"ObjectTypeDef",OBJECT_VALUE:"ObjectValue",LIST_VALUE:"ListValue",INTERFACE_DEF:"InterfaceDef",UNION_DEF:"UnionDef",ENUM_DEF:"EnumDef",ENUM_VALUE:"EnumValue",FIELD_DEF:"FieldDef",INPUT_DEF:"InputDef",INPUT_VALUE_DEF:"InputValueDef",ARGUMENTS_DEF:"ArgumentsDef",EXTEND_DEF:"ExtendDef",EXTENSION_DEFINITION:"ExtensionDefinition",DIRECTIVE_DEF:"DirectiveDef",IMPLEMENTS:"Implements",VARIABLE_DEFINITIONS:"VariableDefinitions",TYPE:"Type"},Ne=Object.assign(Object.assign({},_6.Kind),Gfe)});var IA=at(()=>{Y6();yD();gD();J6();$6()});function ED(e,t,r,n,i,o){var s;let l=Object.assign(Object.assign({},o),{schema:e}),c=n||CD(t,r,1),f=c.state.kind==="Invalid"?c.state.prevState:c.state,m=o?.mode||ide(t,o?.uri);if(!f)return[];let{kind:v,step:g,prevState:y}=f,w=SD(e,c.state);if(v===Ne.DOCUMENT)return m===Kc.TYPE_SYSTEM?Yfe(c):Kfe(c);if(v===Ne.EXTEND_DEF)return Xfe(c);if(((s=y?.prevState)===null||s===void 0?void 0:s.kind)===Ne.EXTENSION_DEFINITION&&f.name)return Cr(c,[]);if(y?.kind===de.Kind.SCALAR_TYPE_EXTENSION)return Cr(c,Object.values(e.getTypeMap()).filter(de.isScalarType).map(S=>({label:S.name,kind:At.Function})));if(y?.kind===de.Kind.OBJECT_TYPE_EXTENSION)return Cr(c,Object.values(e.getTypeMap()).filter(S=>(0,de.isObjectType)(S)&&!S.name.startsWith("__")).map(S=>({label:S.name,kind:At.Function})));if(y?.kind===de.Kind.INTERFACE_TYPE_EXTENSION)return Cr(c,Object.values(e.getTypeMap()).filter(de.isInterfaceType).map(S=>({label:S.name,kind:At.Function})));if(y?.kind===de.Kind.UNION_TYPE_EXTENSION)return Cr(c,Object.values(e.getTypeMap()).filter(de.isUnionType).map(S=>({label:S.name,kind:At.Function})));if(y?.kind===de.Kind.ENUM_TYPE_EXTENSION)return Cr(c,Object.values(e.getTypeMap()).filter(S=>(0,de.isEnumType)(S)&&!S.name.startsWith("__")).map(S=>({label:S.name,kind:At.Function})));if(y?.kind===de.Kind.INPUT_OBJECT_TYPE_EXTENSION)return Cr(c,Object.values(e.getTypeMap()).filter(de.isInputObjectType).map(S=>({label:S.name,kind:At.Function})));if(v===Ne.IMPLEMENTS||v===Ne.NAMED_TYPE&&y?.kind===Ne.IMPLEMENTS)return _fe(c,f,e,t,w);if(v===Ne.SELECTION_SET||v===Ne.FIELD||v===Ne.ALIASED_FIELD)return Zfe(c,w,l);if(v===Ne.ARGUMENTS||v===Ne.ARGUMENT&&g===0){let{argDefs:S}=w;if(S)return Cr(c,S.map(A=>{var b;return{label:A.name,insertText:A.name+": ",command:wD,detail:String(A.type),documentation:(b=A.description)!==null&&b!==void 0?b:void 0,kind:At.Variable,type:A.type}}))}if((v===Ne.OBJECT_VALUE||v===Ne.OBJECT_FIELD&&g===0)&&w.objectFieldDefs){let S=pu(w.objectFieldDefs),A=v===Ne.OBJECT_VALUE?At.Value:At.Field;return Cr(c,S.map(b=>{var C;return{label:b.name,detail:String(b.type),documentation:(C=b.description)!==null&&C!==void 0?C:void 0,kind:A,type:b.type}}))}if(v===Ne.ENUM_VALUE||v===Ne.LIST_VALUE&&g===1||v===Ne.OBJECT_FIELD&&g===2||v===Ne.ARGUMENT&&g===2)return Jfe(c,w,t,e);if(v===Ne.VARIABLE&&g===1){let S=(0,de.getNamedType)(w.inputType),A=TD(t,e,c);return Cr(c,A.filter(b=>b.detail===S?.name))}if(v===Ne.TYPE_CONDITION&&g===1||v===Ne.NAMED_TYPE&&y!=null&&y.kind===Ne.TYPE_CONDITION)return $fe(c,w,e,v);if(v===Ne.FRAGMENT_SPREAD&&g===1)return ede(c,w,e,t,Array.isArray(i)?i:zfe(i));let T=rq(f);if(m===Kc.TYPE_SYSTEM&&!T.needsAdvance&&v===Ne.NAMED_TYPE||v===Ne.LIST_TYPE){if(T.kind===Ne.FIELD_DEF)return Cr(c,Object.values(e.getTypeMap()).filter(S=>(0,de.isOutputType)(S)&&!S.name.startsWith("__")).map(S=>({label:S.name,kind:At.Function})));if(T.kind===Ne.INPUT_VALUE_DEF)return Cr(c,Object.values(e.getTypeMap()).filter(S=>(0,de.isInputType)(S)&&!S.name.startsWith("__")).map(S=>({label:S.name,kind:At.Function})))}return v===Ne.VARIABLE_DEFINITION&&g===2||v===Ne.LIST_TYPE&&g===1||v===Ne.NAMED_TYPE&&y&&(y.kind===Ne.VARIABLE_DEFINITION||y.kind===Ne.LIST_TYPE||y.kind===Ne.NON_NULL_TYPE)?rde(c,e,v):v===Ne.DIRECTIVE?nde(c,f,e,v):[]}function Yfe(e){return Cr(e,[{label:"extend",kind:At.Function},{label:"type",kind:At.Function},{label:"interface",kind:At.Function},{label:"union",kind:At.Function},{label:"input",kind:At.Function},{label:"scalar",kind:At.Function},{label:"schema",kind:At.Function}])}function Kfe(e){return Cr(e,[{label:"query",kind:At.Function},{label:"mutation",kind:At.Function},{label:"subscription",kind:At.Function},{label:"fragment",kind:At.Function},{label:"{",kind:At.Constructor}])}function Xfe(e){return Cr(e,[{label:"type",kind:At.Function},{label:"interface",kind:At.Function},{label:"union",kind:At.Function},{label:"input",kind:At.Function},{label:"scalar",kind:At.Function},{label:"schema",kind:At.Function}])}function Zfe(e,t,r){var n;if(t.parentType){let{parentType:i}=t,o=[];return"getFields"in i&&(o=pu(i.getFields())),(0,de.isCompositeType)(i)&&o.push(de.TypeNameMetaFieldDef),i===((n=r?.schema)===null||n===void 0?void 0:n.getQueryType())&&o.push(de.SchemaMetaFieldDef,de.TypeMetaFieldDef),Cr(e,o.map((s,l)=>{var c;let f={sortText:String(l)+s.name,label:s.name,detail:String(s.type),documentation:(c=s.description)!==null&&c!==void 0?c:void 0,deprecated:!!s.deprecationReason,isDeprecated:!!s.deprecationReason,deprecationReason:s.deprecationReason,kind:At.Field,type:s.type};if(r?.fillLeafsOnComplete){let m=Wfe(s);m&&(f.insertText=s.name+m,f.insertTextFormat=Uv.Snippet,f.command=wD)}return f}))}return[]}function Jfe(e,t,r,n){let i=(0,de.getNamedType)(t.inputType),o=TD(r,n,e).filter(s=>s.detail===i.name);if(i instanceof de.GraphQLEnumType){let s=i.getValues();return Cr(e,s.map(l=>{var c;return{label:l.name,detail:String(i),documentation:(c=l.description)!==null&&c!==void 0?c:void 0,deprecated:!!l.deprecationReason,isDeprecated:!!l.deprecationReason,deprecationReason:l.deprecationReason,kind:At.EnumMember,type:i}}).concat(o))}return i===de.GraphQLBoolean?Cr(e,o.concat([{label:"true",detail:String(de.GraphQLBoolean),documentation:"Not false.",kind:At.Variable,type:de.GraphQLBoolean},{label:"false",detail:String(de.GraphQLBoolean),documentation:"Not true.",kind:At.Variable,type:de.GraphQLBoolean}])):o}function _fe(e,t,r,n,i){if(t.needsSeparator)return[];let o=r.getTypeMap(),s=pu(o).filter(de.isInterfaceType),l=s.map(({name:y})=>y),c=new Set;qA(n,(y,w)=>{var T,S,A,b,C;if(w.name&&(w.kind===Ne.INTERFACE_DEF&&!l.includes(w.name)&&c.add(w.name),w.kind===Ne.NAMED_TYPE&&((T=w.prevState)===null||T===void 0?void 0:T.kind)===Ne.IMPLEMENTS)){if(i.interfaceDef){if((S=i.interfaceDef)===null||S===void 0?void 0:S.getInterfaces().find(({name:D})=>D===w.name))return;let k=r.getType(w.name),P=(A=i.interfaceDef)===null||A===void 0?void 0:A.toConfig();i.interfaceDef=new de.GraphQLInterfaceType(Object.assign(Object.assign({},P),{interfaces:[...P.interfaces,k||new de.GraphQLInterfaceType({name:w.name,fields:{}})]}))}else if(i.objectTypeDef){if((b=i.objectTypeDef)===null||b===void 0?void 0:b.getInterfaces().find(({name:D})=>D===w.name))return;let k=r.getType(w.name),P=(C=i.objectTypeDef)===null||C===void 0?void 0:C.toConfig();i.objectTypeDef=new de.GraphQLObjectType(Object.assign(Object.assign({},P),{interfaces:[...P.interfaces,k||new de.GraphQLInterfaceType({name:w.name,fields:{}})]}))}}});let f=i.interfaceDef||i.objectTypeDef,v=(f?.getInterfaces()||[]).map(({name:y})=>y),g=s.concat([...c].map(y=>({name:y}))).filter(({name:y})=>y!==f?.name&&!v.includes(y));return Cr(e,g.map(y=>{let w={label:y.name,kind:At.Interface,type:y};return y?.description&&(w.documentation=y.description),w}))}function $fe(e,t,r,n){let i;if(t.parentType)if((0,de.isAbstractType)(t.parentType)){let o=(0,de.assertAbstractType)(t.parentType),s=r.getPossibleTypes(o),l=Object.create(null);for(let c of s)for(let f of c.getInterfaces())l[f.name]=f;i=s.concat(pu(l))}else i=[t.parentType];else{let o=r.getTypeMap();i=pu(o).filter(s=>(0,de.isCompositeType)(s)&&!s.name.startsWith("__"))}return Cr(e,i.map(o=>{let s=(0,de.getNamedType)(o);return{label:String(o),documentation:s?.description||"",kind:At.Field}}))}function ede(e,t,r,n,i){if(!n)return[];let o=r.getTypeMap(),s=_N(e.state),l=eq(n);i&&i.length>0&&l.push(...i);let c=l.filter(f=>o[f.typeCondition.name.value]&&!(s&&s.kind===Ne.FRAGMENT_DEFINITION&&s.name===f.name.value)&&(0,de.isCompositeType)(t.parentType)&&(0,de.isCompositeType)(o[f.typeCondition.name.value])&&(0,de.doTypesOverlap)(r,t.parentType,o[f.typeCondition.name.value]));return Cr(e,c.map(f=>({label:f.name.value,detail:String(o[f.typeCondition.name.value]),documentation:`fragment ${f.name.value} on ${f.typeCondition.name.value}`,kind:At.Field,type:o[f.typeCondition.name.value]})))}function TD(e,t,r){let n=null,i,o=Object.create({});return qA(e,(s,l)=>{if(l?.kind===Ne.VARIABLE&&l.name&&(n=l.name),l?.kind===Ne.NAMED_TYPE&&n){let c=tde(l,Ne.TYPE);c?.type&&(i=t.getType(c?.type))}n&&i&&!o[n]&&(o[n]={detail:i.toString(),insertText:r.string==="$"?n:"$"+n,label:n,type:i,kind:At.Variable},n=null,i=null)}),pu(o)}function eq(e){let t=[];return qA(e,(r,n)=>{n.kind===Ne.FRAGMENT_DEFINITION&&n.name&&n.type&&t.push({kind:Ne.FRAGMENT_DEFINITION,name:{kind:de.Kind.NAME,value:n.name},selectionSet:{kind:Ne.SELECTION_SET,selections:[]},typeCondition:{kind:Ne.NAMED_TYPE,name:{kind:de.Kind.NAME,value:n.type}}})}),t}function rde(e,t,r){let n=t.getTypeMap(),i=pu(n).filter(de.isInputType);return Cr(e,i.map(o=>({label:o.name,documentation:o.description,kind:At.Variable})))}function nde(e,t,r,n){var i;if(!((i=t.prevState)===null||i===void 0)&&i.kind){let o=r.getDirectives().filter(s=>tq(t.prevState,s));return Cr(e,o.map(s=>({label:s.name,documentation:s.description||"",kind:At.Function})))}return[]}function CD(e,t,r=0){let n=null,i=null,o=null,s=qA(e,(l,c,f,m)=>{if(!(m!==t.line||l.getCurrentPosition()+r{var w;switch(y.kind){case Ne.QUERY:case"ShortQuery":v=e.getQueryType();break;case Ne.MUTATION:v=e.getMutationType();break;case Ne.SUBSCRIPTION:v=e.getSubscriptionType();break;case Ne.INLINE_FRAGMENT:case Ne.FRAGMENT_DEFINITION:y.type&&(v=e.getType(y.type));break;case Ne.FIELD:case Ne.ALIASED_FIELD:{!v||!y.name?s=null:(s=m?NA(e,m,y.name):null,v=s?s.type:null);break}case Ne.SELECTION_SET:m=(0,de.getNamedType)(v);break;case Ne.DIRECTIVE:i=y.name?e.getDirective(y.name):null;break;case Ne.INTERFACE_DEF:y.name&&(c=null,g=new de.GraphQLInterfaceType({name:y.name,interfaces:[],fields:{}}));break;case Ne.OBJECT_TYPE_DEF:y.name&&(g=null,c=new de.GraphQLObjectType({name:y.name,interfaces:[],fields:{}}));break;case Ne.ARGUMENTS:{if(y.prevState)switch(y.prevState.kind){case Ne.FIELD:n=s&&s.args;break;case Ne.DIRECTIVE:n=i&&i.args;break;case Ne.ALIASED_FIELD:{let C=(w=y.prevState)===null||w===void 0?void 0:w.name;if(!C){n=null;break}let x=m?NA(e,m,C):null;if(!x){n=null;break}n=x.args;break}default:n=null;break}else n=null;break}case Ne.ARGUMENT:if(n){for(let C=0;CC.value===y.name):null;break;case Ne.LIST_VALUE:let S=(0,de.getNullableType)(l);l=S instanceof de.GraphQLList?S.ofType:null;break;case Ne.OBJECT_VALUE:let A=(0,de.getNamedType)(l);f=A instanceof de.GraphQLInputObjectType?A.getFields():null;break;case Ne.OBJECT_FIELD:let b=y.name&&f?f[y.name]:null;l=b?.type;break;case Ne.NAMED_TYPE:y.name&&(v=e.getType(y.name));break}}),{argDef:r,argDefs:n,directiveDef:i,enumValue:o,fieldDef:s,inputType:l,objectFieldDefs:f,parentType:m,type:v,interfaceDef:g,objectTypeDef:c}}function ide(e,t){return t?.endsWith(".graphqls")||Qfe(e)?Kc.TYPE_SYSTEM:Kc.EXECUTABLE}function rq(e){return e.prevState&&e.kind&&[Ne.NAMED_TYPE,Ne.LIST_TYPE,Ne.TYPE,Ne.NON_NULL_TYPE].includes(e.kind)?rq(e.prevState):e}var de,wD,zfe,Hfe,Qfe,FA,Wfe,tde,Kc,kD=at(()=>{de=fe(Ur());hD();IA();eD();wD={command:"editor.action.triggerSuggest",title:"Suggestions"},zfe=e=>{let t=[];if(e)try{(0,de.visit)((0,de.parse)(e),{FragmentDefinition(r){t.push(r)}})}catch{return[]}return t},Hfe=[de.Kind.SCHEMA_DEFINITION,de.Kind.OPERATION_TYPE_DEFINITION,de.Kind.SCALAR_TYPE_DEFINITION,de.Kind.OBJECT_TYPE_DEFINITION,de.Kind.INTERFACE_TYPE_DEFINITION,de.Kind.UNION_TYPE_DEFINITION,de.Kind.ENUM_TYPE_DEFINITION,de.Kind.INPUT_OBJECT_TYPE_DEFINITION,de.Kind.DIRECTIVE_DEFINITION,de.Kind.SCHEMA_EXTENSION,de.Kind.SCALAR_TYPE_EXTENSION,de.Kind.OBJECT_TYPE_EXTENSION,de.Kind.INTERFACE_TYPE_EXTENSION,de.Kind.UNION_TYPE_EXTENSION,de.Kind.ENUM_TYPE_EXTENSION,de.Kind.INPUT_OBJECT_TYPE_EXTENSION],Qfe=e=>{let t=!1;if(e)try{(0,de.visit)((0,de.parse)(e),{enter(r){if(r.kind!=="Document")return Hfe.includes(r.kind)?(t=!0,de.BREAK):!1}})}catch{return t}return t};FA=` { - $1 -}`,Wfe=e=>{let{type:t}=e;return(0,de.isCompositeType)(t)||(0,de.isListType)(t)&&(0,de.isCompositeType)(t.ofType)||(0,de.isNonNullType)(t)&&((0,de.isCompositeType)(t.ofType)||(0,de.isListType)(t.ofType)&&(0,de.isCompositeType)(t.ofType.ofType))?FA:null};tde=(e,t)=>{var r,n,i,o,s,l,c,f,m,v;if(((r=e.prevState)===null||r===void 0?void 0:r.kind)===t)return e.prevState;if(((i=(n=e.prevState)===null||n===void 0?void 0:n.prevState)===null||i===void 0?void 0:i.kind)===t)return e.prevState.prevState;if(((l=(s=(o=e.prevState)===null||o===void 0?void 0:o.prevState)===null||s===void 0?void 0:s.prevState)===null||l===void 0?void 0:l.kind)===t)return e.prevState.prevState.prevState;if(((v=(m=(f=(c=e.prevState)===null||c===void 0?void 0:c.prevState)===null||f===void 0?void 0:f.prevState)===null||m===void 0?void 0:m.prevState)===null||v===void 0?void 0:v.kind)===t)return e.prevState.prevState.prevState.prevState};(function(e){e.TYPE_SYSTEM="TYPE_SYSTEM",e.EXECUTABLE="EXECUTABLE"})(Kc||(Kc={}))});var iq=X((OOe,jA)=>{"use strict";function nq(e,t){if(e!=null)return e;var r=new Error(t!==void 0?t:"Got unexpected "+e);throw r.framesToPop=1,r}jA.exports=nq;jA.exports.default=nq;Object.defineProperty(jA.exports,"__esModule",{value:!0})});var VA,OD,UA,oq=at(()=>{VA=fe(Ur()),OD=fe(iq()),UA=(e,t)=>{if(!t)return[];let r=new Map,n=new Set;(0,VA.visit)(e,{FragmentDefinition(s){r.set(s.name.value,!0)},FragmentSpread(s){n.has(s.name.value)||n.add(s.name.value)}});let i=new Set;for(let s of n)!r.has(s)&&t.has(s)&&i.add((0,OD.default)(t.get(s)));let o=[];for(let s of i)(0,VA.visit)(s,{FragmentSpread(l){!n.has(l.name.value)&&t.get(l.name.value)&&(i.add((0,OD.default)(t.get(l.name.value))),n.add(l.name.value))}}),r.has(s.name.value)||o.push(s);return o}});var aq=at(()=>{});var sq=at(()=>{});var Xc,mo,lq=at(()=>{Xc=class{constructor(t,r){this.containsPosition=n=>this.start.line===n.line?this.start.character<=n.character:this.end.line===n.line?this.end.character>=n.character:this.start.line<=n.line&&this.end.line>=n.line,this.start=t,this.end=r}setStart(t,r){this.start=new mo(t,r)}setEnd(t,r){this.end=new mo(t,r)}},mo=class{constructor(t,r){this.lessThanOrEqualTo=n=>this.line!(l===Nt.NoUnusedFragmentsRule||l===Nt.ExecutableDefinitionsRule||n&&l===Nt.KnownFragmentNamesRule));return r&&Array.prototype.push.apply(o,r),i&&Array.prototype.push.apply(o,ode),(0,Nt.validate)(e,t,o).filter(l=>{if(l.message.includes("Unknown directive")&&l.nodes){let c=l.nodes[0];if(c&&c.kind===Nt.Kind.DIRECTIVE){let f=c.name.value;if(f==="arguments"||f==="argumentDefinitions")return!1}}return!0})}var Nt,ode,uq=at(()=>{Nt=fe(Ur()),ode=[Nt.LoneSchemaDefinitionRule,Nt.UniqueOperationTypesRule,Nt.UniqueTypeNamesRule,Nt.UniqueEnumValueNamesRule,Nt.UniqueFieldDefinitionNamesRule,Nt.UniqueDirectiveNamesRule,Nt.KnownTypeNamesRule,Nt.KnownDirectivesRule,Nt.UniqueDirectivesPerLocationRule,Nt.PossibleTypeExtensionsRule,Nt.UniqueArgumentNamesRule,Nt.UniqueInputFieldNamesRule]});function GA(e,t){let r=Object.create(null);for(let n of t.definitions)if(n.kind==="OperationDefinition"){let{variableDefinitions:i}=n;if(i)for(let{variable:o,type:s}of i){let l=(0,bp.typeFromAST)(e,s);l?r[o.name.value]=l:s.kind===bp.Kind.NAMED_TYPE&&s.name.value==="Float"&&(r[o.name.value]=bp.GraphQLFloat)}}return r}var bp,ND=at(()=>{bp=fe(Ur())});function DD(e,t){let r=t?GA(t,e):void 0,n=[];return(0,zA.visit)(e,{OperationDefinition(i){n.push(i)}}),{variableToType:r,operations:n}}function Gv(e,t){if(t)try{let r=(0,zA.parse)(t);return Object.assign(Object.assign({},DD(r,e)),{documentAST:r})}catch{return}}var zA,cq=at(()=>{zA=fe(Ur());ND()});var zv=at(()=>{oq();aq();sq();lq();uq();ND();cq()});var fq=at(()=>{zv()});function PD(e,t=null,r,n,i){var o,s;let l=null,c="";i&&(c=typeof i=="string"?i:i.reduce((m,v)=>m+(0,fs.print)(v)+` - -`,""));let f=c?`${e} - -${c}`:e;try{l=(0,fs.parse)(f)}catch(m){if(m instanceof fs.GraphQLError){let v=mq((s=(o=m.locations)===null||o===void 0?void 0:o[0])!==null&&s!==void 0?s:{line:0,column:0},f);return[{severity:HA.Error,message:m.message,source:"GraphQL: Syntax",range:v}]}throw m}return pq(l,t,r,n)}function pq(e,t=null,r,n){if(!t)return[];let i=BA(t,e,r,n).flatMap(s=>dq(s,HA.Error,"Validation")),o=(0,fs.validate)(t,e,[fs.NoDeprecatedCustomRule]).flatMap(s=>dq(s,HA.Warning,"Deprecation"));return i.concat(o)}function dq(e,t,r){if(!e.nodes)return[];let n=[];for(let[i,o]of e.nodes.entries()){let s=o.kind!=="Variable"&&"name"in o&&o.name!==void 0?o.name:"variable"in o&&o.variable!==void 0?o.variable:o;if(s){QA(e.locations,"GraphQL validation error requires locations.");let l=e.locations[i],c=dde(s),f=l.column+(c.end-c.start);n.push({source:`GraphQL: ${r}`,message:e.message,severity:t,range:new Xc(new mo(l.line-1,l.column-1),new mo(l.line-1,f))})}}return n}function mq(e,t){let r=po(),n=r.startState(),i=t.split(` -`);QA(i.length>=e.line,"Query text must have more lines than where the error happened");let o=null;for(let f=0;f{fs=fe(Ur());IA();zv();Hv={Error:"Error",Warning:"Warning",Information:"Information",Hint:"Hint"},HA={[Hv.Error]:1,[Hv.Warning]:2,[Hv.Information]:3,[Hv.Hint]:4},QA=(e,t)=>{if(!e)throw new Error(t)}});var WA,JOe,vq=at(()=>{WA=fe(Ur());zv();({INLINE_FRAGMENT:JOe}=WA.Kind)});var gq=at(()=>{kD()});var yq=at(()=>{eD();kD();fq();hq();vq();gq()});var Zc=at(()=>{yq();IA();hD();zv()});var Aq=X((yNe,bq)=>{"use strict";bq.exports=function(t){return typeof t=="object"?t===null:typeof t!="function"}});var wq=X((bNe,xq)=>{"use strict";xq.exports=function(t){return t!=null&&typeof t=="object"&&Array.isArray(t)===!1}});var Cq=X((ANe,Tq)=>{"use strict";var hde=wq();function Eq(e){return hde(e)===!0&&Object.prototype.toString.call(e)==="[object Object]"}Tq.exports=function(t){var r,n;return!(Eq(t)===!1||(r=t.constructor,typeof r!="function")||(n=r.prototype,Eq(n)===!1)||n.hasOwnProperty("isPrototypeOf")===!1)}});var Dq=X((xNe,Nq)=>{"use strict";var{deleteProperty:vde}=Reflect,gde=Aq(),Sq=Cq(),kq=e=>typeof e=="object"&&e!==null||typeof e=="function",yde=e=>e==="__proto__"||e==="constructor"||e==="prototype",RD=e=>{if(!gde(e))throw new TypeError("Object keys must be strings or symbols");if(yde(e))throw new Error(`Cannot set unsafe key: "${e}"`)},bde=e=>Array.isArray(e)?e.flat().map(String).join(","):e,Ade=(e,t)=>{if(typeof e!="string"||!t)return e;let r=e+";";return t.arrays!==void 0&&(r+=`arrays=${t.arrays};`),t.separator!==void 0&&(r+=`separator=${t.separator};`),t.split!==void 0&&(r+=`split=${t.split};`),t.merge!==void 0&&(r+=`merge=${t.merge};`),t.preservePaths!==void 0&&(r+=`preservePaths=${t.preservePaths};`),r},xde=(e,t,r)=>{let n=bde(t?Ade(e,t):e);RD(n);let i=Jc.cache.get(n)||r();return Jc.cache.set(n,i),i},wde=(e,t={})=>{let r=t.separator||".",n=r==="/"?!1:t.preservePaths;if(typeof e=="string"&&n!==!1&&/\//.test(e))return[e];let i=[],o="",s=l=>{let c;l.trim()!==""&&Number.isInteger(c=Number(l))?i.push(c):i.push(l)};for(let l=0;lt&&typeof t.split=="function"?t.split(e):typeof e=="symbol"?[e]:Array.isArray(e)?e:xde(e,t,()=>wde(e,t)),Ede=(e,t,r,n)=>{if(RD(t),r===void 0)vde(e,t);else if(n&&n.merge){let i=n.merge==="function"?n.merge:Object.assign;i&&Sq(e[t])&&Sq(r)?e[t]=i(e[t],r):e[t]=r}else e[t]=r;return e},Jc=(e,t,r,n)=>{if(!t||!kq(e))return e;let i=Oq(t,n),o=e;for(let s=0;s{Jc.cache=new Map};Nq.exports=Jc});var Pq=X((wNe,Lq)=>{Lq.exports=function(){var e=document.getSelection();if(!e.rangeCount)return function(){};for(var t=document.activeElement,r=[],n=0;n{"use strict";var Tde=Pq(),Rq={"text/plain":"Text","text/html":"Url",default:"Text"},Cde="Copy to clipboard: #{key}, Enter";function Sde(e){var t=(/mac os x/i.test(navigator.userAgent)?"\u2318":"Ctrl")+"+C";return e.replace(/#{\s*key\s*}/g,t)}function kde(e,t){var r,n,i,o,s,l,c=!1;t||(t={}),r=t.debug||!1;try{i=Tde(),o=document.createRange(),s=document.getSelection(),l=document.createElement("span"),l.textContent=e,l.ariaHidden="true",l.style.all="unset",l.style.position="fixed",l.style.top=0,l.style.clip="rect(0, 0, 0, 0)",l.style.whiteSpace="pre",l.style.webkitUserSelect="text",l.style.MozUserSelect="text",l.style.msUserSelect="text",l.style.userSelect="text",l.addEventListener("copy",function(m){if(m.stopPropagation(),t.format)if(m.preventDefault(),typeof m.clipboardData>"u"){r&&console.warn("unable to use e.clipboardData"),r&&console.warn("trying IE specific stuff"),window.clipboardData.clearData();var v=Rq[t.format]||Rq.default;window.clipboardData.setData(v,e)}else m.clipboardData.clearData(),m.clipboardData.setData(t.format,e);t.onCopy&&(m.preventDefault(),t.onCopy(m.clipboardData))}),document.body.appendChild(l),o.selectNodeContents(l),s.addRange(o);var f=document.execCommand("copy");if(!f)throw new Error("copy command was unsuccessful");c=!0}catch(m){r&&console.error("unable to copy using execCommand: ",m),r&&console.warn("trying IE specific stuff");try{window.clipboardData.setData(t.format||"text",e),t.onCopy&&t.onCopy(window.clipboardData),c=!0}catch(v){r&&console.error("unable to copy using clipboardData: ",v),r&&console.error("falling back to prompt"),n=Sde("message"in t?t.message:Cde),window.prompt(n,e)}}finally{s&&(typeof s.removeRange=="function"?s.removeRange(o):s.removeAllRanges()),l&&document.body.removeChild(l),i()}return c}Mq.exports=kde});var Kq=X(lr=>{"use strict";function jD(e,t){var r=e.length;e.push(t);e:for(;0>>1,i=e[n];if(0>>1;nYA(l,r))cYA(f,l)?(e[n]=f,e[c]=r,n=c):(e[n]=l,e[s]=r,n=s);else if(cYA(f,r))e[n]=f,e[c]=r,n=c;else break e}}return t}function YA(e,t){var r=e.sortIndex-t.sortIndex;return r!==0?r:e.id-t.id}typeof performance=="object"&&typeof performance.now=="function"?(Vq=performance,lr.unstable_now=function(){return Vq.now()}):(ID=Date,Uq=ID.now(),lr.unstable_now=function(){return ID.now()-Uq});var Vq,ID,Uq,ps=[],vu=[],Rde=1,Go=null,ci=3,ZA=!1,_c=!1,Wv=!1,zq=typeof setTimeout=="function"?setTimeout:null,Hq=typeof clearTimeout=="function"?clearTimeout:null,Bq=typeof setImmediate<"u"?setImmediate:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function VD(e){for(var t=Ta(vu);t!==null;){if(t.callback===null)XA(vu);else if(t.startTime<=e)XA(vu),t.sortIndex=t.expirationTime,jD(ps,t);else break;t=Ta(vu)}}function UD(e){if(Wv=!1,VD(e),!_c)if(Ta(ps)!==null)_c=!0,GD(BD);else{var t=Ta(vu);t!==null&&zD(UD,t.startTime-e)}}function BD(e,t){_c=!1,Wv&&(Wv=!1,Hq(Yv),Yv=-1),ZA=!0;var r=ci;try{for(VD(t),Go=Ta(ps);Go!==null&&(!(Go.expirationTime>t)||e&&!Yq());){var n=Go.callback;if(typeof n=="function"){Go.callback=null,ci=Go.priorityLevel;var i=n(Go.expirationTime<=t);t=lr.unstable_now(),typeof i=="function"?Go.callback=i:Go===Ta(ps)&&XA(ps),VD(t)}else XA(ps);Go=Ta(ps)}if(Go!==null)var o=!0;else{var s=Ta(vu);s!==null&&zD(UD,s.startTime-t),o=!1}return o}finally{Go=null,ci=r,ZA=!1}}var JA=!1,KA=null,Yv=-1,Qq=5,Wq=-1;function Yq(){return!(lr.unstable_now()-Wqe||125n?(e.sortIndex=r,jD(vu,e),Ta(ps)===null&&e===Ta(vu)&&(Wv?(Hq(Yv),Yv=-1):Wv=!0,zD(UD,r-n))):(e.sortIndex=i,jD(ps,e),_c||ZA||(_c=!0,GD(BD))),e};lr.unstable_shouldYield=Yq;lr.unstable_wrapCallback=function(e){var t=ci;return function(){var r=ci;ci=t;try{return e.apply(this,arguments)}finally{ci=r}}}});var Zq=X((INe,Xq)=>{"use strict";Xq.exports=Kq()});var rB=X(Ao=>{"use strict";var nV=Ee(),yo=Zq();function ke(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,r=1;r"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),d2=Object.prototype.hasOwnProperty,Mde=/^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,Jq={},_q={};function Ide(e){return d2.call(_q,e)?!0:d2.call(Jq,e)?!1:Mde.test(e)?_q[e]=!0:(Jq[e]=!0,!1)}function Fde(e,t,r,n){if(r!==null&&r.type===0)return!1;switch(typeof t){case"function":case"symbol":return!0;case"boolean":return n?!1:r!==null?!r.acceptsBooleans:(e=e.toLowerCase().slice(0,5),e!=="data-"&&e!=="aria-");default:return!1}}function qde(e,t,r,n){if(t===null||typeof t>"u"||Fde(e,t,r,n))return!0;if(n)return!1;if(r!==null)switch(r.type){case 3:return!t;case 4:return t===!1;case 5:return isNaN(t);case 6:return isNaN(t)||1>t}return!1}function Ii(e,t,r,n,i,o,s){this.acceptsBooleans=t===2||t===3||t===4,this.attributeName=n,this.attributeNamespace=i,this.mustUseProperty=r,this.propertyName=e,this.type=t,this.sanitizeURL=o,this.removeEmptyString=s}var Xn={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(e){Xn[e]=new Ii(e,0,!1,e,null,!1,!1)});[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(e){var t=e[0];Xn[t]=new Ii(t,1,!1,e[1],null,!1,!1)});["contentEditable","draggable","spellCheck","value"].forEach(function(e){Xn[e]=new Ii(e,2,!1,e.toLowerCase(),null,!1,!1)});["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(e){Xn[e]=new Ii(e,2,!1,e,null,!1,!1)});"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach(function(e){Xn[e]=new Ii(e,3,!1,e.toLowerCase(),null,!1,!1)});["checked","multiple","muted","selected"].forEach(function(e){Xn[e]=new Ii(e,3,!0,e,null,!1,!1)});["capture","download"].forEach(function(e){Xn[e]=new Ii(e,4,!1,e,null,!1,!1)});["cols","rows","size","span"].forEach(function(e){Xn[e]=new Ii(e,6,!1,e,null,!1,!1)});["rowSpan","start"].forEach(function(e){Xn[e]=new Ii(e,5,!1,e.toLowerCase(),null,!1,!1)});var iL=/[\-:]([a-z])/g;function oL(e){return e[1].toUpperCase()}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach(function(e){var t=e.replace(iL,oL);Xn[t]=new Ii(t,1,!1,e,null,!1,!1)});"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function(e){var t=e.replace(iL,oL);Xn[t]=new Ii(t,1,!1,e,"http://www.w3.org/1999/xlink",!1,!1)});["xml:base","xml:lang","xml:space"].forEach(function(e){var t=e.replace(iL,oL);Xn[t]=new Ii(t,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)});["tabIndex","crossOrigin"].forEach(function(e){Xn[e]=new Ii(e,1,!1,e.toLowerCase(),null,!1,!1)});Xn.xlinkHref=new Ii("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1);["src","href","action","formAction"].forEach(function(e){Xn[e]=new Ii(e,1,!1,e.toLowerCase(),null,!0,!0)});function aL(e,t,r,n){var i=Xn.hasOwnProperty(t)?Xn[t]:null;(i!==null?i.type!==0:n||!(2l||i[s]!==o[l]){var c=` -`+i[s].replace(" at new "," at ");return e.displayName&&c.includes("")&&(c=c.replace("",e.displayName)),c}while(1<=s&&0<=l);break}}}finally{QD=!1,Error.prepareStackTrace=r}return(e=e?e.displayName||e.name:"")?rg(e):""}function jde(e){switch(e.tag){case 5:return rg(e.type);case 16:return rg("Lazy");case 13:return rg("Suspense");case 19:return rg("SuspenseList");case 0:case 2:case 15:return e=WD(e.type,!1),e;case 11:return e=WD(e.type.render,!1),e;case 1:return e=WD(e.type,!0),e;default:return""}}function v2(e){if(e==null)return null;if(typeof e=="function")return e.displayName||e.name||null;if(typeof e=="string")return e;switch(e){case Cp:return"Fragment";case Tp:return"Portal";case p2:return"Profiler";case sL:return"StrictMode";case m2:return"Suspense";case h2:return"SuspenseList"}if(typeof e=="object")switch(e.$$typeof){case aV:return(e.displayName||"Context")+".Consumer";case oV:return(e._context.displayName||"Context")+".Provider";case lL:var t=e.render;return e=e.displayName,e||(e=t.displayName||t.name||"",e=e!==""?"ForwardRef("+e+")":"ForwardRef"),e;case uL:return t=e.displayName||null,t!==null?t:v2(e.type)||"Memo";case yu:t=e._payload,e=e._init;try{return v2(e(t))}catch{}}return null}function Vde(e){var t=e.type;switch(e.tag){case 24:return"Cache";case 9:return(t.displayName||"Context")+".Consumer";case 10:return(t._context.displayName||"Context")+".Provider";case 18:return"DehydratedFragment";case 11:return e=t.render,e=e.displayName||e.name||"",t.displayName||(e!==""?"ForwardRef("+e+")":"ForwardRef");case 7:return"Fragment";case 5:return t;case 4:return"Portal";case 3:return"Root";case 6:return"Text";case 16:return v2(t);case 8:return t===sL?"StrictMode":"Mode";case 22:return"Offscreen";case 12:return"Profiler";case 21:return"Scope";case 13:return"Suspense";case 19:return"SuspenseList";case 25:return"TracingMarker";case 1:case 0:case 17:case 2:case 14:case 15:if(typeof t=="function")return t.displayName||t.name||null;if(typeof t=="string")return t}return null}function Pu(e){switch(typeof e){case"boolean":case"number":case"string":case"undefined":return e;case"object":return e;default:return""}}function lV(e){var t=e.type;return(e=e.nodeName)&&e.toLowerCase()==="input"&&(t==="checkbox"||t==="radio")}function Ude(e){var t=lV(e)?"checked":"value",r=Object.getOwnPropertyDescriptor(e.constructor.prototype,t),n=""+e[t];if(!e.hasOwnProperty(t)&&typeof r<"u"&&typeof r.get=="function"&&typeof r.set=="function"){var i=r.get,o=r.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return i.call(this)},set:function(s){n=""+s,o.call(this,s)}}),Object.defineProperty(e,t,{enumerable:r.enumerable}),{getValue:function(){return n},setValue:function(s){n=""+s},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}function $A(e){e._valueTracker||(e._valueTracker=Ude(e))}function uV(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var r=t.getValue(),n="";return e&&(n=lV(e)?e.checked?"true":"false":e.value),e=n,e!==r?(t.setValue(e),!0):!1}function k1(e){if(e=e||(typeof document<"u"?document:void 0),typeof e>"u")return null;try{return e.activeElement||e.body}catch{return e.body}}function g2(e,t){var r=t.checked;return Mr({},t,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:r??e._wrapperState.initialChecked})}function ej(e,t){var r=t.defaultValue==null?"":t.defaultValue,n=t.checked!=null?t.checked:t.defaultChecked;r=Pu(t.value!=null?t.value:r),e._wrapperState={initialChecked:n,initialValue:r,controlled:t.type==="checkbox"||t.type==="radio"?t.checked!=null:t.value!=null}}function cV(e,t){t=t.checked,t!=null&&aL(e,"checked",t,!1)}function y2(e,t){cV(e,t);var r=Pu(t.value),n=t.type;if(r!=null)n==="number"?(r===0&&e.value===""||e.value!=r)&&(e.value=""+r):e.value!==""+r&&(e.value=""+r);else if(n==="submit"||n==="reset"){e.removeAttribute("value");return}t.hasOwnProperty("value")?b2(e,t.type,r):t.hasOwnProperty("defaultValue")&&b2(e,t.type,Pu(t.defaultValue)),t.checked==null&&t.defaultChecked!=null&&(e.defaultChecked=!!t.defaultChecked)}function tj(e,t,r){if(t.hasOwnProperty("value")||t.hasOwnProperty("defaultValue")){var n=t.type;if(!(n!=="submit"&&n!=="reset"||t.value!==void 0&&t.value!==null))return;t=""+e._wrapperState.initialValue,r||t===e.value||(e.value=t),e.defaultValue=t}r=e.name,r!==""&&(e.name=""),e.defaultChecked=!!e._wrapperState.initialChecked,r!==""&&(e.name=r)}function b2(e,t,r){(t!=="number"||k1(e.ownerDocument)!==e)&&(r==null?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+r&&(e.defaultValue=""+r))}var ng=Array.isArray;function Fp(e,t,r,n){if(e=e.options,t){t={};for(var i=0;i"+t.valueOf().toString()+"",t=e1.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;t.firstChild;)e.appendChild(t.firstChild)}});function vg(e,t){if(t){var r=e.firstChild;if(r&&r===e.lastChild&&r.nodeType===3){r.nodeValue=t;return}}e.textContent=t}var ag={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},Bde=["Webkit","ms","Moz","O"];Object.keys(ag).forEach(function(e){Bde.forEach(function(t){t=t+e.charAt(0).toUpperCase()+e.substring(1),ag[t]=ag[e]})});function mV(e,t,r){return t==null||typeof t=="boolean"||t===""?"":r||typeof t!="number"||t===0||ag.hasOwnProperty(e)&&ag[e]?(""+t).trim():t+"px"}function hV(e,t){e=e.style;for(var r in t)if(t.hasOwnProperty(r)){var n=r.indexOf("--")===0,i=mV(r,t[r],n);r==="float"&&(r="cssFloat"),n?e.setProperty(r,i):e[r]=i}}var Gde=Mr({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function w2(e,t){if(t){if(Gde[e]&&(t.children!=null||t.dangerouslySetInnerHTML!=null))throw Error(ke(137,e));if(t.dangerouslySetInnerHTML!=null){if(t.children!=null)throw Error(ke(60));if(typeof t.dangerouslySetInnerHTML!="object"||!("__html"in t.dangerouslySetInnerHTML))throw Error(ke(61))}if(t.style!=null&&typeof t.style!="object")throw Error(ke(62))}}function E2(e,t){if(e.indexOf("-")===-1)return typeof t.is=="string";switch(e){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}var T2=null;function cL(e){return e=e.target||e.srcElement||window,e.correspondingUseElement&&(e=e.correspondingUseElement),e.nodeType===3?e.parentNode:e}var C2=null,qp=null,jp=null;function ij(e){if(e=Mg(e)){if(typeof C2!="function")throw Error(ke(280));var t=e.stateNode;t&&(t=tx(t),C2(e.stateNode,e.type,t))}}function vV(e){qp?jp?jp.push(e):jp=[e]:qp=e}function gV(){if(qp){var e=qp,t=jp;if(jp=qp=null,ij(e),t)for(e=0;e>>=0,e===0?32:31-($de(e)/epe|0)|0}var t1=64,r1=4194304;function ig(e){switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return e&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return e&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return e}}function L1(e,t){var r=e.pendingLanes;if(r===0)return 0;var n=0,i=e.suspendedLanes,o=e.pingedLanes,s=r&268435455;if(s!==0){var l=s&~i;l!==0?n=ig(l):(o&=s,o!==0&&(n=ig(o)))}else s=r&~i,s!==0?n=ig(s):o!==0&&(n=ig(o));if(n===0)return 0;if(t!==0&&t!==n&&!(t&i)&&(i=n&-n,o=t&-t,i>=o||i===16&&(o&4194240)!==0))return t;if(n&4&&(n|=r&16),t=e.entangledLanes,t!==0)for(e=e.entanglements,t&=n;0r;r++)t.push(e);return t}function Pg(e,t,r){e.pendingLanes|=t,t!==536870912&&(e.suspendedLanes=0,e.pingedLanes=0),e=e.eventTimes,t=31-Na(t),e[t]=r}function ipe(e,t){var r=e.pendingLanes&~t;e.pendingLanes=t,e.suspendedLanes=0,e.pingedLanes=0,e.expiredLanes&=t,e.mutableReadLanes&=t,e.entangledLanes&=t,t=e.entanglements;var n=e.eventTimes;for(e=e.expirationTimes;0=lg),pj=String.fromCharCode(32),mj=!1;function qV(e,t){switch(e){case"keyup":return Ppe.indexOf(t.keyCode)!==-1;case"keydown":return t.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function jV(e){return e=e.detail,typeof e=="object"&&"data"in e?e.data:null}var Sp=!1;function Mpe(e,t){switch(e){case"compositionend":return jV(t);case"keypress":return t.which!==32?null:(mj=!0,pj);case"textInput":return e=t.data,e===pj&&mj?null:e;default:return null}}function Ipe(e,t){if(Sp)return e==="compositionend"||!yL&&qV(e,t)?(e=IV(),y1=hL=wu=null,Sp=!1,e):null;switch(e){case"paste":return null;case"keypress":if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1=t)return{node:r,offset:t-e};e=n}e:{for(;r;){if(r.nextSibling){r=r.nextSibling;break e}r=r.parentNode}r=void 0}r=gj(r)}}function GV(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?GV(e,t.parentNode):"contains"in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function zV(){for(var e=window,t=k1();t instanceof e.HTMLIFrameElement;){try{var r=typeof t.contentWindow.location.href=="string"}catch{r=!1}if(r)e=t.contentWindow;else break;t=k1(e.document)}return t}function bL(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&(t==="input"&&(e.type==="text"||e.type==="search"||e.type==="tel"||e.type==="url"||e.type==="password")||t==="textarea"||e.contentEditable==="true")}function Hpe(e){var t=zV(),r=e.focusedElem,n=e.selectionRange;if(t!==r&&r&&r.ownerDocument&&GV(r.ownerDocument.documentElement,r)){if(n!==null&&bL(r)){if(t=n.start,e=n.end,e===void 0&&(e=t),"selectionStart"in r)r.selectionStart=t,r.selectionEnd=Math.min(e,r.value.length);else if(e=(t=r.ownerDocument||document)&&t.defaultView||window,e.getSelection){e=e.getSelection();var i=r.textContent.length,o=Math.min(n.start,i);n=n.end===void 0?o:Math.min(n.end,i),!e.extend&&o>n&&(i=n,n=o,o=i),i=yj(r,o);var s=yj(r,n);i&&s&&(e.rangeCount!==1||e.anchorNode!==i.node||e.anchorOffset!==i.offset||e.focusNode!==s.node||e.focusOffset!==s.offset)&&(t=t.createRange(),t.setStart(i.node,i.offset),e.removeAllRanges(),o>n?(e.addRange(t),e.extend(s.node,s.offset)):(t.setEnd(s.node,s.offset),e.addRange(t)))}}for(t=[],e=r;e=e.parentNode;)e.nodeType===1&&t.push({element:e,left:e.scrollLeft,top:e.scrollTop});for(typeof r.focus=="function"&&r.focus(),r=0;r=document.documentMode,kp=null,L2=null,cg=null,P2=!1;function bj(e,t,r){var n=r.window===r?r.document:r.nodeType===9?r:r.ownerDocument;P2||kp==null||kp!==k1(n)||(n=kp,"selectionStart"in n&&bL(n)?n={start:n.selectionStart,end:n.selectionEnd}:(n=(n.ownerDocument&&n.ownerDocument.defaultView||window).getSelection(),n={anchorNode:n.anchorNode,anchorOffset:n.anchorOffset,focusNode:n.focusNode,focusOffset:n.focusOffset}),cg&&wg(cg,n)||(cg=n,n=M1(L2,"onSelect"),0Dp||(e.current=j2[Dp],j2[Dp]=null,Dp--)}function ur(e,t){Dp++,j2[Dp]=e.current,e.current=t}var Ru={},mi=Iu(Ru),Yi=Iu(!1),sf=Ru;function zp(e,t){var r=e.type.contextTypes;if(!r)return Ru;var n=e.stateNode;if(n&&n.__reactInternalMemoizedUnmaskedChildContext===t)return n.__reactInternalMemoizedMaskedChildContext;var i={},o;for(o in r)i[o]=t[o];return n&&(e=e.stateNode,e.__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=i),i}function Ki(e){return e=e.childContextTypes,e!=null}function F1(){yr(Yi),yr(mi)}function Oj(e,t,r){if(mi.current!==Ru)throw Error(ke(168));ur(mi,t),ur(Yi,r)}function _V(e,t,r){var n=e.stateNode;if(t=t.childContextTypes,typeof n.getChildContext!="function")return r;n=n.getChildContext();for(var i in n)if(!(i in t))throw Error(ke(108,Vde(e)||"Unknown",i));return Mr({},r,n)}function q1(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||Ru,sf=mi.current,ur(mi,e),ur(Yi,Yi.current),!0}function Nj(e,t,r){var n=e.stateNode;if(!n)throw Error(ke(169));r?(e=_V(e,t,sf),n.__reactInternalMemoizedMergedChildContext=e,yr(Yi),yr(mi),ur(mi,e)):yr(Yi),ur(Yi,r)}var ll=null,rx=!1,n2=!1;function $V(e){ll===null?ll=[e]:ll.push(e)}function eme(e){rx=!0,$V(e)}function Fu(){if(!n2&&ll!==null){n2=!0;var e=0,t=Jt;try{var r=ll;for(Jt=1;e>=s,i-=s,ul=1<<32-Na(t)+i|r<N?(I=D,D=null):I=D.sibling;var V=g(A,D,C[N],x);if(V===null){D===null&&(D=I);break}e&&D&&V.alternate===null&&t(A,D),b=o(V,b,N),P===null?k=V:P.sibling=V,P=V,D=I}if(N===C.length)return r(A,D),Sr&&$c(A,N),k;if(D===null){for(;NN?(I=D,D=null):I=D.sibling;var G=g(A,D,V.value,x);if(G===null){D===null&&(D=I);break}e&&D&&G.alternate===null&&t(A,D),b=o(G,b,N),P===null?k=G:P.sibling=G,P=G,D=I}if(V.done)return r(A,D),Sr&&$c(A,N),k;if(D===null){for(;!V.done;N++,V=C.next())V=v(A,V.value,x),V!==null&&(b=o(V,b,N),P===null?k=V:P.sibling=V,P=V);return Sr&&$c(A,N),k}for(D=n(A,D);!V.done;N++,V=C.next())V=y(D,A,N,V.value,x),V!==null&&(e&&V.alternate!==null&&D.delete(V.key===null?N:V.key),b=o(V,b,N),P===null?k=V:P.sibling=V,P=V);return e&&D.forEach(function(B){return t(A,B)}),Sr&&$c(A,N),k}function S(A,b,C,x){if(typeof C=="object"&&C!==null&&C.type===Cp&&C.key===null&&(C=C.props.children),typeof C=="object"&&C!==null){switch(C.$$typeof){case _A:e:{for(var k=C.key,P=b;P!==null;){if(P.key===k){if(k=C.type,k===Cp){if(P.tag===7){r(A,P.sibling),b=i(P,C.props.children),b.return=A,A=b;break e}}else if(P.elementType===k||typeof k=="object"&&k!==null&&k.$$typeof===yu&&Fj(k)===P.type){r(A,P.sibling),b=i(P,C.props),b.ref=_v(A,P,C),b.return=A,A=b;break e}r(A,P);break}else t(A,P);P=P.sibling}C.type===Cp?(b=af(C.props.children,A.mode,x,C.key),b.return=A,A=b):(x=S1(C.type,C.key,C.props,null,A.mode,x),x.ref=_v(A,b,C),x.return=A,A=x)}return s(A);case Tp:e:{for(P=C.key;b!==null;){if(b.key===P)if(b.tag===4&&b.stateNode.containerInfo===C.containerInfo&&b.stateNode.implementation===C.implementation){r(A,b.sibling),b=i(b,C.children||[]),b.return=A,A=b;break e}else{r(A,b);break}else t(A,b);b=b.sibling}b=f2(C,A.mode,x),b.return=A,A=b}return s(A);case yu:return P=C._init,S(A,b,P(C._payload),x)}if(ng(C))return w(A,b,C,x);if(Kv(C))return T(A,b,C,x);p1(A,C)}return typeof C=="string"&&C!==""||typeof C=="number"?(C=""+C,b!==null&&b.tag===6?(r(A,b.sibling),b=i(b,C),b.return=A,A=b):(r(A,b),b=c2(C,A.mode,x),b.return=A,A=b),s(A)):r(A,b)}return S}var Qp=sU(!0),lU=sU(!1),Ig={},ys=Iu(Ig),Sg=Iu(Ig),kg=Iu(Ig);function nf(e){if(e===Ig)throw Error(ke(174));return e}function OL(e,t){switch(ur(kg,t),ur(Sg,e),ur(ys,Ig),e=t.nodeType,e){case 9:case 11:t=(t=t.documentElement)?t.namespaceURI:x2(null,"");break;default:e=e===8?t.parentNode:t,t=e.namespaceURI||null,e=e.tagName,t=x2(t,e)}yr(ys),ur(ys,t)}function Wp(){yr(ys),yr(Sg),yr(kg)}function uU(e){nf(kg.current);var t=nf(ys.current),r=x2(t,e.type);t!==r&&(ur(Sg,e),ur(ys,r))}function NL(e){Sg.current===e&&(yr(ys),yr(Sg))}var Pr=Iu(0);function z1(e){for(var t=e;t!==null;){if(t.tag===13){var r=t.memoizedState;if(r!==null&&(r=r.dehydrated,r===null||r.data==="$?"||r.data==="$!"))return t}else if(t.tag===19&&t.memoizedProps.revealOrder!==void 0){if(t.flags&128)return t}else if(t.child!==null){t.child.return=t,t=t.child;continue}if(t===e)break;for(;t.sibling===null;){if(t.return===null||t.return===e)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}return null}var i2=[];function DL(){for(var e=0;er?r:4,e(!0);var n=o2.transition;o2.transition={};try{e(!1),t()}finally{Jt=r,o2.transition=n}}function CU(){return Ko().memoizedState}function ime(e,t,r){var n=Du(e);if(r={lane:n,action:r,hasEagerState:!1,eagerState:null,next:null},SU(e))kU(t,r);else if(r=nU(e,t,r,n),r!==null){var i=Mi();Da(r,e,n,i),OU(r,t,n)}}function ome(e,t,r){var n=Du(e),i={lane:n,action:r,hasEagerState:!1,eagerState:null,next:null};if(SU(e))kU(t,i);else{var o=e.alternate;if(e.lanes===0&&(o===null||o.lanes===0)&&(o=t.lastRenderedReducer,o!==null))try{var s=t.lastRenderedState,l=o(s,r);if(i.hasEagerState=!0,i.eagerState=l,La(l,s)){var c=t.interleaved;c===null?(i.next=i,SL(t)):(i.next=c.next,c.next=i),t.interleaved=i;return}}catch{}finally{}r=nU(e,t,i,n),r!==null&&(i=Mi(),Da(r,e,n,i),OU(r,t,n))}}function SU(e){var t=e.alternate;return e===Rr||t!==null&&t===Rr}function kU(e,t){fg=H1=!0;var r=e.pending;r===null?t.next=t:(t.next=r.next,r.next=t),e.pending=t}function OU(e,t,r){if(r&4194240){var n=t.lanes;n&=e.pendingLanes,r|=n,t.lanes=r,dL(e,r)}}var Q1={readContext:Yo,useCallback:fi,useContext:fi,useEffect:fi,useImperativeHandle:fi,useInsertionEffect:fi,useLayoutEffect:fi,useMemo:fi,useReducer:fi,useRef:fi,useState:fi,useDebugValue:fi,useDeferredValue:fi,useTransition:fi,useMutableSource:fi,useSyncExternalStore:fi,useId:fi,unstable_isNewReconciler:!1},ame={readContext:Yo,useCallback:function(e,t){return hs().memoizedState=[e,t===void 0?null:t],e},useContext:Yo,useEffect:jj,useImperativeHandle:function(e,t,r){return r=r!=null?r.concat([e]):null,w1(4194308,4,AU.bind(null,t,e),r)},useLayoutEffect:function(e,t){return w1(4194308,4,e,t)},useInsertionEffect:function(e,t){return w1(4,2,e,t)},useMemo:function(e,t){var r=hs();return t=t===void 0?null:t,e=e(),r.memoizedState=[e,t],e},useReducer:function(e,t,r){var n=hs();return t=r!==void 0?r(t):t,n.memoizedState=n.baseState=t,e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:t},n.queue=e,e=e.dispatch=ime.bind(null,Rr,e),[n.memoizedState,e]},useRef:function(e){var t=hs();return e={current:e},t.memoizedState=e},useState:qj,useDebugValue:IL,useDeferredValue:function(e){return hs().memoizedState=e},useTransition:function(){var e=qj(!1),t=e[0];return e=nme.bind(null,e[1]),hs().memoizedState=e,[t,e]},useMutableSource:function(){},useSyncExternalStore:function(e,t,r){var n=Rr,i=hs();if(Sr){if(r===void 0)throw Error(ke(407));r=r()}else{if(r=t(),Pn===null)throw Error(ke(349));uf&30||dU(n,t,r)}i.memoizedState=r;var o={value:r,getSnapshot:t};return i.queue=o,jj(mU.bind(null,n,o,e),[e]),n.flags|=2048,Dg(9,pU.bind(null,n,o,r,t),void 0,null),r},useId:function(){var e=hs(),t=Pn.identifierPrefix;if(Sr){var r=cl,n=ul;r=(n&~(1<<32-Na(n)-1)).toString(32)+r,t=":"+t+"R"+r,r=Og++,0<\/script>",e=e.removeChild(e.firstChild)):typeof n.is=="string"?e=s.createElement(r,{is:n.is}):(e=s.createElement(r),r==="select"&&(s=e,n.multiple?s.multiple=!0:n.size&&(s.size=n.size))):e=s.createElementNS(e,r),e[vs]=t,e[Cg]=n,qU(e,t,!1,!1),t.stateNode=e;e:{switch(s=E2(r,n),r){case"dialog":gr("cancel",e),gr("close",e),i=n;break;case"iframe":case"object":case"embed":gr("load",e),i=n;break;case"video":case"audio":for(i=0;iKp&&(t.flags|=128,n=!0,$v(o,!1),t.lanes=4194304)}else{if(!n)if(e=z1(s),e!==null){if(t.flags|=128,n=!0,r=e.updateQueue,r!==null&&(t.updateQueue=r,t.flags|=4),$v(o,!0),o.tail===null&&o.tailMode==="hidden"&&!s.alternate&&!Sr)return di(t),null}else 2*Kr()-o.renderingStartTime>Kp&&r!==1073741824&&(t.flags|=128,n=!0,$v(o,!1),t.lanes=4194304);o.isBackwards?(s.sibling=t.child,t.child=s):(r=o.last,r!==null?r.sibling=s:t.child=s,o.last=s)}return o.tail!==null?(t=o.tail,o.rendering=t,o.tail=t.sibling,o.renderingStartTime=Kr(),t.sibling=null,r=Pr.current,ur(Pr,n?r&1|2:r&1),t):(di(t),null);case 22:case 23:return BL(),n=t.memoizedState!==null,e!==null&&e.memoizedState!==null!==n&&(t.flags|=8192),n&&t.mode&1?ho&1073741824&&(di(t),t.subtreeFlags&6&&(t.flags|=8192)):di(t),null;case 24:return null;case 25:return null}throw Error(ke(156,t.tag))}function mme(e,t){switch(xL(t),t.tag){case 1:return Ki(t.type)&&F1(),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return Wp(),yr(Yi),yr(mi),DL(),e=t.flags,e&65536&&!(e&128)?(t.flags=e&-65537|128,t):null;case 5:return NL(t),null;case 13:if(yr(Pr),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(ke(340));Hp()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return yr(Pr),null;case 4:return Wp(),null;case 10:return CL(t.type._context),null;case 22:case 23:return BL(),null;case 24:return null;default:return null}}var h1=!1,pi=!1,hme=typeof WeakSet=="function"?WeakSet:Set,We=null;function Mp(e,t){var r=e.ref;if(r!==null)if(typeof r=="function")try{r(null)}catch(n){Br(e,t,n)}else r.current=null}function Z2(e,t,r){try{r()}catch(n){Br(e,t,n)}}var Yj=!1;function vme(e,t){if(R2=P1,e=zV(),bL(e)){if("selectionStart"in e)var r={start:e.selectionStart,end:e.selectionEnd};else e:{r=(r=e.ownerDocument)&&r.defaultView||window;var n=r.getSelection&&r.getSelection();if(n&&n.rangeCount!==0){r=n.anchorNode;var i=n.anchorOffset,o=n.focusNode;n=n.focusOffset;try{r.nodeType,o.nodeType}catch{r=null;break e}var s=0,l=-1,c=-1,f=0,m=0,v=e,g=null;t:for(;;){for(var y;v!==r||i!==0&&v.nodeType!==3||(l=s+i),v!==o||n!==0&&v.nodeType!==3||(c=s+n),v.nodeType===3&&(s+=v.nodeValue.length),(y=v.firstChild)!==null;)g=v,v=y;for(;;){if(v===e)break t;if(g===r&&++f===i&&(l=s),g===o&&++m===n&&(c=s),(y=v.nextSibling)!==null)break;v=g,g=v.parentNode}v=y}r=l===-1||c===-1?null:{start:l,end:c}}else r=null}r=r||{start:0,end:0}}else r=null;for(M2={focusedElem:e,selectionRange:r},P1=!1,We=t;We!==null;)if(t=We,e=t.child,(t.subtreeFlags&1028)!==0&&e!==null)e.return=t,We=e;else for(;We!==null;){t=We;try{var w=t.alternate;if(t.flags&1024)switch(t.tag){case 0:case 11:case 15:break;case 1:if(w!==null){var T=w.memoizedProps,S=w.memoizedState,A=t.stateNode,b=A.getSnapshotBeforeUpdate(t.elementType===t.type?T:Sa(t.type,T),S);A.__reactInternalSnapshotBeforeUpdate=b}break;case 3:var C=t.stateNode.containerInfo;C.nodeType===1?C.textContent="":C.nodeType===9&&C.documentElement&&C.removeChild(C.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(ke(163))}}catch(x){Br(t,t.return,x)}if(e=t.sibling,e!==null){e.return=t.return,We=e;break}We=t.return}return w=Yj,Yj=!1,w}function dg(e,t,r){var n=t.updateQueue;if(n=n!==null?n.lastEffect:null,n!==null){var i=n=n.next;do{if((i.tag&e)===e){var o=i.destroy;i.destroy=void 0,o!==void 0&&Z2(t,r,o)}i=i.next}while(i!==n)}}function ox(e,t){if(t=t.updateQueue,t=t!==null?t.lastEffect:null,t!==null){var r=t=t.next;do{if((r.tag&e)===e){var n=r.create;r.destroy=n()}r=r.next}while(r!==t)}}function J2(e){var t=e.ref;if(t!==null){var r=e.stateNode;switch(e.tag){case 5:e=r;break;default:e=r}typeof t=="function"?t(e):t.current=e}}function UU(e){var t=e.alternate;t!==null&&(e.alternate=null,UU(t)),e.child=null,e.deletions=null,e.sibling=null,e.tag===5&&(t=e.stateNode,t!==null&&(delete t[vs],delete t[Cg],delete t[q2],delete t[_pe],delete t[$pe])),e.stateNode=null,e.return=null,e.dependencies=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.stateNode=null,e.updateQueue=null}function BU(e){return e.tag===5||e.tag===3||e.tag===4}function Kj(e){e:for(;;){for(;e.sibling===null;){if(e.return===null||BU(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;e.tag!==5&&e.tag!==6&&e.tag!==18;){if(e.flags&2||e.child===null||e.tag===4)continue e;e.child.return=e,e=e.child}if(!(e.flags&2))return e.stateNode}}function _2(e,t,r){var n=e.tag;if(n===5||n===6)e=e.stateNode,t?r.nodeType===8?r.parentNode.insertBefore(e,t):r.insertBefore(e,t):(r.nodeType===8?(t=r.parentNode,t.insertBefore(e,r)):(t=r,t.appendChild(e)),r=r._reactRootContainer,r!=null||t.onclick!==null||(t.onclick=I1));else if(n!==4&&(e=e.child,e!==null))for(_2(e,t,r),e=e.sibling;e!==null;)_2(e,t,r),e=e.sibling}function $2(e,t,r){var n=e.tag;if(n===5||n===6)e=e.stateNode,t?r.insertBefore(e,t):r.appendChild(e);else if(n!==4&&(e=e.child,e!==null))for($2(e,t,r),e=e.sibling;e!==null;)$2(e,t,r),e=e.sibling}var Yn=null,ka=!1;function gu(e,t,r){for(r=r.child;r!==null;)GU(e,t,r),r=r.sibling}function GU(e,t,r){if(gs&&typeof gs.onCommitFiberUnmount=="function")try{gs.onCommitFiberUnmount(J1,r)}catch{}switch(r.tag){case 5:pi||Mp(r,t);case 6:var n=Yn,i=ka;Yn=null,gu(e,t,r),Yn=n,ka=i,Yn!==null&&(ka?(e=Yn,r=r.stateNode,e.nodeType===8?e.parentNode.removeChild(r):e.removeChild(r)):Yn.removeChild(r.stateNode));break;case 18:Yn!==null&&(ka?(e=Yn,r=r.stateNode,e.nodeType===8?r2(e.parentNode,r):e.nodeType===1&&r2(e,r),Ag(e)):r2(Yn,r.stateNode));break;case 4:n=Yn,i=ka,Yn=r.stateNode.containerInfo,ka=!0,gu(e,t,r),Yn=n,ka=i;break;case 0:case 11:case 14:case 15:if(!pi&&(n=r.updateQueue,n!==null&&(n=n.lastEffect,n!==null))){i=n=n.next;do{var o=i,s=o.destroy;o=o.tag,s!==void 0&&(o&2||o&4)&&Z2(r,t,s),i=i.next}while(i!==n)}gu(e,t,r);break;case 1:if(!pi&&(Mp(r,t),n=r.stateNode,typeof n.componentWillUnmount=="function"))try{n.props=r.memoizedProps,n.state=r.memoizedState,n.componentWillUnmount()}catch(l){Br(r,t,l)}gu(e,t,r);break;case 21:gu(e,t,r);break;case 22:r.mode&1?(pi=(n=pi)||r.memoizedState!==null,gu(e,t,r),pi=n):gu(e,t,r);break;default:gu(e,t,r)}}function Xj(e){var t=e.updateQueue;if(t!==null){e.updateQueue=null;var r=e.stateNode;r===null&&(r=e.stateNode=new hme),t.forEach(function(n){var i=Cme.bind(null,e,n);r.has(n)||(r.add(n),n.then(i,i))})}}function Ca(e,t){var r=t.deletions;if(r!==null)for(var n=0;ni&&(i=s),n&=~o}if(n=i,n=Kr()-n,n=(120>n?120:480>n?480:1080>n?1080:1920>n?1920:3e3>n?3e3:4320>n?4320:1960*yme(n/1960))-n,10e?16:e,Eu===null)var n=!1;else{if(e=Eu,Eu=null,K1=0,It&6)throw Error(ke(331));var i=It;for(It|=4,We=e.current;We!==null;){var o=We,s=o.child;if(We.flags&16){var l=o.deletions;if(l!==null){for(var c=0;cKr()-VL?of(e,0):jL|=r),Xi(e,t)}function ZU(e,t){t===0&&(e.mode&1?(t=r1,r1<<=1,!(r1&130023424)&&(r1=4194304)):t=1);var r=Mi();e=ml(e,t),e!==null&&(Pg(e,t,r),Xi(e,r))}function Tme(e){var t=e.memoizedState,r=0;t!==null&&(r=t.retryLane),ZU(e,r)}function Cme(e,t){var r=0;switch(e.tag){case 13:var n=e.stateNode,i=e.memoizedState;i!==null&&(r=i.retryLane);break;case 19:n=e.stateNode;break;default:throw Error(ke(314))}n!==null&&n.delete(t),ZU(e,r)}var JU;JU=function(e,t,r){if(e!==null)if(e.memoizedProps!==t.pendingProps||Yi.current)Wi=!0;else{if(!(e.lanes&r)&&!(t.flags&128))return Wi=!1,dme(e,t,r);Wi=!!(e.flags&131072)}else Wi=!1,Sr&&t.flags&1048576&&eU(t,V1,t.index);switch(t.lanes=0,t.tag){case 2:var n=t.type;E1(e,t),e=t.pendingProps;var i=zp(t,mi.current);Up(t,r),i=PL(null,t,n,e,i,r);var o=RL();return t.flags|=1,typeof i=="object"&&i!==null&&typeof i.render=="function"&&i.$$typeof===void 0?(t.tag=1,t.memoizedState=null,t.updateQueue=null,Ki(n)?(o=!0,q1(t)):o=!1,t.memoizedState=i.state!==null&&i.state!==void 0?i.state:null,kL(t),i.updater=nx,t.stateNode=i,i._reactInternals=t,z2(t,n,e,r),t=W2(null,t,n,!0,o,r)):(t.tag=0,Sr&&o&&AL(t),Ri(null,t,i,r),t=t.child),t;case 16:n=t.elementType;e:{switch(E1(e,t),e=t.pendingProps,i=n._init,n=i(n._payload),t.type=n,i=t.tag=kme(n),e=Sa(n,e),i){case 0:t=Q2(null,t,n,e,r);break e;case 1:t=Hj(null,t,n,e,r);break e;case 11:t=Gj(null,t,n,e,r);break e;case 14:t=zj(null,t,n,Sa(n.type,e),r);break e}throw Error(ke(306,n,""))}return t;case 0:return n=t.type,i=t.pendingProps,i=t.elementType===n?i:Sa(n,i),Q2(e,t,n,i,r);case 1:return n=t.type,i=t.pendingProps,i=t.elementType===n?i:Sa(n,i),Hj(e,t,n,i,r);case 3:e:{if(MU(t),e===null)throw Error(ke(387));n=t.pendingProps,o=t.memoizedState,i=o.element,iU(e,t),G1(t,n,null,r);var s=t.memoizedState;if(n=s.element,o.isDehydrated)if(o={element:n,isDehydrated:!1,cache:s.cache,pendingSuspenseBoundaries:s.pendingSuspenseBoundaries,transitions:s.transitions},t.updateQueue.baseState=o,t.memoizedState=o,t.flags&256){i=Yp(Error(ke(423)),t),t=Qj(e,t,n,r,i);break e}else if(n!==i){i=Yp(Error(ke(424)),t),t=Qj(e,t,n,r,i);break e}else for(vo=ku(t.stateNode.containerInfo.firstChild),go=t,Sr=!0,Oa=null,r=lU(t,null,n,r),t.child=r;r;)r.flags=r.flags&-3|4096,r=r.sibling;else{if(Hp(),n===i){t=hl(e,t,r);break e}Ri(e,t,n,r)}t=t.child}return t;case 5:return uU(t),e===null&&U2(t),n=t.type,i=t.pendingProps,o=e!==null?e.memoizedProps:null,s=i.children,I2(n,i)?s=null:o!==null&&I2(n,o)&&(t.flags|=32),RU(e,t),Ri(e,t,s,r),t.child;case 6:return e===null&&U2(t),null;case 13:return IU(e,t,r);case 4:return OL(t,t.stateNode.containerInfo),n=t.pendingProps,e===null?t.child=Qp(t,null,n,r):Ri(e,t,n,r),t.child;case 11:return n=t.type,i=t.pendingProps,i=t.elementType===n?i:Sa(n,i),Gj(e,t,n,i,r);case 7:return Ri(e,t,t.pendingProps,r),t.child;case 8:return Ri(e,t,t.pendingProps.children,r),t.child;case 12:return Ri(e,t,t.pendingProps.children,r),t.child;case 10:e:{if(n=t.type._context,i=t.pendingProps,o=t.memoizedProps,s=i.value,ur(U1,n._currentValue),n._currentValue=s,o!==null)if(La(o.value,s)){if(o.children===i.children&&!Yi.current){t=hl(e,t,r);break e}}else for(o=t.child,o!==null&&(o.return=t);o!==null;){var l=o.dependencies;if(l!==null){s=o.child;for(var c=l.firstContext;c!==null;){if(c.context===n){if(o.tag===1){c=fl(-1,r&-r),c.tag=2;var f=o.updateQueue;if(f!==null){f=f.shared;var m=f.pending;m===null?c.next=c:(c.next=m.next,m.next=c),f.pending=c}}o.lanes|=r,c=o.alternate,c!==null&&(c.lanes|=r),B2(o.return,r,t),l.lanes|=r;break}c=c.next}}else if(o.tag===10)s=o.type===t.type?null:o.child;else if(o.tag===18){if(s=o.return,s===null)throw Error(ke(341));s.lanes|=r,l=s.alternate,l!==null&&(l.lanes|=r),B2(s,r,t),s=o.sibling}else s=o.child;if(s!==null)s.return=o;else for(s=o;s!==null;){if(s===t){s=null;break}if(o=s.sibling,o!==null){o.return=s.return,s=o;break}s=s.return}o=s}Ri(e,t,i.children,r),t=t.child}return t;case 9:return i=t.type,n=t.pendingProps.children,Up(t,r),i=Yo(i),n=n(i),t.flags|=1,Ri(e,t,n,r),t.child;case 14:return n=t.type,i=Sa(n,t.pendingProps),i=Sa(n.type,i),zj(e,t,n,i,r);case 15:return LU(e,t,t.type,t.pendingProps,r);case 17:return n=t.type,i=t.pendingProps,i=t.elementType===n?i:Sa(n,i),E1(e,t),t.tag=1,Ki(n)?(e=!0,q1(t)):e=!1,Up(t,r),aU(t,n,i),z2(t,n,i,r),W2(null,t,n,!0,e,r);case 19:return FU(e,t,r);case 22:return PU(e,t,r)}throw Error(ke(156,t.tag))};function _U(e,t){return TV(e,t)}function Sme(e,t,r,n){this.tag=e,this.key=r,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=t,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=n,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function Qo(e,t,r,n){return new Sme(e,t,r,n)}function zL(e){return e=e.prototype,!(!e||!e.isReactComponent)}function kme(e){if(typeof e=="function")return zL(e)?1:0;if(e!=null){if(e=e.$$typeof,e===lL)return 11;if(e===uL)return 14}return 2}function Lu(e,t){var r=e.alternate;return r===null?(r=Qo(e.tag,t,e.key,e.mode),r.elementType=e.elementType,r.type=e.type,r.stateNode=e.stateNode,r.alternate=e,e.alternate=r):(r.pendingProps=t,r.type=e.type,r.flags=0,r.subtreeFlags=0,r.deletions=null),r.flags=e.flags&14680064,r.childLanes=e.childLanes,r.lanes=e.lanes,r.child=e.child,r.memoizedProps=e.memoizedProps,r.memoizedState=e.memoizedState,r.updateQueue=e.updateQueue,t=e.dependencies,r.dependencies=t===null?null:{lanes:t.lanes,firstContext:t.firstContext},r.sibling=e.sibling,r.index=e.index,r.ref=e.ref,r}function S1(e,t,r,n,i,o){var s=2;if(n=e,typeof e=="function")zL(e)&&(s=1);else if(typeof e=="string")s=5;else e:switch(e){case Cp:return af(r.children,i,o,t);case sL:s=8,i|=8;break;case p2:return e=Qo(12,r,t,i|2),e.elementType=p2,e.lanes=o,e;case m2:return e=Qo(13,r,t,i),e.elementType=m2,e.lanes=o,e;case h2:return e=Qo(19,r,t,i),e.elementType=h2,e.lanes=o,e;case sV:return sx(r,i,o,t);default:if(typeof e=="object"&&e!==null)switch(e.$$typeof){case oV:s=10;break e;case aV:s=9;break e;case lL:s=11;break e;case uL:s=14;break e;case yu:s=16,n=null;break e}throw Error(ke(130,e==null?e:typeof e,""))}return t=Qo(s,r,t,i),t.elementType=e,t.type=n,t.lanes=o,t}function af(e,t,r,n){return e=Qo(7,e,n,t),e.lanes=r,e}function sx(e,t,r,n){return e=Qo(22,e,n,t),e.elementType=sV,e.lanes=r,e.stateNode={isHidden:!1},e}function c2(e,t,r){return e=Qo(6,e,null,t),e.lanes=r,e}function f2(e,t,r){return t=Qo(4,e.children!==null?e.children:[],e.key,t),t.lanes=r,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}function Ome(e,t,r,n,i){this.tag=t,this.containerInfo=e,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=KD(0),this.expirationTimes=KD(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=KD(0),this.identifierPrefix=n,this.onRecoverableError=i,this.mutableSourceEagerHydrationData=null}function HL(e,t,r,n,i,o,s,l,c){return e=new Ome(e,t,r,l,c),t===1?(t=1,o===!0&&(t|=8)):t=0,o=Qo(3,null,null,t),e.current=o,o.stateNode=e,o.memoizedState={element:n,isDehydrated:r,cache:null,transitions:null,pendingSuspenseBoundaries:null},kL(o),e}function Nme(e,t,r){var n=3{"use strict";function nB(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(nB)}catch(e){console.error(e)}}nB(),iB.exports=rB()});var nz=X((EPe,sge)=>{sge.exports={Aacute:"\xC1",aacute:"\xE1",Abreve:"\u0102",abreve:"\u0103",ac:"\u223E",acd:"\u223F",acE:"\u223E\u0333",Acirc:"\xC2",acirc:"\xE2",acute:"\xB4",Acy:"\u0410",acy:"\u0430",AElig:"\xC6",aelig:"\xE6",af:"\u2061",Afr:"\u{1D504}",afr:"\u{1D51E}",Agrave:"\xC0",agrave:"\xE0",alefsym:"\u2135",aleph:"\u2135",Alpha:"\u0391",alpha:"\u03B1",Amacr:"\u0100",amacr:"\u0101",amalg:"\u2A3F",amp:"&",AMP:"&",andand:"\u2A55",And:"\u2A53",and:"\u2227",andd:"\u2A5C",andslope:"\u2A58",andv:"\u2A5A",ang:"\u2220",ange:"\u29A4",angle:"\u2220",angmsdaa:"\u29A8",angmsdab:"\u29A9",angmsdac:"\u29AA",angmsdad:"\u29AB",angmsdae:"\u29AC",angmsdaf:"\u29AD",angmsdag:"\u29AE",angmsdah:"\u29AF",angmsd:"\u2221",angrt:"\u221F",angrtvb:"\u22BE",angrtvbd:"\u299D",angsph:"\u2222",angst:"\xC5",angzarr:"\u237C",Aogon:"\u0104",aogon:"\u0105",Aopf:"\u{1D538}",aopf:"\u{1D552}",apacir:"\u2A6F",ap:"\u2248",apE:"\u2A70",ape:"\u224A",apid:"\u224B",apos:"'",ApplyFunction:"\u2061",approx:"\u2248",approxeq:"\u224A",Aring:"\xC5",aring:"\xE5",Ascr:"\u{1D49C}",ascr:"\u{1D4B6}",Assign:"\u2254",ast:"*",asymp:"\u2248",asympeq:"\u224D",Atilde:"\xC3",atilde:"\xE3",Auml:"\xC4",auml:"\xE4",awconint:"\u2233",awint:"\u2A11",backcong:"\u224C",backepsilon:"\u03F6",backprime:"\u2035",backsim:"\u223D",backsimeq:"\u22CD",Backslash:"\u2216",Barv:"\u2AE7",barvee:"\u22BD",barwed:"\u2305",Barwed:"\u2306",barwedge:"\u2305",bbrk:"\u23B5",bbrktbrk:"\u23B6",bcong:"\u224C",Bcy:"\u0411",bcy:"\u0431",bdquo:"\u201E",becaus:"\u2235",because:"\u2235",Because:"\u2235",bemptyv:"\u29B0",bepsi:"\u03F6",bernou:"\u212C",Bernoullis:"\u212C",Beta:"\u0392",beta:"\u03B2",beth:"\u2136",between:"\u226C",Bfr:"\u{1D505}",bfr:"\u{1D51F}",bigcap:"\u22C2",bigcirc:"\u25EF",bigcup:"\u22C3",bigodot:"\u2A00",bigoplus:"\u2A01",bigotimes:"\u2A02",bigsqcup:"\u2A06",bigstar:"\u2605",bigtriangledown:"\u25BD",bigtriangleup:"\u25B3",biguplus:"\u2A04",bigvee:"\u22C1",bigwedge:"\u22C0",bkarow:"\u290D",blacklozenge:"\u29EB",blacksquare:"\u25AA",blacktriangle:"\u25B4",blacktriangledown:"\u25BE",blacktriangleleft:"\u25C2",blacktriangleright:"\u25B8",blank:"\u2423",blk12:"\u2592",blk14:"\u2591",blk34:"\u2593",block:"\u2588",bne:"=\u20E5",bnequiv:"\u2261\u20E5",bNot:"\u2AED",bnot:"\u2310",Bopf:"\u{1D539}",bopf:"\u{1D553}",bot:"\u22A5",bottom:"\u22A5",bowtie:"\u22C8",boxbox:"\u29C9",boxdl:"\u2510",boxdL:"\u2555",boxDl:"\u2556",boxDL:"\u2557",boxdr:"\u250C",boxdR:"\u2552",boxDr:"\u2553",boxDR:"\u2554",boxh:"\u2500",boxH:"\u2550",boxhd:"\u252C",boxHd:"\u2564",boxhD:"\u2565",boxHD:"\u2566",boxhu:"\u2534",boxHu:"\u2567",boxhU:"\u2568",boxHU:"\u2569",boxminus:"\u229F",boxplus:"\u229E",boxtimes:"\u22A0",boxul:"\u2518",boxuL:"\u255B",boxUl:"\u255C",boxUL:"\u255D",boxur:"\u2514",boxuR:"\u2558",boxUr:"\u2559",boxUR:"\u255A",boxv:"\u2502",boxV:"\u2551",boxvh:"\u253C",boxvH:"\u256A",boxVh:"\u256B",boxVH:"\u256C",boxvl:"\u2524",boxvL:"\u2561",boxVl:"\u2562",boxVL:"\u2563",boxvr:"\u251C",boxvR:"\u255E",boxVr:"\u255F",boxVR:"\u2560",bprime:"\u2035",breve:"\u02D8",Breve:"\u02D8",brvbar:"\xA6",bscr:"\u{1D4B7}",Bscr:"\u212C",bsemi:"\u204F",bsim:"\u223D",bsime:"\u22CD",bsolb:"\u29C5",bsol:"\\",bsolhsub:"\u27C8",bull:"\u2022",bullet:"\u2022",bump:"\u224E",bumpE:"\u2AAE",bumpe:"\u224F",Bumpeq:"\u224E",bumpeq:"\u224F",Cacute:"\u0106",cacute:"\u0107",capand:"\u2A44",capbrcup:"\u2A49",capcap:"\u2A4B",cap:"\u2229",Cap:"\u22D2",capcup:"\u2A47",capdot:"\u2A40",CapitalDifferentialD:"\u2145",caps:"\u2229\uFE00",caret:"\u2041",caron:"\u02C7",Cayleys:"\u212D",ccaps:"\u2A4D",Ccaron:"\u010C",ccaron:"\u010D",Ccedil:"\xC7",ccedil:"\xE7",Ccirc:"\u0108",ccirc:"\u0109",Cconint:"\u2230",ccups:"\u2A4C",ccupssm:"\u2A50",Cdot:"\u010A",cdot:"\u010B",cedil:"\xB8",Cedilla:"\xB8",cemptyv:"\u29B2",cent:"\xA2",centerdot:"\xB7",CenterDot:"\xB7",cfr:"\u{1D520}",Cfr:"\u212D",CHcy:"\u0427",chcy:"\u0447",check:"\u2713",checkmark:"\u2713",Chi:"\u03A7",chi:"\u03C7",circ:"\u02C6",circeq:"\u2257",circlearrowleft:"\u21BA",circlearrowright:"\u21BB",circledast:"\u229B",circledcirc:"\u229A",circleddash:"\u229D",CircleDot:"\u2299",circledR:"\xAE",circledS:"\u24C8",CircleMinus:"\u2296",CirclePlus:"\u2295",CircleTimes:"\u2297",cir:"\u25CB",cirE:"\u29C3",cire:"\u2257",cirfnint:"\u2A10",cirmid:"\u2AEF",cirscir:"\u29C2",ClockwiseContourIntegral:"\u2232",CloseCurlyDoubleQuote:"\u201D",CloseCurlyQuote:"\u2019",clubs:"\u2663",clubsuit:"\u2663",colon:":",Colon:"\u2237",Colone:"\u2A74",colone:"\u2254",coloneq:"\u2254",comma:",",commat:"@",comp:"\u2201",compfn:"\u2218",complement:"\u2201",complexes:"\u2102",cong:"\u2245",congdot:"\u2A6D",Congruent:"\u2261",conint:"\u222E",Conint:"\u222F",ContourIntegral:"\u222E",copf:"\u{1D554}",Copf:"\u2102",coprod:"\u2210",Coproduct:"\u2210",copy:"\xA9",COPY:"\xA9",copysr:"\u2117",CounterClockwiseContourIntegral:"\u2233",crarr:"\u21B5",cross:"\u2717",Cross:"\u2A2F",Cscr:"\u{1D49E}",cscr:"\u{1D4B8}",csub:"\u2ACF",csube:"\u2AD1",csup:"\u2AD0",csupe:"\u2AD2",ctdot:"\u22EF",cudarrl:"\u2938",cudarrr:"\u2935",cuepr:"\u22DE",cuesc:"\u22DF",cularr:"\u21B6",cularrp:"\u293D",cupbrcap:"\u2A48",cupcap:"\u2A46",CupCap:"\u224D",cup:"\u222A",Cup:"\u22D3",cupcup:"\u2A4A",cupdot:"\u228D",cupor:"\u2A45",cups:"\u222A\uFE00",curarr:"\u21B7",curarrm:"\u293C",curlyeqprec:"\u22DE",curlyeqsucc:"\u22DF",curlyvee:"\u22CE",curlywedge:"\u22CF",curren:"\xA4",curvearrowleft:"\u21B6",curvearrowright:"\u21B7",cuvee:"\u22CE",cuwed:"\u22CF",cwconint:"\u2232",cwint:"\u2231",cylcty:"\u232D",dagger:"\u2020",Dagger:"\u2021",daleth:"\u2138",darr:"\u2193",Darr:"\u21A1",dArr:"\u21D3",dash:"\u2010",Dashv:"\u2AE4",dashv:"\u22A3",dbkarow:"\u290F",dblac:"\u02DD",Dcaron:"\u010E",dcaron:"\u010F",Dcy:"\u0414",dcy:"\u0434",ddagger:"\u2021",ddarr:"\u21CA",DD:"\u2145",dd:"\u2146",DDotrahd:"\u2911",ddotseq:"\u2A77",deg:"\xB0",Del:"\u2207",Delta:"\u0394",delta:"\u03B4",demptyv:"\u29B1",dfisht:"\u297F",Dfr:"\u{1D507}",dfr:"\u{1D521}",dHar:"\u2965",dharl:"\u21C3",dharr:"\u21C2",DiacriticalAcute:"\xB4",DiacriticalDot:"\u02D9",DiacriticalDoubleAcute:"\u02DD",DiacriticalGrave:"`",DiacriticalTilde:"\u02DC",diam:"\u22C4",diamond:"\u22C4",Diamond:"\u22C4",diamondsuit:"\u2666",diams:"\u2666",die:"\xA8",DifferentialD:"\u2146",digamma:"\u03DD",disin:"\u22F2",div:"\xF7",divide:"\xF7",divideontimes:"\u22C7",divonx:"\u22C7",DJcy:"\u0402",djcy:"\u0452",dlcorn:"\u231E",dlcrop:"\u230D",dollar:"$",Dopf:"\u{1D53B}",dopf:"\u{1D555}",Dot:"\xA8",dot:"\u02D9",DotDot:"\u20DC",doteq:"\u2250",doteqdot:"\u2251",DotEqual:"\u2250",dotminus:"\u2238",dotplus:"\u2214",dotsquare:"\u22A1",doublebarwedge:"\u2306",DoubleContourIntegral:"\u222F",DoubleDot:"\xA8",DoubleDownArrow:"\u21D3",DoubleLeftArrow:"\u21D0",DoubleLeftRightArrow:"\u21D4",DoubleLeftTee:"\u2AE4",DoubleLongLeftArrow:"\u27F8",DoubleLongLeftRightArrow:"\u27FA",DoubleLongRightArrow:"\u27F9",DoubleRightArrow:"\u21D2",DoubleRightTee:"\u22A8",DoubleUpArrow:"\u21D1",DoubleUpDownArrow:"\u21D5",DoubleVerticalBar:"\u2225",DownArrowBar:"\u2913",downarrow:"\u2193",DownArrow:"\u2193",Downarrow:"\u21D3",DownArrowUpArrow:"\u21F5",DownBreve:"\u0311",downdownarrows:"\u21CA",downharpoonleft:"\u21C3",downharpoonright:"\u21C2",DownLeftRightVector:"\u2950",DownLeftTeeVector:"\u295E",DownLeftVectorBar:"\u2956",DownLeftVector:"\u21BD",DownRightTeeVector:"\u295F",DownRightVectorBar:"\u2957",DownRightVector:"\u21C1",DownTeeArrow:"\u21A7",DownTee:"\u22A4",drbkarow:"\u2910",drcorn:"\u231F",drcrop:"\u230C",Dscr:"\u{1D49F}",dscr:"\u{1D4B9}",DScy:"\u0405",dscy:"\u0455",dsol:"\u29F6",Dstrok:"\u0110",dstrok:"\u0111",dtdot:"\u22F1",dtri:"\u25BF",dtrif:"\u25BE",duarr:"\u21F5",duhar:"\u296F",dwangle:"\u29A6",DZcy:"\u040F",dzcy:"\u045F",dzigrarr:"\u27FF",Eacute:"\xC9",eacute:"\xE9",easter:"\u2A6E",Ecaron:"\u011A",ecaron:"\u011B",Ecirc:"\xCA",ecirc:"\xEA",ecir:"\u2256",ecolon:"\u2255",Ecy:"\u042D",ecy:"\u044D",eDDot:"\u2A77",Edot:"\u0116",edot:"\u0117",eDot:"\u2251",ee:"\u2147",efDot:"\u2252",Efr:"\u{1D508}",efr:"\u{1D522}",eg:"\u2A9A",Egrave:"\xC8",egrave:"\xE8",egs:"\u2A96",egsdot:"\u2A98",el:"\u2A99",Element:"\u2208",elinters:"\u23E7",ell:"\u2113",els:"\u2A95",elsdot:"\u2A97",Emacr:"\u0112",emacr:"\u0113",empty:"\u2205",emptyset:"\u2205",EmptySmallSquare:"\u25FB",emptyv:"\u2205",EmptyVerySmallSquare:"\u25AB",emsp13:"\u2004",emsp14:"\u2005",emsp:"\u2003",ENG:"\u014A",eng:"\u014B",ensp:"\u2002",Eogon:"\u0118",eogon:"\u0119",Eopf:"\u{1D53C}",eopf:"\u{1D556}",epar:"\u22D5",eparsl:"\u29E3",eplus:"\u2A71",epsi:"\u03B5",Epsilon:"\u0395",epsilon:"\u03B5",epsiv:"\u03F5",eqcirc:"\u2256",eqcolon:"\u2255",eqsim:"\u2242",eqslantgtr:"\u2A96",eqslantless:"\u2A95",Equal:"\u2A75",equals:"=",EqualTilde:"\u2242",equest:"\u225F",Equilibrium:"\u21CC",equiv:"\u2261",equivDD:"\u2A78",eqvparsl:"\u29E5",erarr:"\u2971",erDot:"\u2253",escr:"\u212F",Escr:"\u2130",esdot:"\u2250",Esim:"\u2A73",esim:"\u2242",Eta:"\u0397",eta:"\u03B7",ETH:"\xD0",eth:"\xF0",Euml:"\xCB",euml:"\xEB",euro:"\u20AC",excl:"!",exist:"\u2203",Exists:"\u2203",expectation:"\u2130",exponentiale:"\u2147",ExponentialE:"\u2147",fallingdotseq:"\u2252",Fcy:"\u0424",fcy:"\u0444",female:"\u2640",ffilig:"\uFB03",fflig:"\uFB00",ffllig:"\uFB04",Ffr:"\u{1D509}",ffr:"\u{1D523}",filig:"\uFB01",FilledSmallSquare:"\u25FC",FilledVerySmallSquare:"\u25AA",fjlig:"fj",flat:"\u266D",fllig:"\uFB02",fltns:"\u25B1",fnof:"\u0192",Fopf:"\u{1D53D}",fopf:"\u{1D557}",forall:"\u2200",ForAll:"\u2200",fork:"\u22D4",forkv:"\u2AD9",Fouriertrf:"\u2131",fpartint:"\u2A0D",frac12:"\xBD",frac13:"\u2153",frac14:"\xBC",frac15:"\u2155",frac16:"\u2159",frac18:"\u215B",frac23:"\u2154",frac25:"\u2156",frac34:"\xBE",frac35:"\u2157",frac38:"\u215C",frac45:"\u2158",frac56:"\u215A",frac58:"\u215D",frac78:"\u215E",frasl:"\u2044",frown:"\u2322",fscr:"\u{1D4BB}",Fscr:"\u2131",gacute:"\u01F5",Gamma:"\u0393",gamma:"\u03B3",Gammad:"\u03DC",gammad:"\u03DD",gap:"\u2A86",Gbreve:"\u011E",gbreve:"\u011F",Gcedil:"\u0122",Gcirc:"\u011C",gcirc:"\u011D",Gcy:"\u0413",gcy:"\u0433",Gdot:"\u0120",gdot:"\u0121",ge:"\u2265",gE:"\u2267",gEl:"\u2A8C",gel:"\u22DB",geq:"\u2265",geqq:"\u2267",geqslant:"\u2A7E",gescc:"\u2AA9",ges:"\u2A7E",gesdot:"\u2A80",gesdoto:"\u2A82",gesdotol:"\u2A84",gesl:"\u22DB\uFE00",gesles:"\u2A94",Gfr:"\u{1D50A}",gfr:"\u{1D524}",gg:"\u226B",Gg:"\u22D9",ggg:"\u22D9",gimel:"\u2137",GJcy:"\u0403",gjcy:"\u0453",gla:"\u2AA5",gl:"\u2277",glE:"\u2A92",glj:"\u2AA4",gnap:"\u2A8A",gnapprox:"\u2A8A",gne:"\u2A88",gnE:"\u2269",gneq:"\u2A88",gneqq:"\u2269",gnsim:"\u22E7",Gopf:"\u{1D53E}",gopf:"\u{1D558}",grave:"`",GreaterEqual:"\u2265",GreaterEqualLess:"\u22DB",GreaterFullEqual:"\u2267",GreaterGreater:"\u2AA2",GreaterLess:"\u2277",GreaterSlantEqual:"\u2A7E",GreaterTilde:"\u2273",Gscr:"\u{1D4A2}",gscr:"\u210A",gsim:"\u2273",gsime:"\u2A8E",gsiml:"\u2A90",gtcc:"\u2AA7",gtcir:"\u2A7A",gt:">",GT:">",Gt:"\u226B",gtdot:"\u22D7",gtlPar:"\u2995",gtquest:"\u2A7C",gtrapprox:"\u2A86",gtrarr:"\u2978",gtrdot:"\u22D7",gtreqless:"\u22DB",gtreqqless:"\u2A8C",gtrless:"\u2277",gtrsim:"\u2273",gvertneqq:"\u2269\uFE00",gvnE:"\u2269\uFE00",Hacek:"\u02C7",hairsp:"\u200A",half:"\xBD",hamilt:"\u210B",HARDcy:"\u042A",hardcy:"\u044A",harrcir:"\u2948",harr:"\u2194",hArr:"\u21D4",harrw:"\u21AD",Hat:"^",hbar:"\u210F",Hcirc:"\u0124",hcirc:"\u0125",hearts:"\u2665",heartsuit:"\u2665",hellip:"\u2026",hercon:"\u22B9",hfr:"\u{1D525}",Hfr:"\u210C",HilbertSpace:"\u210B",hksearow:"\u2925",hkswarow:"\u2926",hoarr:"\u21FF",homtht:"\u223B",hookleftarrow:"\u21A9",hookrightarrow:"\u21AA",hopf:"\u{1D559}",Hopf:"\u210D",horbar:"\u2015",HorizontalLine:"\u2500",hscr:"\u{1D4BD}",Hscr:"\u210B",hslash:"\u210F",Hstrok:"\u0126",hstrok:"\u0127",HumpDownHump:"\u224E",HumpEqual:"\u224F",hybull:"\u2043",hyphen:"\u2010",Iacute:"\xCD",iacute:"\xED",ic:"\u2063",Icirc:"\xCE",icirc:"\xEE",Icy:"\u0418",icy:"\u0438",Idot:"\u0130",IEcy:"\u0415",iecy:"\u0435",iexcl:"\xA1",iff:"\u21D4",ifr:"\u{1D526}",Ifr:"\u2111",Igrave:"\xCC",igrave:"\xEC",ii:"\u2148",iiiint:"\u2A0C",iiint:"\u222D",iinfin:"\u29DC",iiota:"\u2129",IJlig:"\u0132",ijlig:"\u0133",Imacr:"\u012A",imacr:"\u012B",image:"\u2111",ImaginaryI:"\u2148",imagline:"\u2110",imagpart:"\u2111",imath:"\u0131",Im:"\u2111",imof:"\u22B7",imped:"\u01B5",Implies:"\u21D2",incare:"\u2105",in:"\u2208",infin:"\u221E",infintie:"\u29DD",inodot:"\u0131",intcal:"\u22BA",int:"\u222B",Int:"\u222C",integers:"\u2124",Integral:"\u222B",intercal:"\u22BA",Intersection:"\u22C2",intlarhk:"\u2A17",intprod:"\u2A3C",InvisibleComma:"\u2063",InvisibleTimes:"\u2062",IOcy:"\u0401",iocy:"\u0451",Iogon:"\u012E",iogon:"\u012F",Iopf:"\u{1D540}",iopf:"\u{1D55A}",Iota:"\u0399",iota:"\u03B9",iprod:"\u2A3C",iquest:"\xBF",iscr:"\u{1D4BE}",Iscr:"\u2110",isin:"\u2208",isindot:"\u22F5",isinE:"\u22F9",isins:"\u22F4",isinsv:"\u22F3",isinv:"\u2208",it:"\u2062",Itilde:"\u0128",itilde:"\u0129",Iukcy:"\u0406",iukcy:"\u0456",Iuml:"\xCF",iuml:"\xEF",Jcirc:"\u0134",jcirc:"\u0135",Jcy:"\u0419",jcy:"\u0439",Jfr:"\u{1D50D}",jfr:"\u{1D527}",jmath:"\u0237",Jopf:"\u{1D541}",jopf:"\u{1D55B}",Jscr:"\u{1D4A5}",jscr:"\u{1D4BF}",Jsercy:"\u0408",jsercy:"\u0458",Jukcy:"\u0404",jukcy:"\u0454",Kappa:"\u039A",kappa:"\u03BA",kappav:"\u03F0",Kcedil:"\u0136",kcedil:"\u0137",Kcy:"\u041A",kcy:"\u043A",Kfr:"\u{1D50E}",kfr:"\u{1D528}",kgreen:"\u0138",KHcy:"\u0425",khcy:"\u0445",KJcy:"\u040C",kjcy:"\u045C",Kopf:"\u{1D542}",kopf:"\u{1D55C}",Kscr:"\u{1D4A6}",kscr:"\u{1D4C0}",lAarr:"\u21DA",Lacute:"\u0139",lacute:"\u013A",laemptyv:"\u29B4",lagran:"\u2112",Lambda:"\u039B",lambda:"\u03BB",lang:"\u27E8",Lang:"\u27EA",langd:"\u2991",langle:"\u27E8",lap:"\u2A85",Laplacetrf:"\u2112",laquo:"\xAB",larrb:"\u21E4",larrbfs:"\u291F",larr:"\u2190",Larr:"\u219E",lArr:"\u21D0",larrfs:"\u291D",larrhk:"\u21A9",larrlp:"\u21AB",larrpl:"\u2939",larrsim:"\u2973",larrtl:"\u21A2",latail:"\u2919",lAtail:"\u291B",lat:"\u2AAB",late:"\u2AAD",lates:"\u2AAD\uFE00",lbarr:"\u290C",lBarr:"\u290E",lbbrk:"\u2772",lbrace:"{",lbrack:"[",lbrke:"\u298B",lbrksld:"\u298F",lbrkslu:"\u298D",Lcaron:"\u013D",lcaron:"\u013E",Lcedil:"\u013B",lcedil:"\u013C",lceil:"\u2308",lcub:"{",Lcy:"\u041B",lcy:"\u043B",ldca:"\u2936",ldquo:"\u201C",ldquor:"\u201E",ldrdhar:"\u2967",ldrushar:"\u294B",ldsh:"\u21B2",le:"\u2264",lE:"\u2266",LeftAngleBracket:"\u27E8",LeftArrowBar:"\u21E4",leftarrow:"\u2190",LeftArrow:"\u2190",Leftarrow:"\u21D0",LeftArrowRightArrow:"\u21C6",leftarrowtail:"\u21A2",LeftCeiling:"\u2308",LeftDoubleBracket:"\u27E6",LeftDownTeeVector:"\u2961",LeftDownVectorBar:"\u2959",LeftDownVector:"\u21C3",LeftFloor:"\u230A",leftharpoondown:"\u21BD",leftharpoonup:"\u21BC",leftleftarrows:"\u21C7",leftrightarrow:"\u2194",LeftRightArrow:"\u2194",Leftrightarrow:"\u21D4",leftrightarrows:"\u21C6",leftrightharpoons:"\u21CB",leftrightsquigarrow:"\u21AD",LeftRightVector:"\u294E",LeftTeeArrow:"\u21A4",LeftTee:"\u22A3",LeftTeeVector:"\u295A",leftthreetimes:"\u22CB",LeftTriangleBar:"\u29CF",LeftTriangle:"\u22B2",LeftTriangleEqual:"\u22B4",LeftUpDownVector:"\u2951",LeftUpTeeVector:"\u2960",LeftUpVectorBar:"\u2958",LeftUpVector:"\u21BF",LeftVectorBar:"\u2952",LeftVector:"\u21BC",lEg:"\u2A8B",leg:"\u22DA",leq:"\u2264",leqq:"\u2266",leqslant:"\u2A7D",lescc:"\u2AA8",les:"\u2A7D",lesdot:"\u2A7F",lesdoto:"\u2A81",lesdotor:"\u2A83",lesg:"\u22DA\uFE00",lesges:"\u2A93",lessapprox:"\u2A85",lessdot:"\u22D6",lesseqgtr:"\u22DA",lesseqqgtr:"\u2A8B",LessEqualGreater:"\u22DA",LessFullEqual:"\u2266",LessGreater:"\u2276",lessgtr:"\u2276",LessLess:"\u2AA1",lesssim:"\u2272",LessSlantEqual:"\u2A7D",LessTilde:"\u2272",lfisht:"\u297C",lfloor:"\u230A",Lfr:"\u{1D50F}",lfr:"\u{1D529}",lg:"\u2276",lgE:"\u2A91",lHar:"\u2962",lhard:"\u21BD",lharu:"\u21BC",lharul:"\u296A",lhblk:"\u2584",LJcy:"\u0409",ljcy:"\u0459",llarr:"\u21C7",ll:"\u226A",Ll:"\u22D8",llcorner:"\u231E",Lleftarrow:"\u21DA",llhard:"\u296B",lltri:"\u25FA",Lmidot:"\u013F",lmidot:"\u0140",lmoustache:"\u23B0",lmoust:"\u23B0",lnap:"\u2A89",lnapprox:"\u2A89",lne:"\u2A87",lnE:"\u2268",lneq:"\u2A87",lneqq:"\u2268",lnsim:"\u22E6",loang:"\u27EC",loarr:"\u21FD",lobrk:"\u27E6",longleftarrow:"\u27F5",LongLeftArrow:"\u27F5",Longleftarrow:"\u27F8",longleftrightarrow:"\u27F7",LongLeftRightArrow:"\u27F7",Longleftrightarrow:"\u27FA",longmapsto:"\u27FC",longrightarrow:"\u27F6",LongRightArrow:"\u27F6",Longrightarrow:"\u27F9",looparrowleft:"\u21AB",looparrowright:"\u21AC",lopar:"\u2985",Lopf:"\u{1D543}",lopf:"\u{1D55D}",loplus:"\u2A2D",lotimes:"\u2A34",lowast:"\u2217",lowbar:"_",LowerLeftArrow:"\u2199",LowerRightArrow:"\u2198",loz:"\u25CA",lozenge:"\u25CA",lozf:"\u29EB",lpar:"(",lparlt:"\u2993",lrarr:"\u21C6",lrcorner:"\u231F",lrhar:"\u21CB",lrhard:"\u296D",lrm:"\u200E",lrtri:"\u22BF",lsaquo:"\u2039",lscr:"\u{1D4C1}",Lscr:"\u2112",lsh:"\u21B0",Lsh:"\u21B0",lsim:"\u2272",lsime:"\u2A8D",lsimg:"\u2A8F",lsqb:"[",lsquo:"\u2018",lsquor:"\u201A",Lstrok:"\u0141",lstrok:"\u0142",ltcc:"\u2AA6",ltcir:"\u2A79",lt:"<",LT:"<",Lt:"\u226A",ltdot:"\u22D6",lthree:"\u22CB",ltimes:"\u22C9",ltlarr:"\u2976",ltquest:"\u2A7B",ltri:"\u25C3",ltrie:"\u22B4",ltrif:"\u25C2",ltrPar:"\u2996",lurdshar:"\u294A",luruhar:"\u2966",lvertneqq:"\u2268\uFE00",lvnE:"\u2268\uFE00",macr:"\xAF",male:"\u2642",malt:"\u2720",maltese:"\u2720",Map:"\u2905",map:"\u21A6",mapsto:"\u21A6",mapstodown:"\u21A7",mapstoleft:"\u21A4",mapstoup:"\u21A5",marker:"\u25AE",mcomma:"\u2A29",Mcy:"\u041C",mcy:"\u043C",mdash:"\u2014",mDDot:"\u223A",measuredangle:"\u2221",MediumSpace:"\u205F",Mellintrf:"\u2133",Mfr:"\u{1D510}",mfr:"\u{1D52A}",mho:"\u2127",micro:"\xB5",midast:"*",midcir:"\u2AF0",mid:"\u2223",middot:"\xB7",minusb:"\u229F",minus:"\u2212",minusd:"\u2238",minusdu:"\u2A2A",MinusPlus:"\u2213",mlcp:"\u2ADB",mldr:"\u2026",mnplus:"\u2213",models:"\u22A7",Mopf:"\u{1D544}",mopf:"\u{1D55E}",mp:"\u2213",mscr:"\u{1D4C2}",Mscr:"\u2133",mstpos:"\u223E",Mu:"\u039C",mu:"\u03BC",multimap:"\u22B8",mumap:"\u22B8",nabla:"\u2207",Nacute:"\u0143",nacute:"\u0144",nang:"\u2220\u20D2",nap:"\u2249",napE:"\u2A70\u0338",napid:"\u224B\u0338",napos:"\u0149",napprox:"\u2249",natural:"\u266E",naturals:"\u2115",natur:"\u266E",nbsp:"\xA0",nbump:"\u224E\u0338",nbumpe:"\u224F\u0338",ncap:"\u2A43",Ncaron:"\u0147",ncaron:"\u0148",Ncedil:"\u0145",ncedil:"\u0146",ncong:"\u2247",ncongdot:"\u2A6D\u0338",ncup:"\u2A42",Ncy:"\u041D",ncy:"\u043D",ndash:"\u2013",nearhk:"\u2924",nearr:"\u2197",neArr:"\u21D7",nearrow:"\u2197",ne:"\u2260",nedot:"\u2250\u0338",NegativeMediumSpace:"\u200B",NegativeThickSpace:"\u200B",NegativeThinSpace:"\u200B",NegativeVeryThinSpace:"\u200B",nequiv:"\u2262",nesear:"\u2928",nesim:"\u2242\u0338",NestedGreaterGreater:"\u226B",NestedLessLess:"\u226A",NewLine:` -`,nexist:"\u2204",nexists:"\u2204",Nfr:"\u{1D511}",nfr:"\u{1D52B}",ngE:"\u2267\u0338",nge:"\u2271",ngeq:"\u2271",ngeqq:"\u2267\u0338",ngeqslant:"\u2A7E\u0338",nges:"\u2A7E\u0338",nGg:"\u22D9\u0338",ngsim:"\u2275",nGt:"\u226B\u20D2",ngt:"\u226F",ngtr:"\u226F",nGtv:"\u226B\u0338",nharr:"\u21AE",nhArr:"\u21CE",nhpar:"\u2AF2",ni:"\u220B",nis:"\u22FC",nisd:"\u22FA",niv:"\u220B",NJcy:"\u040A",njcy:"\u045A",nlarr:"\u219A",nlArr:"\u21CD",nldr:"\u2025",nlE:"\u2266\u0338",nle:"\u2270",nleftarrow:"\u219A",nLeftarrow:"\u21CD",nleftrightarrow:"\u21AE",nLeftrightarrow:"\u21CE",nleq:"\u2270",nleqq:"\u2266\u0338",nleqslant:"\u2A7D\u0338",nles:"\u2A7D\u0338",nless:"\u226E",nLl:"\u22D8\u0338",nlsim:"\u2274",nLt:"\u226A\u20D2",nlt:"\u226E",nltri:"\u22EA",nltrie:"\u22EC",nLtv:"\u226A\u0338",nmid:"\u2224",NoBreak:"\u2060",NonBreakingSpace:"\xA0",nopf:"\u{1D55F}",Nopf:"\u2115",Not:"\u2AEC",not:"\xAC",NotCongruent:"\u2262",NotCupCap:"\u226D",NotDoubleVerticalBar:"\u2226",NotElement:"\u2209",NotEqual:"\u2260",NotEqualTilde:"\u2242\u0338",NotExists:"\u2204",NotGreater:"\u226F",NotGreaterEqual:"\u2271",NotGreaterFullEqual:"\u2267\u0338",NotGreaterGreater:"\u226B\u0338",NotGreaterLess:"\u2279",NotGreaterSlantEqual:"\u2A7E\u0338",NotGreaterTilde:"\u2275",NotHumpDownHump:"\u224E\u0338",NotHumpEqual:"\u224F\u0338",notin:"\u2209",notindot:"\u22F5\u0338",notinE:"\u22F9\u0338",notinva:"\u2209",notinvb:"\u22F7",notinvc:"\u22F6",NotLeftTriangleBar:"\u29CF\u0338",NotLeftTriangle:"\u22EA",NotLeftTriangleEqual:"\u22EC",NotLess:"\u226E",NotLessEqual:"\u2270",NotLessGreater:"\u2278",NotLessLess:"\u226A\u0338",NotLessSlantEqual:"\u2A7D\u0338",NotLessTilde:"\u2274",NotNestedGreaterGreater:"\u2AA2\u0338",NotNestedLessLess:"\u2AA1\u0338",notni:"\u220C",notniva:"\u220C",notnivb:"\u22FE",notnivc:"\u22FD",NotPrecedes:"\u2280",NotPrecedesEqual:"\u2AAF\u0338",NotPrecedesSlantEqual:"\u22E0",NotReverseElement:"\u220C",NotRightTriangleBar:"\u29D0\u0338",NotRightTriangle:"\u22EB",NotRightTriangleEqual:"\u22ED",NotSquareSubset:"\u228F\u0338",NotSquareSubsetEqual:"\u22E2",NotSquareSuperset:"\u2290\u0338",NotSquareSupersetEqual:"\u22E3",NotSubset:"\u2282\u20D2",NotSubsetEqual:"\u2288",NotSucceeds:"\u2281",NotSucceedsEqual:"\u2AB0\u0338",NotSucceedsSlantEqual:"\u22E1",NotSucceedsTilde:"\u227F\u0338",NotSuperset:"\u2283\u20D2",NotSupersetEqual:"\u2289",NotTilde:"\u2241",NotTildeEqual:"\u2244",NotTildeFullEqual:"\u2247",NotTildeTilde:"\u2249",NotVerticalBar:"\u2224",nparallel:"\u2226",npar:"\u2226",nparsl:"\u2AFD\u20E5",npart:"\u2202\u0338",npolint:"\u2A14",npr:"\u2280",nprcue:"\u22E0",nprec:"\u2280",npreceq:"\u2AAF\u0338",npre:"\u2AAF\u0338",nrarrc:"\u2933\u0338",nrarr:"\u219B",nrArr:"\u21CF",nrarrw:"\u219D\u0338",nrightarrow:"\u219B",nRightarrow:"\u21CF",nrtri:"\u22EB",nrtrie:"\u22ED",nsc:"\u2281",nsccue:"\u22E1",nsce:"\u2AB0\u0338",Nscr:"\u{1D4A9}",nscr:"\u{1D4C3}",nshortmid:"\u2224",nshortparallel:"\u2226",nsim:"\u2241",nsime:"\u2244",nsimeq:"\u2244",nsmid:"\u2224",nspar:"\u2226",nsqsube:"\u22E2",nsqsupe:"\u22E3",nsub:"\u2284",nsubE:"\u2AC5\u0338",nsube:"\u2288",nsubset:"\u2282\u20D2",nsubseteq:"\u2288",nsubseteqq:"\u2AC5\u0338",nsucc:"\u2281",nsucceq:"\u2AB0\u0338",nsup:"\u2285",nsupE:"\u2AC6\u0338",nsupe:"\u2289",nsupset:"\u2283\u20D2",nsupseteq:"\u2289",nsupseteqq:"\u2AC6\u0338",ntgl:"\u2279",Ntilde:"\xD1",ntilde:"\xF1",ntlg:"\u2278",ntriangleleft:"\u22EA",ntrianglelefteq:"\u22EC",ntriangleright:"\u22EB",ntrianglerighteq:"\u22ED",Nu:"\u039D",nu:"\u03BD",num:"#",numero:"\u2116",numsp:"\u2007",nvap:"\u224D\u20D2",nvdash:"\u22AC",nvDash:"\u22AD",nVdash:"\u22AE",nVDash:"\u22AF",nvge:"\u2265\u20D2",nvgt:">\u20D2",nvHarr:"\u2904",nvinfin:"\u29DE",nvlArr:"\u2902",nvle:"\u2264\u20D2",nvlt:"<\u20D2",nvltrie:"\u22B4\u20D2",nvrArr:"\u2903",nvrtrie:"\u22B5\u20D2",nvsim:"\u223C\u20D2",nwarhk:"\u2923",nwarr:"\u2196",nwArr:"\u21D6",nwarrow:"\u2196",nwnear:"\u2927",Oacute:"\xD3",oacute:"\xF3",oast:"\u229B",Ocirc:"\xD4",ocirc:"\xF4",ocir:"\u229A",Ocy:"\u041E",ocy:"\u043E",odash:"\u229D",Odblac:"\u0150",odblac:"\u0151",odiv:"\u2A38",odot:"\u2299",odsold:"\u29BC",OElig:"\u0152",oelig:"\u0153",ofcir:"\u29BF",Ofr:"\u{1D512}",ofr:"\u{1D52C}",ogon:"\u02DB",Ograve:"\xD2",ograve:"\xF2",ogt:"\u29C1",ohbar:"\u29B5",ohm:"\u03A9",oint:"\u222E",olarr:"\u21BA",olcir:"\u29BE",olcross:"\u29BB",oline:"\u203E",olt:"\u29C0",Omacr:"\u014C",omacr:"\u014D",Omega:"\u03A9",omega:"\u03C9",Omicron:"\u039F",omicron:"\u03BF",omid:"\u29B6",ominus:"\u2296",Oopf:"\u{1D546}",oopf:"\u{1D560}",opar:"\u29B7",OpenCurlyDoubleQuote:"\u201C",OpenCurlyQuote:"\u2018",operp:"\u29B9",oplus:"\u2295",orarr:"\u21BB",Or:"\u2A54",or:"\u2228",ord:"\u2A5D",order:"\u2134",orderof:"\u2134",ordf:"\xAA",ordm:"\xBA",origof:"\u22B6",oror:"\u2A56",orslope:"\u2A57",orv:"\u2A5B",oS:"\u24C8",Oscr:"\u{1D4AA}",oscr:"\u2134",Oslash:"\xD8",oslash:"\xF8",osol:"\u2298",Otilde:"\xD5",otilde:"\xF5",otimesas:"\u2A36",Otimes:"\u2A37",otimes:"\u2297",Ouml:"\xD6",ouml:"\xF6",ovbar:"\u233D",OverBar:"\u203E",OverBrace:"\u23DE",OverBracket:"\u23B4",OverParenthesis:"\u23DC",para:"\xB6",parallel:"\u2225",par:"\u2225",parsim:"\u2AF3",parsl:"\u2AFD",part:"\u2202",PartialD:"\u2202",Pcy:"\u041F",pcy:"\u043F",percnt:"%",period:".",permil:"\u2030",perp:"\u22A5",pertenk:"\u2031",Pfr:"\u{1D513}",pfr:"\u{1D52D}",Phi:"\u03A6",phi:"\u03C6",phiv:"\u03D5",phmmat:"\u2133",phone:"\u260E",Pi:"\u03A0",pi:"\u03C0",pitchfork:"\u22D4",piv:"\u03D6",planck:"\u210F",planckh:"\u210E",plankv:"\u210F",plusacir:"\u2A23",plusb:"\u229E",pluscir:"\u2A22",plus:"+",plusdo:"\u2214",plusdu:"\u2A25",pluse:"\u2A72",PlusMinus:"\xB1",plusmn:"\xB1",plussim:"\u2A26",plustwo:"\u2A27",pm:"\xB1",Poincareplane:"\u210C",pointint:"\u2A15",popf:"\u{1D561}",Popf:"\u2119",pound:"\xA3",prap:"\u2AB7",Pr:"\u2ABB",pr:"\u227A",prcue:"\u227C",precapprox:"\u2AB7",prec:"\u227A",preccurlyeq:"\u227C",Precedes:"\u227A",PrecedesEqual:"\u2AAF",PrecedesSlantEqual:"\u227C",PrecedesTilde:"\u227E",preceq:"\u2AAF",precnapprox:"\u2AB9",precneqq:"\u2AB5",precnsim:"\u22E8",pre:"\u2AAF",prE:"\u2AB3",precsim:"\u227E",prime:"\u2032",Prime:"\u2033",primes:"\u2119",prnap:"\u2AB9",prnE:"\u2AB5",prnsim:"\u22E8",prod:"\u220F",Product:"\u220F",profalar:"\u232E",profline:"\u2312",profsurf:"\u2313",prop:"\u221D",Proportional:"\u221D",Proportion:"\u2237",propto:"\u221D",prsim:"\u227E",prurel:"\u22B0",Pscr:"\u{1D4AB}",pscr:"\u{1D4C5}",Psi:"\u03A8",psi:"\u03C8",puncsp:"\u2008",Qfr:"\u{1D514}",qfr:"\u{1D52E}",qint:"\u2A0C",qopf:"\u{1D562}",Qopf:"\u211A",qprime:"\u2057",Qscr:"\u{1D4AC}",qscr:"\u{1D4C6}",quaternions:"\u210D",quatint:"\u2A16",quest:"?",questeq:"\u225F",quot:'"',QUOT:'"',rAarr:"\u21DB",race:"\u223D\u0331",Racute:"\u0154",racute:"\u0155",radic:"\u221A",raemptyv:"\u29B3",rang:"\u27E9",Rang:"\u27EB",rangd:"\u2992",range:"\u29A5",rangle:"\u27E9",raquo:"\xBB",rarrap:"\u2975",rarrb:"\u21E5",rarrbfs:"\u2920",rarrc:"\u2933",rarr:"\u2192",Rarr:"\u21A0",rArr:"\u21D2",rarrfs:"\u291E",rarrhk:"\u21AA",rarrlp:"\u21AC",rarrpl:"\u2945",rarrsim:"\u2974",Rarrtl:"\u2916",rarrtl:"\u21A3",rarrw:"\u219D",ratail:"\u291A",rAtail:"\u291C",ratio:"\u2236",rationals:"\u211A",rbarr:"\u290D",rBarr:"\u290F",RBarr:"\u2910",rbbrk:"\u2773",rbrace:"}",rbrack:"]",rbrke:"\u298C",rbrksld:"\u298E",rbrkslu:"\u2990",Rcaron:"\u0158",rcaron:"\u0159",Rcedil:"\u0156",rcedil:"\u0157",rceil:"\u2309",rcub:"}",Rcy:"\u0420",rcy:"\u0440",rdca:"\u2937",rdldhar:"\u2969",rdquo:"\u201D",rdquor:"\u201D",rdsh:"\u21B3",real:"\u211C",realine:"\u211B",realpart:"\u211C",reals:"\u211D",Re:"\u211C",rect:"\u25AD",reg:"\xAE",REG:"\xAE",ReverseElement:"\u220B",ReverseEquilibrium:"\u21CB",ReverseUpEquilibrium:"\u296F",rfisht:"\u297D",rfloor:"\u230B",rfr:"\u{1D52F}",Rfr:"\u211C",rHar:"\u2964",rhard:"\u21C1",rharu:"\u21C0",rharul:"\u296C",Rho:"\u03A1",rho:"\u03C1",rhov:"\u03F1",RightAngleBracket:"\u27E9",RightArrowBar:"\u21E5",rightarrow:"\u2192",RightArrow:"\u2192",Rightarrow:"\u21D2",RightArrowLeftArrow:"\u21C4",rightarrowtail:"\u21A3",RightCeiling:"\u2309",RightDoubleBracket:"\u27E7",RightDownTeeVector:"\u295D",RightDownVectorBar:"\u2955",RightDownVector:"\u21C2",RightFloor:"\u230B",rightharpoondown:"\u21C1",rightharpoonup:"\u21C0",rightleftarrows:"\u21C4",rightleftharpoons:"\u21CC",rightrightarrows:"\u21C9",rightsquigarrow:"\u219D",RightTeeArrow:"\u21A6",RightTee:"\u22A2",RightTeeVector:"\u295B",rightthreetimes:"\u22CC",RightTriangleBar:"\u29D0",RightTriangle:"\u22B3",RightTriangleEqual:"\u22B5",RightUpDownVector:"\u294F",RightUpTeeVector:"\u295C",RightUpVectorBar:"\u2954",RightUpVector:"\u21BE",RightVectorBar:"\u2953",RightVector:"\u21C0",ring:"\u02DA",risingdotseq:"\u2253",rlarr:"\u21C4",rlhar:"\u21CC",rlm:"\u200F",rmoustache:"\u23B1",rmoust:"\u23B1",rnmid:"\u2AEE",roang:"\u27ED",roarr:"\u21FE",robrk:"\u27E7",ropar:"\u2986",ropf:"\u{1D563}",Ropf:"\u211D",roplus:"\u2A2E",rotimes:"\u2A35",RoundImplies:"\u2970",rpar:")",rpargt:"\u2994",rppolint:"\u2A12",rrarr:"\u21C9",Rrightarrow:"\u21DB",rsaquo:"\u203A",rscr:"\u{1D4C7}",Rscr:"\u211B",rsh:"\u21B1",Rsh:"\u21B1",rsqb:"]",rsquo:"\u2019",rsquor:"\u2019",rthree:"\u22CC",rtimes:"\u22CA",rtri:"\u25B9",rtrie:"\u22B5",rtrif:"\u25B8",rtriltri:"\u29CE",RuleDelayed:"\u29F4",ruluhar:"\u2968",rx:"\u211E",Sacute:"\u015A",sacute:"\u015B",sbquo:"\u201A",scap:"\u2AB8",Scaron:"\u0160",scaron:"\u0161",Sc:"\u2ABC",sc:"\u227B",sccue:"\u227D",sce:"\u2AB0",scE:"\u2AB4",Scedil:"\u015E",scedil:"\u015F",Scirc:"\u015C",scirc:"\u015D",scnap:"\u2ABA",scnE:"\u2AB6",scnsim:"\u22E9",scpolint:"\u2A13",scsim:"\u227F",Scy:"\u0421",scy:"\u0441",sdotb:"\u22A1",sdot:"\u22C5",sdote:"\u2A66",searhk:"\u2925",searr:"\u2198",seArr:"\u21D8",searrow:"\u2198",sect:"\xA7",semi:";",seswar:"\u2929",setminus:"\u2216",setmn:"\u2216",sext:"\u2736",Sfr:"\u{1D516}",sfr:"\u{1D530}",sfrown:"\u2322",sharp:"\u266F",SHCHcy:"\u0429",shchcy:"\u0449",SHcy:"\u0428",shcy:"\u0448",ShortDownArrow:"\u2193",ShortLeftArrow:"\u2190",shortmid:"\u2223",shortparallel:"\u2225",ShortRightArrow:"\u2192",ShortUpArrow:"\u2191",shy:"\xAD",Sigma:"\u03A3",sigma:"\u03C3",sigmaf:"\u03C2",sigmav:"\u03C2",sim:"\u223C",simdot:"\u2A6A",sime:"\u2243",simeq:"\u2243",simg:"\u2A9E",simgE:"\u2AA0",siml:"\u2A9D",simlE:"\u2A9F",simne:"\u2246",simplus:"\u2A24",simrarr:"\u2972",slarr:"\u2190",SmallCircle:"\u2218",smallsetminus:"\u2216",smashp:"\u2A33",smeparsl:"\u29E4",smid:"\u2223",smile:"\u2323",smt:"\u2AAA",smte:"\u2AAC",smtes:"\u2AAC\uFE00",SOFTcy:"\u042C",softcy:"\u044C",solbar:"\u233F",solb:"\u29C4",sol:"/",Sopf:"\u{1D54A}",sopf:"\u{1D564}",spades:"\u2660",spadesuit:"\u2660",spar:"\u2225",sqcap:"\u2293",sqcaps:"\u2293\uFE00",sqcup:"\u2294",sqcups:"\u2294\uFE00",Sqrt:"\u221A",sqsub:"\u228F",sqsube:"\u2291",sqsubset:"\u228F",sqsubseteq:"\u2291",sqsup:"\u2290",sqsupe:"\u2292",sqsupset:"\u2290",sqsupseteq:"\u2292",square:"\u25A1",Square:"\u25A1",SquareIntersection:"\u2293",SquareSubset:"\u228F",SquareSubsetEqual:"\u2291",SquareSuperset:"\u2290",SquareSupersetEqual:"\u2292",SquareUnion:"\u2294",squarf:"\u25AA",squ:"\u25A1",squf:"\u25AA",srarr:"\u2192",Sscr:"\u{1D4AE}",sscr:"\u{1D4C8}",ssetmn:"\u2216",ssmile:"\u2323",sstarf:"\u22C6",Star:"\u22C6",star:"\u2606",starf:"\u2605",straightepsilon:"\u03F5",straightphi:"\u03D5",strns:"\xAF",sub:"\u2282",Sub:"\u22D0",subdot:"\u2ABD",subE:"\u2AC5",sube:"\u2286",subedot:"\u2AC3",submult:"\u2AC1",subnE:"\u2ACB",subne:"\u228A",subplus:"\u2ABF",subrarr:"\u2979",subset:"\u2282",Subset:"\u22D0",subseteq:"\u2286",subseteqq:"\u2AC5",SubsetEqual:"\u2286",subsetneq:"\u228A",subsetneqq:"\u2ACB",subsim:"\u2AC7",subsub:"\u2AD5",subsup:"\u2AD3",succapprox:"\u2AB8",succ:"\u227B",succcurlyeq:"\u227D",Succeeds:"\u227B",SucceedsEqual:"\u2AB0",SucceedsSlantEqual:"\u227D",SucceedsTilde:"\u227F",succeq:"\u2AB0",succnapprox:"\u2ABA",succneqq:"\u2AB6",succnsim:"\u22E9",succsim:"\u227F",SuchThat:"\u220B",sum:"\u2211",Sum:"\u2211",sung:"\u266A",sup1:"\xB9",sup2:"\xB2",sup3:"\xB3",sup:"\u2283",Sup:"\u22D1",supdot:"\u2ABE",supdsub:"\u2AD8",supE:"\u2AC6",supe:"\u2287",supedot:"\u2AC4",Superset:"\u2283",SupersetEqual:"\u2287",suphsol:"\u27C9",suphsub:"\u2AD7",suplarr:"\u297B",supmult:"\u2AC2",supnE:"\u2ACC",supne:"\u228B",supplus:"\u2AC0",supset:"\u2283",Supset:"\u22D1",supseteq:"\u2287",supseteqq:"\u2AC6",supsetneq:"\u228B",supsetneqq:"\u2ACC",supsim:"\u2AC8",supsub:"\u2AD4",supsup:"\u2AD6",swarhk:"\u2926",swarr:"\u2199",swArr:"\u21D9",swarrow:"\u2199",swnwar:"\u292A",szlig:"\xDF",Tab:" ",target:"\u2316",Tau:"\u03A4",tau:"\u03C4",tbrk:"\u23B4",Tcaron:"\u0164",tcaron:"\u0165",Tcedil:"\u0162",tcedil:"\u0163",Tcy:"\u0422",tcy:"\u0442",tdot:"\u20DB",telrec:"\u2315",Tfr:"\u{1D517}",tfr:"\u{1D531}",there4:"\u2234",therefore:"\u2234",Therefore:"\u2234",Theta:"\u0398",theta:"\u03B8",thetasym:"\u03D1",thetav:"\u03D1",thickapprox:"\u2248",thicksim:"\u223C",ThickSpace:"\u205F\u200A",ThinSpace:"\u2009",thinsp:"\u2009",thkap:"\u2248",thksim:"\u223C",THORN:"\xDE",thorn:"\xFE",tilde:"\u02DC",Tilde:"\u223C",TildeEqual:"\u2243",TildeFullEqual:"\u2245",TildeTilde:"\u2248",timesbar:"\u2A31",timesb:"\u22A0",times:"\xD7",timesd:"\u2A30",tint:"\u222D",toea:"\u2928",topbot:"\u2336",topcir:"\u2AF1",top:"\u22A4",Topf:"\u{1D54B}",topf:"\u{1D565}",topfork:"\u2ADA",tosa:"\u2929",tprime:"\u2034",trade:"\u2122",TRADE:"\u2122",triangle:"\u25B5",triangledown:"\u25BF",triangleleft:"\u25C3",trianglelefteq:"\u22B4",triangleq:"\u225C",triangleright:"\u25B9",trianglerighteq:"\u22B5",tridot:"\u25EC",trie:"\u225C",triminus:"\u2A3A",TripleDot:"\u20DB",triplus:"\u2A39",trisb:"\u29CD",tritime:"\u2A3B",trpezium:"\u23E2",Tscr:"\u{1D4AF}",tscr:"\u{1D4C9}",TScy:"\u0426",tscy:"\u0446",TSHcy:"\u040B",tshcy:"\u045B",Tstrok:"\u0166",tstrok:"\u0167",twixt:"\u226C",twoheadleftarrow:"\u219E",twoheadrightarrow:"\u21A0",Uacute:"\xDA",uacute:"\xFA",uarr:"\u2191",Uarr:"\u219F",uArr:"\u21D1",Uarrocir:"\u2949",Ubrcy:"\u040E",ubrcy:"\u045E",Ubreve:"\u016C",ubreve:"\u016D",Ucirc:"\xDB",ucirc:"\xFB",Ucy:"\u0423",ucy:"\u0443",udarr:"\u21C5",Udblac:"\u0170",udblac:"\u0171",udhar:"\u296E",ufisht:"\u297E",Ufr:"\u{1D518}",ufr:"\u{1D532}",Ugrave:"\xD9",ugrave:"\xF9",uHar:"\u2963",uharl:"\u21BF",uharr:"\u21BE",uhblk:"\u2580",ulcorn:"\u231C",ulcorner:"\u231C",ulcrop:"\u230F",ultri:"\u25F8",Umacr:"\u016A",umacr:"\u016B",uml:"\xA8",UnderBar:"_",UnderBrace:"\u23DF",UnderBracket:"\u23B5",UnderParenthesis:"\u23DD",Union:"\u22C3",UnionPlus:"\u228E",Uogon:"\u0172",uogon:"\u0173",Uopf:"\u{1D54C}",uopf:"\u{1D566}",UpArrowBar:"\u2912",uparrow:"\u2191",UpArrow:"\u2191",Uparrow:"\u21D1",UpArrowDownArrow:"\u21C5",updownarrow:"\u2195",UpDownArrow:"\u2195",Updownarrow:"\u21D5",UpEquilibrium:"\u296E",upharpoonleft:"\u21BF",upharpoonright:"\u21BE",uplus:"\u228E",UpperLeftArrow:"\u2196",UpperRightArrow:"\u2197",upsi:"\u03C5",Upsi:"\u03D2",upsih:"\u03D2",Upsilon:"\u03A5",upsilon:"\u03C5",UpTeeArrow:"\u21A5",UpTee:"\u22A5",upuparrows:"\u21C8",urcorn:"\u231D",urcorner:"\u231D",urcrop:"\u230E",Uring:"\u016E",uring:"\u016F",urtri:"\u25F9",Uscr:"\u{1D4B0}",uscr:"\u{1D4CA}",utdot:"\u22F0",Utilde:"\u0168",utilde:"\u0169",utri:"\u25B5",utrif:"\u25B4",uuarr:"\u21C8",Uuml:"\xDC",uuml:"\xFC",uwangle:"\u29A7",vangrt:"\u299C",varepsilon:"\u03F5",varkappa:"\u03F0",varnothing:"\u2205",varphi:"\u03D5",varpi:"\u03D6",varpropto:"\u221D",varr:"\u2195",vArr:"\u21D5",varrho:"\u03F1",varsigma:"\u03C2",varsubsetneq:"\u228A\uFE00",varsubsetneqq:"\u2ACB\uFE00",varsupsetneq:"\u228B\uFE00",varsupsetneqq:"\u2ACC\uFE00",vartheta:"\u03D1",vartriangleleft:"\u22B2",vartriangleright:"\u22B3",vBar:"\u2AE8",Vbar:"\u2AEB",vBarv:"\u2AE9",Vcy:"\u0412",vcy:"\u0432",vdash:"\u22A2",vDash:"\u22A8",Vdash:"\u22A9",VDash:"\u22AB",Vdashl:"\u2AE6",veebar:"\u22BB",vee:"\u2228",Vee:"\u22C1",veeeq:"\u225A",vellip:"\u22EE",verbar:"|",Verbar:"\u2016",vert:"|",Vert:"\u2016",VerticalBar:"\u2223",VerticalLine:"|",VerticalSeparator:"\u2758",VerticalTilde:"\u2240",VeryThinSpace:"\u200A",Vfr:"\u{1D519}",vfr:"\u{1D533}",vltri:"\u22B2",vnsub:"\u2282\u20D2",vnsup:"\u2283\u20D2",Vopf:"\u{1D54D}",vopf:"\u{1D567}",vprop:"\u221D",vrtri:"\u22B3",Vscr:"\u{1D4B1}",vscr:"\u{1D4CB}",vsubnE:"\u2ACB\uFE00",vsubne:"\u228A\uFE00",vsupnE:"\u2ACC\uFE00",vsupne:"\u228B\uFE00",Vvdash:"\u22AA",vzigzag:"\u299A",Wcirc:"\u0174",wcirc:"\u0175",wedbar:"\u2A5F",wedge:"\u2227",Wedge:"\u22C0",wedgeq:"\u2259",weierp:"\u2118",Wfr:"\u{1D51A}",wfr:"\u{1D534}",Wopf:"\u{1D54E}",wopf:"\u{1D568}",wp:"\u2118",wr:"\u2240",wreath:"\u2240",Wscr:"\u{1D4B2}",wscr:"\u{1D4CC}",xcap:"\u22C2",xcirc:"\u25EF",xcup:"\u22C3",xdtri:"\u25BD",Xfr:"\u{1D51B}",xfr:"\u{1D535}",xharr:"\u27F7",xhArr:"\u27FA",Xi:"\u039E",xi:"\u03BE",xlarr:"\u27F5",xlArr:"\u27F8",xmap:"\u27FC",xnis:"\u22FB",xodot:"\u2A00",Xopf:"\u{1D54F}",xopf:"\u{1D569}",xoplus:"\u2A01",xotime:"\u2A02",xrarr:"\u27F6",xrArr:"\u27F9",Xscr:"\u{1D4B3}",xscr:"\u{1D4CD}",xsqcup:"\u2A06",xuplus:"\u2A04",xutri:"\u25B3",xvee:"\u22C1",xwedge:"\u22C0",Yacute:"\xDD",yacute:"\xFD",YAcy:"\u042F",yacy:"\u044F",Ycirc:"\u0176",ycirc:"\u0177",Ycy:"\u042B",ycy:"\u044B",yen:"\xA5",Yfr:"\u{1D51C}",yfr:"\u{1D536}",YIcy:"\u0407",yicy:"\u0457",Yopf:"\u{1D550}",yopf:"\u{1D56A}",Yscr:"\u{1D4B4}",yscr:"\u{1D4CE}",YUcy:"\u042E",yucy:"\u044E",yuml:"\xFF",Yuml:"\u0178",Zacute:"\u0179",zacute:"\u017A",Zcaron:"\u017D",zcaron:"\u017E",Zcy:"\u0417",zcy:"\u0437",Zdot:"\u017B",zdot:"\u017C",zeetrf:"\u2128",ZeroWidthSpace:"\u200B",Zeta:"\u0396",zeta:"\u03B6",zfr:"\u{1D537}",Zfr:"\u2128",ZHcy:"\u0416",zhcy:"\u0436",zigrarr:"\u21DD",zopf:"\u{1D56B}",Zopf:"\u2124",Zscr:"\u{1D4B5}",zscr:"\u{1D4CF}",zwj:"\u200D",zwnj:"\u200C"}});var LP=X((TPe,iz)=>{"use strict";iz.exports=nz()});var Xx=X((CPe,oz)=>{oz.exports=/[!-#%-\*,-\/:;\?@\[-\]_\{\}\xA1\xA7\xAB\xB6\xB7\xBB\xBF\u037E\u0387\u055A-\u055F\u0589\u058A\u05BE\u05C0\u05C3\u05C6\u05F3\u05F4\u0609\u060A\u060C\u060D\u061B\u061E\u061F\u066A-\u066D\u06D4\u0700-\u070D\u07F7-\u07F9\u0830-\u083E\u085E\u0964\u0965\u0970\u09FD\u0A76\u0AF0\u0C84\u0DF4\u0E4F\u0E5A\u0E5B\u0F04-\u0F12\u0F14\u0F3A-\u0F3D\u0F85\u0FD0-\u0FD4\u0FD9\u0FDA\u104A-\u104F\u10FB\u1360-\u1368\u1400\u166D\u166E\u169B\u169C\u16EB-\u16ED\u1735\u1736\u17D4-\u17D6\u17D8-\u17DA\u1800-\u180A\u1944\u1945\u1A1E\u1A1F\u1AA0-\u1AA6\u1AA8-\u1AAD\u1B5A-\u1B60\u1BFC-\u1BFF\u1C3B-\u1C3F\u1C7E\u1C7F\u1CC0-\u1CC7\u1CD3\u2010-\u2027\u2030-\u2043\u2045-\u2051\u2053-\u205E\u207D\u207E\u208D\u208E\u2308-\u230B\u2329\u232A\u2768-\u2775\u27C5\u27C6\u27E6-\u27EF\u2983-\u2998\u29D8-\u29DB\u29FC\u29FD\u2CF9-\u2CFC\u2CFE\u2CFF\u2D70\u2E00-\u2E2E\u2E30-\u2E4E\u3001-\u3003\u3008-\u3011\u3014-\u301F\u3030\u303D\u30A0\u30FB\uA4FE\uA4FF\uA60D-\uA60F\uA673\uA67E\uA6F2-\uA6F7\uA874-\uA877\uA8CE\uA8CF\uA8F8-\uA8FA\uA8FC\uA92E\uA92F\uA95F\uA9C1-\uA9CD\uA9DE\uA9DF\uAA5C-\uAA5F\uAADE\uAADF\uAAF0\uAAF1\uABEB\uFD3E\uFD3F\uFE10-\uFE19\uFE30-\uFE52\uFE54-\uFE61\uFE63\uFE68\uFE6A\uFE6B\uFF01-\uFF03\uFF05-\uFF0A\uFF0C-\uFF0F\uFF1A\uFF1B\uFF1F\uFF20\uFF3B-\uFF3D\uFF3F\uFF5B\uFF5D\uFF5F-\uFF65]|\uD800[\uDD00-\uDD02\uDF9F\uDFD0]|\uD801\uDD6F|\uD802[\uDC57\uDD1F\uDD3F\uDE50-\uDE58\uDE7F\uDEF0-\uDEF6\uDF39-\uDF3F\uDF99-\uDF9C]|\uD803[\uDF55-\uDF59]|\uD804[\uDC47-\uDC4D\uDCBB\uDCBC\uDCBE-\uDCC1\uDD40-\uDD43\uDD74\uDD75\uDDC5-\uDDC8\uDDCD\uDDDB\uDDDD-\uDDDF\uDE38-\uDE3D\uDEA9]|\uD805[\uDC4B-\uDC4F\uDC5B\uDC5D\uDCC6\uDDC1-\uDDD7\uDE41-\uDE43\uDE60-\uDE6C\uDF3C-\uDF3E]|\uD806[\uDC3B\uDE3F-\uDE46\uDE9A-\uDE9C\uDE9E-\uDEA2]|\uD807[\uDC41-\uDC45\uDC70\uDC71\uDEF7\uDEF8]|\uD809[\uDC70-\uDC74]|\uD81A[\uDE6E\uDE6F\uDEF5\uDF37-\uDF3B\uDF44]|\uD81B[\uDE97-\uDE9A]|\uD82F\uDC9F|\uD836[\uDE87-\uDE8B]|\uD83A[\uDD5E\uDD5F]/});var lz=X((SPe,sz)=>{"use strict";var az={};function lge(e){var t,r,n=az[e];if(n)return n;for(n=az[e]=[],t=0;t<128;t++)r=String.fromCharCode(t),/^[0-9a-z]$/i.test(r)?n.push(r):n.push("%"+("0"+t.toString(16).toUpperCase()).slice(-2));for(t=0;t"u"&&(r=!0),l=lge(t),n=0,i=e.length;n=55296&&o<=57343){if(o>=55296&&o<=56319&&n+1=56320&&s<=57343)){c+=encodeURIComponent(e[n]+e[n+1]),n++;continue}c+="%EF%BF%BD";continue}c+=encodeURIComponent(e[n])}return c}Zx.defaultChars=";/?:@&=+$,-_.!~*'()#";Zx.componentChars="-_.!~*'()";sz.exports=Zx});var fz=X((kPe,cz)=>{"use strict";var uz={};function uge(e){var t,r,n=uz[e];if(n)return n;for(n=uz[e]=[],t=0;t<128;t++)r=String.fromCharCode(t),n.push(r);for(t=0;t=55296&&m<=57343?v+="\uFFFD\uFFFD\uFFFD":v+=String.fromCharCode(m),i+=6;continue}if((s&248)===240&&i+91114111?v+="\uFFFD\uFFFD\uFFFD\uFFFD":(m-=65536,v+=String.fromCharCode(55296+(m>>10),56320+(m&1023))),i+=9;continue}v+="\uFFFD"}return v})}Jx.defaultChars=";/?:@&=+$,#";Jx.componentChars="";cz.exports=Jx});var pz=X((OPe,dz)=>{"use strict";dz.exports=function(t){var r="";return r+=t.protocol||"",r+=t.slashes?"//":"",r+=t.auth?t.auth+"@":"",t.hostname&&t.hostname.indexOf(":")!==-1?r+="["+t.hostname+"]":r+=t.hostname||"",r+=t.port?":"+t.port:"",r+=t.pathname||"",r+=t.search||"",r+=t.hash||"",r}});var Az=X((NPe,bz)=>{"use strict";function _x(){this.protocol=null,this.slashes=null,this.auth=null,this.port=null,this.hostname=null,this.hash=null,this.search=null,this.pathname=null}var cge=/^([a-z0-9.+-]+:)/i,fge=/:[0-9]*$/,dge=/^(\/\/?(?!\/)[^\?\s]*)(\?[^\s]*)?$/,pge=["<",">",'"',"`"," ","\r",` -`," "],mge=["{","}","|","\\","^","`"].concat(pge),hge=["'"].concat(mge),mz=["%","/","?",";","#"].concat(hge),hz=["/","?","#"],vge=255,vz=/^[+a-z0-9A-Z_-]{0,63}$/,gge=/^([+a-z0-9A-Z_-]{0,63})(.*)$/,gz={javascript:!0,"javascript:":!0},yz={http:!0,https:!0,ftp:!0,gopher:!0,file:!0,"http:":!0,"https:":!0,"ftp:":!0,"gopher:":!0,"file:":!0};function yge(e,t){if(e&&e instanceof _x)return e;var r=new _x;return r.parse(e,t),r}_x.prototype.parse=function(e,t){var r,n,i,o,s,l=e;if(l=l.trim(),!t&&e.split("#").length===1){var c=dge.exec(l);if(c)return this.pathname=c[1],c[2]&&(this.search=c[2]),this}var f=cge.exec(l);if(f&&(f=f[0],i=f.toLowerCase(),this.protocol=f,l=l.substr(f.length)),(t||f||l.match(/^\/\/[^@\/]+@[^@\/]+/))&&(s=l.substr(0,2)==="//",s&&!(f&&gz[f])&&(l=l.substr(2),this.slashes=!0)),!gz[f]&&(s||f&&!yz[f])){var m=-1;for(r=0;r127?A+="x":A+=S[b];if(!A.match(vz)){var x=T.slice(0,r),k=T.slice(r+1),P=S.match(gge);P&&(x.push(P[1]),k.unshift(P[2])),k.length&&(l=k.join(".")+l),this.hostname=x.join(".");break}}}}this.hostname.length>vge&&(this.hostname=""),w&&(this.hostname=this.hostname.substr(1,this.hostname.length-2))}var D=l.indexOf("#");D!==-1&&(this.hash=l.substr(D),l=l.slice(0,D));var N=l.indexOf("?");return N!==-1&&(this.search=l.substr(N),l=l.slice(0,N)),l&&(this.pathname=l),yz[i]&&this.hostname&&!this.pathname&&(this.pathname=""),this};_x.prototype.parseHost=function(e){var t=fge.exec(e);t&&(t=t[0],t!==":"&&(this.port=t.substr(1)),e=e.substr(0,e.length-t.length)),e&&(this.hostname=e)};bz.exports=yge});var PP=X((DPe,Kg)=>{"use strict";Kg.exports.encode=lz();Kg.exports.decode=fz();Kg.exports.format=pz();Kg.exports.parse=Az()});var RP=X((LPe,xz)=>{xz.exports=/[\0-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/});var MP=X((PPe,wz)=>{wz.exports=/[\0-\x1F\x7F-\x9F]/});var Tz=X((RPe,Ez)=>{Ez.exports=/[\xAD\u0600-\u0605\u061C\u06DD\u070F\u08E2\u180E\u200B-\u200F\u202A-\u202E\u2060-\u2064\u2066-\u206F\uFEFF\uFFF9-\uFFFB]|\uD804[\uDCBD\uDCCD]|\uD82F[\uDCA0-\uDCA3]|\uD834[\uDD73-\uDD7A]|\uDB40[\uDC01\uDC20-\uDC7F]/});var IP=X((MPe,Cz)=>{Cz.exports=/[ \xA0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000]/});var Sz=X(sm=>{"use strict";sm.Any=RP();sm.Cc=MP();sm.Cf=Tz();sm.P=Xx();sm.Z=IP()});var Ht=X(En=>{"use strict";function bge(e){return Object.prototype.toString.call(e)}function Age(e){return bge(e)==="[object String]"}var xge=Object.prototype.hasOwnProperty;function Oz(e,t){return xge.call(e,t)}function wge(e){var t=Array.prototype.slice.call(arguments,1);return t.forEach(function(r){if(r){if(typeof r!="object")throw new TypeError(r+"must be object");Object.keys(r).forEach(function(n){e[n]=r[n]})}}),e}function Ege(e,t,r){return[].concat(e.slice(0,t),r,e.slice(t+1))}function Nz(e){return!(e>=55296&&e<=57343||e>=64976&&e<=65007||(e&65535)===65535||(e&65535)===65534||e>=0&&e<=8||e===11||e>=14&&e<=31||e>=127&&e<=159||e>1114111)}function Dz(e){if(e>65535){e-=65536;var t=55296+(e>>10),r=56320+(e&1023);return String.fromCharCode(t,r)}return String.fromCharCode(e)}var Lz=/\\([!"#$%&'()*+,\-.\/:;<=>?@[\\\]^_`{|}~])/g,Tge=/&([a-z#][a-z0-9]{1,31});/gi,Cge=new RegExp(Lz.source+"|"+Tge.source,"gi"),Sge=/^#((?:x[a-f0-9]{1,8}|[0-9]{1,8}))/i,kz=LP();function kge(e,t){var r=0;return Oz(kz,t)?kz[t]:t.charCodeAt(0)===35&&Sge.test(t)&&(r=t[1].toLowerCase()==="x"?parseInt(t.slice(2),16):parseInt(t.slice(1),10),Nz(r))?Dz(r):e}function Oge(e){return e.indexOf("\\")<0?e:e.replace(Lz,"$1")}function Nge(e){return e.indexOf("\\")<0&&e.indexOf("&")<0?e:e.replace(Cge,function(t,r,n){return r||kge(t,n)})}var Dge=/[&<>"]/,Lge=/[&<>"]/g,Pge={"&":"&","<":"<",">":">",'"':"""};function Rge(e){return Pge[e]}function Mge(e){return Dge.test(e)?e.replace(Lge,Rge):e}var Ige=/[.?*+^$[\]\\(){}|-]/g;function Fge(e){return e.replace(Ige,"\\$&")}function qge(e){switch(e){case 9:case 32:return!0}return!1}function jge(e){if(e>=8192&&e<=8202)return!0;switch(e){case 9:case 10:case 11:case 12:case 13:case 32:case 160:case 5760:case 8239:case 8287:case 12288:return!0}return!1}var Vge=Xx();function Uge(e){return Vge.test(e)}function Bge(e){switch(e){case 33:case 34:case 35:case 36:case 37:case 38:case 39:case 40:case 41:case 42:case 43:case 44:case 45:case 46:case 47:case 58:case 59:case 60:case 61:case 62:case 63:case 64:case 91:case 92:case 93:case 94:case 95:case 96:case 123:case 124:case 125:case 126:return!0;default:return!1}}function Gge(e){return e=e.trim().replace(/\s+/g," "),"\u1E9E".toLowerCase()==="\u1E7E"&&(e=e.replace(/ẞ/g,"\xDF")),e.toLowerCase().toUpperCase()}En.lib={};En.lib.mdurl=PP();En.lib.ucmicro=Sz();En.assign=wge;En.isString=Age;En.has=Oz;En.unescapeMd=Oge;En.unescapeAll=Nge;En.isValidEntityCode=Nz;En.fromCodePoint=Dz;En.escapeHtml=Mge;En.arrayReplaceAt=Ege;En.isSpace=qge;En.isWhiteSpace=jge;En.isMdAsciiPunct=Bge;En.isPunctChar=Uge;En.escapeRE=Fge;En.normalizeReference=Gge});var Rz=X((qPe,Pz)=>{"use strict";Pz.exports=function(t,r,n){var i,o,s,l,c=-1,f=t.posMax,m=t.pos;for(t.pos=r+1,i=1;t.pos{"use strict";var Mz=Ht().unescapeAll;Iz.exports=function(t,r,n){var i,o,s=0,l=r,c={ok:!1,pos:0,lines:0,str:""};if(t.charCodeAt(r)===60){for(r++;r32))return c;if(i===41){if(o===0)break;o--}r++}return l===r||o!==0||(c.str=Mz(t.slice(l,r)),c.lines=s,c.pos=r,c.ok=!0),c}});var jz=X((VPe,qz)=>{"use strict";var zge=Ht().unescapeAll;qz.exports=function(t,r,n){var i,o,s=0,l=r,c={ok:!1,pos:0,lines:0,str:""};if(r>=n||(o=t.charCodeAt(r),o!==34&&o!==39&&o!==40))return c;for(r++,o===40&&(o=41);r{"use strict";$x.parseLinkLabel=Rz();$x.parseLinkDestination=Fz();$x.parseLinkTitle=jz()});var Bz=X((BPe,Uz)=>{"use strict";var Hge=Ht().assign,Qge=Ht().unescapeAll,Sf=Ht().escapeHtml,Ss={};Ss.code_inline=function(e,t,r,n,i){var o=e[t];return""+Sf(e[t].content)+"
"};Ss.code_block=function(e,t,r,n,i){var o=e[t];return""+Sf(e[t].content)+` -`};Ss.fence=function(e,t,r,n,i){var o=e[t],s=o.info?Qge(o.info).trim():"",l="",c="",f,m,v,g,y;return s&&(v=s.split(/(\s+)/g),l=v[0],c=v.slice(2).join("")),r.highlight?f=r.highlight(o.content,l,c)||Sf(o.content):f=Sf(o.content),f.indexOf(""+f+`
-`):"
"+f+`
-`};Ss.image=function(e,t,r,n,i){var o=e[t];return o.attrs[o.attrIndex("alt")][1]=i.renderInlineAsText(o.children,r,n),i.renderToken(e,t,r)};Ss.hardbreak=function(e,t,r){return r.xhtmlOut?`
-`:`
-`};Ss.softbreak=function(e,t,r){return r.breaks?r.xhtmlOut?`
-`:`
-`:` -`};Ss.text=function(e,t){return Sf(e[t].content)};Ss.html_block=function(e,t){return e[t].content};Ss.html_inline=function(e,t){return e[t].content};function lm(){this.rules=Hge({},Ss)}lm.prototype.renderAttrs=function(t){var r,n,i;if(!t.attrs)return"";for(i="",r=0,n=t.attrs.length;r -`:">",o)};lm.prototype.renderInline=function(e,t,r){for(var n,i="",o=this.rules,s=0,l=e.length;s{"use strict";function Fa(){this.__rules__=[],this.__cache__=null}Fa.prototype.__find__=function(e){for(var t=0;t{"use strict";var Wge=/\r\n?|\n/g,Yge=/\0/g;zz.exports=function(t){var r;r=t.src.replace(Wge,` -`),r=r.replace(Yge,"\uFFFD"),t.src=r}});var Wz=X((HPe,Qz)=>{"use strict";Qz.exports=function(t){var r;t.inlineMode?(r=new t.Token("inline","",0),r.content=t.src,r.map=[0,1],r.children=[],t.tokens.push(r)):t.md.block.parse(t.src,t.md,t.env,t.tokens)}});var Kz=X((QPe,Yz)=>{"use strict";Yz.exports=function(t){var r=t.tokens,n,i,o;for(i=0,o=r.length;i{"use strict";var Kge=Ht().arrayReplaceAt;function Xge(e){return/^\s]/i.test(e)}function Zge(e){return/^<\/a\s*>/i.test(e)}Xz.exports=function(t){var r,n,i,o,s,l,c,f,m,v,g,y,w,T,S,A,b=t.tokens,C;if(t.md.options.linkify){for(n=0,i=b.length;n=0;r--){if(l=o[r],l.type==="link_close"){for(r--;o[r].level!==l.level&&o[r].type!=="link_open";)r--;continue}if(l.type==="html_inline"&&(Xge(l.content)&&w>0&&w--,Zge(l.content)&&w++),!(w>0)&&l.type==="text"&&t.md.linkify.test(l.content)){for(m=l.content,C=t.md.linkify.match(m),c=[],y=l.level,g=0,f=0;fg&&(s=new t.Token("text","",0),s.content=m.slice(g,v),s.level=y,c.push(s)),s=new t.Token("link_open","a",1),s.attrs=[["href",S]],s.level=y++,s.markup="linkify",s.info="auto",c.push(s),s=new t.Token("text","",0),s.content=A,s.level=y,c.push(s),s=new t.Token("link_close","a",-1),s.level=--y,s.markup="linkify",s.info="auto",c.push(s),g=C[f].lastIndex);g{"use strict";var Jz=/\+-|\.\.|\?\?\?\?|!!!!|,,|--/,Jge=/\((c|tm|r|p)\)/i,_ge=/\((c|tm|r|p)\)/ig,$ge={c:"\xA9",r:"\xAE",p:"\xA7",tm:"\u2122"};function eye(e,t){return $ge[t.toLowerCase()]}function tye(e){var t,r,n=0;for(t=e.length-1;t>=0;t--)r=e[t],r.type==="text"&&!n&&(r.content=r.content.replace(_ge,eye)),r.type==="link_open"&&r.info==="auto"&&n--,r.type==="link_close"&&r.info==="auto"&&n++}function rye(e){var t,r,n=0;for(t=e.length-1;t>=0;t--)r=e[t],r.type==="text"&&!n&&Jz.test(r.content)&&(r.content=r.content.replace(/\+-/g,"\xB1").replace(/\.{2,}/g,"\u2026").replace(/([?!])…/g,"$1..").replace(/([?!]){4,}/g,"$1$1$1").replace(/,{2,}/g,",").replace(/(^|[^-])---(?=[^-]|$)/mg,"$1\u2014").replace(/(^|\s)--(?=\s|$)/mg,"$1\u2013").replace(/(^|[^-\s])--(?=[^-\s]|$)/mg,"$1\u2013")),r.type==="link_open"&&r.info==="auto"&&n--,r.type==="link_close"&&r.info==="auto"&&n++}_z.exports=function(t){var r;if(t.md.options.typographer)for(r=t.tokens.length-1;r>=0;r--)t.tokens[r].type==="inline"&&(Jge.test(t.tokens[r].content)&&tye(t.tokens[r].children),Jz.test(t.tokens[r].content)&&rye(t.tokens[r].children))}});var aH=X((KPe,oH)=>{"use strict";var eH=Ht().isWhiteSpace,tH=Ht().isPunctChar,rH=Ht().isMdAsciiPunct,nye=/['"]/,nH=/['"]/g,iH="\u2019";function tw(e,t,r){return e.substr(0,t)+r+e.substr(t+1)}function iye(e,t){var r,n,i,o,s,l,c,f,m,v,g,y,w,T,S,A,b,C,x,k,P;for(x=[],r=0;r=0&&!(x[b].level<=c);b--);if(x.length=b+1,n.type==="text"){i=n.content,s=0,l=i.length;e:for(;s=0)m=i.charCodeAt(o.index-1);else for(b=r-1;b>=0&&!(e[b].type==="softbreak"||e[b].type==="hardbreak");b--)if(e[b].content){m=e[b].content.charCodeAt(e[b].content.length-1);break}if(v=32,s=48&&m<=57&&(A=S=!1),S&&A&&(S=g,A=y),!S&&!A){C&&(n.content=tw(n.content,o.index,iH));continue}if(A){for(b=x.length-1;b>=0&&(f=x[b],!(x[b].level=0;r--)t.tokens[r].type!=="inline"||!nye.test(t.tokens[r].content)||iye(t.tokens[r].children,t)}});var rw=X((XPe,sH)=>{"use strict";function um(e,t,r){this.type=e,this.tag=t,this.attrs=null,this.map=null,this.nesting=r,this.level=0,this.children=null,this.content="",this.markup="",this.info="",this.meta=null,this.block=!1,this.hidden=!1}um.prototype.attrIndex=function(t){var r,n,i;if(!this.attrs)return-1;for(r=this.attrs,n=0,i=r.length;n=0&&(n=this.attrs[r][1]),n};um.prototype.attrJoin=function(t,r){var n=this.attrIndex(t);n<0?this.attrPush([t,r]):this.attrs[n][1]=this.attrs[n][1]+" "+r};sH.exports=um});var cH=X((ZPe,uH)=>{"use strict";var oye=rw();function lH(e,t,r){this.src=e,this.env=r,this.tokens=[],this.inlineMode=!1,this.md=t}lH.prototype.Token=oye;uH.exports=lH});var dH=X((JPe,fH)=>{"use strict";var aye=ew(),FP=[["normalize",Hz()],["block",Wz()],["inline",Kz()],["linkify",Zz()],["replacements",$z()],["smartquotes",aH()]];function qP(){this.ruler=new aye;for(var e=0;e{"use strict";var jP=Ht().isSpace;function VP(e,t){var r=e.bMarks[t]+e.tShift[t],n=e.eMarks[t];return e.src.substr(r,n-r)}function pH(e){var t=[],r=0,n=e.length,i,o=!1,s=0,l="";for(i=e.charCodeAt(r);rn||(m=r+1,t.sCount[m]=4||(l=t.bMarks[m]+t.tShift[m],l>=t.eMarks[m])||(k=t.src.charCodeAt(l++),k!==124&&k!==45&&k!==58)||l>=t.eMarks[m]||(P=t.src.charCodeAt(l++),P!==124&&P!==45&&P!==58&&!jP(P))||k===45&&jP(P))return!1;for(;l=4||(v=pH(s),v.length&&v[0]===""&&v.shift(),v.length&&v[v.length-1]===""&&v.pop(),g=v.length,g===0||g!==w.length))return!1;if(i)return!0;for(b=t.parentType,t.parentType="table",x=t.md.block.ruler.getRules("blockquote"),y=t.push("table_open","table",1),y.map=S=[r,0],y=t.push("thead_open","thead",1),y.map=[r,r+1],y=t.push("tr_open","tr",1),y.map=[r,r+1],c=0;c=4)break;for(v=pH(s),v.length&&v[0]===""&&v.shift(),v.length&&v[v.length-1]===""&&v.pop(),m===r+2&&(y=t.push("tbody_open","tbody",1),y.map=A=[r+2,0]),y=t.push("tr_open","tr",1),y.map=[m,m+1],c=0;c{"use strict";vH.exports=function(t,r,n){var i,o,s;if(t.sCount[r]-t.blkIndent<4)return!1;for(o=i=r+1;i=4){i++,o=i;continue}break}return t.line=o,s=t.push("code_block","code",0),s.content=t.getLines(r,o,4+t.blkIndent,!1)+` -`,s.map=[r,t.line],!0}});var bH=X((eRe,yH)=>{"use strict";yH.exports=function(t,r,n,i){var o,s,l,c,f,m,v,g=!1,y=t.bMarks[r]+t.tShift[r],w=t.eMarks[r];if(t.sCount[r]-t.blkIndent>=4||y+3>w||(o=t.src.charCodeAt(y),o!==126&&o!==96)||(f=y,y=t.skipChars(y,o),s=y-f,s<3)||(v=t.src.slice(f,y),l=t.src.slice(y,w),o===96&&l.indexOf(String.fromCharCode(o))>=0))return!1;if(i)return!0;for(c=r;c++,!(c>=n||(y=f=t.bMarks[c]+t.tShift[c],w=t.eMarks[c],y=4)&&(y=t.skipChars(y,o),!(y-f{"use strict";var AH=Ht().isSpace;xH.exports=function(t,r,n,i){var o,s,l,c,f,m,v,g,y,w,T,S,A,b,C,x,k,P,D,N,I=t.lineMax,V=t.bMarks[r]+t.tShift[r],G=t.eMarks[r];if(t.sCount[r]-t.blkIndent>=4||t.src.charCodeAt(V++)!==62)return!1;if(i)return!0;for(c=y=t.sCount[r]+1,t.src.charCodeAt(V)===32?(V++,c++,y++,o=!1,x=!0):t.src.charCodeAt(V)===9?(x=!0,(t.bsCount[r]+y)%4===3?(V++,c++,y++,o=!1):o=!0):x=!1,w=[t.bMarks[r]],t.bMarks[r]=V;V=G,b=[t.sCount[r]],t.sCount[r]=y-c,C=[t.tShift[r]],t.tShift[r]=V-t.bMarks[r],P=t.md.block.ruler.getRules("blockquote"),A=t.parentType,t.parentType="blockquote",g=r+1;g=G));g++){if(t.src.charCodeAt(V++)===62&&!N){for(c=y=t.sCount[g]+1,t.src.charCodeAt(V)===32?(V++,c++,y++,o=!1,x=!0):t.src.charCodeAt(V)===9?(x=!0,(t.bsCount[g]+y)%4===3?(V++,c++,y++,o=!1):o=!0):x=!1,w.push(t.bMarks[g]),t.bMarks[g]=V;V=G,T.push(t.bsCount[g]),t.bsCount[g]=t.sCount[g]+1+(x?1:0),b.push(t.sCount[g]),t.sCount[g]=y-c,C.push(t.tShift[g]),t.tShift[g]=V-t.bMarks[g];continue}if(m)break;for(k=!1,l=0,f=P.length;l",D.map=v=[r,0],t.md.block.tokenize(t,r,g),D=t.push("blockquote_close","blockquote",-1),D.markup=">",t.lineMax=I,t.parentType=A,v[1]=t.line,l=0;l{"use strict";var sye=Ht().isSpace;EH.exports=function(t,r,n,i){var o,s,l,c,f=t.bMarks[r]+t.tShift[r],m=t.eMarks[r];if(t.sCount[r]-t.blkIndent>=4||(o=t.src.charCodeAt(f++),o!==42&&o!==45&&o!==95))return!1;for(s=1;f{"use strict";var kH=Ht().isSpace;function CH(e,t){var r,n,i,o;return n=e.bMarks[t]+e.tShift[t],i=e.eMarks[t],r=e.src.charCodeAt(n++),r!==42&&r!==45&&r!==43||n=o||(r=e.src.charCodeAt(i++),r<48||r>57))return-1;for(;;){if(i>=o)return-1;if(r=e.src.charCodeAt(i++),r>=48&&r<=57){if(i-n>=10)return-1;continue}if(r===41||r===46)break;return-1}return i=4||t.listIndent>=0&&t.sCount[r]-t.listIndent>=4&&t.sCount[r]=t.blkIndent&&(K=!0),(G=SH(t,r))>=0){if(v=!0,U=t.bMarks[r]+t.tShift[r],A=Number(t.src.slice(U,G-1)),K&&A!==1)return!1}else if((G=CH(t,r))>=0)v=!1;else return!1;if(K&&t.skipSpaces(G)>=t.eMarks[r])return!1;if(S=t.src.charCodeAt(G-1),i)return!0;for(T=t.tokens.length,v?(J=t.push("ordered_list_open","ol",1),A!==1&&(J.attrs=[["start",A]])):J=t.push("bullet_list_open","ul",1),J.map=w=[r,0],J.markup=String.fromCharCode(S),C=r,B=!1,j=t.md.block.ruler.getRules("list"),P=t.parentType,t.parentType="list";C=b?f=1:f=x-m,f>4&&(f=1),c=m+f,J=t.push("list_item_open","li",1),J.markup=String.fromCharCode(S),J.map=g=[r,0],v&&(J.info=t.src.slice(U,G-1)),I=t.tight,N=t.tShift[r],D=t.sCount[r],k=t.listIndent,t.listIndent=t.blkIndent,t.blkIndent=c,t.tight=!0,t.tShift[r]=s-t.bMarks[r],t.sCount[r]=x,s>=b&&t.isEmpty(r+1)?t.line=Math.min(t.line+2,n):t.md.block.tokenize(t,r,n,!0),(!t.tight||B)&&(ee=!1),B=t.line-r>1&&t.isEmpty(t.line-1),t.blkIndent=t.listIndent,t.listIndent=k,t.tShift[r]=N,t.sCount[r]=D,t.tight=I,J=t.push("list_item_close","li",-1),J.markup=String.fromCharCode(S),C=r=t.line,g[1]=C,s=t.bMarks[r],C>=n||t.sCount[C]=4)break;for(z=!1,l=0,y=j.length;l{"use strict";var uye=Ht().normalizeReference,nw=Ht().isSpace;DH.exports=function(t,r,n,i){var o,s,l,c,f,m,v,g,y,w,T,S,A,b,C,x,k=0,P=t.bMarks[r]+t.tShift[r],D=t.eMarks[r],N=r+1;if(t.sCount[r]-t.blkIndent>=4||t.src.charCodeAt(P)!==91)return!1;for(;++P3)&&!(t.sCount[N]<0)){for(b=!1,m=0,v=C.length;m"u"&&(t.env.references={}),typeof t.env.references[g]>"u"&&(t.env.references[g]={title:x,href:f}),t.parentType=w,t.line=r+k+1),!0)}});var RH=X((oRe,PH)=>{"use strict";PH.exports=["address","article","aside","base","basefont","blockquote","body","caption","center","col","colgroup","dd","details","dialog","dir","div","dl","dt","fieldset","figcaption","figure","footer","form","frame","frameset","h1","h2","h3","h4","h5","h6","head","header","hr","html","iframe","legend","li","link","main","menu","menuitem","nav","noframes","ol","optgroup","option","p","param","section","source","summary","table","tbody","td","tfoot","th","thead","title","tr","track","ul"]});var BP=X((aRe,UP)=>{"use strict";var cye="[a-zA-Z_:][a-zA-Z0-9:._-]*",fye="[^\"'=<>`\\x00-\\x20]+",dye="'[^']*'",pye='"[^"]*"',mye="(?:"+fye+"|"+dye+"|"+pye+")",hye="(?:\\s+"+cye+"(?:\\s*=\\s*"+mye+")?)",MH="<[A-Za-z][A-Za-z0-9\\-]*"+hye+"*\\s*\\/?>",IH="<\\/[A-Za-z][A-Za-z0-9\\-]*\\s*>",vye="|",gye="<[?][\\s\\S]*?[?]>",yye="]*>",bye="",Aye=new RegExp("^(?:"+MH+"|"+IH+"|"+vye+"|"+gye+"|"+yye+"|"+bye+")"),xye=new RegExp("^(?:"+MH+"|"+IH+")");UP.exports.HTML_TAG_RE=Aye;UP.exports.HTML_OPEN_CLOSE_TAG_RE=xye});var qH=X((sRe,FH)=>{"use strict";var wye=RH(),Eye=BP().HTML_OPEN_CLOSE_TAG_RE,cm=[[/^<(script|pre|style|textarea)(?=(\s|>|$))/i,/<\/(script|pre|style|textarea)>/i,!0],[/^/,!0],[/^<\?/,/\?>/,!0],[/^/,!0],[/^/,!0],[new RegExp("^|$))","i"),/^$/,!0],[new RegExp(Eye.source+"\\s*$"),/^$/,!1]];FH.exports=function(t,r,n,i){var o,s,l,c,f=t.bMarks[r]+t.tShift[r],m=t.eMarks[r];if(t.sCount[r]-t.blkIndent>=4||!t.md.options.html||t.src.charCodeAt(f)!==60)return!1;for(c=t.src.slice(f,m),o=0;o{"use strict";var jH=Ht().isSpace;VH.exports=function(t,r,n,i){var o,s,l,c,f=t.bMarks[r]+t.tShift[r],m=t.eMarks[r];if(t.sCount[r]-t.blkIndent>=4||(o=t.src.charCodeAt(f),o!==35||f>=m))return!1;for(s=1,o=t.src.charCodeAt(++f);o===35&&f6||ff&&jH(t.src.charCodeAt(l-1))&&(m=l),t.line=r+1,c=t.push("heading_open","h"+String(s),1),c.markup="########".slice(0,s),c.map=[r,t.line],c=t.push("inline","",0),c.content=t.src.slice(f,m).trim(),c.map=[r,t.line],c.children=[],c=t.push("heading_close","h"+String(s),-1),c.markup="########".slice(0,s)),!0)}});var GH=X((uRe,BH)=>{"use strict";BH.exports=function(t,r,n){var i,o,s,l,c,f,m,v,g,y=r+1,w,T=t.md.block.ruler.getRules("paragraph");if(t.sCount[r]-t.blkIndent>=4)return!1;for(w=t.parentType,t.parentType="paragraph";y3)){if(t.sCount[y]>=t.blkIndent&&(f=t.bMarks[y]+t.tShift[y],m=t.eMarks[y],f=m)))){v=g===61?1:2;break}if(!(t.sCount[y]<0)){for(o=!1,s=0,l=T.length;s{"use strict";zH.exports=function(t,r){var n,i,o,s,l,c,f=r+1,m=t.md.block.ruler.getRules("paragraph"),v=t.lineMax;for(c=t.parentType,t.parentType="paragraph";f3)&&!(t.sCount[f]<0)){for(i=!1,o=0,s=m.length;o{"use strict";var QH=rw(),iw=Ht().isSpace;function ks(e,t,r,n){var i,o,s,l,c,f,m,v;for(this.src=e,this.md=t,this.env=r,this.tokens=n,this.bMarks=[],this.eMarks=[],this.tShift=[],this.sCount=[],this.bsCount=[],this.blkIndent=0,this.line=0,this.lineMax=0,this.tight=!1,this.ddIndent=-1,this.listIndent=-1,this.parentType="root",this.level=0,this.result="",o=this.src,v=!1,s=l=f=m=0,c=o.length;l0&&this.level++,this.tokens.push(n),n};ks.prototype.isEmpty=function(t){return this.bMarks[t]+this.tShift[t]>=this.eMarks[t]};ks.prototype.skipEmptyLines=function(t){for(var r=this.lineMax;tr;)if(!iw(this.src.charCodeAt(--t)))return t+1;return t};ks.prototype.skipChars=function(t,r){for(var n=this.src.length;tn;)if(r!==this.src.charCodeAt(--t))return t+1;return t};ks.prototype.getLines=function(t,r,n,i){var o,s,l,c,f,m,v,g=t;if(t>=r)return"";for(m=new Array(r-t),o=0;gn?m[o]=new Array(s-n+1).join(" ")+this.src.slice(c,f):m[o]=this.src.slice(c,f)}return m.join("")};ks.prototype.Token=QH;WH.exports=ks});var XH=X((dRe,KH)=>{"use strict";var Tye=ew(),ow=[["table",hH(),["paragraph","reference"]],["code",gH()],["fence",bH(),["paragraph","reference","blockquote","list"]],["blockquote",wH(),["paragraph","reference","blockquote","list"]],["hr",TH(),["paragraph","reference","blockquote","list"]],["list",NH(),["paragraph","reference","blockquote"]],["reference",LH()],["html_block",qH(),["paragraph","reference","blockquote"]],["heading",UH(),["paragraph","reference","blockquote"]],["lheading",GH()],["paragraph",HH()]];function aw(){this.ruler=new Tye;for(var e=0;e=r||e.sCount[l]=f){e.line=r;break}for(i=0;i{"use strict";function Cye(e){switch(e){case 10:case 33:case 35:case 36:case 37:case 38:case 42:case 43:case 45:case 58:case 60:case 61:case 62:case 64:case 91:case 92:case 93:case 94:case 95:case 96:case 123:case 125:case 126:return!0;default:return!1}}ZH.exports=function(t,r){for(var n=t.pos;n{"use strict";var Sye=Ht().isSpace;_H.exports=function(t,r){var n,i,o,s=t.pos;if(t.src.charCodeAt(s)!==10)return!1;if(n=t.pending.length-1,i=t.posMax,!r)if(n>=0&&t.pending.charCodeAt(n)===32)if(n>=1&&t.pending.charCodeAt(n-1)===32){for(o=n-1;o>=1&&t.pending.charCodeAt(o-1)===32;)o--;t.pending=t.pending.slice(0,o),t.push("hardbreak","br",0)}else t.pending=t.pending.slice(0,-1),t.push("softbreak","br",0);else t.push("softbreak","br",0);for(s++;s{"use strict";var kye=Ht().isSpace,zP=[];for(GP=0;GP<256;GP++)zP.push(0);var GP;"\\!\"#$%&'()*+,./:;<=>?@[]^_`{|}~-".split("").forEach(function(e){zP[e.charCodeAt(0)]=1});eQ.exports=function(t,r){var n,i=t.pos,o=t.posMax;if(t.src.charCodeAt(i)!==92)return!1;if(i++,i{"use strict";rQ.exports=function(t,r){var n,i,o,s,l,c,f,m,v=t.pos,g=t.src.charCodeAt(v);if(g!==96)return!1;for(n=v,v++,i=t.posMax;v{"use strict";HP.exports.tokenize=function(t,r){var n,i,o,s,l,c=t.pos,f=t.src.charCodeAt(c);if(r||f!==126||(i=t.scanDelims(t.pos,!0),s=i.length,l=String.fromCharCode(f),s<2))return!1;for(s%2&&(o=t.push("text","",0),o.content=l,s--),n=0;n{"use strict";WP.exports.tokenize=function(t,r){var n,i,o,s=t.pos,l=t.src.charCodeAt(s);if(r||l!==95&&l!==42)return!1;for(i=t.scanDelims(t.pos,l===42),n=0;n=0;r--)n=t[r],!(n.marker!==95&&n.marker!==42)&&n.end!==-1&&(i=t[n.end],l=r>0&&t[r-1].end===n.end+1&&t[r-1].marker===n.marker&&t[r-1].token===n.token-1&&t[n.end+1].token===i.token+1,s=String.fromCharCode(n.marker),o=e.tokens[n.token],o.type=l?"strong_open":"em_open",o.tag=l?"strong":"em",o.nesting=1,o.markup=l?s+s:s,o.content="",o=e.tokens[i.token],o.type=l?"strong_close":"em_close",o.tag=l?"strong":"em",o.nesting=-1,o.markup=l?s+s:s,o.content="",l&&(e.tokens[t[r-1].token].content="",e.tokens[t[n.end+1].token].content="",r--))}WP.exports.postProcess=function(t){var r,n=t.tokens_meta,i=t.tokens_meta.length;for(oQ(t,t.delimiters),r=0;r{"use strict";var Oye=Ht().normalizeReference,KP=Ht().isSpace;aQ.exports=function(t,r){var n,i,o,s,l,c,f,m,v,g="",y="",w=t.pos,T=t.posMax,S=t.pos,A=!0;if(t.src.charCodeAt(t.pos)!==91||(l=t.pos+1,s=t.md.helpers.parseLinkLabel(t,t.pos,!0),s<0))return!1;if(c=s+1,c=T)return!1;if(S=c,f=t.md.helpers.parseLinkDestination(t.src,c,t.posMax),f.ok){for(g=t.md.normalizeLink(f.str),t.md.validateLink(g)?c=f.pos:g="",S=c;c=T||t.src.charCodeAt(c)!==41)&&(A=!0),c++}if(A){if(typeof t.env.references>"u")return!1;if(c=0?o=t.src.slice(S,c++):c=s+1):c=s+1,o||(o=t.src.slice(l,s)),m=t.env.references[Oye(o)],!m)return t.pos=w,!1;g=m.href,y=m.title}return r||(t.pos=l,t.posMax=s,v=t.push("link_open","a",1),v.attrs=n=[["href",g]],y&&n.push(["title",y]),t.md.inline.tokenize(t),v=t.push("link_close","a",-1)),t.pos=c,t.posMax=T,!0}});var uQ=X((ARe,lQ)=>{"use strict";var Nye=Ht().normalizeReference,XP=Ht().isSpace;lQ.exports=function(t,r){var n,i,o,s,l,c,f,m,v,g,y,w,T,S="",A=t.pos,b=t.posMax;if(t.src.charCodeAt(t.pos)!==33||t.src.charCodeAt(t.pos+1)!==91||(c=t.pos+2,l=t.md.helpers.parseLinkLabel(t,t.pos+1,!1),l<0))return!1;if(f=l+1,f=b)return!1;for(T=f,v=t.md.helpers.parseLinkDestination(t.src,f,t.posMax),v.ok&&(S=t.md.normalizeLink(v.str),t.md.validateLink(S)?f=v.pos:S=""),T=f;f=b||t.src.charCodeAt(f)!==41)return t.pos=A,!1;f++}else{if(typeof t.env.references>"u")return!1;if(f=0?s=t.src.slice(T,f++):f=l+1):f=l+1,s||(s=t.src.slice(c,l)),m=t.env.references[Nye(s)],!m)return t.pos=A,!1;S=m.href,g=m.title}return r||(o=t.src.slice(c,l),t.md.inline.parse(o,t.md,t.env,w=[]),y=t.push("image","img",0),y.attrs=n=[["src",S],["alt",""]],y.children=w,y.content=o,g&&n.push(["title",g])),t.pos=f,t.posMax=b,!0}});var fQ=X((xRe,cQ)=>{"use strict";var Dye=/^([a-zA-Z0-9.!#$%&'*+\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*)$/,Lye=/^([a-zA-Z][a-zA-Z0-9+.\-]{1,31}):([^<>\x00-\x20]*)$/;cQ.exports=function(t,r){var n,i,o,s,l,c,f=t.pos;if(t.src.charCodeAt(f)!==60)return!1;for(l=t.pos,c=t.posMax;;){if(++f>=c||(s=t.src.charCodeAt(f),s===60))return!1;if(s===62)break}return n=t.src.slice(l+1,f),Lye.test(n)?(i=t.md.normalizeLink(n),t.md.validateLink(i)?(r||(o=t.push("link_open","a",1),o.attrs=[["href",i]],o.markup="autolink",o.info="auto",o=t.push("text","",0),o.content=t.md.normalizeLinkText(n),o=t.push("link_close","a",-1),o.markup="autolink",o.info="auto"),t.pos+=n.length+2,!0):!1):Dye.test(n)?(i=t.md.normalizeLink("mailto:"+n),t.md.validateLink(i)?(r||(o=t.push("link_open","a",1),o.attrs=[["href",i]],o.markup="autolink",o.info="auto",o=t.push("text","",0),o.content=t.md.normalizeLinkText(n),o=t.push("link_close","a",-1),o.markup="autolink",o.info="auto"),t.pos+=n.length+2,!0):!1):!1}});var pQ=X((wRe,dQ)=>{"use strict";var Pye=BP().HTML_TAG_RE;function Rye(e){var t=e|32;return t>=97&&t<=122}dQ.exports=function(t,r){var n,i,o,s,l=t.pos;return!t.md.options.html||(o=t.posMax,t.src.charCodeAt(l)!==60||l+2>=o)||(n=t.src.charCodeAt(l+1),n!==33&&n!==63&&n!==47&&!Rye(n))||(i=t.src.slice(l).match(Pye),!i)?!1:(r||(s=t.push("html_inline","",0),s.content=t.src.slice(l,l+i[0].length)),t.pos+=i[0].length,!0)}});var gQ=X((ERe,vQ)=>{"use strict";var mQ=LP(),Mye=Ht().has,Iye=Ht().isValidEntityCode,hQ=Ht().fromCodePoint,Fye=/^&#((?:x[a-f0-9]{1,6}|[0-9]{1,7}));/i,qye=/^&([a-z][a-z0-9]{1,31});/i;vQ.exports=function(t,r){var n,i,o,s=t.pos,l=t.posMax;if(t.src.charCodeAt(s)!==38)return!1;if(s+1{"use strict";function yQ(e,t){var r,n,i,o,s,l,c,f,m={},v=t.length;if(v){var g=0,y=-2,w=[];for(r=0;rs;n-=w[n]+1)if(o=t[n],o.marker===i.marker&&o.open&&o.end<0&&(c=!1,(o.close||i.open)&&(o.length+i.length)%3===0&&(o.length%3!==0||i.length%3!==0)&&(c=!0),!c)){f=n>0&&!t[n-1].open?w[n-1]+1:0,w[r]=r-n+f,w[n]=f,i.open=!1,o.end=r,o.close=!1,l=-1,y=-2;break}l!==-1&&(m[i.marker][(i.open?3:0)+(i.length||0)%3]=l)}}}bQ.exports=function(t){var r,n=t.tokens_meta,i=t.tokens_meta.length;for(yQ(t,t.delimiters),r=0;r{"use strict";xQ.exports=function(t){var r,n,i=0,o=t.tokens,s=t.tokens.length;for(r=n=0;r0&&i++,o[r].type==="text"&&r+1{"use strict";var ZP=rw(),EQ=Ht().isWhiteSpace,TQ=Ht().isPunctChar,CQ=Ht().isMdAsciiPunct;function Xg(e,t,r,n){this.src=e,this.env=r,this.md=t,this.tokens=n,this.tokens_meta=Array(n.length),this.pos=0,this.posMax=this.src.length,this.level=0,this.pending="",this.pendingLevel=0,this.cache={},this.delimiters=[],this._prev_delimiters=[],this.backticks={},this.backticksScanned=!1}Xg.prototype.pushPending=function(){var e=new ZP("text","",0);return e.content=this.pending,e.level=this.pendingLevel,this.tokens.push(e),this.pending="",e};Xg.prototype.push=function(e,t,r){this.pending&&this.pushPending();var n=new ZP(e,t,r),i=null;return r<0&&(this.level--,this.delimiters=this._prev_delimiters.pop()),n.level=this.level,r>0&&(this.level++,this._prev_delimiters.push(this.delimiters),this.delimiters=[],i={delimiters:this.delimiters}),this.pendingLevel=this.level,this.tokens.push(n),this.tokens_meta.push(i),n};Xg.prototype.scanDelims=function(e,t){var r=e,n,i,o,s,l,c,f,m,v,g=!0,y=!0,w=this.posMax,T=this.src.charCodeAt(e);for(n=e>0?this.src.charCodeAt(e-1):32;r{"use strict";var OQ=ew(),JP=[["text",JH()],["newline",$H()],["escape",tQ()],["backticks",nQ()],["strikethrough",QP().tokenize],["emphasis",YP().tokenize],["link",sQ()],["image",uQ()],["autolink",fQ()],["html_inline",pQ()],["entity",gQ()]],_P=[["balance_pairs",AQ()],["strikethrough",QP().postProcess],["emphasis",YP().postProcess],["text_collapse",wQ()]];function Zg(){var e;for(this.ruler=new OQ,e=0;e=o)break;continue}e.pending+=e.src[e.pos++]}e.pending&&e.pushPending()};Zg.prototype.parse=function(e,t,r,n){var i,o,s,l=new this.State(e,t,r,n);for(this.tokenize(l),o=this.ruler2.getRules(""),s=o.length,i=0;i{"use strict";LQ.exports=function(e){var t={};t.src_Any=RP().source,t.src_Cc=MP().source,t.src_Z=IP().source,t.src_P=Xx().source,t.src_ZPCc=[t.src_Z,t.src_P,t.src_Cc].join("|"),t.src_ZCc=[t.src_Z,t.src_Cc].join("|");var r="[><\uFF5C]";return t.src_pseudo_letter="(?:(?!"+r+"|"+t.src_ZPCc+")"+t.src_Any+")",t.src_ip4="(?:(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)",t.src_auth="(?:(?:(?!"+t.src_ZCc+"|[@/\\[\\]()]).)+@)?",t.src_port="(?::(?:6(?:[0-4]\\d{3}|5(?:[0-4]\\d{2}|5(?:[0-2]\\d|3[0-5])))|[1-5]?\\d{1,4}))?",t.src_host_terminator="(?=$|"+r+"|"+t.src_ZPCc+")(?!-|_|:\\d|\\.-|\\.(?!$|"+t.src_ZPCc+"))",t.src_path="(?:[/?#](?:(?!"+t.src_ZCc+"|"+r+`|[()[\\]{}.,"'?!\\-;]).|\\[(?:(?!`+t.src_ZCc+"|\\]).)*\\]|\\((?:(?!"+t.src_ZCc+"|[)]).)*\\)|\\{(?:(?!"+t.src_ZCc+'|[}]).)*\\}|\\"(?:(?!'+t.src_ZCc+`|["]).)+\\"|\\'(?:(?!`+t.src_ZCc+"|[']).)+\\'|\\'(?="+t.src_pseudo_letter+"|[-]).|\\.{2,}[a-zA-Z0-9%/&]|\\.(?!"+t.src_ZCc+"|[.]).|"+(e&&e["---"]?"\\-(?!--(?:[^-]|$))(?:-*)|":"\\-+|")+",(?!"+t.src_ZCc+").|;(?!"+t.src_ZCc+").|\\!+(?!"+t.src_ZCc+"|[!]).|\\?(?!"+t.src_ZCc+"|[?]).)+|\\/)?",t.src_email_name='[\\-;:&=\\+\\$,\\.a-zA-Z0-9_][\\-;:&=\\+\\$,\\"\\.a-zA-Z0-9_]*',t.src_xn="xn--[a-z0-9\\-]{1,59}",t.src_domain_root="(?:"+t.src_xn+"|"+t.src_pseudo_letter+"{1,63})",t.src_domain="(?:"+t.src_xn+"|(?:"+t.src_pseudo_letter+")|(?:"+t.src_pseudo_letter+"(?:-|"+t.src_pseudo_letter+"){0,61}"+t.src_pseudo_letter+"))",t.src_host="(?:(?:(?:(?:"+t.src_domain+")\\.)*"+t.src_domain+"))",t.tpl_host_fuzzy="(?:"+t.src_ip4+"|(?:(?:(?:"+t.src_domain+")\\.)+(?:%TLDS%)))",t.tpl_host_no_ip_fuzzy="(?:(?:(?:"+t.src_domain+")\\.)+(?:%TLDS%))",t.src_host_strict=t.src_host+t.src_host_terminator,t.tpl_host_fuzzy_strict=t.tpl_host_fuzzy+t.src_host_terminator,t.src_host_port_strict=t.src_host+t.src_port+t.src_host_terminator,t.tpl_host_port_fuzzy_strict=t.tpl_host_fuzzy+t.src_port+t.src_host_terminator,t.tpl_host_port_no_ip_fuzzy_strict=t.tpl_host_no_ip_fuzzy+t.src_port+t.src_host_terminator,t.tpl_host_fuzzy_test="localhost|www\\.|\\.\\d{1,3}\\.|(?:\\.(?:%TLDS%)(?:"+t.src_ZPCc+"|>|$))",t.tpl_email_fuzzy="(^|"+r+'|"|\\(|'+t.src_ZCc+")("+t.src_email_name+"@"+t.tpl_host_fuzzy_strict+")",t.tpl_link_fuzzy="(^|(?![.:/\\-_@])(?:[$+<=>^`|\uFF5C]|"+t.src_ZPCc+"))((?![$+<=>^`|\uFF5C])"+t.tpl_host_port_fuzzy_strict+t.src_path+")",t.tpl_link_no_ip_fuzzy="(^|(?![.:/\\-_@])(?:[$+<=>^`|\uFF5C]|"+t.src_ZPCc+"))((?![$+<=>^`|\uFF5C])"+t.tpl_host_port_no_ip_fuzzy_strict+t.src_path+")",t}});var jQ=X((NRe,qQ)=>{"use strict";function $P(e){var t=Array.prototype.slice.call(arguments,1);return t.forEach(function(r){r&&Object.keys(r).forEach(function(n){e[n]=r[n]})}),e}function lw(e){return Object.prototype.toString.call(e)}function jye(e){return lw(e)==="[object String]"}function Vye(e){return lw(e)==="[object Object]"}function Uye(e){return lw(e)==="[object RegExp]"}function RQ(e){return lw(e)==="[object Function]"}function Bye(e){return e.replace(/[.?*+^$[\]\\(){}|-]/g,"\\$&")}var FQ={fuzzyLink:!0,fuzzyEmail:!0,fuzzyIP:!1};function Gye(e){return Object.keys(e||{}).reduce(function(t,r){return t||FQ.hasOwnProperty(r)},!1)}var zye={"http:":{validate:function(e,t,r){var n=e.slice(t);return r.re.http||(r.re.http=new RegExp("^\\/\\/"+r.re.src_auth+r.re.src_host_port_strict+r.re.src_path,"i")),r.re.http.test(n)?n.match(r.re.http)[0].length:0}},"https:":"http:","ftp:":"http:","//":{validate:function(e,t,r){var n=e.slice(t);return r.re.no_http||(r.re.no_http=new RegExp("^"+r.re.src_auth+"(?:localhost|(?:(?:"+r.re.src_domain+")\\.)+"+r.re.src_domain_root+")"+r.re.src_port+r.re.src_host_terminator+r.re.src_path,"i")),r.re.no_http.test(n)?t>=3&&e[t-3]===":"||t>=3&&e[t-3]==="/"?0:n.match(r.re.no_http)[0].length:0}},"mailto:":{validate:function(e,t,r){var n=e.slice(t);return r.re.mailto||(r.re.mailto=new RegExp("^"+r.re.src_email_name+"@"+r.re.src_host_strict,"i")),r.re.mailto.test(n)?n.match(r.re.mailto)[0].length:0}}},Hye="a[cdefgilmnoqrstuwxz]|b[abdefghijmnorstvwyz]|c[acdfghiklmnoruvwxyz]|d[ejkmoz]|e[cegrstu]|f[ijkmor]|g[abdefghilmnpqrstuwy]|h[kmnrtu]|i[delmnoqrst]|j[emop]|k[eghimnprwyz]|l[abcikrstuvy]|m[acdeghklmnopqrstuvwxyz]|n[acefgilopruz]|om|p[aefghklmnrstwy]|qa|r[eosuw]|s[abcdeghijklmnortuvxyz]|t[cdfghjklmnortvwz]|u[agksyz]|v[aceginu]|w[fs]|y[et]|z[amw]",Qye="biz|com|edu|gov|net|org|pro|web|xxx|aero|asia|coop|info|museum|name|shop|\u0440\u0444".split("|");function Wye(e){e.__index__=-1,e.__text_cache__=""}function Yye(e){return function(t,r){var n=t.slice(r);return e.test(n)?n.match(e)[0].length:0}}function MQ(){return function(e,t){t.normalize(e)}}function sw(e){var t=e.re=PQ()(e.__opts__),r=e.__tlds__.slice();e.onCompile(),e.__tlds_replaced__||r.push(Hye),r.push(t.src_xn),t.src_tlds=r.join("|");function n(l){return l.replace("%TLDS%",t.src_tlds)}t.email_fuzzy=RegExp(n(t.tpl_email_fuzzy),"i"),t.link_fuzzy=RegExp(n(t.tpl_link_fuzzy),"i"),t.link_no_ip_fuzzy=RegExp(n(t.tpl_link_no_ip_fuzzy),"i"),t.host_fuzzy_test=RegExp(n(t.tpl_host_fuzzy_test),"i");var i=[];e.__compiled__={};function o(l,c){throw new Error('(LinkifyIt) Invalid schema "'+l+'": '+c)}Object.keys(e.__schemas__).forEach(function(l){var c=e.__schemas__[l];if(c!==null){var f={validate:null,link:null};if(e.__compiled__[l]=f,Vye(c)){Uye(c.validate)?f.validate=Yye(c.validate):RQ(c.validate)?f.validate=c.validate:o(l,c),RQ(c.normalize)?f.normalize=c.normalize:c.normalize?o(l,c):f.normalize=MQ();return}if(jye(c)){i.push(l);return}o(l,c)}}),i.forEach(function(l){e.__compiled__[e.__schemas__[l]]&&(e.__compiled__[l].validate=e.__compiled__[e.__schemas__[l]].validate,e.__compiled__[l].normalize=e.__compiled__[e.__schemas__[l]].normalize)}),e.__compiled__[""]={validate:null,normalize:MQ()};var s=Object.keys(e.__compiled__).filter(function(l){return l.length>0&&e.__compiled__[l]}).map(Bye).join("|");e.re.schema_test=RegExp("(^|(?!_)(?:[><\uFF5C]|"+t.src_ZPCc+"))("+s+")","i"),e.re.schema_search=RegExp("(^|(?!_)(?:[><\uFF5C]|"+t.src_ZPCc+"))("+s+")","ig"),e.re.pretest=RegExp("("+e.re.schema_test.source+")|("+e.re.host_fuzzy_test.source+")|@","i"),Wye(e)}function Kye(e,t){var r=e.__index__,n=e.__last_index__,i=e.__text_cache__.slice(r,n);this.schema=e.__schema__.toLowerCase(),this.index=r+t,this.lastIndex=n+t,this.raw=i,this.text=i,this.url=i}function IQ(e,t){var r=new Kye(e,t);return e.__compiled__[r.schema].normalize(r,e),r}function Xo(e,t){if(!(this instanceof Xo))return new Xo(e,t);t||Gye(e)&&(t=e,e={}),this.__opts__=$P({},FQ,t),this.__index__=-1,this.__last_index__=-1,this.__schema__="",this.__text_cache__="",this.__schemas__=$P({},zye,e),this.__compiled__={},this.__tlds__=Qye,this.__tlds_replaced__=!1,this.re={},sw(this)}Xo.prototype.add=function(t,r){return this.__schemas__[t]=r,sw(this),this};Xo.prototype.set=function(t){return this.__opts__=$P(this.__opts__,t),this};Xo.prototype.test=function(t){if(this.__text_cache__=t,this.__index__=-1,!t.length)return!1;var r,n,i,o,s,l,c,f,m;if(this.re.schema_test.test(t)){for(c=this.re.schema_search,c.lastIndex=0;(r=c.exec(t))!==null;)if(o=this.testSchemaAt(t,r[2],c.lastIndex),o){this.__schema__=r[2],this.__index__=r.index+r[1].length,this.__last_index__=r.index+r[0].length+o;break}}return this.__opts__.fuzzyLink&&this.__compiled__["http:"]&&(f=t.search(this.re.host_fuzzy_test),f>=0&&(this.__index__<0||f=0&&(i=t.match(this.re.email_fuzzy))!==null&&(s=i.index+i[1].length,l=i.index+i[0].length,(this.__index__<0||sthis.__last_index__)&&(this.__schema__="mailto:",this.__index__=s,this.__last_index__=l))),this.__index__>=0};Xo.prototype.pretest=function(t){return this.re.pretest.test(t)};Xo.prototype.testSchemaAt=function(t,r,n){return this.__compiled__[r.toLowerCase()]?this.__compiled__[r.toLowerCase()].validate(t,n,this):0};Xo.prototype.match=function(t){var r=0,n=[];this.__index__>=0&&this.__text_cache__===t&&(n.push(IQ(this,r)),r=this.__last_index__);for(var i=r?t.slice(r):t;this.test(i);)n.push(IQ(this,r)),i=i.slice(this.__last_index__),r+=this.__last_index__;return n.length?n:null};Xo.prototype.tlds=function(t,r){return t=Array.isArray(t)?t:[t],r?(this.__tlds__=this.__tlds__.concat(t).sort().filter(function(n,i,o){return n!==o[i-1]}).reverse(),sw(this),this):(this.__tlds__=t.slice(),this.__tlds_replaced__=!0,sw(this),this)};Xo.prototype.normalize=function(t){t.schema||(t.url="http://"+t.url),t.schema==="mailto:"&&!/^mailto:/i.test(t.url)&&(t.url="mailto:"+t.url)};Xo.prototype.onCompile=function(){};qQ.exports=Xo});var YQ=X((DRe,WQ)=>{"use strict";var UQ="-",Xye=/^xn--/,Zye=/[^\0-\x7E]/,Jye=/[\x2E\u3002\uFF0E\uFF61]/g,_ye={overflow:"Overflow: input needs wider integers to process","not-basic":"Illegal input >= 0x80 (not a basic code point)","invalid-input":"Invalid input"},eR=36-1,Os=Math.floor,tR=String.fromCharCode;function kf(e){throw new RangeError(_ye[e])}function $ye(e,t){let r=[],n=e.length;for(;n--;)r[n]=t(e[n]);return r}function BQ(e,t){let r=e.split("@"),n="";r.length>1&&(n=r[0]+"@",e=r[1]),e=e.replace(Jye,".");let i=e.split("."),o=$ye(i,t).join(".");return n+o}function GQ(e){let t=[],r=0,n=e.length;for(;r=55296&&i<=56319&&rString.fromCodePoint(...e),t0e=function(e){return e-48<10?e-22:e-65<26?e-65:e-97<26?e-97:36},VQ=function(e,t){return e+22+75*(e<26)-((t!=0)<<5)},zQ=function(e,t,r){let n=0;for(e=r?Os(e/700):e>>1,e+=Os(e/t);e>eR*26>>1;n+=36)e=Os(e/eR);return Os(n+(eR+1)*e/(e+38))},HQ=function(e){let t=[],r=e.length,n=0,i=128,o=72,s=e.lastIndexOf(UQ);s<0&&(s=0);for(let l=0;l=128&&kf("not-basic"),t.push(e.charCodeAt(l));for(let l=s>0?s+1:0;l=r&&kf("invalid-input");let g=t0e(e.charCodeAt(l++));(g>=36||g>Os((2147483647-n)/m))&&kf("overflow"),n+=g*m;let y=v<=o?1:v>=o+26?26:v-o;if(gOs(2147483647/w)&&kf("overflow"),m*=w}let f=t.length+1;o=zQ(n-c,f,c==0),Os(n/f)>2147483647-i&&kf("overflow"),i+=Os(n/f),n%=f,t.splice(n++,0,i)}return String.fromCodePoint(...t)},QQ=function(e){let t=[];e=GQ(e);let r=e.length,n=128,i=0,o=72;for(let c of e)c<128&&t.push(tR(c));let s=t.length,l=s;for(s&&t.push(UQ);l=n&&mOs((2147483647-i)/f)&&kf("overflow"),i+=(c-n)*f,n=c;for(let m of e)if(m2147483647&&kf("overflow"),m==n){let v=i;for(let g=36;;g+=36){let y=g<=o?1:g>=o+26?26:g-o;if(v{"use strict";KQ.exports={options:{html:!1,xhtmlOut:!1,breaks:!1,langPrefix:"language-",linkify:!1,typographer:!1,quotes:"\u201C\u201D\u2018\u2019",highlight:null,maxNesting:100},components:{core:{},block:{},inline:{}}}});var JQ=X((PRe,ZQ)=>{"use strict";ZQ.exports={options:{html:!1,xhtmlOut:!1,breaks:!1,langPrefix:"language-",linkify:!1,typographer:!1,quotes:"\u201C\u201D\u2018\u2019",highlight:null,maxNesting:20},components:{core:{rules:["normalize","block","inline"]},block:{rules:["paragraph"]},inline:{rules:["text"],rules2:["balance_pairs","text_collapse"]}}}});var $Q=X((RRe,_Q)=>{"use strict";_Q.exports={options:{html:!0,xhtmlOut:!0,breaks:!1,langPrefix:"language-",linkify:!1,typographer:!1,quotes:"\u201C\u201D\u2018\u2019",highlight:null,maxNesting:20},components:{core:{rules:["normalize","block","inline"]},block:{rules:["blockquote","code","fence","heading","hr","html_block","lheading","list","reference","paragraph"]},inline:{rules:["autolink","backticks","emphasis","entity","escape","html_inline","image","link","newline","text"],rules2:["balance_pairs","emphasis","text_collapse"]}}}});var nW=X((MRe,rW)=>{"use strict";var Jg=Ht(),o0e=Vz(),a0e=Bz(),s0e=dH(),l0e=XH(),u0e=DQ(),c0e=jQ(),Of=PP(),eW=YQ(),f0e={default:XQ(),zero:JQ(),commonmark:$Q()},d0e=/^(vbscript|javascript|file|data):/,p0e=/^data:image\/(gif|png|jpeg|webp);/;function m0e(e){var t=e.trim().toLowerCase();return d0e.test(t)?!!p0e.test(t):!0}var tW=["http:","https:","mailto:"];function h0e(e){var t=Of.parse(e,!0);if(t.hostname&&(!t.protocol||tW.indexOf(t.protocol)>=0))try{t.hostname=eW.toASCII(t.hostname)}catch{}return Of.encode(Of.format(t))}function v0e(e){var t=Of.parse(e,!0);if(t.hostname&&(!t.protocol||tW.indexOf(t.protocol)>=0))try{t.hostname=eW.toUnicode(t.hostname)}catch{}return Of.decode(Of.format(t),Of.decode.defaultChars+"%")}function Zo(e,t){if(!(this instanceof Zo))return new Zo(e,t);t||Jg.isString(e)||(t=e||{},e="default"),this.inline=new u0e,this.block=new l0e,this.core=new s0e,this.renderer=new a0e,this.linkify=new c0e,this.validateLink=m0e,this.normalizeLink=h0e,this.normalizeLinkText=v0e,this.utils=Jg,this.helpers=Jg.assign({},o0e),this.options={},this.configure(e),t&&this.set(t)}Zo.prototype.set=function(e){return Jg.assign(this.options,e),this};Zo.prototype.configure=function(e){var t=this,r;if(Jg.isString(e)&&(r=e,e=f0e[r],!e))throw new Error('Wrong `markdown-it` preset "'+r+'", check name');if(!e)throw new Error("Wrong `markdown-it` preset, can't be empty");return e.options&&t.set(e.options),e.components&&Object.keys(e.components).forEach(function(n){e.components[n].rules&&t[n].ruler.enableOnly(e.components[n].rules),e.components[n].rules2&&t[n].ruler2.enableOnly(e.components[n].rules2)}),this};Zo.prototype.enable=function(e,t){var r=[];Array.isArray(e)||(e=[e]),["core","block","inline"].forEach(function(i){r=r.concat(this[i].ruler.enable(e,!0))},this),r=r.concat(this.inline.ruler2.enable(e,!0));var n=e.filter(function(i){return r.indexOf(i)<0});if(n.length&&!t)throw new Error("MarkdownIt. Failed to enable unknown rule(s): "+n);return this};Zo.prototype.disable=function(e,t){var r=[];Array.isArray(e)||(e=[e]),["core","block","inline"].forEach(function(i){r=r.concat(this[i].ruler.disable(e,!0))},this),r=r.concat(this.inline.ruler2.disable(e,!0));var n=e.filter(function(i){return r.indexOf(i)<0});if(n.length&&!t)throw new Error("MarkdownIt. Failed to disable unknown rule(s): "+n);return this};Zo.prototype.use=function(e){var t=[this].concat(Array.prototype.slice.call(arguments,1));return e.apply(e,t),this};Zo.prototype.parse=function(e,t){if(typeof e!="string")throw new Error("Input data should be a String");var r=new this.core.State(e,this,t);return this.core.process(r),r.tokens};Zo.prototype.render=function(e,t){return t=t||{},this.renderer.render(this.parse(e,t),this.options,t)};Zo.prototype.parseInline=function(e,t){var r=new this.core.State(e,this,t);return r.inlineMode=!0,this.core.process(r),r.tokens};Zo.prototype.renderInline=function(e,t){return t=t||{},this.renderer.render(this.parseInline(e,t),this.options,t)};rW.exports=Zo});var oW=X((IRe,iW)=>{"use strict";iW.exports=nW()});var YW=X(fR=>{"use strict";Object.defineProperty(fR,"__esModule",{value:!0});function U0e(e){var t={};return function(r){return t[r]===void 0&&(t[r]=e(r)),t[r]}}fR.default=U0e});var KW=X(dR=>{"use strict";Object.defineProperty(dR,"__esModule",{value:!0});function B0e(e){return e&&typeof e=="object"&&"default"in e?e.default:e}var G0e=B0e(YW()),z0e=/^((children|dangerouslySetInnerHTML|key|ref|autoFocus|defaultValue|defaultChecked|innerHTML|suppressContentEditableWarning|suppressHydrationWarning|valueLink|accept|acceptCharset|accessKey|action|allow|allowUserMedia|allowPaymentRequest|allowFullScreen|allowTransparency|alt|async|autoComplete|autoPlay|capture|cellPadding|cellSpacing|challenge|charSet|checked|cite|classID|className|cols|colSpan|content|contentEditable|contextMenu|controls|controlsList|coords|crossOrigin|data|dateTime|decoding|default|defer|dir|disabled|disablePictureInPicture|download|draggable|encType|form|formAction|formEncType|formMethod|formNoValidate|formTarget|frameBorder|headers|height|hidden|high|href|hrefLang|htmlFor|httpEquiv|id|inputMode|integrity|is|keyParams|keyType|kind|label|lang|list|loading|loop|low|marginHeight|marginWidth|max|maxLength|media|mediaGroup|method|min|minLength|multiple|muted|name|nonce|noValidate|open|optimum|pattern|placeholder|playsInline|poster|preload|profile|radioGroup|readOnly|referrerPolicy|rel|required|reversed|role|rows|rowSpan|sandbox|scope|scoped|scrolling|seamless|selected|shape|size|sizes|slot|span|spellCheck|src|srcDoc|srcLang|srcSet|start|step|style|summary|tabIndex|target|title|type|useMap|value|width|wmode|wrap|about|datatype|inlist|prefix|property|resource|typeof|vocab|autoCapitalize|autoCorrect|autoSave|color|inert|itemProp|itemScope|itemType|itemID|itemRef|on|results|security|unselectable|accentHeight|accumulate|additive|alignmentBaseline|allowReorder|alphabetic|amplitude|arabicForm|ascent|attributeName|attributeType|autoReverse|azimuth|baseFrequency|baselineShift|baseProfile|bbox|begin|bias|by|calcMode|capHeight|clip|clipPathUnits|clipPath|clipRule|colorInterpolation|colorInterpolationFilters|colorProfile|colorRendering|contentScriptType|contentStyleType|cursor|cx|cy|d|decelerate|descent|diffuseConstant|direction|display|divisor|dominantBaseline|dur|dx|dy|edgeMode|elevation|enableBackground|end|exponent|externalResourcesRequired|fill|fillOpacity|fillRule|filter|filterRes|filterUnits|floodColor|floodOpacity|focusable|fontFamily|fontSize|fontSizeAdjust|fontStretch|fontStyle|fontVariant|fontWeight|format|from|fr|fx|fy|g1|g2|glyphName|glyphOrientationHorizontal|glyphOrientationVertical|glyphRef|gradientTransform|gradientUnits|hanging|horizAdvX|horizOriginX|ideographic|imageRendering|in|in2|intercept|k|k1|k2|k3|k4|kernelMatrix|kernelUnitLength|kerning|keyPoints|keySplines|keyTimes|lengthAdjust|letterSpacing|lightingColor|limitingConeAngle|local|markerEnd|markerMid|markerStart|markerHeight|markerUnits|markerWidth|mask|maskContentUnits|maskUnits|mathematical|mode|numOctaves|offset|opacity|operator|order|orient|orientation|origin|overflow|overlinePosition|overlineThickness|panose1|paintOrder|pathLength|patternContentUnits|patternTransform|patternUnits|pointerEvents|points|pointsAtX|pointsAtY|pointsAtZ|preserveAlpha|preserveAspectRatio|primitiveUnits|r|radius|refX|refY|renderingIntent|repeatCount|repeatDur|requiredExtensions|requiredFeatures|restart|result|rotate|rx|ry|scale|seed|shapeRendering|slope|spacing|specularConstant|specularExponent|speed|spreadMethod|startOffset|stdDeviation|stemh|stemv|stitchTiles|stopColor|stopOpacity|strikethroughPosition|strikethroughThickness|string|stroke|strokeDasharray|strokeDashoffset|strokeLinecap|strokeLinejoin|strokeMiterlimit|strokeOpacity|strokeWidth|surfaceScale|systemLanguage|tableValues|targetX|targetY|textAnchor|textDecoration|textRendering|textLength|to|transform|u1|u2|underlinePosition|underlineThickness|unicode|unicodeBidi|unicodeRange|unitsPerEm|vAlphabetic|vHanging|vIdeographic|vMathematical|values|vectorEffect|version|vertAdvY|vertOriginX|vertOriginY|viewBox|viewTarget|visibility|widths|wordSpacing|writingMode|x|xHeight|x1|x2|xChannelSelector|xlinkActuate|xlinkArcrole|xlinkHref|xlinkRole|xlinkShow|xlinkTitle|xlinkType|xmlBase|xmlns|xmlnsXlink|xmlLang|xmlSpace|y|y1|y2|yChannelSelector|z|zoomAndPan|for|class|autofocus)|(([Dd][Aa][Tt][Aa]|[Aa][Rr][Ii][Aa]|x)-.*))$/,H0e=G0e(function(e){return z0e.test(e)||e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)<91});dR.default=H0e});function _t(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}function Kt(){return RZ||(RZ=1,function(e,t){(function(r,n){e.exports=n()})(hxe,function(){var r=navigator.userAgent,n=navigator.platform,i=/gecko\/\d/i.test(r),o=/MSIE \d/.test(r),s=/Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/.exec(r),l=/Edge\/(\d+)/.exec(r),c=o||s||l,f=c&&(o?document.documentMode||6:+(l||s)[1]),m=!l&&/WebKit\//.test(r),v=m&&/Qt\/\d+\.\d+/.test(r),g=!l&&/Chrome\//.test(r),y=/Opera\//.test(r),w=/Apple Computer/.test(navigator.vendor),T=/Mac OS X 1\d\D([8-9]|\d\d)\D/.test(r),S=/PhantomJS/.test(r),A=w&&(/Mobile\/\w+/.test(r)||navigator.maxTouchPoints>2),b=/Android/.test(r),C=A||b||/webOS|BlackBerry|Opera Mini|Opera Mobi|IEMobile/i.test(r),x=A||/Mac/.test(n),k=/\bCrOS\b/.test(r),P=/win/i.test(n),D=y&&r.match(/Version\/(\d*\.\d*)/);D&&(D=Number(D[1])),D&&D>=15&&(y=!1,m=!0);var N=x&&(v||y&&(D==null||D<12.11)),I=i||c&&f>=9;function V(a){return new RegExp("(^|\\s)"+a+"(?:$|\\s)\\s*")}M(V,"classTest");var G=M(function(a,u){var p=a.className,d=V(u).exec(p);if(d){var h=p.slice(d.index+d[0].length);a.className=p.slice(0,d.index)+(h?d[1]+h:"")}},"rmClass");function B(a){for(var u=a.childNodes.length;u>0;--u)a.removeChild(a.firstChild);return a}M(B,"removeChildren");function U(a,u){return B(a).appendChild(u)}M(U,"removeChildrenAndAdd");function z(a,u,p,d){var h=document.createElement(a);if(p&&(h.className=p),d&&(h.style.cssText=d),typeof u=="string")h.appendChild(document.createTextNode(u));else if(u)for(var E=0;E=u)return O+(u-E);O+=L-E,O+=p-O%p,E=L+1}}M(ie,"countColumn");var ye=M(function(){this.id=null,this.f=null,this.time=0,this.handler=Re(this.onTimeout,this)},"Delayed");ye.prototype.onTimeout=function(a){a.id=0,a.time<=+new Date?a.f():setTimeout(a.handler,a.time-+new Date)},ye.prototype.set=function(a,u){this.f=u;var p=+new Date+a;(!this.id||p=u)return d+Math.min(O,u-h);if(h+=E-d,h+=p-h%p,d=E+1,h>=u)return d}}M(bt,"findColumn");var he=[""];function Fe(a){for(;he.length<=a;)he.push(pe(he)+" ");return he[a]}M(Fe,"spaceStr");function pe(a){return a[a.length-1]}M(pe,"lst");function Me(a,u){for(var p=[],d=0;d"\x80"&&(a.toUpperCase()!=a.toLowerCase()||wt.test(a))}M(Or,"isWordCharBasic");function ua(a,u){return u?u.source.indexOf("\\w")>-1&&Or(a)?!0:u.test(a):Or(a)}M(ua,"isWordChar");function Rl(a){for(var u in a)if(a.hasOwnProperty(u)&&a[u])return!1;return!0}M(Rl,"isEmpty");var nc=/[\u0300-\u036f\u0483-\u0489\u0591-\u05bd\u05bf\u05c1\u05c2\u05c4\u05c5\u05c7\u0610-\u061a\u064b-\u065e\u0670\u06d6-\u06dc\u06de-\u06e4\u06e7\u06e8\u06ea-\u06ed\u0711\u0730-\u074a\u07a6-\u07b0\u07eb-\u07f3\u0816-\u0819\u081b-\u0823\u0825-\u0827\u0829-\u082d\u0900-\u0902\u093c\u0941-\u0948\u094d\u0951-\u0955\u0962\u0963\u0981\u09bc\u09be\u09c1-\u09c4\u09cd\u09d7\u09e2\u09e3\u0a01\u0a02\u0a3c\u0a41\u0a42\u0a47\u0a48\u0a4b-\u0a4d\u0a51\u0a70\u0a71\u0a75\u0a81\u0a82\u0abc\u0ac1-\u0ac5\u0ac7\u0ac8\u0acd\u0ae2\u0ae3\u0b01\u0b3c\u0b3e\u0b3f\u0b41-\u0b44\u0b4d\u0b56\u0b57\u0b62\u0b63\u0b82\u0bbe\u0bc0\u0bcd\u0bd7\u0c3e-\u0c40\u0c46-\u0c48\u0c4a-\u0c4d\u0c55\u0c56\u0c62\u0c63\u0cbc\u0cbf\u0cc2\u0cc6\u0ccc\u0ccd\u0cd5\u0cd6\u0ce2\u0ce3\u0d3e\u0d41-\u0d44\u0d4d\u0d57\u0d62\u0d63\u0dca\u0dcf\u0dd2-\u0dd4\u0dd6\u0ddf\u0e31\u0e34-\u0e3a\u0e47-\u0e4e\u0eb1\u0eb4-\u0eb9\u0ebb\u0ebc\u0ec8-\u0ecd\u0f18\u0f19\u0f35\u0f37\u0f39\u0f71-\u0f7e\u0f80-\u0f84\u0f86\u0f87\u0f90-\u0f97\u0f99-\u0fbc\u0fc6\u102d-\u1030\u1032-\u1037\u1039\u103a\u103d\u103e\u1058\u1059\u105e-\u1060\u1071-\u1074\u1082\u1085\u1086\u108d\u109d\u135f\u1712-\u1714\u1732-\u1734\u1752\u1753\u1772\u1773\u17b7-\u17bd\u17c6\u17c9-\u17d3\u17dd\u180b-\u180d\u18a9\u1920-\u1922\u1927\u1928\u1932\u1939-\u193b\u1a17\u1a18\u1a56\u1a58-\u1a5e\u1a60\u1a62\u1a65-\u1a6c\u1a73-\u1a7c\u1a7f\u1b00-\u1b03\u1b34\u1b36-\u1b3a\u1b3c\u1b42\u1b6b-\u1b73\u1b80\u1b81\u1ba2-\u1ba5\u1ba8\u1ba9\u1c2c-\u1c33\u1c36\u1c37\u1cd0-\u1cd2\u1cd4-\u1ce0\u1ce2-\u1ce8\u1ced\u1dc0-\u1de6\u1dfd-\u1dff\u200c\u200d\u20d0-\u20f0\u2cef-\u2cf1\u2de0-\u2dff\u302a-\u302f\u3099\u309a\ua66f-\ua672\ua67c\ua67d\ua6f0\ua6f1\ua802\ua806\ua80b\ua825\ua826\ua8c4\ua8e0-\ua8f1\ua926-\ua92d\ua947-\ua951\ua980-\ua982\ua9b3\ua9b6-\ua9b9\ua9bc\uaa29-\uaa2e\uaa31\uaa32\uaa35\uaa36\uaa43\uaa4c\uaab0\uaab2-\uaab4\uaab7\uaab8\uaabe\uaabf\uaac1\uabe5\uabe8\uabed\udc00-\udfff\ufb1e\ufe00-\ufe0f\ufe20-\ufe26\uff9e\uff9f]/;function Vs(a){return a.charCodeAt(0)>=768&&nc.test(a)}M(Vs,"isExtendingChar");function Ml(a,u,p){for(;(p<0?u>0:up?-1:1;;){if(u==p)return u;var h=(u+p)/2,E=d<0?Math.ceil(h):Math.floor(h);if(E==u)return a(E)?u:p;a(E)?p=E:u=E+d}}M(xi,"findFirst");function ic(a,u,p,d){if(!a)return d(u,p,"ltr",0);for(var h=!1,E=0;Eu||u==p&&O.to==u)&&(d(Math.max(O.from,u),Math.min(O.to,p),O.level==1?"rtl":"ltr",E),h=!0)}h||d(u,p,"ltr")}M(ic,"iterateBidiSections");var tn=null;function pr(a,u,p){var d;tn=null;for(var h=0;hu)return h;E.to==u&&(E.from!=E.to&&p=="before"?d=h:tn=h),E.from==u&&(E.from!=E.to&&p!="before"?d=h:tn=h)}return d??tn}M(pr,"getBidiPartAt");var Il=function(){var a="bbbbbbbbbtstwsbbbbbbbbbbbbbbssstwNN%%%NNNNNN,N,N1111111111NNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNbbbbbbsbbbbbbbbbbbbbbbbbbbbbbbbbb,N%%%%NNNNLNNNNN%%11NLNNN1LNNNNNLLLLLLLLLLLLLLLLLLLLLLLNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLN",u="nnnnnnNNr%%r,rNNmmmmmmmmmmmrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrmmmmmmmmmmmmmmmmmmmmmnnnnnnnnnn%nnrrrmrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrmmmmmmmnNmmmmmmrrmmNmmmmrr1111111111";function p(F){return F<=247?a.charAt(F):1424<=F&&F<=1524?"R":1536<=F&&F<=1785?u.charAt(F-1536):1774<=F&&F<=2220?"r":8192<=F&&F<=8203?"w":F==8204?"b":"L"}M(p,"charType");var d=/[\u0590-\u05f4\u0600-\u06ff\u0700-\u08ac]/,h=/[stwN]/,E=/[LRr]/,O=/[Lb1n]/,L=/[1n]/;function R(F,H,Q){this.level=F,this.from=H,this.to=Q}return M(R,"BidiSpan"),function(F,H){var Q=H=="ltr"?"L":"R";if(F.length==0||H=="ltr"&&!d.test(F))return!1;for(var $=F.length,Z=[],le=0;le<$;++le)Z.push(p(F.charCodeAt(le)));for(var ge=0,Te=Q;ge<$;++ge){var De=Z[ge];De=="m"?Z[ge]=Te:Te=De}for(var qe=0,Le=Q;qe<$;++qe){var Be=Z[qe];Be=="1"&&Le=="r"?Z[qe]="n":E.test(Be)&&(Le=Be,Be=="r"&&(Z[qe]="R"))}for(var it=1,Je=Z[0];it<$-1;++it){var Et=Z[it];Et=="+"&&Je=="1"&&Z[it+1]=="1"?Z[it]="1":Et==","&&Je==Z[it+1]&&(Je=="1"||Je=="n")&&(Z[it]=Je),Je=Et}for(var $t=0;$t<$;++$t){var hn=Z[$t];if(hn==",")Z[$t]="N";else if(hn=="%"){var mr=void 0;for(mr=$t+1;mr<$&&Z[mr]=="%";++mr);for(var Ci=$t&&Z[$t-1]=="!"||mr<$&&Z[mr]=="1"?"1":"N",Si=$t;Si-1&&(d[u]=h.slice(0,E).concat(h.slice(E+1)))}}}M(Vn,"off");function ut(a,u){var p=Fl(a,u);if(p.length)for(var d=Array.prototype.slice.call(arguments,2),h=0;h0}M(rn,"hasHandler");function ko(a){a.prototype.on=function(u,p){rt(this,u,p)},a.prototype.off=function(u,p){Vn(this,u,p)}}M(ko,"eventMixin");function mn(a){a.preventDefault?a.preventDefault():a.returnValue=!1}M(mn,"e_preventDefault");function jl(a){a.stopPropagation?a.stopPropagation():a.cancelBubble=!0}M(jl,"e_stopPropagation");function wi(a){return a.defaultPrevented!=null?a.defaultPrevented:a.returnValue==!1}M(wi,"e_defaultPrevented");function Us(a){mn(a),jl(a)}M(Us,"e_stop");function Ka(a){return a.target||a.srcElement}M(Ka,"e_target");function td(a){var u=a.which;return u==null&&(a.button&1?u=1:a.button&2?u=3:a.button&4&&(u=2)),x&&a.ctrlKey&&u==1&&(u=3),u}M(td,"e_button");var rd=function(){if(c&&f<9)return!1;var a=z("div");return"draggable"in a||"dragDrop"in a}(),ni;function nd(a){if(ni==null){var u=z("span","\u200B");U(a,z("span",[u,document.createTextNode("x")])),a.firstChild.offsetHeight!=0&&(ni=u.offsetWidth<=1&&u.offsetHeight>2&&!(c&&f<8))}var p=ni?z("span","\u200B"):z("span","\xA0",null,"display: inline-block; width: 1px; margin-right: -1px");return p.setAttribute("cm-text",""),p}M(nd,"zeroWidthElement");var id;function Oo(a){if(id!=null)return id;var u=U(a,document.createTextNode("A\u062EA")),p=J(u,0,1).getBoundingClientRect(),d=J(u,1,2).getBoundingClientRect();return B(a),!p||p.left==p.right?!1:id=d.right-p.right<3}M(Oo,"hasBadBidiRects");var od=` - -b`.split(/\n/).length!=3?function(a){for(var u=0,p=[],d=a.length;u<=d;){var h=a.indexOf(` -`,u);h==-1&&(h=a.length);var E=a.slice(u,a.charAt(h-1)=="\r"?h-1:h),O=E.indexOf("\r");O!=-1?(p.push(E.slice(0,O)),u+=O+1):(p.push(E),u=h+1)}return p}:function(a){return a.split(/\r\n?|\n/)},oh=window.getSelection?function(a){try{return a.selectionStart!=a.selectionEnd}catch{return!1}}:function(a){var u;try{u=a.ownerDocument.selection.createRange()}catch{}return!u||u.parentElement()!=a?!1:u.compareEndPoints("StartToEnd",u)!=0},ah=function(){var a=z("div");return"oncopy"in a?!0:(a.setAttribute("oncopy","return;"),typeof a.oncopy=="function")}(),ad=null;function Xa(a){if(ad!=null)return ad;var u=U(a,z("span","x")),p=u.getBoundingClientRect(),d=J(u,0,1).getBoundingClientRect();return ad=Math.abs(p.left-d.left)>1}M(Xa,"hasBadZoomedRects");var ro={},qi={};function sd(a,u){arguments.length>2&&(u.dependencies=Array.prototype.slice.call(arguments,2)),ro[a]=u}M(sd,"defineMode");function ca(a,u){qi[a]=u}M(ca,"defineMIME");function Vl(a){if(typeof a=="string"&&qi.hasOwnProperty(a))a=qi[a];else if(a&&typeof a.name=="string"&&qi.hasOwnProperty(a.name)){var u=qi[a.name];typeof u=="string"&&(u={name:u}),a=lt(u,a),a.name=u.name}else{if(typeof a=="string"&&/^[\w\-]+\/[\w\-]+\+xml$/.test(a))return Vl("application/xml");if(typeof a=="string"&&/^[\w\-]+\/[\w\-]+\+json$/.test(a))return Vl("application/json")}return typeof a=="string"?{name:a}:a||{name:"null"}}M(Vl,"resolveMode");function Ul(a,u){u=Vl(u);var p=ro[u.name];if(!p)return Ul(a,"text/plain");var d=p(a,u);if(No.hasOwnProperty(u.name)){var h=No[u.name];for(var E in h)h.hasOwnProperty(E)&&(d.hasOwnProperty(E)&&(d["_"+E]=d[E]),d[E]=h[E])}if(d.name=u.name,u.helperType&&(d.helperType=u.helperType),u.modeProps)for(var O in u.modeProps)d[O]=u.modeProps[O];return d}M(Ul,"getMode");var No={};function no(a,u){var p=No.hasOwnProperty(a)?No[a]:No[a]={};Se(u,p)}M(no,"extendMode");function ji(a,u){if(u===!0)return u;if(a.copyState)return a.copyState(u);var p={};for(var d in u){var h=u[d];h instanceof Array&&(h=h.concat([])),p[d]=h}return p}M(ji,"copyState");function oc(a,u){for(var p;a.innerMode&&(p=a.innerMode(u),!(!p||p.mode==a));)u=p.state,a=p.mode;return p||{mode:a,state:u}}M(oc,"innerMode");function ac(a,u,p){return a.startState?a.startState(u,p):!0}M(ac,"startState");var xr=M(function(a,u,p){this.pos=this.start=0,this.string=a,this.tabSize=u||8,this.lastColumnPos=this.lastColumnValue=0,this.lineStart=0,this.lineOracle=p},"StringStream");xr.prototype.eol=function(){return this.pos>=this.string.length},xr.prototype.sol=function(){return this.pos==this.lineStart},xr.prototype.peek=function(){return this.string.charAt(this.pos)||void 0},xr.prototype.next=function(){if(this.posu},xr.prototype.eatSpace=function(){for(var a=this.pos;/[\s\u00a0]/.test(this.string.charAt(this.pos));)++this.pos;return this.pos>a},xr.prototype.skipToEnd=function(){this.pos=this.string.length},xr.prototype.skipTo=function(a){var u=this.string.indexOf(a,this.pos);if(u>-1)return this.pos=u,!0},xr.prototype.backUp=function(a){this.pos-=a},xr.prototype.column=function(){return this.lastColumnPos0?null:(E&&u!==!1&&(this.pos+=E[0].length),E)}},xr.prototype.current=function(){return this.string.slice(this.start,this.pos)},xr.prototype.hideFirstChars=function(a,u){this.lineStart+=a;try{return u()}finally{this.lineStart-=a}},xr.prototype.lookAhead=function(a){var u=this.lineOracle;return u&&u.lookAhead(a)},xr.prototype.baseToken=function(){var a=this.lineOracle;return a&&a.baseToken(this.pos)};function Qe(a,u){if(u-=a.first,u<0||u>=a.size)throw new Error("There is no line "+(u+a.first)+" in the document.");for(var p=a;!p.lines;)for(var d=0;;++d){var h=p.children[d],E=h.chunkSize();if(u=a.first&&up?Ae(p,Qe(a,p).text.length):Sn(u,Qe(a,u.line).text.length)}M(Ve,"clipPos");function Sn(a,u){var p=a.ch;return p==null||p>u?Ae(a.line,u):p<0?Ae(a.line,0):a}M(Sn,"clipToLen");function Vi(a,u){for(var p=[],d=0;dthis.maxLookAhead&&(this.maxLookAhead=a),u},Za.prototype.baseToken=function(a){if(!this.baseTokens)return null;for(;this.baseTokens[this.baseTokenPos]<=a;)this.baseTokenPos+=2;var u=this.baseTokens[this.baseTokenPos+1];return{type:u&&u.replace(/( |^)overlay .*/,""),size:this.baseTokens[this.baseTokenPos]-a}},Za.prototype.nextLine=function(){this.line++,this.maxLookAhead>0&&this.maxLookAhead--},Za.fromSaved=function(a,u,p){return u instanceof ld?new Za(a,ji(a.mode,u.state),p,u.lookAhead):new Za(a,ji(a.mode,u),p)},Za.prototype.save=function(a){var u=a!==!1?ji(this.doc.mode,this.state):this.state;return this.maxLookAhead>0?new ld(u,this.maxLookAhead):u};function dT(a,u,p,d){var h=[a.state.modeGen],E={};gT(a,u.text,a.doc.mode,p,function(F,H){return h.push(F,H)},E,d);for(var O=p.state,L=M(function(F){p.baseTokens=h;var H=a.state.overlays[F],Q=1,$=0;p.state=!0,gT(a,u.text,H.mode,p,function(Z,le){for(var ge=Q;$Z&&h.splice(Q,1,Z,h[Q+1],Te),Q+=2,$=Math.min(Z,Te)}if(le)if(H.opaque)h.splice(ge,Q-ge,Z,"overlay "+le),Q=ge+2;else for(;gea.options.maxHighlightLength&&ji(a.doc.mode,d.state),E=dT(a,u,d);h&&(d.state=h),u.stateAfter=d.save(!h),u.styles=E.styles,E.classes?u.styleClasses=E.classes:u.styleClasses&&(u.styleClasses=null),p===a.doc.highlightFrontier&&(a.doc.modeFrontier=Math.max(a.doc.modeFrontier,++a.doc.highlightFrontier))}return u.styles}M(pT,"getLineStyles");function ud(a,u,p){var d=a.doc,h=a.display;if(!d.mode.startState)return new Za(d,!0,u);var E=II(a,u,p),O=E>d.first&&Qe(d,E-1).stateAfter,L=O?Za.fromSaved(d,O,E):new Za(d,ac(d.mode),E);return d.iter(E,u,function(R){o0(a,R.text,L);var F=L.line;R.stateAfter=F==u-1||F%5==0||F>=h.viewFrom&&Fu.start)return E}throw new Error("Mode "+a.name+" failed to advance stream.")}M(a0,"readToken");var MI=M(function(a,u,p){this.start=a.start,this.end=a.pos,this.string=a.current(),this.type=u||null,this.state=p},"Token");function hT(a,u,p,d){var h=a.doc,E=h.mode,O;u=Ve(h,u);var L=Qe(h,u.line),R=ud(a,u.line,p),F=new xr(L.text,a.options.tabSize,R),H;for(d&&(H=[]);(d||F.posa.options.maxHighlightLength?(L=!1,O&&o0(a,u,d,H.pos),H.pos=u.length,Q=null):Q=vT(a0(p,H,d.state,$),E),$){var Z=$[0].name;Z&&(Q="m-"+(Q?Z+" "+Q:Z))}if(!L||F!=Q){for(;RO;--L){if(L<=E.first)return E.first;var R=Qe(E,L-1),F=R.stateAfter;if(F&&(!p||L+(F instanceof ld?F.lookAhead:0)<=E.modeFrontier))return L;var H=ie(R.text,null,a.options.tabSize);(h==null||d>H)&&(h=L-1,d=H)}return h}M(II,"findStartLine");function FI(a,u){if(a.modeFrontier=Math.min(a.modeFrontier,u),!(a.highlightFrontierp;d--){var h=Qe(a,d).stateAfter;if(h&&(!(h instanceof ld)||d+h.lookAhead=u:E.to>u);(d||(d=[])).push(new sh(O,E.from,R?null:E.to))}}return d}M(GI,"markedSpansBefore");function zI(a,u,p){var d;if(a)for(var h=0;h=u:E.to>u);if(L||E.from==u&&O.type=="bookmark"&&(!p||E.marker.insertLeft)){var R=E.from==null||(O.inclusiveLeft?E.from<=u:E.from0&&L)for(var Be=0;Be0)){var H=[R,1],Q=q(F.from,L.from),$=q(F.to,L.to);(Q<0||!O.inclusiveLeft&&!Q)&&H.push({from:F.from,to:L.from}),($>0||!O.inclusiveRight&&!$)&&H.push({from:L.to,to:F.to}),h.splice.apply(h,H),R+=H.length-3}}return h}M(HI,"removeReadOnlyRanges");function bT(a){var u=a.markedSpans;if(u){for(var p=0;pu)&&(!d||l0(d,E.marker)<0)&&(d=E.marker)}return d}M(QI,"collapsedSpanAround");function ET(a,u,p,d,h){var E=Qe(a,u),O=Gs&&E.markedSpans;if(O)for(var L=0;L=0&&Q<=0||H<=0&&Q>=0)&&(H<=0&&(R.marker.inclusiveRight&&h.inclusiveLeft?q(F.to,p)>=0:q(F.to,p)>0)||H>=0&&(R.marker.inclusiveRight&&h.inclusiveLeft?q(F.from,d)<=0:q(F.from,d)<0)))return!0}}}M(ET,"conflictingCollapsedRange");function Po(a){for(var u;u=wT(a);)a=u.find(-1,!0).line;return a}M(Po,"visualLine");function WI(a){for(var u;u=ch(a);)a=u.find(1,!0).line;return a}M(WI,"visualLineEnd");function YI(a){for(var u,p;u=ch(a);)a=u.find(1,!0).line,(p||(p=[])).push(a);return p}M(YI,"visualLineContinued");function u0(a,u){var p=Qe(a,u),d=Po(p);return p==d?u:Pt(d)}M(u0,"visualLineNo");function TT(a,u){if(u>a.lastLine())return u;var p=Qe(a,u),d;if(!zs(a,p))return u;for(;d=ch(p);)p=d.find(1,!0).line;return Pt(p)+1}M(TT,"visualLineEndNo");function zs(a,u){var p=Gs&&u.markedSpans;if(p){for(var d=void 0,h=0;hu.maxLineLength&&(u.maxLineLength=h,u.maxLine=d)})}M(f0,"findMaxLine");var fd=M(function(a,u,p){this.text=a,AT(this,u),this.height=p?p(this):1},"Line");fd.prototype.lineNo=function(){return Pt(this)},ko(fd);function KI(a,u,p,d){a.text=u,a.stateAfter&&(a.stateAfter=null),a.styles&&(a.styles=null),a.order!=null&&(a.order=null),bT(a),AT(a,p);var h=d?d(a):1;h!=a.height&&ii(a,h)}M(KI,"updateLine");function XI(a){a.parent=null,bT(a)}M(XI,"cleanUpLine");var G$={},z$={};function CT(a,u){if(!a||/^\s*$/.test(a))return null;var p=u.addModeClass?z$:G$;return p[a]||(p[a]=a.replace(/\S+/g,"cm-$&"))}M(CT,"interpretTokenStyle");function ST(a,u){var p=j("span",null,null,m?"padding-right: .1px":null),d={pre:j("pre",[p],"CodeMirror-line"),content:p,col:0,pos:0,cm:a,trailingSpace:!1,splitSpaces:a.getOption("lineWrapping")};u.measure={};for(var h=0;h<=(u.rest?u.rest.length:0);h++){var E=h?u.rest[h-1]:u.line,O=void 0;d.pos=0,d.addToken=JI,Oo(a.display.measure)&&(O=ri(E,a.doc.direction))&&(d.addToken=$I(d.addToken,O)),d.map=[];var L=u!=a.display.externalMeasured&&Pt(E);eF(E,d,pT(a,E,L)),E.styleClasses&&(E.styleClasses.bgClass&&(d.bgClass=se(E.styleClasses.bgClass,d.bgClass||"")),E.styleClasses.textClass&&(d.textClass=se(E.styleClasses.textClass,d.textClass||""))),d.map.length==0&&d.map.push(0,0,d.content.appendChild(nd(a.display.measure))),h==0?(u.measure.map=d.map,u.measure.cache={}):((u.measure.maps||(u.measure.maps=[])).push(d.map),(u.measure.caches||(u.measure.caches=[])).push({}))}if(m){var R=d.content.lastChild;(/\bcm-tab\b/.test(R.className)||R.querySelector&&R.querySelector(".cm-tab"))&&(d.content.className="cm-tab-wrap-hack")}return ut(a,"renderLine",a,u.line,d.pre),d.pre.className&&(d.textClass=se(d.pre.className,d.textClass||"")),d}M(ST,"buildLineContent");function ZI(a){var u=z("span","\u2022","cm-invalidchar");return u.title="\\u"+a.charCodeAt(0).toString(16),u.setAttribute("aria-label",u.title),u}M(ZI,"defaultSpecialCharPlaceholder");function JI(a,u,p,d,h,E,O){if(u){var L=a.splitSpaces?_I(u,a.trailingSpace):u,R=a.cm.state.specialChars,F=!1,H;if(!R.test(u))a.col+=u.length,H=document.createTextNode(L),a.map.push(a.pos,a.pos+u.length,H),c&&f<9&&(F=!0),a.pos+=u.length;else{H=document.createDocumentFragment();for(var Q=0;;){R.lastIndex=Q;var $=R.exec(u),Z=$?$.index-Q:u.length-Q;if(Z){var le=document.createTextNode(L.slice(Q,Q+Z));c&&f<9?H.appendChild(z("span",[le])):H.appendChild(le),a.map.push(a.pos,a.pos+Z,le),a.col+=Z,a.pos+=Z}if(!$)break;Q+=Z+1;var ge=void 0;if($[0]==" "){var Te=a.cm.options.tabSize,De=Te-a.col%Te;ge=H.appendChild(z("span",Fe(De),"cm-tab")),ge.setAttribute("role","presentation"),ge.setAttribute("cm-text"," "),a.col+=De}else $[0]=="\r"||$[0]==` -`?(ge=H.appendChild(z("span",$[0]=="\r"?"\u240D":"\u2424","cm-invalidchar")),ge.setAttribute("cm-text",$[0]),a.col+=1):(ge=a.cm.options.specialCharPlaceholder($[0]),ge.setAttribute("cm-text",$[0]),c&&f<9?H.appendChild(z("span",[ge])):H.appendChild(ge),a.col+=1);a.map.push(a.pos,a.pos+1,ge),a.pos++}}if(a.trailingSpace=L.charCodeAt(u.length-1)==32,p||d||h||F||E||O){var qe=p||"";d&&(qe+=d),h&&(qe+=h);var Le=z("span",[H],qe,E);if(O)for(var Be in O)O.hasOwnProperty(Be)&&Be!="style"&&Be!="class"&&Le.setAttribute(Be,O[Be]);return a.content.appendChild(Le)}a.content.appendChild(H)}}M(JI,"buildToken");function _I(a,u){if(a.length>1&&!/ /.test(a))return a;for(var p=u,d="",h=0;hF&&Q.from<=F));$++);if(Q.to>=H)return a(p,d,h,E,O,L,R);a(p,d.slice(0,Q.to-F),h,E,null,L,R),E=null,d=d.slice(Q.to-F),F=Q.to}}}M($I,"buildTokenBadBidi");function kT(a,u,p,d){var h=!d&&p.widgetNode;h&&a.map.push(a.pos,a.pos+u,h),!d&&a.cm.display.input.needsContentAttribute&&(h||(h=a.content.appendChild(document.createElement("span"))),h.setAttribute("cm-marker",p.id)),h&&(a.cm.display.input.setUneditable(h),a.content.appendChild(h)),a.pos+=u,a.trailingSpace=!1}M(kT,"buildCollapsedSpan");function eF(a,u,p){var d=a.markedSpans,h=a.text,E=0;if(!d){for(var O=1;OR||Et.collapsed&&Je.to==R&&Je.from==R)){if(Je.to!=null&&Je.to!=R&&Z>Je.to&&(Z=Je.to,ge=""),Et.className&&(le+=" "+Et.className),Et.css&&($=($?$+";":"")+Et.css),Et.startStyle&&Je.from==R&&(Te+=" "+Et.startStyle),Et.endStyle&&Je.to==Z&&(Be||(Be=[])).push(Et.endStyle,Je.to),Et.title&&((qe||(qe={})).title=Et.title),Et.attributes)for(var $t in Et.attributes)(qe||(qe={}))[$t]=Et.attributes[$t];Et.collapsed&&(!De||l0(De.marker,Et)<0)&&(De=Je)}else Je.from>R&&Z>Je.from&&(Z=Je.from)}if(Be)for(var hn=0;hn=L)break;for(var Ci=Math.min(L,Z);;){if(H){var Si=R+H.length;if(!De){var zr=Si>Ci?H.slice(0,Ci-R):H;u.addToken(u,zr,Q?Q+le:le,Te,R+zr.length==Z?ge:"",$,qe)}if(Si>=Ci){H=H.slice(Ci-R),R=Ci;break}R=Si,Te=""}H=h.slice(E,E=p[F++]),Q=CT(p[F++],u.cm.options)}}}M(eF,"insertLineContent");function OT(a,u,p){this.line=u,this.rest=YI(u),this.size=this.rest?Pt(pe(this.rest))-p+1:1,this.node=this.text=null,this.hidden=zs(a,u)}M(OT,"LineView");function dh(a,u,p){for(var d=[],h,E=u;E2&&E.push((R.bottom+F.top)/2-p.top)}}E.push(p.bottom-p.top)}}M(cF,"ensureLineHeights");function IT(a,u,p){if(a.line==u)return{map:a.measure.map,cache:a.measure.cache};if(a.rest){for(var d=0;dp)return{map:a.measure.maps[h],cache:a.measure.caches[h],before:!0}}}M(IT,"mapFromLineView");function fF(a,u){u=Po(u);var p=Pt(u),d=a.display.externalMeasured=new OT(a.doc,u,p);d.lineN=p;var h=d.built=ST(a,d);return d.text=h.pre,U(a.display.lineMeasure,h.pre),d}M(fF,"updateExternalMeasurement");function FT(a,u,p,d){return da(a,uc(a,u),p,d)}M(FT,"measureChar");function h0(a,u){if(u>=a.display.viewFrom&&u=p.lineN&&uu)&&(E=R-L,h=E-1,u>=R&&(O="right")),h!=null){if(d=a[F+2],L==R&&p==(d.insertLeft?"left":"right")&&(O=p),p=="left"&&h==0)for(;F&&a[F-2]==a[F-3]&&a[F-1].insertLeft;)d=a[(F-=3)+2],O="left";if(p=="right"&&h==R-L)for(;F=0&&(p=a[h]).left==p.right;h--);return p}M(pF,"getUsefulRect");function mF(a,u,p,d){var h=qT(u.map,p,d),E=h.node,O=h.start,L=h.end,R=h.collapse,F;if(E.nodeType==3){for(var H=0;H<4;H++){for(;O&&Vs(u.line.text.charAt(h.coverStart+O));)--O;for(;h.coverStart+L0&&(R=d="right");var Q;a.options.lineWrapping&&(Q=E.getClientRects()).length>1?F=Q[d=="right"?Q.length-1:0]:F=E.getBoundingClientRect()}if(c&&f<9&&!O&&(!F||!F.left&&!F.right)){var $=E.parentNode.getClientRects()[0];$?F={left:$.left,right:$.left+dc(a.display),top:$.top,bottom:$.bottom}:F=dF}for(var Z=F.top-u.rect.top,le=F.bottom-u.rect.top,ge=(Z+le)/2,Te=u.view.measure.heights,De=0;De=d.text.length?(R=d.text.length,F="before"):R<=0&&(R=0,F="after"),!L)return O(F=="before"?R-1:R,F=="before");function H(le,ge,Te){var De=L[ge],qe=De.level==1;return O(Te?le-1:le,qe!=Te)}M(H,"getBidi");var Q=pr(L,R,F),$=tn,Z=H(R,Q,F=="before");return $!=null&&(Z.other=H(R,$,F!="before")),Z}M(Ro,"cursorCoords");function zT(a,u){var p=0;u=Ve(a.doc,u),a.options.lineWrapping||(p=dc(a.display)*u.ch);var d=Qe(a.doc,u.line),h=Ja(d)+mh(a.display);return{left:p,right:p,top:h,bottom:h+d.height}}M(zT,"estimateCoords");function g0(a,u,p,d,h){var E=Ae(a,u,p);return E.xRel=h,d&&(E.outside=d),E}M(g0,"PosWithInfo");function y0(a,u,p){var d=a.doc;if(p+=a.display.viewOffset,p<0)return g0(d.first,0,null,-1,-1);var h=Lo(d,p),E=d.first+d.size-1;if(h>E)return g0(d.first+d.size-1,Qe(d,E).text.length,null,1,1);u<0&&(u=0);for(var O=Qe(d,h);;){var L=vF(a,O,h,u,p),R=QI(O,L.ch+(L.xRel>0||L.outside>0?1:0));if(!R)return L;var F=R.find(1);if(F.line==h)return F;O=Qe(d,h=F.line)}}M(y0,"coordsChar");function HT(a,u,p,d){d-=v0(u);var h=u.text.length,E=xi(function(O){return da(a,p,O-1).bottom<=d},h,0);return h=xi(function(O){return da(a,p,O).top>d},E,h),{begin:E,end:h}}M(HT,"wrappedLineExtent");function QT(a,u,p,d){p||(p=uc(a,u));var h=hh(a,u,da(a,p,d),"line").top;return HT(a,u,p,h)}M(QT,"wrappedLineExtentChar");function b0(a,u,p,d){return a.bottom<=p?!1:a.top>p?!0:(d?a.left:a.right)>u}M(b0,"boxIsAfter");function vF(a,u,p,d,h){h-=Ja(u);var E=uc(a,u),O=v0(u),L=0,R=u.text.length,F=!0,H=ri(u,a.doc.direction);if(H){var Q=(a.options.lineWrapping?yF:gF)(a,u,p,E,H,d,h);F=Q.level!=1,L=F?Q.from:Q.to-1,R=F?Q.to:Q.from-1}var $=null,Z=null,le=xi(function(it){var Je=da(a,E,it);return Je.top+=O,Je.bottom+=O,b0(Je,d,h,!1)?(Je.top<=h&&Je.left<=d&&($=it,Z=Je),!0):!1},L,R),ge,Te,De=!1;if(Z){var qe=d-Z.left=Be.bottom?1:0}return le=Ml(u.text,le,1),g0(p,le,Te,De,d-ge)}M(vF,"coordsCharInner");function gF(a,u,p,d,h,E,O){var L=xi(function(Q){var $=h[Q],Z=$.level!=1;return b0(Ro(a,Ae(p,Z?$.to:$.from,Z?"before":"after"),"line",u,d),E,O,!0)},0,h.length-1),R=h[L];if(L>0){var F=R.level!=1,H=Ro(a,Ae(p,F?R.from:R.to,F?"after":"before"),"line",u,d);b0(H,E,O,!0)&&H.top>O&&(R=h[L-1])}return R}M(gF,"coordsBidiPart");function yF(a,u,p,d,h,E,O){var L=HT(a,u,d,O),R=L.begin,F=L.end;/\s/.test(u.text.charAt(F-1))&&F--;for(var H=null,Q=null,$=0;$=F||Z.to<=R)){var le=Z.level!=1,ge=da(a,d,le?Math.min(F,Z.to)-1:Math.max(R,Z.from)).right,Te=geTe)&&(H=Z,Q=Te)}}return H||(H=h[h.length-1]),H.fromF&&(H={from:H.from,to:F,level:H.level}),H}M(yF,"coordsBidiPartWrapped");var cc;function fc(a){if(a.cachedTextHeight!=null)return a.cachedTextHeight;if(cc==null){cc=z("pre",null,"CodeMirror-line-like");for(var u=0;u<49;++u)cc.appendChild(document.createTextNode("x")),cc.appendChild(z("br"));cc.appendChild(document.createTextNode("x"))}U(a.measure,cc);var p=cc.offsetHeight/50;return p>3&&(a.cachedTextHeight=p),B(a.measure),p||1}M(fc,"textHeight");function dc(a){if(a.cachedCharWidth!=null)return a.cachedCharWidth;var u=z("span","xxxxxxxxxx"),p=z("pre",[u],"CodeMirror-line-like");U(a.measure,p);var d=u.getBoundingClientRect(),h=(d.right-d.left)/10;return h>2&&(a.cachedCharWidth=h),h||10}M(dc,"charWidth");function A0(a){for(var u=a.display,p={},d={},h=u.gutters.clientLeft,E=u.gutters.firstChild,O=0;E;E=E.nextSibling,++O){var L=a.display.gutterSpecs[O].className;p[L]=E.offsetLeft+E.clientLeft+h,d[L]=E.clientWidth}return{fixedPos:x0(u),gutterTotalWidth:u.gutters.offsetWidth,gutterLeft:p,gutterWidth:d,wrapperWidth:u.wrapper.clientWidth}}M(A0,"getDimensions");function x0(a){return a.scroller.getBoundingClientRect().left-a.sizer.getBoundingClientRect().left}M(x0,"compensateForHScroll");function WT(a){var u=fc(a.display),p=a.options.lineWrapping,d=p&&Math.max(5,a.display.scroller.clientWidth/dc(a.display)-3);return function(h){if(zs(a.doc,h))return 0;var E=0;if(h.widgets)for(var O=0;O0&&(F=Qe(a.doc,R.line).text).length==R.ch){var H=ie(F,F.length,a.options.tabSize)-F.length;R=Ae(R.line,Math.max(0,Math.round((E-MT(a.display).left)/dc(a.display))-H))}return R}M(Gl,"posFromMouse");function zl(a,u){if(u>=a.display.viewTo||(u-=a.display.viewFrom,u<0))return null;for(var p=a.display.view,d=0;du)&&(h.updateLineNumbers=u),a.curOp.viewChanged=!0,u>=h.viewTo)Gs&&u0(a.doc,u)h.viewFrom?Qs(a):(h.viewFrom+=d,h.viewTo+=d);else if(u<=h.viewFrom&&p>=h.viewTo)Qs(a);else if(u<=h.viewFrom){var E=gh(a,p,p+d,1);E?(h.view=h.view.slice(E.index),h.viewFrom=E.lineN,h.viewTo+=d):Qs(a)}else if(p>=h.viewTo){var O=gh(a,u,u,-1);O?(h.view=h.view.slice(0,O.index),h.viewTo=O.lineN):Qs(a)}else{var L=gh(a,u,u,-1),R=gh(a,p,p+d,1);L&&R?(h.view=h.view.slice(0,L.index).concat(dh(a,L.lineN,R.lineN)).concat(h.view.slice(R.index)),h.viewTo+=d):Qs(a)}var F=h.externalMeasured;F&&(p=h.lineN&&u=d.viewTo)){var E=d.view[zl(a,u)];if(E.node!=null){var O=E.changes||(E.changes=[]);me(O,p)==-1&&O.push(p)}}}M(Hs,"regLineChange");function Qs(a){a.display.viewFrom=a.display.viewTo=a.doc.first,a.display.view=[],a.display.viewOffset=0}M(Qs,"resetView");function gh(a,u,p,d){var h=zl(a,u),E,O=a.display.view;if(!Gs||p==a.doc.first+a.doc.size)return{index:h,lineN:p};for(var L=a.display.viewFrom,R=0;R0){if(h==O.length-1)return null;E=L+O[h].size-u,h++}else E=L-u;u+=E,p+=E}for(;u0(a.doc,p)!=p;){if(h==(d<0?0:O.length-1))return null;p+=d*O[h-(d<0?1:0)].size,h+=d}return{index:h,lineN:p}}M(gh,"viewCuttingPoint");function bF(a,u,p){var d=a.display,h=d.view;h.length==0||u>=d.viewTo||p<=d.viewFrom?(d.view=dh(a,u,p),d.viewFrom=u):(d.viewFrom>u?d.view=dh(a,u,d.viewFrom).concat(d.view):d.viewFromp&&(d.view=d.view.slice(0,zl(a,p)))),d.viewTo=p}M(bF,"adjustView");function YT(a){for(var u=a.display.view,p=0,d=0;d=a.display.viewTo||R.to().line0?O:a.defaultCharWidth())+"px"}if(d.other){var L=p.appendChild(z("div","\xA0","CodeMirror-cursor CodeMirror-secondarycursor"));L.style.display="",L.style.left=d.other.left+"px",L.style.top=d.other.top+"px",L.style.height=(d.other.bottom-d.other.top)*.85+"px"}}M(E0,"drawSelectionCursor");function yh(a,u){return a.top-u.top||a.left-u.left}M(yh,"cmpCoords");function AF(a,u,p){var d=a.display,h=a.doc,E=document.createDocumentFragment(),O=MT(a.display),L=O.left,R=Math.max(d.sizerWidth,Bl(a)-d.sizer.offsetLeft)-O.right,F=h.direction=="ltr";function H(Le,Be,it,Je){Be<0&&(Be=0),Be=Math.round(Be),Je=Math.round(Je),E.appendChild(z("div",null,"CodeMirror-selected","position: absolute; left: "+Le+`px; - top: `+Be+"px; width: "+(it??R-Le)+`px; - height: `+(Je-Be)+"px"))}M(H,"add");function Q(Le,Be,it){var Je=Qe(h,Le),Et=Je.text.length,$t,hn;function mr(zr,ki){return vh(a,Ae(Le,zr),"div",Je,ki)}M(mr,"coords");function Ci(zr,ki,On){var sn=QT(a,Je,null,zr),Hr=ki=="ltr"==(On=="after")?"left":"right",Dr=On=="after"?sn.begin:sn.end-(/\s/.test(Je.text.charAt(sn.end-1))?2:1);return mr(Dr,Hr)[Hr]}M(Ci,"wrapX");var Si=ri(Je,h.direction);return ic(Si,Be||0,it??Et,function(zr,ki,On,sn){var Hr=On=="ltr",Dr=mr(zr,Hr?"left":"right"),Oi=mr(ki-1,Hr?"right":"left"),Dd=Be==null&&zr==0,Xl=it==null&&ki==Et,Bn=sn==0,$a=!Si||sn==Si.length-1;if(Oi.top-Dr.top<=3){var vn=(F?Dd:Xl)&&Bn,oS=(F?Xl:Dd)&&$a,Js=vn?L:(Hr?Dr:Oi).left,Cc=oS?R:(Hr?Oi:Dr).right;H(Js,Dr.top,Cc-Js,Dr.bottom)}else{var Sc,ai,Ld,aS;Hr?(Sc=F&&Dd&&Bn?L:Dr.left,ai=F?R:Ci(zr,On,"before"),Ld=F?L:Ci(ki,On,"after"),aS=F&&Xl&&$a?R:Oi.right):(Sc=F?Ci(zr,On,"before"):L,ai=!F&&Dd&&Bn?R:Dr.right,Ld=!F&&Xl&&$a?L:Oi.left,aS=F?Ci(ki,On,"after"):R),H(Sc,Dr.top,ai-Sc,Dr.bottom),Dr.bottom0?u.blinker=setInterval(function(){a.hasFocus()||pc(a),u.cursorDiv.style.visibility=(p=!p)?"":"hidden"},a.options.cursorBlinkRate):a.options.cursorBlinkRate<0&&(u.cursorDiv.style.visibility="hidden")}}M(T0,"restartBlink");function XT(a){a.hasFocus()||(a.display.input.focus(),a.state.focused||S0(a))}M(XT,"ensureFocus");function C0(a){a.state.delayingBlurEvent=!0,setTimeout(function(){a.state.delayingBlurEvent&&(a.state.delayingBlurEvent=!1,a.state.focused&&pc(a))},100)}M(C0,"delayBlurEvent");function S0(a,u){a.state.delayingBlurEvent&&!a.state.draggingText&&(a.state.delayingBlurEvent=!1),a.options.readOnly!="nocursor"&&(a.state.focused||(ut(a,"focus",a,u),a.state.focused=!0,re(a.display.wrapper,"CodeMirror-focused"),!a.curOp&&a.display.selForContextMenu!=a.doc.sel&&(a.display.input.reset(),m&&setTimeout(function(){return a.display.input.reset(!0)},20)),a.display.input.receivedFocus()),T0(a))}M(S0,"onFocus");function pc(a,u){a.state.delayingBlurEvent||(a.state.focused&&(ut(a,"blur",a,u),a.state.focused=!1,G(a.display.wrapper,"CodeMirror-focused")),clearInterval(a.display.blinker),setTimeout(function(){a.state.focused||(a.display.shift=!1)},150))}M(pc,"onBlur");function bh(a){for(var u=a.display,p=u.lineDiv.offsetTop,d=Math.max(0,u.scroller.getBoundingClientRect().top),h=u.lineDiv.getBoundingClientRect().top,E=0,O=0;O.005||Z<-.005)&&(ha.display.sizerWidth){var ge=Math.ceil(H/dc(a.display));ge>a.display.maxLineLength&&(a.display.maxLineLength=ge,a.display.maxLine=L.line,a.display.maxLineChanged=!0)}}}Math.abs(E)>2&&(u.scroller.scrollTop+=E)}M(bh,"updateHeightsInViewport");function ZT(a){if(a.widgets)for(var u=0;u=O&&(E=Lo(u,Ja(Qe(u,R))-a.wrapper.clientHeight),O=R)}return{from:E,to:Math.max(O,E+1)}}M(Ah,"visibleLines");function xF(a,u){if(!Nr(a,"scrollCursorIntoView")){var p=a.display,d=p.sizer.getBoundingClientRect(),h=null;if(u.top+d.top<0?h=!0:u.bottom+d.top>(window.innerHeight||document.documentElement.clientHeight)&&(h=!1),h!=null&&!S){var E=z("div","\u200B",null,`position: absolute; - top: `+(u.top-p.viewOffset-mh(a.display))+`px; - height: `+(u.bottom-u.top+fa(a)+p.barHeight)+`px; - left: `+u.left+"px; width: "+Math.max(2,u.right-u.left)+"px;");a.display.lineSpace.appendChild(E),E.scrollIntoView(h),a.display.lineSpace.removeChild(E)}}}M(xF,"maybeScrollWindow");function wF(a,u,p,d){d==null&&(d=0);var h;!a.options.lineWrapping&&u==p&&(p=u.sticky=="before"?Ae(u.line,u.ch+1,"before"):u,u=u.ch?Ae(u.line,u.sticky=="before"?u.ch-1:u.ch,"after"):u);for(var E=0;E<5;E++){var O=!1,L=Ro(a,u),R=!p||p==u?L:Ro(a,p);h={left:Math.min(L.left,R.left),top:Math.min(L.top,R.top)-d,right:Math.max(L.left,R.left),bottom:Math.max(L.bottom,R.bottom)+d};var F=k0(a,h),H=a.doc.scrollTop,Q=a.doc.scrollLeft;if(F.scrollTop!=null&&(yd(a,F.scrollTop),Math.abs(a.doc.scrollTop-H)>1&&(O=!0)),F.scrollLeft!=null&&(Hl(a,F.scrollLeft),Math.abs(a.doc.scrollLeft-Q)>1&&(O=!0)),!O)break}return h}M(wF,"scrollPosIntoView");function EF(a,u){var p=k0(a,u);p.scrollTop!=null&&yd(a,p.scrollTop),p.scrollLeft!=null&&Hl(a,p.scrollLeft)}M(EF,"scrollIntoView");function k0(a,u){var p=a.display,d=fc(a.display);u.top<0&&(u.top=0);var h=a.curOp&&a.curOp.scrollTop!=null?a.curOp.scrollTop:p.scroller.scrollTop,E=m0(a),O={};u.bottom-u.top>E&&(u.bottom=u.top+E);var L=a.doc.height+p0(p),R=u.topL-d;if(u.toph+E){var H=Math.min(u.top,(F?L:u.bottom)-E);H!=h&&(O.scrollTop=H)}var Q=a.options.fixedGutter?0:p.gutters.offsetWidth,$=a.curOp&&a.curOp.scrollLeft!=null?a.curOp.scrollLeft:p.scroller.scrollLeft-Q,Z=Bl(a)-p.gutters.offsetWidth,le=u.right-u.left>Z;return le&&(u.right=u.left+Z),u.left<10?O.scrollLeft=0:u.left<$?O.scrollLeft=Math.max(0,u.left+Q-(le?0:10)):u.right>Z+$-3&&(O.scrollLeft=u.right+(le?0:10)-Z),O}M(k0,"calculateScrollPos");function O0(a,u){u!=null&&(xh(a),a.curOp.scrollTop=(a.curOp.scrollTop==null?a.doc.scrollTop:a.curOp.scrollTop)+u)}M(O0,"addToScrollTop");function mc(a){xh(a);var u=a.getCursor();a.curOp.scrollToPos={from:u,to:u,margin:a.options.cursorScrollMargin}}M(mc,"ensureCursorVisible");function gd(a,u,p){(u!=null||p!=null)&&xh(a),u!=null&&(a.curOp.scrollLeft=u),p!=null&&(a.curOp.scrollTop=p)}M(gd,"scrollToCoords");function TF(a,u){xh(a),a.curOp.scrollToPos=u}M(TF,"scrollToRange");function xh(a){var u=a.curOp.scrollToPos;if(u){a.curOp.scrollToPos=null;var p=zT(a,u.from),d=zT(a,u.to);JT(a,p,d,u.margin)}}M(xh,"resolveScrollToPos");function JT(a,u,p,d){var h=k0(a,{left:Math.min(u.left,p.left),top:Math.min(u.top,p.top)-d,right:Math.max(u.right,p.right),bottom:Math.max(u.bottom,p.bottom)+d});gd(a,h.scrollLeft,h.scrollTop)}M(JT,"scrollToCoordsRange");function yd(a,u){Math.abs(a.doc.scrollTop-u)<2||(i||L0(a,{top:u}),_T(a,u,!0),i&&L0(a),Ad(a,100))}M(yd,"updateScrollTop");function _T(a,u,p){u=Math.max(0,Math.min(a.display.scroller.scrollHeight-a.display.scroller.clientHeight,u)),!(a.display.scroller.scrollTop==u&&!p)&&(a.doc.scrollTop=u,a.display.scrollbars.setScrollTop(u),a.display.scroller.scrollTop!=u&&(a.display.scroller.scrollTop=u))}M(_T,"setScrollTop");function Hl(a,u,p,d){u=Math.max(0,Math.min(u,a.display.scroller.scrollWidth-a.display.scroller.clientWidth)),!((p?u==a.doc.scrollLeft:Math.abs(a.doc.scrollLeft-u)<2)&&!d)&&(a.doc.scrollLeft=u,rC(a),a.display.scroller.scrollLeft!=u&&(a.display.scroller.scrollLeft=u),a.display.scrollbars.setScrollLeft(u))}M(Hl,"setScrollLeft");function bd(a){var u=a.display,p=u.gutters.offsetWidth,d=Math.round(a.doc.height+p0(a.display));return{clientHeight:u.scroller.clientHeight,viewHeight:u.wrapper.clientHeight,scrollWidth:u.scroller.scrollWidth,clientWidth:u.scroller.clientWidth,viewWidth:u.wrapper.clientWidth,barLeft:a.options.fixedGutter?p:0,docHeight:d,scrollHeight:d+fa(a)+u.barHeight,nativeBarWidth:u.nativeBarWidth,gutterWidth:p}}M(bd,"measureForScrollbars");var hc=M(function(a,u,p){this.cm=p;var d=this.vert=z("div",[z("div",null,null,"min-width: 1px")],"CodeMirror-vscrollbar"),h=this.horiz=z("div",[z("div",null,null,"height: 100%; min-height: 1px")],"CodeMirror-hscrollbar");d.tabIndex=h.tabIndex=-1,a(d),a(h),rt(d,"scroll",function(){d.clientHeight&&u(d.scrollTop,"vertical")}),rt(h,"scroll",function(){h.clientWidth&&u(h.scrollLeft,"horizontal")}),this.checkedZeroWidth=!1,c&&f<8&&(this.horiz.style.minHeight=this.vert.style.minWidth="18px")},"NativeScrollbars");hc.prototype.update=function(a){var u=a.scrollWidth>a.clientWidth+1,p=a.scrollHeight>a.clientHeight+1,d=a.nativeBarWidth;if(p){this.vert.style.display="block",this.vert.style.bottom=u?d+"px":"0";var h=a.viewHeight-(u?d:0);this.vert.firstChild.style.height=Math.max(0,a.scrollHeight-a.clientHeight+h)+"px"}else this.vert.scrollTop=0,this.vert.style.display="",this.vert.firstChild.style.height="0";if(u){this.horiz.style.display="block",this.horiz.style.right=p?d+"px":"0",this.horiz.style.left=a.barLeft+"px";var E=a.viewWidth-a.barLeft-(p?d:0);this.horiz.firstChild.style.width=Math.max(0,a.scrollWidth-a.clientWidth+E)+"px"}else this.horiz.style.display="",this.horiz.firstChild.style.width="0";return!this.checkedZeroWidth&&a.clientHeight>0&&(d==0&&this.zeroWidthHack(),this.checkedZeroWidth=!0),{right:p?d:0,bottom:u?d:0}},hc.prototype.setScrollLeft=function(a){this.horiz.scrollLeft!=a&&(this.horiz.scrollLeft=a),this.disableHoriz&&this.enableZeroWidthBar(this.horiz,this.disableHoriz,"horiz")},hc.prototype.setScrollTop=function(a){this.vert.scrollTop!=a&&(this.vert.scrollTop=a),this.disableVert&&this.enableZeroWidthBar(this.vert,this.disableVert,"vert")},hc.prototype.zeroWidthHack=function(){var a=x&&!T?"12px":"18px";this.horiz.style.height=this.vert.style.width=a,this.horiz.style.pointerEvents=this.vert.style.pointerEvents="none",this.disableHoriz=new ye,this.disableVert=new ye},hc.prototype.enableZeroWidthBar=function(a,u,p){a.style.pointerEvents="auto";function d(){var h=a.getBoundingClientRect(),E=p=="vert"?document.elementFromPoint(h.right-1,(h.top+h.bottom)/2):document.elementFromPoint((h.right+h.left)/2,h.bottom-1);E!=a?a.style.pointerEvents="none":u.set(1e3,d)}M(d,"maybeDisable"),u.set(1e3,d)},hc.prototype.clear=function(){var a=this.horiz.parentNode;a.removeChild(this.horiz),a.removeChild(this.vert)};var wh=M(function(){},"NullScrollbars");wh.prototype.update=function(){return{bottom:0,right:0}},wh.prototype.setScrollLeft=function(){},wh.prototype.setScrollTop=function(){},wh.prototype.clear=function(){};function vc(a,u){u||(u=bd(a));var p=a.display.barWidth,d=a.display.barHeight;$T(a,u);for(var h=0;h<4&&p!=a.display.barWidth||d!=a.display.barHeight;h++)p!=a.display.barWidth&&a.options.lineWrapping&&bh(a),$T(a,bd(a)),p=a.display.barWidth,d=a.display.barHeight}M(vc,"updateScrollbars");function $T(a,u){var p=a.display,d=p.scrollbars.update(u);p.sizer.style.paddingRight=(p.barWidth=d.right)+"px",p.sizer.style.paddingBottom=(p.barHeight=d.bottom)+"px",p.heightForcer.style.borderBottom=d.bottom+"px solid transparent",d.right&&d.bottom?(p.scrollbarFiller.style.display="block",p.scrollbarFiller.style.height=d.bottom+"px",p.scrollbarFiller.style.width=d.right+"px"):p.scrollbarFiller.style.display="",d.bottom&&a.options.coverGutterNextToScrollbar&&a.options.fixedGutter?(p.gutterFiller.style.display="block",p.gutterFiller.style.height=d.bottom+"px",p.gutterFiller.style.width=u.gutterWidth+"px"):p.gutterFiller.style.display=""}M($T,"updateScrollbarsInner");var CF={native:hc,null:wh};function eC(a){a.display.scrollbars&&(a.display.scrollbars.clear(),a.display.scrollbars.addClass&&G(a.display.wrapper,a.display.scrollbars.addClass)),a.display.scrollbars=new CF[a.options.scrollbarStyle](function(u){a.display.wrapper.insertBefore(u,a.display.scrollbarFiller),rt(u,"mousedown",function(){a.state.focused&&setTimeout(function(){return a.display.input.focus()},0)}),u.setAttribute("cm-not-content","true")},function(u,p){p=="horizontal"?Hl(a,u):yd(a,u)},a),a.display.scrollbars.addClass&&re(a.display.wrapper,a.display.scrollbars.addClass)}M(eC,"initScrollbars");var H$=0;function Ql(a){a.curOp={cm:a,viewChanged:!1,startHeight:a.doc.height,forceUpdate:!1,updateInput:0,typing:!1,changeObjs:null,cursorActivityHandlers:null,cursorActivityCalled:0,selectionChanged:!1,updateMaxLine:!1,scrollLeft:null,scrollTop:null,scrollToPos:null,focus:!1,id:++H$,markArrays:null},tF(a.curOp)}M(Ql,"startOperation");function Wl(a){var u=a.curOp;u&&nF(u,function(p){for(var d=0;d=p.viewTo)||p.maxLineChanged&&u.options.lineWrapping,a.update=a.mustUpdate&&new N0(u,a.mustUpdate&&{top:a.scrollTop,ensure:a.scrollToPos},a.forceUpdate)}M(kF,"endOperation_R1");function OF(a){a.updatedDisplay=a.mustUpdate&&D0(a.cm,a.update)}M(OF,"endOperation_W1");function NF(a){var u=a.cm,p=u.display;a.updatedDisplay&&bh(u),a.barMeasure=bd(u),p.maxLineChanged&&!u.options.lineWrapping&&(a.adjustWidthTo=FT(u,p.maxLine,p.maxLine.text.length).left+3,u.display.sizerWidth=a.adjustWidthTo,a.barMeasure.scrollWidth=Math.max(p.scroller.clientWidth,p.sizer.offsetLeft+a.adjustWidthTo+fa(u)+u.display.barWidth),a.maxScrollLeft=Math.max(0,p.sizer.offsetLeft+a.adjustWidthTo-Bl(u))),(a.updatedDisplay||a.selectionChanged)&&(a.preparedSelection=p.input.prepareSelection())}M(NF,"endOperation_R2");function DF(a){var u=a.cm;a.adjustWidthTo!=null&&(u.display.sizer.style.minWidth=a.adjustWidthTo+"px",a.maxScrollLeft=a.display.viewTo)){var p=+new Date+a.options.workTime,d=ud(a,u.highlightFrontier),h=[];u.iter(d.line,Math.min(u.first+u.size,a.display.viewTo+500),function(E){if(d.line>=a.display.viewFrom){var O=E.styles,L=E.text.length>a.options.maxHighlightLength?ji(u.mode,d.state):null,R=dT(a,E,d,!0);L&&(d.state=L),E.styles=R.styles;var F=E.styleClasses,H=R.classes;H?E.styleClasses=H:F&&(E.styleClasses=null);for(var Q=!O||O.length!=E.styles.length||F!=H&&(!F||!H||F.bgClass!=H.bgClass||F.textClass!=H.textClass),$=0;!Q&&$p)return Ad(a,a.options.workDelay),!0}),u.highlightFrontier=d.line,u.modeFrontier=Math.max(u.modeFrontier,d.line),h.length&&Ei(a,function(){for(var E=0;E=p.viewFrom&&u.visible.to<=p.viewTo&&(p.updateLineNumbers==null||p.updateLineNumbers>=p.viewTo)&&p.renderedView==p.view&&YT(a)==0)return!1;nC(a)&&(Qs(a),u.dims=A0(a));var h=d.first+d.size,E=Math.max(u.visible.from-a.options.viewportMargin,d.first),O=Math.min(h,u.visible.to+a.options.viewportMargin);p.viewFromO&&p.viewTo-O<20&&(O=Math.min(h,p.viewTo)),Gs&&(E=u0(a.doc,E),O=TT(a.doc,O));var L=E!=p.viewFrom||O!=p.viewTo||p.lastWrapHeight!=u.wrapperHeight||p.lastWrapWidth!=u.wrapperWidth;bF(a,E,O),p.viewOffset=Ja(Qe(a.doc,p.viewFrom)),a.display.mover.style.top=p.viewOffset+"px";var R=YT(a);if(!L&&R==0&&!u.force&&p.renderedView==p.view&&(p.updateLineNumbers==null||p.updateLineNumbers>=p.viewTo))return!1;var F=MF(a);return R>4&&(p.lineDiv.style.display="none"),FF(a,p.updateLineNumbers,u.dims),R>4&&(p.lineDiv.style.display=""),p.renderedView=p.view,IF(F),B(p.cursorDiv),B(p.selectionDiv),p.gutters.style.height=p.sizer.style.minHeight=0,L&&(p.lastWrapHeight=u.wrapperHeight,p.lastWrapWidth=u.wrapperWidth,Ad(a,400)),p.updateLineNumbers=null,!0}M(D0,"updateDisplayIfNeeded");function tC(a,u){for(var p=u.viewport,d=!0;;d=!1){if(!d||!a.options.lineWrapping||u.oldDisplayWidth==Bl(a)){if(p&&p.top!=null&&(p={top:Math.min(a.doc.height+p0(a.display)-m0(a),p.top)}),u.visible=Ah(a.display,a.doc,p),u.visible.from>=a.display.viewFrom&&u.visible.to<=a.display.viewTo)break}else d&&(u.visible=Ah(a.display,a.doc,p));if(!D0(a,u))break;bh(a);var h=bd(a);vd(a),vc(a,h),R0(a,h),u.force=!1}u.signal(a,"update",a),(a.display.viewFrom!=a.display.reportedViewFrom||a.display.viewTo!=a.display.reportedViewTo)&&(u.signal(a,"viewportChange",a,a.display.viewFrom,a.display.viewTo),a.display.reportedViewFrom=a.display.viewFrom,a.display.reportedViewTo=a.display.viewTo)}M(tC,"postUpdateDisplay");function L0(a,u){var p=new N0(a,u);if(D0(a,p)){bh(a),tC(a,p);var d=bd(a);vd(a),vc(a,d),R0(a,d),p.finish()}}M(L0,"updateDisplaySimple");function FF(a,u,p){var d=a.display,h=a.options.lineNumbers,E=d.lineDiv,O=E.firstChild;function L(le){var ge=le.nextSibling;return m&&x&&a.display.currentWheelTarget==le?le.style.display="none":le.parentNode.removeChild(le),ge}M(L,"rm");for(var R=d.view,F=d.viewFrom,H=0;H-1&&(Z=!1),NT(a,Q,F,p)),Z&&(B(Q.lineNumber),Q.lineNumber.appendChild(document.createTextNode(lc(a.options,F)))),O=Q.node.nextSibling}F+=Q.size}for(;O;)O=L(O)}M(FF,"patchDisplay");function P0(a){var u=a.gutters.offsetWidth;a.sizer.style.marginLeft=u+"px",nn(a,"gutterChanged",a)}M(P0,"updateGutterSpace");function R0(a,u){a.display.sizer.style.minHeight=u.docHeight+"px",a.display.heightForcer.style.top=u.docHeight+"px",a.display.gutters.style.height=u.docHeight+a.display.barHeight+fa(a)+"px"}M(R0,"setDocumentHeight");function rC(a){var u=a.display,p=u.view;if(!(!u.alignWidgets&&(!u.gutters.firstChild||!a.options.fixedGutter))){for(var d=x0(u)-u.scroller.scrollLeft+a.doc.scrollLeft,h=u.gutters.offsetWidth,E=d+"px",O=0;OL.clientWidth,F=L.scrollHeight>L.clientHeight;if(d&&R||h&&F){if(h&&x&&m){e:for(var H=u.target,Q=O.view;H!=L;H=H.parentNode)for(var $=0;$=0&&q(a,d.to())<=0)return p}return-1};var qt=M(function(a,u){this.anchor=a,this.head=u},"Range");qt.prototype.from=function(){return ct(this.anchor,this.head)},qt.prototype.to=function(){return we(this.anchor,this.head)},qt.prototype.empty=function(){return this.head.line==this.anchor.line&&this.head.ch==this.anchor.ch};function Mo(a,u,p){var d=a&&a.options.selectionsMayTouch,h=u[p];u.sort(function($,Z){return q($.from(),Z.from())}),p=me(u,h);for(var E=1;E0:R>=0){var F=ct(L.from(),O.from()),H=we(L.to(),O.to()),Q=L.empty()?O.from()==O.head:L.from()==L.head;E<=p&&--p,u.splice(--E,2,new qt(Q?H:F,Q?F:H))}}return new io(u,p)}M(Mo,"normalizeSelection");function Ys(a,u){return new io([new qt(a,u||a)],0)}M(Ys,"simpleSelection");function Ks(a){return a.text?Ae(a.from.line+a.text.length-1,pe(a.text).length+(a.text.length==1?a.from.ch:0)):a.to}M(Ks,"changeEnd");function sC(a,u){if(q(a,u.from)<0)return a;if(q(a,u.to)<=0)return Ks(u);var p=a.line+u.text.length-(u.to.line-u.from.line)-1,d=a.ch;return a.line==u.to.line&&(d+=Ks(u).ch-u.to.ch),Ae(p,d)}M(sC,"adjustForChange");function F0(a,u){for(var p=[],d=0;d1&&a.remove(L.line+1,le-1),a.insert(L.line+1,De)}nn(a,"change",a,u)}M(j0,"updateDoc");function Xs(a,u,p){function d(h,E,O){if(h.linked)for(var L=0;L1&&!a.done[a.done.length-2].ranges)return a.done.pop(),pe(a.done)}M(BF,"lastChangeEvent");function pC(a,u,p,d){var h=a.history;h.undone.length=0;var E=+new Date,O,L;if((h.lastOp==d||h.lastOrigin==u.origin&&u.origin&&(u.origin.charAt(0)=="+"&&h.lastModTime>E-(a.cm?a.cm.options.historyEventDelay:500)||u.origin.charAt(0)=="*"))&&(O=BF(h,h.lastOp==d)))L=pe(O.changes),q(u.from,u.to)==0&&q(u.from,L.to)==0?L.to=Ks(u):O.changes.push(V0(a,u));else{var R=pe(h.done);for((!R||!R.ranges)&&Th(a.sel,h.done),O={changes:[V0(a,u)],generation:h.generation},h.done.push(O);h.done.length>h.undoDepth;)h.done.shift(),h.done[0].ranges||h.done.shift()}h.done.push(p),h.generation=++h.maxGeneration,h.lastModTime=h.lastSelTime=E,h.lastOp=h.lastSelOp=d,h.lastOrigin=h.lastSelOrigin=u.origin,L||ut(a,"historyAdded")}M(pC,"addChangeToHistory");function GF(a,u,p,d){var h=u.charAt(0);return h=="*"||h=="+"&&p.ranges.length==d.ranges.length&&p.somethingSelected()==d.somethingSelected()&&new Date-a.history.lastSelTime<=(a.cm?a.cm.options.historyEventDelay:500)}M(GF,"selectionEventCanBeMerged");function zF(a,u,p,d){var h=a.history,E=d&&d.origin;p==h.lastSelOp||E&&h.lastSelOrigin==E&&(h.lastModTime==h.lastSelTime&&h.lastOrigin==E||GF(a,E,pe(h.done),u))?h.done[h.done.length-1]=u:Th(u,h.done),h.lastSelTime=+new Date,h.lastSelOrigin=E,h.lastSelOp=p,d&&d.clearRedo!==!1&&dC(h.undone)}M(zF,"addSelectionToHistory");function Th(a,u){var p=pe(u);p&&p.ranges&&p.equals(a)||u.push(a)}M(Th,"pushSelectionToHistory");function mC(a,u,p,d){var h=u["spans_"+a.id],E=0;a.iter(Math.max(a.first,p),Math.min(a.first+a.size,d),function(O){O.markedSpans&&((h||(h=u["spans_"+a.id]={}))[E]=O.markedSpans),++E})}M(mC,"attachLocalSpans");function HF(a){if(!a)return null;for(var u,p=0;p-1&&(pe(L)[Q]=F[Q],delete F[Q])}}return d}M(gc,"copyHistoryArray");function U0(a,u,p,d){if(d){var h=a.anchor;if(p){var E=q(u,h)<0;E!=q(p,h)<0?(h=u,u=p):E!=q(u,p)<0&&(u=p)}return new qt(h,u)}else return new qt(p||u,u)}M(U0,"extendRange");function Ch(a,u,p,d,h){h==null&&(h=a.cm&&(a.cm.display.shift||a.extend)),kn(a,new io([U0(a.sel.primary(),u,p,h)],0),d)}M(Ch,"extendSelection");function vC(a,u,p){for(var d=[],h=a.cm&&(a.cm.display.shift||a.extend),E=0;E=u.ch:L.to>u.ch))){if(h&&(ut(R,"beforeCursorEnter"),R.explicitlyCleared))if(E.markedSpans){--O;continue}else break;if(!R.atomic)continue;if(p){var Q=R.find(d<0?1:-1),$=void 0;if((d<0?H:F)&&(Q=wC(a,Q,-d,Q&&Q.line==u.line?E:null)),Q&&Q.line==u.line&&($=q(Q,p))&&(d<0?$<0:$>0))return yc(a,Q,u,d,h)}var Z=R.find(d<0?-1:1);return(d<0?F:H)&&(Z=wC(a,Z,d,Z.line==u.line?E:null)),Z?yc(a,Z,u,d,h):null}}return u}M(yc,"skipAtomicInner");function kh(a,u,p,d,h){var E=d||1,O=yc(a,u,p,E,h)||!h&&yc(a,u,p,E,!0)||yc(a,u,p,-E,h)||!h&&yc(a,u,p,-E,!0);return O||(a.cantEdit=!0,Ae(a.first,0))}M(kh,"skipAtomic");function wC(a,u,p,d){return p<0&&u.ch==0?u.line>a.first?Ve(a,Ae(u.line-1)):null:p>0&&u.ch==(d||Qe(a,u.line)).text.length?u.line=0;--h)CC(a,{from:d[h].from,to:d[h].to,text:h?[""]:u.text,origin:u.origin});else CC(a,u)}}M(bc,"makeChange");function CC(a,u){if(!(u.text.length==1&&u.text[0]==""&&q(u.from,u.to)==0)){var p=F0(a,u);pC(a,u,p,a.cm?a.cm.curOp.id:NaN),Ed(a,u,p,s0(a,u));var d=[];Xs(a,function(h,E){!E&&me(d,h.history)==-1&&(NC(h.history,u),d.push(h.history)),Ed(h,u,null,s0(h,u))})}}M(CC,"makeChangeInner");function Oh(a,u,p){var d=a.cm&&a.cm.state.suppressEdits;if(!(d&&!p)){for(var h=a.history,E,O=a.sel,L=u=="undo"?h.done:h.undone,R=u=="undo"?h.undone:h.done,F=0;F=0;--Z){var le=$(Z);if(le)return le.v}}}}M(Oh,"makeChangeFromHistory");function SC(a,u){if(u!=0&&(a.first+=u,a.sel=new io(Me(a.sel.ranges,function(h){return new qt(Ae(h.anchor.line+u,h.anchor.ch),Ae(h.head.line+u,h.head.ch))}),a.sel.primIndex),a.cm)){oi(a.cm,a.first,a.first-u,u);for(var p=a.cm.display,d=p.viewFrom;da.lastLine())){if(u.from.lineE&&(u={from:u.from,to:Ae(E,Qe(a,E).text.length),text:[u.text[0]],origin:u.origin}),u.removed=Do(a,u.from,u.to),p||(p=F0(a,u)),a.cm?YF(a.cm,u,d):j0(a,u,d),Sh(a,p,He),a.cantEdit&&kh(a,Ae(a.firstLine(),0))&&(a.cantEdit=!1)}}M(Ed,"makeChangeSingleDoc");function YF(a,u,p){var d=a.doc,h=a.display,E=u.from,O=u.to,L=!1,R=E.line;a.options.lineWrapping||(R=Pt(Po(Qe(d,E.line))),d.iter(R,O.line+1,function(Z){if(Z==h.maxLine)return L=!0,!0})),d.sel.contains(u.from,u.to)>-1&&ql(a),j0(d,u,p,WT(a)),a.options.lineWrapping||(d.iter(R,E.line+u.text.length,function(Z){var le=fh(Z);le>h.maxLineLength&&(h.maxLine=Z,h.maxLineLength=le,h.maxLineChanged=!0,L=!1)}),L&&(a.curOp.updateMaxLine=!0)),FI(d,E.line),Ad(a,400);var F=u.text.length-(O.line-E.line)-1;u.full?oi(a):E.line==O.line&&u.text.length==1&&!uC(a.doc,u)?Hs(a,E.line,"text"):oi(a,E.line,O.line+1,F);var H=rn(a,"changes"),Q=rn(a,"change");if(Q||H){var $={from:E,to:O,text:u.text,removed:u.removed,origin:u.origin};Q&&nn(a,"change",a,$),H&&(a.curOp.changeObjs||(a.curOp.changeObjs=[])).push($)}a.display.selForContextMenu=null}M(YF,"makeChangeSingleDocInEditor");function Ac(a,u,p,d,h){var E;d||(d=p),q(d,p)<0&&(E=[d,p],p=E[0],d=E[1]),typeof u=="string"&&(u=a.splitLines(u)),bc(a,{from:p,to:d,text:u,origin:h})}M(Ac,"replaceRange");function kC(a,u,p,d){p1||!(this.children[0]instanceof Cd))){var L=[];this.collapse(L),this.children=[new Cd(L)],this.children[0].parent=this}},collapse:function(a){for(var u=0;u50){for(var O=h.lines.length%25+25,L=O;L10);a.parent.maybeSpill()}},iterN:function(a,u,p){for(var d=0;da.display.maxLineLength&&(a.display.maxLine=F,a.display.maxLineLength=H,a.display.maxLineChanged=!0)}d!=null&&a&&this.collapsed&&oi(a,d,h+1),this.lines.length=0,this.explicitlyCleared=!0,this.atomic&&this.doc.cantEdit&&(this.doc.cantEdit=!1,a&&AC(a.doc)),a&&nn(a,"markerCleared",a,this,d,h),u&&Wl(a),this.parent&&this.parent.clear()}},Yl.prototype.find=function(a,u){a==null&&this.type=="bookmark"&&(a=1);for(var p,d,h=0;h0||O==0&&E.clearWhenEmpty!==!1)return E;if(E.replacedWith&&(E.collapsed=!0,E.widgetNode=j("span",[E.replacedWith],"CodeMirror-widget"),d.handleMouseEvents||E.widgetNode.setAttribute("cm-ignore-events","true"),d.insertLeft&&(E.widgetNode.insertLeft=!0)),E.collapsed){if(ET(a,u.line,u,p,E)||u.line!=p.line&&ET(a,p.line,u,p,E))throw new Error("Inserting collapsed marker partially overlapping an existing one");VI()}E.addToHistory&&pC(a,{from:u,to:p,origin:"markText"},a.sel,NaN);var L=u.line,R=a.cm,F;if(a.iter(L,p.line+1,function(Q){R&&E.collapsed&&!R.options.lineWrapping&&Po(Q)==R.display.maxLine&&(F=!0),E.collapsed&&L!=u.line&&ii(Q,0),BI(Q,new sh(E,L==u.line?u.ch:null,L==p.line?p.ch:null),a.cm&&a.cm.curOp),++L}),E.collapsed&&a.iter(u.line,p.line+1,function(Q){zs(a,Q)&&ii(Q,0)}),E.clearOnEnter&&rt(E,"beforeCursorEnter",function(){return E.clear()}),E.readOnly&&(jI(),(a.history.done.length||a.history.undone.length)&&a.clearHistory()),E.collapsed&&(E.id=++XF,E.atomic=!0),R){if(F&&(R.curOp.updateMaxLine=!0),E.collapsed)oi(R,u.line,p.line+1);else if(E.className||E.startStyle||E.endStyle||E.css||E.attributes||E.title)for(var H=u.line;H<=p.line;H++)Hs(R,H,"text");E.atomic&&AC(R.doc),nn(R,"markerAdded",R,E)}return E}M(xc,"markText");var Dh=M(function(a,u){this.markers=a,this.primary=u;for(var p=0;p=0;R--)bc(this,d[R]);L?yC(this,L):this.cm&&mc(this.cm)}),undo:an(function(){Oh(this,"undo")}),redo:an(function(){Oh(this,"redo")}),undoSelection:an(function(){Oh(this,"undo",!0)}),redoSelection:an(function(){Oh(this,"redo",!0)}),setExtending:function(a){this.extend=a},getExtending:function(){return this.extend},historySize:function(){for(var a=this.history,u=0,p=0,d=0;d=a.ch)&&u.push(h.marker.parent||h.marker)}return u},findMarks:function(a,u,p){a=Ve(this,a),u=Ve(this,u);var d=[],h=a.line;return this.iter(a.line,u.line+1,function(E){var O=E.markedSpans;if(O)for(var L=0;L=R.to||R.from==null&&h!=a.line||R.from!=null&&h==u.line&&R.from>=u.ch)&&(!p||p(R.marker))&&d.push(R.marker.parent||R.marker)}++h}),d},getAllMarks:function(){var a=[];return this.iter(function(u){var p=u.markedSpans;if(p)for(var d=0;da)return u=a,!0;a-=E,++p}),Ve(this,Ae(p,u))},indexFromPos:function(a){a=Ve(this,a);var u=a.ch;if(a.lineu&&(u=a.from),a.to!=null&&a.to-1){u.state.draggingText(a),setTimeout(function(){return u.display.input.focus()},20);return}try{var H=a.dataTransfer.getData("Text");if(H){var Q;if(u.state.draggingText&&!u.state.draggingText.copy&&(Q=u.listSelections()),Sh(u.doc,Ys(p,p)),Q)for(var $=0;$=0;L--)Ac(a.doc,"",d[L].from,d[L].to,"+delete");mc(a)})}M(Ec,"deleteNearSelection");function z0(a,u,p){var d=Ml(a.text,u+p,p);return d<0||d>a.text.length?null:d}M(z0,"moveCharLogically");function H0(a,u,p){var d=z0(a,u.ch,p);return d==null?null:new Ae(u.line,d,p<0?"after":"before")}M(H0,"moveLogically");function Q0(a,u,p,d,h){if(a){u.doc.direction=="rtl"&&(h=-h);var E=ri(p,u.doc.direction);if(E){var O=h<0?pe(E):E[0],L=h<0==(O.level==1),R=L?"after":"before",F;if(O.level>0||u.doc.direction=="rtl"){var H=uc(u,p);F=h<0?p.text.length-1:0;var Q=da(u,H,F).top;F=xi(function($){return da(u,H,$).top==Q},h<0==(O.level==1)?O.from:O.to-1,F),R=="before"&&(F=z0(p,F,1))}else F=h<0?O.to:O.from;return new Ae(d,F,R)}}return new Ae(d,h<0?p.text.length:0,h<0?"before":"after")}M(Q0,"endOfLine");function u3(a,u,p,d){var h=ri(u,a.doc.direction);if(!h)return H0(u,p,d);p.ch>=u.text.length?(p.ch=u.text.length,p.sticky="before"):p.ch<=0&&(p.ch=0,p.sticky="after");var E=pr(h,p.ch,p.sticky),O=h[E];if(a.doc.direction=="ltr"&&O.level%2==0&&(d>0?O.to>p.ch:O.from=O.from&&$>=H.begin)){var Z=Q?"before":"after";return new Ae(p.line,$,Z)}}var le=M(function(De,qe,Le){for(var Be=M(function($t,hn){return hn?new Ae(p.line,L($t,1),"before"):new Ae(p.line,$t,"after")},"getRes");De>=0&&De0==(it.level!=1),Et=Je?Le.begin:L(Le.end,-1);if(it.from<=Et&&Et0?H.end:L(H.begin,-1);return Te!=null&&!(d>0&&Te==u.text.length)&&(ge=le(d>0?0:h.length-1,d,F(Te)),ge)?ge:null}M(u3,"moveVisually");var Mh={selectAll:EC,singleSelection:function(a){return a.setSelection(a.getCursor("anchor"),a.getCursor("head"),He)},killLine:function(a){return Ec(a,function(u){if(u.empty()){var p=Qe(a.doc,u.head.line).text.length;return u.head.ch==p&&u.head.line0)h=new Ae(h.line,h.ch+1),a.replaceRange(E.charAt(h.ch-1)+E.charAt(h.ch-2),Ae(h.line,h.ch-2),h,"+transpose");else if(h.line>a.doc.first){var O=Qe(a.doc,h.line-1).text;O&&(h=new Ae(h.line,1),a.replaceRange(E.charAt(0)+a.doc.lineSeparator()+O.charAt(O.length-1),Ae(h.line-1,O.length-1),h,"+transpose"))}}p.push(new qt(h,h))}a.setSelections(p)})},newlineAndIndent:function(a){return Ei(a,function(){for(var u=a.listSelections(),p=u.length-1;p>=0;p--)a.replaceRange(a.doc.lineSeparator(),u[p].anchor,u[p].head,"+input");u=a.listSelections();for(var d=0;da&&q(u,this.pos)==0&&p==this.button};var Fh,qh;function m3(a,u){var p=+new Date;return qh&&qh.compare(p,a,u)?(Fh=qh=null,"triple"):Fh&&Fh.compare(p,a,u)?(qh=new QC(p,a,u),Fh=null,"double"):(Fh=new QC(p,a,u),qh=null,"single")}M(m3,"clickRepeat");function WC(a){var u=this,p=u.display;if(!(Nr(u,a)||p.activeTouch&&p.input.supportsTouch())){if(p.input.ensurePolled(),p.shift=a.shiftKey,_a(p,a)){m||(p.scroller.draggable=!1,setTimeout(function(){return p.scroller.draggable=!0},100));return}if(!W0(u,a)){var d=Gl(u,a),h=td(a),E=d?m3(d,h):"single";window.focus(),h==1&&u.state.selectingText&&u.state.selectingText(a),!(d&&h3(u,h,d,E,a))&&(h==1?d?g3(u,d,E,a):Ka(a)==p.scroller&&mn(a):h==2?(d&&Ch(u.doc,d),setTimeout(function(){return p.input.focus()},20)):h==3&&(I?u.display.input.onContextMenu(a):C0(u)))}}}M(WC,"onMouseDown");function h3(a,u,p,d,h){var E="Click";return d=="double"?E="Double"+E:d=="triple"&&(E="Triple"+E),E=(u==1?"Left":u==2?"Middle":"Right")+E,kd(a,IC(E,h),h,function(O){if(typeof O=="string"&&(O=Mh[O]),!O)return!1;var L=!1;try{a.isReadOnly()&&(a.state.suppressEdits=!0),L=O(a,p)!=Ge}finally{a.state.suppressEdits=!1}return L})}M(h3,"handleMappedButton");function v3(a,u,p){var d=a.getOption("configureMouse"),h=d?d(a,u,p):{};if(h.unit==null){var E=k?p.shiftKey&&p.metaKey:p.altKey;h.unit=E?"rectangle":u=="single"?"char":u=="double"?"word":"line"}return(h.extend==null||a.doc.extend)&&(h.extend=a.doc.extend||p.shiftKey),h.addNew==null&&(h.addNew=x?p.metaKey:p.ctrlKey),h.moveOnDrag==null&&(h.moveOnDrag=!(x?p.altKey:p.ctrlKey)),h}M(v3,"configureMouse");function g3(a,u,p,d){c?setTimeout(Re(XT,a),0):a.curOp.focus=ee();var h=v3(a,p,d),E=a.doc.sel,O;a.options.dragDrop&&rd&&!a.isReadOnly()&&p=="single"&&(O=E.contains(u))>-1&&(q((O=E.ranges[O]).from(),u)<0||u.xRel>0)&&(q(O.to(),u)>0||u.xRel<0)?y3(a,d,u,h):b3(a,d,u,h)}M(g3,"leftButtonDown");function y3(a,u,p,d){var h=a.display,E=!1,O=on(a,function(F){m&&(h.scroller.draggable=!1),a.state.draggingText=!1,a.state.delayingBlurEvent&&(a.hasFocus()?a.state.delayingBlurEvent=!1:C0(a)),Vn(h.wrapper.ownerDocument,"mouseup",O),Vn(h.wrapper.ownerDocument,"mousemove",L),Vn(h.scroller,"dragstart",R),Vn(h.scroller,"drop",O),E||(mn(F),d.addNew||Ch(a.doc,p,null,null,d.extend),m&&!w||c&&f==9?setTimeout(function(){h.wrapper.ownerDocument.body.focus({preventScroll:!0}),h.input.focus()},20):h.input.focus())}),L=M(function(F){E=E||Math.abs(u.clientX-F.clientX)+Math.abs(u.clientY-F.clientY)>=10},"mouseMove"),R=M(function(){return E=!0},"dragStart");m&&(h.scroller.draggable=!0),a.state.draggingText=O,O.copy=!d.moveOnDrag,rt(h.wrapper.ownerDocument,"mouseup",O),rt(h.wrapper.ownerDocument,"mousemove",L),rt(h.scroller,"dragstart",R),rt(h.scroller,"drop",O),a.state.delayingBlurEvent=!0,setTimeout(function(){return h.input.focus()},20),h.scroller.dragDrop&&h.scroller.dragDrop()}M(y3,"leftButtonStartDrag");function YC(a,u,p){if(p=="char")return new qt(u,u);if(p=="word")return a.findWordAt(u);if(p=="line")return new qt(Ae(u.line,0),Ve(a.doc,Ae(u.line+1,0)));var d=p(a,u);return new qt(d.from,d.to)}M(YC,"rangeForUnit");function b3(a,u,p,d){c&&C0(a);var h=a.display,E=a.doc;mn(u);var O,L,R=E.sel,F=R.ranges;if(d.addNew&&!d.extend?(L=E.sel.contains(p),L>-1?O=F[L]:O=new qt(p,p)):(O=E.sel.primary(),L=E.sel.primIndex),d.unit=="rectangle")d.addNew||(O=new qt(p,p)),p=Gl(a,u,!0,!0),L=-1;else{var H=YC(a,p,d.unit);d.extend?O=U0(O,H.anchor,H.head,d.extend):O=H}d.addNew?L==-1?(L=F.length,kn(E,Mo(a,F.concat([O]),L),{scroll:!1,origin:"*mouse"})):F.length>1&&F[L].empty()&&d.unit=="char"&&!d.extend?(kn(E,Mo(a,F.slice(0,L).concat(F.slice(L+1)),0),{scroll:!1,origin:"*mouse"}),R=E.sel):B0(E,L,O,dr):(L=0,kn(E,new io([O],0),dr),R=E.sel);var Q=p;function $(Le){if(q(Q,Le)!=0)if(Q=Le,d.unit=="rectangle"){for(var Be=[],it=a.options.tabSize,Je=ie(Qe(E,p.line).text,p.ch,it),Et=ie(Qe(E,Le.line).text,Le.ch,it),$t=Math.min(Je,Et),hn=Math.max(Je,Et),mr=Math.min(p.line,Le.line),Ci=Math.min(a.lastLine(),Math.max(p.line,Le.line));mr<=Ci;mr++){var Si=Qe(E,mr).text,zr=bt(Si,$t,it);$t==hn?Be.push(new qt(Ae(mr,zr),Ae(mr,zr))):Si.length>zr&&Be.push(new qt(Ae(mr,zr),Ae(mr,bt(Si,hn,it))))}Be.length||Be.push(new qt(p,p)),kn(E,Mo(a,R.ranges.slice(0,L).concat(Be),L),{origin:"*mouse",scroll:!1}),a.scrollIntoView(Le)}else{var ki=O,On=YC(a,Le,d.unit),sn=ki.anchor,Hr;q(On.anchor,sn)>0?(Hr=On.head,sn=ct(ki.from(),On.anchor)):(Hr=On.anchor,sn=we(ki.to(),On.head));var Dr=R.ranges.slice(0);Dr[L]=A3(a,new qt(Ve(E,sn),Hr)),kn(E,Mo(a,Dr,L),dr)}}M($,"extendTo");var Z=h.wrapper.getBoundingClientRect(),le=0;function ge(Le){var Be=++le,it=Gl(a,Le,!0,d.unit=="rectangle");if(it)if(q(it,Q)!=0){a.curOp.focus=ee(),$(it);var Je=Ah(h,E);(it.line>=Je.to||it.lineZ.bottom?20:0;Et&&setTimeout(on(a,function(){le==Be&&(h.scroller.scrollTop+=Et,ge(Le))}),50)}}M(ge,"extend");function Te(Le){a.state.selectingText=!1,le=1/0,Le&&(mn(Le),h.input.focus()),Vn(h.wrapper.ownerDocument,"mousemove",De),Vn(h.wrapper.ownerDocument,"mouseup",qe),E.history.lastSelOrigin=null}M(Te,"done");var De=on(a,function(Le){Le.buttons===0||!td(Le)?Te(Le):ge(Le)}),qe=on(a,Te);a.state.selectingText=qe,rt(h.wrapper.ownerDocument,"mousemove",De),rt(h.wrapper.ownerDocument,"mouseup",qe)}M(b3,"leftButtonSelect");function A3(a,u){var p=u.anchor,d=u.head,h=Qe(a.doc,p.line);if(q(p,d)==0&&p.sticky==d.sticky)return u;var E=ri(h);if(!E)return u;var O=pr(E,p.ch,p.sticky),L=E[O];if(L.from!=p.ch&&L.to!=p.ch)return u;var R=O+(L.from==p.ch==(L.level!=1)?0:1);if(R==0||R==E.length)return u;var F;if(d.line!=p.line)F=(d.line-p.line)*(a.doc.direction=="ltr"?1:-1)>0;else{var H=pr(E,d.ch,d.sticky),Q=H-O||(d.ch-p.ch)*(L.level==1?-1:1);H==R-1||H==R?F=Q<0:F=Q>0}var $=E[R+(F?-1:0)],Z=F==($.level==1),le=Z?$.from:$.to,ge=Z?"after":"before";return p.ch==le&&p.sticky==ge?u:new qt(new Ae(p.line,le,ge),d)}M(A3,"bidiSimplify");function KC(a,u,p,d){var h,E;if(u.touches)h=u.touches[0].clientX,E=u.touches[0].clientY;else try{h=u.clientX,E=u.clientY}catch{return!1}if(h>=Math.floor(a.display.gutters.getBoundingClientRect().right))return!1;d&&mn(u);var O=a.display,L=O.lineDiv.getBoundingClientRect();if(E>L.bottom||!rn(a,p))return wi(u);E-=L.top-O.viewOffset;for(var R=0;R=h){var H=Lo(a.doc,E),Q=a.display.gutterSpecs[R];return ut(a,p,a,H,Q.className,u),wi(u)}}}M(KC,"gutterEvent");function W0(a,u){return KC(a,u,"gutterClick",!0)}M(W0,"clickInGutter");function XC(a,u){_a(a.display,u)||x3(a,u)||Nr(a,u,"contextmenu")||I||a.display.input.onContextMenu(u)}M(XC,"onContextMenu");function x3(a,u){return rn(a,"gutterContextMenu")?KC(a,u,"gutterContextMenu",!1):!1}M(x3,"contextMenuInGutter");function ZC(a){a.display.wrapper.className=a.display.wrapper.className.replace(/\s*cm-s-\S+/g,"")+a.options.theme.replace(/(^|\s)\s*/g," cm-s-"),hd(a)}M(ZC,"themeChanged");var Od={toString:function(){return"CodeMirror.Init"}},w3={},Y0={};function E3(a){var u=a.optionHandlers;function p(d,h,E,O){a.defaults[d]=h,E&&(u[d]=O?function(L,R,F){F!=Od&&E(L,R,F)}:E)}M(p,"option"),a.defineOption=p,a.Init=Od,p("value","",function(d,h){return d.setValue(h)},!0),p("mode",null,function(d,h){d.doc.modeOption=h,q0(d)},!0),p("indentUnit",2,q0,!0),p("indentWithTabs",!1),p("smartIndent",!0),p("tabSize",4,function(d){wd(d),hd(d),oi(d)},!0),p("lineSeparator",null,function(d,h){if(d.doc.lineSep=h,!!h){var E=[],O=d.doc.first;d.doc.iter(function(R){for(var F=0;;){var H=R.text.indexOf(h,F);if(H==-1)break;F=H+h.length,E.push(Ae(O,H))}O++});for(var L=E.length-1;L>=0;L--)Ac(d.doc,h,E[L],Ae(E[L].line,E[L].ch+h.length))}}),p("specialChars",/[\u0000-\u001f\u007f-\u009f\u00ad\u061c\u200b\u200e\u200f\u2028\u2029\ufeff\ufff9-\ufffc]/g,function(d,h,E){d.state.specialChars=new RegExp(h.source+(h.test(" ")?"":"| "),"g"),E!=Od&&d.refresh()}),p("specialCharPlaceholder",ZI,function(d){return d.refresh()},!0),p("electricChars",!0),p("inputStyle",C?"contenteditable":"textarea",function(){throw new Error("inputStyle can not (yet) be changed in a running editor")},!0),p("spellcheck",!1,function(d,h){return d.getInputField().spellcheck=h},!0),p("autocorrect",!1,function(d,h){return d.getInputField().autocorrect=h},!0),p("autocapitalize",!1,function(d,h){return d.getInputField().autocapitalize=h},!0),p("rtlMoveVisually",!P),p("wholeLineUpdateBefore",!0),p("theme","default",function(d){ZC(d),xd(d)},!0),p("keyMap","default",function(d,h,E){var O=Rh(h),L=E!=Od&&Rh(E);L&&L.detach&&L.detach(d,O),O.attach&&O.attach(d,L||null)}),p("extraKeys",null),p("configureMouse",null),p("lineWrapping",!1,C3,!0),p("gutters",[],function(d,h){d.display.gutterSpecs=M0(h,d.options.lineNumbers),xd(d)},!0),p("fixedGutter",!0,function(d,h){d.display.gutters.style.left=h?x0(d.display)+"px":"0",d.refresh()},!0),p("coverGutterNextToScrollbar",!1,function(d){return vc(d)},!0),p("scrollbarStyle","native",function(d){eC(d),vc(d),d.display.scrollbars.setScrollTop(d.doc.scrollTop),d.display.scrollbars.setScrollLeft(d.doc.scrollLeft)},!0),p("lineNumbers",!1,function(d,h){d.display.gutterSpecs=M0(d.options.gutters,h),xd(d)},!0),p("firstLineNumber",1,xd,!0),p("lineNumberFormatter",function(d){return d},xd,!0),p("showCursorWhenSelecting",!1,vd,!0),p("resetSelectionOnContextMenu",!0),p("lineWiseCopyCut",!0),p("pasteLinesPerSelection",!0),p("selectionsMayTouch",!1),p("readOnly",!1,function(d,h){h=="nocursor"&&(pc(d),d.display.input.blur()),d.display.input.readOnlyChanged(h)}),p("screenReaderLabel",null,function(d,h){h=h===""?null:h,d.display.input.screenReaderLabelChanged(h)}),p("disableInput",!1,function(d,h){h||d.display.input.reset()},!0),p("dragDrop",!0,T3),p("allowDropFileTypes",null),p("cursorBlinkRate",530),p("cursorScrollMargin",0),p("cursorHeight",1,vd,!0),p("singleCursorHeightPerLine",!0,vd,!0),p("workTime",100),p("workDelay",100),p("flattenSpans",!0,wd,!0),p("addModeClass",!1,wd,!0),p("pollInterval",100),p("undoDepth",200,function(d,h){return d.doc.history.undoDepth=h}),p("historyEventDelay",1250),p("viewportMargin",10,function(d){return d.refresh()},!0),p("maxHighlightLength",1e4,wd,!0),p("moveInputWithCursor",!0,function(d,h){h||d.display.input.resetPosition()}),p("tabindex",null,function(d,h){return d.display.input.getField().tabIndex=h||""}),p("autofocus",null),p("direction","ltr",function(d,h){return d.doc.setDirection(h)},!0),p("phrases",null)}M(E3,"defineOptions");function T3(a,u,p){var d=p&&p!=Od;if(!u!=!d){var h=a.display.dragFunctions,E=u?rt:Vn;E(a.display.scroller,"dragstart",h.start),E(a.display.scroller,"dragenter",h.enter),E(a.display.scroller,"dragover",h.over),E(a.display.scroller,"dragleave",h.leave),E(a.display.scroller,"drop",h.drop)}}M(T3,"dragDropChanged");function C3(a){a.options.lineWrapping?(re(a.display.wrapper,"CodeMirror-wrap"),a.display.sizer.style.minWidth="",a.display.sizerWidth=null):(G(a.display.wrapper,"CodeMirror-wrap"),f0(a)),w0(a),oi(a),hd(a),setTimeout(function(){return vc(a)},100)}M(C3,"wrappingChanged");function or(a,u){var p=this;if(!(this instanceof or))return new or(a,u);this.options=u=u?Se(u):{},Se(w3,u,!1);var d=u.value;typeof d=="string"?d=new Ti(d,u.mode,null,u.lineSeparator,u.direction):u.mode&&(d.modeOption=u.mode),this.doc=d;var h=new or.inputStyles[u.inputStyle](this),E=this.display=new qF(a,d,h,u);E.wrapper.CodeMirror=this,ZC(this),u.lineWrapping&&(this.display.wrapper.className+=" CodeMirror-wrap"),eC(this),this.state={keyMaps:[],overlays:[],modeGen:0,overwrite:!1,delayingBlurEvent:!1,focused:!1,suppressEdits:!1,pasteIncoming:-1,cutIncoming:-1,selectingText:!1,draggingText:!1,highlight:new ye,keySeq:null,specialChars:null},u.autofocus&&!C&&E.input.focus(),c&&f<11&&setTimeout(function(){return p.display.input.reset(!0)},20),S3(this),i3(),Ql(this),this.curOp.forceUpdate=!0,cC(this,d),u.autofocus&&!C||this.hasFocus()?setTimeout(function(){p.hasFocus()&&!p.state.focused&&S0(p)},20):pc(this);for(var O in Y0)Y0.hasOwnProperty(O)&&Y0[O](this,u[O],Od);nC(this),u.finishInit&&u.finishInit(this);for(var L=0;L20*20}M(O,"farAway"),rt(u.scroller,"touchstart",function(R){if(!Nr(a,R)&&!E(R)&&!W0(a,R)){u.input.ensurePolled(),clearTimeout(p);var F=+new Date;u.activeTouch={start:F,moved:!1,prev:F-d.end<=300?d:null},R.touches.length==1&&(u.activeTouch.left=R.touches[0].pageX,u.activeTouch.top=R.touches[0].pageY)}}),rt(u.scroller,"touchmove",function(){u.activeTouch&&(u.activeTouch.moved=!0)}),rt(u.scroller,"touchend",function(R){var F=u.activeTouch;if(F&&!_a(u,R)&&F.left!=null&&!F.moved&&new Date-F.start<300){var H=a.coordsChar(u.activeTouch,"page"),Q;!F.prev||O(F,F.prev)?Q=new qt(H,H):!F.prev.prev||O(F,F.prev.prev)?Q=a.findWordAt(H):Q=new qt(Ae(H.line,0),Ve(a.doc,Ae(H.line+1,0))),a.setSelection(Q.anchor,Q.head),a.focus(),mn(R)}h()}),rt(u.scroller,"touchcancel",h),rt(u.scroller,"scroll",function(){u.scroller.clientHeight&&(yd(a,u.scroller.scrollTop),Hl(a,u.scroller.scrollLeft,!0),ut(a,"scroll",a))}),rt(u.scroller,"mousewheel",function(R){return aC(a,R)}),rt(u.scroller,"DOMMouseScroll",function(R){return aC(a,R)}),rt(u.wrapper,"scroll",function(){return u.wrapper.scrollTop=u.wrapper.scrollLeft=0}),u.dragFunctions={enter:function(R){Nr(a,R)||Us(R)},over:function(R){Nr(a,R)||(r3(a,R),Us(R))},start:function(R){return t3(a,R)},drop:on(a,e3),leave:function(R){Nr(a,R)||PC(a)}};var L=u.input.getField();rt(L,"keyup",function(R){return zC.call(a,R)}),rt(L,"keydown",on(a,GC)),rt(L,"keypress",on(a,HC)),rt(L,"focus",function(R){return S0(a,R)}),rt(L,"blur",function(R){return pc(a,R)})}M(S3,"registerEventHandlers");var JC=[];or.defineInitHook=function(a){return JC.push(a)};function Nd(a,u,p,d){var h=a.doc,E;p==null&&(p="add"),p=="smart"&&(h.mode.indent?E=ud(a,u).state:p="prev");var O=a.options.tabSize,L=Qe(h,u),R=ie(L.text,null,O);L.stateAfter&&(L.stateAfter=null);var F=L.text.match(/^\s*/)[0],H;if(!d&&!/\S/.test(L.text))H=0,p="not";else if(p=="smart"&&(H=h.mode.indent(E,L.text.slice(F.length),L.text),H==Ge||H>150)){if(!d)return;p="prev"}p=="prev"?u>h.first?H=ie(Qe(h,u-1).text,null,O):H=0:p=="add"?H=R+a.options.indentUnit:p=="subtract"?H=R-a.options.indentUnit:typeof p=="number"&&(H=R+p),H=Math.max(0,H);var Q="",$=0;if(a.options.indentWithTabs)for(var Z=Math.floor(H/O);Z;--Z)$+=O,Q+=" ";if($O,R=od(u),F=null;if(L&&d.ranges.length>1)if(pa&&pa.text.join(` -`)==u){if(d.ranges.length%pa.text.length==0){F=[];for(var H=0;H=0;$--){var Z=d.ranges[$],le=Z.from(),ge=Z.to();Z.empty()&&(p&&p>0?le=Ae(le.line,le.ch-p):a.state.overwrite&&!L?ge=Ae(ge.line,Math.min(Qe(E,ge.line).text.length,ge.ch+pe(R).length)):L&&pa&&pa.lineWise&&pa.text.join(` -`)==R.join(` -`)&&(le=ge=Ae(le.line,0)));var Te={from:le,to:ge,text:F?F[$%F.length]:R,origin:h||(L?"paste":a.state.cutIncoming>O?"cut":"+input")};bc(a.doc,Te),nn(a,"inputRead",a,Te)}u&&!L&&$C(a,u),mc(a),a.curOp.updateInput<2&&(a.curOp.updateInput=Q),a.curOp.typing=!0,a.state.pasteIncoming=a.state.cutIncoming=-1}M(K0,"applyTextInput");function _C(a,u){var p=a.clipboardData&&a.clipboardData.getData("Text");if(p)return a.preventDefault(),!u.isReadOnly()&&!u.options.disableInput&&Ei(u,function(){return K0(u,p,0,null,"paste")}),!0}M(_C,"handlePaste");function $C(a,u){if(!(!a.options.electricChars||!a.options.smartIndent))for(var p=a.doc.sel,d=p.ranges.length-1;d>=0;d--){var h=p.ranges[d];if(!(h.head.ch>100||d&&p.ranges[d-1].head.line==h.head.line)){var E=a.getModeAt(h.head),O=!1;if(E.electricChars){for(var L=0;L-1){O=Nd(a,h.head.line,"smart");break}}else E.electricInput&&E.electricInput.test(Qe(a.doc,h.head.line).text.slice(0,h.head.ch))&&(O=Nd(a,h.head.line,"smart"));O&&nn(a,"electricInput",a,h.head.line)}}}M($C,"triggerElectric");function eS(a){for(var u=[],p=[],d=0;dE&&(Nd(this,L.head.line,d,!0),E=L.head.line,O==this.doc.sel.primIndex&&mc(this));else{var R=L.from(),F=L.to(),H=Math.max(E,R.line);E=Math.min(this.lastLine(),F.line-(F.ch?0:1))+1;for(var Q=H;Q0&&B0(this.doc,O,new qt(R,$[O].to()),He)}}}),getTokenAt:function(d,h){return hT(this,d,h)},getLineTokens:function(d,h){return hT(this,Ae(d),h,!0)},getTokenTypeAt:function(d){d=Ve(this.doc,d);var h=pT(this,Qe(this.doc,d.line)),E=0,O=(h.length-1)/2,L=d.ch,R;if(L==0)R=h[2];else for(;;){var F=E+O>>1;if((F?h[F*2-1]:0)>=L)O=F;else if(h[F*2+1]R&&(d=R,O=!0),L=Qe(this.doc,d)}else L=d;return hh(this,L,{top:0,left:0},h||"page",E||O).top+(O?this.doc.height-Ja(L):0)},defaultTextHeight:function(){return fc(this.display)},defaultCharWidth:function(){return dc(this.display)},getViewport:function(){return{from:this.display.viewFrom,to:this.display.viewTo}},addWidget:function(d,h,E,O,L){var R=this.display;d=Ro(this,Ve(this.doc,d));var F=d.bottom,H=d.left;if(h.style.position="absolute",h.setAttribute("cm-ignore-events","true"),this.display.input.setUneditable(h),R.sizer.appendChild(h),O=="over")F=d.top;else if(O=="above"||O=="near"){var Q=Math.max(R.wrapper.clientHeight,this.doc.height),$=Math.max(R.sizer.clientWidth,R.lineSpace.clientWidth);(O=="above"||d.bottom+h.offsetHeight>Q)&&d.top>h.offsetHeight?F=d.top-h.offsetHeight:d.bottom+h.offsetHeight<=Q&&(F=d.bottom),H+h.offsetWidth>$&&(H=$-h.offsetWidth)}h.style.top=F+"px",h.style.left=h.style.right="",L=="right"?(H=R.sizer.clientWidth-h.offsetWidth,h.style.right="0px"):(L=="left"?H=0:L=="middle"&&(H=(R.sizer.clientWidth-h.offsetWidth)/2),h.style.left=H+"px"),E&&EF(this,{left:H,top:F,right:H+h.offsetWidth,bottom:F+h.offsetHeight})},triggerOnKeyDown:Un(GC),triggerOnKeyPress:Un(HC),triggerOnKeyUp:zC,triggerOnMouseDown:Un(WC),execCommand:function(d){if(Mh.hasOwnProperty(d))return Mh[d].call(null,this)},triggerElectric:Un(function(d){$C(this,d)}),findPosH:function(d,h,E,O){var L=1;h<0&&(L=-1,h=-h);for(var R=Ve(this.doc,d),F=0;F0&&H(E.charAt(O-1));)--O;for(;L.5||this.options.lineWrapping)&&w0(this),ut(this,"refresh",this)}),swapDoc:Un(function(d){var h=this.doc;return h.cm=null,this.state.selectingText&&this.state.selectingText(),cC(this,d),hd(this),this.display.input.reset(),gd(this,d.scrollLeft,d.scrollTop),this.curOp.forceScroll=!0,nn(this,"swapDoc",this,h),h}),phrase:function(d){var h=this.options.phrases;return h&&Object.prototype.hasOwnProperty.call(h,d)?h[d]:d},getInputField:function(){return this.display.input.getField()},getWrapperElement:function(){return this.display.wrapper},getScrollerElement:function(){return this.display.scroller},getGutterElement:function(){return this.display.gutters}},ko(a),a.registerHelper=function(d,h,E){p.hasOwnProperty(d)||(p[d]=a[d]={_global:[]}),p[d][h]=E},a.registerGlobalHelper=function(d,h,E,O){a.registerHelper(d,h,O),p[d]._global.push({pred:E,val:O})}}M(k3,"addEditorMethods");function X0(a,u,p,d,h){var E=u,O=p,L=Qe(a,u.line),R=h&&a.direction=="rtl"?-p:p;function F(){var qe=u.line+R;return qe=a.first+a.size?!1:(u=new Ae(qe,u.ch,u.sticky),L=Qe(a,qe))}M(F,"findNextLine");function H(qe){var Le;if(d=="codepoint"){var Be=L.text.charCodeAt(u.ch+(p>0?0:-1));if(isNaN(Be))Le=null;else{var it=p>0?Be>=55296&&Be<56320:Be>=56320&&Be<57343;Le=new Ae(u.line,Math.max(0,Math.min(L.text.length,u.ch+p*(it?2:1))),-p)}}else h?Le=u3(a.cm,L,u,p):Le=H0(L,u,p);if(Le==null)if(!qe&&F())u=Q0(h,a.cm,L,u.line,R);else return!1;else u=Le;return!0}if(M(H,"moveOnce"),d=="char"||d=="codepoint")H();else if(d=="column")H(!0);else if(d=="word"||d=="group")for(var Q=null,$=d=="group",Z=a.cm&&a.cm.getHelper(u,"wordChars"),le=!0;!(p<0&&!H(!le));le=!1){var ge=L.text.charAt(u.ch)||` -`,Te=ua(ge,Z)?"w":$&&ge==` -`?"n":!$||/\s/.test(ge)?null:"p";if($&&!le&&!Te&&(Te="s"),Q&&Q!=Te){p<0&&(p=1,H(),u.sticky="after");break}if(Te&&(Q=Te),p>0&&!H(!le))break}var De=kh(a,u,E,O,!0);return W(E,De)&&(De.hitSide=!0),De}M(X0,"findPosH");function nS(a,u,p,d){var h=a.doc,E=u.left,O;if(d=="page"){var L=Math.min(a.display.wrapper.clientHeight,window.innerHeight||document.documentElement.clientHeight),R=Math.max(L-.5*fc(a.display),3);O=(p>0?u.bottom:u.top)+p*R}else d=="line"&&(O=p>0?u.bottom+3:u.top-3);for(var F;F=y0(a,E,O),!!F.outside;){if(p<0?O<=0:O>=h.height){F.hitSide=!0;break}O+=p*5}return F}M(nS,"findPosV");var Yt=M(function(a){this.cm=a,this.lastAnchorNode=this.lastAnchorOffset=this.lastFocusNode=this.lastFocusOffset=null,this.polling=new ye,this.composing=null,this.gracePeriod=!1,this.readDOMTimeout=null},"ContentEditableInput");Yt.prototype.init=function(a){var u=this,p=this,d=p.cm,h=p.div=a.lineDiv;h.contentEditable=!0,tS(h,d.options.spellcheck,d.options.autocorrect,d.options.autocapitalize);function E(L){for(var R=L.target;R;R=R.parentNode){if(R==h)return!0;if(/\bCodeMirror-(?:line)?widget\b/.test(R.className))break}return!1}M(E,"belongsToInput"),rt(h,"paste",function(L){!E(L)||Nr(d,L)||_C(L,d)||f<=11&&setTimeout(on(d,function(){return u.updateFromDOM()}),20)}),rt(h,"compositionstart",function(L){u.composing={data:L.data,done:!1}}),rt(h,"compositionupdate",function(L){u.composing||(u.composing={data:L.data,done:!1})}),rt(h,"compositionend",function(L){u.composing&&(L.data!=u.composing.data&&u.readFromDOMSoon(),u.composing.done=!0)}),rt(h,"touchstart",function(){return p.forceCompositionEnd()}),rt(h,"input",function(){u.composing||u.readFromDOMSoon()});function O(L){if(!(!E(L)||Nr(d,L))){if(d.somethingSelected())jh({lineWise:!1,text:d.getSelections()}),L.type=="cut"&&d.replaceSelection("",null,"cut");else if(d.options.lineWiseCopyCut){var R=eS(d);jh({lineWise:!0,text:R.text}),L.type=="cut"&&d.operation(function(){d.setSelections(R.ranges,0,He),d.replaceSelection("",null,"cut")})}else return;if(L.clipboardData){L.clipboardData.clearData();var F=pa.text.join(` -`);if(L.clipboardData.setData("Text",F),L.clipboardData.getData("Text")==F){L.preventDefault();return}}var H=rS(),Q=H.firstChild;d.display.lineSpace.insertBefore(H,d.display.lineSpace.firstChild),Q.value=pa.text.join(` -`);var $=ee();xe(Q),setTimeout(function(){d.display.lineSpace.removeChild(H),$.focus(),$==h&&p.showPrimarySelection()},50)}}M(O,"onCopyCut"),rt(h,"copy",O),rt(h,"cut",O)},Yt.prototype.screenReaderLabelChanged=function(a){a?this.div.setAttribute("aria-label",a):this.div.removeAttribute("aria-label")},Yt.prototype.prepareSelection=function(){var a=KT(this.cm,!1);return a.focus=ee()==this.div,a},Yt.prototype.showSelection=function(a,u){!a||!this.cm.display.view.length||((a.focus||u)&&this.showPrimarySelection(),this.showMultipleSelections(a))},Yt.prototype.getSelection=function(){return this.cm.display.wrapper.ownerDocument.getSelection()},Yt.prototype.showPrimarySelection=function(){var a=this.getSelection(),u=this.cm,p=u.doc.sel.primary(),d=p.from(),h=p.to();if(u.display.viewTo==u.display.viewFrom||d.line>=u.display.viewTo||h.line=u.display.viewFrom&&iS(u,d)||{node:L[0].measure.map[2],offset:0},F=h.linea.firstLine()&&(d=Ae(d.line-1,Qe(a.doc,d.line-1).length)),h.ch==Qe(a.doc,h.line).text.length&&h.lineu.viewTo-1)return!1;var E,O,L;d.line==u.viewFrom||(E=zl(a,d.line))==0?(O=Pt(u.view[0].line),L=u.view[0].node):(O=Pt(u.view[E].line),L=u.view[E-1].node.nextSibling);var R=zl(a,h.line),F,H;if(R==u.view.length-1?(F=u.viewTo-1,H=u.lineDiv.lastChild):(F=Pt(u.view[R+1].line)-1,H=u.view[R+1].node.previousSibling),!L)return!1;for(var Q=a.doc.splitLines(N3(a,L,H,O,F)),$=Do(a.doc,Ae(O,0),Ae(F,Qe(a.doc,F).text.length));Q.length>1&&$.length>1;)if(pe(Q)==pe($))Q.pop(),$.pop(),F--;else if(Q[0]==$[0])Q.shift(),$.shift(),O++;else break;for(var Z=0,le=0,ge=Q[0],Te=$[0],De=Math.min(ge.length,Te.length);Zd.ch&&qe.charCodeAt(qe.length-le-1)==Le.charCodeAt(Le.length-le-1);)Z--,le++;Q[Q.length-1]=qe.slice(0,qe.length-le).replace(/^\u200b+/,""),Q[0]=Q[0].slice(Z).replace(/\u200b+$/,"");var it=Ae(O,Z),Je=Ae(F,$.length?pe($).length-le:0);if(Q.length>1||Q[0]||q(it,Je))return Ac(a.doc,Q,it,Je,"+input"),!0},Yt.prototype.ensurePolled=function(){this.forceCompositionEnd()},Yt.prototype.reset=function(){this.forceCompositionEnd()},Yt.prototype.forceCompositionEnd=function(){this.composing&&(clearTimeout(this.readDOMTimeout),this.composing=null,this.updateFromDOM(),this.div.blur(),this.div.focus())},Yt.prototype.readFromDOMSoon=function(){var a=this;this.readDOMTimeout==null&&(this.readDOMTimeout=setTimeout(function(){if(a.readDOMTimeout=null,a.composing)if(a.composing.done)a.composing=null;else return;a.updateFromDOM()},80))},Yt.prototype.updateFromDOM=function(){var a=this;(this.cm.isReadOnly()||!this.pollContent())&&Ei(this.cm,function(){return oi(a.cm)})},Yt.prototype.setUneditable=function(a){a.contentEditable="false"},Yt.prototype.onKeyPress=function(a){a.charCode==0||this.composing||(a.preventDefault(),this.cm.isReadOnly()||on(this.cm,K0)(this.cm,String.fromCharCode(a.charCode==null?a.keyCode:a.charCode),0))},Yt.prototype.readOnlyChanged=function(a){this.div.contentEditable=String(a!="nocursor")},Yt.prototype.onContextMenu=function(){},Yt.prototype.resetPosition=function(){},Yt.prototype.needsContentAttribute=!0;function iS(a,u){var p=h0(a,u.line);if(!p||p.hidden)return null;var d=Qe(a.doc,u.line),h=IT(p,d,u.line),E=ri(d,a.doc.direction),O="left";if(E){var L=pr(E,u.ch);O=L%2?"right":"left"}var R=qT(h.map,u.ch,O);return R.offset=R.collapse=="right"?R.end:R.start,R}M(iS,"posToDOM");function O3(a){for(var u=a;u;u=u.parentNode)if(/CodeMirror-gutter-wrapper/.test(u.className))return!0;return!1}M(O3,"isInGutter");function Tc(a,u){return u&&(a.bad=!0),a}M(Tc,"badPos");function N3(a,u,p,d,h){var E="",O=!1,L=a.doc.lineSeparator(),R=!1;function F(Z){return function(le){return le.id==Z}}M(F,"recognizeMarker");function H(){O&&(E+=L,R&&(E+=L),O=R=!1)}M(H,"close");function Q(Z){Z&&(H(),E+=Z)}M(Q,"addText");function $(Z){if(Z.nodeType==1){var le=Z.getAttribute("cm-text");if(le){Q(le);return}var ge=Z.getAttribute("cm-marker"),Te;if(ge){var De=a.findMarks(Ae(d,0),Ae(h+1,0),F(+ge));De.length&&(Te=De[0].find(0))&&Q(Do(a.doc,Te.from,Te.to).join(L));return}if(Z.getAttribute("contenteditable")=="false")return;var qe=/^(pre|div|p|li|table|br)$/i.test(Z.nodeName);if(!/^br$/i.test(Z.nodeName)&&Z.textContent.length==0)return;qe&&H();for(var Le=0;Le=9&&u.hasSelection&&(u.hasSelection=null),p.poll()}),rt(h,"paste",function(O){Nr(d,O)||_C(O,d)||(d.state.pasteIncoming=+new Date,p.fastPoll())});function E(O){if(!Nr(d,O)){if(d.somethingSelected())jh({lineWise:!1,text:d.getSelections()});else if(d.options.lineWiseCopyCut){var L=eS(d);jh({lineWise:!0,text:L.text}),O.type=="cut"?d.setSelections(L.ranges,null,He):(p.prevInput="",h.value=L.text.join(` -`),xe(h))}else return;O.type=="cut"&&(d.state.cutIncoming=+new Date)}}M(E,"prepareCopyCut"),rt(h,"cut",E),rt(h,"copy",E),rt(a.scroller,"paste",function(O){if(!(_a(a,O)||Nr(d,O))){if(!h.dispatchEvent){d.state.pasteIncoming=+new Date,p.focus();return}var L=new Event("paste");L.clipboardData=O.clipboardData,h.dispatchEvent(L)}}),rt(a.lineSpace,"selectstart",function(O){_a(a,O)||mn(O)}),rt(h,"compositionstart",function(){var O=d.getCursor("from");p.composing&&p.composing.range.clear(),p.composing={start:O,range:d.markText(O,d.getCursor("to"),{className:"CodeMirror-composing"})}}),rt(h,"compositionend",function(){p.composing&&(p.poll(),p.composing.range.clear(),p.composing=null)})},qr.prototype.createField=function(a){this.wrapper=rS(),this.textarea=this.wrapper.firstChild},qr.prototype.screenReaderLabelChanged=function(a){a?this.textarea.setAttribute("aria-label",a):this.textarea.removeAttribute("aria-label")},qr.prototype.prepareSelection=function(){var a=this.cm,u=a.display,p=a.doc,d=KT(a);if(a.options.moveInputWithCursor){var h=Ro(a,p.sel.primary().head,"div"),E=u.wrapper.getBoundingClientRect(),O=u.lineDiv.getBoundingClientRect();d.teTop=Math.max(0,Math.min(u.wrapper.clientHeight-10,h.top+O.top-E.top)),d.teLeft=Math.max(0,Math.min(u.wrapper.clientWidth-10,h.left+O.left-E.left))}return d},qr.prototype.showSelection=function(a){var u=this.cm,p=u.display;U(p.cursorDiv,a.cursors),U(p.selectionDiv,a.selection),a.teTop!=null&&(this.wrapper.style.top=a.teTop+"px",this.wrapper.style.left=a.teLeft+"px")},qr.prototype.reset=function(a){if(!(this.contextMenuPending||this.composing)){var u=this.cm;if(u.somethingSelected()){this.prevInput="";var p=u.getSelection();this.textarea.value=p,u.state.focused&&xe(this.textarea),c&&f>=9&&(this.hasSelection=p)}else a||(this.prevInput=this.textarea.value="",c&&f>=9&&(this.hasSelection=null))}},qr.prototype.getField=function(){return this.textarea},qr.prototype.supportsTouch=function(){return!1},qr.prototype.focus=function(){if(this.cm.options.readOnly!="nocursor"&&(!C||ee()!=this.textarea))try{this.textarea.focus()}catch{}},qr.prototype.blur=function(){this.textarea.blur()},qr.prototype.resetPosition=function(){this.wrapper.style.top=this.wrapper.style.left=0},qr.prototype.receivedFocus=function(){this.slowPoll()},qr.prototype.slowPoll=function(){var a=this;this.pollingFast||this.polling.set(this.cm.options.pollInterval,function(){a.poll(),a.cm.state.focused&&a.slowPoll()})},qr.prototype.fastPoll=function(){var a=!1,u=this;u.pollingFast=!0;function p(){var d=u.poll();!d&&!a?(a=!0,u.polling.set(60,p)):(u.pollingFast=!1,u.slowPoll())}M(p,"p"),u.polling.set(20,p)},qr.prototype.poll=function(){var a=this,u=this.cm,p=this.textarea,d=this.prevInput;if(this.contextMenuPending||!u.state.focused||oh(p)&&!d&&!this.composing||u.isReadOnly()||u.options.disableInput||u.state.keySeq)return!1;var h=p.value;if(h==d&&!u.somethingSelected())return!1;if(c&&f>=9&&this.hasSelection===h||x&&/[\uf700-\uf7ff]/.test(h))return u.display.input.reset(),!1;if(u.doc.sel==u.display.selForContextMenu){var E=h.charCodeAt(0);if(E==8203&&!d&&(d="\u200B"),E==8666)return this.reset(),this.cm.execCommand("undo")}for(var O=0,L=Math.min(d.length,h.length);O1e3||h.indexOf(` -`)>-1?p.value=a.prevInput="":a.prevInput=h,a.composing&&(a.composing.range.clear(),a.composing.range=u.markText(a.composing.start,u.getCursor("to"),{className:"CodeMirror-composing"}))}),!0},qr.prototype.ensurePolled=function(){this.pollingFast&&this.poll()&&(this.pollingFast=!1)},qr.prototype.onKeyPress=function(){c&&f>=9&&(this.hasSelection=null),this.fastPoll()},qr.prototype.onContextMenu=function(a){var u=this,p=u.cm,d=p.display,h=u.textarea;u.contextMenuPending&&u.contextMenuPending();var E=Gl(p,a),O=d.scroller.scrollTop;if(!E||y)return;var L=p.options.resetSelectionOnContextMenu;L&&p.doc.sel.contains(E)==-1&&on(p,kn)(p.doc,Ys(E),He);var R=h.style.cssText,F=u.wrapper.style.cssText,H=u.wrapper.offsetParent.getBoundingClientRect();u.wrapper.style.cssText="position: static",h.style.cssText=`position: absolute; width: 30px; height: 30px; - top: `+(a.clientY-H.top-5)+"px; left: "+(a.clientX-H.left-5)+`px; - z-index: 1000; background: `+(c?"rgba(255, 255, 255, .05)":"transparent")+`; - outline: none; border-width: 0; outline: none; overflow: hidden; opacity: .05; filter: alpha(opacity=5);`;var Q;m&&(Q=window.scrollY),d.input.focus(),m&&window.scrollTo(null,Q),d.input.reset(),p.somethingSelected()||(h.value=u.prevInput=" "),u.contextMenuPending=Z,d.selForContextMenu=p.doc.sel,clearTimeout(d.detectingSelectAll);function $(){if(h.selectionStart!=null){var ge=p.somethingSelected(),Te="\u200B"+(ge?h.value:"");h.value="\u21DA",h.value=Te,u.prevInput=ge?"":"\u200B",h.selectionStart=1,h.selectionEnd=Te.length,d.selForContextMenu=p.doc.sel}}M($,"prepareSelectAllHack");function Z(){if(u.contextMenuPending==Z&&(u.contextMenuPending=!1,u.wrapper.style.cssText=F,h.style.cssText=R,c&&f<9&&d.scrollbars.setScrollTop(d.scroller.scrollTop=O),h.selectionStart!=null)){(!c||c&&f<9)&&$();var ge=0,Te=M(function(){d.selForContextMenu==p.doc.sel&&h.selectionStart==0&&h.selectionEnd>0&&u.prevInput=="\u200B"?on(p,EC)(p):ge++<10?d.detectingSelectAll=setTimeout(Te,500):(d.selForContextMenu=null,d.input.reset())},"poll");d.detectingSelectAll=setTimeout(Te,200)}}if(M(Z,"rehide"),c&&f>=9&&$(),I){Us(a);var le=M(function(){Vn(window,"mouseup",le),setTimeout(Z,20)},"mouseup");rt(window,"mouseup",le)}else setTimeout(Z,50)},qr.prototype.readOnlyChanged=function(a){a||this.reset(),this.textarea.disabled=a=="nocursor",this.textarea.readOnly=!!a},qr.prototype.setUneditable=function(){},qr.prototype.needsContentAttribute=!1;function L3(a,u){if(u=u?Se(u):{},u.value=a.value,!u.tabindex&&a.tabIndex&&(u.tabindex=a.tabIndex),!u.placeholder&&a.placeholder&&(u.placeholder=a.placeholder),u.autofocus==null){var p=ee();u.autofocus=p==a||a.getAttribute("autofocus")!=null&&p==document.body}function d(){a.value=L.getValue()}M(d,"save");var h;if(a.form&&(rt(a.form,"submit",d),!u.leaveSubmitMethodAlone)){var E=a.form;h=E.submit;try{var O=E.submit=function(){d(),E.submit=h,E.submit(),E.submit=O}}catch{}}u.finishInit=function(R){R.save=d,R.getTextArea=function(){return a},R.toTextArea=function(){R.toTextArea=isNaN,d(),a.parentNode.removeChild(R.getWrapperElement()),a.style.display="",a.form&&(Vn(a.form,"submit",d),!u.leaveSubmitMethodAlone&&typeof a.form.submit=="function"&&(a.form.submit=h))}},a.style.display="none";var L=or(function(R){return a.parentNode.insertBefore(R,a.nextSibling)},u);return L}M(L3,"fromTextArea");function P3(a){a.off=Vn,a.on=rt,a.wheelEventPixels=jF,a.Doc=Ti,a.splitLines=od,a.countColumn=ie,a.findColumn=bt,a.isWordChar=Or,a.Pass=Ge,a.signal=ut,a.Line=fd,a.changeEnd=Ks,a.scrollbarModel=CF,a.Pos=Ae,a.cmpPos=q,a.modes=ro,a.mimeModes=qi,a.resolveMode=Vl,a.getMode=Ul,a.modeExtensions=No,a.extendMode=no,a.copyState=ji,a.startState=ac,a.innerMode=oc,a.commands=Mh,a.keyMap=Zs,a.keyName=FC,a.isModifierKey=MC,a.lookupKey=wc,a.normalizeKeyMap=l3,a.StringStream=xr,a.SharedTextMarker=Dh,a.TextMarker=Yl,a.LineWidget=Nh,a.e_preventDefault=mn,a.e_stopPropagation=jl,a.e_stop=Us,a.addClass=re,a.contains=K,a.rmClass=G,a.keyNames=Kl}M(P3,"addLegacyProps"),E3(or),k3(or);var K$="iter insert remove copy getEditor constructor".split(" ");for(var Z0 in Ti.prototype)Ti.prototype.hasOwnProperty(Z0)&&me(K$,Z0)<0&&(or.prototype[Z0]=function(a){return function(){return a.apply(this.doc,arguments)}}(Ti.prototype[Z0]));return ko(Ti),or.inputStyles={textarea:qr,contenteditable:Yt},or.defineMode=function(a){!or.defaults.mode&&a!="null"&&(or.defaults.mode=a),sd.apply(this,arguments)},or.defineMIME=ca,or.defineMode("null",function(){return{token:function(a){return a.skipToEnd()}}}),or.defineMIME("text/plain","null"),or.defineExtension=function(a,u){or.prototype[a]=u},or.defineDocExtension=function(a,u){Ti.prototype[a]=u},or.fromTextArea=L3,P3(or),or.version="5.65.3",or})}(PZ)),PZ.exports}var mxe,M,hxe,PZ,RZ,ir=at(()=>{mxe=Object.defineProperty,M=(e,t)=>mxe(e,"name",{value:t,configurable:!0}),hxe=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};M(_t,"getDefaultExportFromCjs");PZ={exports:{}};M(Kt,"requireCodemirror")});var FZ={};Ui(FZ,{C:()=>tt,c:()=>yxe});function MZ(e,t){for(var r=0;rn[i]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}var vxe,gxe,IZ,tt,yxe,ia=at(()=>{ir();vxe=Object.defineProperty,gxe=(e,t)=>vxe(e,"name",{value:t,configurable:!0});gxe(MZ,"_mergeNamespaces");IZ=Kt(),tt=_t(IZ),yxe=MZ({__proto__:null,default:tt},[IZ])});var VZ={};Ui(VZ,{s:()=>wxe});function qZ(e,t){for(var r=0;rn[i]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}var bxe,eo,Axe,jZ,xxe,wxe,OM=at(()=>{ir();bxe=Object.defineProperty,eo=(e,t)=>bxe(e,"name",{value:t,configurable:!0});eo(qZ,"_mergeNamespaces");Axe={exports:{}};(function(e,t){(function(r){r(Kt())})(function(r){var n="CodeMirror-hint",i="CodeMirror-hint-active";r.showHint=function(A,b,C){if(!b)return A.showHint(C);C&&C.async&&(b.async=!0);var x={hint:b};if(C)for(var k in C)x[k]=C[k];return A.showHint(x)},r.defineExtension("showHint",function(A){A=c(this,this.getCursor("start"),A);var b=this.listSelections();if(!(b.length>1)){if(this.somethingSelected()){if(!A.hint.supportsSelection)return;for(var C=0;CD.clientHeight+1:!1,He;setTimeout(function(){He=x.getScrollInfo()});var dr=Oe.bottom-me;if(dr>0){var Ue=Oe.bottom-Oe.top,bt=j.top-(j.bottom-Oe.top);if(bt-Ue>0)D.style.top=(K=j.top-Ue-se)+"px",ee=!1;else if(Ue>me){D.style.height=me-5+"px",D.style.top=(K=j.bottom-Oe.top-se)+"px";var he=x.getCursor();b.from.ch!=he.ch&&(j=x.cursorCoords(he),D.style.left=(J=j.left-re)+"px",Oe=D.getBoundingClientRect())}}var Fe=Oe.right-ye;if(Ge&&(Fe+=x.display.nativeBarWidth),Fe>0&&(Oe.right-Oe.left>ye&&(D.style.width=ye-5+"px",Fe-=Oe.right-Oe.left-ye),D.style.left=(J=j.left-Fe-re)+"px"),Ge)for(var pe=D.firstChild;pe;pe=pe.nextSibling)pe.style.paddingRight=x.display.nativeBarWidth+"px";if(x.addKeyMap(this.keyMap=m(A,{moveFocus:function(nt,lt){C.changeActive(C.selectedHint+nt,lt)},setFocus:function(nt){C.changeActive(nt)},menuSize:function(){return C.screenAmount()},length:I.length,close:function(){A.close()},pick:function(){C.pick()},data:b})),A.options.closeOnUnfocus){var Me;x.on("blur",this.onBlur=function(){Me=setTimeout(function(){A.close()},100)}),x.on("focus",this.onFocus=function(){clearTimeout(Me)})}x.on("scroll",this.onScroll=function(){var nt=x.getScrollInfo(),lt=x.getWrapperElement().getBoundingClientRect();He||(He=x.getScrollInfo());var wt=K+He.top-nt.top,Or=wt-(P.pageYOffset||(k.documentElement||k.body).scrollTop);if(ee||(Or+=D.offsetHeight),Or<=lt.top||Or>=lt.bottom)return A.close();D.style.top=wt+"px",D.style.left=J+He.left-nt.left+"px"}),r.on(D,"dblclick",function(nt){var lt=v(D,nt.target||nt.srcElement);lt&<.hintId!=null&&(C.changeActive(lt.hintId),C.pick())}),r.on(D,"click",function(nt){var lt=v(D,nt.target||nt.srcElement);lt&<.hintId!=null&&(C.changeActive(lt.hintId),A.options.completeOnSingleClick&&C.pick())}),r.on(D,"mousedown",function(){setTimeout(function(){x.focus()},20)});var st=this.getSelectedHintRange();return(st.from!==0||st.to!==0)&&this.scrollToActive(),r.signal(b,"select",I[this.selectedHint],D.childNodes[this.selectedHint]),!0}eo(g,"Widget"),g.prototype={close:function(){if(this.completion.widget==this){this.completion.widget=null,this.hints.parentNode&&this.hints.parentNode.removeChild(this.hints),this.completion.cm.removeKeyMap(this.keyMap);var A=this.completion.cm.getInputField();A.removeAttribute("aria-activedescendant"),A.removeAttribute("aria-owns");var b=this.completion.cm;this.completion.options.closeOnUnfocus&&(b.off("blur",this.onBlur),b.off("focus",this.onFocus)),b.off("scroll",this.onScroll)}},disable:function(){this.completion.cm.removeKeyMap(this.keyMap);var A=this;this.keyMap={Enter:function(){A.picked=!0}},this.completion.cm.addKeyMap(this.keyMap)},pick:function(){this.completion.pick(this.data,this.selectedHint)},changeActive:function(A,b){if(A>=this.data.list.length?A=b?this.data.list.length-1:0:A<0&&(A=b?0:this.data.list.length-1),this.selectedHint!=A){var C=this.hints.childNodes[this.selectedHint];C&&(C.className=C.className.replace(" "+i,""),C.removeAttribute("aria-selected")),C=this.hints.childNodes[this.selectedHint=A],C.className+=" "+i,C.setAttribute("aria-selected","true"),this.completion.cm.getInputField().setAttribute("aria-activedescendant",C.id),this.scrollToActive(),r.signal(this.data,"select",this.data.list[this.selectedHint],C)}},scrollToActive:function(){var A=this.getSelectedHintRange(),b=this.hints.childNodes[A.from],C=this.hints.childNodes[A.to],x=this.hints.firstChild;b.offsetTopthis.hints.scrollTop+this.hints.clientHeight&&(this.hints.scrollTop=C.offsetTop+C.offsetHeight-this.hints.clientHeight+x.offsetTop)},screenAmount:function(){return Math.floor(this.hints.clientHeight/this.hints.firstChild.offsetHeight)||1},getSelectedHintRange:function(){var A=this.completion.options.scrollMargin||0;return{from:Math.max(0,this.selectedHint-A),to:Math.min(this.data.list.length-1,this.selectedHint+A)}}};function y(A,b){if(!A.somethingSelected())return b;for(var C=[],x=0;x0?D(B):V(G+1)})}eo(V,"run"),V(0)},"resolved");return k.async=!0,k.supportsSelection=!0,k}else return(x=A.getHelper(A.getCursor(),"hintWords"))?function(P){return r.hint.fromList(P,{words:x})}:r.hint.anyword?function(P,D){return r.hint.anyword(P,D)}:function(){}}eo(T,"resolveAutoHints"),r.registerHelper("hint","auto",{resolve:T}),r.registerHelper("hint","fromList",function(A,b){var C=A.getCursor(),x=A.getTokenAt(C),k,P=r.Pos(C.line,x.start),D=C;x.start,]/,closeOnPick:!0,closeOnUnfocus:!0,updateOnCursorActivity:!0,completeOnSingleClick:!0,container:null,customKeys:null,extraKeys:null,paddingForScrollbar:!0,moveOnOverlap:!0};r.defineOption("hintOptions",null)})})();jZ=Axe.exports,xxe=_t(jZ),wxe=qZ({__proto__:null,default:xxe},[jZ])});function Sy(){return UZ||(UZ=1,function(e,t){(function(r){r(Kt())})(function(r){var n=/MSIE \d/.test(navigator.userAgent)&&(document.documentMode==null||document.documentMode<8),i=r.Pos,o={"(":")>",")":"(<","[":"]>","]":"[<","{":"}>","}":"{<","<":">>",">":"<<"};function s(g){return g&&g.bracketRegex||/[(){}[\]]/}Yu(s,"bracketRegex");function l(g,y,w){var T=g.getLineHandle(y.line),S=y.ch-1,A=w&&w.afterCursor;A==null&&(A=/(^| )cm-fat-cursor($| )/.test(g.getWrapperElement().className));var b=s(w),C=!A&&S>=0&&b.test(T.text.charAt(S))&&o[T.text.charAt(S)]||b.test(T.text.charAt(S+1))&&o[T.text.charAt(++S)];if(!C)return null;var x=C.charAt(1)==">"?1:-1;if(w&&w.strict&&x>0!=(S==y.ch))return null;var k=g.getTokenTypeAt(i(y.line,S+1)),P=c(g,i(y.line,S+(x>0?1:0)),x,k,w);return P==null?null:{from:i(y.line,S),to:P&&P.pos,match:P&&P.ch==C.charAt(0),forward:x>0}}Yu(l,"findMatchingBracket");function c(g,y,w,T,S){for(var A=S&&S.maxScanLineLength||1e4,b=S&&S.maxScanLines||1e3,C=[],x=s(S),k=w>0?Math.min(y.line+b,g.lastLine()+1):Math.max(g.firstLine()-1,y.line-b),P=y.line;P!=k;P+=w){var D=g.getLine(P);if(D){var N=w>0?0:D.length-1,I=w>0?D.length:-1;if(!(D.length>A))for(P==y.line&&(N=y.ch-(w<0?1:0));N!=I;N+=w){var V=D.charAt(N);if(x.test(V)&&(T===void 0||(g.getTokenTypeAt(i(P,N+1))||"")==(T||""))){var G=o[V];if(G&&G.charAt(1)==">"==w>0)C.push(V);else if(C.length)C.pop();else return{pos:i(P,N),ch:V}}}}}return P-w==(w>0?g.lastLine():g.firstLine())?!1:null}Yu(c,"scanForBracket");function f(g,y,w){for(var T=g.state.matchBrackets.maxHighlightLineLength||1e3,S=w&&w.highlightNonMatching,A=[],b=g.listSelections(),C=0;C{ir();Exe=Object.defineProperty,Yu=(e,t)=>Exe(e,"name",{value:t,configurable:!0}),Txe={exports:{}};Yu(Sy,"requireMatchbrackets")});var zZ={};Ui(zZ,{m:()=>Oxe});function BZ(e,t){for(var r=0;rn[i]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}var Cxe,Sxe,GZ,kxe,Oxe,HZ=at(()=>{ir();NM();Cxe=Object.defineProperty,Sxe=(e,t)=>Cxe(e,"name",{value:t,configurable:!0});Sxe(BZ,"_mergeNamespaces");GZ=Sy(),kxe=_t(GZ),Oxe=BZ({__proto__:null,default:kxe},[GZ])});var YZ={};Ui(YZ,{c:()=>Pxe});function QZ(e,t){for(var r=0;rn[i]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}var Nxe,oa,Dxe,WZ,Lxe,Pxe,KZ=at(()=>{ir();Nxe=Object.defineProperty,oa=(e,t)=>Nxe(e,"name",{value:t,configurable:!0});oa(QZ,"_mergeNamespaces");Dxe={exports:{}};(function(e,t){(function(r){r(Kt())})(function(r){var n={pairs:`()[]{}''""`,closeBefore:`)]}'":;>`,triples:"",explode:"[]{}"},i=r.Pos;r.defineOption("autoCloseBrackets",!1,function(A,b,C){C&&C!=r.Init&&(A.removeKeyMap(s),A.state.closeBrackets=null),b&&(l(o(b,"pairs")),A.state.closeBrackets=b,A.addKeyMap(s))});function o(A,b){return b=="pairs"&&typeof A=="string"?A:typeof A=="object"&&A[b]!=null?A[b]:n[b]}oa(o,"getOption");var s={Backspace:m,Enter:v};function l(A){for(var b=0;b=0;k--){var D=x[k].head;A.replaceRange("",i(D.line,D.ch-1),i(D.line,D.ch+1),"+delete")}}oa(m,"handleBackspace");function v(A){var b=f(A),C=b&&o(b,"explode");if(!C||A.getOption("disableInput"))return r.Pass;for(var x=A.listSelections(),k=0;k0?{line:D.head.line,ch:D.head.ch+b}:{line:D.head.line-1};C.push({anchor:N,head:N})}A.setSelections(C,k)}oa(g,"moveSel");function y(A){var b=r.cmpPos(A.anchor,A.head)>0;return{anchor:new i(A.anchor.line,A.anchor.ch+(b?-1:1)),head:new i(A.head.line,A.head.ch+(b?1:-1))}}oa(y,"contractSelection");function w(A,b){var C=f(A);if(!C||A.getOption("disableInput"))return r.Pass;var x=o(C,"pairs"),k=x.indexOf(b);if(k==-1)return r.Pass;for(var P=o(C,"closeBefore"),D=o(C,"triples"),N=x.charAt(k+1)==b,I=A.listSelections(),V=k%2==0,G,B=0;B=0&&A.getRange(z,i(z.line,z.ch+3))==b+b+b?j="skipThree":j="skip";else if(N&&z.ch>1&&D.indexOf(b)>=0&&A.getRange(i(z.line,z.ch-2),z)==b+b){if(z.ch>2&&/\bstring/.test(A.getTokenTypeAt(i(z.line,z.ch-2))))return r.Pass;j="addFour"}else if(N){var K=z.ch==0?" ":A.getRange(i(z.line,z.ch-1),z);if(!r.isWordChar(J)&&K!=b&&!r.isWordChar(K))j="both";else return r.Pass}else if(V&&(J.length===0||/\s/.test(J)||P.indexOf(J)>-1))j="both";else return r.Pass;if(!G)G=j;else if(G!=j)return r.Pass}var ee=k%2?x.charAt(k-1):b,re=k%2?b:x.charAt(k+1);A.operation(function(){if(G=="skip")g(A,1);else if(G=="skipThree")g(A,3);else if(G=="surround"){for(var se=A.getSelections(),xe=0;xeFxe});function XZ(e,t){for(var r=0;rn[i]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}var Rxe,Xm,Mxe,ZZ,Ixe,Fxe,LM=at(()=>{ir();Rxe=Object.defineProperty,Xm=(e,t)=>Rxe(e,"name",{value:t,configurable:!0});Xm(XZ,"_mergeNamespaces");Mxe={exports:{}};(function(e,t){(function(r){r(Kt())})(function(r){function n(i){return function(o,s){var l=s.line,c=o.getLine(l);function f(T){for(var S,A=s.ch,b=0;;){var C=A<=0?-1:c.lastIndexOf(T[0],A-1);if(C==-1){if(b==1)break;b=1,A=c.length;continue}if(b==1&&Ci.lastLine())return null;var y=i.getTokenAt(r.Pos(g,1));if(/\S/.test(y.string)||(y=i.getTokenAt(r.Pos(g,y.end+1))),y.type!="keyword"||y.string!="import")return null;for(var w=g,T=Math.min(i.lastLine(),g+10);w<=T;++w){var S=i.getLine(w),A=S.indexOf(";");if(A!=-1)return{startCh:y.end,end:r.Pos(w,A)}}}Xm(s,"hasImport");var l=o.line,c=s(l),f;if(!c||s(l-1)||(f=s(l-2))&&f.end.line==l-1)return null;for(var m=c.end;;){var v=s(m.line+1);if(v==null)break;m=v.end}return{from:i.clipPos(r.Pos(l,c.startCh+1)),to:m}}),r.registerHelper("fold","include",function(i,o){function s(v){if(vi.lastLine())return null;var g=i.getTokenAt(r.Pos(v,1));if(/\S/.test(g.string)||(g=i.getTokenAt(r.Pos(v,g.end+1))),g.type=="meta"&&g.string.slice(0,8)=="#include")return g.start+8}Xm(s,"hasInclude");var l=o.line,c=s(l);if(c==null||s(l-1)!=null)return null;for(var f=l;;){var m=s(f+1);if(m==null)break;++f}return{from:r.Pos(l,c+1),to:i.clipPos(r.Pos(f))}})})})();ZZ=Mxe.exports,Ixe=_t(ZZ),Fxe=XZ({__proto__:null,default:Ixe},[ZZ])});var PM={};Ui(PM,{f:()=>Bxe});function _Z(e,t){for(var r=0;rn[i]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}function $Z(){return JZ||(JZ=1,function(e,t){(function(r){r(Kt())})(function(r){function n(l,c,f,m){if(f&&f.call){var v=f;f=null}else var v=s(l,f,"rangeFinder");typeof c=="number"&&(c=r.Pos(c,0));var g=s(l,f,"minFoldSize");function y(A){var b=v(l,c);if(!b||b.to.line-b.from.linel.firstLine();)c=r.Pos(c.line-1,0),w=y(!1);if(!(!w||w.cleared||m==="unfold")){var T=i(l,f,w);r.on(T,"mousedown",function(A){S.clear(),r.e_preventDefault(A)});var S=l.markText(w.from,w.to,{replacedWith:T,clearOnEnter:s(l,f,"clearOnEnter"),__isFold:!0});S.on("clear",function(A,b){r.signal(l,"unfold",l,A,b)}),r.signal(l,"fold",l,w.from,w.to)}}$n(n,"doFold");function i(l,c,f){var m=s(l,c,"widget");if(typeof m=="function"&&(m=m(f.from,f.to)),typeof m=="string"){var v=document.createTextNode(m);m=document.createElement("span"),m.appendChild(v),m.className="CodeMirror-foldmarker"}else m&&(m=m.cloneNode(!0));return m}$n(i,"makeWidget"),r.newFoldFunction=function(l,c){return function(f,m){n(f,m,{rangeFinder:l,widget:c})}},r.defineExtension("foldCode",function(l,c,f){n(this,l,c,f)}),r.defineExtension("isFolded",function(l){for(var c=this.findMarksAt(l),f=0;f{ir();qxe=Object.defineProperty,$n=(e,t)=>qxe(e,"name",{value:t,configurable:!0});$n(_Z,"_mergeNamespaces");jxe={exports:{}},Vxe={exports:{}};$n($Z,"requireFoldcode");(function(e,t){(function(r){r(Kt(),$Z())})(function(r){r.defineOption("foldGutter",!1,function(T,S,A){A&&A!=r.Init&&(T.clearGutter(T.state.foldGutter.options.gutter),T.state.foldGutter=null,T.off("gutterClick",v),T.off("changes",g),T.off("viewportChange",y),T.off("fold",w),T.off("unfold",w),T.off("swapDoc",g)),S&&(T.state.foldGutter=new i(o(S)),m(T),T.on("gutterClick",v),T.on("changes",g),T.on("viewportChange",y),T.on("fold",w),T.on("unfold",w),T.on("swapDoc",g))});var n=r.Pos;function i(T){this.options=T,this.from=this.to=0}$n(i,"State");function o(T){return T===!0&&(T={}),T.gutter==null&&(T.gutter="CodeMirror-foldgutter"),T.indicatorOpen==null&&(T.indicatorOpen="CodeMirror-foldgutter-open"),T.indicatorFolded==null&&(T.indicatorFolded="CodeMirror-foldgutter-folded"),T}$n(o,"parseOptions");function s(T,S){for(var A=T.findMarks(n(S,0),n(S+1,0)),b=0;b=x){if(D&&V&&D.test(V.className))return;I=l(b.indicatorOpen)}}!I&&!V||T.setGutterMarker(N,b.gutter,I)})}$n(c,"updateFoldInfo");function f(T){return new RegExp("(^|\\s)"+T+"(?:$|\\s)\\s*")}$n(f,"classTest");function m(T){var S=T.getViewport(),A=T.state.foldGutter;A&&(T.operation(function(){c(T,S.from,S.to)}),A.from=S.from,A.to=S.to)}$n(m,"updateInViewport");function v(T,S,A){var b=T.state.foldGutter;if(b){var C=b.options;if(A==C.gutter){var x=s(T,S);x?x.clear():T.foldCode(n(S,0),C)}}}$n(v,"onGutterClick");function g(T){var S=T.state.foldGutter;if(S){var A=S.options;S.from=S.to=0,clearTimeout(S.changeUpdate),S.changeUpdate=setTimeout(function(){m(T)},A.foldOnChangeTimeSpan||600)}}$n(g,"onChange");function y(T){var S=T.state.foldGutter;if(S){var A=S.options;clearTimeout(S.changeUpdate),S.changeUpdate=setTimeout(function(){var b=T.getViewport();S.from==S.to||b.from-S.to>20||S.from-b.to>20?m(T):T.operation(function(){b.fromS.to&&(c(T,S.to,b.to),S.to=b.to)})},A.updateViewportTimeSpan||400)}}$n(y,"onViewportChange");function w(T,S){var A=T.state.foldGutter;if(A){var b=S.line;b>=A.from&&bQxe});function tJ(e,t){for(var r=0;rn[i]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}var Gxe,Jr,zxe,rJ,Hxe,Qxe,iJ=at(()=>{ir();Gxe=Object.defineProperty,Jr=(e,t)=>Gxe(e,"name",{value:t,configurable:!0});Jr(tJ,"_mergeNamespaces");zxe={exports:{}};(function(e,t){(function(r){r(Kt())})(function(r){var n="CodeMirror-lint-markers",i="CodeMirror-lint-line-";function o(D,N,I){var V=document.createElement("div");V.className="CodeMirror-lint-tooltip cm-s-"+D.options.theme,V.appendChild(I.cloneNode(!0)),D.state.lint.options.selfContain?D.getWrapperElement().appendChild(V):document.body.appendChild(V);function G(B){if(!V.parentNode)return r.off(document,"mousemove",G);V.style.top=Math.max(0,B.clientY-V.offsetHeight-5)+"px",V.style.left=B.clientX+5+"px"}return Jr(G,"position"),r.on(document,"mousemove",G),G(N),V.style.opacity!=null&&(V.style.opacity=1),V}Jr(o,"showTooltip");function s(D){D.parentNode&&D.parentNode.removeChild(D)}Jr(s,"rm");function l(D){D.parentNode&&(D.style.opacity==null&&s(D),D.style.opacity=0,setTimeout(function(){s(D)},600))}Jr(l,"hideTooltip");function c(D,N,I,V){var G=o(D,N,I);function B(){r.off(V,"mouseout",B),G&&(l(G),G=null)}Jr(B,"hide");var U=setInterval(function(){if(G)for(var z=V;;z=z.parentNode){if(z&&z.nodeType==11&&(z=z.host),z==document.body)return;if(!z){B();break}}if(!G)return clearInterval(U)},400);r.on(V,"mouseout",B)}Jr(c,"showTooltipFor");function f(D,N,I){this.marked=[],N instanceof Function&&(N={getAnnotations:N}),(!N||N===!0)&&(N={}),this.options={},this.linterOptions=N.options||{};for(var V in m)this.options[V]=m[V];for(var V in N)m.hasOwnProperty(V)?N[V]!=null&&(this.options[V]=N[V]):N.options||(this.linterOptions[V]=N[V]);this.timeout=null,this.hasGutter=I,this.onMouseOver=function(G){P(D,G)},this.waitingFor=0}Jr(f,"LintState");var m={highlightLines:!1,tooltips:!0,delay:500,lintOnChange:!0,getAnnotations:null,async:!1,selfContain:null,formatAnnotation:null,onUpdateLinting:null};function v(D){var N=D.state.lint;N.hasGutter&&D.clearGutter(n),N.options.highlightLines&&g(D);for(var I=0;I-1?!1:z.push(se.message)});for(var j=null,J=I.hasGutter&&document.createDocumentFragment(),K=0;K1,V.tooltips)),V.highlightLines&&D.addLineClass(B,"wrap",i+j)}}V.onUpdateLinting&&V.onUpdateLinting(N,G,D)}}Jr(C,"updateLinting");function x(D){var N=D.state.lint;N&&(clearTimeout(N.timeout),N.timeout=setTimeout(function(){b(D)},N.options.delay))}Jr(x,"onChange");function k(D,N,I){for(var V=I.target||I.srcElement,G=document.createDocumentFragment(),B=0;BN);I++){var V=b.getLine(D++);k=k==null?V:k+` -`+V}P=P*2,C.lastIndex=x.ch;var G=C.exec(k);if(G){var B=k.slice(0,G.index).split(` -`),U=G[0].split(` -`),z=x.line+B.length-1,j=B[B.length-1].length;return{from:n(z,j),to:n(z+U.length-1,U.length==1?j+U[0].length:U[U.length-1].length),match:G}}}}ei(c,"searchRegexpForwardMultiline");function f(b,C,x){for(var k,P=0;P<=b.length;){C.lastIndex=P;var D=C.exec(b);if(!D)break;var N=D.index+D[0].length;if(N>b.length-x)break;(!k||N>k.index+k[0].length)&&(k=D),P=D.index+1}return k}ei(f,"lastMatchIn");function m(b,C,x){C=o(C,"g");for(var k=x.line,P=x.ch,D=b.firstLine();k>=D;k--,P=-1){var N=b.getLine(k),I=f(N,C,P<0?0:N.length-P);if(I)return{from:n(k,I.index),to:n(k,I.index+I[0].length),match:I}}}ei(m,"searchRegexpBackward");function v(b,C,x){if(!s(C))return m(b,C,x);C=o(C,"gm");for(var k,P=1,D=b.getLine(x.line).length-x.ch,N=x.line,I=b.firstLine();N>=I;){for(var V=0;V=I;V++){var G=b.getLine(N--);k=k==null?G:G+` -`+k}P*=2;var B=f(k,C,D);if(B){var U=k.slice(0,B.index).split(` +`; + } +});var c4=X(VN=>{ + 'use strict';Object.defineProperty(VN,'__esModule',{value:!0});VN.concatAST=Bce;function Bce(e){ + for(var t=[],r=0;r{ + 'use strict';Object.defineProperty(UN,'__esModule',{value:!0});UN.separateOperations=zce;var TA=tr(),Gce=Jl();function zce(e){ + for(var t=[],r=Object.create(null),n=0,i=e.definitions;n{ + 'use strict';Object.defineProperty(GN,'__esModule',{value:!0});GN.stripIgnoredCharacters=Hce;var m4=vb(),BN=Id(),h4=bb(),v4=qd();function Hce(e){ + for(var t=(0,m4.isSource)(e)?e:new m4.Source(e),r=t.body,n=new h4.Lexer(t),i='',o=!1;n.advance().kind!==BN.TokenKind.EOF;){ + var s=n.token,l=s.kind,c=!(0,h4.isPunctuatorTokenKind)(s.kind);o&&(c||s.kind===BN.TokenKind.SPREAD)&&(i+=' ');var f=r.slice(s.start,s.end);l===BN.TokenKind.BLOCK_STRING?i+=Qce(f):i+=f,o=c; + }return i; + }function Qce(e){ + var t=e.slice(3,-3),r=(0,v4.dedentBlockStringValue)(t);(0,v4.getBlockStringIndentation)(r)>0&&(r=` +`+r);var n=r[r.length-1],i=n==='"'&&r.slice(-4)!=='\\"""';return(i||n==='\\')&&(r+=` +`),'"""'+r+'"""'; + } +});var k4=X(du=>{ + 'use strict';Object.defineProperty(du,'__esModule',{value:!0});du.findBreakingChanges=$ce;du.findDangerousChanges=efe;du.DangerousChangeType=du.BreakingChangeType=void 0;var up=Fv(oo()),y4=Fv(_l()),Wce=Fv(jt()),C4=Fv(Gn()),Yce=Fv(Jh()),Kce=ao(),Xce=Jl(),Zce=is(),Bt=Rt(),Jce=lv();function Fv(e){ + return e&&e.__esModule?e:{default:e}; + }function b4(e,t){ + var r=Object.keys(e);if(Object.getOwnPropertySymbols){ + var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){ + return Object.getOwnPropertyDescriptor(e,i).enumerable; + })),r.push.apply(r,n); + }return r; + }function A4(e){ + for(var t=1;t{ + 'use strict';Object.defineProperty(zN,'__esModule',{value:!0});zN.findDeprecatedUsages=ufe;var sfe=ep(),lfe=yN();function ufe(e,t){ + return(0,sfe.validate)(e,t,[lfe.NoDeprecatedCustomRule]); + } +});var R4=X(Lt=>{ + 'use strict';Object.defineProperty(Lt,'__esModule',{value:!0});Object.defineProperty(Lt,'getIntrospectionQuery',{enumerable:!0,get:function(){ + return cfe.getIntrospectionQuery; + }});Object.defineProperty(Lt,'getOperationAST',{enumerable:!0,get:function(){ + return ffe.getOperationAST; + }});Object.defineProperty(Lt,'getOperationRootType',{enumerable:!0,get:function(){ + return dfe.getOperationRootType; + }});Object.defineProperty(Lt,'introspectionFromSchema',{enumerable:!0,get:function(){ + return pfe.introspectionFromSchema; + }});Object.defineProperty(Lt,'buildClientSchema',{enumerable:!0,get:function(){ + return mfe.buildClientSchema; + }});Object.defineProperty(Lt,'buildASTSchema',{enumerable:!0,get:function(){ + return N4.buildASTSchema; + }});Object.defineProperty(Lt,'buildSchema',{enumerable:!0,get:function(){ + return N4.buildSchema; + }});Object.defineProperty(Lt,'extendSchema',{enumerable:!0,get:function(){ + return D4.extendSchema; + }});Object.defineProperty(Lt,'getDescription',{enumerable:!0,get:function(){ + return D4.getDescription; + }});Object.defineProperty(Lt,'lexicographicSortSchema',{enumerable:!0,get:function(){ + return hfe.lexicographicSortSchema; + }});Object.defineProperty(Lt,'printSchema',{enumerable:!0,get:function(){ + return HN.printSchema; + }});Object.defineProperty(Lt,'printType',{enumerable:!0,get:function(){ + return HN.printType; + }});Object.defineProperty(Lt,'printIntrospectionSchema',{enumerable:!0,get:function(){ + return HN.printIntrospectionSchema; + }});Object.defineProperty(Lt,'typeFromAST',{enumerable:!0,get:function(){ + return vfe.typeFromAST; + }});Object.defineProperty(Lt,'valueFromAST',{enumerable:!0,get:function(){ + return gfe.valueFromAST; + }});Object.defineProperty(Lt,'valueFromASTUntyped',{enumerable:!0,get:function(){ + return yfe.valueFromASTUntyped; + }});Object.defineProperty(Lt,'astFromValue',{enumerable:!0,get:function(){ + return bfe.astFromValue; + }});Object.defineProperty(Lt,'TypeInfo',{enumerable:!0,get:function(){ + return L4.TypeInfo; + }});Object.defineProperty(Lt,'visitWithTypeInfo',{enumerable:!0,get:function(){ + return L4.visitWithTypeInfo; + }});Object.defineProperty(Lt,'coerceInputValue',{enumerable:!0,get:function(){ + return Afe.coerceInputValue; + }});Object.defineProperty(Lt,'concatAST',{enumerable:!0,get:function(){ + return xfe.concatAST; + }});Object.defineProperty(Lt,'separateOperations',{enumerable:!0,get:function(){ + return wfe.separateOperations; + }});Object.defineProperty(Lt,'stripIgnoredCharacters',{enumerable:!0,get:function(){ + return Efe.stripIgnoredCharacters; + }});Object.defineProperty(Lt,'isEqualType',{enumerable:!0,get:function(){ + return QN.isEqualType; + }});Object.defineProperty(Lt,'isTypeSubTypeOf',{enumerable:!0,get:function(){ + return QN.isTypeSubTypeOf; + }});Object.defineProperty(Lt,'doTypesOverlap',{enumerable:!0,get:function(){ + return QN.doTypesOverlap; + }});Object.defineProperty(Lt,'assertValidName',{enumerable:!0,get:function(){ + return P4.assertValidName; + }});Object.defineProperty(Lt,'isValidNameError',{enumerable:!0,get:function(){ + return P4.isValidNameError; + }});Object.defineProperty(Lt,'BreakingChangeType',{enumerable:!0,get:function(){ + return CA.BreakingChangeType; + }});Object.defineProperty(Lt,'DangerousChangeType',{enumerable:!0,get:function(){ + return CA.DangerousChangeType; + }});Object.defineProperty(Lt,'findBreakingChanges',{enumerable:!0,get:function(){ + return CA.findBreakingChanges; + }});Object.defineProperty(Lt,'findDangerousChanges',{enumerable:!0,get:function(){ + return CA.findDangerousChanges; + }});Object.defineProperty(Lt,'findDeprecatedUsages',{enumerable:!0,get:function(){ + return Tfe.findDeprecatedUsages; + }});var cfe=wN(),ffe=M8(),dfe=aA(),pfe=F8(),mfe=j8(),N4=$8(),D4=SN(),hfe=t4(),HN=u4(),vfe=os(),gfe=bv(),yfe=QS(),bfe=lv(),L4=Wb(),Afe=iN(),xfe=c4(),wfe=p4(),Efe=g4(),QN=rv(),P4=DS(),CA=k4(),Tfe=O4(); +});var Ur=X(_=>{ + 'use strict';Object.defineProperty(_,'__esModule',{value:!0});Object.defineProperty(_,'version',{enumerable:!0,get:function(){ + return M4.version; + }});Object.defineProperty(_,'versionInfo',{enumerable:!0,get:function(){ + return M4.versionInfo; + }});Object.defineProperty(_,'graphql',{enumerable:!0,get:function(){ + return I4.graphql; + }});Object.defineProperty(_,'graphqlSync',{enumerable:!0,get:function(){ + return I4.graphqlSync; + }});Object.defineProperty(_,'GraphQLSchema',{enumerable:!0,get:function(){ + return Ie.GraphQLSchema; + }});Object.defineProperty(_,'GraphQLDirective',{enumerable:!0,get:function(){ + return Ie.GraphQLDirective; + }});Object.defineProperty(_,'GraphQLScalarType',{enumerable:!0,get:function(){ + return Ie.GraphQLScalarType; + }});Object.defineProperty(_,'GraphQLObjectType',{enumerable:!0,get:function(){ + return Ie.GraphQLObjectType; + }});Object.defineProperty(_,'GraphQLInterfaceType',{enumerable:!0,get:function(){ + return Ie.GraphQLInterfaceType; + }});Object.defineProperty(_,'GraphQLUnionType',{enumerable:!0,get:function(){ + return Ie.GraphQLUnionType; + }});Object.defineProperty(_,'GraphQLEnumType',{enumerable:!0,get:function(){ + return Ie.GraphQLEnumType; + }});Object.defineProperty(_,'GraphQLInputObjectType',{enumerable:!0,get:function(){ + return Ie.GraphQLInputObjectType; + }});Object.defineProperty(_,'GraphQLList',{enumerable:!0,get:function(){ + return Ie.GraphQLList; + }});Object.defineProperty(_,'GraphQLNonNull',{enumerable:!0,get:function(){ + return Ie.GraphQLNonNull; + }});Object.defineProperty(_,'specifiedScalarTypes',{enumerable:!0,get:function(){ + return Ie.specifiedScalarTypes; + }});Object.defineProperty(_,'GraphQLInt',{enumerable:!0,get:function(){ + return Ie.GraphQLInt; + }});Object.defineProperty(_,'GraphQLFloat',{enumerable:!0,get:function(){ + return Ie.GraphQLFloat; + }});Object.defineProperty(_,'GraphQLString',{enumerable:!0,get:function(){ + return Ie.GraphQLString; + }});Object.defineProperty(_,'GraphQLBoolean',{enumerable:!0,get:function(){ + return Ie.GraphQLBoolean; + }});Object.defineProperty(_,'GraphQLID',{enumerable:!0,get:function(){ + return Ie.GraphQLID; + }});Object.defineProperty(_,'specifiedDirectives',{enumerable:!0,get:function(){ + return Ie.specifiedDirectives; + }});Object.defineProperty(_,'GraphQLIncludeDirective',{enumerable:!0,get:function(){ + return Ie.GraphQLIncludeDirective; + }});Object.defineProperty(_,'GraphQLSkipDirective',{enumerable:!0,get:function(){ + return Ie.GraphQLSkipDirective; + }});Object.defineProperty(_,'GraphQLDeprecatedDirective',{enumerable:!0,get:function(){ + return Ie.GraphQLDeprecatedDirective; + }});Object.defineProperty(_,'GraphQLSpecifiedByDirective',{enumerable:!0,get:function(){ + return Ie.GraphQLSpecifiedByDirective; + }});Object.defineProperty(_,'TypeKind',{enumerable:!0,get:function(){ + return Ie.TypeKind; + }});Object.defineProperty(_,'DEFAULT_DEPRECATION_REASON',{enumerable:!0,get:function(){ + return Ie.DEFAULT_DEPRECATION_REASON; + }});Object.defineProperty(_,'introspectionTypes',{enumerable:!0,get:function(){ + return Ie.introspectionTypes; + }});Object.defineProperty(_,'__Schema',{enumerable:!0,get:function(){ + return Ie.__Schema; + }});Object.defineProperty(_,'__Directive',{enumerable:!0,get:function(){ + return Ie.__Directive; + }});Object.defineProperty(_,'__DirectiveLocation',{enumerable:!0,get:function(){ + return Ie.__DirectiveLocation; + }});Object.defineProperty(_,'__Type',{enumerable:!0,get:function(){ + return Ie.__Type; + }});Object.defineProperty(_,'__Field',{enumerable:!0,get:function(){ + return Ie.__Field; + }});Object.defineProperty(_,'__InputValue',{enumerable:!0,get:function(){ + return Ie.__InputValue; + }});Object.defineProperty(_,'__EnumValue',{enumerable:!0,get:function(){ + return Ie.__EnumValue; + }});Object.defineProperty(_,'__TypeKind',{enumerable:!0,get:function(){ + return Ie.__TypeKind; + }});Object.defineProperty(_,'SchemaMetaFieldDef',{enumerable:!0,get:function(){ + return Ie.SchemaMetaFieldDef; + }});Object.defineProperty(_,'TypeMetaFieldDef',{enumerable:!0,get:function(){ + return Ie.TypeMetaFieldDef; + }});Object.defineProperty(_,'TypeNameMetaFieldDef',{enumerable:!0,get:function(){ + return Ie.TypeNameMetaFieldDef; + }});Object.defineProperty(_,'isSchema',{enumerable:!0,get:function(){ + return Ie.isSchema; + }});Object.defineProperty(_,'isDirective',{enumerable:!0,get:function(){ + return Ie.isDirective; + }});Object.defineProperty(_,'isType',{enumerable:!0,get:function(){ + return Ie.isType; + }});Object.defineProperty(_,'isScalarType',{enumerable:!0,get:function(){ + return Ie.isScalarType; + }});Object.defineProperty(_,'isObjectType',{enumerable:!0,get:function(){ + return Ie.isObjectType; + }});Object.defineProperty(_,'isInterfaceType',{enumerable:!0,get:function(){ + return Ie.isInterfaceType; + }});Object.defineProperty(_,'isUnionType',{enumerable:!0,get:function(){ + return Ie.isUnionType; + }});Object.defineProperty(_,'isEnumType',{enumerable:!0,get:function(){ + return Ie.isEnumType; + }});Object.defineProperty(_,'isInputObjectType',{enumerable:!0,get:function(){ + return Ie.isInputObjectType; + }});Object.defineProperty(_,'isListType',{enumerable:!0,get:function(){ + return Ie.isListType; + }});Object.defineProperty(_,'isNonNullType',{enumerable:!0,get:function(){ + return Ie.isNonNullType; + }});Object.defineProperty(_,'isInputType',{enumerable:!0,get:function(){ + return Ie.isInputType; + }});Object.defineProperty(_,'isOutputType',{enumerable:!0,get:function(){ + return Ie.isOutputType; + }});Object.defineProperty(_,'isLeafType',{enumerable:!0,get:function(){ + return Ie.isLeafType; + }});Object.defineProperty(_,'isCompositeType',{enumerable:!0,get:function(){ + return Ie.isCompositeType; + }});Object.defineProperty(_,'isAbstractType',{enumerable:!0,get:function(){ + return Ie.isAbstractType; + }});Object.defineProperty(_,'isWrappingType',{enumerable:!0,get:function(){ + return Ie.isWrappingType; + }});Object.defineProperty(_,'isNullableType',{enumerable:!0,get:function(){ + return Ie.isNullableType; + }});Object.defineProperty(_,'isNamedType',{enumerable:!0,get:function(){ + return Ie.isNamedType; + }});Object.defineProperty(_,'isRequiredArgument',{enumerable:!0,get:function(){ + return Ie.isRequiredArgument; + }});Object.defineProperty(_,'isRequiredInputField',{enumerable:!0,get:function(){ + return Ie.isRequiredInputField; + }});Object.defineProperty(_,'isSpecifiedScalarType',{enumerable:!0,get:function(){ + return Ie.isSpecifiedScalarType; + }});Object.defineProperty(_,'isIntrospectionType',{enumerable:!0,get:function(){ + return Ie.isIntrospectionType; + }});Object.defineProperty(_,'isSpecifiedDirective',{enumerable:!0,get:function(){ + return Ie.isSpecifiedDirective; + }});Object.defineProperty(_,'assertSchema',{enumerable:!0,get:function(){ + return Ie.assertSchema; + }});Object.defineProperty(_,'assertDirective',{enumerable:!0,get:function(){ + return Ie.assertDirective; + }});Object.defineProperty(_,'assertType',{enumerable:!0,get:function(){ + return Ie.assertType; + }});Object.defineProperty(_,'assertScalarType',{enumerable:!0,get:function(){ + return Ie.assertScalarType; + }});Object.defineProperty(_,'assertObjectType',{enumerable:!0,get:function(){ + return Ie.assertObjectType; + }});Object.defineProperty(_,'assertInterfaceType',{enumerable:!0,get:function(){ + return Ie.assertInterfaceType; + }});Object.defineProperty(_,'assertUnionType',{enumerable:!0,get:function(){ + return Ie.assertUnionType; + }});Object.defineProperty(_,'assertEnumType',{enumerable:!0,get:function(){ + return Ie.assertEnumType; + }});Object.defineProperty(_,'assertInputObjectType',{enumerable:!0,get:function(){ + return Ie.assertInputObjectType; + }});Object.defineProperty(_,'assertListType',{enumerable:!0,get:function(){ + return Ie.assertListType; + }});Object.defineProperty(_,'assertNonNullType',{enumerable:!0,get:function(){ + return Ie.assertNonNullType; + }});Object.defineProperty(_,'assertInputType',{enumerable:!0,get:function(){ + return Ie.assertInputType; + }});Object.defineProperty(_,'assertOutputType',{enumerable:!0,get:function(){ + return Ie.assertOutputType; + }});Object.defineProperty(_,'assertLeafType',{enumerable:!0,get:function(){ + return Ie.assertLeafType; + }});Object.defineProperty(_,'assertCompositeType',{enumerable:!0,get:function(){ + return Ie.assertCompositeType; + }});Object.defineProperty(_,'assertAbstractType',{enumerable:!0,get:function(){ + return Ie.assertAbstractType; + }});Object.defineProperty(_,'assertWrappingType',{enumerable:!0,get:function(){ + return Ie.assertWrappingType; + }});Object.defineProperty(_,'assertNullableType',{enumerable:!0,get:function(){ + return Ie.assertNullableType; + }});Object.defineProperty(_,'assertNamedType',{enumerable:!0,get:function(){ + return Ie.assertNamedType; + }});Object.defineProperty(_,'getNullableType',{enumerable:!0,get:function(){ + return Ie.getNullableType; + }});Object.defineProperty(_,'getNamedType',{enumerable:!0,get:function(){ + return Ie.getNamedType; + }});Object.defineProperty(_,'validateSchema',{enumerable:!0,get:function(){ + return Ie.validateSchema; + }});Object.defineProperty(_,'assertValidSchema',{enumerable:!0,get:function(){ + return Ie.assertValidSchema; + }});Object.defineProperty(_,'Token',{enumerable:!0,get:function(){ + return nr.Token; + }});Object.defineProperty(_,'Source',{enumerable:!0,get:function(){ + return nr.Source; + }});Object.defineProperty(_,'Location',{enumerable:!0,get:function(){ + return nr.Location; + }});Object.defineProperty(_,'getLocation',{enumerable:!0,get:function(){ + return nr.getLocation; + }});Object.defineProperty(_,'printLocation',{enumerable:!0,get:function(){ + return nr.printLocation; + }});Object.defineProperty(_,'printSourceLocation',{enumerable:!0,get:function(){ + return nr.printSourceLocation; + }});Object.defineProperty(_,'Lexer',{enumerable:!0,get:function(){ + return nr.Lexer; + }});Object.defineProperty(_,'TokenKind',{enumerable:!0,get:function(){ + return nr.TokenKind; + }});Object.defineProperty(_,'parse',{enumerable:!0,get:function(){ + return nr.parse; + }});Object.defineProperty(_,'parseValue',{enumerable:!0,get:function(){ + return nr.parseValue; + }});Object.defineProperty(_,'parseType',{enumerable:!0,get:function(){ + return nr.parseType; + }});Object.defineProperty(_,'print',{enumerable:!0,get:function(){ + return nr.print; + }});Object.defineProperty(_,'visit',{enumerable:!0,get:function(){ + return nr.visit; + }});Object.defineProperty(_,'visitInParallel',{enumerable:!0,get:function(){ + return nr.visitInParallel; + }});Object.defineProperty(_,'getVisitFn',{enumerable:!0,get:function(){ + return nr.getVisitFn; + }});Object.defineProperty(_,'BREAK',{enumerable:!0,get:function(){ + return nr.BREAK; + }});Object.defineProperty(_,'Kind',{enumerable:!0,get:function(){ + return nr.Kind; + }});Object.defineProperty(_,'DirectiveLocation',{enumerable:!0,get:function(){ + return nr.DirectiveLocation; + }});Object.defineProperty(_,'isDefinitionNode',{enumerable:!0,get:function(){ + return nr.isDefinitionNode; + }});Object.defineProperty(_,'isExecutableDefinitionNode',{enumerable:!0,get:function(){ + return nr.isExecutableDefinitionNode; + }});Object.defineProperty(_,'isSelectionNode',{enumerable:!0,get:function(){ + return nr.isSelectionNode; + }});Object.defineProperty(_,'isValueNode',{enumerable:!0,get:function(){ + return nr.isValueNode; + }});Object.defineProperty(_,'isTypeNode',{enumerable:!0,get:function(){ + return nr.isTypeNode; + }});Object.defineProperty(_,'isTypeSystemDefinitionNode',{enumerable:!0,get:function(){ + return nr.isTypeSystemDefinitionNode; + }});Object.defineProperty(_,'isTypeDefinitionNode',{enumerable:!0,get:function(){ + return nr.isTypeDefinitionNode; + }});Object.defineProperty(_,'isTypeSystemExtensionNode',{enumerable:!0,get:function(){ + return nr.isTypeSystemExtensionNode; + }});Object.defineProperty(_,'isTypeExtensionNode',{enumerable:!0,get:function(){ + return nr.isTypeExtensionNode; + }});Object.defineProperty(_,'execute',{enumerable:!0,get:function(){ + return cp.execute; + }});Object.defineProperty(_,'executeSync',{enumerable:!0,get:function(){ + return cp.executeSync; + }});Object.defineProperty(_,'defaultFieldResolver',{enumerable:!0,get:function(){ + return cp.defaultFieldResolver; + }});Object.defineProperty(_,'defaultTypeResolver',{enumerable:!0,get:function(){ + return cp.defaultTypeResolver; + }});Object.defineProperty(_,'responsePathAsArray',{enumerable:!0,get:function(){ + return cp.responsePathAsArray; + }});Object.defineProperty(_,'getDirectiveValues',{enumerable:!0,get:function(){ + return cp.getDirectiveValues; + }});Object.defineProperty(_,'subscribe',{enumerable:!0,get:function(){ + return F4.subscribe; + }});Object.defineProperty(_,'createSourceEventStream',{enumerable:!0,get:function(){ + return F4.createSourceEventStream; + }});Object.defineProperty(_,'validate',{enumerable:!0,get:function(){ + return St.validate; + }});Object.defineProperty(_,'ValidationContext',{enumerable:!0,get:function(){ + return St.ValidationContext; + }});Object.defineProperty(_,'specifiedRules',{enumerable:!0,get:function(){ + return St.specifiedRules; + }});Object.defineProperty(_,'ExecutableDefinitionsRule',{enumerable:!0,get:function(){ + return St.ExecutableDefinitionsRule; + }});Object.defineProperty(_,'FieldsOnCorrectTypeRule',{enumerable:!0,get:function(){ + return St.FieldsOnCorrectTypeRule; + }});Object.defineProperty(_,'FragmentsOnCompositeTypesRule',{enumerable:!0,get:function(){ + return St.FragmentsOnCompositeTypesRule; + }});Object.defineProperty(_,'KnownArgumentNamesRule',{enumerable:!0,get:function(){ + return St.KnownArgumentNamesRule; + }});Object.defineProperty(_,'KnownDirectivesRule',{enumerable:!0,get:function(){ + return St.KnownDirectivesRule; + }});Object.defineProperty(_,'KnownFragmentNamesRule',{enumerable:!0,get:function(){ + return St.KnownFragmentNamesRule; + }});Object.defineProperty(_,'KnownTypeNamesRule',{enumerable:!0,get:function(){ + return St.KnownTypeNamesRule; + }});Object.defineProperty(_,'LoneAnonymousOperationRule',{enumerable:!0,get:function(){ + return St.LoneAnonymousOperationRule; + }});Object.defineProperty(_,'NoFragmentCyclesRule',{enumerable:!0,get:function(){ + return St.NoFragmentCyclesRule; + }});Object.defineProperty(_,'NoUndefinedVariablesRule',{enumerable:!0,get:function(){ + return St.NoUndefinedVariablesRule; + }});Object.defineProperty(_,'NoUnusedFragmentsRule',{enumerable:!0,get:function(){ + return St.NoUnusedFragmentsRule; + }});Object.defineProperty(_,'NoUnusedVariablesRule',{enumerable:!0,get:function(){ + return St.NoUnusedVariablesRule; + }});Object.defineProperty(_,'OverlappingFieldsCanBeMergedRule',{enumerable:!0,get:function(){ + return St.OverlappingFieldsCanBeMergedRule; + }});Object.defineProperty(_,'PossibleFragmentSpreadsRule',{enumerable:!0,get:function(){ + return St.PossibleFragmentSpreadsRule; + }});Object.defineProperty(_,'ProvidedRequiredArgumentsRule',{enumerable:!0,get:function(){ + return St.ProvidedRequiredArgumentsRule; + }});Object.defineProperty(_,'ScalarLeafsRule',{enumerable:!0,get:function(){ + return St.ScalarLeafsRule; + }});Object.defineProperty(_,'SingleFieldSubscriptionsRule',{enumerable:!0,get:function(){ + return St.SingleFieldSubscriptionsRule; + }});Object.defineProperty(_,'UniqueArgumentNamesRule',{enumerable:!0,get:function(){ + return St.UniqueArgumentNamesRule; + }});Object.defineProperty(_,'UniqueDirectivesPerLocationRule',{enumerable:!0,get:function(){ + return St.UniqueDirectivesPerLocationRule; + }});Object.defineProperty(_,'UniqueFragmentNamesRule',{enumerable:!0,get:function(){ + return St.UniqueFragmentNamesRule; + }});Object.defineProperty(_,'UniqueInputFieldNamesRule',{enumerable:!0,get:function(){ + return St.UniqueInputFieldNamesRule; + }});Object.defineProperty(_,'UniqueOperationNamesRule',{enumerable:!0,get:function(){ + return St.UniqueOperationNamesRule; + }});Object.defineProperty(_,'UniqueVariableNamesRule',{enumerable:!0,get:function(){ + return St.UniqueVariableNamesRule; + }});Object.defineProperty(_,'ValuesOfCorrectTypeRule',{enumerable:!0,get:function(){ + return St.ValuesOfCorrectTypeRule; + }});Object.defineProperty(_,'VariablesAreInputTypesRule',{enumerable:!0,get:function(){ + return St.VariablesAreInputTypesRule; + }});Object.defineProperty(_,'VariablesInAllowedPositionRule',{enumerable:!0,get:function(){ + return St.VariablesInAllowedPositionRule; + }});Object.defineProperty(_,'LoneSchemaDefinitionRule',{enumerable:!0,get:function(){ + return St.LoneSchemaDefinitionRule; + }});Object.defineProperty(_,'UniqueOperationTypesRule',{enumerable:!0,get:function(){ + return St.UniqueOperationTypesRule; + }});Object.defineProperty(_,'UniqueTypeNamesRule',{enumerable:!0,get:function(){ + return St.UniqueTypeNamesRule; + }});Object.defineProperty(_,'UniqueEnumValueNamesRule',{enumerable:!0,get:function(){ + return St.UniqueEnumValueNamesRule; + }});Object.defineProperty(_,'UniqueFieldDefinitionNamesRule',{enumerable:!0,get:function(){ + return St.UniqueFieldDefinitionNamesRule; + }});Object.defineProperty(_,'UniqueDirectiveNamesRule',{enumerable:!0,get:function(){ + return St.UniqueDirectiveNamesRule; + }});Object.defineProperty(_,'PossibleTypeExtensionsRule',{enumerable:!0,get:function(){ + return St.PossibleTypeExtensionsRule; + }});Object.defineProperty(_,'NoDeprecatedCustomRule',{enumerable:!0,get:function(){ + return St.NoDeprecatedCustomRule; + }});Object.defineProperty(_,'NoSchemaIntrospectionCustomRule',{enumerable:!0,get:function(){ + return St.NoSchemaIntrospectionCustomRule; + }});Object.defineProperty(_,'GraphQLError',{enumerable:!0,get:function(){ + return qv.GraphQLError; + }});Object.defineProperty(_,'syntaxError',{enumerable:!0,get:function(){ + return qv.syntaxError; + }});Object.defineProperty(_,'locatedError',{enumerable:!0,get:function(){ + return qv.locatedError; + }});Object.defineProperty(_,'printError',{enumerable:!0,get:function(){ + return qv.printError; + }});Object.defineProperty(_,'formatError',{enumerable:!0,get:function(){ + return qv.formatError; + }});Object.defineProperty(_,'getIntrospectionQuery',{enumerable:!0,get:function(){ + return Mt.getIntrospectionQuery; + }});Object.defineProperty(_,'getOperationAST',{enumerable:!0,get:function(){ + return Mt.getOperationAST; + }});Object.defineProperty(_,'getOperationRootType',{enumerable:!0,get:function(){ + return Mt.getOperationRootType; + }});Object.defineProperty(_,'introspectionFromSchema',{enumerable:!0,get:function(){ + return Mt.introspectionFromSchema; + }});Object.defineProperty(_,'buildClientSchema',{enumerable:!0,get:function(){ + return Mt.buildClientSchema; + }});Object.defineProperty(_,'buildASTSchema',{enumerable:!0,get:function(){ + return Mt.buildASTSchema; + }});Object.defineProperty(_,'buildSchema',{enumerable:!0,get:function(){ + return Mt.buildSchema; + }});Object.defineProperty(_,'getDescription',{enumerable:!0,get:function(){ + return Mt.getDescription; + }});Object.defineProperty(_,'extendSchema',{enumerable:!0,get:function(){ + return Mt.extendSchema; + }});Object.defineProperty(_,'lexicographicSortSchema',{enumerable:!0,get:function(){ + return Mt.lexicographicSortSchema; + }});Object.defineProperty(_,'printSchema',{enumerable:!0,get:function(){ + return Mt.printSchema; + }});Object.defineProperty(_,'printType',{enumerable:!0,get:function(){ + return Mt.printType; + }});Object.defineProperty(_,'printIntrospectionSchema',{enumerable:!0,get:function(){ + return Mt.printIntrospectionSchema; + }});Object.defineProperty(_,'typeFromAST',{enumerable:!0,get:function(){ + return Mt.typeFromAST; + }});Object.defineProperty(_,'valueFromAST',{enumerable:!0,get:function(){ + return Mt.valueFromAST; + }});Object.defineProperty(_,'valueFromASTUntyped',{enumerable:!0,get:function(){ + return Mt.valueFromASTUntyped; + }});Object.defineProperty(_,'astFromValue',{enumerable:!0,get:function(){ + return Mt.astFromValue; + }});Object.defineProperty(_,'TypeInfo',{enumerable:!0,get:function(){ + return Mt.TypeInfo; + }});Object.defineProperty(_,'visitWithTypeInfo',{enumerable:!0,get:function(){ + return Mt.visitWithTypeInfo; + }});Object.defineProperty(_,'coerceInputValue',{enumerable:!0,get:function(){ + return Mt.coerceInputValue; + }});Object.defineProperty(_,'concatAST',{enumerable:!0,get:function(){ + return Mt.concatAST; + }});Object.defineProperty(_,'separateOperations',{enumerable:!0,get:function(){ + return Mt.separateOperations; + }});Object.defineProperty(_,'stripIgnoredCharacters',{enumerable:!0,get:function(){ + return Mt.stripIgnoredCharacters; + }});Object.defineProperty(_,'isEqualType',{enumerable:!0,get:function(){ + return Mt.isEqualType; + }});Object.defineProperty(_,'isTypeSubTypeOf',{enumerable:!0,get:function(){ + return Mt.isTypeSubTypeOf; + }});Object.defineProperty(_,'doTypesOverlap',{enumerable:!0,get:function(){ + return Mt.doTypesOverlap; + }});Object.defineProperty(_,'assertValidName',{enumerable:!0,get:function(){ + return Mt.assertValidName; + }});Object.defineProperty(_,'isValidNameError',{enumerable:!0,get:function(){ + return Mt.isValidNameError; + }});Object.defineProperty(_,'BreakingChangeType',{enumerable:!0,get:function(){ + return Mt.BreakingChangeType; + }});Object.defineProperty(_,'DangerousChangeType',{enumerable:!0,get:function(){ + return Mt.DangerousChangeType; + }});Object.defineProperty(_,'findBreakingChanges',{enumerable:!0,get:function(){ + return Mt.findBreakingChanges; + }});Object.defineProperty(_,'findDangerousChanges',{enumerable:!0,get:function(){ + return Mt.findDangerousChanges; + }});Object.defineProperty(_,'findDeprecatedUsages',{enumerable:!0,get:function(){ + return Mt.findDeprecatedUsages; + }});var M4=Z3(),I4=s8(),Ie=u8(),nr=d8(),cp=p8(),F4=k8(),St=N8(),qv=P8(),Mt=R4(); +});function _N(e){ + let t;return $N(e,r=>{ + switch(r.kind){ + case'Query':case'ShortQuery':case'Mutation':case'Subscription':case'FragmentDefinition':t=r;break; + } + }),t; +}function NA(e,t,r){ + return r===xa.SchemaMetaFieldDef.name&&e.getQueryType()===t?xa.SchemaMetaFieldDef:r===xa.TypeMetaFieldDef.name&&e.getQueryType()===t?xa.TypeMetaFieldDef:r===xa.TypeNameMetaFieldDef.name&&(0,xa.isCompositeType)(t)?xa.TypeNameMetaFieldDef:'getFields'in t?t.getFields()[r]:null; +}function $N(e,t){ + let r=[],n=e;for(;n?.kind;)r.push(n),n=n.prevState;for(let i=r.length-1;i>=0;i--)t(r[i]); +}function pu(e){ + let t=Object.keys(e),r=t.length,n=new Array(r);for(let i=0;i!n.isDeprecated);let r=e.map(n=>({proximity:Ffe(Q4(n.label),t),entry:n}));return JN(JN(r,n=>n.proximity<=2),n=>!n.entry.isDeprecated).sort((n,i)=>(n.entry.isDeprecated?1:0)-(i.entry.isDeprecated?1:0)||n.proximity-i.proximity||n.entry.label.length-i.entry.label.length).map(n=>n.entry); +}function JN(e,t){ + let r=e.filter(t);return r.length===0?e:r; +}function Q4(e){ + return e.toLowerCase().replaceAll(/\W/g,''); +}function Ffe(e,t){ + let r=qfe(t,e);return e.length>t.length&&(r-=e.length-t.length-1,r+=e.indexOf(t)===0?0:.5),r; +}function qfe(e,t){ + let r,n,i=[],o=e.length,s=t.length;for(r=0;r<=o;r++)i[r]=[r];for(n=1;n<=s;n++)i[0][n]=n;for(r=1;r<=o;r++)for(n=1;n<=s;n++){ + let l=e[r-1]===t[n-1]?0:1;i[r][n]=Math.min(i[r-1][n]+1,i[r][n-1]+1,i[r-1][n-1]+l),r>1&&n>1&&e[r-1]===t[n-2]&&e[r-2]===t[n-1]&&(i[r][n]=Math.min(i[r][n],i[r-2][n-2]+l)); + }return i[o][s]; +}var xa,eD=at(()=>{ + xa=fe(Ur()); +});var W4,tD,Y4,DA,wa,Yr,LA,K4,rD,X4,Z4,J4,_4,nD,$4,e6,t6,PA,pp,mp,iD,hp,r6,oD,aD,sD,lD,uD,n6,i6,cD,o6,fD,Vv,a6,Uv,s6,l6,u6,c6,f6,d6,RA,p6,m6,h6,v6,g6,y6,b6,A6,x6,w6,E6,MA,T6,C6,S6,k6,O6,N6,D6,L6,P6,R6,M6,I6,F6,dD,pD,q6,j6,V6,U6,B6,G6,z6,H6,Q6,mD,ne,W6=at(()=>{ + 'use strict';(function(e){ + function t(r){ + return typeof r=='string'; + }e.is=t; + })(W4||(W4={}));(function(e){ + function t(r){ + return typeof r=='string'; + }e.is=t; + })(tD||(tD={}));(function(e){ + e.MIN_VALUE=-2147483648,e.MAX_VALUE=2147483647;function t(r){ + return typeof r=='number'&&e.MIN_VALUE<=r&&r<=e.MAX_VALUE; + }e.is=t; + })(Y4||(Y4={}));(function(e){ + e.MIN_VALUE=0,e.MAX_VALUE=2147483647;function t(r){ + return typeof r=='number'&&e.MIN_VALUE<=r&&r<=e.MAX_VALUE; + }e.is=t; + })(DA||(DA={}));(function(e){ + function t(n,i){ + return n===Number.MAX_VALUE&&(n=DA.MAX_VALUE),i===Number.MAX_VALUE&&(i=DA.MAX_VALUE),{line:n,character:i}; + }e.create=t;function r(n){ + let i=n;return ne.objectLiteral(i)&&ne.uinteger(i.line)&&ne.uinteger(i.character); + }e.is=r; + })(wa||(wa={}));(function(e){ + function t(n,i,o,s){ + if(ne.uinteger(n)&&ne.uinteger(i)&&ne.uinteger(o)&&ne.uinteger(s))return{start:wa.create(n,i),end:wa.create(o,s)};if(wa.is(n)&&wa.is(i))return{start:n,end:i};throw new Error(`Range#create called with invalid arguments[${n}, ${i}, ${o}, ${s}]`); + }e.create=t;function r(n){ + let i=n;return ne.objectLiteral(i)&&wa.is(i.start)&&wa.is(i.end); + }e.is=r; + })(Yr||(Yr={}));(function(e){ + function t(n,i){ + return{uri:n,range:i}; + }e.create=t;function r(n){ + let i=n;return ne.objectLiteral(i)&&Yr.is(i.range)&&(ne.string(i.uri)||ne.undefined(i.uri)); + }e.is=r; + })(LA||(LA={}));(function(e){ + function t(n,i,o,s){ + return{targetUri:n,targetRange:i,targetSelectionRange:o,originSelectionRange:s}; + }e.create=t;function r(n){ + let i=n;return ne.objectLiteral(i)&&Yr.is(i.targetRange)&&ne.string(i.targetUri)&&Yr.is(i.targetSelectionRange)&&(Yr.is(i.originSelectionRange)||ne.undefined(i.originSelectionRange)); + }e.is=r; + })(K4||(K4={}));(function(e){ + function t(n,i,o,s){ + return{red:n,green:i,blue:o,alpha:s}; + }e.create=t;function r(n){ + let i=n;return ne.objectLiteral(i)&&ne.numberRange(i.red,0,1)&&ne.numberRange(i.green,0,1)&&ne.numberRange(i.blue,0,1)&&ne.numberRange(i.alpha,0,1); + }e.is=r; + })(rD||(rD={}));(function(e){ + function t(n,i){ + return{range:n,color:i}; + }e.create=t;function r(n){ + let i=n;return ne.objectLiteral(i)&&Yr.is(i.range)&&rD.is(i.color); + }e.is=r; + })(X4||(X4={}));(function(e){ + function t(n,i,o){ + return{label:n,textEdit:i,additionalTextEdits:o}; + }e.create=t;function r(n){ + let i=n;return ne.objectLiteral(i)&&ne.string(i.label)&&(ne.undefined(i.textEdit)||mp.is(i))&&(ne.undefined(i.additionalTextEdits)||ne.typedArray(i.additionalTextEdits,mp.is)); + }e.is=r; + })(Z4||(Z4={}));(function(e){ + e.Comment='comment',e.Imports='imports',e.Region='region'; + })(J4||(J4={}));(function(e){ + function t(n,i,o,s,l,c){ + let f={startLine:n,endLine:i};return ne.defined(o)&&(f.startCharacter=o),ne.defined(s)&&(f.endCharacter=s),ne.defined(l)&&(f.kind=l),ne.defined(c)&&(f.collapsedText=c),f; + }e.create=t;function r(n){ + let i=n;return ne.objectLiteral(i)&&ne.uinteger(i.startLine)&&ne.uinteger(i.startLine)&&(ne.undefined(i.startCharacter)||ne.uinteger(i.startCharacter))&&(ne.undefined(i.endCharacter)||ne.uinteger(i.endCharacter))&&(ne.undefined(i.kind)||ne.string(i.kind)); + }e.is=r; + })(_4||(_4={}));(function(e){ + function t(n,i){ + return{location:n,message:i}; + }e.create=t;function r(n){ + let i=n;return ne.defined(i)&&LA.is(i.location)&&ne.string(i.message); + }e.is=r; + })(nD||(nD={}));(function(e){ + e.Error=1,e.Warning=2,e.Information=3,e.Hint=4; + })($4||($4={}));(function(e){ + e.Unnecessary=1,e.Deprecated=2; + })(e6||(e6={}));(function(e){ + function t(r){ + let n=r;return ne.objectLiteral(n)&&ne.string(n.href); + }e.is=t; + })(t6||(t6={}));(function(e){ + function t(n,i,o,s,l,c){ + let f={range:n,message:i};return ne.defined(o)&&(f.severity=o),ne.defined(s)&&(f.code=s),ne.defined(l)&&(f.source=l),ne.defined(c)&&(f.relatedInformation=c),f; + }e.create=t;function r(n){ + var i;let o=n;return ne.defined(o)&&Yr.is(o.range)&&ne.string(o.message)&&(ne.number(o.severity)||ne.undefined(o.severity))&&(ne.integer(o.code)||ne.string(o.code)||ne.undefined(o.code))&&(ne.undefined(o.codeDescription)||ne.string((i=o.codeDescription)===null||i===void 0?void 0:i.href))&&(ne.string(o.source)||ne.undefined(o.source))&&(ne.undefined(o.relatedInformation)||ne.typedArray(o.relatedInformation,nD.is)); + }e.is=r; + })(PA||(PA={}));(function(e){ + function t(n,i,...o){ + let s={title:n,command:i};return ne.defined(o)&&o.length>0&&(s.arguments=o),s; + }e.create=t;function r(n){ + let i=n;return ne.defined(i)&&ne.string(i.title)&&ne.string(i.command); + }e.is=r; + })(pp||(pp={}));(function(e){ + function t(o,s){ + return{range:o,newText:s}; + }e.replace=t;function r(o,s){ + return{range:{start:o,end:o},newText:s}; + }e.insert=r;function n(o){ + return{range:o,newText:''}; + }e.del=n;function i(o){ + let s=o;return ne.objectLiteral(s)&&ne.string(s.newText)&&Yr.is(s.range); + }e.is=i; + })(mp||(mp={}));(function(e){ + function t(n,i,o){ + let s={label:n};return i!==void 0&&(s.needsConfirmation=i),o!==void 0&&(s.description=o),s; + }e.create=t;function r(n){ + let i=n;return ne.objectLiteral(i)&&ne.string(i.label)&&(ne.boolean(i.needsConfirmation)||i.needsConfirmation===void 0)&&(ne.string(i.description)||i.description===void 0); + }e.is=r; + })(iD||(iD={}));(function(e){ + function t(r){ + let n=r;return ne.string(n); + }e.is=t; + })(hp||(hp={}));(function(e){ + function t(o,s,l){ + return{range:o,newText:s,annotationId:l}; + }e.replace=t;function r(o,s,l){ + return{range:{start:o,end:o},newText:s,annotationId:l}; + }e.insert=r;function n(o,s){ + return{range:o,newText:'',annotationId:s}; + }e.del=n;function i(o){ + let s=o;return mp.is(s)&&(iD.is(s.annotationId)||hp.is(s.annotationId)); + }e.is=i; + })(r6||(r6={}));(function(e){ + function t(n,i){ + return{textDocument:n,edits:i}; + }e.create=t;function r(n){ + let i=n;return ne.defined(i)&&cD.is(i.textDocument)&&Array.isArray(i.edits); + }e.is=r; + })(oD||(oD={}));(function(e){ + function t(n,i,o){ + let s={kind:'create',uri:n};return i!==void 0&&(i.overwrite!==void 0||i.ignoreIfExists!==void 0)&&(s.options=i),o!==void 0&&(s.annotationId=o),s; + }e.create=t;function r(n){ + let i=n;return i&&i.kind==='create'&&ne.string(i.uri)&&(i.options===void 0||(i.options.overwrite===void 0||ne.boolean(i.options.overwrite))&&(i.options.ignoreIfExists===void 0||ne.boolean(i.options.ignoreIfExists)))&&(i.annotationId===void 0||hp.is(i.annotationId)); + }e.is=r; + })(aD||(aD={}));(function(e){ + function t(n,i,o,s){ + let l={kind:'rename',oldUri:n,newUri:i};return o!==void 0&&(o.overwrite!==void 0||o.ignoreIfExists!==void 0)&&(l.options=o),s!==void 0&&(l.annotationId=s),l; + }e.create=t;function r(n){ + let i=n;return i&&i.kind==='rename'&&ne.string(i.oldUri)&&ne.string(i.newUri)&&(i.options===void 0||(i.options.overwrite===void 0||ne.boolean(i.options.overwrite))&&(i.options.ignoreIfExists===void 0||ne.boolean(i.options.ignoreIfExists)))&&(i.annotationId===void 0||hp.is(i.annotationId)); + }e.is=r; + })(sD||(sD={}));(function(e){ + function t(n,i,o){ + let s={kind:'delete',uri:n};return i!==void 0&&(i.recursive!==void 0||i.ignoreIfNotExists!==void 0)&&(s.options=i),o!==void 0&&(s.annotationId=o),s; + }e.create=t;function r(n){ + let i=n;return i&&i.kind==='delete'&&ne.string(i.uri)&&(i.options===void 0||(i.options.recursive===void 0||ne.boolean(i.options.recursive))&&(i.options.ignoreIfNotExists===void 0||ne.boolean(i.options.ignoreIfNotExists)))&&(i.annotationId===void 0||hp.is(i.annotationId)); + }e.is=r; + })(lD||(lD={}));(function(e){ + function t(r){ + let n=r;return n&&(n.changes!==void 0||n.documentChanges!==void 0)&&(n.documentChanges===void 0||n.documentChanges.every(i=>ne.string(i.kind)?aD.is(i)||sD.is(i)||lD.is(i):oD.is(i))); + }e.is=t; + })(uD||(uD={}));(function(e){ + function t(n){ + return{uri:n}; + }e.create=t;function r(n){ + let i=n;return ne.defined(i)&&ne.string(i.uri); + }e.is=r; + })(n6||(n6={}));(function(e){ + function t(n,i){ + return{uri:n,version:i}; + }e.create=t;function r(n){ + let i=n;return ne.defined(i)&&ne.string(i.uri)&&ne.integer(i.version); + }e.is=r; + })(i6||(i6={}));(function(e){ + function t(n,i){ + return{uri:n,version:i}; + }e.create=t;function r(n){ + let i=n;return ne.defined(i)&&ne.string(i.uri)&&(i.version===null||ne.integer(i.version)); + }e.is=r; + })(cD||(cD={}));(function(e){ + function t(n,i,o,s){ + return{uri:n,languageId:i,version:o,text:s}; + }e.create=t;function r(n){ + let i=n;return ne.defined(i)&&ne.string(i.uri)&&ne.string(i.languageId)&&ne.integer(i.version)&&ne.string(i.text); + }e.is=r; + })(o6||(o6={}));(function(e){ + e.PlainText='plaintext',e.Markdown='markdown';function t(r){ + let n=r;return n===e.PlainText||n===e.Markdown; + }e.is=t; + })(fD||(fD={}));(function(e){ + function t(r){ + let n=r;return ne.objectLiteral(r)&&fD.is(n.kind)&&ne.string(n.value); + }e.is=t; + })(Vv||(Vv={}));(function(e){ + e.Text=1,e.Method=2,e.Function=3,e.Constructor=4,e.Field=5,e.Variable=6,e.Class=7,e.Interface=8,e.Module=9,e.Property=10,e.Unit=11,e.Value=12,e.Enum=13,e.Keyword=14,e.Snippet=15,e.Color=16,e.File=17,e.Reference=18,e.Folder=19,e.EnumMember=20,e.Constant=21,e.Struct=22,e.Event=23,e.Operator=24,e.TypeParameter=25; + })(a6||(a6={}));(function(e){ + e.PlainText=1,e.Snippet=2; + })(Uv||(Uv={}));(function(e){ + e.Deprecated=1; + })(s6||(s6={}));(function(e){ + function t(n,i,o){ + return{newText:n,insert:i,replace:o}; + }e.create=t;function r(n){ + let i=n;return i&&ne.string(i.newText)&&Yr.is(i.insert)&&Yr.is(i.replace); + }e.is=r; + })(l6||(l6={}));(function(e){ + e.asIs=1,e.adjustIndentation=2; + })(u6||(u6={}));(function(e){ + function t(r){ + let n=r;return n&&(ne.string(n.detail)||n.detail===void 0)&&(ne.string(n.description)||n.description===void 0); + }e.is=t; + })(c6||(c6={}));(function(e){ + function t(r){ + return{label:r}; + }e.create=t; + })(f6||(f6={}));(function(e){ + function t(r,n){ + return{items:r||[],isIncomplete:!!n}; + }e.create=t; + })(d6||(d6={}));(function(e){ + function t(n){ + return n.replace(/[\\`*_{}[\]()#+\-.!]/g,'\\$&'); + }e.fromPlainText=t;function r(n){ + let i=n;return ne.string(i)||ne.objectLiteral(i)&&ne.string(i.language)&&ne.string(i.value); + }e.is=r; + })(RA||(RA={}));(function(e){ + function t(r){ + let n=r;return!!n&&ne.objectLiteral(n)&&(Vv.is(n.contents)||RA.is(n.contents)||ne.typedArray(n.contents,RA.is))&&(r.range===void 0||Yr.is(r.range)); + }e.is=t; + })(p6||(p6={}));(function(e){ + function t(r,n){ + return n?{label:r,documentation:n}:{label:r}; + }e.create=t; + })(m6||(m6={}));(function(e){ + function t(r,n,...i){ + let o={label:r};return ne.defined(n)&&(o.documentation=n),ne.defined(i)?o.parameters=i:o.parameters=[],o; + }e.create=t; + })(h6||(h6={}));(function(e){ + e.Text=1,e.Read=2,e.Write=3; + })(v6||(v6={}));(function(e){ + function t(r,n){ + let i={range:r};return ne.number(n)&&(i.kind=n),i; + }e.create=t; + })(g6||(g6={}));(function(e){ + e.File=1,e.Module=2,e.Namespace=3,e.Package=4,e.Class=5,e.Method=6,e.Property=7,e.Field=8,e.Constructor=9,e.Enum=10,e.Interface=11,e.Function=12,e.Variable=13,e.Constant=14,e.String=15,e.Number=16,e.Boolean=17,e.Array=18,e.Object=19,e.Key=20,e.Null=21,e.EnumMember=22,e.Struct=23,e.Event=24,e.Operator=25,e.TypeParameter=26; + })(y6||(y6={}));(function(e){ + e.Deprecated=1; + })(b6||(b6={}));(function(e){ + function t(r,n,i,o,s){ + let l={name:r,kind:n,location:{uri:o,range:i}};return s&&(l.containerName=s),l; + }e.create=t; + })(A6||(A6={}));(function(e){ + function t(r,n,i,o){ + return o!==void 0?{name:r,kind:n,location:{uri:i,range:o}}:{name:r,kind:n,location:{uri:i}}; + }e.create=t; + })(x6||(x6={}));(function(e){ + function t(n,i,o,s,l,c){ + let f={name:n,detail:i,kind:o,range:s,selectionRange:l};return c!==void 0&&(f.children=c),f; + }e.create=t;function r(n){ + let i=n;return i&&ne.string(i.name)&&ne.number(i.kind)&&Yr.is(i.range)&&Yr.is(i.selectionRange)&&(i.detail===void 0||ne.string(i.detail))&&(i.deprecated===void 0||ne.boolean(i.deprecated))&&(i.children===void 0||Array.isArray(i.children))&&(i.tags===void 0||Array.isArray(i.tags)); + }e.is=r; + })(w6||(w6={}));(function(e){ + e.Empty='',e.QuickFix='quickfix',e.Refactor='refactor',e.RefactorExtract='refactor.extract',e.RefactorInline='refactor.inline',e.RefactorRewrite='refactor.rewrite',e.Source='source',e.SourceOrganizeImports='source.organizeImports',e.SourceFixAll='source.fixAll'; + })(E6||(E6={}));(function(e){ + e.Invoked=1,e.Automatic=2; + })(MA||(MA={}));(function(e){ + function t(n,i,o){ + let s={diagnostics:n};return i!=null&&(s.only=i),o!=null&&(s.triggerKind=o),s; + }e.create=t;function r(n){ + let i=n;return ne.defined(i)&&ne.typedArray(i.diagnostics,PA.is)&&(i.only===void 0||ne.typedArray(i.only,ne.string))&&(i.triggerKind===void 0||i.triggerKind===MA.Invoked||i.triggerKind===MA.Automatic); + }e.is=r; + })(T6||(T6={}));(function(e){ + function t(n,i,o){ + let s={title:n},l=!0;return typeof i=='string'?(l=!1,s.kind=i):pp.is(i)?s.command=i:s.edit=i,l&&o!==void 0&&(s.kind=o),s; + }e.create=t;function r(n){ + let i=n;return i&&ne.string(i.title)&&(i.diagnostics===void 0||ne.typedArray(i.diagnostics,PA.is))&&(i.kind===void 0||ne.string(i.kind))&&(i.edit!==void 0||i.command!==void 0)&&(i.command===void 0||pp.is(i.command))&&(i.isPreferred===void 0||ne.boolean(i.isPreferred))&&(i.edit===void 0||uD.is(i.edit)); + }e.is=r; + })(C6||(C6={}));(function(e){ + function t(n,i){ + let o={range:n};return ne.defined(i)&&(o.data=i),o; + }e.create=t;function r(n){ + let i=n;return ne.defined(i)&&Yr.is(i.range)&&(ne.undefined(i.command)||pp.is(i.command)); + }e.is=r; + })(S6||(S6={}));(function(e){ + function t(n,i){ + return{tabSize:n,insertSpaces:i}; + }e.create=t;function r(n){ + let i=n;return ne.defined(i)&&ne.uinteger(i.tabSize)&&ne.boolean(i.insertSpaces); + }e.is=r; + })(k6||(k6={}));(function(e){ + function t(n,i,o){ + return{range:n,target:i,data:o}; + }e.create=t;function r(n){ + let i=n;return ne.defined(i)&&Yr.is(i.range)&&(ne.undefined(i.target)||ne.string(i.target)); + }e.is=r; + })(O6||(O6={}));(function(e){ + function t(n,i){ + return{range:n,parent:i}; + }e.create=t;function r(n){ + let i=n;return ne.objectLiteral(i)&&Yr.is(i.range)&&(i.parent===void 0||e.is(i.parent)); + }e.is=r; + })(N6||(N6={}));(function(e){ + e.namespace='namespace',e.type='type',e.class='class',e.enum='enum',e.interface='interface',e.struct='struct',e.typeParameter='typeParameter',e.parameter='parameter',e.variable='variable',e.property='property',e.enumMember='enumMember',e.event='event',e.function='function',e.method='method',e.macro='macro',e.keyword='keyword',e.modifier='modifier',e.comment='comment',e.string='string',e.number='number',e.regexp='regexp',e.operator='operator',e.decorator='decorator'; + })(D6||(D6={}));(function(e){ + e.declaration='declaration',e.definition='definition',e.readonly='readonly',e.static='static',e.deprecated='deprecated',e.abstract='abstract',e.async='async',e.modification='modification',e.documentation='documentation',e.defaultLibrary='defaultLibrary'; + })(L6||(L6={}));(function(e){ + function t(r){ + let n=r;return ne.objectLiteral(n)&&(n.resultId===void 0||typeof n.resultId=='string')&&Array.isArray(n.data)&&(n.data.length===0||typeof n.data[0]=='number'); + }e.is=t; + })(P6||(P6={}));(function(e){ + function t(n,i){ + return{range:n,text:i}; + }e.create=t;function r(n){ + let i=n;return i!=null&&Yr.is(i.range)&&ne.string(i.text); + }e.is=r; + })(R6||(R6={}));(function(e){ + function t(n,i,o){ + return{range:n,variableName:i,caseSensitiveLookup:o}; + }e.create=t;function r(n){ + let i=n;return i!=null&&Yr.is(i.range)&&ne.boolean(i.caseSensitiveLookup)&&(ne.string(i.variableName)||i.variableName===void 0); + }e.is=r; + })(M6||(M6={}));(function(e){ + function t(n,i){ + return{range:n,expression:i}; + }e.create=t;function r(n){ + let i=n;return i!=null&&Yr.is(i.range)&&(ne.string(i.expression)||i.expression===void 0); + }e.is=r; + })(I6||(I6={}));(function(e){ + function t(n,i){ + return{frameId:n,stoppedLocation:i}; + }e.create=t;function r(n){ + let i=n;return ne.defined(i)&&Yr.is(n.stoppedLocation); + }e.is=r; + })(F6||(F6={}));(function(e){ + e.Type=1,e.Parameter=2;function t(r){ + return r===1||r===2; + }e.is=t; + })(dD||(dD={}));(function(e){ + function t(n){ + return{value:n}; + }e.create=t;function r(n){ + let i=n;return ne.objectLiteral(i)&&(i.tooltip===void 0||ne.string(i.tooltip)||Vv.is(i.tooltip))&&(i.location===void 0||LA.is(i.location))&&(i.command===void 0||pp.is(i.command)); + }e.is=r; + })(pD||(pD={}));(function(e){ + function t(n,i,o){ + let s={position:n,label:i};return o!==void 0&&(s.kind=o),s; + }e.create=t;function r(n){ + let i=n;return ne.objectLiteral(i)&&wa.is(i.position)&&(ne.string(i.label)||ne.typedArray(i.label,pD.is))&&(i.kind===void 0||dD.is(i.kind))&&i.textEdits===void 0||ne.typedArray(i.textEdits,mp.is)&&(i.tooltip===void 0||ne.string(i.tooltip)||Vv.is(i.tooltip))&&(i.paddingLeft===void 0||ne.boolean(i.paddingLeft))&&(i.paddingRight===void 0||ne.boolean(i.paddingRight)); + }e.is=r; + })(q6||(q6={}));(function(e){ + function t(r){ + return{kind:'snippet',value:r}; + }e.createSnippet=t; + })(j6||(j6={}));(function(e){ + function t(r,n,i,o){ + return{insertText:r,filterText:n,range:i,command:o}; + }e.create=t; + })(V6||(V6={}));(function(e){ + function t(r){ + return{items:r}; + }e.create=t; + })(U6||(U6={}));(function(e){ + e.Invoked=0,e.Automatic=1; + })(B6||(B6={}));(function(e){ + function t(r,n){ + return{range:r,text:n}; + }e.create=t; + })(G6||(G6={}));(function(e){ + function t(r,n){ + return{triggerKind:r,selectedCompletionInfo:n}; + }e.create=t; + })(z6||(z6={}));(function(e){ + function t(r){ + let n=r;return ne.objectLiteral(n)&&tD.is(n.uri)&&ne.string(n.name); + }e.is=t; + })(H6||(H6={}));(function(e){ + function t(o,s,l,c){ + return new mD(o,s,l,c); + }e.create=t;function r(o){ + let s=o;return!!(ne.defined(s)&&ne.string(s.uri)&&(ne.undefined(s.languageId)||ne.string(s.languageId))&&ne.uinteger(s.lineCount)&&ne.func(s.getText)&&ne.func(s.positionAt)&&ne.func(s.offsetAt)); + }e.is=r;function n(o,s){ + let l=o.getText(),c=i(s,(m,v)=>{ + let g=m.range.start.line-v.range.start.line;return g===0?m.range.start.character-v.range.start.character:g; + }),f=l.length;for(let m=c.length-1;m>=0;m--){ + let v=c[m],g=o.offsetAt(v.range.start),y=o.offsetAt(v.range.end);if(y<=f)l=l.substring(0,g)+v.newText+l.substring(y,l.length);else throw new Error('Overlapping edit');f=g; + }return l; + }e.applyEdits=n;function i(o,s){ + if(o.length<=1)return o;let l=o.length/2|0,c=o.slice(0,l),f=o.slice(l);i(c,s),i(f,s);let m=0,v=0,g=0;for(;m0&&t.push(r.length),this._lineOffsets=t; + }return this._lineOffsets; + }positionAt(t){ + t=Math.max(Math.min(t,this._content.length),0);let r=this.getLineOffsets(),n=0,i=r.length;if(i===0)return wa.create(0,t);for(;nt?i=s:n=s+1; + }let o=n-1;return wa.create(o,t-r[o]); + }offsetAt(t){ + let r=this.getLineOffsets();if(t.line>=r.length)return this._content.length;if(t.line<0)return 0;let n=r[t.line],i=t.line+1'u'; + }e.undefined=n;function i(y){ + return y===!0||y===!1; + }e.boolean=i;function o(y){ + return t.call(y)==='[object String]'; + }e.string=o;function s(y){ + return t.call(y)==='[object Number]'; + }e.number=s;function l(y,w,T){ + return t.call(y)==='[object Number]'&&w<=y&&y<=T; + }e.numberRange=l;function c(y){ + return t.call(y)==='[object Number]'&&-2147483648<=y&&y<=2147483647; + }e.integer=c;function f(y){ + return t.call(y)==='[object Number]'&&0<=y&&y<=2147483647; + }e.uinteger=f;function m(y){ + return t.call(y)==='[object Function]'; + }e.func=m;function v(y){ + return y!==null&&typeof y=='object'; + }e.objectLiteral=v;function g(y,w){ + return Array.isArray(y)&&y.every(w); + }e.typedArray=g; + })(ne||(ne={})); +});var At,hD=at(()=>{ + W6();(function(e){ + e.Text=1,e.Method=2,e.Function=3,e.Constructor=4,e.Field=5,e.Variable=6,e.Class=7,e.Interface=8,e.Module=9,e.Property=10,e.Unit=11,e.Value=12,e.Enum=13,e.Keyword=14,e.Snippet=15,e.Color=16,e.File=17,e.Reference=18,e.Folder=19,e.EnumMember=20,e.Constant=21,e.Struct=22,e.Event=23,e.Operator=24,e.TypeParameter=25; + })(At||(At={})); +});var cs,Y6=at(()=>{ + cs=class{ + constructor(t){ + this._start=0,this._pos=0,this.getStartOfToken=()=>this._start,this.getCurrentPosition=()=>this._pos,this.eol=()=>this._sourceText.length===this._pos,this.sol=()=>this._pos===0,this.peek=()=>this._sourceText.charAt(this._pos)||null,this.next=()=>{ + let r=this._sourceText.charAt(this._pos);return this._pos++,r; + },this.eat=r=>{ + if(this._testNextCharacter(r))return this._start=this._pos,this._pos++,this._sourceText.charAt(this._pos-1); + },this.eatWhile=r=>{ + let n=this._testNextCharacter(r),i=!1;for(n&&(i=n,this._start=this._pos);n;)this._pos++,n=this._testNextCharacter(r),i=!0;return i; + },this.eatSpace=()=>this.eatWhile(/[\s\u00a0]/),this.skipToEnd=()=>{ + this._pos=this._sourceText.length; + },this.skipTo=r=>{ + this._pos=r; + },this.match=(r,n=!0,i=!1)=>{ + let o=null,s=null;return typeof r=='string'?(s=new RegExp(r,i?'i':'g').test(this._sourceText.slice(this._pos,this._pos+r.length)),o=r):r instanceof RegExp&&(s=this._sourceText.slice(this._pos).match(r),o=s?.[0]),s!=null&&(typeof r=='string'||s instanceof Array&&this._sourceText.startsWith(s[0],this._pos))?(n&&(this._start=this._pos,o&&o.length&&(this._pos+=o.length)),s):!1; + },this.backUp=r=>{ + this._pos-=r; + },this.column=()=>this._pos,this.indentation=()=>{ + let r=this._sourceText.match(/\s*/),n=0;if(r&&r.length!==0){ + let i=r[0],o=0;for(;i.length>o;)i.charCodeAt(o)===9?n+=2:n++,o++; + }return n; + },this.current=()=>this._sourceText.slice(this._start,this._pos),this._sourceText=t; + }_testNextCharacter(t){ + let r=this._sourceText.charAt(this._pos),n=!1;return typeof t=='string'?n=r===t:n=t instanceof RegExp?t.test(r):t(r),n; + } + }; +});function er(e){ + return{ofRule:e}; +}function gt(e,t){ + return{ofRule:e,isList:!0,separator:t}; +}function vD(e,t){ + let r=e.match;return e.match=n=>{ + let i=!1;return r&&(i=r(n)),i&&t.every(o=>o.match&&!o.match(n)); + },e; +}function Dn(e,t){ + return{style:t,match:r=>r.kind===e}; +}function ze(e,t){ + return{style:t||'punctuation',match:r=>r.kind==='Punctuation'&&r.value===e}; +}var gD=at(()=>{});function Qn(e){ + return{style:'keyword',match:t=>t.kind==='Name'&&t.value===e}; +}function ar(e){ + return{style:e,match:t=>t.kind==='Name',update(t,r){ + t.name=r.value; + }}; +}function jfe(e){ + return{style:e,match:t=>t.kind==='Name',update(t,r){ + var n;!((n=t.prevState)===null||n===void 0)&&n.prevState&&(t.name=r.value,t.prevState.prevState.type=r.value); + }}; +}var ui,vp,gp,yp,yD=at(()=>{ + gD();ui=fe(Ur()),vp=e=>e===' '||e===' '||e===','||e===` +`||e==='\r'||e==='\uFEFF'||e==='\xA0',gp={Name:/^[_A-Za-z][_0-9A-Za-z]*/,Punctuation:/^(?:!|\$|\(|\)|\.\.\.|:|=|&|@|\[|]|\{|\||\})/,Number:/^-?(?:0|(?:[1-9][0-9]*))(?:\.[0-9]*)?(?:[eE][+-]?[0-9]+)?/,String:/^(?:"""(?:\\"""|[^"]|"[^"]|""[^"])*(?:""")?|"(?:[^"\\]|\\(?:"|\/|\\|b|f|n|r|t|u[0-9a-fA-F]{4}))*"?)/,Comment:/^#.*/},yp={Document:[gt('Definition')],Definition(e){ + switch(e.value){ + case'{':return'ShortQuery';case'query':return'Query';case'mutation':return'Mutation';case'subscription':return'Subscription';case'fragment':return ui.Kind.FRAGMENT_DEFINITION;case'schema':return'SchemaDef';case'scalar':return'ScalarDef';case'type':return'ObjectTypeDef';case'interface':return'InterfaceDef';case'union':return'UnionDef';case'enum':return'EnumDef';case'input':return'InputDef';case'extend':return'ExtendDef';case'directive':return'DirectiveDef'; + } + },ShortQuery:['SelectionSet'],Query:[Qn('query'),er(ar('def')),er('VariableDefinitions'),gt('Directive'),'SelectionSet'],Mutation:[Qn('mutation'),er(ar('def')),er('VariableDefinitions'),gt('Directive'),'SelectionSet'],Subscription:[Qn('subscription'),er(ar('def')),er('VariableDefinitions'),gt('Directive'),'SelectionSet'],VariableDefinitions:[ze('('),gt('VariableDefinition'),ze(')')],VariableDefinition:['Variable',ze(':'),'Type',er('DefaultValue')],Variable:[ze('$','variable'),ar('variable')],DefaultValue:[ze('='),'Value'],SelectionSet:[ze('{'),gt('Selection'),ze('}')],Selection(e,t){ + return e.value==='...'?t.match(/[\s\u00a0,]*(on\b|@|{)/,!1)?'InlineFragment':'FragmentSpread':t.match(/[\s\u00a0,]*:/,!1)?'AliasedField':'Field'; + },AliasedField:[ar('property'),ze(':'),ar('qualifier'),er('Arguments'),gt('Directive'),er('SelectionSet')],Field:[ar('property'),er('Arguments'),gt('Directive'),er('SelectionSet')],Arguments:[ze('('),gt('Argument'),ze(')')],Argument:[ar('attribute'),ze(':'),'Value'],FragmentSpread:[ze('...'),ar('def'),gt('Directive')],InlineFragment:[ze('...'),er('TypeCondition'),gt('Directive'),'SelectionSet'],FragmentDefinition:[Qn('fragment'),er(vD(ar('def'),[Qn('on')])),'TypeCondition',gt('Directive'),'SelectionSet'],TypeCondition:[Qn('on'),'NamedType'],Value(e){ + switch(e.kind){ + case'Number':return'NumberValue';case'String':return'StringValue';case'Punctuation':switch(e.value){ + case'[':return'ListValue';case'{':return'ObjectValue';case'$':return'Variable';case'&':return'NamedType'; + }return null;case'Name':switch(e.value){ + case'true':case'false':return'BooleanValue'; + }return e.value==='null'?'NullValue':'EnumValue'; + } + },NumberValue:[Dn('Number','number')],StringValue:[{style:'string',match:e=>e.kind==='String',update(e,t){ + t.value.startsWith('"""')&&(e.inBlockstring=!t.value.slice(3).endsWith('"""')); + }}],BooleanValue:[Dn('Name','builtin')],NullValue:[Dn('Name','keyword')],EnumValue:[ar('string-2')],ListValue:[ze('['),gt('Value'),ze(']')],ObjectValue:[ze('{'),gt('ObjectField'),ze('}')],ObjectField:[ar('attribute'),ze(':'),'Value'],Type(e){ + return e.value==='['?'ListType':'NonNullType'; + },ListType:[ze('['),'Type',ze(']'),er(ze('!'))],NonNullType:['NamedType',er(ze('!'))],NamedType:[jfe('atom')],Directive:[ze('@','meta'),ar('meta'),er('Arguments')],DirectiveDef:[Qn('directive'),ze('@','meta'),ar('meta'),er('ArgumentsDef'),Qn('on'),gt('DirectiveLocation',ze('|'))],InterfaceDef:[Qn('interface'),ar('atom'),er('Implements'),gt('Directive'),ze('{'),gt('FieldDef'),ze('}')],Implements:[Qn('implements'),gt('NamedType',ze('&'))],DirectiveLocation:[ar('string-2')],SchemaDef:[Qn('schema'),gt('Directive'),ze('{'),gt('OperationTypeDef'),ze('}')],OperationTypeDef:[ar('keyword'),ze(':'),ar('atom')],ScalarDef:[Qn('scalar'),ar('atom'),gt('Directive')],ObjectTypeDef:[Qn('type'),ar('atom'),er('Implements'),gt('Directive'),ze('{'),gt('FieldDef'),ze('}')],FieldDef:[ar('property'),er('ArgumentsDef'),ze(':'),'Type',gt('Directive')],ArgumentsDef:[ze('('),gt('InputValueDef'),ze(')')],InputValueDef:[ar('attribute'),ze(':'),'Type',er('DefaultValue'),gt('Directive')],UnionDef:[Qn('union'),ar('atom'),gt('Directive'),ze('='),gt('UnionMember',ze('|'))],UnionMember:['NamedType'],EnumDef:[Qn('enum'),ar('atom'),gt('Directive'),ze('{'),gt('EnumValueDef'),ze('}')],EnumValueDef:[ar('string-2'),gt('Directive')],InputDef:[Qn('input'),ar('atom'),gt('Directive'),ze('{'),gt('InputValueDef'),ze('}')],ExtendDef:[Qn('extend'),'ExtensionDefinition'],ExtensionDefinition(e){ + switch(e.value){ + case'schema':return ui.Kind.SCHEMA_EXTENSION;case'scalar':return ui.Kind.SCALAR_TYPE_EXTENSION;case'type':return ui.Kind.OBJECT_TYPE_EXTENSION;case'interface':return ui.Kind.INTERFACE_TYPE_EXTENSION;case'union':return ui.Kind.UNION_TYPE_EXTENSION;case'enum':return ui.Kind.ENUM_TYPE_EXTENSION;case'input':return ui.Kind.INPUT_OBJECT_TYPE_EXTENSION; + } + },[ui.Kind.SCHEMA_EXTENSION]:['SchemaDef'],[ui.Kind.SCALAR_TYPE_EXTENSION]:['ScalarDef'],[ui.Kind.OBJECT_TYPE_EXTENSION]:['ObjectTypeDef'],[ui.Kind.INTERFACE_TYPE_EXTENSION]:['InterfaceDef'],[ui.Kind.UNION_TYPE_EXTENSION]:['UnionDef'],[ui.Kind.ENUM_TYPE_EXTENSION]:['EnumDef'],[ui.Kind.INPUT_OBJECT_TYPE_EXTENSION]:['InputDef']}; +});function po(e={eatWhitespace:t=>t.eatWhile(vp),lexRules:gp,parseRules:yp,editorConfig:{}}){ + return{startState(){ + let t={level:0,step:0,name:null,kind:null,type:null,rule:null,needsSeparator:!1,prevState:null};return Bv(e.parseRules,t,Z6.Kind.DOCUMENT),t; + },token(t,r){ + return Vfe(t,r,e); + }}; +}function Vfe(e,t,r){ + var n;if(t.inBlockstring)return e.match(/.*"""/)?(t.inBlockstring=!1,'string'):(e.skipToEnd(),'string');let{lexRules:i,parseRules:o,eatWhitespace:s,editorConfig:l}=r;if(t.rule&&t.rule.length===0?xD(t):t.needsAdvance&&(t.needsAdvance=!1,AD(t,!0)),e.sol()){ + let m=l?.tabSize||2;t.indentLevel=Math.floor(e.indentation()/m); + }if(s(e))return'ws';let c=Bfe(i,e);if(!c)return e.match(/\S+/)||e.match(/\s/),Bv(bD,t,'Invalid'),'invalidchar';if(c.kind==='Comment')return Bv(bD,t,'Comment'),'comment';let f=K6({},t);if(c.kind==='Punctuation'){ + if(/^[{([]/.test(c.value))t.indentLevel!==void 0&&(t.levels=(t.levels||[]).concat(t.indentLevel+1));else if(/^[})\]]/.test(c.value)){ + let m=t.levels=(t.levels||[]).slice(0,-1);t.indentLevel&&m.length>0&&m.at(-1){ + yD();Z6=fe(Ur());bD={Invalid:[],Comment:[]}; +});var _6,Gfe,Ne,$6=at(()=>{ + _6=fe(Ur()),Gfe={ALIASED_FIELD:'AliasedField',ARGUMENTS:'Arguments',SHORT_QUERY:'ShortQuery',QUERY:'Query',MUTATION:'Mutation',SUBSCRIPTION:'Subscription',TYPE_CONDITION:'TypeCondition',INVALID:'Invalid',COMMENT:'Comment',SCHEMA_DEF:'SchemaDef',SCALAR_DEF:'ScalarDef',OBJECT_TYPE_DEF:'ObjectTypeDef',OBJECT_VALUE:'ObjectValue',LIST_VALUE:'ListValue',INTERFACE_DEF:'InterfaceDef',UNION_DEF:'UnionDef',ENUM_DEF:'EnumDef',ENUM_VALUE:'EnumValue',FIELD_DEF:'FieldDef',INPUT_DEF:'InputDef',INPUT_VALUE_DEF:'InputValueDef',ARGUMENTS_DEF:'ArgumentsDef',EXTEND_DEF:'ExtendDef',EXTENSION_DEFINITION:'ExtensionDefinition',DIRECTIVE_DEF:'DirectiveDef',IMPLEMENTS:'Implements',VARIABLE_DEFINITIONS:'VariableDefinitions',TYPE:'Type'},Ne=Object.assign(Object.assign({},_6.Kind),Gfe); +});var IA=at(()=>{ + Y6();yD();gD();J6();$6(); +});function ED(e,t,r,n,i,o){ + var s;let l=Object.assign(Object.assign({},o),{schema:e}),c=n||CD(t,r,1),f=c.state.kind==='Invalid'?c.state.prevState:c.state,m=o?.mode||ide(t,o?.uri);if(!f)return[];let{kind:v,step:g,prevState:y}=f,w=SD(e,c.state);if(v===Ne.DOCUMENT)return m===Kc.TYPE_SYSTEM?Yfe(c):Kfe(c);if(v===Ne.EXTEND_DEF)return Xfe(c);if(((s=y?.prevState)===null||s===void 0?void 0:s.kind)===Ne.EXTENSION_DEFINITION&&f.name)return Cr(c,[]);if(y?.kind===de.Kind.SCALAR_TYPE_EXTENSION)return Cr(c,Object.values(e.getTypeMap()).filter(de.isScalarType).map(S=>({label:S.name,kind:At.Function})));if(y?.kind===de.Kind.OBJECT_TYPE_EXTENSION)return Cr(c,Object.values(e.getTypeMap()).filter(S=>(0,de.isObjectType)(S)&&!S.name.startsWith('__')).map(S=>({label:S.name,kind:At.Function})));if(y?.kind===de.Kind.INTERFACE_TYPE_EXTENSION)return Cr(c,Object.values(e.getTypeMap()).filter(de.isInterfaceType).map(S=>({label:S.name,kind:At.Function})));if(y?.kind===de.Kind.UNION_TYPE_EXTENSION)return Cr(c,Object.values(e.getTypeMap()).filter(de.isUnionType).map(S=>({label:S.name,kind:At.Function})));if(y?.kind===de.Kind.ENUM_TYPE_EXTENSION)return Cr(c,Object.values(e.getTypeMap()).filter(S=>(0,de.isEnumType)(S)&&!S.name.startsWith('__')).map(S=>({label:S.name,kind:At.Function})));if(y?.kind===de.Kind.INPUT_OBJECT_TYPE_EXTENSION)return Cr(c,Object.values(e.getTypeMap()).filter(de.isInputObjectType).map(S=>({label:S.name,kind:At.Function})));if(v===Ne.IMPLEMENTS||v===Ne.NAMED_TYPE&&y?.kind===Ne.IMPLEMENTS)return _fe(c,f,e,t,w);if(v===Ne.SELECTION_SET||v===Ne.FIELD||v===Ne.ALIASED_FIELD)return Zfe(c,w,l);if(v===Ne.ARGUMENTS||v===Ne.ARGUMENT&&g===0){ + let{argDefs:S}=w;if(S)return Cr(c,S.map(A=>{ + var b;return{label:A.name,insertText:A.name+': ',command:wD,detail:String(A.type),documentation:(b=A.description)!==null&&b!==void 0?b:void 0,kind:At.Variable,type:A.type}; + })); + }if((v===Ne.OBJECT_VALUE||v===Ne.OBJECT_FIELD&&g===0)&&w.objectFieldDefs){ + let S=pu(w.objectFieldDefs),A=v===Ne.OBJECT_VALUE?At.Value:At.Field;return Cr(c,S.map(b=>{ + var C;return{label:b.name,detail:String(b.type),documentation:(C=b.description)!==null&&C!==void 0?C:void 0,kind:A,type:b.type}; + })); + }if(v===Ne.ENUM_VALUE||v===Ne.LIST_VALUE&&g===1||v===Ne.OBJECT_FIELD&&g===2||v===Ne.ARGUMENT&&g===2)return Jfe(c,w,t,e);if(v===Ne.VARIABLE&&g===1){ + let S=(0,de.getNamedType)(w.inputType),A=TD(t,e,c);return Cr(c,A.filter(b=>b.detail===S?.name)); + }if(v===Ne.TYPE_CONDITION&&g===1||v===Ne.NAMED_TYPE&&y!=null&&y.kind===Ne.TYPE_CONDITION)return $fe(c,w,e,v);if(v===Ne.FRAGMENT_SPREAD&&g===1)return ede(c,w,e,t,Array.isArray(i)?i:zfe(i));let T=rq(f);if(m===Kc.TYPE_SYSTEM&&!T.needsAdvance&&v===Ne.NAMED_TYPE||v===Ne.LIST_TYPE){ + if(T.kind===Ne.FIELD_DEF)return Cr(c,Object.values(e.getTypeMap()).filter(S=>(0,de.isOutputType)(S)&&!S.name.startsWith('__')).map(S=>({label:S.name,kind:At.Function})));if(T.kind===Ne.INPUT_VALUE_DEF)return Cr(c,Object.values(e.getTypeMap()).filter(S=>(0,de.isInputType)(S)&&!S.name.startsWith('__')).map(S=>({label:S.name,kind:At.Function}))); + }return v===Ne.VARIABLE_DEFINITION&&g===2||v===Ne.LIST_TYPE&&g===1||v===Ne.NAMED_TYPE&&y&&(y.kind===Ne.VARIABLE_DEFINITION||y.kind===Ne.LIST_TYPE||y.kind===Ne.NON_NULL_TYPE)?rde(c,e,v):v===Ne.DIRECTIVE?nde(c,f,e,v):[]; +}function Yfe(e){ + return Cr(e,[{label:'extend',kind:At.Function},{label:'type',kind:At.Function},{label:'interface',kind:At.Function},{label:'union',kind:At.Function},{label:'input',kind:At.Function},{label:'scalar',kind:At.Function},{label:'schema',kind:At.Function}]); +}function Kfe(e){ + return Cr(e,[{label:'query',kind:At.Function},{label:'mutation',kind:At.Function},{label:'subscription',kind:At.Function},{label:'fragment',kind:At.Function},{label:'{',kind:At.Constructor}]); +}function Xfe(e){ + return Cr(e,[{label:'type',kind:At.Function},{label:'interface',kind:At.Function},{label:'union',kind:At.Function},{label:'input',kind:At.Function},{label:'scalar',kind:At.Function},{label:'schema',kind:At.Function}]); +}function Zfe(e,t,r){ + var n;if(t.parentType){ + let{parentType:i}=t,o=[];return'getFields'in i&&(o=pu(i.getFields())),(0,de.isCompositeType)(i)&&o.push(de.TypeNameMetaFieldDef),i===((n=r?.schema)===null||n===void 0?void 0:n.getQueryType())&&o.push(de.SchemaMetaFieldDef,de.TypeMetaFieldDef),Cr(e,o.map((s,l)=>{ + var c;let f={sortText:String(l)+s.name,label:s.name,detail:String(s.type),documentation:(c=s.description)!==null&&c!==void 0?c:void 0,deprecated:!!s.deprecationReason,isDeprecated:!!s.deprecationReason,deprecationReason:s.deprecationReason,kind:At.Field,type:s.type};if(r?.fillLeafsOnComplete){ + let m=Wfe(s);m&&(f.insertText=s.name+m,f.insertTextFormat=Uv.Snippet,f.command=wD); + }return f; + })); + }return[]; +}function Jfe(e,t,r,n){ + let i=(0,de.getNamedType)(t.inputType),o=TD(r,n,e).filter(s=>s.detail===i.name);if(i instanceof de.GraphQLEnumType){ + let s=i.getValues();return Cr(e,s.map(l=>{ + var c;return{label:l.name,detail:String(i),documentation:(c=l.description)!==null&&c!==void 0?c:void 0,deprecated:!!l.deprecationReason,isDeprecated:!!l.deprecationReason,deprecationReason:l.deprecationReason,kind:At.EnumMember,type:i}; + }).concat(o)); + }return i===de.GraphQLBoolean?Cr(e,o.concat([{label:'true',detail:String(de.GraphQLBoolean),documentation:'Not false.',kind:At.Variable,type:de.GraphQLBoolean},{label:'false',detail:String(de.GraphQLBoolean),documentation:'Not true.',kind:At.Variable,type:de.GraphQLBoolean}])):o; +}function _fe(e,t,r,n,i){ + if(t.needsSeparator)return[];let o=r.getTypeMap(),s=pu(o).filter(de.isInterfaceType),l=s.map(({name:y})=>y),c=new Set;qA(n,(y,w)=>{ + var T,S,A,b,C;if(w.name&&(w.kind===Ne.INTERFACE_DEF&&!l.includes(w.name)&&c.add(w.name),w.kind===Ne.NAMED_TYPE&&((T=w.prevState)===null||T===void 0?void 0:T.kind)===Ne.IMPLEMENTS)){ + if(i.interfaceDef){ + if((S=i.interfaceDef)===null||S===void 0?void 0:S.getInterfaces().find(({name:D})=>D===w.name))return;let k=r.getType(w.name),P=(A=i.interfaceDef)===null||A===void 0?void 0:A.toConfig();i.interfaceDef=new de.GraphQLInterfaceType(Object.assign(Object.assign({},P),{interfaces:[...P.interfaces,k||new de.GraphQLInterfaceType({name:w.name,fields:{}})]})); + }else if(i.objectTypeDef){ + if((b=i.objectTypeDef)===null||b===void 0?void 0:b.getInterfaces().find(({name:D})=>D===w.name))return;let k=r.getType(w.name),P=(C=i.objectTypeDef)===null||C===void 0?void 0:C.toConfig();i.objectTypeDef=new de.GraphQLObjectType(Object.assign(Object.assign({},P),{interfaces:[...P.interfaces,k||new de.GraphQLInterfaceType({name:w.name,fields:{}})]})); + } + } + });let f=i.interfaceDef||i.objectTypeDef,v=(f?.getInterfaces()||[]).map(({name:y})=>y),g=s.concat([...c].map(y=>({name:y}))).filter(({name:y})=>y!==f?.name&&!v.includes(y));return Cr(e,g.map(y=>{ + let w={label:y.name,kind:At.Interface,type:y};return y?.description&&(w.documentation=y.description),w; + })); +}function $fe(e,t,r,n){ + let i;if(t.parentType)if((0,de.isAbstractType)(t.parentType)){ + let o=(0,de.assertAbstractType)(t.parentType),s=r.getPossibleTypes(o),l=Object.create(null);for(let c of s)for(let f of c.getInterfaces())l[f.name]=f;i=s.concat(pu(l)); + }else i=[t.parentType];else{ + let o=r.getTypeMap();i=pu(o).filter(s=>(0,de.isCompositeType)(s)&&!s.name.startsWith('__')); + }return Cr(e,i.map(o=>{ + let s=(0,de.getNamedType)(o);return{label:String(o),documentation:s?.description||'',kind:At.Field}; + })); +}function ede(e,t,r,n,i){ + if(!n)return[];let o=r.getTypeMap(),s=_N(e.state),l=eq(n);i&&i.length>0&&l.push(...i);let c=l.filter(f=>o[f.typeCondition.name.value]&&!(s&&s.kind===Ne.FRAGMENT_DEFINITION&&s.name===f.name.value)&&(0,de.isCompositeType)(t.parentType)&&(0,de.isCompositeType)(o[f.typeCondition.name.value])&&(0,de.doTypesOverlap)(r,t.parentType,o[f.typeCondition.name.value]));return Cr(e,c.map(f=>({label:f.name.value,detail:String(o[f.typeCondition.name.value]),documentation:`fragment ${f.name.value} on ${f.typeCondition.name.value}`,kind:At.Field,type:o[f.typeCondition.name.value]}))); +}function TD(e,t,r){ + let n=null,i,o=Object.create({});return qA(e,(s,l)=>{ + if(l?.kind===Ne.VARIABLE&&l.name&&(n=l.name),l?.kind===Ne.NAMED_TYPE&&n){ + let c=tde(l,Ne.TYPE);c?.type&&(i=t.getType(c?.type)); + }n&&i&&!o[n]&&(o[n]={detail:i.toString(),insertText:r.string==='$'?n:'$'+n,label:n,type:i,kind:At.Variable},n=null,i=null); + }),pu(o); +}function eq(e){ + let t=[];return qA(e,(r,n)=>{ + n.kind===Ne.FRAGMENT_DEFINITION&&n.name&&n.type&&t.push({kind:Ne.FRAGMENT_DEFINITION,name:{kind:de.Kind.NAME,value:n.name},selectionSet:{kind:Ne.SELECTION_SET,selections:[]},typeCondition:{kind:Ne.NAMED_TYPE,name:{kind:de.Kind.NAME,value:n.type}}}); + }),t; +}function rde(e,t,r){ + let n=t.getTypeMap(),i=pu(n).filter(de.isInputType);return Cr(e,i.map(o=>({label:o.name,documentation:o.description,kind:At.Variable}))); +}function nde(e,t,r,n){ + var i;if(!((i=t.prevState)===null||i===void 0)&&i.kind){ + let o=r.getDirectives().filter(s=>tq(t.prevState,s));return Cr(e,o.map(s=>({label:s.name,documentation:s.description||'',kind:At.Function}))); + }return[]; +}function CD(e,t,r=0){ + let n=null,i=null,o=null,s=qA(e,(l,c,f,m)=>{ + if(!(m!==t.line||l.getCurrentPosition()+r{ + var w;switch(y.kind){ + case Ne.QUERY:case'ShortQuery':v=e.getQueryType();break;case Ne.MUTATION:v=e.getMutationType();break;case Ne.SUBSCRIPTION:v=e.getSubscriptionType();break;case Ne.INLINE_FRAGMENT:case Ne.FRAGMENT_DEFINITION:y.type&&(v=e.getType(y.type));break;case Ne.FIELD:case Ne.ALIASED_FIELD:{!v||!y.name?s=null:(s=m?NA(e,m,y.name):null,v=s?s.type:null);break;}case Ne.SELECTION_SET:m=(0,de.getNamedType)(v);break;case Ne.DIRECTIVE:i=y.name?e.getDirective(y.name):null;break;case Ne.INTERFACE_DEF:y.name&&(c=null,g=new de.GraphQLInterfaceType({name:y.name,interfaces:[],fields:{}}));break;case Ne.OBJECT_TYPE_DEF:y.name&&(g=null,c=new de.GraphQLObjectType({name:y.name,interfaces:[],fields:{}}));break;case Ne.ARGUMENTS:{if(y.prevState)switch(y.prevState.kind){ + case Ne.FIELD:n=s&&s.args;break;case Ne.DIRECTIVE:n=i&&i.args;break;case Ne.ALIASED_FIELD:{let C=(w=y.prevState)===null||w===void 0?void 0:w.name;if(!C){ + n=null;break; + }let x=m?NA(e,m,C):null;if(!x){ + n=null;break; + }n=x.args;break;}default:n=null;break; + }else n=null;break;}case Ne.ARGUMENT:if(n){ + for(let C=0;CC.value===y.name):null;break;case Ne.LIST_VALUE:let S=(0,de.getNullableType)(l);l=S instanceof de.GraphQLList?S.ofType:null;break;case Ne.OBJECT_VALUE:let A=(0,de.getNamedType)(l);f=A instanceof de.GraphQLInputObjectType?A.getFields():null;break;case Ne.OBJECT_FIELD:let b=y.name&&f?f[y.name]:null;l=b?.type;break;case Ne.NAMED_TYPE:y.name&&(v=e.getType(y.name));break; + } + }),{argDef:r,argDefs:n,directiveDef:i,enumValue:o,fieldDef:s,inputType:l,objectFieldDefs:f,parentType:m,type:v,interfaceDef:g,objectTypeDef:c}; +}function ide(e,t){ + return t?.endsWith('.graphqls')||Qfe(e)?Kc.TYPE_SYSTEM:Kc.EXECUTABLE; +}function rq(e){ + return e.prevState&&e.kind&&[Ne.NAMED_TYPE,Ne.LIST_TYPE,Ne.TYPE,Ne.NON_NULL_TYPE].includes(e.kind)?rq(e.prevState):e; +}var de,wD,zfe,Hfe,Qfe,FA,Wfe,tde,Kc,kD=at(()=>{ + de=fe(Ur());hD();IA();eD();wD={command:'editor.action.triggerSuggest',title:'Suggestions'},zfe=e=>{ + let t=[];if(e)try{ + (0,de.visit)((0,de.parse)(e),{FragmentDefinition(r){ + t.push(r); + }}); + }catch{ + return[]; + }return t; + },Hfe=[de.Kind.SCHEMA_DEFINITION,de.Kind.OPERATION_TYPE_DEFINITION,de.Kind.SCALAR_TYPE_DEFINITION,de.Kind.OBJECT_TYPE_DEFINITION,de.Kind.INTERFACE_TYPE_DEFINITION,de.Kind.UNION_TYPE_DEFINITION,de.Kind.ENUM_TYPE_DEFINITION,de.Kind.INPUT_OBJECT_TYPE_DEFINITION,de.Kind.DIRECTIVE_DEFINITION,de.Kind.SCHEMA_EXTENSION,de.Kind.SCALAR_TYPE_EXTENSION,de.Kind.OBJECT_TYPE_EXTENSION,de.Kind.INTERFACE_TYPE_EXTENSION,de.Kind.UNION_TYPE_EXTENSION,de.Kind.ENUM_TYPE_EXTENSION,de.Kind.INPUT_OBJECT_TYPE_EXTENSION],Qfe=e=>{ + let t=!1;if(e)try{ + (0,de.visit)((0,de.parse)(e),{enter(r){ + if(r.kind!=='Document')return Hfe.includes(r.kind)?(t=!0,de.BREAK):!1; + }}); + }catch{ + return t; + }return t; + };FA=` { + $1 +}`,Wfe=e=>{ + let{type:t}=e;return(0,de.isCompositeType)(t)||(0,de.isListType)(t)&&(0,de.isCompositeType)(t.ofType)||(0,de.isNonNullType)(t)&&((0,de.isCompositeType)(t.ofType)||(0,de.isListType)(t.ofType)&&(0,de.isCompositeType)(t.ofType.ofType))?FA:null; + };tde=(e,t)=>{ + var r,n,i,o,s,l,c,f,m,v;if(((r=e.prevState)===null||r===void 0?void 0:r.kind)===t)return e.prevState;if(((i=(n=e.prevState)===null||n===void 0?void 0:n.prevState)===null||i===void 0?void 0:i.kind)===t)return e.prevState.prevState;if(((l=(s=(o=e.prevState)===null||o===void 0?void 0:o.prevState)===null||s===void 0?void 0:s.prevState)===null||l===void 0?void 0:l.kind)===t)return e.prevState.prevState.prevState;if(((v=(m=(f=(c=e.prevState)===null||c===void 0?void 0:c.prevState)===null||f===void 0?void 0:f.prevState)===null||m===void 0?void 0:m.prevState)===null||v===void 0?void 0:v.kind)===t)return e.prevState.prevState.prevState.prevState; + };(function(e){ + e.TYPE_SYSTEM='TYPE_SYSTEM',e.EXECUTABLE='EXECUTABLE'; + })(Kc||(Kc={})); +});var iq=X((OOe,jA)=>{ + 'use strict';function nq(e,t){ + if(e!=null)return e;var r=new Error(t!==void 0?t:'Got unexpected '+e);throw r.framesToPop=1,r; + }jA.exports=nq;jA.exports.default=nq;Object.defineProperty(jA.exports,'__esModule',{value:!0}); +});var VA,OD,UA,oq=at(()=>{ + VA=fe(Ur()),OD=fe(iq()),UA=(e,t)=>{ + if(!t)return[];let r=new Map,n=new Set;(0,VA.visit)(e,{FragmentDefinition(s){ + r.set(s.name.value,!0); + },FragmentSpread(s){ + n.has(s.name.value)||n.add(s.name.value); + }});let i=new Set;for(let s of n)!r.has(s)&&t.has(s)&&i.add((0,OD.default)(t.get(s)));let o=[];for(let s of i)(0,VA.visit)(s,{FragmentSpread(l){ + !n.has(l.name.value)&&t.get(l.name.value)&&(i.add((0,OD.default)(t.get(l.name.value))),n.add(l.name.value)); + }}),r.has(s.name.value)||o.push(s);return o; + }; +});var aq=at(()=>{});var sq=at(()=>{});var Xc,mo,lq=at(()=>{ + Xc=class{ + constructor(t,r){ + this.containsPosition=n=>this.start.line===n.line?this.start.character<=n.character:this.end.line===n.line?this.end.character>=n.character:this.start.line<=n.line&&this.end.line>=n.line,this.start=t,this.end=r; + }setStart(t,r){ + this.start=new mo(t,r); + }setEnd(t,r){ + this.end=new mo(t,r); + } + },mo=class{ + constructor(t,r){ + this.lessThanOrEqualTo=n=>this.line!(l===Nt.NoUnusedFragmentsRule||l===Nt.ExecutableDefinitionsRule||n&&l===Nt.KnownFragmentNamesRule));return r&&Array.prototype.push.apply(o,r),i&&Array.prototype.push.apply(o,ode),(0,Nt.validate)(e,t,o).filter(l=>{ + if(l.message.includes('Unknown directive')&&l.nodes){ + let c=l.nodes[0];if(c&&c.kind===Nt.Kind.DIRECTIVE){ + let f=c.name.value;if(f==='arguments'||f==='argumentDefinitions')return!1; + } + }return!0; + }); +}var Nt,ode,uq=at(()=>{ + Nt=fe(Ur()),ode=[Nt.LoneSchemaDefinitionRule,Nt.UniqueOperationTypesRule,Nt.UniqueTypeNamesRule,Nt.UniqueEnumValueNamesRule,Nt.UniqueFieldDefinitionNamesRule,Nt.UniqueDirectiveNamesRule,Nt.KnownTypeNamesRule,Nt.KnownDirectivesRule,Nt.UniqueDirectivesPerLocationRule,Nt.PossibleTypeExtensionsRule,Nt.UniqueArgumentNamesRule,Nt.UniqueInputFieldNamesRule]; +});function GA(e,t){ + let r=Object.create(null);for(let n of t.definitions)if(n.kind==='OperationDefinition'){ + let{variableDefinitions:i}=n;if(i)for(let{variable:o,type:s}of i){ + let l=(0,bp.typeFromAST)(e,s);l?r[o.name.value]=l:s.kind===bp.Kind.NAMED_TYPE&&s.name.value==='Float'&&(r[o.name.value]=bp.GraphQLFloat); + } + }return r; +}var bp,ND=at(()=>{ + bp=fe(Ur()); +});function DD(e,t){ + let r=t?GA(t,e):void 0,n=[];return(0,zA.visit)(e,{OperationDefinition(i){ + n.push(i); + }}),{variableToType:r,operations:n}; +}function Gv(e,t){ + if(t)try{ + let r=(0,zA.parse)(t);return Object.assign(Object.assign({},DD(r,e)),{documentAST:r}); + }catch{ + return; + } +}var zA,cq=at(()=>{ + zA=fe(Ur());ND(); +});var zv=at(()=>{ + oq();aq();sq();lq();uq();ND();cq(); +});var fq=at(()=>{ + zv(); +});function PD(e,t=null,r,n,i){ + var o,s;let l=null,c='';i&&(c=typeof i=='string'?i:i.reduce((m,v)=>m+(0,fs.print)(v)+` + +`,''));let f=c?`${e} + +${c}`:e;try{ + l=(0,fs.parse)(f); + }catch(m){ + if(m instanceof fs.GraphQLError){ + let v=mq((s=(o=m.locations)===null||o===void 0?void 0:o[0])!==null&&s!==void 0?s:{line:0,column:0},f);return[{severity:HA.Error,message:m.message,source:'GraphQL: Syntax',range:v}]; + }throw m; + }return pq(l,t,r,n); +}function pq(e,t=null,r,n){ + if(!t)return[];let i=BA(t,e,r,n).flatMap(s=>dq(s,HA.Error,'Validation')),o=(0,fs.validate)(t,e,[fs.NoDeprecatedCustomRule]).flatMap(s=>dq(s,HA.Warning,'Deprecation'));return i.concat(o); +}function dq(e,t,r){ + if(!e.nodes)return[];let n=[];for(let[i,o]of e.nodes.entries()){ + let s=o.kind!=='Variable'&&'name'in o&&o.name!==void 0?o.name:'variable'in o&&o.variable!==void 0?o.variable:o;if(s){ + QA(e.locations,'GraphQL validation error requires locations.');let l=e.locations[i],c=dde(s),f=l.column+(c.end-c.start);n.push({source:`GraphQL: ${r}`,message:e.message,severity:t,range:new Xc(new mo(l.line-1,l.column-1),new mo(l.line-1,f))}); + } + }return n; +}function mq(e,t){ + let r=po(),n=r.startState(),i=t.split(` +`);QA(i.length>=e.line,'Query text must have more lines than where the error happened');let o=null;for(let f=0;f{ + fs=fe(Ur());IA();zv();Hv={Error:'Error',Warning:'Warning',Information:'Information',Hint:'Hint'},HA={[Hv.Error]:1,[Hv.Warning]:2,[Hv.Information]:3,[Hv.Hint]:4},QA=(e,t)=>{ + if(!e)throw new Error(t); + }; +});var WA,JOe,vq=at(()=>{ + WA=fe(Ur());zv();({INLINE_FRAGMENT:JOe}=WA.Kind); +});var gq=at(()=>{ + kD(); +});var yq=at(()=>{ + eD();kD();fq();hq();vq();gq(); +});var Zc=at(()=>{ + yq();IA();hD();zv(); +});var Aq=X((yNe,bq)=>{ + 'use strict';bq.exports=function(t){ + return typeof t=='object'?t===null:typeof t!='function'; + }; +});var wq=X((bNe,xq)=>{ + 'use strict';xq.exports=function(t){ + return t!=null&&typeof t=='object'&&Array.isArray(t)===!1; + }; +});var Cq=X((ANe,Tq)=>{ + 'use strict';var hde=wq();function Eq(e){ + return hde(e)===!0&&Object.prototype.toString.call(e)==='[object Object]'; + }Tq.exports=function(t){ + var r,n;return!(Eq(t)===!1||(r=t.constructor,typeof r!='function')||(n=r.prototype,Eq(n)===!1)||n.hasOwnProperty('isPrototypeOf')===!1); + }; +});var Dq=X((xNe,Nq)=>{ + 'use strict';var{deleteProperty:vde}=Reflect,gde=Aq(),Sq=Cq(),kq=e=>typeof e=='object'&&e!==null||typeof e=='function',yde=e=>e==='__proto__'||e==='constructor'||e==='prototype',RD=e=>{ + if(!gde(e))throw new TypeError('Object keys must be strings or symbols');if(yde(e))throw new Error(`Cannot set unsafe key: "${e}"`); + },bde=e=>Array.isArray(e)?e.flat().map(String).join(','):e,Ade=(e,t)=>{ + if(typeof e!='string'||!t)return e;let r=e+';';return t.arrays!==void 0&&(r+=`arrays=${t.arrays};`),t.separator!==void 0&&(r+=`separator=${t.separator};`),t.split!==void 0&&(r+=`split=${t.split};`),t.merge!==void 0&&(r+=`merge=${t.merge};`),t.preservePaths!==void 0&&(r+=`preservePaths=${t.preservePaths};`),r; + },xde=(e,t,r)=>{ + let n=bde(t?Ade(e,t):e);RD(n);let i=Jc.cache.get(n)||r();return Jc.cache.set(n,i),i; + },wde=(e,t={})=>{ + let r=t.separator||'.',n=r==='/'?!1:t.preservePaths;if(typeof e=='string'&&n!==!1&&/\//.test(e))return[e];let i=[],o='',s=l=>{ + let c;l.trim()!==''&&Number.isInteger(c=Number(l))?i.push(c):i.push(l); + };for(let l=0;lt&&typeof t.split=='function'?t.split(e):typeof e=='symbol'?[e]:Array.isArray(e)?e:xde(e,t,()=>wde(e,t)),Ede=(e,t,r,n)=>{ + if(RD(t),r===void 0)vde(e,t);else if(n&&n.merge){ + let i=n.merge==='function'?n.merge:Object.assign;i&&Sq(e[t])&&Sq(r)?e[t]=i(e[t],r):e[t]=r; + }else e[t]=r;return e; + },Jc=(e,t,r,n)=>{ + if(!t||!kq(e))return e;let i=Oq(t,n),o=e;for(let s=0;s{ + Jc.cache=new Map; + };Nq.exports=Jc; +});var Pq=X((wNe,Lq)=>{ + Lq.exports=function(){ + var e=document.getSelection();if(!e.rangeCount)return function(){};for(var t=document.activeElement,r=[],n=0;n{ + 'use strict';var Tde=Pq(),Rq={'text/plain':'Text','text/html':'Url',default:'Text'},Cde='Copy to clipboard: #{key}, Enter';function Sde(e){ + var t=(/mac os x/i.test(navigator.userAgent)?'\u2318':'Ctrl')+'+C';return e.replace(/#{\s*key\s*}/g,t); + }function kde(e,t){ + var r,n,i,o,s,l,c=!1;t||(t={}),r=t.debug||!1;try{ + i=Tde(),o=document.createRange(),s=document.getSelection(),l=document.createElement('span'),l.textContent=e,l.ariaHidden='true',l.style.all='unset',l.style.position='fixed',l.style.top=0,l.style.clip='rect(0, 0, 0, 0)',l.style.whiteSpace='pre',l.style.webkitUserSelect='text',l.style.MozUserSelect='text',l.style.msUserSelect='text',l.style.userSelect='text',l.addEventListener('copy',function(m){ + if(m.stopPropagation(),t.format)if(m.preventDefault(),typeof m.clipboardData>'u'){ + r&&console.warn('unable to use e.clipboardData'),r&&console.warn('trying IE specific stuff'),window.clipboardData.clearData();var v=Rq[t.format]||Rq.default;window.clipboardData.setData(v,e); + }else m.clipboardData.clearData(),m.clipboardData.setData(t.format,e);t.onCopy&&(m.preventDefault(),t.onCopy(m.clipboardData)); + }),document.body.appendChild(l),o.selectNodeContents(l),s.addRange(o);var f=document.execCommand('copy');if(!f)throw new Error('copy command was unsuccessful');c=!0; + }catch(m){ + r&&console.error('unable to copy using execCommand: ',m),r&&console.warn('trying IE specific stuff');try{ + window.clipboardData.setData(t.format||'text',e),t.onCopy&&t.onCopy(window.clipboardData),c=!0; + }catch(v){ + r&&console.error('unable to copy using clipboardData: ',v),r&&console.error('falling back to prompt'),n=Sde('message'in t?t.message:Cde),window.prompt(n,e); + } + }finally{ + s&&(typeof s.removeRange=='function'?s.removeRange(o):s.removeAllRanges()),l&&document.body.removeChild(l),i(); + }return c; + }Mq.exports=kde; +});var Kq=X(lr=>{ + 'use strict';function jD(e,t){ + var r=e.length;e.push(t);e:for(;0>>1,i=e[n];if(0>>1;nYA(l,r))cYA(f,l)?(e[n]=f,e[c]=r,n=c):(e[n]=l,e[s]=r,n=s);else if(cYA(f,r))e[n]=f,e[c]=r,n=c;else break e; + } + }return t; + }function YA(e,t){ + var r=e.sortIndex-t.sortIndex;return r!==0?r:e.id-t.id; + }typeof performance=='object'&&typeof performance.now=='function'?(Vq=performance,lr.unstable_now=function(){ + return Vq.now(); + }):(ID=Date,Uq=ID.now(),lr.unstable_now=function(){ + return ID.now()-Uq; + });var Vq,ID,Uq,ps=[],vu=[],Rde=1,Go=null,ci=3,ZA=!1,_c=!1,Wv=!1,zq=typeof setTimeout=='function'?setTimeout:null,Hq=typeof clearTimeout=='function'?clearTimeout:null,Bq=typeof setImmediate<'u'?setImmediate:null;typeof navigator<'u'&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function VD(e){ + for(var t=Ta(vu);t!==null;){ + if(t.callback===null)XA(vu);else if(t.startTime<=e)XA(vu),t.sortIndex=t.expirationTime,jD(ps,t);else break;t=Ta(vu); + } + }function UD(e){ + if(Wv=!1,VD(e),!_c)if(Ta(ps)!==null)_c=!0,GD(BD);else{ + var t=Ta(vu);t!==null&&zD(UD,t.startTime-e); + } + }function BD(e,t){ + _c=!1,Wv&&(Wv=!1,Hq(Yv),Yv=-1),ZA=!0;var r=ci;try{ + for(VD(t),Go=Ta(ps);Go!==null&&(!(Go.expirationTime>t)||e&&!Yq());){ + var n=Go.callback;if(typeof n=='function'){ + Go.callback=null,ci=Go.priorityLevel;var i=n(Go.expirationTime<=t);t=lr.unstable_now(),typeof i=='function'?Go.callback=i:Go===Ta(ps)&&XA(ps),VD(t); + }else XA(ps);Go=Ta(ps); + }if(Go!==null)var o=!0;else{ + var s=Ta(vu);s!==null&&zD(UD,s.startTime-t),o=!1; + }return o; + }finally{ + Go=null,ci=r,ZA=!1; + } + }var JA=!1,KA=null,Yv=-1,Qq=5,Wq=-1;function Yq(){ + return!(lr.unstable_now()-Wqe||125n?(e.sortIndex=r,jD(vu,e),Ta(ps)===null&&e===Ta(vu)&&(Wv?(Hq(Yv),Yv=-1):Wv=!0,zD(UD,r-n))):(e.sortIndex=i,jD(ps,e),_c||ZA||(_c=!0,GD(BD))),e; + };lr.unstable_shouldYield=Yq;lr.unstable_wrapCallback=function(e){ + var t=ci;return function(){ + var r=ci;ci=t;try{ + return e.apply(this,arguments); + }finally{ + ci=r; + } + }; + }; +});var Zq=X((INe,Xq)=>{ + 'use strict';Xq.exports=Kq(); +});var rB=X(Ao=>{ + 'use strict';var nV=Ee(),yo=Zq();function ke(e){ + for(var t='https://reactjs.org/docs/error-decoder.html?invariant='+e,r=1;r'u'||typeof window.document>'u'||typeof window.document.createElement>'u'),d2=Object.prototype.hasOwnProperty,Mde=/^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,Jq={},_q={};function Ide(e){ + return d2.call(_q,e)?!0:d2.call(Jq,e)?!1:Mde.test(e)?_q[e]=!0:(Jq[e]=!0,!1); + }function Fde(e,t,r,n){ + if(r!==null&&r.type===0)return!1;switch(typeof t){ + case'function':case'symbol':return!0;case'boolean':return n?!1:r!==null?!r.acceptsBooleans:(e=e.toLowerCase().slice(0,5),e!=='data-'&&e!=='aria-');default:return!1; + } + }function qde(e,t,r,n){ + if(t===null||typeof t>'u'||Fde(e,t,r,n))return!0;if(n)return!1;if(r!==null)switch(r.type){ + case 3:return!t;case 4:return t===!1;case 5:return isNaN(t);case 6:return isNaN(t)||1>t; + }return!1; + }function Ii(e,t,r,n,i,o,s){ + this.acceptsBooleans=t===2||t===3||t===4,this.attributeName=n,this.attributeNamespace=i,this.mustUseProperty=r,this.propertyName=e,this.type=t,this.sanitizeURL=o,this.removeEmptyString=s; + }var Xn={};'children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style'.split(' ').forEach(function(e){ + Xn[e]=new Ii(e,0,!1,e,null,!1,!1); + });[['acceptCharset','accept-charset'],['className','class'],['htmlFor','for'],['httpEquiv','http-equiv']].forEach(function(e){ + var t=e[0];Xn[t]=new Ii(t,1,!1,e[1],null,!1,!1); + });['contentEditable','draggable','spellCheck','value'].forEach(function(e){ + Xn[e]=new Ii(e,2,!1,e.toLowerCase(),null,!1,!1); + });['autoReverse','externalResourcesRequired','focusable','preserveAlpha'].forEach(function(e){ + Xn[e]=new Ii(e,2,!1,e,null,!1,!1); + });'allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope'.split(' ').forEach(function(e){ + Xn[e]=new Ii(e,3,!1,e.toLowerCase(),null,!1,!1); + });['checked','multiple','muted','selected'].forEach(function(e){ + Xn[e]=new Ii(e,3,!0,e,null,!1,!1); + });['capture','download'].forEach(function(e){ + Xn[e]=new Ii(e,4,!1,e,null,!1,!1); + });['cols','rows','size','span'].forEach(function(e){ + Xn[e]=new Ii(e,6,!1,e,null,!1,!1); + });['rowSpan','start'].forEach(function(e){ + Xn[e]=new Ii(e,5,!1,e.toLowerCase(),null,!1,!1); + });var iL=/[\-:]([a-z])/g;function oL(e){ + return e[1].toUpperCase(); + }'accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height'.split(' ').forEach(function(e){ + var t=e.replace(iL,oL);Xn[t]=new Ii(t,1,!1,e,null,!1,!1); + });'xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type'.split(' ').forEach(function(e){ + var t=e.replace(iL,oL);Xn[t]=new Ii(t,1,!1,e,'http://www.w3.org/1999/xlink',!1,!1); + });['xml:base','xml:lang','xml:space'].forEach(function(e){ + var t=e.replace(iL,oL);Xn[t]=new Ii(t,1,!1,e,'http://www.w3.org/XML/1998/namespace',!1,!1); + });['tabIndex','crossOrigin'].forEach(function(e){ + Xn[e]=new Ii(e,1,!1,e.toLowerCase(),null,!1,!1); + });Xn.xlinkHref=new Ii('xlinkHref',1,!1,'xlink:href','http://www.w3.org/1999/xlink',!0,!1);['src','href','action','formAction'].forEach(function(e){ + Xn[e]=new Ii(e,1,!1,e.toLowerCase(),null,!0,!0); + });function aL(e,t,r,n){ + var i=Xn.hasOwnProperty(t)?Xn[t]:null;(i!==null?i.type!==0:n||!(2l||i[s]!==o[l]){ + var c=` +`+i[s].replace(' at new ',' at ');return e.displayName&&c.includes('')&&(c=c.replace('',e.displayName)),c; + }while(1<=s&&0<=l);break; + } + } + }finally{ + QD=!1,Error.prepareStackTrace=r; + }return(e=e?e.displayName||e.name:'')?rg(e):''; + }function jde(e){ + switch(e.tag){ + case 5:return rg(e.type);case 16:return rg('Lazy');case 13:return rg('Suspense');case 19:return rg('SuspenseList');case 0:case 2:case 15:return e=WD(e.type,!1),e;case 11:return e=WD(e.type.render,!1),e;case 1:return e=WD(e.type,!0),e;default:return''; + } + }function v2(e){ + if(e==null)return null;if(typeof e=='function')return e.displayName||e.name||null;if(typeof e=='string')return e;switch(e){ + case Cp:return'Fragment';case Tp:return'Portal';case p2:return'Profiler';case sL:return'StrictMode';case m2:return'Suspense';case h2:return'SuspenseList'; + }if(typeof e=='object')switch(e.$$typeof){ + case aV:return(e.displayName||'Context')+'.Consumer';case oV:return(e._context.displayName||'Context')+'.Provider';case lL:var t=e.render;return e=e.displayName,e||(e=t.displayName||t.name||'',e=e!==''?'ForwardRef('+e+')':'ForwardRef'),e;case uL:return t=e.displayName||null,t!==null?t:v2(e.type)||'Memo';case yu:t=e._payload,e=e._init;try{ + return v2(e(t)); + }catch{} + }return null; + }function Vde(e){ + var t=e.type;switch(e.tag){ + case 24:return'Cache';case 9:return(t.displayName||'Context')+'.Consumer';case 10:return(t._context.displayName||'Context')+'.Provider';case 18:return'DehydratedFragment';case 11:return e=t.render,e=e.displayName||e.name||'',t.displayName||(e!==''?'ForwardRef('+e+')':'ForwardRef');case 7:return'Fragment';case 5:return t;case 4:return'Portal';case 3:return'Root';case 6:return'Text';case 16:return v2(t);case 8:return t===sL?'StrictMode':'Mode';case 22:return'Offscreen';case 12:return'Profiler';case 21:return'Scope';case 13:return'Suspense';case 19:return'SuspenseList';case 25:return'TracingMarker';case 1:case 0:case 17:case 2:case 14:case 15:if(typeof t=='function')return t.displayName||t.name||null;if(typeof t=='string')return t; + }return null; + }function Pu(e){ + switch(typeof e){ + case'boolean':case'number':case'string':case'undefined':return e;case'object':return e;default:return''; + } + }function lV(e){ + var t=e.type;return(e=e.nodeName)&&e.toLowerCase()==='input'&&(t==='checkbox'||t==='radio'); + }function Ude(e){ + var t=lV(e)?'checked':'value',r=Object.getOwnPropertyDescriptor(e.constructor.prototype,t),n=''+e[t];if(!e.hasOwnProperty(t)&&typeof r<'u'&&typeof r.get=='function'&&typeof r.set=='function'){ + var i=r.get,o=r.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){ + return i.call(this); + },set:function(s){ + n=''+s,o.call(this,s); + }}),Object.defineProperty(e,t,{enumerable:r.enumerable}),{getValue:function(){ + return n; + },setValue:function(s){ + n=''+s; + },stopTracking:function(){ + e._valueTracker=null,delete e[t]; + }}; + } + }function $A(e){ + e._valueTracker||(e._valueTracker=Ude(e)); + }function uV(e){ + if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var r=t.getValue(),n='';return e&&(n=lV(e)?e.checked?'true':'false':e.value),e=n,e!==r?(t.setValue(e),!0):!1; + }function k1(e){ + if(e=e||(typeof document<'u'?document:void 0),typeof e>'u')return null;try{ + return e.activeElement||e.body; + }catch{ + return e.body; + } + }function g2(e,t){ + var r=t.checked;return Mr({},t,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:r??e._wrapperState.initialChecked}); + }function ej(e,t){ + var r=t.defaultValue==null?'':t.defaultValue,n=t.checked!=null?t.checked:t.defaultChecked;r=Pu(t.value!=null?t.value:r),e._wrapperState={initialChecked:n,initialValue:r,controlled:t.type==='checkbox'||t.type==='radio'?t.checked!=null:t.value!=null}; + }function cV(e,t){ + t=t.checked,t!=null&&aL(e,'checked',t,!1); + }function y2(e,t){ + cV(e,t);var r=Pu(t.value),n=t.type;if(r!=null)n==='number'?(r===0&&e.value===''||e.value!=r)&&(e.value=''+r):e.value!==''+r&&(e.value=''+r);else if(n==='submit'||n==='reset'){ + e.removeAttribute('value');return; + }t.hasOwnProperty('value')?b2(e,t.type,r):t.hasOwnProperty('defaultValue')&&b2(e,t.type,Pu(t.defaultValue)),t.checked==null&&t.defaultChecked!=null&&(e.defaultChecked=!!t.defaultChecked); + }function tj(e,t,r){ + if(t.hasOwnProperty('value')||t.hasOwnProperty('defaultValue')){ + var n=t.type;if(!(n!=='submit'&&n!=='reset'||t.value!==void 0&&t.value!==null))return;t=''+e._wrapperState.initialValue,r||t===e.value||(e.value=t),e.defaultValue=t; + }r=e.name,r!==''&&(e.name=''),e.defaultChecked=!!e._wrapperState.initialChecked,r!==''&&(e.name=r); + }function b2(e,t,r){ + (t!=='number'||k1(e.ownerDocument)!==e)&&(r==null?e.defaultValue=''+e._wrapperState.initialValue:e.defaultValue!==''+r&&(e.defaultValue=''+r)); + }var ng=Array.isArray;function Fp(e,t,r,n){ + if(e=e.options,t){ + t={};for(var i=0;i'+t.valueOf().toString()+'',t=e1.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;t.firstChild;)e.appendChild(t.firstChild); + } + });function vg(e,t){ + if(t){ + var r=e.firstChild;if(r&&r===e.lastChild&&r.nodeType===3){ + r.nodeValue=t;return; + } + }e.textContent=t; + }var ag={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},Bde=['Webkit','ms','Moz','O'];Object.keys(ag).forEach(function(e){ + Bde.forEach(function(t){ + t=t+e.charAt(0).toUpperCase()+e.substring(1),ag[t]=ag[e]; + }); + });function mV(e,t,r){ + return t==null||typeof t=='boolean'||t===''?'':r||typeof t!='number'||t===0||ag.hasOwnProperty(e)&&ag[e]?(''+t).trim():t+'px'; + }function hV(e,t){ + e=e.style;for(var r in t)if(t.hasOwnProperty(r)){ + var n=r.indexOf('--')===0,i=mV(r,t[r],n);r==='float'&&(r='cssFloat'),n?e.setProperty(r,i):e[r]=i; + } + }var Gde=Mr({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function w2(e,t){ + if(t){ + if(Gde[e]&&(t.children!=null||t.dangerouslySetInnerHTML!=null))throw Error(ke(137,e));if(t.dangerouslySetInnerHTML!=null){ + if(t.children!=null)throw Error(ke(60));if(typeof t.dangerouslySetInnerHTML!='object'||!('__html'in t.dangerouslySetInnerHTML))throw Error(ke(61)); + }if(t.style!=null&&typeof t.style!='object')throw Error(ke(62)); + } + }function E2(e,t){ + if(e.indexOf('-')===-1)return typeof t.is=='string';switch(e){ + case'annotation-xml':case'color-profile':case'font-face':case'font-face-src':case'font-face-uri':case'font-face-format':case'font-face-name':case'missing-glyph':return!1;default:return!0; + } + }var T2=null;function cL(e){ + return e=e.target||e.srcElement||window,e.correspondingUseElement&&(e=e.correspondingUseElement),e.nodeType===3?e.parentNode:e; + }var C2=null,qp=null,jp=null;function ij(e){ + if(e=Mg(e)){ + if(typeof C2!='function')throw Error(ke(280));var t=e.stateNode;t&&(t=tx(t),C2(e.stateNode,e.type,t)); + } + }function vV(e){ + qp?jp?jp.push(e):jp=[e]:qp=e; + }function gV(){ + if(qp){ + var e=qp,t=jp;if(jp=qp=null,ij(e),t)for(e=0;e>>=0,e===0?32:31-($de(e)/epe|0)|0; + }var t1=64,r1=4194304;function ig(e){ + switch(e&-e){ + case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return e&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return e&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return e; + } + }function L1(e,t){ + var r=e.pendingLanes;if(r===0)return 0;var n=0,i=e.suspendedLanes,o=e.pingedLanes,s=r&268435455;if(s!==0){ + var l=s&~i;l!==0?n=ig(l):(o&=s,o!==0&&(n=ig(o))); + }else s=r&~i,s!==0?n=ig(s):o!==0&&(n=ig(o));if(n===0)return 0;if(t!==0&&t!==n&&!(t&i)&&(i=n&-n,o=t&-t,i>=o||i===16&&(o&4194240)!==0))return t;if(n&4&&(n|=r&16),t=e.entangledLanes,t!==0)for(e=e.entanglements,t&=n;0r;r++)t.push(e);return t; + }function Pg(e,t,r){ + e.pendingLanes|=t,t!==536870912&&(e.suspendedLanes=0,e.pingedLanes=0),e=e.eventTimes,t=31-Na(t),e[t]=r; + }function ipe(e,t){ + var r=e.pendingLanes&~t;e.pendingLanes=t,e.suspendedLanes=0,e.pingedLanes=0,e.expiredLanes&=t,e.mutableReadLanes&=t,e.entangledLanes&=t,t=e.entanglements;var n=e.eventTimes;for(e=e.expirationTimes;0=lg),pj=String.fromCharCode(32),mj=!1;function qV(e,t){ + switch(e){ + case'keyup':return Ppe.indexOf(t.keyCode)!==-1;case'keydown':return t.keyCode!==229;case'keypress':case'mousedown':case'focusout':return!0;default:return!1; + } + }function jV(e){ + return e=e.detail,typeof e=='object'&&'data'in e?e.data:null; + }var Sp=!1;function Mpe(e,t){ + switch(e){ + case'compositionend':return jV(t);case'keypress':return t.which!==32?null:(mj=!0,pj);case'textInput':return e=t.data,e===pj&&mj?null:e;default:return null; + } + }function Ipe(e,t){ + if(Sp)return e==='compositionend'||!yL&&qV(e,t)?(e=IV(),y1=hL=wu=null,Sp=!1,e):null;switch(e){ + case'paste':return null;case'keypress':if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){ + if(t.char&&1=t)return{node:r,offset:t-e};e=n; + }e:{ + for(;r;){ + if(r.nextSibling){ + r=r.nextSibling;break e; + }r=r.parentNode; + }r=void 0; + }r=gj(r); + } + }function GV(e,t){ + return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?GV(e,t.parentNode):'contains'in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1; + }function zV(){ + for(var e=window,t=k1();t instanceof e.HTMLIFrameElement;){ + try{ + var r=typeof t.contentWindow.location.href=='string'; + }catch{ + r=!1; + }if(r)e=t.contentWindow;else break;t=k1(e.document); + }return t; + }function bL(e){ + var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&(t==='input'&&(e.type==='text'||e.type==='search'||e.type==='tel'||e.type==='url'||e.type==='password')||t==='textarea'||e.contentEditable==='true'); + }function Hpe(e){ + var t=zV(),r=e.focusedElem,n=e.selectionRange;if(t!==r&&r&&r.ownerDocument&&GV(r.ownerDocument.documentElement,r)){ + if(n!==null&&bL(r)){ + if(t=n.start,e=n.end,e===void 0&&(e=t),'selectionStart'in r)r.selectionStart=t,r.selectionEnd=Math.min(e,r.value.length);else if(e=(t=r.ownerDocument||document)&&t.defaultView||window,e.getSelection){ + e=e.getSelection();var i=r.textContent.length,o=Math.min(n.start,i);n=n.end===void 0?o:Math.min(n.end,i),!e.extend&&o>n&&(i=n,n=o,o=i),i=yj(r,o);var s=yj(r,n);i&&s&&(e.rangeCount!==1||e.anchorNode!==i.node||e.anchorOffset!==i.offset||e.focusNode!==s.node||e.focusOffset!==s.offset)&&(t=t.createRange(),t.setStart(i.node,i.offset),e.removeAllRanges(),o>n?(e.addRange(t),e.extend(s.node,s.offset)):(t.setEnd(s.node,s.offset),e.addRange(t))); + } + }for(t=[],e=r;e=e.parentNode;)e.nodeType===1&&t.push({element:e,left:e.scrollLeft,top:e.scrollTop});for(typeof r.focus=='function'&&r.focus(),r=0;r=document.documentMode,kp=null,L2=null,cg=null,P2=!1;function bj(e,t,r){ + var n=r.window===r?r.document:r.nodeType===9?r:r.ownerDocument;P2||kp==null||kp!==k1(n)||(n=kp,'selectionStart'in n&&bL(n)?n={start:n.selectionStart,end:n.selectionEnd}:(n=(n.ownerDocument&&n.ownerDocument.defaultView||window).getSelection(),n={anchorNode:n.anchorNode,anchorOffset:n.anchorOffset,focusNode:n.focusNode,focusOffset:n.focusOffset}),cg&&wg(cg,n)||(cg=n,n=M1(L2,'onSelect'),0Dp||(e.current=j2[Dp],j2[Dp]=null,Dp--); + }function ur(e,t){ + Dp++,j2[Dp]=e.current,e.current=t; + }var Ru={},mi=Iu(Ru),Yi=Iu(!1),sf=Ru;function zp(e,t){ + var r=e.type.contextTypes;if(!r)return Ru;var n=e.stateNode;if(n&&n.__reactInternalMemoizedUnmaskedChildContext===t)return n.__reactInternalMemoizedMaskedChildContext;var i={},o;for(o in r)i[o]=t[o];return n&&(e=e.stateNode,e.__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=i),i; + }function Ki(e){ + return e=e.childContextTypes,e!=null; + }function F1(){ + yr(Yi),yr(mi); + }function Oj(e,t,r){ + if(mi.current!==Ru)throw Error(ke(168));ur(mi,t),ur(Yi,r); + }function _V(e,t,r){ + var n=e.stateNode;if(t=t.childContextTypes,typeof n.getChildContext!='function')return r;n=n.getChildContext();for(var i in n)if(!(i in t))throw Error(ke(108,Vde(e)||'Unknown',i));return Mr({},r,n); + }function q1(e){ + return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||Ru,sf=mi.current,ur(mi,e),ur(Yi,Yi.current),!0; + }function Nj(e,t,r){ + var n=e.stateNode;if(!n)throw Error(ke(169));r?(e=_V(e,t,sf),n.__reactInternalMemoizedMergedChildContext=e,yr(Yi),yr(mi),ur(mi,e)):yr(Yi),ur(Yi,r); + }var ll=null,rx=!1,n2=!1;function $V(e){ + ll===null?ll=[e]:ll.push(e); + }function eme(e){ + rx=!0,$V(e); + }function Fu(){ + if(!n2&&ll!==null){ + n2=!0;var e=0,t=Jt;try{ + var r=ll;for(Jt=1;e>=s,i-=s,ul=1<<32-Na(t)+i|r<N?(I=D,D=null):I=D.sibling;var V=g(A,D,C[N],x);if(V===null){ + D===null&&(D=I);break; + }e&&D&&V.alternate===null&&t(A,D),b=o(V,b,N),P===null?k=V:P.sibling=V,P=V,D=I; + }if(N===C.length)return r(A,D),Sr&&$c(A,N),k;if(D===null){ + for(;NN?(I=D,D=null):I=D.sibling;var G=g(A,D,V.value,x);if(G===null){ + D===null&&(D=I);break; + }e&&D&&G.alternate===null&&t(A,D),b=o(G,b,N),P===null?k=G:P.sibling=G,P=G,D=I; + }if(V.done)return r(A,D),Sr&&$c(A,N),k;if(D===null){ + for(;!V.done;N++,V=C.next())V=v(A,V.value,x),V!==null&&(b=o(V,b,N),P===null?k=V:P.sibling=V,P=V);return Sr&&$c(A,N),k; + }for(D=n(A,D);!V.done;N++,V=C.next())V=y(D,A,N,V.value,x),V!==null&&(e&&V.alternate!==null&&D.delete(V.key===null?N:V.key),b=o(V,b,N),P===null?k=V:P.sibling=V,P=V);return e&&D.forEach(function(B){ + return t(A,B); + }),Sr&&$c(A,N),k; + }function S(A,b,C,x){ + if(typeof C=='object'&&C!==null&&C.type===Cp&&C.key===null&&(C=C.props.children),typeof C=='object'&&C!==null){ + switch(C.$$typeof){ + case _A:e:{ + for(var k=C.key,P=b;P!==null;){ + if(P.key===k){ + if(k=C.type,k===Cp){ + if(P.tag===7){ + r(A,P.sibling),b=i(P,C.props.children),b.return=A,A=b;break e; + } + }else if(P.elementType===k||typeof k=='object'&&k!==null&&k.$$typeof===yu&&Fj(k)===P.type){ + r(A,P.sibling),b=i(P,C.props),b.ref=_v(A,P,C),b.return=A,A=b;break e; + }r(A,P);break; + }else t(A,P);P=P.sibling; + }C.type===Cp?(b=af(C.props.children,A.mode,x,C.key),b.return=A,A=b):(x=S1(C.type,C.key,C.props,null,A.mode,x),x.ref=_v(A,b,C),x.return=A,A=x); + }return s(A);case Tp:e:{ + for(P=C.key;b!==null;){ + if(b.key===P)if(b.tag===4&&b.stateNode.containerInfo===C.containerInfo&&b.stateNode.implementation===C.implementation){ + r(A,b.sibling),b=i(b,C.children||[]),b.return=A,A=b;break e; + }else{ + r(A,b);break; + }else t(A,b);b=b.sibling; + }b=f2(C,A.mode,x),b.return=A,A=b; + }return s(A);case yu:return P=C._init,S(A,b,P(C._payload),x); + }if(ng(C))return w(A,b,C,x);if(Kv(C))return T(A,b,C,x);p1(A,C); + }return typeof C=='string'&&C!==''||typeof C=='number'?(C=''+C,b!==null&&b.tag===6?(r(A,b.sibling),b=i(b,C),b.return=A,A=b):(r(A,b),b=c2(C,A.mode,x),b.return=A,A=b),s(A)):r(A,b); + }return S; + }var Qp=sU(!0),lU=sU(!1),Ig={},ys=Iu(Ig),Sg=Iu(Ig),kg=Iu(Ig);function nf(e){ + if(e===Ig)throw Error(ke(174));return e; + }function OL(e,t){ + switch(ur(kg,t),ur(Sg,e),ur(ys,Ig),e=t.nodeType,e){ + case 9:case 11:t=(t=t.documentElement)?t.namespaceURI:x2(null,'');break;default:e=e===8?t.parentNode:t,t=e.namespaceURI||null,e=e.tagName,t=x2(t,e); + }yr(ys),ur(ys,t); + }function Wp(){ + yr(ys),yr(Sg),yr(kg); + }function uU(e){ + nf(kg.current);var t=nf(ys.current),r=x2(t,e.type);t!==r&&(ur(Sg,e),ur(ys,r)); + }function NL(e){ + Sg.current===e&&(yr(ys),yr(Sg)); + }var Pr=Iu(0);function z1(e){ + for(var t=e;t!==null;){ + if(t.tag===13){ + var r=t.memoizedState;if(r!==null&&(r=r.dehydrated,r===null||r.data==='$?'||r.data==='$!'))return t; + }else if(t.tag===19&&t.memoizedProps.revealOrder!==void 0){ + if(t.flags&128)return t; + }else if(t.child!==null){ + t.child.return=t,t=t.child;continue; + }if(t===e)break;for(;t.sibling===null;){ + if(t.return===null||t.return===e)return null;t=t.return; + }t.sibling.return=t.return,t=t.sibling; + }return null; + }var i2=[];function DL(){ + for(var e=0;er?r:4,e(!0);var n=o2.transition;o2.transition={};try{ + e(!1),t(); + }finally{ + Jt=r,o2.transition=n; + } + }function CU(){ + return Ko().memoizedState; + }function ime(e,t,r){ + var n=Du(e);if(r={lane:n,action:r,hasEagerState:!1,eagerState:null,next:null},SU(e))kU(t,r);else if(r=nU(e,t,r,n),r!==null){ + var i=Mi();Da(r,e,n,i),OU(r,t,n); + } + }function ome(e,t,r){ + var n=Du(e),i={lane:n,action:r,hasEagerState:!1,eagerState:null,next:null};if(SU(e))kU(t,i);else{ + var o=e.alternate;if(e.lanes===0&&(o===null||o.lanes===0)&&(o=t.lastRenderedReducer,o!==null))try{ + var s=t.lastRenderedState,l=o(s,r);if(i.hasEagerState=!0,i.eagerState=l,La(l,s)){ + var c=t.interleaved;c===null?(i.next=i,SL(t)):(i.next=c.next,c.next=i),t.interleaved=i;return; + } + }catch{}finally{}r=nU(e,t,i,n),r!==null&&(i=Mi(),Da(r,e,n,i),OU(r,t,n)); + } + }function SU(e){ + var t=e.alternate;return e===Rr||t!==null&&t===Rr; + }function kU(e,t){ + fg=H1=!0;var r=e.pending;r===null?t.next=t:(t.next=r.next,r.next=t),e.pending=t; + }function OU(e,t,r){ + if(r&4194240){ + var n=t.lanes;n&=e.pendingLanes,r|=n,t.lanes=r,dL(e,r); + } + }var Q1={readContext:Yo,useCallback:fi,useContext:fi,useEffect:fi,useImperativeHandle:fi,useInsertionEffect:fi,useLayoutEffect:fi,useMemo:fi,useReducer:fi,useRef:fi,useState:fi,useDebugValue:fi,useDeferredValue:fi,useTransition:fi,useMutableSource:fi,useSyncExternalStore:fi,useId:fi,unstable_isNewReconciler:!1},ame={readContext:Yo,useCallback:function(e,t){ + return hs().memoizedState=[e,t===void 0?null:t],e; + },useContext:Yo,useEffect:jj,useImperativeHandle:function(e,t,r){ + return r=r!=null?r.concat([e]):null,w1(4194308,4,AU.bind(null,t,e),r); + },useLayoutEffect:function(e,t){ + return w1(4194308,4,e,t); + },useInsertionEffect:function(e,t){ + return w1(4,2,e,t); + },useMemo:function(e,t){ + var r=hs();return t=t===void 0?null:t,e=e(),r.memoizedState=[e,t],e; + },useReducer:function(e,t,r){ + var n=hs();return t=r!==void 0?r(t):t,n.memoizedState=n.baseState=t,e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:t},n.queue=e,e=e.dispatch=ime.bind(null,Rr,e),[n.memoizedState,e]; + },useRef:function(e){ + var t=hs();return e={current:e},t.memoizedState=e; + },useState:qj,useDebugValue:IL,useDeferredValue:function(e){ + return hs().memoizedState=e; + },useTransition:function(){ + var e=qj(!1),t=e[0];return e=nme.bind(null,e[1]),hs().memoizedState=e,[t,e]; + },useMutableSource:function(){},useSyncExternalStore:function(e,t,r){ + var n=Rr,i=hs();if(Sr){ + if(r===void 0)throw Error(ke(407));r=r(); + }else{ + if(r=t(),Pn===null)throw Error(ke(349));uf&30||dU(n,t,r); + }i.memoizedState=r;var o={value:r,getSnapshot:t};return i.queue=o,jj(mU.bind(null,n,o,e),[e]),n.flags|=2048,Dg(9,pU.bind(null,n,o,r,t),void 0,null),r; + },useId:function(){ + var e=hs(),t=Pn.identifierPrefix;if(Sr){ + var r=cl,n=ul;r=(n&~(1<<32-Na(n)-1)).toString(32)+r,t=':'+t+'R'+r,r=Og++,0<\/script>',e=e.removeChild(e.firstChild)):typeof n.is=='string'?e=s.createElement(r,{is:n.is}):(e=s.createElement(r),r==='select'&&(s=e,n.multiple?s.multiple=!0:n.size&&(s.size=n.size))):e=s.createElementNS(e,r),e[vs]=t,e[Cg]=n,qU(e,t,!1,!1),t.stateNode=e;e:{ + switch(s=E2(r,n),r){ + case'dialog':gr('cancel',e),gr('close',e),i=n;break;case'iframe':case'object':case'embed':gr('load',e),i=n;break;case'video':case'audio':for(i=0;iKp&&(t.flags|=128,n=!0,$v(o,!1),t.lanes=4194304); + }else{ + if(!n)if(e=z1(s),e!==null){ + if(t.flags|=128,n=!0,r=e.updateQueue,r!==null&&(t.updateQueue=r,t.flags|=4),$v(o,!0),o.tail===null&&o.tailMode==='hidden'&&!s.alternate&&!Sr)return di(t),null; + }else 2*Kr()-o.renderingStartTime>Kp&&r!==1073741824&&(t.flags|=128,n=!0,$v(o,!1),t.lanes=4194304);o.isBackwards?(s.sibling=t.child,t.child=s):(r=o.last,r!==null?r.sibling=s:t.child=s,o.last=s); + }return o.tail!==null?(t=o.tail,o.rendering=t,o.tail=t.sibling,o.renderingStartTime=Kr(),t.sibling=null,r=Pr.current,ur(Pr,n?r&1|2:r&1),t):(di(t),null);case 22:case 23:return BL(),n=t.memoizedState!==null,e!==null&&e.memoizedState!==null!==n&&(t.flags|=8192),n&&t.mode&1?ho&1073741824&&(di(t),t.subtreeFlags&6&&(t.flags|=8192)):di(t),null;case 24:return null;case 25:return null; + }throw Error(ke(156,t.tag)); + }function mme(e,t){ + switch(xL(t),t.tag){ + case 1:return Ki(t.type)&&F1(),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return Wp(),yr(Yi),yr(mi),DL(),e=t.flags,e&65536&&!(e&128)?(t.flags=e&-65537|128,t):null;case 5:return NL(t),null;case 13:if(yr(Pr),e=t.memoizedState,e!==null&&e.dehydrated!==null){ + if(t.alternate===null)throw Error(ke(340));Hp(); + }return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return yr(Pr),null;case 4:return Wp(),null;case 10:return CL(t.type._context),null;case 22:case 23:return BL(),null;case 24:return null;default:return null; + } + }var h1=!1,pi=!1,hme=typeof WeakSet=='function'?WeakSet:Set,We=null;function Mp(e,t){ + var r=e.ref;if(r!==null)if(typeof r=='function')try{ + r(null); + }catch(n){ + Br(e,t,n); + }else r.current=null; + }function Z2(e,t,r){ + try{ + r(); + }catch(n){ + Br(e,t,n); + } + }var Yj=!1;function vme(e,t){ + if(R2=P1,e=zV(),bL(e)){ + if('selectionStart'in e)var r={start:e.selectionStart,end:e.selectionEnd};else e:{ + r=(r=e.ownerDocument)&&r.defaultView||window;var n=r.getSelection&&r.getSelection();if(n&&n.rangeCount!==0){ + r=n.anchorNode;var i=n.anchorOffset,o=n.focusNode;n=n.focusOffset;try{ + r.nodeType,o.nodeType; + }catch{ + r=null;break e; + }var s=0,l=-1,c=-1,f=0,m=0,v=e,g=null;t:for(;;){ + for(var y;v!==r||i!==0&&v.nodeType!==3||(l=s+i),v!==o||n!==0&&v.nodeType!==3||(c=s+n),v.nodeType===3&&(s+=v.nodeValue.length),(y=v.firstChild)!==null;)g=v,v=y;for(;;){ + if(v===e)break t;if(g===r&&++f===i&&(l=s),g===o&&++m===n&&(c=s),(y=v.nextSibling)!==null)break;v=g,g=v.parentNode; + }v=y; + }r=l===-1||c===-1?null:{start:l,end:c}; + }else r=null; + }r=r||{start:0,end:0}; + }else r=null;for(M2={focusedElem:e,selectionRange:r},P1=!1,We=t;We!==null;)if(t=We,e=t.child,(t.subtreeFlags&1028)!==0&&e!==null)e.return=t,We=e;else for(;We!==null;){ + t=We;try{ + var w=t.alternate;if(t.flags&1024)switch(t.tag){ + case 0:case 11:case 15:break;case 1:if(w!==null){ + var T=w.memoizedProps,S=w.memoizedState,A=t.stateNode,b=A.getSnapshotBeforeUpdate(t.elementType===t.type?T:Sa(t.type,T),S);A.__reactInternalSnapshotBeforeUpdate=b; + }break;case 3:var C=t.stateNode.containerInfo;C.nodeType===1?C.textContent='':C.nodeType===9&&C.documentElement&&C.removeChild(C.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(ke(163)); + } + }catch(x){ + Br(t,t.return,x); + }if(e=t.sibling,e!==null){ + e.return=t.return,We=e;break; + }We=t.return; + }return w=Yj,Yj=!1,w; + }function dg(e,t,r){ + var n=t.updateQueue;if(n=n!==null?n.lastEffect:null,n!==null){ + var i=n=n.next;do{ + if((i.tag&e)===e){ + var o=i.destroy;i.destroy=void 0,o!==void 0&&Z2(t,r,o); + }i=i.next; + }while(i!==n); + } + }function ox(e,t){ + if(t=t.updateQueue,t=t!==null?t.lastEffect:null,t!==null){ + var r=t=t.next;do{ + if((r.tag&e)===e){ + var n=r.create;r.destroy=n(); + }r=r.next; + }while(r!==t); + } + }function J2(e){ + var t=e.ref;if(t!==null){ + var r=e.stateNode;switch(e.tag){ + case 5:e=r;break;default:e=r; + }typeof t=='function'?t(e):t.current=e; + } + }function UU(e){ + var t=e.alternate;t!==null&&(e.alternate=null,UU(t)),e.child=null,e.deletions=null,e.sibling=null,e.tag===5&&(t=e.stateNode,t!==null&&(delete t[vs],delete t[Cg],delete t[q2],delete t[_pe],delete t[$pe])),e.stateNode=null,e.return=null,e.dependencies=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.stateNode=null,e.updateQueue=null; + }function BU(e){ + return e.tag===5||e.tag===3||e.tag===4; + }function Kj(e){ + e:for(;;){ + for(;e.sibling===null;){ + if(e.return===null||BU(e.return))return null;e=e.return; + }for(e.sibling.return=e.return,e=e.sibling;e.tag!==5&&e.tag!==6&&e.tag!==18;){ + if(e.flags&2||e.child===null||e.tag===4)continue e;e.child.return=e,e=e.child; + }if(!(e.flags&2))return e.stateNode; + } + }function _2(e,t,r){ + var n=e.tag;if(n===5||n===6)e=e.stateNode,t?r.nodeType===8?r.parentNode.insertBefore(e,t):r.insertBefore(e,t):(r.nodeType===8?(t=r.parentNode,t.insertBefore(e,r)):(t=r,t.appendChild(e)),r=r._reactRootContainer,r!=null||t.onclick!==null||(t.onclick=I1));else if(n!==4&&(e=e.child,e!==null))for(_2(e,t,r),e=e.sibling;e!==null;)_2(e,t,r),e=e.sibling; + }function $2(e,t,r){ + var n=e.tag;if(n===5||n===6)e=e.stateNode,t?r.insertBefore(e,t):r.appendChild(e);else if(n!==4&&(e=e.child,e!==null))for($2(e,t,r),e=e.sibling;e!==null;)$2(e,t,r),e=e.sibling; + }var Yn=null,ka=!1;function gu(e,t,r){ + for(r=r.child;r!==null;)GU(e,t,r),r=r.sibling; + }function GU(e,t,r){ + if(gs&&typeof gs.onCommitFiberUnmount=='function')try{ + gs.onCommitFiberUnmount(J1,r); + }catch{}switch(r.tag){ + case 5:pi||Mp(r,t);case 6:var n=Yn,i=ka;Yn=null,gu(e,t,r),Yn=n,ka=i,Yn!==null&&(ka?(e=Yn,r=r.stateNode,e.nodeType===8?e.parentNode.removeChild(r):e.removeChild(r)):Yn.removeChild(r.stateNode));break;case 18:Yn!==null&&(ka?(e=Yn,r=r.stateNode,e.nodeType===8?r2(e.parentNode,r):e.nodeType===1&&r2(e,r),Ag(e)):r2(Yn,r.stateNode));break;case 4:n=Yn,i=ka,Yn=r.stateNode.containerInfo,ka=!0,gu(e,t,r),Yn=n,ka=i;break;case 0:case 11:case 14:case 15:if(!pi&&(n=r.updateQueue,n!==null&&(n=n.lastEffect,n!==null))){ + i=n=n.next;do{ + var o=i,s=o.destroy;o=o.tag,s!==void 0&&(o&2||o&4)&&Z2(r,t,s),i=i.next; + }while(i!==n); + }gu(e,t,r);break;case 1:if(!pi&&(Mp(r,t),n=r.stateNode,typeof n.componentWillUnmount=='function'))try{ + n.props=r.memoizedProps,n.state=r.memoizedState,n.componentWillUnmount(); + }catch(l){ + Br(r,t,l); + }gu(e,t,r);break;case 21:gu(e,t,r);break;case 22:r.mode&1?(pi=(n=pi)||r.memoizedState!==null,gu(e,t,r),pi=n):gu(e,t,r);break;default:gu(e,t,r); + } + }function Xj(e){ + var t=e.updateQueue;if(t!==null){ + e.updateQueue=null;var r=e.stateNode;r===null&&(r=e.stateNode=new hme),t.forEach(function(n){ + var i=Cme.bind(null,e,n);r.has(n)||(r.add(n),n.then(i,i)); + }); + } + }function Ca(e,t){ + var r=t.deletions;if(r!==null)for(var n=0;ni&&(i=s),n&=~o; + }if(n=i,n=Kr()-n,n=(120>n?120:480>n?480:1080>n?1080:1920>n?1920:3e3>n?3e3:4320>n?4320:1960*yme(n/1960))-n,10e?16:e,Eu===null)var n=!1;else{ + if(e=Eu,Eu=null,K1=0,It&6)throw Error(ke(331));var i=It;for(It|=4,We=e.current;We!==null;){ + var o=We,s=o.child;if(We.flags&16){ + var l=o.deletions;if(l!==null){ + for(var c=0;cKr()-VL?of(e,0):jL|=r),Xi(e,t); + }function ZU(e,t){ + t===0&&(e.mode&1?(t=r1,r1<<=1,!(r1&130023424)&&(r1=4194304)):t=1);var r=Mi();e=ml(e,t),e!==null&&(Pg(e,t,r),Xi(e,r)); + }function Tme(e){ + var t=e.memoizedState,r=0;t!==null&&(r=t.retryLane),ZU(e,r); + }function Cme(e,t){ + var r=0;switch(e.tag){ + case 13:var n=e.stateNode,i=e.memoizedState;i!==null&&(r=i.retryLane);break;case 19:n=e.stateNode;break;default:throw Error(ke(314)); + }n!==null&&n.delete(t),ZU(e,r); + }var JU;JU=function(e,t,r){ + if(e!==null)if(e.memoizedProps!==t.pendingProps||Yi.current)Wi=!0;else{ + if(!(e.lanes&r)&&!(t.flags&128))return Wi=!1,dme(e,t,r);Wi=!!(e.flags&131072); + }else Wi=!1,Sr&&t.flags&1048576&&eU(t,V1,t.index);switch(t.lanes=0,t.tag){ + case 2:var n=t.type;E1(e,t),e=t.pendingProps;var i=zp(t,mi.current);Up(t,r),i=PL(null,t,n,e,i,r);var o=RL();return t.flags|=1,typeof i=='object'&&i!==null&&typeof i.render=='function'&&i.$$typeof===void 0?(t.tag=1,t.memoizedState=null,t.updateQueue=null,Ki(n)?(o=!0,q1(t)):o=!1,t.memoizedState=i.state!==null&&i.state!==void 0?i.state:null,kL(t),i.updater=nx,t.stateNode=i,i._reactInternals=t,z2(t,n,e,r),t=W2(null,t,n,!0,o,r)):(t.tag=0,Sr&&o&&AL(t),Ri(null,t,i,r),t=t.child),t;case 16:n=t.elementType;e:{ + switch(E1(e,t),e=t.pendingProps,i=n._init,n=i(n._payload),t.type=n,i=t.tag=kme(n),e=Sa(n,e),i){ + case 0:t=Q2(null,t,n,e,r);break e;case 1:t=Hj(null,t,n,e,r);break e;case 11:t=Gj(null,t,n,e,r);break e;case 14:t=zj(null,t,n,Sa(n.type,e),r);break e; + }throw Error(ke(306,n,'')); + }return t;case 0:return n=t.type,i=t.pendingProps,i=t.elementType===n?i:Sa(n,i),Q2(e,t,n,i,r);case 1:return n=t.type,i=t.pendingProps,i=t.elementType===n?i:Sa(n,i),Hj(e,t,n,i,r);case 3:e:{ + if(MU(t),e===null)throw Error(ke(387));n=t.pendingProps,o=t.memoizedState,i=o.element,iU(e,t),G1(t,n,null,r);var s=t.memoizedState;if(n=s.element,o.isDehydrated)if(o={element:n,isDehydrated:!1,cache:s.cache,pendingSuspenseBoundaries:s.pendingSuspenseBoundaries,transitions:s.transitions},t.updateQueue.baseState=o,t.memoizedState=o,t.flags&256){ + i=Yp(Error(ke(423)),t),t=Qj(e,t,n,r,i);break e; + }else if(n!==i){ + i=Yp(Error(ke(424)),t),t=Qj(e,t,n,r,i);break e; + }else for(vo=ku(t.stateNode.containerInfo.firstChild),go=t,Sr=!0,Oa=null,r=lU(t,null,n,r),t.child=r;r;)r.flags=r.flags&-3|4096,r=r.sibling;else{ + if(Hp(),n===i){ + t=hl(e,t,r);break e; + }Ri(e,t,n,r); + }t=t.child; + }return t;case 5:return uU(t),e===null&&U2(t),n=t.type,i=t.pendingProps,o=e!==null?e.memoizedProps:null,s=i.children,I2(n,i)?s=null:o!==null&&I2(n,o)&&(t.flags|=32),RU(e,t),Ri(e,t,s,r),t.child;case 6:return e===null&&U2(t),null;case 13:return IU(e,t,r);case 4:return OL(t,t.stateNode.containerInfo),n=t.pendingProps,e===null?t.child=Qp(t,null,n,r):Ri(e,t,n,r),t.child;case 11:return n=t.type,i=t.pendingProps,i=t.elementType===n?i:Sa(n,i),Gj(e,t,n,i,r);case 7:return Ri(e,t,t.pendingProps,r),t.child;case 8:return Ri(e,t,t.pendingProps.children,r),t.child;case 12:return Ri(e,t,t.pendingProps.children,r),t.child;case 10:e:{ + if(n=t.type._context,i=t.pendingProps,o=t.memoizedProps,s=i.value,ur(U1,n._currentValue),n._currentValue=s,o!==null)if(La(o.value,s)){ + if(o.children===i.children&&!Yi.current){ + t=hl(e,t,r);break e; + } + }else for(o=t.child,o!==null&&(o.return=t);o!==null;){ + var l=o.dependencies;if(l!==null){ + s=o.child;for(var c=l.firstContext;c!==null;){ + if(c.context===n){ + if(o.tag===1){ + c=fl(-1,r&-r),c.tag=2;var f=o.updateQueue;if(f!==null){ + f=f.shared;var m=f.pending;m===null?c.next=c:(c.next=m.next,m.next=c),f.pending=c; + } + }o.lanes|=r,c=o.alternate,c!==null&&(c.lanes|=r),B2(o.return,r,t),l.lanes|=r;break; + }c=c.next; + } + }else if(o.tag===10)s=o.type===t.type?null:o.child;else if(o.tag===18){ + if(s=o.return,s===null)throw Error(ke(341));s.lanes|=r,l=s.alternate,l!==null&&(l.lanes|=r),B2(s,r,t),s=o.sibling; + }else s=o.child;if(s!==null)s.return=o;else for(s=o;s!==null;){ + if(s===t){ + s=null;break; + }if(o=s.sibling,o!==null){ + o.return=s.return,s=o;break; + }s=s.return; + }o=s; + }Ri(e,t,i.children,r),t=t.child; + }return t;case 9:return i=t.type,n=t.pendingProps.children,Up(t,r),i=Yo(i),n=n(i),t.flags|=1,Ri(e,t,n,r),t.child;case 14:return n=t.type,i=Sa(n,t.pendingProps),i=Sa(n.type,i),zj(e,t,n,i,r);case 15:return LU(e,t,t.type,t.pendingProps,r);case 17:return n=t.type,i=t.pendingProps,i=t.elementType===n?i:Sa(n,i),E1(e,t),t.tag=1,Ki(n)?(e=!0,q1(t)):e=!1,Up(t,r),aU(t,n,i),z2(t,n,i,r),W2(null,t,n,!0,e,r);case 19:return FU(e,t,r);case 22:return PU(e,t,r); + }throw Error(ke(156,t.tag)); + };function _U(e,t){ + return TV(e,t); + }function Sme(e,t,r,n){ + this.tag=e,this.key=r,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=t,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=n,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null; + }function Qo(e,t,r,n){ + return new Sme(e,t,r,n); + }function zL(e){ + return e=e.prototype,!(!e||!e.isReactComponent); + }function kme(e){ + if(typeof e=='function')return zL(e)?1:0;if(e!=null){ + if(e=e.$$typeof,e===lL)return 11;if(e===uL)return 14; + }return 2; + }function Lu(e,t){ + var r=e.alternate;return r===null?(r=Qo(e.tag,t,e.key,e.mode),r.elementType=e.elementType,r.type=e.type,r.stateNode=e.stateNode,r.alternate=e,e.alternate=r):(r.pendingProps=t,r.type=e.type,r.flags=0,r.subtreeFlags=0,r.deletions=null),r.flags=e.flags&14680064,r.childLanes=e.childLanes,r.lanes=e.lanes,r.child=e.child,r.memoizedProps=e.memoizedProps,r.memoizedState=e.memoizedState,r.updateQueue=e.updateQueue,t=e.dependencies,r.dependencies=t===null?null:{lanes:t.lanes,firstContext:t.firstContext},r.sibling=e.sibling,r.index=e.index,r.ref=e.ref,r; + }function S1(e,t,r,n,i,o){ + var s=2;if(n=e,typeof e=='function')zL(e)&&(s=1);else if(typeof e=='string')s=5;else e:switch(e){ + case Cp:return af(r.children,i,o,t);case sL:s=8,i|=8;break;case p2:return e=Qo(12,r,t,i|2),e.elementType=p2,e.lanes=o,e;case m2:return e=Qo(13,r,t,i),e.elementType=m2,e.lanes=o,e;case h2:return e=Qo(19,r,t,i),e.elementType=h2,e.lanes=o,e;case sV:return sx(r,i,o,t);default:if(typeof e=='object'&&e!==null)switch(e.$$typeof){ + case oV:s=10;break e;case aV:s=9;break e;case lL:s=11;break e;case uL:s=14;break e;case yu:s=16,n=null;break e; + }throw Error(ke(130,e==null?e:typeof e,'')); + }return t=Qo(s,r,t,i),t.elementType=e,t.type=n,t.lanes=o,t; + }function af(e,t,r,n){ + return e=Qo(7,e,n,t),e.lanes=r,e; + }function sx(e,t,r,n){ + return e=Qo(22,e,n,t),e.elementType=sV,e.lanes=r,e.stateNode={isHidden:!1},e; + }function c2(e,t,r){ + return e=Qo(6,e,null,t),e.lanes=r,e; + }function f2(e,t,r){ + return t=Qo(4,e.children!==null?e.children:[],e.key,t),t.lanes=r,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t; + }function Ome(e,t,r,n,i){ + this.tag=t,this.containerInfo=e,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=KD(0),this.expirationTimes=KD(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=KD(0),this.identifierPrefix=n,this.onRecoverableError=i,this.mutableSourceEagerHydrationData=null; + }function HL(e,t,r,n,i,o,s,l,c){ + return e=new Ome(e,t,r,l,c),t===1?(t=1,o===!0&&(t|=8)):t=0,o=Qo(3,null,null,t),e.current=o,o.stateNode=e,o.memoizedState={element:n,isDehydrated:r,cache:null,transitions:null,pendingSuspenseBoundaries:null},kL(o),e; + }function Nme(e,t,r){ + var n=3{ + 'use strict';function nB(){ + if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>'u'||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!='function'))try{ + __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(nB); + }catch(e){ + console.error(e); + } + }nB(),iB.exports=rB(); +});var nz=X((EPe,sge)=>{ + sge.exports={Aacute:'\xC1',aacute:'\xE1',Abreve:'\u0102',abreve:'\u0103',ac:'\u223E',acd:'\u223F',acE:'\u223E\u0333',Acirc:'\xC2',acirc:'\xE2',acute:'\xB4',Acy:'\u0410',acy:'\u0430',AElig:'\xC6',aelig:'\xE6',af:'\u2061',Afr:'\u{1D504}',afr:'\u{1D51E}',Agrave:'\xC0',agrave:'\xE0',alefsym:'\u2135',aleph:'\u2135',Alpha:'\u0391',alpha:'\u03B1',Amacr:'\u0100',amacr:'\u0101',amalg:'\u2A3F',amp:'&',AMP:'&',andand:'\u2A55',And:'\u2A53',and:'\u2227',andd:'\u2A5C',andslope:'\u2A58',andv:'\u2A5A',ang:'\u2220',ange:'\u29A4',angle:'\u2220',angmsdaa:'\u29A8',angmsdab:'\u29A9',angmsdac:'\u29AA',angmsdad:'\u29AB',angmsdae:'\u29AC',angmsdaf:'\u29AD',angmsdag:'\u29AE',angmsdah:'\u29AF',angmsd:'\u2221',angrt:'\u221F',angrtvb:'\u22BE',angrtvbd:'\u299D',angsph:'\u2222',angst:'\xC5',angzarr:'\u237C',Aogon:'\u0104',aogon:'\u0105',Aopf:'\u{1D538}',aopf:'\u{1D552}',apacir:'\u2A6F',ap:'\u2248',apE:'\u2A70',ape:'\u224A',apid:'\u224B',apos:"'",ApplyFunction:'\u2061',approx:'\u2248',approxeq:'\u224A',Aring:'\xC5',aring:'\xE5',Ascr:'\u{1D49C}',ascr:'\u{1D4B6}',Assign:'\u2254',ast:'*',asymp:'\u2248',asympeq:'\u224D',Atilde:'\xC3',atilde:'\xE3',Auml:'\xC4',auml:'\xE4',awconint:'\u2233',awint:'\u2A11',backcong:'\u224C',backepsilon:'\u03F6',backprime:'\u2035',backsim:'\u223D',backsimeq:'\u22CD',Backslash:'\u2216',Barv:'\u2AE7',barvee:'\u22BD',barwed:'\u2305',Barwed:'\u2306',barwedge:'\u2305',bbrk:'\u23B5',bbrktbrk:'\u23B6',bcong:'\u224C',Bcy:'\u0411',bcy:'\u0431',bdquo:'\u201E',becaus:'\u2235',because:'\u2235',Because:'\u2235',bemptyv:'\u29B0',bepsi:'\u03F6',bernou:'\u212C',Bernoullis:'\u212C',Beta:'\u0392',beta:'\u03B2',beth:'\u2136',between:'\u226C',Bfr:'\u{1D505}',bfr:'\u{1D51F}',bigcap:'\u22C2',bigcirc:'\u25EF',bigcup:'\u22C3',bigodot:'\u2A00',bigoplus:'\u2A01',bigotimes:'\u2A02',bigsqcup:'\u2A06',bigstar:'\u2605',bigtriangledown:'\u25BD',bigtriangleup:'\u25B3',biguplus:'\u2A04',bigvee:'\u22C1',bigwedge:'\u22C0',bkarow:'\u290D',blacklozenge:'\u29EB',blacksquare:'\u25AA',blacktriangle:'\u25B4',blacktriangledown:'\u25BE',blacktriangleleft:'\u25C2',blacktriangleright:'\u25B8',blank:'\u2423',blk12:'\u2592',blk14:'\u2591',blk34:'\u2593',block:'\u2588',bne:'=\u20E5',bnequiv:'\u2261\u20E5',bNot:'\u2AED',bnot:'\u2310',Bopf:'\u{1D539}',bopf:'\u{1D553}',bot:'\u22A5',bottom:'\u22A5',bowtie:'\u22C8',boxbox:'\u29C9',boxdl:'\u2510',boxdL:'\u2555',boxDl:'\u2556',boxDL:'\u2557',boxdr:'\u250C',boxdR:'\u2552',boxDr:'\u2553',boxDR:'\u2554',boxh:'\u2500',boxH:'\u2550',boxhd:'\u252C',boxHd:'\u2564',boxhD:'\u2565',boxHD:'\u2566',boxhu:'\u2534',boxHu:'\u2567',boxhU:'\u2568',boxHU:'\u2569',boxminus:'\u229F',boxplus:'\u229E',boxtimes:'\u22A0',boxul:'\u2518',boxuL:'\u255B',boxUl:'\u255C',boxUL:'\u255D',boxur:'\u2514',boxuR:'\u2558',boxUr:'\u2559',boxUR:'\u255A',boxv:'\u2502',boxV:'\u2551',boxvh:'\u253C',boxvH:'\u256A',boxVh:'\u256B',boxVH:'\u256C',boxvl:'\u2524',boxvL:'\u2561',boxVl:'\u2562',boxVL:'\u2563',boxvr:'\u251C',boxvR:'\u255E',boxVr:'\u255F',boxVR:'\u2560',bprime:'\u2035',breve:'\u02D8',Breve:'\u02D8',brvbar:'\xA6',bscr:'\u{1D4B7}',Bscr:'\u212C',bsemi:'\u204F',bsim:'\u223D',bsime:'\u22CD',bsolb:'\u29C5',bsol:'\\',bsolhsub:'\u27C8',bull:'\u2022',bullet:'\u2022',bump:'\u224E',bumpE:'\u2AAE',bumpe:'\u224F',Bumpeq:'\u224E',bumpeq:'\u224F',Cacute:'\u0106',cacute:'\u0107',capand:'\u2A44',capbrcup:'\u2A49',capcap:'\u2A4B',cap:'\u2229',Cap:'\u22D2',capcup:'\u2A47',capdot:'\u2A40',CapitalDifferentialD:'\u2145',caps:'\u2229\uFE00',caret:'\u2041',caron:'\u02C7',Cayleys:'\u212D',ccaps:'\u2A4D',Ccaron:'\u010C',ccaron:'\u010D',Ccedil:'\xC7',ccedil:'\xE7',Ccirc:'\u0108',ccirc:'\u0109',Cconint:'\u2230',ccups:'\u2A4C',ccupssm:'\u2A50',Cdot:'\u010A',cdot:'\u010B',cedil:'\xB8',Cedilla:'\xB8',cemptyv:'\u29B2',cent:'\xA2',centerdot:'\xB7',CenterDot:'\xB7',cfr:'\u{1D520}',Cfr:'\u212D',CHcy:'\u0427',chcy:'\u0447',check:'\u2713',checkmark:'\u2713',Chi:'\u03A7',chi:'\u03C7',circ:'\u02C6',circeq:'\u2257',circlearrowleft:'\u21BA',circlearrowright:'\u21BB',circledast:'\u229B',circledcirc:'\u229A',circleddash:'\u229D',CircleDot:'\u2299',circledR:'\xAE',circledS:'\u24C8',CircleMinus:'\u2296',CirclePlus:'\u2295',CircleTimes:'\u2297',cir:'\u25CB',cirE:'\u29C3',cire:'\u2257',cirfnint:'\u2A10',cirmid:'\u2AEF',cirscir:'\u29C2',ClockwiseContourIntegral:'\u2232',CloseCurlyDoubleQuote:'\u201D',CloseCurlyQuote:'\u2019',clubs:'\u2663',clubsuit:'\u2663',colon:':',Colon:'\u2237',Colone:'\u2A74',colone:'\u2254',coloneq:'\u2254',comma:',',commat:'@',comp:'\u2201',compfn:'\u2218',complement:'\u2201',complexes:'\u2102',cong:'\u2245',congdot:'\u2A6D',Congruent:'\u2261',conint:'\u222E',Conint:'\u222F',ContourIntegral:'\u222E',copf:'\u{1D554}',Copf:'\u2102',coprod:'\u2210',Coproduct:'\u2210',copy:'\xA9',COPY:'\xA9',copysr:'\u2117',CounterClockwiseContourIntegral:'\u2233',crarr:'\u21B5',cross:'\u2717',Cross:'\u2A2F',Cscr:'\u{1D49E}',cscr:'\u{1D4B8}',csub:'\u2ACF',csube:'\u2AD1',csup:'\u2AD0',csupe:'\u2AD2',ctdot:'\u22EF',cudarrl:'\u2938',cudarrr:'\u2935',cuepr:'\u22DE',cuesc:'\u22DF',cularr:'\u21B6',cularrp:'\u293D',cupbrcap:'\u2A48',cupcap:'\u2A46',CupCap:'\u224D',cup:'\u222A',Cup:'\u22D3',cupcup:'\u2A4A',cupdot:'\u228D',cupor:'\u2A45',cups:'\u222A\uFE00',curarr:'\u21B7',curarrm:'\u293C',curlyeqprec:'\u22DE',curlyeqsucc:'\u22DF',curlyvee:'\u22CE',curlywedge:'\u22CF',curren:'\xA4',curvearrowleft:'\u21B6',curvearrowright:'\u21B7',cuvee:'\u22CE',cuwed:'\u22CF',cwconint:'\u2232',cwint:'\u2231',cylcty:'\u232D',dagger:'\u2020',Dagger:'\u2021',daleth:'\u2138',darr:'\u2193',Darr:'\u21A1',dArr:'\u21D3',dash:'\u2010',Dashv:'\u2AE4',dashv:'\u22A3',dbkarow:'\u290F',dblac:'\u02DD',Dcaron:'\u010E',dcaron:'\u010F',Dcy:'\u0414',dcy:'\u0434',ddagger:'\u2021',ddarr:'\u21CA',DD:'\u2145',dd:'\u2146',DDotrahd:'\u2911',ddotseq:'\u2A77',deg:'\xB0',Del:'\u2207',Delta:'\u0394',delta:'\u03B4',demptyv:'\u29B1',dfisht:'\u297F',Dfr:'\u{1D507}',dfr:'\u{1D521}',dHar:'\u2965',dharl:'\u21C3',dharr:'\u21C2',DiacriticalAcute:'\xB4',DiacriticalDot:'\u02D9',DiacriticalDoubleAcute:'\u02DD',DiacriticalGrave:'`',DiacriticalTilde:'\u02DC',diam:'\u22C4',diamond:'\u22C4',Diamond:'\u22C4',diamondsuit:'\u2666',diams:'\u2666',die:'\xA8',DifferentialD:'\u2146',digamma:'\u03DD',disin:'\u22F2',div:'\xF7',divide:'\xF7',divideontimes:'\u22C7',divonx:'\u22C7',DJcy:'\u0402',djcy:'\u0452',dlcorn:'\u231E',dlcrop:'\u230D',dollar:'$',Dopf:'\u{1D53B}',dopf:'\u{1D555}',Dot:'\xA8',dot:'\u02D9',DotDot:'\u20DC',doteq:'\u2250',doteqdot:'\u2251',DotEqual:'\u2250',dotminus:'\u2238',dotplus:'\u2214',dotsquare:'\u22A1',doublebarwedge:'\u2306',DoubleContourIntegral:'\u222F',DoubleDot:'\xA8',DoubleDownArrow:'\u21D3',DoubleLeftArrow:'\u21D0',DoubleLeftRightArrow:'\u21D4',DoubleLeftTee:'\u2AE4',DoubleLongLeftArrow:'\u27F8',DoubleLongLeftRightArrow:'\u27FA',DoubleLongRightArrow:'\u27F9',DoubleRightArrow:'\u21D2',DoubleRightTee:'\u22A8',DoubleUpArrow:'\u21D1',DoubleUpDownArrow:'\u21D5',DoubleVerticalBar:'\u2225',DownArrowBar:'\u2913',downarrow:'\u2193',DownArrow:'\u2193',Downarrow:'\u21D3',DownArrowUpArrow:'\u21F5',DownBreve:'\u0311',downdownarrows:'\u21CA',downharpoonleft:'\u21C3',downharpoonright:'\u21C2',DownLeftRightVector:'\u2950',DownLeftTeeVector:'\u295E',DownLeftVectorBar:'\u2956',DownLeftVector:'\u21BD',DownRightTeeVector:'\u295F',DownRightVectorBar:'\u2957',DownRightVector:'\u21C1',DownTeeArrow:'\u21A7',DownTee:'\u22A4',drbkarow:'\u2910',drcorn:'\u231F',drcrop:'\u230C',Dscr:'\u{1D49F}',dscr:'\u{1D4B9}',DScy:'\u0405',dscy:'\u0455',dsol:'\u29F6',Dstrok:'\u0110',dstrok:'\u0111',dtdot:'\u22F1',dtri:'\u25BF',dtrif:'\u25BE',duarr:'\u21F5',duhar:'\u296F',dwangle:'\u29A6',DZcy:'\u040F',dzcy:'\u045F',dzigrarr:'\u27FF',Eacute:'\xC9',eacute:'\xE9',easter:'\u2A6E',Ecaron:'\u011A',ecaron:'\u011B',Ecirc:'\xCA',ecirc:'\xEA',ecir:'\u2256',ecolon:'\u2255',Ecy:'\u042D',ecy:'\u044D',eDDot:'\u2A77',Edot:'\u0116',edot:'\u0117',eDot:'\u2251',ee:'\u2147',efDot:'\u2252',Efr:'\u{1D508}',efr:'\u{1D522}',eg:'\u2A9A',Egrave:'\xC8',egrave:'\xE8',egs:'\u2A96',egsdot:'\u2A98',el:'\u2A99',Element:'\u2208',elinters:'\u23E7',ell:'\u2113',els:'\u2A95',elsdot:'\u2A97',Emacr:'\u0112',emacr:'\u0113',empty:'\u2205',emptyset:'\u2205',EmptySmallSquare:'\u25FB',emptyv:'\u2205',EmptyVerySmallSquare:'\u25AB',emsp13:'\u2004',emsp14:'\u2005',emsp:'\u2003',ENG:'\u014A',eng:'\u014B',ensp:'\u2002',Eogon:'\u0118',eogon:'\u0119',Eopf:'\u{1D53C}',eopf:'\u{1D556}',epar:'\u22D5',eparsl:'\u29E3',eplus:'\u2A71',epsi:'\u03B5',Epsilon:'\u0395',epsilon:'\u03B5',epsiv:'\u03F5',eqcirc:'\u2256',eqcolon:'\u2255',eqsim:'\u2242',eqslantgtr:'\u2A96',eqslantless:'\u2A95',Equal:'\u2A75',equals:'=',EqualTilde:'\u2242',equest:'\u225F',Equilibrium:'\u21CC',equiv:'\u2261',equivDD:'\u2A78',eqvparsl:'\u29E5',erarr:'\u2971',erDot:'\u2253',escr:'\u212F',Escr:'\u2130',esdot:'\u2250',Esim:'\u2A73',esim:'\u2242',Eta:'\u0397',eta:'\u03B7',ETH:'\xD0',eth:'\xF0',Euml:'\xCB',euml:'\xEB',euro:'\u20AC',excl:'!',exist:'\u2203',Exists:'\u2203',expectation:'\u2130',exponentiale:'\u2147',ExponentialE:'\u2147',fallingdotseq:'\u2252',Fcy:'\u0424',fcy:'\u0444',female:'\u2640',ffilig:'\uFB03',fflig:'\uFB00',ffllig:'\uFB04',Ffr:'\u{1D509}',ffr:'\u{1D523}',filig:'\uFB01',FilledSmallSquare:'\u25FC',FilledVerySmallSquare:'\u25AA',fjlig:'fj',flat:'\u266D',fllig:'\uFB02',fltns:'\u25B1',fnof:'\u0192',Fopf:'\u{1D53D}',fopf:'\u{1D557}',forall:'\u2200',ForAll:'\u2200',fork:'\u22D4',forkv:'\u2AD9',Fouriertrf:'\u2131',fpartint:'\u2A0D',frac12:'\xBD',frac13:'\u2153',frac14:'\xBC',frac15:'\u2155',frac16:'\u2159',frac18:'\u215B',frac23:'\u2154',frac25:'\u2156',frac34:'\xBE',frac35:'\u2157',frac38:'\u215C',frac45:'\u2158',frac56:'\u215A',frac58:'\u215D',frac78:'\u215E',frasl:'\u2044',frown:'\u2322',fscr:'\u{1D4BB}',Fscr:'\u2131',gacute:'\u01F5',Gamma:'\u0393',gamma:'\u03B3',Gammad:'\u03DC',gammad:'\u03DD',gap:'\u2A86',Gbreve:'\u011E',gbreve:'\u011F',Gcedil:'\u0122',Gcirc:'\u011C',gcirc:'\u011D',Gcy:'\u0413',gcy:'\u0433',Gdot:'\u0120',gdot:'\u0121',ge:'\u2265',gE:'\u2267',gEl:'\u2A8C',gel:'\u22DB',geq:'\u2265',geqq:'\u2267',geqslant:'\u2A7E',gescc:'\u2AA9',ges:'\u2A7E',gesdot:'\u2A80',gesdoto:'\u2A82',gesdotol:'\u2A84',gesl:'\u22DB\uFE00',gesles:'\u2A94',Gfr:'\u{1D50A}',gfr:'\u{1D524}',gg:'\u226B',Gg:'\u22D9',ggg:'\u22D9',gimel:'\u2137',GJcy:'\u0403',gjcy:'\u0453',gla:'\u2AA5',gl:'\u2277',glE:'\u2A92',glj:'\u2AA4',gnap:'\u2A8A',gnapprox:'\u2A8A',gne:'\u2A88',gnE:'\u2269',gneq:'\u2A88',gneqq:'\u2269',gnsim:'\u22E7',Gopf:'\u{1D53E}',gopf:'\u{1D558}',grave:'`',GreaterEqual:'\u2265',GreaterEqualLess:'\u22DB',GreaterFullEqual:'\u2267',GreaterGreater:'\u2AA2',GreaterLess:'\u2277',GreaterSlantEqual:'\u2A7E',GreaterTilde:'\u2273',Gscr:'\u{1D4A2}',gscr:'\u210A',gsim:'\u2273',gsime:'\u2A8E',gsiml:'\u2A90',gtcc:'\u2AA7',gtcir:'\u2A7A',gt:'>',GT:'>',Gt:'\u226B',gtdot:'\u22D7',gtlPar:'\u2995',gtquest:'\u2A7C',gtrapprox:'\u2A86',gtrarr:'\u2978',gtrdot:'\u22D7',gtreqless:'\u22DB',gtreqqless:'\u2A8C',gtrless:'\u2277',gtrsim:'\u2273',gvertneqq:'\u2269\uFE00',gvnE:'\u2269\uFE00',Hacek:'\u02C7',hairsp:'\u200A',half:'\xBD',hamilt:'\u210B',HARDcy:'\u042A',hardcy:'\u044A',harrcir:'\u2948',harr:'\u2194',hArr:'\u21D4',harrw:'\u21AD',Hat:'^',hbar:'\u210F',Hcirc:'\u0124',hcirc:'\u0125',hearts:'\u2665',heartsuit:'\u2665',hellip:'\u2026',hercon:'\u22B9',hfr:'\u{1D525}',Hfr:'\u210C',HilbertSpace:'\u210B',hksearow:'\u2925',hkswarow:'\u2926',hoarr:'\u21FF',homtht:'\u223B',hookleftarrow:'\u21A9',hookrightarrow:'\u21AA',hopf:'\u{1D559}',Hopf:'\u210D',horbar:'\u2015',HorizontalLine:'\u2500',hscr:'\u{1D4BD}',Hscr:'\u210B',hslash:'\u210F',Hstrok:'\u0126',hstrok:'\u0127',HumpDownHump:'\u224E',HumpEqual:'\u224F',hybull:'\u2043',hyphen:'\u2010',Iacute:'\xCD',iacute:'\xED',ic:'\u2063',Icirc:'\xCE',icirc:'\xEE',Icy:'\u0418',icy:'\u0438',Idot:'\u0130',IEcy:'\u0415',iecy:'\u0435',iexcl:'\xA1',iff:'\u21D4',ifr:'\u{1D526}',Ifr:'\u2111',Igrave:'\xCC',igrave:'\xEC',ii:'\u2148',iiiint:'\u2A0C',iiint:'\u222D',iinfin:'\u29DC',iiota:'\u2129',IJlig:'\u0132',ijlig:'\u0133',Imacr:'\u012A',imacr:'\u012B',image:'\u2111',ImaginaryI:'\u2148',imagline:'\u2110',imagpart:'\u2111',imath:'\u0131',Im:'\u2111',imof:'\u22B7',imped:'\u01B5',Implies:'\u21D2',incare:'\u2105',in:'\u2208',infin:'\u221E',infintie:'\u29DD',inodot:'\u0131',intcal:'\u22BA',int:'\u222B',Int:'\u222C',integers:'\u2124',Integral:'\u222B',intercal:'\u22BA',Intersection:'\u22C2',intlarhk:'\u2A17',intprod:'\u2A3C',InvisibleComma:'\u2063',InvisibleTimes:'\u2062',IOcy:'\u0401',iocy:'\u0451',Iogon:'\u012E',iogon:'\u012F',Iopf:'\u{1D540}',iopf:'\u{1D55A}',Iota:'\u0399',iota:'\u03B9',iprod:'\u2A3C',iquest:'\xBF',iscr:'\u{1D4BE}',Iscr:'\u2110',isin:'\u2208',isindot:'\u22F5',isinE:'\u22F9',isins:'\u22F4',isinsv:'\u22F3',isinv:'\u2208',it:'\u2062',Itilde:'\u0128',itilde:'\u0129',Iukcy:'\u0406',iukcy:'\u0456',Iuml:'\xCF',iuml:'\xEF',Jcirc:'\u0134',jcirc:'\u0135',Jcy:'\u0419',jcy:'\u0439',Jfr:'\u{1D50D}',jfr:'\u{1D527}',jmath:'\u0237',Jopf:'\u{1D541}',jopf:'\u{1D55B}',Jscr:'\u{1D4A5}',jscr:'\u{1D4BF}',Jsercy:'\u0408',jsercy:'\u0458',Jukcy:'\u0404',jukcy:'\u0454',Kappa:'\u039A',kappa:'\u03BA',kappav:'\u03F0',Kcedil:'\u0136',kcedil:'\u0137',Kcy:'\u041A',kcy:'\u043A',Kfr:'\u{1D50E}',kfr:'\u{1D528}',kgreen:'\u0138',KHcy:'\u0425',khcy:'\u0445',KJcy:'\u040C',kjcy:'\u045C',Kopf:'\u{1D542}',kopf:'\u{1D55C}',Kscr:'\u{1D4A6}',kscr:'\u{1D4C0}',lAarr:'\u21DA',Lacute:'\u0139',lacute:'\u013A',laemptyv:'\u29B4',lagran:'\u2112',Lambda:'\u039B',lambda:'\u03BB',lang:'\u27E8',Lang:'\u27EA',langd:'\u2991',langle:'\u27E8',lap:'\u2A85',Laplacetrf:'\u2112',laquo:'\xAB',larrb:'\u21E4',larrbfs:'\u291F',larr:'\u2190',Larr:'\u219E',lArr:'\u21D0',larrfs:'\u291D',larrhk:'\u21A9',larrlp:'\u21AB',larrpl:'\u2939',larrsim:'\u2973',larrtl:'\u21A2',latail:'\u2919',lAtail:'\u291B',lat:'\u2AAB',late:'\u2AAD',lates:'\u2AAD\uFE00',lbarr:'\u290C',lBarr:'\u290E',lbbrk:'\u2772',lbrace:'{',lbrack:'[',lbrke:'\u298B',lbrksld:'\u298F',lbrkslu:'\u298D',Lcaron:'\u013D',lcaron:'\u013E',Lcedil:'\u013B',lcedil:'\u013C',lceil:'\u2308',lcub:'{',Lcy:'\u041B',lcy:'\u043B',ldca:'\u2936',ldquo:'\u201C',ldquor:'\u201E',ldrdhar:'\u2967',ldrushar:'\u294B',ldsh:'\u21B2',le:'\u2264',lE:'\u2266',LeftAngleBracket:'\u27E8',LeftArrowBar:'\u21E4',leftarrow:'\u2190',LeftArrow:'\u2190',Leftarrow:'\u21D0',LeftArrowRightArrow:'\u21C6',leftarrowtail:'\u21A2',LeftCeiling:'\u2308',LeftDoubleBracket:'\u27E6',LeftDownTeeVector:'\u2961',LeftDownVectorBar:'\u2959',LeftDownVector:'\u21C3',LeftFloor:'\u230A',leftharpoondown:'\u21BD',leftharpoonup:'\u21BC',leftleftarrows:'\u21C7',leftrightarrow:'\u2194',LeftRightArrow:'\u2194',Leftrightarrow:'\u21D4',leftrightarrows:'\u21C6',leftrightharpoons:'\u21CB',leftrightsquigarrow:'\u21AD',LeftRightVector:'\u294E',LeftTeeArrow:'\u21A4',LeftTee:'\u22A3',LeftTeeVector:'\u295A',leftthreetimes:'\u22CB',LeftTriangleBar:'\u29CF',LeftTriangle:'\u22B2',LeftTriangleEqual:'\u22B4',LeftUpDownVector:'\u2951',LeftUpTeeVector:'\u2960',LeftUpVectorBar:'\u2958',LeftUpVector:'\u21BF',LeftVectorBar:'\u2952',LeftVector:'\u21BC',lEg:'\u2A8B',leg:'\u22DA',leq:'\u2264',leqq:'\u2266',leqslant:'\u2A7D',lescc:'\u2AA8',les:'\u2A7D',lesdot:'\u2A7F',lesdoto:'\u2A81',lesdotor:'\u2A83',lesg:'\u22DA\uFE00',lesges:'\u2A93',lessapprox:'\u2A85',lessdot:'\u22D6',lesseqgtr:'\u22DA',lesseqqgtr:'\u2A8B',LessEqualGreater:'\u22DA',LessFullEqual:'\u2266',LessGreater:'\u2276',lessgtr:'\u2276',LessLess:'\u2AA1',lesssim:'\u2272',LessSlantEqual:'\u2A7D',LessTilde:'\u2272',lfisht:'\u297C',lfloor:'\u230A',Lfr:'\u{1D50F}',lfr:'\u{1D529}',lg:'\u2276',lgE:'\u2A91',lHar:'\u2962',lhard:'\u21BD',lharu:'\u21BC',lharul:'\u296A',lhblk:'\u2584',LJcy:'\u0409',ljcy:'\u0459',llarr:'\u21C7',ll:'\u226A',Ll:'\u22D8',llcorner:'\u231E',Lleftarrow:'\u21DA',llhard:'\u296B',lltri:'\u25FA',Lmidot:'\u013F',lmidot:'\u0140',lmoustache:'\u23B0',lmoust:'\u23B0',lnap:'\u2A89',lnapprox:'\u2A89',lne:'\u2A87',lnE:'\u2268',lneq:'\u2A87',lneqq:'\u2268',lnsim:'\u22E6',loang:'\u27EC',loarr:'\u21FD',lobrk:'\u27E6',longleftarrow:'\u27F5',LongLeftArrow:'\u27F5',Longleftarrow:'\u27F8',longleftrightarrow:'\u27F7',LongLeftRightArrow:'\u27F7',Longleftrightarrow:'\u27FA',longmapsto:'\u27FC',longrightarrow:'\u27F6',LongRightArrow:'\u27F6',Longrightarrow:'\u27F9',looparrowleft:'\u21AB',looparrowright:'\u21AC',lopar:'\u2985',Lopf:'\u{1D543}',lopf:'\u{1D55D}',loplus:'\u2A2D',lotimes:'\u2A34',lowast:'\u2217',lowbar:'_',LowerLeftArrow:'\u2199',LowerRightArrow:'\u2198',loz:'\u25CA',lozenge:'\u25CA',lozf:'\u29EB',lpar:'(',lparlt:'\u2993',lrarr:'\u21C6',lrcorner:'\u231F',lrhar:'\u21CB',lrhard:'\u296D',lrm:'\u200E',lrtri:'\u22BF',lsaquo:'\u2039',lscr:'\u{1D4C1}',Lscr:'\u2112',lsh:'\u21B0',Lsh:'\u21B0',lsim:'\u2272',lsime:'\u2A8D',lsimg:'\u2A8F',lsqb:'[',lsquo:'\u2018',lsquor:'\u201A',Lstrok:'\u0141',lstrok:'\u0142',ltcc:'\u2AA6',ltcir:'\u2A79',lt:'<',LT:'<',Lt:'\u226A',ltdot:'\u22D6',lthree:'\u22CB',ltimes:'\u22C9',ltlarr:'\u2976',ltquest:'\u2A7B',ltri:'\u25C3',ltrie:'\u22B4',ltrif:'\u25C2',ltrPar:'\u2996',lurdshar:'\u294A',luruhar:'\u2966',lvertneqq:'\u2268\uFE00',lvnE:'\u2268\uFE00',macr:'\xAF',male:'\u2642',malt:'\u2720',maltese:'\u2720',Map:'\u2905',map:'\u21A6',mapsto:'\u21A6',mapstodown:'\u21A7',mapstoleft:'\u21A4',mapstoup:'\u21A5',marker:'\u25AE',mcomma:'\u2A29',Mcy:'\u041C',mcy:'\u043C',mdash:'\u2014',mDDot:'\u223A',measuredangle:'\u2221',MediumSpace:'\u205F',Mellintrf:'\u2133',Mfr:'\u{1D510}',mfr:'\u{1D52A}',mho:'\u2127',micro:'\xB5',midast:'*',midcir:'\u2AF0',mid:'\u2223',middot:'\xB7',minusb:'\u229F',minus:'\u2212',minusd:'\u2238',minusdu:'\u2A2A',MinusPlus:'\u2213',mlcp:'\u2ADB',mldr:'\u2026',mnplus:'\u2213',models:'\u22A7',Mopf:'\u{1D544}',mopf:'\u{1D55E}',mp:'\u2213',mscr:'\u{1D4C2}',Mscr:'\u2133',mstpos:'\u223E',Mu:'\u039C',mu:'\u03BC',multimap:'\u22B8',mumap:'\u22B8',nabla:'\u2207',Nacute:'\u0143',nacute:'\u0144',nang:'\u2220\u20D2',nap:'\u2249',napE:'\u2A70\u0338',napid:'\u224B\u0338',napos:'\u0149',napprox:'\u2249',natural:'\u266E',naturals:'\u2115',natur:'\u266E',nbsp:'\xA0',nbump:'\u224E\u0338',nbumpe:'\u224F\u0338',ncap:'\u2A43',Ncaron:'\u0147',ncaron:'\u0148',Ncedil:'\u0145',ncedil:'\u0146',ncong:'\u2247',ncongdot:'\u2A6D\u0338',ncup:'\u2A42',Ncy:'\u041D',ncy:'\u043D',ndash:'\u2013',nearhk:'\u2924',nearr:'\u2197',neArr:'\u21D7',nearrow:'\u2197',ne:'\u2260',nedot:'\u2250\u0338',NegativeMediumSpace:'\u200B',NegativeThickSpace:'\u200B',NegativeThinSpace:'\u200B',NegativeVeryThinSpace:'\u200B',nequiv:'\u2262',nesear:'\u2928',nesim:'\u2242\u0338',NestedGreaterGreater:'\u226B',NestedLessLess:'\u226A',NewLine:` +`,nexist:'\u2204',nexists:'\u2204',Nfr:'\u{1D511}',nfr:'\u{1D52B}',ngE:'\u2267\u0338',nge:'\u2271',ngeq:'\u2271',ngeqq:'\u2267\u0338',ngeqslant:'\u2A7E\u0338',nges:'\u2A7E\u0338',nGg:'\u22D9\u0338',ngsim:'\u2275',nGt:'\u226B\u20D2',ngt:'\u226F',ngtr:'\u226F',nGtv:'\u226B\u0338',nharr:'\u21AE',nhArr:'\u21CE',nhpar:'\u2AF2',ni:'\u220B',nis:'\u22FC',nisd:'\u22FA',niv:'\u220B',NJcy:'\u040A',njcy:'\u045A',nlarr:'\u219A',nlArr:'\u21CD',nldr:'\u2025',nlE:'\u2266\u0338',nle:'\u2270',nleftarrow:'\u219A',nLeftarrow:'\u21CD',nleftrightarrow:'\u21AE',nLeftrightarrow:'\u21CE',nleq:'\u2270',nleqq:'\u2266\u0338',nleqslant:'\u2A7D\u0338',nles:'\u2A7D\u0338',nless:'\u226E',nLl:'\u22D8\u0338',nlsim:'\u2274',nLt:'\u226A\u20D2',nlt:'\u226E',nltri:'\u22EA',nltrie:'\u22EC',nLtv:'\u226A\u0338',nmid:'\u2224',NoBreak:'\u2060',NonBreakingSpace:'\xA0',nopf:'\u{1D55F}',Nopf:'\u2115',Not:'\u2AEC',not:'\xAC',NotCongruent:'\u2262',NotCupCap:'\u226D',NotDoubleVerticalBar:'\u2226',NotElement:'\u2209',NotEqual:'\u2260',NotEqualTilde:'\u2242\u0338',NotExists:'\u2204',NotGreater:'\u226F',NotGreaterEqual:'\u2271',NotGreaterFullEqual:'\u2267\u0338',NotGreaterGreater:'\u226B\u0338',NotGreaterLess:'\u2279',NotGreaterSlantEqual:'\u2A7E\u0338',NotGreaterTilde:'\u2275',NotHumpDownHump:'\u224E\u0338',NotHumpEqual:'\u224F\u0338',notin:'\u2209',notindot:'\u22F5\u0338',notinE:'\u22F9\u0338',notinva:'\u2209',notinvb:'\u22F7',notinvc:'\u22F6',NotLeftTriangleBar:'\u29CF\u0338',NotLeftTriangle:'\u22EA',NotLeftTriangleEqual:'\u22EC',NotLess:'\u226E',NotLessEqual:'\u2270',NotLessGreater:'\u2278',NotLessLess:'\u226A\u0338',NotLessSlantEqual:'\u2A7D\u0338',NotLessTilde:'\u2274',NotNestedGreaterGreater:'\u2AA2\u0338',NotNestedLessLess:'\u2AA1\u0338',notni:'\u220C',notniva:'\u220C',notnivb:'\u22FE',notnivc:'\u22FD',NotPrecedes:'\u2280',NotPrecedesEqual:'\u2AAF\u0338',NotPrecedesSlantEqual:'\u22E0',NotReverseElement:'\u220C',NotRightTriangleBar:'\u29D0\u0338',NotRightTriangle:'\u22EB',NotRightTriangleEqual:'\u22ED',NotSquareSubset:'\u228F\u0338',NotSquareSubsetEqual:'\u22E2',NotSquareSuperset:'\u2290\u0338',NotSquareSupersetEqual:'\u22E3',NotSubset:'\u2282\u20D2',NotSubsetEqual:'\u2288',NotSucceeds:'\u2281',NotSucceedsEqual:'\u2AB0\u0338',NotSucceedsSlantEqual:'\u22E1',NotSucceedsTilde:'\u227F\u0338',NotSuperset:'\u2283\u20D2',NotSupersetEqual:'\u2289',NotTilde:'\u2241',NotTildeEqual:'\u2244',NotTildeFullEqual:'\u2247',NotTildeTilde:'\u2249',NotVerticalBar:'\u2224',nparallel:'\u2226',npar:'\u2226',nparsl:'\u2AFD\u20E5',npart:'\u2202\u0338',npolint:'\u2A14',npr:'\u2280',nprcue:'\u22E0',nprec:'\u2280',npreceq:'\u2AAF\u0338',npre:'\u2AAF\u0338',nrarrc:'\u2933\u0338',nrarr:'\u219B',nrArr:'\u21CF',nrarrw:'\u219D\u0338',nrightarrow:'\u219B',nRightarrow:'\u21CF',nrtri:'\u22EB',nrtrie:'\u22ED',nsc:'\u2281',nsccue:'\u22E1',nsce:'\u2AB0\u0338',Nscr:'\u{1D4A9}',nscr:'\u{1D4C3}',nshortmid:'\u2224',nshortparallel:'\u2226',nsim:'\u2241',nsime:'\u2244',nsimeq:'\u2244',nsmid:'\u2224',nspar:'\u2226',nsqsube:'\u22E2',nsqsupe:'\u22E3',nsub:'\u2284',nsubE:'\u2AC5\u0338',nsube:'\u2288',nsubset:'\u2282\u20D2',nsubseteq:'\u2288',nsubseteqq:'\u2AC5\u0338',nsucc:'\u2281',nsucceq:'\u2AB0\u0338',nsup:'\u2285',nsupE:'\u2AC6\u0338',nsupe:'\u2289',nsupset:'\u2283\u20D2',nsupseteq:'\u2289',nsupseteqq:'\u2AC6\u0338',ntgl:'\u2279',Ntilde:'\xD1',ntilde:'\xF1',ntlg:'\u2278',ntriangleleft:'\u22EA',ntrianglelefteq:'\u22EC',ntriangleright:'\u22EB',ntrianglerighteq:'\u22ED',Nu:'\u039D',nu:'\u03BD',num:'#',numero:'\u2116',numsp:'\u2007',nvap:'\u224D\u20D2',nvdash:'\u22AC',nvDash:'\u22AD',nVdash:'\u22AE',nVDash:'\u22AF',nvge:'\u2265\u20D2',nvgt:'>\u20D2',nvHarr:'\u2904',nvinfin:'\u29DE',nvlArr:'\u2902',nvle:'\u2264\u20D2',nvlt:'<\u20D2',nvltrie:'\u22B4\u20D2',nvrArr:'\u2903',nvrtrie:'\u22B5\u20D2',nvsim:'\u223C\u20D2',nwarhk:'\u2923',nwarr:'\u2196',nwArr:'\u21D6',nwarrow:'\u2196',nwnear:'\u2927',Oacute:'\xD3',oacute:'\xF3',oast:'\u229B',Ocirc:'\xD4',ocirc:'\xF4',ocir:'\u229A',Ocy:'\u041E',ocy:'\u043E',odash:'\u229D',Odblac:'\u0150',odblac:'\u0151',odiv:'\u2A38',odot:'\u2299',odsold:'\u29BC',OElig:'\u0152',oelig:'\u0153',ofcir:'\u29BF',Ofr:'\u{1D512}',ofr:'\u{1D52C}',ogon:'\u02DB',Ograve:'\xD2',ograve:'\xF2',ogt:'\u29C1',ohbar:'\u29B5',ohm:'\u03A9',oint:'\u222E',olarr:'\u21BA',olcir:'\u29BE',olcross:'\u29BB',oline:'\u203E',olt:'\u29C0',Omacr:'\u014C',omacr:'\u014D',Omega:'\u03A9',omega:'\u03C9',Omicron:'\u039F',omicron:'\u03BF',omid:'\u29B6',ominus:'\u2296',Oopf:'\u{1D546}',oopf:'\u{1D560}',opar:'\u29B7',OpenCurlyDoubleQuote:'\u201C',OpenCurlyQuote:'\u2018',operp:'\u29B9',oplus:'\u2295',orarr:'\u21BB',Or:'\u2A54',or:'\u2228',ord:'\u2A5D',order:'\u2134',orderof:'\u2134',ordf:'\xAA',ordm:'\xBA',origof:'\u22B6',oror:'\u2A56',orslope:'\u2A57',orv:'\u2A5B',oS:'\u24C8',Oscr:'\u{1D4AA}',oscr:'\u2134',Oslash:'\xD8',oslash:'\xF8',osol:'\u2298',Otilde:'\xD5',otilde:'\xF5',otimesas:'\u2A36',Otimes:'\u2A37',otimes:'\u2297',Ouml:'\xD6',ouml:'\xF6',ovbar:'\u233D',OverBar:'\u203E',OverBrace:'\u23DE',OverBracket:'\u23B4',OverParenthesis:'\u23DC',para:'\xB6',parallel:'\u2225',par:'\u2225',parsim:'\u2AF3',parsl:'\u2AFD',part:'\u2202',PartialD:'\u2202',Pcy:'\u041F',pcy:'\u043F',percnt:'%',period:'.',permil:'\u2030',perp:'\u22A5',pertenk:'\u2031',Pfr:'\u{1D513}',pfr:'\u{1D52D}',Phi:'\u03A6',phi:'\u03C6',phiv:'\u03D5',phmmat:'\u2133',phone:'\u260E',Pi:'\u03A0',pi:'\u03C0',pitchfork:'\u22D4',piv:'\u03D6',planck:'\u210F',planckh:'\u210E',plankv:'\u210F',plusacir:'\u2A23',plusb:'\u229E',pluscir:'\u2A22',plus:'+',plusdo:'\u2214',plusdu:'\u2A25',pluse:'\u2A72',PlusMinus:'\xB1',plusmn:'\xB1',plussim:'\u2A26',plustwo:'\u2A27',pm:'\xB1',Poincareplane:'\u210C',pointint:'\u2A15',popf:'\u{1D561}',Popf:'\u2119',pound:'\xA3',prap:'\u2AB7',Pr:'\u2ABB',pr:'\u227A',prcue:'\u227C',precapprox:'\u2AB7',prec:'\u227A',preccurlyeq:'\u227C',Precedes:'\u227A',PrecedesEqual:'\u2AAF',PrecedesSlantEqual:'\u227C',PrecedesTilde:'\u227E',preceq:'\u2AAF',precnapprox:'\u2AB9',precneqq:'\u2AB5',precnsim:'\u22E8',pre:'\u2AAF',prE:'\u2AB3',precsim:'\u227E',prime:'\u2032',Prime:'\u2033',primes:'\u2119',prnap:'\u2AB9',prnE:'\u2AB5',prnsim:'\u22E8',prod:'\u220F',Product:'\u220F',profalar:'\u232E',profline:'\u2312',profsurf:'\u2313',prop:'\u221D',Proportional:'\u221D',Proportion:'\u2237',propto:'\u221D',prsim:'\u227E',prurel:'\u22B0',Pscr:'\u{1D4AB}',pscr:'\u{1D4C5}',Psi:'\u03A8',psi:'\u03C8',puncsp:'\u2008',Qfr:'\u{1D514}',qfr:'\u{1D52E}',qint:'\u2A0C',qopf:'\u{1D562}',Qopf:'\u211A',qprime:'\u2057',Qscr:'\u{1D4AC}',qscr:'\u{1D4C6}',quaternions:'\u210D',quatint:'\u2A16',quest:'?',questeq:'\u225F',quot:'"',QUOT:'"',rAarr:'\u21DB',race:'\u223D\u0331',Racute:'\u0154',racute:'\u0155',radic:'\u221A',raemptyv:'\u29B3',rang:'\u27E9',Rang:'\u27EB',rangd:'\u2992',range:'\u29A5',rangle:'\u27E9',raquo:'\xBB',rarrap:'\u2975',rarrb:'\u21E5',rarrbfs:'\u2920',rarrc:'\u2933',rarr:'\u2192',Rarr:'\u21A0',rArr:'\u21D2',rarrfs:'\u291E',rarrhk:'\u21AA',rarrlp:'\u21AC',rarrpl:'\u2945',rarrsim:'\u2974',Rarrtl:'\u2916',rarrtl:'\u21A3',rarrw:'\u219D',ratail:'\u291A',rAtail:'\u291C',ratio:'\u2236',rationals:'\u211A',rbarr:'\u290D',rBarr:'\u290F',RBarr:'\u2910',rbbrk:'\u2773',rbrace:'}',rbrack:']',rbrke:'\u298C',rbrksld:'\u298E',rbrkslu:'\u2990',Rcaron:'\u0158',rcaron:'\u0159',Rcedil:'\u0156',rcedil:'\u0157',rceil:'\u2309',rcub:'}',Rcy:'\u0420',rcy:'\u0440',rdca:'\u2937',rdldhar:'\u2969',rdquo:'\u201D',rdquor:'\u201D',rdsh:'\u21B3',real:'\u211C',realine:'\u211B',realpart:'\u211C',reals:'\u211D',Re:'\u211C',rect:'\u25AD',reg:'\xAE',REG:'\xAE',ReverseElement:'\u220B',ReverseEquilibrium:'\u21CB',ReverseUpEquilibrium:'\u296F',rfisht:'\u297D',rfloor:'\u230B',rfr:'\u{1D52F}',Rfr:'\u211C',rHar:'\u2964',rhard:'\u21C1',rharu:'\u21C0',rharul:'\u296C',Rho:'\u03A1',rho:'\u03C1',rhov:'\u03F1',RightAngleBracket:'\u27E9',RightArrowBar:'\u21E5',rightarrow:'\u2192',RightArrow:'\u2192',Rightarrow:'\u21D2',RightArrowLeftArrow:'\u21C4',rightarrowtail:'\u21A3',RightCeiling:'\u2309',RightDoubleBracket:'\u27E7',RightDownTeeVector:'\u295D',RightDownVectorBar:'\u2955',RightDownVector:'\u21C2',RightFloor:'\u230B',rightharpoondown:'\u21C1',rightharpoonup:'\u21C0',rightleftarrows:'\u21C4',rightleftharpoons:'\u21CC',rightrightarrows:'\u21C9',rightsquigarrow:'\u219D',RightTeeArrow:'\u21A6',RightTee:'\u22A2',RightTeeVector:'\u295B',rightthreetimes:'\u22CC',RightTriangleBar:'\u29D0',RightTriangle:'\u22B3',RightTriangleEqual:'\u22B5',RightUpDownVector:'\u294F',RightUpTeeVector:'\u295C',RightUpVectorBar:'\u2954',RightUpVector:'\u21BE',RightVectorBar:'\u2953',RightVector:'\u21C0',ring:'\u02DA',risingdotseq:'\u2253',rlarr:'\u21C4',rlhar:'\u21CC',rlm:'\u200F',rmoustache:'\u23B1',rmoust:'\u23B1',rnmid:'\u2AEE',roang:'\u27ED',roarr:'\u21FE',robrk:'\u27E7',ropar:'\u2986',ropf:'\u{1D563}',Ropf:'\u211D',roplus:'\u2A2E',rotimes:'\u2A35',RoundImplies:'\u2970',rpar:')',rpargt:'\u2994',rppolint:'\u2A12',rrarr:'\u21C9',Rrightarrow:'\u21DB',rsaquo:'\u203A',rscr:'\u{1D4C7}',Rscr:'\u211B',rsh:'\u21B1',Rsh:'\u21B1',rsqb:']',rsquo:'\u2019',rsquor:'\u2019',rthree:'\u22CC',rtimes:'\u22CA',rtri:'\u25B9',rtrie:'\u22B5',rtrif:'\u25B8',rtriltri:'\u29CE',RuleDelayed:'\u29F4',ruluhar:'\u2968',rx:'\u211E',Sacute:'\u015A',sacute:'\u015B',sbquo:'\u201A',scap:'\u2AB8',Scaron:'\u0160',scaron:'\u0161',Sc:'\u2ABC',sc:'\u227B',sccue:'\u227D',sce:'\u2AB0',scE:'\u2AB4',Scedil:'\u015E',scedil:'\u015F',Scirc:'\u015C',scirc:'\u015D',scnap:'\u2ABA',scnE:'\u2AB6',scnsim:'\u22E9',scpolint:'\u2A13',scsim:'\u227F',Scy:'\u0421',scy:'\u0441',sdotb:'\u22A1',sdot:'\u22C5',sdote:'\u2A66',searhk:'\u2925',searr:'\u2198',seArr:'\u21D8',searrow:'\u2198',sect:'\xA7',semi:';',seswar:'\u2929',setminus:'\u2216',setmn:'\u2216',sext:'\u2736',Sfr:'\u{1D516}',sfr:'\u{1D530}',sfrown:'\u2322',sharp:'\u266F',SHCHcy:'\u0429',shchcy:'\u0449',SHcy:'\u0428',shcy:'\u0448',ShortDownArrow:'\u2193',ShortLeftArrow:'\u2190',shortmid:'\u2223',shortparallel:'\u2225',ShortRightArrow:'\u2192',ShortUpArrow:'\u2191',shy:'\xAD',Sigma:'\u03A3',sigma:'\u03C3',sigmaf:'\u03C2',sigmav:'\u03C2',sim:'\u223C',simdot:'\u2A6A',sime:'\u2243',simeq:'\u2243',simg:'\u2A9E',simgE:'\u2AA0',siml:'\u2A9D',simlE:'\u2A9F',simne:'\u2246',simplus:'\u2A24',simrarr:'\u2972',slarr:'\u2190',SmallCircle:'\u2218',smallsetminus:'\u2216',smashp:'\u2A33',smeparsl:'\u29E4',smid:'\u2223',smile:'\u2323',smt:'\u2AAA',smte:'\u2AAC',smtes:'\u2AAC\uFE00',SOFTcy:'\u042C',softcy:'\u044C',solbar:'\u233F',solb:'\u29C4',sol:'/',Sopf:'\u{1D54A}',sopf:'\u{1D564}',spades:'\u2660',spadesuit:'\u2660',spar:'\u2225',sqcap:'\u2293',sqcaps:'\u2293\uFE00',sqcup:'\u2294',sqcups:'\u2294\uFE00',Sqrt:'\u221A',sqsub:'\u228F',sqsube:'\u2291',sqsubset:'\u228F',sqsubseteq:'\u2291',sqsup:'\u2290',sqsupe:'\u2292',sqsupset:'\u2290',sqsupseteq:'\u2292',square:'\u25A1',Square:'\u25A1',SquareIntersection:'\u2293',SquareSubset:'\u228F',SquareSubsetEqual:'\u2291',SquareSuperset:'\u2290',SquareSupersetEqual:'\u2292',SquareUnion:'\u2294',squarf:'\u25AA',squ:'\u25A1',squf:'\u25AA',srarr:'\u2192',Sscr:'\u{1D4AE}',sscr:'\u{1D4C8}',ssetmn:'\u2216',ssmile:'\u2323',sstarf:'\u22C6',Star:'\u22C6',star:'\u2606',starf:'\u2605',straightepsilon:'\u03F5',straightphi:'\u03D5',strns:'\xAF',sub:'\u2282',Sub:'\u22D0',subdot:'\u2ABD',subE:'\u2AC5',sube:'\u2286',subedot:'\u2AC3',submult:'\u2AC1',subnE:'\u2ACB',subne:'\u228A',subplus:'\u2ABF',subrarr:'\u2979',subset:'\u2282',Subset:'\u22D0',subseteq:'\u2286',subseteqq:'\u2AC5',SubsetEqual:'\u2286',subsetneq:'\u228A',subsetneqq:'\u2ACB',subsim:'\u2AC7',subsub:'\u2AD5',subsup:'\u2AD3',succapprox:'\u2AB8',succ:'\u227B',succcurlyeq:'\u227D',Succeeds:'\u227B',SucceedsEqual:'\u2AB0',SucceedsSlantEqual:'\u227D',SucceedsTilde:'\u227F',succeq:'\u2AB0',succnapprox:'\u2ABA',succneqq:'\u2AB6',succnsim:'\u22E9',succsim:'\u227F',SuchThat:'\u220B',sum:'\u2211',Sum:'\u2211',sung:'\u266A',sup1:'\xB9',sup2:'\xB2',sup3:'\xB3',sup:'\u2283',Sup:'\u22D1',supdot:'\u2ABE',supdsub:'\u2AD8',supE:'\u2AC6',supe:'\u2287',supedot:'\u2AC4',Superset:'\u2283',SupersetEqual:'\u2287',suphsol:'\u27C9',suphsub:'\u2AD7',suplarr:'\u297B',supmult:'\u2AC2',supnE:'\u2ACC',supne:'\u228B',supplus:'\u2AC0',supset:'\u2283',Supset:'\u22D1',supseteq:'\u2287',supseteqq:'\u2AC6',supsetneq:'\u228B',supsetneqq:'\u2ACC',supsim:'\u2AC8',supsub:'\u2AD4',supsup:'\u2AD6',swarhk:'\u2926',swarr:'\u2199',swArr:'\u21D9',swarrow:'\u2199',swnwar:'\u292A',szlig:'\xDF',Tab:' ',target:'\u2316',Tau:'\u03A4',tau:'\u03C4',tbrk:'\u23B4',Tcaron:'\u0164',tcaron:'\u0165',Tcedil:'\u0162',tcedil:'\u0163',Tcy:'\u0422',tcy:'\u0442',tdot:'\u20DB',telrec:'\u2315',Tfr:'\u{1D517}',tfr:'\u{1D531}',there4:'\u2234',therefore:'\u2234',Therefore:'\u2234',Theta:'\u0398',theta:'\u03B8',thetasym:'\u03D1',thetav:'\u03D1',thickapprox:'\u2248',thicksim:'\u223C',ThickSpace:'\u205F\u200A',ThinSpace:'\u2009',thinsp:'\u2009',thkap:'\u2248',thksim:'\u223C',THORN:'\xDE',thorn:'\xFE',tilde:'\u02DC',Tilde:'\u223C',TildeEqual:'\u2243',TildeFullEqual:'\u2245',TildeTilde:'\u2248',timesbar:'\u2A31',timesb:'\u22A0',times:'\xD7',timesd:'\u2A30',tint:'\u222D',toea:'\u2928',topbot:'\u2336',topcir:'\u2AF1',top:'\u22A4',Topf:'\u{1D54B}',topf:'\u{1D565}',topfork:'\u2ADA',tosa:'\u2929',tprime:'\u2034',trade:'\u2122',TRADE:'\u2122',triangle:'\u25B5',triangledown:'\u25BF',triangleleft:'\u25C3',trianglelefteq:'\u22B4',triangleq:'\u225C',triangleright:'\u25B9',trianglerighteq:'\u22B5',tridot:'\u25EC',trie:'\u225C',triminus:'\u2A3A',TripleDot:'\u20DB',triplus:'\u2A39',trisb:'\u29CD',tritime:'\u2A3B',trpezium:'\u23E2',Tscr:'\u{1D4AF}',tscr:'\u{1D4C9}',TScy:'\u0426',tscy:'\u0446',TSHcy:'\u040B',tshcy:'\u045B',Tstrok:'\u0166',tstrok:'\u0167',twixt:'\u226C',twoheadleftarrow:'\u219E',twoheadrightarrow:'\u21A0',Uacute:'\xDA',uacute:'\xFA',uarr:'\u2191',Uarr:'\u219F',uArr:'\u21D1',Uarrocir:'\u2949',Ubrcy:'\u040E',ubrcy:'\u045E',Ubreve:'\u016C',ubreve:'\u016D',Ucirc:'\xDB',ucirc:'\xFB',Ucy:'\u0423',ucy:'\u0443',udarr:'\u21C5',Udblac:'\u0170',udblac:'\u0171',udhar:'\u296E',ufisht:'\u297E',Ufr:'\u{1D518}',ufr:'\u{1D532}',Ugrave:'\xD9',ugrave:'\xF9',uHar:'\u2963',uharl:'\u21BF',uharr:'\u21BE',uhblk:'\u2580',ulcorn:'\u231C',ulcorner:'\u231C',ulcrop:'\u230F',ultri:'\u25F8',Umacr:'\u016A',umacr:'\u016B',uml:'\xA8',UnderBar:'_',UnderBrace:'\u23DF',UnderBracket:'\u23B5',UnderParenthesis:'\u23DD',Union:'\u22C3',UnionPlus:'\u228E',Uogon:'\u0172',uogon:'\u0173',Uopf:'\u{1D54C}',uopf:'\u{1D566}',UpArrowBar:'\u2912',uparrow:'\u2191',UpArrow:'\u2191',Uparrow:'\u21D1',UpArrowDownArrow:'\u21C5',updownarrow:'\u2195',UpDownArrow:'\u2195',Updownarrow:'\u21D5',UpEquilibrium:'\u296E',upharpoonleft:'\u21BF',upharpoonright:'\u21BE',uplus:'\u228E',UpperLeftArrow:'\u2196',UpperRightArrow:'\u2197',upsi:'\u03C5',Upsi:'\u03D2',upsih:'\u03D2',Upsilon:'\u03A5',upsilon:'\u03C5',UpTeeArrow:'\u21A5',UpTee:'\u22A5',upuparrows:'\u21C8',urcorn:'\u231D',urcorner:'\u231D',urcrop:'\u230E',Uring:'\u016E',uring:'\u016F',urtri:'\u25F9',Uscr:'\u{1D4B0}',uscr:'\u{1D4CA}',utdot:'\u22F0',Utilde:'\u0168',utilde:'\u0169',utri:'\u25B5',utrif:'\u25B4',uuarr:'\u21C8',Uuml:'\xDC',uuml:'\xFC',uwangle:'\u29A7',vangrt:'\u299C',varepsilon:'\u03F5',varkappa:'\u03F0',varnothing:'\u2205',varphi:'\u03D5',varpi:'\u03D6',varpropto:'\u221D',varr:'\u2195',vArr:'\u21D5',varrho:'\u03F1',varsigma:'\u03C2',varsubsetneq:'\u228A\uFE00',varsubsetneqq:'\u2ACB\uFE00',varsupsetneq:'\u228B\uFE00',varsupsetneqq:'\u2ACC\uFE00',vartheta:'\u03D1',vartriangleleft:'\u22B2',vartriangleright:'\u22B3',vBar:'\u2AE8',Vbar:'\u2AEB',vBarv:'\u2AE9',Vcy:'\u0412',vcy:'\u0432',vdash:'\u22A2',vDash:'\u22A8',Vdash:'\u22A9',VDash:'\u22AB',Vdashl:'\u2AE6',veebar:'\u22BB',vee:'\u2228',Vee:'\u22C1',veeeq:'\u225A',vellip:'\u22EE',verbar:'|',Verbar:'\u2016',vert:'|',Vert:'\u2016',VerticalBar:'\u2223',VerticalLine:'|',VerticalSeparator:'\u2758',VerticalTilde:'\u2240',VeryThinSpace:'\u200A',Vfr:'\u{1D519}',vfr:'\u{1D533}',vltri:'\u22B2',vnsub:'\u2282\u20D2',vnsup:'\u2283\u20D2',Vopf:'\u{1D54D}',vopf:'\u{1D567}',vprop:'\u221D',vrtri:'\u22B3',Vscr:'\u{1D4B1}',vscr:'\u{1D4CB}',vsubnE:'\u2ACB\uFE00',vsubne:'\u228A\uFE00',vsupnE:'\u2ACC\uFE00',vsupne:'\u228B\uFE00',Vvdash:'\u22AA',vzigzag:'\u299A',Wcirc:'\u0174',wcirc:'\u0175',wedbar:'\u2A5F',wedge:'\u2227',Wedge:'\u22C0',wedgeq:'\u2259',weierp:'\u2118',Wfr:'\u{1D51A}',wfr:'\u{1D534}',Wopf:'\u{1D54E}',wopf:'\u{1D568}',wp:'\u2118',wr:'\u2240',wreath:'\u2240',Wscr:'\u{1D4B2}',wscr:'\u{1D4CC}',xcap:'\u22C2',xcirc:'\u25EF',xcup:'\u22C3',xdtri:'\u25BD',Xfr:'\u{1D51B}',xfr:'\u{1D535}',xharr:'\u27F7',xhArr:'\u27FA',Xi:'\u039E',xi:'\u03BE',xlarr:'\u27F5',xlArr:'\u27F8',xmap:'\u27FC',xnis:'\u22FB',xodot:'\u2A00',Xopf:'\u{1D54F}',xopf:'\u{1D569}',xoplus:'\u2A01',xotime:'\u2A02',xrarr:'\u27F6',xrArr:'\u27F9',Xscr:'\u{1D4B3}',xscr:'\u{1D4CD}',xsqcup:'\u2A06',xuplus:'\u2A04',xutri:'\u25B3',xvee:'\u22C1',xwedge:'\u22C0',Yacute:'\xDD',yacute:'\xFD',YAcy:'\u042F',yacy:'\u044F',Ycirc:'\u0176',ycirc:'\u0177',Ycy:'\u042B',ycy:'\u044B',yen:'\xA5',Yfr:'\u{1D51C}',yfr:'\u{1D536}',YIcy:'\u0407',yicy:'\u0457',Yopf:'\u{1D550}',yopf:'\u{1D56A}',Yscr:'\u{1D4B4}',yscr:'\u{1D4CE}',YUcy:'\u042E',yucy:'\u044E',yuml:'\xFF',Yuml:'\u0178',Zacute:'\u0179',zacute:'\u017A',Zcaron:'\u017D',zcaron:'\u017E',Zcy:'\u0417',zcy:'\u0437',Zdot:'\u017B',zdot:'\u017C',zeetrf:'\u2128',ZeroWidthSpace:'\u200B',Zeta:'\u0396',zeta:'\u03B6',zfr:'\u{1D537}',Zfr:'\u2128',ZHcy:'\u0416',zhcy:'\u0436',zigrarr:'\u21DD',zopf:'\u{1D56B}',Zopf:'\u2124',Zscr:'\u{1D4B5}',zscr:'\u{1D4CF}',zwj:'\u200D',zwnj:'\u200C'}; +});var LP=X((TPe,iz)=>{ + 'use strict';iz.exports=nz(); +});var Xx=X((CPe,oz)=>{ + oz.exports=/[!-#%-\*,-\/:;\?@\[-\]_\{\}\xA1\xA7\xAB\xB6\xB7\xBB\xBF\u037E\u0387\u055A-\u055F\u0589\u058A\u05BE\u05C0\u05C3\u05C6\u05F3\u05F4\u0609\u060A\u060C\u060D\u061B\u061E\u061F\u066A-\u066D\u06D4\u0700-\u070D\u07F7-\u07F9\u0830-\u083E\u085E\u0964\u0965\u0970\u09FD\u0A76\u0AF0\u0C84\u0DF4\u0E4F\u0E5A\u0E5B\u0F04-\u0F12\u0F14\u0F3A-\u0F3D\u0F85\u0FD0-\u0FD4\u0FD9\u0FDA\u104A-\u104F\u10FB\u1360-\u1368\u1400\u166D\u166E\u169B\u169C\u16EB-\u16ED\u1735\u1736\u17D4-\u17D6\u17D8-\u17DA\u1800-\u180A\u1944\u1945\u1A1E\u1A1F\u1AA0-\u1AA6\u1AA8-\u1AAD\u1B5A-\u1B60\u1BFC-\u1BFF\u1C3B-\u1C3F\u1C7E\u1C7F\u1CC0-\u1CC7\u1CD3\u2010-\u2027\u2030-\u2043\u2045-\u2051\u2053-\u205E\u207D\u207E\u208D\u208E\u2308-\u230B\u2329\u232A\u2768-\u2775\u27C5\u27C6\u27E6-\u27EF\u2983-\u2998\u29D8-\u29DB\u29FC\u29FD\u2CF9-\u2CFC\u2CFE\u2CFF\u2D70\u2E00-\u2E2E\u2E30-\u2E4E\u3001-\u3003\u3008-\u3011\u3014-\u301F\u3030\u303D\u30A0\u30FB\uA4FE\uA4FF\uA60D-\uA60F\uA673\uA67E\uA6F2-\uA6F7\uA874-\uA877\uA8CE\uA8CF\uA8F8-\uA8FA\uA8FC\uA92E\uA92F\uA95F\uA9C1-\uA9CD\uA9DE\uA9DF\uAA5C-\uAA5F\uAADE\uAADF\uAAF0\uAAF1\uABEB\uFD3E\uFD3F\uFE10-\uFE19\uFE30-\uFE52\uFE54-\uFE61\uFE63\uFE68\uFE6A\uFE6B\uFF01-\uFF03\uFF05-\uFF0A\uFF0C-\uFF0F\uFF1A\uFF1B\uFF1F\uFF20\uFF3B-\uFF3D\uFF3F\uFF5B\uFF5D\uFF5F-\uFF65]|\uD800[\uDD00-\uDD02\uDF9F\uDFD0]|\uD801\uDD6F|\uD802[\uDC57\uDD1F\uDD3F\uDE50-\uDE58\uDE7F\uDEF0-\uDEF6\uDF39-\uDF3F\uDF99-\uDF9C]|\uD803[\uDF55-\uDF59]|\uD804[\uDC47-\uDC4D\uDCBB\uDCBC\uDCBE-\uDCC1\uDD40-\uDD43\uDD74\uDD75\uDDC5-\uDDC8\uDDCD\uDDDB\uDDDD-\uDDDF\uDE38-\uDE3D\uDEA9]|\uD805[\uDC4B-\uDC4F\uDC5B\uDC5D\uDCC6\uDDC1-\uDDD7\uDE41-\uDE43\uDE60-\uDE6C\uDF3C-\uDF3E]|\uD806[\uDC3B\uDE3F-\uDE46\uDE9A-\uDE9C\uDE9E-\uDEA2]|\uD807[\uDC41-\uDC45\uDC70\uDC71\uDEF7\uDEF8]|\uD809[\uDC70-\uDC74]|\uD81A[\uDE6E\uDE6F\uDEF5\uDF37-\uDF3B\uDF44]|\uD81B[\uDE97-\uDE9A]|\uD82F\uDC9F|\uD836[\uDE87-\uDE8B]|\uD83A[\uDD5E\uDD5F]/; +});var lz=X((SPe,sz)=>{ + 'use strict';var az={};function lge(e){ + var t,r,n=az[e];if(n)return n;for(n=az[e]=[],t=0;t<128;t++)r=String.fromCharCode(t),/^[0-9a-z]$/i.test(r)?n.push(r):n.push('%'+('0'+t.toString(16).toUpperCase()).slice(-2));for(t=0;t'u'&&(r=!0),l=lge(t),n=0,i=e.length;n=55296&&o<=57343){ + if(o>=55296&&o<=56319&&n+1=56320&&s<=57343)){ + c+=encodeURIComponent(e[n]+e[n+1]),n++;continue; + }c+='%EF%BF%BD';continue; + }c+=encodeURIComponent(e[n]); + }return c; + }Zx.defaultChars=";/?:@&=+$,-_.!~*'()#";Zx.componentChars="-_.!~*'()";sz.exports=Zx; +});var fz=X((kPe,cz)=>{ + 'use strict';var uz={};function uge(e){ + var t,r,n=uz[e];if(n)return n;for(n=uz[e]=[],t=0;t<128;t++)r=String.fromCharCode(t),n.push(r);for(t=0;t=55296&&m<=57343?v+='\uFFFD\uFFFD\uFFFD':v+=String.fromCharCode(m),i+=6;continue; + }if((s&248)===240&&i+91114111?v+='\uFFFD\uFFFD\uFFFD\uFFFD':(m-=65536,v+=String.fromCharCode(55296+(m>>10),56320+(m&1023))),i+=9;continue; + }v+='\uFFFD'; + }return v; + }); + }Jx.defaultChars=';/?:@&=+$,#';Jx.componentChars='';cz.exports=Jx; +});var pz=X((OPe,dz)=>{ + 'use strict';dz.exports=function(t){ + var r='';return r+=t.protocol||'',r+=t.slashes?'//':'',r+=t.auth?t.auth+'@':'',t.hostname&&t.hostname.indexOf(':')!==-1?r+='['+t.hostname+']':r+=t.hostname||'',r+=t.port?':'+t.port:'',r+=t.pathname||'',r+=t.search||'',r+=t.hash||'',r; + }; +});var Az=X((NPe,bz)=>{ + 'use strict';function _x(){ + this.protocol=null,this.slashes=null,this.auth=null,this.port=null,this.hostname=null,this.hash=null,this.search=null,this.pathname=null; + }var cge=/^([a-z0-9.+-]+:)/i,fge=/:[0-9]*$/,dge=/^(\/\/?(?!\/)[^\?\s]*)(\?[^\s]*)?$/,pge=['<','>','"','`',' ','\r',` +`,' '],mge=['{','}','|','\\','^','`'].concat(pge),hge=["'"].concat(mge),mz=['%','/','?',';','#'].concat(hge),hz=['/','?','#'],vge=255,vz=/^[+a-z0-9A-Z_-]{0,63}$/,gge=/^([+a-z0-9A-Z_-]{0,63})(.*)$/,gz={javascript:!0,'javascript:':!0},yz={http:!0,https:!0,ftp:!0,gopher:!0,file:!0,'http:':!0,'https:':!0,'ftp:':!0,'gopher:':!0,'file:':!0};function yge(e,t){ + if(e&&e instanceof _x)return e;var r=new _x;return r.parse(e,t),r; + }_x.prototype.parse=function(e,t){ + var r,n,i,o,s,l=e;if(l=l.trim(),!t&&e.split('#').length===1){ + var c=dge.exec(l);if(c)return this.pathname=c[1],c[2]&&(this.search=c[2]),this; + }var f=cge.exec(l);if(f&&(f=f[0],i=f.toLowerCase(),this.protocol=f,l=l.substr(f.length)),(t||f||l.match(/^\/\/[^@\/]+@[^@\/]+/))&&(s=l.substr(0,2)==='//',s&&!(f&&gz[f])&&(l=l.substr(2),this.slashes=!0)),!gz[f]&&(s||f&&!yz[f])){ + var m=-1;for(r=0;r127?A+='x':A+=S[b];if(!A.match(vz)){ + var x=T.slice(0,r),k=T.slice(r+1),P=S.match(gge);P&&(x.push(P[1]),k.unshift(P[2])),k.length&&(l=k.join('.')+l),this.hostname=x.join('.');break; + } + } + } + }this.hostname.length>vge&&(this.hostname=''),w&&(this.hostname=this.hostname.substr(1,this.hostname.length-2)); + }var D=l.indexOf('#');D!==-1&&(this.hash=l.substr(D),l=l.slice(0,D));var N=l.indexOf('?');return N!==-1&&(this.search=l.substr(N),l=l.slice(0,N)),l&&(this.pathname=l),yz[i]&&this.hostname&&!this.pathname&&(this.pathname=''),this; + };_x.prototype.parseHost=function(e){ + var t=fge.exec(e);t&&(t=t[0],t!==':'&&(this.port=t.substr(1)),e=e.substr(0,e.length-t.length)),e&&(this.hostname=e); + };bz.exports=yge; +});var PP=X((DPe,Kg)=>{ + 'use strict';Kg.exports.encode=lz();Kg.exports.decode=fz();Kg.exports.format=pz();Kg.exports.parse=Az(); +});var RP=X((LPe,xz)=>{ + xz.exports=/[\0-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/; +});var MP=X((PPe,wz)=>{ + wz.exports=/[\0-\x1F\x7F-\x9F]/; +});var Tz=X((RPe,Ez)=>{ + Ez.exports=/[\xAD\u0600-\u0605\u061C\u06DD\u070F\u08E2\u180E\u200B-\u200F\u202A-\u202E\u2060-\u2064\u2066-\u206F\uFEFF\uFFF9-\uFFFB]|\uD804[\uDCBD\uDCCD]|\uD82F[\uDCA0-\uDCA3]|\uD834[\uDD73-\uDD7A]|\uDB40[\uDC01\uDC20-\uDC7F]/; +});var IP=X((MPe,Cz)=>{ + Cz.exports=/[ \xA0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000]/; +});var Sz=X(sm=>{ + 'use strict';sm.Any=RP();sm.Cc=MP();sm.Cf=Tz();sm.P=Xx();sm.Z=IP(); +});var Ht=X(En=>{ + 'use strict';function bge(e){ + return Object.prototype.toString.call(e); + }function Age(e){ + return bge(e)==='[object String]'; + }var xge=Object.prototype.hasOwnProperty;function Oz(e,t){ + return xge.call(e,t); + }function wge(e){ + var t=Array.prototype.slice.call(arguments,1);return t.forEach(function(r){ + if(r){ + if(typeof r!='object')throw new TypeError(r+'must be object');Object.keys(r).forEach(function(n){ + e[n]=r[n]; + }); + } + }),e; + }function Ege(e,t,r){ + return[].concat(e.slice(0,t),r,e.slice(t+1)); + }function Nz(e){ + return!(e>=55296&&e<=57343||e>=64976&&e<=65007||(e&65535)===65535||(e&65535)===65534||e>=0&&e<=8||e===11||e>=14&&e<=31||e>=127&&e<=159||e>1114111); + }function Dz(e){ + if(e>65535){ + e-=65536;var t=55296+(e>>10),r=56320+(e&1023);return String.fromCharCode(t,r); + }return String.fromCharCode(e); + }var Lz=/\\([!"#$%&'()*+,\-.\/:;<=>?@[\\\]^_`{|}~])/g,Tge=/&([a-z#][a-z0-9]{1,31});/gi,Cge=new RegExp(Lz.source+'|'+Tge.source,'gi'),Sge=/^#((?:x[a-f0-9]{1,8}|[0-9]{1,8}))/i,kz=LP();function kge(e,t){ + var r=0;return Oz(kz,t)?kz[t]:t.charCodeAt(0)===35&&Sge.test(t)&&(r=t[1].toLowerCase()==='x'?parseInt(t.slice(2),16):parseInt(t.slice(1),10),Nz(r))?Dz(r):e; + }function Oge(e){ + return e.indexOf('\\')<0?e:e.replace(Lz,'$1'); + }function Nge(e){ + return e.indexOf('\\')<0&&e.indexOf('&')<0?e:e.replace(Cge,function(t,r,n){ + return r||kge(t,n); + }); + }var Dge=/[&<>"]/,Lge=/[&<>"]/g,Pge={'&':'&','<':'<','>':'>','"':'"'};function Rge(e){ + return Pge[e]; + }function Mge(e){ + return Dge.test(e)?e.replace(Lge,Rge):e; + }var Ige=/[.?*+^$[\]\\(){}|-]/g;function Fge(e){ + return e.replace(Ige,'\\$&'); + }function qge(e){ + switch(e){ + case 9:case 32:return!0; + }return!1; + }function jge(e){ + if(e>=8192&&e<=8202)return!0;switch(e){ + case 9:case 10:case 11:case 12:case 13:case 32:case 160:case 5760:case 8239:case 8287:case 12288:return!0; + }return!1; + }var Vge=Xx();function Uge(e){ + return Vge.test(e); + }function Bge(e){ + switch(e){ + case 33:case 34:case 35:case 36:case 37:case 38:case 39:case 40:case 41:case 42:case 43:case 44:case 45:case 46:case 47:case 58:case 59:case 60:case 61:case 62:case 63:case 64:case 91:case 92:case 93:case 94:case 95:case 96:case 123:case 124:case 125:case 126:return!0;default:return!1; + } + }function Gge(e){ + return e=e.trim().replace(/\s+/g,' '),'\u1E9E'.toLowerCase()==='\u1E7E'&&(e=e.replace(/ẞ/g,'\xDF')),e.toLowerCase().toUpperCase(); + }En.lib={};En.lib.mdurl=PP();En.lib.ucmicro=Sz();En.assign=wge;En.isString=Age;En.has=Oz;En.unescapeMd=Oge;En.unescapeAll=Nge;En.isValidEntityCode=Nz;En.fromCodePoint=Dz;En.escapeHtml=Mge;En.arrayReplaceAt=Ege;En.isSpace=qge;En.isWhiteSpace=jge;En.isMdAsciiPunct=Bge;En.isPunctChar=Uge;En.escapeRE=Fge;En.normalizeReference=Gge; +});var Rz=X((qPe,Pz)=>{ + 'use strict';Pz.exports=function(t,r,n){ + var i,o,s,l,c=-1,f=t.posMax,m=t.pos;for(t.pos=r+1,i=1;t.pos{ + 'use strict';var Mz=Ht().unescapeAll;Iz.exports=function(t,r,n){ + var i,o,s=0,l=r,c={ok:!1,pos:0,lines:0,str:''};if(t.charCodeAt(r)===60){ + for(r++;r32))return c;if(i===41){ + if(o===0)break;o--; + }r++; + }return l===r||o!==0||(c.str=Mz(t.slice(l,r)),c.lines=s,c.pos=r,c.ok=!0),c; + }; +});var jz=X((VPe,qz)=>{ + 'use strict';var zge=Ht().unescapeAll;qz.exports=function(t,r,n){ + var i,o,s=0,l=r,c={ok:!1,pos:0,lines:0,str:''};if(r>=n||(o=t.charCodeAt(r),o!==34&&o!==39&&o!==40))return c;for(r++,o===40&&(o=41);r{ + 'use strict';$x.parseLinkLabel=Rz();$x.parseLinkDestination=Fz();$x.parseLinkTitle=jz(); +});var Bz=X((BPe,Uz)=>{ + 'use strict';var Hge=Ht().assign,Qge=Ht().unescapeAll,Sf=Ht().escapeHtml,Ss={};Ss.code_inline=function(e,t,r,n,i){ + var o=e[t];return''+Sf(e[t].content)+''; + };Ss.code_block=function(e,t,r,n,i){ + var o=e[t];return''+Sf(e[t].content)+` +`; + };Ss.fence=function(e,t,r,n,i){ + var o=e[t],s=o.info?Qge(o.info).trim():'',l='',c='',f,m,v,g,y;return s&&(v=s.split(/(\s+)/g),l=v[0],c=v.slice(2).join('')),r.highlight?f=r.highlight(o.content,l,c)||Sf(o.content):f=Sf(o.content),f.indexOf(''+f+` +`):'
'+f+`
+`; + };Ss.image=function(e,t,r,n,i){ + var o=e[t];return o.attrs[o.attrIndex('alt')][1]=i.renderInlineAsText(o.children,r,n),i.renderToken(e,t,r); + };Ss.hardbreak=function(e,t,r){ + return r.xhtmlOut?`
+`:`
+`; + };Ss.softbreak=function(e,t,r){ + return r.breaks?r.xhtmlOut?`
+`:`
+`:` +`; + };Ss.text=function(e,t){ + return Sf(e[t].content); + };Ss.html_block=function(e,t){ + return e[t].content; + };Ss.html_inline=function(e,t){ + return e[t].content; + };function lm(){ + this.rules=Hge({},Ss); + }lm.prototype.renderAttrs=function(t){ + var r,n,i;if(!t.attrs)return'';for(i='',r=0,n=t.attrs.length;r +`:'>',o); + };lm.prototype.renderInline=function(e,t,r){ + for(var n,i='',o=this.rules,s=0,l=e.length;s{ + 'use strict';function Fa(){ + this.__rules__=[],this.__cache__=null; + }Fa.prototype.__find__=function(e){ + for(var t=0;t{ + 'use strict';var Wge=/\r\n?|\n/g,Yge=/\0/g;zz.exports=function(t){ + var r;r=t.src.replace(Wge,` +`),r=r.replace(Yge,'\uFFFD'),t.src=r; + }; +});var Wz=X((HPe,Qz)=>{ + 'use strict';Qz.exports=function(t){ + var r;t.inlineMode?(r=new t.Token('inline','',0),r.content=t.src,r.map=[0,1],r.children=[],t.tokens.push(r)):t.md.block.parse(t.src,t.md,t.env,t.tokens); + }; +});var Kz=X((QPe,Yz)=>{ + 'use strict';Yz.exports=function(t){ + var r=t.tokens,n,i,o;for(i=0,o=r.length;i{ + 'use strict';var Kge=Ht().arrayReplaceAt;function Xge(e){ + return/^\s]/i.test(e); + }function Zge(e){ + return/^<\/a\s*>/i.test(e); + }Xz.exports=function(t){ + var r,n,i,o,s,l,c,f,m,v,g,y,w,T,S,A,b=t.tokens,C;if(t.md.options.linkify){ + for(n=0,i=b.length;n=0;r--){ + if(l=o[r],l.type==='link_close'){ + for(r--;o[r].level!==l.level&&o[r].type!=='link_open';)r--;continue; + }if(l.type==='html_inline'&&(Xge(l.content)&&w>0&&w--,Zge(l.content)&&w++),!(w>0)&&l.type==='text'&&t.md.linkify.test(l.content)){ + for(m=l.content,C=t.md.linkify.match(m),c=[],y=l.level,g=0,f=0;fg&&(s=new t.Token('text','',0),s.content=m.slice(g,v),s.level=y,c.push(s)),s=new t.Token('link_open','a',1),s.attrs=[['href',S]],s.level=y++,s.markup='linkify',s.info='auto',c.push(s),s=new t.Token('text','',0),s.content=A,s.level=y,c.push(s),s=new t.Token('link_close','a',-1),s.level=--y,s.markup='linkify',s.info='auto',c.push(s),g=C[f].lastIndex);g{ + 'use strict';var Jz=/\+-|\.\.|\?\?\?\?|!!!!|,,|--/,Jge=/\((c|tm|r|p)\)/i,_ge=/\((c|tm|r|p)\)/ig,$ge={c:'\xA9',r:'\xAE',p:'\xA7',tm:'\u2122'};function eye(e,t){ + return $ge[t.toLowerCase()]; + }function tye(e){ + var t,r,n=0;for(t=e.length-1;t>=0;t--)r=e[t],r.type==='text'&&!n&&(r.content=r.content.replace(_ge,eye)),r.type==='link_open'&&r.info==='auto'&&n--,r.type==='link_close'&&r.info==='auto'&&n++; + }function rye(e){ + var t,r,n=0;for(t=e.length-1;t>=0;t--)r=e[t],r.type==='text'&&!n&&Jz.test(r.content)&&(r.content=r.content.replace(/\+-/g,'\xB1').replace(/\.{2,}/g,'\u2026').replace(/([?!])…/g,'$1..').replace(/([?!]){4,}/g,'$1$1$1').replace(/,{2,}/g,',').replace(/(^|[^-])---(?=[^-]|$)/mg,'$1\u2014').replace(/(^|\s)--(?=\s|$)/mg,'$1\u2013').replace(/(^|[^-\s])--(?=[^-\s]|$)/mg,'$1\u2013')),r.type==='link_open'&&r.info==='auto'&&n--,r.type==='link_close'&&r.info==='auto'&&n++; + }_z.exports=function(t){ + var r;if(t.md.options.typographer)for(r=t.tokens.length-1;r>=0;r--)t.tokens[r].type==='inline'&&(Jge.test(t.tokens[r].content)&&tye(t.tokens[r].children),Jz.test(t.tokens[r].content)&&rye(t.tokens[r].children)); + }; +});var aH=X((KPe,oH)=>{ + 'use strict';var eH=Ht().isWhiteSpace,tH=Ht().isPunctChar,rH=Ht().isMdAsciiPunct,nye=/['"]/,nH=/['"]/g,iH='\u2019';function tw(e,t,r){ + return e.substr(0,t)+r+e.substr(t+1); + }function iye(e,t){ + var r,n,i,o,s,l,c,f,m,v,g,y,w,T,S,A,b,C,x,k,P;for(x=[],r=0;r=0&&!(x[b].level<=c);b--);if(x.length=b+1,n.type==='text'){ + i=n.content,s=0,l=i.length;e:for(;s=0)m=i.charCodeAt(o.index-1);else for(b=r-1;b>=0&&!(e[b].type==='softbreak'||e[b].type==='hardbreak');b--)if(e[b].content){ + m=e[b].content.charCodeAt(e[b].content.length-1);break; + }if(v=32,s=48&&m<=57&&(A=S=!1),S&&A&&(S=g,A=y),!S&&!A){ + C&&(n.content=tw(n.content,o.index,iH));continue; + }if(A){ + for(b=x.length-1;b>=0&&(f=x[b],!(x[b].level=0;r--)t.tokens[r].type!=='inline'||!nye.test(t.tokens[r].content)||iye(t.tokens[r].children,t); + }; +});var rw=X((XPe,sH)=>{ + 'use strict';function um(e,t,r){ + this.type=e,this.tag=t,this.attrs=null,this.map=null,this.nesting=r,this.level=0,this.children=null,this.content='',this.markup='',this.info='',this.meta=null,this.block=!1,this.hidden=!1; + }um.prototype.attrIndex=function(t){ + var r,n,i;if(!this.attrs)return-1;for(r=this.attrs,n=0,i=r.length;n=0&&(n=this.attrs[r][1]),n; + };um.prototype.attrJoin=function(t,r){ + var n=this.attrIndex(t);n<0?this.attrPush([t,r]):this.attrs[n][1]=this.attrs[n][1]+' '+r; + };sH.exports=um; +});var cH=X((ZPe,uH)=>{ + 'use strict';var oye=rw();function lH(e,t,r){ + this.src=e,this.env=r,this.tokens=[],this.inlineMode=!1,this.md=t; + }lH.prototype.Token=oye;uH.exports=lH; +});var dH=X((JPe,fH)=>{ + 'use strict';var aye=ew(),FP=[['normalize',Hz()],['block',Wz()],['inline',Kz()],['linkify',Zz()],['replacements',$z()],['smartquotes',aH()]];function qP(){ + this.ruler=new aye;for(var e=0;e{ + 'use strict';var jP=Ht().isSpace;function VP(e,t){ + var r=e.bMarks[t]+e.tShift[t],n=e.eMarks[t];return e.src.substr(r,n-r); + }function pH(e){ + var t=[],r=0,n=e.length,i,o=!1,s=0,l='';for(i=e.charCodeAt(r);rn||(m=r+1,t.sCount[m]=4||(l=t.bMarks[m]+t.tShift[m],l>=t.eMarks[m])||(k=t.src.charCodeAt(l++),k!==124&&k!==45&&k!==58)||l>=t.eMarks[m]||(P=t.src.charCodeAt(l++),P!==124&&P!==45&&P!==58&&!jP(P))||k===45&&jP(P))return!1;for(;l=4||(v=pH(s),v.length&&v[0]===''&&v.shift(),v.length&&v[v.length-1]===''&&v.pop(),g=v.length,g===0||g!==w.length))return!1;if(i)return!0;for(b=t.parentType,t.parentType='table',x=t.md.block.ruler.getRules('blockquote'),y=t.push('table_open','table',1),y.map=S=[r,0],y=t.push('thead_open','thead',1),y.map=[r,r+1],y=t.push('tr_open','tr',1),y.map=[r,r+1],c=0;c=4)break;for(v=pH(s),v.length&&v[0]===''&&v.shift(),v.length&&v[v.length-1]===''&&v.pop(),m===r+2&&(y=t.push('tbody_open','tbody',1),y.map=A=[r+2,0]),y=t.push('tr_open','tr',1),y.map=[m,m+1],c=0;c{ + 'use strict';vH.exports=function(t,r,n){ + var i,o,s;if(t.sCount[r]-t.blkIndent<4)return!1;for(o=i=r+1;i=4){ + i++,o=i;continue; + }break; + }return t.line=o,s=t.push('code_block','code',0),s.content=t.getLines(r,o,4+t.blkIndent,!1)+` +`,s.map=[r,t.line],!0; + }; +});var bH=X((eRe,yH)=>{ + 'use strict';yH.exports=function(t,r,n,i){ + var o,s,l,c,f,m,v,g=!1,y=t.bMarks[r]+t.tShift[r],w=t.eMarks[r];if(t.sCount[r]-t.blkIndent>=4||y+3>w||(o=t.src.charCodeAt(y),o!==126&&o!==96)||(f=y,y=t.skipChars(y,o),s=y-f,s<3)||(v=t.src.slice(f,y),l=t.src.slice(y,w),o===96&&l.indexOf(String.fromCharCode(o))>=0))return!1;if(i)return!0;for(c=r;c++,!(c>=n||(y=f=t.bMarks[c]+t.tShift[c],w=t.eMarks[c],y=4)&&(y=t.skipChars(y,o),!(y-f{ + 'use strict';var AH=Ht().isSpace;xH.exports=function(t,r,n,i){ + var o,s,l,c,f,m,v,g,y,w,T,S,A,b,C,x,k,P,D,N,I=t.lineMax,V=t.bMarks[r]+t.tShift[r],G=t.eMarks[r];if(t.sCount[r]-t.blkIndent>=4||t.src.charCodeAt(V++)!==62)return!1;if(i)return!0;for(c=y=t.sCount[r]+1,t.src.charCodeAt(V)===32?(V++,c++,y++,o=!1,x=!0):t.src.charCodeAt(V)===9?(x=!0,(t.bsCount[r]+y)%4===3?(V++,c++,y++,o=!1):o=!0):x=!1,w=[t.bMarks[r]],t.bMarks[r]=V;V=G,b=[t.sCount[r]],t.sCount[r]=y-c,C=[t.tShift[r]],t.tShift[r]=V-t.bMarks[r],P=t.md.block.ruler.getRules('blockquote'),A=t.parentType,t.parentType='blockquote',g=r+1;g=G));g++){ + if(t.src.charCodeAt(V++)===62&&!N){ + for(c=y=t.sCount[g]+1,t.src.charCodeAt(V)===32?(V++,c++,y++,o=!1,x=!0):t.src.charCodeAt(V)===9?(x=!0,(t.bsCount[g]+y)%4===3?(V++,c++,y++,o=!1):o=!0):x=!1,w.push(t.bMarks[g]),t.bMarks[g]=V;V=G,T.push(t.bsCount[g]),t.bsCount[g]=t.sCount[g]+1+(x?1:0),b.push(t.sCount[g]),t.sCount[g]=y-c,C.push(t.tShift[g]),t.tShift[g]=V-t.bMarks[g];continue; + }if(m)break;for(k=!1,l=0,f=P.length;l',D.map=v=[r,0],t.md.block.tokenize(t,r,g),D=t.push('blockquote_close','blockquote',-1),D.markup='>',t.lineMax=I,t.parentType=A,v[1]=t.line,l=0;l{ + 'use strict';var sye=Ht().isSpace;EH.exports=function(t,r,n,i){ + var o,s,l,c,f=t.bMarks[r]+t.tShift[r],m=t.eMarks[r];if(t.sCount[r]-t.blkIndent>=4||(o=t.src.charCodeAt(f++),o!==42&&o!==45&&o!==95))return!1;for(s=1;f{ + 'use strict';var kH=Ht().isSpace;function CH(e,t){ + var r,n,i,o;return n=e.bMarks[t]+e.tShift[t],i=e.eMarks[t],r=e.src.charCodeAt(n++),r!==42&&r!==45&&r!==43||n=o||(r=e.src.charCodeAt(i++),r<48||r>57))return-1;for(;;){ + if(i>=o)return-1;if(r=e.src.charCodeAt(i++),r>=48&&r<=57){ + if(i-n>=10)return-1;continue; + }if(r===41||r===46)break;return-1; + }return i=4||t.listIndent>=0&&t.sCount[r]-t.listIndent>=4&&t.sCount[r]=t.blkIndent&&(K=!0),(G=SH(t,r))>=0){ + if(v=!0,U=t.bMarks[r]+t.tShift[r],A=Number(t.src.slice(U,G-1)),K&&A!==1)return!1; + }else if((G=CH(t,r))>=0)v=!1;else return!1;if(K&&t.skipSpaces(G)>=t.eMarks[r])return!1;if(S=t.src.charCodeAt(G-1),i)return!0;for(T=t.tokens.length,v?(J=t.push('ordered_list_open','ol',1),A!==1&&(J.attrs=[['start',A]])):J=t.push('bullet_list_open','ul',1),J.map=w=[r,0],J.markup=String.fromCharCode(S),C=r,B=!1,j=t.md.block.ruler.getRules('list'),P=t.parentType,t.parentType='list';C=b?f=1:f=x-m,f>4&&(f=1),c=m+f,J=t.push('list_item_open','li',1),J.markup=String.fromCharCode(S),J.map=g=[r,0],v&&(J.info=t.src.slice(U,G-1)),I=t.tight,N=t.tShift[r],D=t.sCount[r],k=t.listIndent,t.listIndent=t.blkIndent,t.blkIndent=c,t.tight=!0,t.tShift[r]=s-t.bMarks[r],t.sCount[r]=x,s>=b&&t.isEmpty(r+1)?t.line=Math.min(t.line+2,n):t.md.block.tokenize(t,r,n,!0),(!t.tight||B)&&(ee=!1),B=t.line-r>1&&t.isEmpty(t.line-1),t.blkIndent=t.listIndent,t.listIndent=k,t.tShift[r]=N,t.sCount[r]=D,t.tight=I,J=t.push('list_item_close','li',-1),J.markup=String.fromCharCode(S),C=r=t.line,g[1]=C,s=t.bMarks[r],C>=n||t.sCount[C]=4)break;for(z=!1,l=0,y=j.length;l{ + 'use strict';var uye=Ht().normalizeReference,nw=Ht().isSpace;DH.exports=function(t,r,n,i){ + var o,s,l,c,f,m,v,g,y,w,T,S,A,b,C,x,k=0,P=t.bMarks[r]+t.tShift[r],D=t.eMarks[r],N=r+1;if(t.sCount[r]-t.blkIndent>=4||t.src.charCodeAt(P)!==91)return!1;for(;++P3)&&!(t.sCount[N]<0)){ + for(b=!1,m=0,v=C.length;m'u'&&(t.env.references={}),typeof t.env.references[g]>'u'&&(t.env.references[g]={title:x,href:f}),t.parentType=w,t.line=r+k+1),!0); + }; +});var RH=X((oRe,PH)=>{ + 'use strict';PH.exports=['address','article','aside','base','basefont','blockquote','body','caption','center','col','colgroup','dd','details','dialog','dir','div','dl','dt','fieldset','figcaption','figure','footer','form','frame','frameset','h1','h2','h3','h4','h5','h6','head','header','hr','html','iframe','legend','li','link','main','menu','menuitem','nav','noframes','ol','optgroup','option','p','param','section','source','summary','table','tbody','td','tfoot','th','thead','title','tr','track','ul']; +});var BP=X((aRe,UP)=>{ + 'use strict';var cye='[a-zA-Z_:][a-zA-Z0-9:._-]*',fye="[^\"'=<>`\\x00-\\x20]+",dye="'[^']*'",pye='"[^"]*"',mye='(?:'+fye+'|'+dye+'|'+pye+')',hye='(?:\\s+'+cye+'(?:\\s*=\\s*'+mye+')?)',MH='<[A-Za-z][A-Za-z0-9\\-]*'+hye+'*\\s*\\/?>',IH='<\\/[A-Za-z][A-Za-z0-9\\-]*\\s*>',vye='|',gye='<[?][\\s\\S]*?[?]>',yye=']*>',bye='',Aye=new RegExp('^(?:'+MH+'|'+IH+'|'+vye+'|'+gye+'|'+yye+'|'+bye+')'),xye=new RegExp('^(?:'+MH+'|'+IH+')');UP.exports.HTML_TAG_RE=Aye;UP.exports.HTML_OPEN_CLOSE_TAG_RE=xye; +});var qH=X((sRe,FH)=>{ + 'use strict';var wye=RH(),Eye=BP().HTML_OPEN_CLOSE_TAG_RE,cm=[[/^<(script|pre|style|textarea)(?=(\s|>|$))/i,/<\/(script|pre|style|textarea)>/i,!0],[/^/,!0],[/^<\?/,/\?>/,!0],[/^/,!0],[/^/,!0],[new RegExp('^|$))','i'),/^$/,!0],[new RegExp(Eye.source+'\\s*$'),/^$/,!1]];FH.exports=function(t,r,n,i){ + var o,s,l,c,f=t.bMarks[r]+t.tShift[r],m=t.eMarks[r];if(t.sCount[r]-t.blkIndent>=4||!t.md.options.html||t.src.charCodeAt(f)!==60)return!1;for(c=t.src.slice(f,m),o=0;o{ + 'use strict';var jH=Ht().isSpace;VH.exports=function(t,r,n,i){ + var o,s,l,c,f=t.bMarks[r]+t.tShift[r],m=t.eMarks[r];if(t.sCount[r]-t.blkIndent>=4||(o=t.src.charCodeAt(f),o!==35||f>=m))return!1;for(s=1,o=t.src.charCodeAt(++f);o===35&&f6||ff&&jH(t.src.charCodeAt(l-1))&&(m=l),t.line=r+1,c=t.push('heading_open','h'+String(s),1),c.markup='########'.slice(0,s),c.map=[r,t.line],c=t.push('inline','',0),c.content=t.src.slice(f,m).trim(),c.map=[r,t.line],c.children=[],c=t.push('heading_close','h'+String(s),-1),c.markup='########'.slice(0,s)),!0); + }; +});var GH=X((uRe,BH)=>{ + 'use strict';BH.exports=function(t,r,n){ + var i,o,s,l,c,f,m,v,g,y=r+1,w,T=t.md.block.ruler.getRules('paragraph');if(t.sCount[r]-t.blkIndent>=4)return!1;for(w=t.parentType,t.parentType='paragraph';y3)){ + if(t.sCount[y]>=t.blkIndent&&(f=t.bMarks[y]+t.tShift[y],m=t.eMarks[y],f=m)))){ + v=g===61?1:2;break; + }if(!(t.sCount[y]<0)){ + for(o=!1,s=0,l=T.length;s{ + 'use strict';zH.exports=function(t,r){ + var n,i,o,s,l,c,f=r+1,m=t.md.block.ruler.getRules('paragraph'),v=t.lineMax;for(c=t.parentType,t.parentType='paragraph';f3)&&!(t.sCount[f]<0)){ + for(i=!1,o=0,s=m.length;o{ + 'use strict';var QH=rw(),iw=Ht().isSpace;function ks(e,t,r,n){ + var i,o,s,l,c,f,m,v;for(this.src=e,this.md=t,this.env=r,this.tokens=n,this.bMarks=[],this.eMarks=[],this.tShift=[],this.sCount=[],this.bsCount=[],this.blkIndent=0,this.line=0,this.lineMax=0,this.tight=!1,this.ddIndent=-1,this.listIndent=-1,this.parentType='root',this.level=0,this.result='',o=this.src,v=!1,s=l=f=m=0,c=o.length;l0&&this.level++,this.tokens.push(n),n; + };ks.prototype.isEmpty=function(t){ + return this.bMarks[t]+this.tShift[t]>=this.eMarks[t]; + };ks.prototype.skipEmptyLines=function(t){ + for(var r=this.lineMax;tr;)if(!iw(this.src.charCodeAt(--t)))return t+1;return t; + };ks.prototype.skipChars=function(t,r){ + for(var n=this.src.length;tn;)if(r!==this.src.charCodeAt(--t))return t+1;return t; + };ks.prototype.getLines=function(t,r,n,i){ + var o,s,l,c,f,m,v,g=t;if(t>=r)return'';for(m=new Array(r-t),o=0;gn?m[o]=new Array(s-n+1).join(' ')+this.src.slice(c,f):m[o]=this.src.slice(c,f); + }return m.join(''); + };ks.prototype.Token=QH;WH.exports=ks; +});var XH=X((dRe,KH)=>{ + 'use strict';var Tye=ew(),ow=[['table',hH(),['paragraph','reference']],['code',gH()],['fence',bH(),['paragraph','reference','blockquote','list']],['blockquote',wH(),['paragraph','reference','blockquote','list']],['hr',TH(),['paragraph','reference','blockquote','list']],['list',NH(),['paragraph','reference','blockquote']],['reference',LH()],['html_block',qH(),['paragraph','reference','blockquote']],['heading',UH(),['paragraph','reference','blockquote']],['lheading',GH()],['paragraph',HH()]];function aw(){ + this.ruler=new Tye;for(var e=0;e=r||e.sCount[l]=f){ + e.line=r;break; + }for(i=0;i{ + 'use strict';function Cye(e){ + switch(e){ + case 10:case 33:case 35:case 36:case 37:case 38:case 42:case 43:case 45:case 58:case 60:case 61:case 62:case 64:case 91:case 92:case 93:case 94:case 95:case 96:case 123:case 125:case 126:return!0;default:return!1; + } + }ZH.exports=function(t,r){ + for(var n=t.pos;n{ + 'use strict';var Sye=Ht().isSpace;_H.exports=function(t,r){ + var n,i,o,s=t.pos;if(t.src.charCodeAt(s)!==10)return!1;if(n=t.pending.length-1,i=t.posMax,!r)if(n>=0&&t.pending.charCodeAt(n)===32)if(n>=1&&t.pending.charCodeAt(n-1)===32){ + for(o=n-1;o>=1&&t.pending.charCodeAt(o-1)===32;)o--;t.pending=t.pending.slice(0,o),t.push('hardbreak','br',0); + }else t.pending=t.pending.slice(0,-1),t.push('softbreak','br',0);else t.push('softbreak','br',0);for(s++;s{ + 'use strict';var kye=Ht().isSpace,zP=[];for(GP=0;GP<256;GP++)zP.push(0);var GP;"\\!\"#$%&'()*+,./:;<=>?@[]^_`{|}~-".split('').forEach(function(e){ + zP[e.charCodeAt(0)]=1; + });eQ.exports=function(t,r){ + var n,i=t.pos,o=t.posMax;if(t.src.charCodeAt(i)!==92)return!1;if(i++,i{ + 'use strict';rQ.exports=function(t,r){ + var n,i,o,s,l,c,f,m,v=t.pos,g=t.src.charCodeAt(v);if(g!==96)return!1;for(n=v,v++,i=t.posMax;v{ + 'use strict';HP.exports.tokenize=function(t,r){ + var n,i,o,s,l,c=t.pos,f=t.src.charCodeAt(c);if(r||f!==126||(i=t.scanDelims(t.pos,!0),s=i.length,l=String.fromCharCode(f),s<2))return!1;for(s%2&&(o=t.push('text','',0),o.content=l,s--),n=0;n{ + 'use strict';WP.exports.tokenize=function(t,r){ + var n,i,o,s=t.pos,l=t.src.charCodeAt(s);if(r||l!==95&&l!==42)return!1;for(i=t.scanDelims(t.pos,l===42),n=0;n=0;r--)n=t[r],!(n.marker!==95&&n.marker!==42)&&n.end!==-1&&(i=t[n.end],l=r>0&&t[r-1].end===n.end+1&&t[r-1].marker===n.marker&&t[r-1].token===n.token-1&&t[n.end+1].token===i.token+1,s=String.fromCharCode(n.marker),o=e.tokens[n.token],o.type=l?'strong_open':'em_open',o.tag=l?'strong':'em',o.nesting=1,o.markup=l?s+s:s,o.content='',o=e.tokens[i.token],o.type=l?'strong_close':'em_close',o.tag=l?'strong':'em',o.nesting=-1,o.markup=l?s+s:s,o.content='',l&&(e.tokens[t[r-1].token].content='',e.tokens[t[n.end+1].token].content='',r--)); + }WP.exports.postProcess=function(t){ + var r,n=t.tokens_meta,i=t.tokens_meta.length;for(oQ(t,t.delimiters),r=0;r{ + 'use strict';var Oye=Ht().normalizeReference,KP=Ht().isSpace;aQ.exports=function(t,r){ + var n,i,o,s,l,c,f,m,v,g='',y='',w=t.pos,T=t.posMax,S=t.pos,A=!0;if(t.src.charCodeAt(t.pos)!==91||(l=t.pos+1,s=t.md.helpers.parseLinkLabel(t,t.pos,!0),s<0))return!1;if(c=s+1,c=T)return!1;if(S=c,f=t.md.helpers.parseLinkDestination(t.src,c,t.posMax),f.ok){ + for(g=t.md.normalizeLink(f.str),t.md.validateLink(g)?c=f.pos:g='',S=c;c=T||t.src.charCodeAt(c)!==41)&&(A=!0),c++; + }if(A){ + if(typeof t.env.references>'u')return!1;if(c=0?o=t.src.slice(S,c++):c=s+1):c=s+1,o||(o=t.src.slice(l,s)),m=t.env.references[Oye(o)],!m)return t.pos=w,!1;g=m.href,y=m.title; + }return r||(t.pos=l,t.posMax=s,v=t.push('link_open','a',1),v.attrs=n=[['href',g]],y&&n.push(['title',y]),t.md.inline.tokenize(t),v=t.push('link_close','a',-1)),t.pos=c,t.posMax=T,!0; + }; +});var uQ=X((ARe,lQ)=>{ + 'use strict';var Nye=Ht().normalizeReference,XP=Ht().isSpace;lQ.exports=function(t,r){ + var n,i,o,s,l,c,f,m,v,g,y,w,T,S='',A=t.pos,b=t.posMax;if(t.src.charCodeAt(t.pos)!==33||t.src.charCodeAt(t.pos+1)!==91||(c=t.pos+2,l=t.md.helpers.parseLinkLabel(t,t.pos+1,!1),l<0))return!1;if(f=l+1,f=b)return!1;for(T=f,v=t.md.helpers.parseLinkDestination(t.src,f,t.posMax),v.ok&&(S=t.md.normalizeLink(v.str),t.md.validateLink(S)?f=v.pos:S=''),T=f;f=b||t.src.charCodeAt(f)!==41)return t.pos=A,!1;f++; + }else{ + if(typeof t.env.references>'u')return!1;if(f=0?s=t.src.slice(T,f++):f=l+1):f=l+1,s||(s=t.src.slice(c,l)),m=t.env.references[Nye(s)],!m)return t.pos=A,!1;S=m.href,g=m.title; + }return r||(o=t.src.slice(c,l),t.md.inline.parse(o,t.md,t.env,w=[]),y=t.push('image','img',0),y.attrs=n=[['src',S],['alt','']],y.children=w,y.content=o,g&&n.push(['title',g])),t.pos=f,t.posMax=b,!0; + }; +});var fQ=X((xRe,cQ)=>{ + 'use strict';var Dye=/^([a-zA-Z0-9.!#$%&'*+\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*)$/,Lye=/^([a-zA-Z][a-zA-Z0-9+.\-]{1,31}):([^<>\x00-\x20]*)$/;cQ.exports=function(t,r){ + var n,i,o,s,l,c,f=t.pos;if(t.src.charCodeAt(f)!==60)return!1;for(l=t.pos,c=t.posMax;;){ + if(++f>=c||(s=t.src.charCodeAt(f),s===60))return!1;if(s===62)break; + }return n=t.src.slice(l+1,f),Lye.test(n)?(i=t.md.normalizeLink(n),t.md.validateLink(i)?(r||(o=t.push('link_open','a',1),o.attrs=[['href',i]],o.markup='autolink',o.info='auto',o=t.push('text','',0),o.content=t.md.normalizeLinkText(n),o=t.push('link_close','a',-1),o.markup='autolink',o.info='auto'),t.pos+=n.length+2,!0):!1):Dye.test(n)?(i=t.md.normalizeLink('mailto:'+n),t.md.validateLink(i)?(r||(o=t.push('link_open','a',1),o.attrs=[['href',i]],o.markup='autolink',o.info='auto',o=t.push('text','',0),o.content=t.md.normalizeLinkText(n),o=t.push('link_close','a',-1),o.markup='autolink',o.info='auto'),t.pos+=n.length+2,!0):!1):!1; + }; +});var pQ=X((wRe,dQ)=>{ + 'use strict';var Pye=BP().HTML_TAG_RE;function Rye(e){ + var t=e|32;return t>=97&&t<=122; + }dQ.exports=function(t,r){ + var n,i,o,s,l=t.pos;return!t.md.options.html||(o=t.posMax,t.src.charCodeAt(l)!==60||l+2>=o)||(n=t.src.charCodeAt(l+1),n!==33&&n!==63&&n!==47&&!Rye(n))||(i=t.src.slice(l).match(Pye),!i)?!1:(r||(s=t.push('html_inline','',0),s.content=t.src.slice(l,l+i[0].length)),t.pos+=i[0].length,!0); + }; +});var gQ=X((ERe,vQ)=>{ + 'use strict';var mQ=LP(),Mye=Ht().has,Iye=Ht().isValidEntityCode,hQ=Ht().fromCodePoint,Fye=/^&#((?:x[a-f0-9]{1,6}|[0-9]{1,7}));/i,qye=/^&([a-z][a-z0-9]{1,31});/i;vQ.exports=function(t,r){ + var n,i,o,s=t.pos,l=t.posMax;if(t.src.charCodeAt(s)!==38)return!1;if(s+1{ + 'use strict';function yQ(e,t){ + var r,n,i,o,s,l,c,f,m={},v=t.length;if(v){ + var g=0,y=-2,w=[];for(r=0;rs;n-=w[n]+1)if(o=t[n],o.marker===i.marker&&o.open&&o.end<0&&(c=!1,(o.close||i.open)&&(o.length+i.length)%3===0&&(o.length%3!==0||i.length%3!==0)&&(c=!0),!c)){ + f=n>0&&!t[n-1].open?w[n-1]+1:0,w[r]=r-n+f,w[n]=f,i.open=!1,o.end=r,o.close=!1,l=-1,y=-2;break; + }l!==-1&&(m[i.marker][(i.open?3:0)+(i.length||0)%3]=l); + } + } + }bQ.exports=function(t){ + var r,n=t.tokens_meta,i=t.tokens_meta.length;for(yQ(t,t.delimiters),r=0;r{ + 'use strict';xQ.exports=function(t){ + var r,n,i=0,o=t.tokens,s=t.tokens.length;for(r=n=0;r0&&i++,o[r].type==='text'&&r+1{ + 'use strict';var ZP=rw(),EQ=Ht().isWhiteSpace,TQ=Ht().isPunctChar,CQ=Ht().isMdAsciiPunct;function Xg(e,t,r,n){ + this.src=e,this.env=r,this.md=t,this.tokens=n,this.tokens_meta=Array(n.length),this.pos=0,this.posMax=this.src.length,this.level=0,this.pending='',this.pendingLevel=0,this.cache={},this.delimiters=[],this._prev_delimiters=[],this.backticks={},this.backticksScanned=!1; + }Xg.prototype.pushPending=function(){ + var e=new ZP('text','',0);return e.content=this.pending,e.level=this.pendingLevel,this.tokens.push(e),this.pending='',e; + };Xg.prototype.push=function(e,t,r){ + this.pending&&this.pushPending();var n=new ZP(e,t,r),i=null;return r<0&&(this.level--,this.delimiters=this._prev_delimiters.pop()),n.level=this.level,r>0&&(this.level++,this._prev_delimiters.push(this.delimiters),this.delimiters=[],i={delimiters:this.delimiters}),this.pendingLevel=this.level,this.tokens.push(n),this.tokens_meta.push(i),n; + };Xg.prototype.scanDelims=function(e,t){ + var r=e,n,i,o,s,l,c,f,m,v,g=!0,y=!0,w=this.posMax,T=this.src.charCodeAt(e);for(n=e>0?this.src.charCodeAt(e-1):32;r{ + 'use strict';var OQ=ew(),JP=[['text',JH()],['newline',$H()],['escape',tQ()],['backticks',nQ()],['strikethrough',QP().tokenize],['emphasis',YP().tokenize],['link',sQ()],['image',uQ()],['autolink',fQ()],['html_inline',pQ()],['entity',gQ()]],_P=[['balance_pairs',AQ()],['strikethrough',QP().postProcess],['emphasis',YP().postProcess],['text_collapse',wQ()]];function Zg(){ + var e;for(this.ruler=new OQ,e=0;e=o)break;continue; + }e.pending+=e.src[e.pos++]; + }e.pending&&e.pushPending(); + };Zg.prototype.parse=function(e,t,r,n){ + var i,o,s,l=new this.State(e,t,r,n);for(this.tokenize(l),o=this.ruler2.getRules(''),s=o.length,i=0;i{ + 'use strict';LQ.exports=function(e){ + var t={};t.src_Any=RP().source,t.src_Cc=MP().source,t.src_Z=IP().source,t.src_P=Xx().source,t.src_ZPCc=[t.src_Z,t.src_P,t.src_Cc].join('|'),t.src_ZCc=[t.src_Z,t.src_Cc].join('|');var r='[><\uFF5C]';return t.src_pseudo_letter='(?:(?!'+r+'|'+t.src_ZPCc+')'+t.src_Any+')',t.src_ip4='(?:(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)',t.src_auth='(?:(?:(?!'+t.src_ZCc+'|[@/\\[\\]()]).)+@)?',t.src_port='(?::(?:6(?:[0-4]\\d{3}|5(?:[0-4]\\d{2}|5(?:[0-2]\\d|3[0-5])))|[1-5]?\\d{1,4}))?',t.src_host_terminator='(?=$|'+r+'|'+t.src_ZPCc+')(?!-|_|:\\d|\\.-|\\.(?!$|'+t.src_ZPCc+'))',t.src_path='(?:[/?#](?:(?!'+t.src_ZCc+'|'+r+'|[()[\\]{}.,"\'?!\\-;]).|\\[(?:(?!'+t.src_ZCc+'|\\]).)*\\]|\\((?:(?!'+t.src_ZCc+'|[)]).)*\\)|\\{(?:(?!'+t.src_ZCc+'|[}]).)*\\}|\\"(?:(?!'+t.src_ZCc+'|["]).)+\\"|\\\'(?:(?!'+t.src_ZCc+"|[']).)+\\'|\\'(?="+t.src_pseudo_letter+'|[-]).|\\.{2,}[a-zA-Z0-9%/&]|\\.(?!'+t.src_ZCc+'|[.]).|'+(e&&e['---']?'\\-(?!--(?:[^-]|$))(?:-*)|':'\\-+|')+',(?!'+t.src_ZCc+').|;(?!'+t.src_ZCc+').|\\!+(?!'+t.src_ZCc+'|[!]).|\\?(?!'+t.src_ZCc+'|[?]).)+|\\/)?',t.src_email_name='[\\-;:&=\\+\\$,\\.a-zA-Z0-9_][\\-;:&=\\+\\$,\\"\\.a-zA-Z0-9_]*',t.src_xn='xn--[a-z0-9\\-]{1,59}',t.src_domain_root='(?:'+t.src_xn+'|'+t.src_pseudo_letter+'{1,63})',t.src_domain='(?:'+t.src_xn+'|(?:'+t.src_pseudo_letter+')|(?:'+t.src_pseudo_letter+'(?:-|'+t.src_pseudo_letter+'){0,61}'+t.src_pseudo_letter+'))',t.src_host='(?:(?:(?:(?:'+t.src_domain+')\\.)*'+t.src_domain+'))',t.tpl_host_fuzzy='(?:'+t.src_ip4+'|(?:(?:(?:'+t.src_domain+')\\.)+(?:%TLDS%)))',t.tpl_host_no_ip_fuzzy='(?:(?:(?:'+t.src_domain+')\\.)+(?:%TLDS%))',t.src_host_strict=t.src_host+t.src_host_terminator,t.tpl_host_fuzzy_strict=t.tpl_host_fuzzy+t.src_host_terminator,t.src_host_port_strict=t.src_host+t.src_port+t.src_host_terminator,t.tpl_host_port_fuzzy_strict=t.tpl_host_fuzzy+t.src_port+t.src_host_terminator,t.tpl_host_port_no_ip_fuzzy_strict=t.tpl_host_no_ip_fuzzy+t.src_port+t.src_host_terminator,t.tpl_host_fuzzy_test='localhost|www\\.|\\.\\d{1,3}\\.|(?:\\.(?:%TLDS%)(?:'+t.src_ZPCc+'|>|$))',t.tpl_email_fuzzy='(^|'+r+'|"|\\(|'+t.src_ZCc+')('+t.src_email_name+'@'+t.tpl_host_fuzzy_strict+')',t.tpl_link_fuzzy='(^|(?![.:/\\-_@])(?:[$+<=>^`|\uFF5C]|'+t.src_ZPCc+'))((?![$+<=>^`|\uFF5C])'+t.tpl_host_port_fuzzy_strict+t.src_path+')',t.tpl_link_no_ip_fuzzy='(^|(?![.:/\\-_@])(?:[$+<=>^`|\uFF5C]|'+t.src_ZPCc+'))((?![$+<=>^`|\uFF5C])'+t.tpl_host_port_no_ip_fuzzy_strict+t.src_path+')',t; + }; +});var jQ=X((NRe,qQ)=>{ + 'use strict';function $P(e){ + var t=Array.prototype.slice.call(arguments,1);return t.forEach(function(r){ + r&&Object.keys(r).forEach(function(n){ + e[n]=r[n]; + }); + }),e; + }function lw(e){ + return Object.prototype.toString.call(e); + }function jye(e){ + return lw(e)==='[object String]'; + }function Vye(e){ + return lw(e)==='[object Object]'; + }function Uye(e){ + return lw(e)==='[object RegExp]'; + }function RQ(e){ + return lw(e)==='[object Function]'; + }function Bye(e){ + return e.replace(/[.?*+^$[\]\\(){}|-]/g,'\\$&'); + }var FQ={fuzzyLink:!0,fuzzyEmail:!0,fuzzyIP:!1};function Gye(e){ + return Object.keys(e||{}).reduce(function(t,r){ + return t||FQ.hasOwnProperty(r); + },!1); + }var zye={'http:':{validate:function(e,t,r){ + var n=e.slice(t);return r.re.http||(r.re.http=new RegExp('^\\/\\/'+r.re.src_auth+r.re.src_host_port_strict+r.re.src_path,'i')),r.re.http.test(n)?n.match(r.re.http)[0].length:0; + }},'https:':'http:','ftp:':'http:','//':{validate:function(e,t,r){ + var n=e.slice(t);return r.re.no_http||(r.re.no_http=new RegExp('^'+r.re.src_auth+'(?:localhost|(?:(?:'+r.re.src_domain+')\\.)+'+r.re.src_domain_root+')'+r.re.src_port+r.re.src_host_terminator+r.re.src_path,'i')),r.re.no_http.test(n)?t>=3&&e[t-3]===':'||t>=3&&e[t-3]==='/'?0:n.match(r.re.no_http)[0].length:0; + }},'mailto:':{validate:function(e,t,r){ + var n=e.slice(t);return r.re.mailto||(r.re.mailto=new RegExp('^'+r.re.src_email_name+'@'+r.re.src_host_strict,'i')),r.re.mailto.test(n)?n.match(r.re.mailto)[0].length:0; + }}},Hye='a[cdefgilmnoqrstuwxz]|b[abdefghijmnorstvwyz]|c[acdfghiklmnoruvwxyz]|d[ejkmoz]|e[cegrstu]|f[ijkmor]|g[abdefghilmnpqrstuwy]|h[kmnrtu]|i[delmnoqrst]|j[emop]|k[eghimnprwyz]|l[abcikrstuvy]|m[acdeghklmnopqrstuvwxyz]|n[acefgilopruz]|om|p[aefghklmnrstwy]|qa|r[eosuw]|s[abcdeghijklmnortuvxyz]|t[cdfghjklmnortvwz]|u[agksyz]|v[aceginu]|w[fs]|y[et]|z[amw]',Qye='biz|com|edu|gov|net|org|pro|web|xxx|aero|asia|coop|info|museum|name|shop|\u0440\u0444'.split('|');function Wye(e){ + e.__index__=-1,e.__text_cache__=''; + }function Yye(e){ + return function(t,r){ + var n=t.slice(r);return e.test(n)?n.match(e)[0].length:0; + }; + }function MQ(){ + return function(e,t){ + t.normalize(e); + }; + }function sw(e){ + var t=e.re=PQ()(e.__opts__),r=e.__tlds__.slice();e.onCompile(),e.__tlds_replaced__||r.push(Hye),r.push(t.src_xn),t.src_tlds=r.join('|');function n(l){ + return l.replace('%TLDS%',t.src_tlds); + }t.email_fuzzy=RegExp(n(t.tpl_email_fuzzy),'i'),t.link_fuzzy=RegExp(n(t.tpl_link_fuzzy),'i'),t.link_no_ip_fuzzy=RegExp(n(t.tpl_link_no_ip_fuzzy),'i'),t.host_fuzzy_test=RegExp(n(t.tpl_host_fuzzy_test),'i');var i=[];e.__compiled__={};function o(l,c){ + throw new Error('(LinkifyIt) Invalid schema "'+l+'": '+c); + }Object.keys(e.__schemas__).forEach(function(l){ + var c=e.__schemas__[l];if(c!==null){ + var f={validate:null,link:null};if(e.__compiled__[l]=f,Vye(c)){ + Uye(c.validate)?f.validate=Yye(c.validate):RQ(c.validate)?f.validate=c.validate:o(l,c),RQ(c.normalize)?f.normalize=c.normalize:c.normalize?o(l,c):f.normalize=MQ();return; + }if(jye(c)){ + i.push(l);return; + }o(l,c); + } + }),i.forEach(function(l){ + e.__compiled__[e.__schemas__[l]]&&(e.__compiled__[l].validate=e.__compiled__[e.__schemas__[l]].validate,e.__compiled__[l].normalize=e.__compiled__[e.__schemas__[l]].normalize); + }),e.__compiled__['']={validate:null,normalize:MQ()};var s=Object.keys(e.__compiled__).filter(function(l){ + return l.length>0&&e.__compiled__[l]; + }).map(Bye).join('|');e.re.schema_test=RegExp('(^|(?!_)(?:[><\uFF5C]|'+t.src_ZPCc+'))('+s+')','i'),e.re.schema_search=RegExp('(^|(?!_)(?:[><\uFF5C]|'+t.src_ZPCc+'))('+s+')','ig'),e.re.pretest=RegExp('('+e.re.schema_test.source+')|('+e.re.host_fuzzy_test.source+')|@','i'),Wye(e); + }function Kye(e,t){ + var r=e.__index__,n=e.__last_index__,i=e.__text_cache__.slice(r,n);this.schema=e.__schema__.toLowerCase(),this.index=r+t,this.lastIndex=n+t,this.raw=i,this.text=i,this.url=i; + }function IQ(e,t){ + var r=new Kye(e,t);return e.__compiled__[r.schema].normalize(r,e),r; + }function Xo(e,t){ + if(!(this instanceof Xo))return new Xo(e,t);t||Gye(e)&&(t=e,e={}),this.__opts__=$P({},FQ,t),this.__index__=-1,this.__last_index__=-1,this.__schema__='',this.__text_cache__='',this.__schemas__=$P({},zye,e),this.__compiled__={},this.__tlds__=Qye,this.__tlds_replaced__=!1,this.re={},sw(this); + }Xo.prototype.add=function(t,r){ + return this.__schemas__[t]=r,sw(this),this; + };Xo.prototype.set=function(t){ + return this.__opts__=$P(this.__opts__,t),this; + };Xo.prototype.test=function(t){ + if(this.__text_cache__=t,this.__index__=-1,!t.length)return!1;var r,n,i,o,s,l,c,f,m;if(this.re.schema_test.test(t)){ + for(c=this.re.schema_search,c.lastIndex=0;(r=c.exec(t))!==null;)if(o=this.testSchemaAt(t,r[2],c.lastIndex),o){ + this.__schema__=r[2],this.__index__=r.index+r[1].length,this.__last_index__=r.index+r[0].length+o;break; + } + }return this.__opts__.fuzzyLink&&this.__compiled__['http:']&&(f=t.search(this.re.host_fuzzy_test),f>=0&&(this.__index__<0||f=0&&(i=t.match(this.re.email_fuzzy))!==null&&(s=i.index+i[1].length,l=i.index+i[0].length,(this.__index__<0||sthis.__last_index__)&&(this.__schema__='mailto:',this.__index__=s,this.__last_index__=l))),this.__index__>=0; + };Xo.prototype.pretest=function(t){ + return this.re.pretest.test(t); + };Xo.prototype.testSchemaAt=function(t,r,n){ + return this.__compiled__[r.toLowerCase()]?this.__compiled__[r.toLowerCase()].validate(t,n,this):0; + };Xo.prototype.match=function(t){ + var r=0,n=[];this.__index__>=0&&this.__text_cache__===t&&(n.push(IQ(this,r)),r=this.__last_index__);for(var i=r?t.slice(r):t;this.test(i);)n.push(IQ(this,r)),i=i.slice(this.__last_index__),r+=this.__last_index__;return n.length?n:null; + };Xo.prototype.tlds=function(t,r){ + return t=Array.isArray(t)?t:[t],r?(this.__tlds__=this.__tlds__.concat(t).sort().filter(function(n,i,o){ + return n!==o[i-1]; + }).reverse(),sw(this),this):(this.__tlds__=t.slice(),this.__tlds_replaced__=!0,sw(this),this); + };Xo.prototype.normalize=function(t){ + t.schema||(t.url='http://'+t.url),t.schema==='mailto:'&&!/^mailto:/i.test(t.url)&&(t.url='mailto:'+t.url); + };Xo.prototype.onCompile=function(){};qQ.exports=Xo; +});var YQ=X((DRe,WQ)=>{ + 'use strict';var UQ='-',Xye=/^xn--/,Zye=/[^\0-\x7E]/,Jye=/[\x2E\u3002\uFF0E\uFF61]/g,_ye={overflow:'Overflow: input needs wider integers to process','not-basic':'Illegal input >= 0x80 (not a basic code point)','invalid-input':'Invalid input'},eR=36-1,Os=Math.floor,tR=String.fromCharCode;function kf(e){ + throw new RangeError(_ye[e]); + }function $ye(e,t){ + let r=[],n=e.length;for(;n--;)r[n]=t(e[n]);return r; + }function BQ(e,t){ + let r=e.split('@'),n='';r.length>1&&(n=r[0]+'@',e=r[1]),e=e.replace(Jye,'.');let i=e.split('.'),o=$ye(i,t).join('.');return n+o; + }function GQ(e){ + let t=[],r=0,n=e.length;for(;r=55296&&i<=56319&&rString.fromCodePoint(...e),t0e=function(e){ + return e-48<10?e-22:e-65<26?e-65:e-97<26?e-97:36; + },VQ=function(e,t){ + return e+22+75*(e<26)-((t!=0)<<5); + },zQ=function(e,t,r){ + let n=0;for(e=r?Os(e/700):e>>1,e+=Os(e/t);e>eR*26>>1;n+=36)e=Os(e/eR);return Os(n+(eR+1)*e/(e+38)); + },HQ=function(e){ + let t=[],r=e.length,n=0,i=128,o=72,s=e.lastIndexOf(UQ);s<0&&(s=0);for(let l=0;l=128&&kf('not-basic'),t.push(e.charCodeAt(l));for(let l=s>0?s+1:0;l=r&&kf('invalid-input');let g=t0e(e.charCodeAt(l++));(g>=36||g>Os((2147483647-n)/m))&&kf('overflow'),n+=g*m;let y=v<=o?1:v>=o+26?26:v-o;if(gOs(2147483647/w)&&kf('overflow'),m*=w; + }let f=t.length+1;o=zQ(n-c,f,c==0),Os(n/f)>2147483647-i&&kf('overflow'),i+=Os(n/f),n%=f,t.splice(n++,0,i); + }return String.fromCodePoint(...t); + },QQ=function(e){ + let t=[];e=GQ(e);let r=e.length,n=128,i=0,o=72;for(let c of e)c<128&&t.push(tR(c));let s=t.length,l=s;for(s&&t.push(UQ);l=n&&mOs((2147483647-i)/f)&&kf('overflow'),i+=(c-n)*f,n=c;for(let m of e)if(m2147483647&&kf('overflow'),m==n){ + let v=i;for(let g=36;;g+=36){ + let y=g<=o?1:g>=o+26?26:g-o;if(v{ + 'use strict';KQ.exports={options:{html:!1,xhtmlOut:!1,breaks:!1,langPrefix:'language-',linkify:!1,typographer:!1,quotes:'\u201C\u201D\u2018\u2019',highlight:null,maxNesting:100},components:{core:{},block:{},inline:{}}}; +});var JQ=X((PRe,ZQ)=>{ + 'use strict';ZQ.exports={options:{html:!1,xhtmlOut:!1,breaks:!1,langPrefix:'language-',linkify:!1,typographer:!1,quotes:'\u201C\u201D\u2018\u2019',highlight:null,maxNesting:20},components:{core:{rules:['normalize','block','inline']},block:{rules:['paragraph']},inline:{rules:['text'],rules2:['balance_pairs','text_collapse']}}}; +});var $Q=X((RRe,_Q)=>{ + 'use strict';_Q.exports={options:{html:!0,xhtmlOut:!0,breaks:!1,langPrefix:'language-',linkify:!1,typographer:!1,quotes:'\u201C\u201D\u2018\u2019',highlight:null,maxNesting:20},components:{core:{rules:['normalize','block','inline']},block:{rules:['blockquote','code','fence','heading','hr','html_block','lheading','list','reference','paragraph']},inline:{rules:['autolink','backticks','emphasis','entity','escape','html_inline','image','link','newline','text'],rules2:['balance_pairs','emphasis','text_collapse']}}}; +});var nW=X((MRe,rW)=>{ + 'use strict';var Jg=Ht(),o0e=Vz(),a0e=Bz(),s0e=dH(),l0e=XH(),u0e=DQ(),c0e=jQ(),Of=PP(),eW=YQ(),f0e={default:XQ(),zero:JQ(),commonmark:$Q()},d0e=/^(vbscript|javascript|file|data):/,p0e=/^data:image\/(gif|png|jpeg|webp);/;function m0e(e){ + var t=e.trim().toLowerCase();return d0e.test(t)?!!p0e.test(t):!0; + }var tW=['http:','https:','mailto:'];function h0e(e){ + var t=Of.parse(e,!0);if(t.hostname&&(!t.protocol||tW.indexOf(t.protocol)>=0))try{ + t.hostname=eW.toASCII(t.hostname); + }catch{}return Of.encode(Of.format(t)); + }function v0e(e){ + var t=Of.parse(e,!0);if(t.hostname&&(!t.protocol||tW.indexOf(t.protocol)>=0))try{ + t.hostname=eW.toUnicode(t.hostname); + }catch{}return Of.decode(Of.format(t),Of.decode.defaultChars+'%'); + }function Zo(e,t){ + if(!(this instanceof Zo))return new Zo(e,t);t||Jg.isString(e)||(t=e||{},e='default'),this.inline=new u0e,this.block=new l0e,this.core=new s0e,this.renderer=new a0e,this.linkify=new c0e,this.validateLink=m0e,this.normalizeLink=h0e,this.normalizeLinkText=v0e,this.utils=Jg,this.helpers=Jg.assign({},o0e),this.options={},this.configure(e),t&&this.set(t); + }Zo.prototype.set=function(e){ + return Jg.assign(this.options,e),this; + };Zo.prototype.configure=function(e){ + var t=this,r;if(Jg.isString(e)&&(r=e,e=f0e[r],!e))throw new Error('Wrong `markdown-it` preset "'+r+'", check name');if(!e)throw new Error("Wrong `markdown-it` preset, can't be empty");return e.options&&t.set(e.options),e.components&&Object.keys(e.components).forEach(function(n){ + e.components[n].rules&&t[n].ruler.enableOnly(e.components[n].rules),e.components[n].rules2&&t[n].ruler2.enableOnly(e.components[n].rules2); + }),this; + };Zo.prototype.enable=function(e,t){ + var r=[];Array.isArray(e)||(e=[e]),['core','block','inline'].forEach(function(i){ + r=r.concat(this[i].ruler.enable(e,!0)); + },this),r=r.concat(this.inline.ruler2.enable(e,!0));var n=e.filter(function(i){ + return r.indexOf(i)<0; + });if(n.length&&!t)throw new Error('MarkdownIt. Failed to enable unknown rule(s): '+n);return this; + };Zo.prototype.disable=function(e,t){ + var r=[];Array.isArray(e)||(e=[e]),['core','block','inline'].forEach(function(i){ + r=r.concat(this[i].ruler.disable(e,!0)); + },this),r=r.concat(this.inline.ruler2.disable(e,!0));var n=e.filter(function(i){ + return r.indexOf(i)<0; + });if(n.length&&!t)throw new Error('MarkdownIt. Failed to disable unknown rule(s): '+n);return this; + };Zo.prototype.use=function(e){ + var t=[this].concat(Array.prototype.slice.call(arguments,1));return e.apply(e,t),this; + };Zo.prototype.parse=function(e,t){ + if(typeof e!='string')throw new Error('Input data should be a String');var r=new this.core.State(e,this,t);return this.core.process(r),r.tokens; + };Zo.prototype.render=function(e,t){ + return t=t||{},this.renderer.render(this.parse(e,t),this.options,t); + };Zo.prototype.parseInline=function(e,t){ + var r=new this.core.State(e,this,t);return r.inlineMode=!0,this.core.process(r),r.tokens; + };Zo.prototype.renderInline=function(e,t){ + return t=t||{},this.renderer.render(this.parseInline(e,t),this.options,t); + };rW.exports=Zo; +});var oW=X((IRe,iW)=>{ + 'use strict';iW.exports=nW(); +});var YW=X(fR=>{ + 'use strict';Object.defineProperty(fR,'__esModule',{value:!0});function U0e(e){ + var t={};return function(r){ + return t[r]===void 0&&(t[r]=e(r)),t[r]; + }; + }fR.default=U0e; +});var KW=X(dR=>{ + 'use strict';Object.defineProperty(dR,'__esModule',{value:!0});function B0e(e){ + return e&&typeof e=='object'&&'default'in e?e.default:e; + }var G0e=B0e(YW()),z0e=/^((children|dangerouslySetInnerHTML|key|ref|autoFocus|defaultValue|defaultChecked|innerHTML|suppressContentEditableWarning|suppressHydrationWarning|valueLink|accept|acceptCharset|accessKey|action|allow|allowUserMedia|allowPaymentRequest|allowFullScreen|allowTransparency|alt|async|autoComplete|autoPlay|capture|cellPadding|cellSpacing|challenge|charSet|checked|cite|classID|className|cols|colSpan|content|contentEditable|contextMenu|controls|controlsList|coords|crossOrigin|data|dateTime|decoding|default|defer|dir|disabled|disablePictureInPicture|download|draggable|encType|form|formAction|formEncType|formMethod|formNoValidate|formTarget|frameBorder|headers|height|hidden|high|href|hrefLang|htmlFor|httpEquiv|id|inputMode|integrity|is|keyParams|keyType|kind|label|lang|list|loading|loop|low|marginHeight|marginWidth|max|maxLength|media|mediaGroup|method|min|minLength|multiple|muted|name|nonce|noValidate|open|optimum|pattern|placeholder|playsInline|poster|preload|profile|radioGroup|readOnly|referrerPolicy|rel|required|reversed|role|rows|rowSpan|sandbox|scope|scoped|scrolling|seamless|selected|shape|size|sizes|slot|span|spellCheck|src|srcDoc|srcLang|srcSet|start|step|style|summary|tabIndex|target|title|type|useMap|value|width|wmode|wrap|about|datatype|inlist|prefix|property|resource|typeof|vocab|autoCapitalize|autoCorrect|autoSave|color|inert|itemProp|itemScope|itemType|itemID|itemRef|on|results|security|unselectable|accentHeight|accumulate|additive|alignmentBaseline|allowReorder|alphabetic|amplitude|arabicForm|ascent|attributeName|attributeType|autoReverse|azimuth|baseFrequency|baselineShift|baseProfile|bbox|begin|bias|by|calcMode|capHeight|clip|clipPathUnits|clipPath|clipRule|colorInterpolation|colorInterpolationFilters|colorProfile|colorRendering|contentScriptType|contentStyleType|cursor|cx|cy|d|decelerate|descent|diffuseConstant|direction|display|divisor|dominantBaseline|dur|dx|dy|edgeMode|elevation|enableBackground|end|exponent|externalResourcesRequired|fill|fillOpacity|fillRule|filter|filterRes|filterUnits|floodColor|floodOpacity|focusable|fontFamily|fontSize|fontSizeAdjust|fontStretch|fontStyle|fontVariant|fontWeight|format|from|fr|fx|fy|g1|g2|glyphName|glyphOrientationHorizontal|glyphOrientationVertical|glyphRef|gradientTransform|gradientUnits|hanging|horizAdvX|horizOriginX|ideographic|imageRendering|in|in2|intercept|k|k1|k2|k3|k4|kernelMatrix|kernelUnitLength|kerning|keyPoints|keySplines|keyTimes|lengthAdjust|letterSpacing|lightingColor|limitingConeAngle|local|markerEnd|markerMid|markerStart|markerHeight|markerUnits|markerWidth|mask|maskContentUnits|maskUnits|mathematical|mode|numOctaves|offset|opacity|operator|order|orient|orientation|origin|overflow|overlinePosition|overlineThickness|panose1|paintOrder|pathLength|patternContentUnits|patternTransform|patternUnits|pointerEvents|points|pointsAtX|pointsAtY|pointsAtZ|preserveAlpha|preserveAspectRatio|primitiveUnits|r|radius|refX|refY|renderingIntent|repeatCount|repeatDur|requiredExtensions|requiredFeatures|restart|result|rotate|rx|ry|scale|seed|shapeRendering|slope|spacing|specularConstant|specularExponent|speed|spreadMethod|startOffset|stdDeviation|stemh|stemv|stitchTiles|stopColor|stopOpacity|strikethroughPosition|strikethroughThickness|string|stroke|strokeDasharray|strokeDashoffset|strokeLinecap|strokeLinejoin|strokeMiterlimit|strokeOpacity|strokeWidth|surfaceScale|systemLanguage|tableValues|targetX|targetY|textAnchor|textDecoration|textRendering|textLength|to|transform|u1|u2|underlinePosition|underlineThickness|unicode|unicodeBidi|unicodeRange|unitsPerEm|vAlphabetic|vHanging|vIdeographic|vMathematical|values|vectorEffect|version|vertAdvY|vertOriginX|vertOriginY|viewBox|viewTarget|visibility|widths|wordSpacing|writingMode|x|xHeight|x1|x2|xChannelSelector|xlinkActuate|xlinkArcrole|xlinkHref|xlinkRole|xlinkShow|xlinkTitle|xlinkType|xmlBase|xmlns|xmlnsXlink|xmlLang|xmlSpace|y|y1|y2|yChannelSelector|z|zoomAndPan|for|class|autofocus)|(([Dd][Aa][Tt][Aa]|[Aa][Rr][Ii][Aa]|x)-.*))$/,H0e=G0e(function(e){ + return z0e.test(e)||e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)<91; + });dR.default=H0e; +});function _t(e){ + return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,'default')?e.default:e; +}function Kt(){ + return RZ||(RZ=1,function(e,t){ + (function(r,n){ + e.exports=n(); + })(hxe,function(){ + var r=navigator.userAgent,n=navigator.platform,i=/gecko\/\d/i.test(r),o=/MSIE \d/.test(r),s=/Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/.exec(r),l=/Edge\/(\d+)/.exec(r),c=o||s||l,f=c&&(o?document.documentMode||6:+(l||s)[1]),m=!l&&/WebKit\//.test(r),v=m&&/Qt\/\d+\.\d+/.test(r),g=!l&&/Chrome\//.test(r),y=/Opera\//.test(r),w=/Apple Computer/.test(navigator.vendor),T=/Mac OS X 1\d\D([8-9]|\d\d)\D/.test(r),S=/PhantomJS/.test(r),A=w&&(/Mobile\/\w+/.test(r)||navigator.maxTouchPoints>2),b=/Android/.test(r),C=A||b||/webOS|BlackBerry|Opera Mini|Opera Mobi|IEMobile/i.test(r),x=A||/Mac/.test(n),k=/\bCrOS\b/.test(r),P=/win/i.test(n),D=y&&r.match(/Version\/(\d*\.\d*)/);D&&(D=Number(D[1])),D&&D>=15&&(y=!1,m=!0);var N=x&&(v||y&&(D==null||D<12.11)),I=i||c&&f>=9;function V(a){ + return new RegExp('(^|\\s)'+a+'(?:$|\\s)\\s*'); + }M(V,'classTest');var G=M(function(a,u){ + var p=a.className,d=V(u).exec(p);if(d){ + var h=p.slice(d.index+d[0].length);a.className=p.slice(0,d.index)+(h?d[1]+h:''); + } + },'rmClass');function B(a){ + for(var u=a.childNodes.length;u>0;--u)a.removeChild(a.firstChild);return a; + }M(B,'removeChildren');function U(a,u){ + return B(a).appendChild(u); + }M(U,'removeChildrenAndAdd');function z(a,u,p,d){ + var h=document.createElement(a);if(p&&(h.className=p),d&&(h.style.cssText=d),typeof u=='string')h.appendChild(document.createTextNode(u));else if(u)for(var E=0;E=u)return O+(u-E);O+=L-E,O+=p-O%p,E=L+1; + } + }M(ie,'countColumn');var ye=M(function(){ + this.id=null,this.f=null,this.time=0,this.handler=Re(this.onTimeout,this); + },'Delayed');ye.prototype.onTimeout=function(a){ + a.id=0,a.time<=+new Date?a.f():setTimeout(a.handler,a.time-+new Date); + },ye.prototype.set=function(a,u){ + this.f=u;var p=+new Date+a;(!this.id||p=u)return d+Math.min(O,u-h);if(h+=E-d,h+=p-h%p,d=E+1,h>=u)return d; + } + }M(bt,'findColumn');var he=[''];function Fe(a){ + for(;he.length<=a;)he.push(pe(he)+' ');return he[a]; + }M(Fe,'spaceStr');function pe(a){ + return a[a.length-1]; + }M(pe,'lst');function Me(a,u){ + for(var p=[],d=0;d'\x80'&&(a.toUpperCase()!=a.toLowerCase()||wt.test(a)); + }M(Or,'isWordCharBasic');function ua(a,u){ + return u?u.source.indexOf('\\w')>-1&&Or(a)?!0:u.test(a):Or(a); + }M(ua,'isWordChar');function Rl(a){ + for(var u in a)if(a.hasOwnProperty(u)&&a[u])return!1;return!0; + }M(Rl,'isEmpty');var nc=/[\u0300-\u036f\u0483-\u0489\u0591-\u05bd\u05bf\u05c1\u05c2\u05c4\u05c5\u05c7\u0610-\u061a\u064b-\u065e\u0670\u06d6-\u06dc\u06de-\u06e4\u06e7\u06e8\u06ea-\u06ed\u0711\u0730-\u074a\u07a6-\u07b0\u07eb-\u07f3\u0816-\u0819\u081b-\u0823\u0825-\u0827\u0829-\u082d\u0900-\u0902\u093c\u0941-\u0948\u094d\u0951-\u0955\u0962\u0963\u0981\u09bc\u09be\u09c1-\u09c4\u09cd\u09d7\u09e2\u09e3\u0a01\u0a02\u0a3c\u0a41\u0a42\u0a47\u0a48\u0a4b-\u0a4d\u0a51\u0a70\u0a71\u0a75\u0a81\u0a82\u0abc\u0ac1-\u0ac5\u0ac7\u0ac8\u0acd\u0ae2\u0ae3\u0b01\u0b3c\u0b3e\u0b3f\u0b41-\u0b44\u0b4d\u0b56\u0b57\u0b62\u0b63\u0b82\u0bbe\u0bc0\u0bcd\u0bd7\u0c3e-\u0c40\u0c46-\u0c48\u0c4a-\u0c4d\u0c55\u0c56\u0c62\u0c63\u0cbc\u0cbf\u0cc2\u0cc6\u0ccc\u0ccd\u0cd5\u0cd6\u0ce2\u0ce3\u0d3e\u0d41-\u0d44\u0d4d\u0d57\u0d62\u0d63\u0dca\u0dcf\u0dd2-\u0dd4\u0dd6\u0ddf\u0e31\u0e34-\u0e3a\u0e47-\u0e4e\u0eb1\u0eb4-\u0eb9\u0ebb\u0ebc\u0ec8-\u0ecd\u0f18\u0f19\u0f35\u0f37\u0f39\u0f71-\u0f7e\u0f80-\u0f84\u0f86\u0f87\u0f90-\u0f97\u0f99-\u0fbc\u0fc6\u102d-\u1030\u1032-\u1037\u1039\u103a\u103d\u103e\u1058\u1059\u105e-\u1060\u1071-\u1074\u1082\u1085\u1086\u108d\u109d\u135f\u1712-\u1714\u1732-\u1734\u1752\u1753\u1772\u1773\u17b7-\u17bd\u17c6\u17c9-\u17d3\u17dd\u180b-\u180d\u18a9\u1920-\u1922\u1927\u1928\u1932\u1939-\u193b\u1a17\u1a18\u1a56\u1a58-\u1a5e\u1a60\u1a62\u1a65-\u1a6c\u1a73-\u1a7c\u1a7f\u1b00-\u1b03\u1b34\u1b36-\u1b3a\u1b3c\u1b42\u1b6b-\u1b73\u1b80\u1b81\u1ba2-\u1ba5\u1ba8\u1ba9\u1c2c-\u1c33\u1c36\u1c37\u1cd0-\u1cd2\u1cd4-\u1ce0\u1ce2-\u1ce8\u1ced\u1dc0-\u1de6\u1dfd-\u1dff\u200c\u200d\u20d0-\u20f0\u2cef-\u2cf1\u2de0-\u2dff\u302a-\u302f\u3099\u309a\ua66f-\ua672\ua67c\ua67d\ua6f0\ua6f1\ua802\ua806\ua80b\ua825\ua826\ua8c4\ua8e0-\ua8f1\ua926-\ua92d\ua947-\ua951\ua980-\ua982\ua9b3\ua9b6-\ua9b9\ua9bc\uaa29-\uaa2e\uaa31\uaa32\uaa35\uaa36\uaa43\uaa4c\uaab0\uaab2-\uaab4\uaab7\uaab8\uaabe\uaabf\uaac1\uabe5\uabe8\uabed\udc00-\udfff\ufb1e\ufe00-\ufe0f\ufe20-\ufe26\uff9e\uff9f]/;function Vs(a){ + return a.charCodeAt(0)>=768&&nc.test(a); + }M(Vs,'isExtendingChar');function Ml(a,u,p){ + for(;(p<0?u>0:up?-1:1;;){ + if(u==p)return u;var h=(u+p)/2,E=d<0?Math.ceil(h):Math.floor(h);if(E==u)return a(E)?u:p;a(E)?p=E:u=E+d; + } + }M(xi,'findFirst');function ic(a,u,p,d){ + if(!a)return d(u,p,'ltr',0);for(var h=!1,E=0;Eu||u==p&&O.to==u)&&(d(Math.max(O.from,u),Math.min(O.to,p),O.level==1?'rtl':'ltr',E),h=!0); + }h||d(u,p,'ltr'); + }M(ic,'iterateBidiSections');var tn=null;function pr(a,u,p){ + var d;tn=null;for(var h=0;hu)return h;E.to==u&&(E.from!=E.to&&p=='before'?d=h:tn=h),E.from==u&&(E.from!=E.to&&p!='before'?d=h:tn=h); + }return d??tn; + }M(pr,'getBidiPartAt');var Il=function(){ + var a='bbbbbbbbbtstwsbbbbbbbbbbbbbbssstwNN%%%NNNNNN,N,N1111111111NNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNbbbbbbsbbbbbbbbbbbbbbbbbbbbbbbbbb,N%%%%NNNNLNNNNN%%11NLNNN1LNNNNNLLLLLLLLLLLLLLLLLLLLLLLNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLN',u='nnnnnnNNr%%r,rNNmmmmmmmmmmmrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrmmmmmmmmmmmmmmmmmmmmmnnnnnnnnnn%nnrrrmrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrmmmmmmmnNmmmmmmrrmmNmmmmrr1111111111';function p(F){ + return F<=247?a.charAt(F):1424<=F&&F<=1524?'R':1536<=F&&F<=1785?u.charAt(F-1536):1774<=F&&F<=2220?'r':8192<=F&&F<=8203?'w':F==8204?'b':'L'; + }M(p,'charType');var d=/[\u0590-\u05f4\u0600-\u06ff\u0700-\u08ac]/,h=/[stwN]/,E=/[LRr]/,O=/[Lb1n]/,L=/[1n]/;function R(F,H,Q){ + this.level=F,this.from=H,this.to=Q; + }return M(R,'BidiSpan'),function(F,H){ + var Q=H=='ltr'?'L':'R';if(F.length==0||H=='ltr'&&!d.test(F))return!1;for(var $=F.length,Z=[],le=0;le<$;++le)Z.push(p(F.charCodeAt(le)));for(var ge=0,Te=Q;ge<$;++ge){ + var De=Z[ge];De=='m'?Z[ge]=Te:Te=De; + }for(var qe=0,Le=Q;qe<$;++qe){ + var Be=Z[qe];Be=='1'&&Le=='r'?Z[qe]='n':E.test(Be)&&(Le=Be,Be=='r'&&(Z[qe]='R')); + }for(var it=1,Je=Z[0];it<$-1;++it){ + var Et=Z[it];Et=='+'&&Je=='1'&&Z[it+1]=='1'?Z[it]='1':Et==','&&Je==Z[it+1]&&(Je=='1'||Je=='n')&&(Z[it]=Je),Je=Et; + }for(var $t=0;$t<$;++$t){ + var hn=Z[$t];if(hn==',')Z[$t]='N';else if(hn=='%'){ + var mr=void 0;for(mr=$t+1;mr<$&&Z[mr]=='%';++mr);for(var Ci=$t&&Z[$t-1]=='!'||mr<$&&Z[mr]=='1'?'1':'N',Si=$t;Si-1&&(d[u]=h.slice(0,E).concat(h.slice(E+1))); + } + } + }M(Vn,'off');function ut(a,u){ + var p=Fl(a,u);if(p.length)for(var d=Array.prototype.slice.call(arguments,2),h=0;h0; + }M(rn,'hasHandler');function ko(a){ + a.prototype.on=function(u,p){ + rt(this,u,p); + },a.prototype.off=function(u,p){ + Vn(this,u,p); + }; + }M(ko,'eventMixin');function mn(a){ + a.preventDefault?a.preventDefault():a.returnValue=!1; + }M(mn,'e_preventDefault');function jl(a){ + a.stopPropagation?a.stopPropagation():a.cancelBubble=!0; + }M(jl,'e_stopPropagation');function wi(a){ + return a.defaultPrevented!=null?a.defaultPrevented:a.returnValue==!1; + }M(wi,'e_defaultPrevented');function Us(a){ + mn(a),jl(a); + }M(Us,'e_stop');function Ka(a){ + return a.target||a.srcElement; + }M(Ka,'e_target');function td(a){ + var u=a.which;return u==null&&(a.button&1?u=1:a.button&2?u=3:a.button&4&&(u=2)),x&&a.ctrlKey&&u==1&&(u=3),u; + }M(td,'e_button');var rd=function(){ + if(c&&f<9)return!1;var a=z('div');return'draggable'in a||'dragDrop'in a; + }(),ni;function nd(a){ + if(ni==null){ + var u=z('span','\u200B');U(a,z('span',[u,document.createTextNode('x')])),a.firstChild.offsetHeight!=0&&(ni=u.offsetWidth<=1&&u.offsetHeight>2&&!(c&&f<8)); + }var p=ni?z('span','\u200B'):z('span','\xA0',null,'display: inline-block; width: 1px; margin-right: -1px');return p.setAttribute('cm-text',''),p; + }M(nd,'zeroWidthElement');var id;function Oo(a){ + if(id!=null)return id;var u=U(a,document.createTextNode('A\u062EA')),p=J(u,0,1).getBoundingClientRect(),d=J(u,1,2).getBoundingClientRect();return B(a),!p||p.left==p.right?!1:id=d.right-p.right<3; + }M(Oo,'hasBadBidiRects');var od=` + +b`.split(/\n/).length!=3?function(a){ + for(var u=0,p=[],d=a.length;u<=d;){ + var h=a.indexOf(` +`,u);h==-1&&(h=a.length);var E=a.slice(u,a.charAt(h-1)=='\r'?h-1:h),O=E.indexOf('\r');O!=-1?(p.push(E.slice(0,O)),u+=O+1):(p.push(E),u=h+1); + }return p; + }:function(a){ + return a.split(/\r\n?|\n/); + },oh=window.getSelection?function(a){ + try{ + return a.selectionStart!=a.selectionEnd; + }catch{ + return!1; + } + }:function(a){ + var u;try{ + u=a.ownerDocument.selection.createRange(); + }catch{}return!u||u.parentElement()!=a?!1:u.compareEndPoints('StartToEnd',u)!=0; + },ah=function(){ + var a=z('div');return'oncopy'in a?!0:(a.setAttribute('oncopy','return;'),typeof a.oncopy=='function'); + }(),ad=null;function Xa(a){ + if(ad!=null)return ad;var u=U(a,z('span','x')),p=u.getBoundingClientRect(),d=J(u,0,1).getBoundingClientRect();return ad=Math.abs(p.left-d.left)>1; + }M(Xa,'hasBadZoomedRects');var ro={},qi={};function sd(a,u){ + arguments.length>2&&(u.dependencies=Array.prototype.slice.call(arguments,2)),ro[a]=u; + }M(sd,'defineMode');function ca(a,u){ + qi[a]=u; + }M(ca,'defineMIME');function Vl(a){ + if(typeof a=='string'&&qi.hasOwnProperty(a))a=qi[a];else if(a&&typeof a.name=='string'&&qi.hasOwnProperty(a.name)){ + var u=qi[a.name];typeof u=='string'&&(u={name:u}),a=lt(u,a),a.name=u.name; + }else{ + if(typeof a=='string'&&/^[\w\-]+\/[\w\-]+\+xml$/.test(a))return Vl('application/xml');if(typeof a=='string'&&/^[\w\-]+\/[\w\-]+\+json$/.test(a))return Vl('application/json'); + }return typeof a=='string'?{name:a}:a||{name:'null'}; + }M(Vl,'resolveMode');function Ul(a,u){ + u=Vl(u);var p=ro[u.name];if(!p)return Ul(a,'text/plain');var d=p(a,u);if(No.hasOwnProperty(u.name)){ + var h=No[u.name];for(var E in h)h.hasOwnProperty(E)&&(d.hasOwnProperty(E)&&(d['_'+E]=d[E]),d[E]=h[E]); + }if(d.name=u.name,u.helperType&&(d.helperType=u.helperType),u.modeProps)for(var O in u.modeProps)d[O]=u.modeProps[O];return d; + }M(Ul,'getMode');var No={};function no(a,u){ + var p=No.hasOwnProperty(a)?No[a]:No[a]={};Se(u,p); + }M(no,'extendMode');function ji(a,u){ + if(u===!0)return u;if(a.copyState)return a.copyState(u);var p={};for(var d in u){ + var h=u[d];h instanceof Array&&(h=h.concat([])),p[d]=h; + }return p; + }M(ji,'copyState');function oc(a,u){ + for(var p;a.innerMode&&(p=a.innerMode(u),!(!p||p.mode==a));)u=p.state,a=p.mode;return p||{mode:a,state:u}; + }M(oc,'innerMode');function ac(a,u,p){ + return a.startState?a.startState(u,p):!0; + }M(ac,'startState');var xr=M(function(a,u,p){ + this.pos=this.start=0,this.string=a,this.tabSize=u||8,this.lastColumnPos=this.lastColumnValue=0,this.lineStart=0,this.lineOracle=p; + },'StringStream');xr.prototype.eol=function(){ + return this.pos>=this.string.length; + },xr.prototype.sol=function(){ + return this.pos==this.lineStart; + },xr.prototype.peek=function(){ + return this.string.charAt(this.pos)||void 0; + },xr.prototype.next=function(){ + if(this.posu; + },xr.prototype.eatSpace=function(){ + for(var a=this.pos;/[\s\u00a0]/.test(this.string.charAt(this.pos));)++this.pos;return this.pos>a; + },xr.prototype.skipToEnd=function(){ + this.pos=this.string.length; + },xr.prototype.skipTo=function(a){ + var u=this.string.indexOf(a,this.pos);if(u>-1)return this.pos=u,!0; + },xr.prototype.backUp=function(a){ + this.pos-=a; + },xr.prototype.column=function(){ + return this.lastColumnPos0?null:(E&&u!==!1&&(this.pos+=E[0].length),E); + } + },xr.prototype.current=function(){ + return this.string.slice(this.start,this.pos); + },xr.prototype.hideFirstChars=function(a,u){ + this.lineStart+=a;try{ + return u(); + }finally{ + this.lineStart-=a; + } + },xr.prototype.lookAhead=function(a){ + var u=this.lineOracle;return u&&u.lookAhead(a); + },xr.prototype.baseToken=function(){ + var a=this.lineOracle;return a&&a.baseToken(this.pos); + };function Qe(a,u){ + if(u-=a.first,u<0||u>=a.size)throw new Error('There is no line '+(u+a.first)+' in the document.');for(var p=a;!p.lines;)for(var d=0;;++d){ + var h=p.children[d],E=h.chunkSize();if(u=a.first&&up?Ae(p,Qe(a,p).text.length):Sn(u,Qe(a,u.line).text.length); + }M(Ve,'clipPos');function Sn(a,u){ + var p=a.ch;return p==null||p>u?Ae(a.line,u):p<0?Ae(a.line,0):a; + }M(Sn,'clipToLen');function Vi(a,u){ + for(var p=[],d=0;dthis.maxLookAhead&&(this.maxLookAhead=a),u; + },Za.prototype.baseToken=function(a){ + if(!this.baseTokens)return null;for(;this.baseTokens[this.baseTokenPos]<=a;)this.baseTokenPos+=2;var u=this.baseTokens[this.baseTokenPos+1];return{type:u&&u.replace(/( |^)overlay .*/,''),size:this.baseTokens[this.baseTokenPos]-a}; + },Za.prototype.nextLine=function(){ + this.line++,this.maxLookAhead>0&&this.maxLookAhead--; + },Za.fromSaved=function(a,u,p){ + return u instanceof ld?new Za(a,ji(a.mode,u.state),p,u.lookAhead):new Za(a,ji(a.mode,u),p); + },Za.prototype.save=function(a){ + var u=a!==!1?ji(this.doc.mode,this.state):this.state;return this.maxLookAhead>0?new ld(u,this.maxLookAhead):u; + };function dT(a,u,p,d){ + var h=[a.state.modeGen],E={};gT(a,u.text,a.doc.mode,p,function(F,H){ + return h.push(F,H); + },E,d);for(var O=p.state,L=M(function(F){ + p.baseTokens=h;var H=a.state.overlays[F],Q=1,$=0;p.state=!0,gT(a,u.text,H.mode,p,function(Z,le){ + for(var ge=Q;$Z&&h.splice(Q,1,Z,h[Q+1],Te),Q+=2,$=Math.min(Z,Te); + }if(le)if(H.opaque)h.splice(ge,Q-ge,Z,'overlay '+le),Q=ge+2;else for(;gea.options.maxHighlightLength&&ji(a.doc.mode,d.state),E=dT(a,u,d);h&&(d.state=h),u.stateAfter=d.save(!h),u.styles=E.styles,E.classes?u.styleClasses=E.classes:u.styleClasses&&(u.styleClasses=null),p===a.doc.highlightFrontier&&(a.doc.modeFrontier=Math.max(a.doc.modeFrontier,++a.doc.highlightFrontier)); + }return u.styles; + }M(pT,'getLineStyles');function ud(a,u,p){ + var d=a.doc,h=a.display;if(!d.mode.startState)return new Za(d,!0,u);var E=II(a,u,p),O=E>d.first&&Qe(d,E-1).stateAfter,L=O?Za.fromSaved(d,O,E):new Za(d,ac(d.mode),E);return d.iter(E,u,function(R){ + o0(a,R.text,L);var F=L.line;R.stateAfter=F==u-1||F%5==0||F>=h.viewFrom&&Fu.start)return E; + }throw new Error('Mode '+a.name+' failed to advance stream.'); + }M(a0,'readToken');var MI=M(function(a,u,p){ + this.start=a.start,this.end=a.pos,this.string=a.current(),this.type=u||null,this.state=p; + },'Token');function hT(a,u,p,d){ + var h=a.doc,E=h.mode,O;u=Ve(h,u);var L=Qe(h,u.line),R=ud(a,u.line,p),F=new xr(L.text,a.options.tabSize,R),H;for(d&&(H=[]);(d||F.posa.options.maxHighlightLength?(L=!1,O&&o0(a,u,d,H.pos),H.pos=u.length,Q=null):Q=vT(a0(p,H,d.state,$),E),$){ + var Z=$[0].name;Z&&(Q='m-'+(Q?Z+' '+Q:Z)); + }if(!L||F!=Q){ + for(;RO;--L){ + if(L<=E.first)return E.first;var R=Qe(E,L-1),F=R.stateAfter;if(F&&(!p||L+(F instanceof ld?F.lookAhead:0)<=E.modeFrontier))return L;var H=ie(R.text,null,a.options.tabSize);(h==null||d>H)&&(h=L-1,d=H); + }return h; + }M(II,'findStartLine');function FI(a,u){ + if(a.modeFrontier=Math.min(a.modeFrontier,u),!(a.highlightFrontierp;d--){ + var h=Qe(a,d).stateAfter;if(h&&(!(h instanceof ld)||d+h.lookAhead=u:E.to>u);(d||(d=[])).push(new sh(O,E.from,R?null:E.to)); + } + }return d; + }M(GI,'markedSpansBefore');function zI(a,u,p){ + var d;if(a)for(var h=0;h=u:E.to>u);if(L||E.from==u&&O.type=='bookmark'&&(!p||E.marker.insertLeft)){ + var R=E.from==null||(O.inclusiveLeft?E.from<=u:E.from0&&L)for(var Be=0;Be0)){ + var H=[R,1],Q=q(F.from,L.from),$=q(F.to,L.to);(Q<0||!O.inclusiveLeft&&!Q)&&H.push({from:F.from,to:L.from}),($>0||!O.inclusiveRight&&!$)&&H.push({from:L.to,to:F.to}),h.splice.apply(h,H),R+=H.length-3; + } + }return h; + }M(HI,'removeReadOnlyRanges');function bT(a){ + var u=a.markedSpans;if(u){ + for(var p=0;pu)&&(!d||l0(d,E.marker)<0)&&(d=E.marker); + }return d; + }M(QI,'collapsedSpanAround');function ET(a,u,p,d,h){ + var E=Qe(a,u),O=Gs&&E.markedSpans;if(O)for(var L=0;L=0&&Q<=0||H<=0&&Q>=0)&&(H<=0&&(R.marker.inclusiveRight&&h.inclusiveLeft?q(F.to,p)>=0:q(F.to,p)>0)||H>=0&&(R.marker.inclusiveRight&&h.inclusiveLeft?q(F.from,d)<=0:q(F.from,d)<0)))return!0; + } + } + }M(ET,'conflictingCollapsedRange');function Po(a){ + for(var u;u=wT(a);)a=u.find(-1,!0).line;return a; + }M(Po,'visualLine');function WI(a){ + for(var u;u=ch(a);)a=u.find(1,!0).line;return a; + }M(WI,'visualLineEnd');function YI(a){ + for(var u,p;u=ch(a);)a=u.find(1,!0).line,(p||(p=[])).push(a);return p; + }M(YI,'visualLineContinued');function u0(a,u){ + var p=Qe(a,u),d=Po(p);return p==d?u:Pt(d); + }M(u0,'visualLineNo');function TT(a,u){ + if(u>a.lastLine())return u;var p=Qe(a,u),d;if(!zs(a,p))return u;for(;d=ch(p);)p=d.find(1,!0).line;return Pt(p)+1; + }M(TT,'visualLineEndNo');function zs(a,u){ + var p=Gs&&u.markedSpans;if(p){ + for(var d=void 0,h=0;hu.maxLineLength&&(u.maxLineLength=h,u.maxLine=d); + }); + }M(f0,'findMaxLine');var fd=M(function(a,u,p){ + this.text=a,AT(this,u),this.height=p?p(this):1; + },'Line');fd.prototype.lineNo=function(){ + return Pt(this); + },ko(fd);function KI(a,u,p,d){ + a.text=u,a.stateAfter&&(a.stateAfter=null),a.styles&&(a.styles=null),a.order!=null&&(a.order=null),bT(a),AT(a,p);var h=d?d(a):1;h!=a.height&&ii(a,h); + }M(KI,'updateLine');function XI(a){ + a.parent=null,bT(a); + }M(XI,'cleanUpLine');var G$={},z$={};function CT(a,u){ + if(!a||/^\s*$/.test(a))return null;var p=u.addModeClass?z$:G$;return p[a]||(p[a]=a.replace(/\S+/g,'cm-$&')); + }M(CT,'interpretTokenStyle');function ST(a,u){ + var p=j('span',null,null,m?'padding-right: .1px':null),d={pre:j('pre',[p],'CodeMirror-line'),content:p,col:0,pos:0,cm:a,trailingSpace:!1,splitSpaces:a.getOption('lineWrapping')};u.measure={};for(var h=0;h<=(u.rest?u.rest.length:0);h++){ + var E=h?u.rest[h-1]:u.line,O=void 0;d.pos=0,d.addToken=JI,Oo(a.display.measure)&&(O=ri(E,a.doc.direction))&&(d.addToken=$I(d.addToken,O)),d.map=[];var L=u!=a.display.externalMeasured&&Pt(E);eF(E,d,pT(a,E,L)),E.styleClasses&&(E.styleClasses.bgClass&&(d.bgClass=se(E.styleClasses.bgClass,d.bgClass||'')),E.styleClasses.textClass&&(d.textClass=se(E.styleClasses.textClass,d.textClass||''))),d.map.length==0&&d.map.push(0,0,d.content.appendChild(nd(a.display.measure))),h==0?(u.measure.map=d.map,u.measure.cache={}):((u.measure.maps||(u.measure.maps=[])).push(d.map),(u.measure.caches||(u.measure.caches=[])).push({})); + }if(m){ + var R=d.content.lastChild;(/\bcm-tab\b/.test(R.className)||R.querySelector&&R.querySelector('.cm-tab'))&&(d.content.className='cm-tab-wrap-hack'); + }return ut(a,'renderLine',a,u.line,d.pre),d.pre.className&&(d.textClass=se(d.pre.className,d.textClass||'')),d; + }M(ST,'buildLineContent');function ZI(a){ + var u=z('span','\u2022','cm-invalidchar');return u.title='\\u'+a.charCodeAt(0).toString(16),u.setAttribute('aria-label',u.title),u; + }M(ZI,'defaultSpecialCharPlaceholder');function JI(a,u,p,d,h,E,O){ + if(u){ + var L=a.splitSpaces?_I(u,a.trailingSpace):u,R=a.cm.state.specialChars,F=!1,H;if(!R.test(u))a.col+=u.length,H=document.createTextNode(L),a.map.push(a.pos,a.pos+u.length,H),c&&f<9&&(F=!0),a.pos+=u.length;else{ + H=document.createDocumentFragment();for(var Q=0;;){ + R.lastIndex=Q;var $=R.exec(u),Z=$?$.index-Q:u.length-Q;if(Z){ + var le=document.createTextNode(L.slice(Q,Q+Z));c&&f<9?H.appendChild(z('span',[le])):H.appendChild(le),a.map.push(a.pos,a.pos+Z,le),a.col+=Z,a.pos+=Z; + }if(!$)break;Q+=Z+1;var ge=void 0;if($[0]==' '){ + var Te=a.cm.options.tabSize,De=Te-a.col%Te;ge=H.appendChild(z('span',Fe(De),'cm-tab')),ge.setAttribute('role','presentation'),ge.setAttribute('cm-text',' '),a.col+=De; + }else $[0]=='\r'||$[0]==` +`?(ge=H.appendChild(z('span',$[0]=='\r'?'\u240D':'\u2424','cm-invalidchar')),ge.setAttribute('cm-text',$[0]),a.col+=1):(ge=a.cm.options.specialCharPlaceholder($[0]),ge.setAttribute('cm-text',$[0]),c&&f<9?H.appendChild(z('span',[ge])):H.appendChild(ge),a.col+=1);a.map.push(a.pos,a.pos+1,ge),a.pos++; + } + }if(a.trailingSpace=L.charCodeAt(u.length-1)==32,p||d||h||F||E||O){ + var qe=p||'';d&&(qe+=d),h&&(qe+=h);var Le=z('span',[H],qe,E);if(O)for(var Be in O)O.hasOwnProperty(Be)&&Be!='style'&&Be!='class'&&Le.setAttribute(Be,O[Be]);return a.content.appendChild(Le); + }a.content.appendChild(H); + } + }M(JI,'buildToken');function _I(a,u){ + if(a.length>1&&!/ {2}/.test(a))return a;for(var p=u,d='',h=0;hF&&Q.from<=F));$++);if(Q.to>=H)return a(p,d,h,E,O,L,R);a(p,d.slice(0,Q.to-F),h,E,null,L,R),E=null,d=d.slice(Q.to-F),F=Q.to; + } + }; + }M($I,'buildTokenBadBidi');function kT(a,u,p,d){ + var h=!d&&p.widgetNode;h&&a.map.push(a.pos,a.pos+u,h),!d&&a.cm.display.input.needsContentAttribute&&(h||(h=a.content.appendChild(document.createElement('span'))),h.setAttribute('cm-marker',p.id)),h&&(a.cm.display.input.setUneditable(h),a.content.appendChild(h)),a.pos+=u,a.trailingSpace=!1; + }M(kT,'buildCollapsedSpan');function eF(a,u,p){ + var d=a.markedSpans,h=a.text,E=0;if(!d){ + for(var O=1;OR||Et.collapsed&&Je.to==R&&Je.from==R)){ + if(Je.to!=null&&Je.to!=R&&Z>Je.to&&(Z=Je.to,ge=''),Et.className&&(le+=' '+Et.className),Et.css&&($=($?$+';':'')+Et.css),Et.startStyle&&Je.from==R&&(Te+=' '+Et.startStyle),Et.endStyle&&Je.to==Z&&(Be||(Be=[])).push(Et.endStyle,Je.to),Et.title&&((qe||(qe={})).title=Et.title),Et.attributes)for(var $t in Et.attributes)(qe||(qe={}))[$t]=Et.attributes[$t];Et.collapsed&&(!De||l0(De.marker,Et)<0)&&(De=Je); + }else Je.from>R&&Z>Je.from&&(Z=Je.from); + }if(Be)for(var hn=0;hn=L)break;for(var Ci=Math.min(L,Z);;){ + if(H){ + var Si=R+H.length;if(!De){ + var zr=Si>Ci?H.slice(0,Ci-R):H;u.addToken(u,zr,Q?Q+le:le,Te,R+zr.length==Z?ge:'',$,qe); + }if(Si>=Ci){ + H=H.slice(Ci-R),R=Ci;break; + }R=Si,Te=''; + }H=h.slice(E,E=p[F++]),Q=CT(p[F++],u.cm.options); + } + } + }M(eF,'insertLineContent');function OT(a,u,p){ + this.line=u,this.rest=YI(u),this.size=this.rest?Pt(pe(this.rest))-p+1:1,this.node=this.text=null,this.hidden=zs(a,u); + }M(OT,'LineView');function dh(a,u,p){ + for(var d=[],h,E=u;E2&&E.push((R.bottom+F.top)/2-p.top); + } + }E.push(p.bottom-p.top); + } + }M(cF,'ensureLineHeights');function IT(a,u,p){ + if(a.line==u)return{map:a.measure.map,cache:a.measure.cache};if(a.rest){ + for(var d=0;dp)return{map:a.measure.maps[h],cache:a.measure.caches[h],before:!0}; + } + }M(IT,'mapFromLineView');function fF(a,u){ + u=Po(u);var p=Pt(u),d=a.display.externalMeasured=new OT(a.doc,u,p);d.lineN=p;var h=d.built=ST(a,d);return d.text=h.pre,U(a.display.lineMeasure,h.pre),d; + }M(fF,'updateExternalMeasurement');function FT(a,u,p,d){ + return da(a,uc(a,u),p,d); + }M(FT,'measureChar');function h0(a,u){ + if(u>=a.display.viewFrom&&u=p.lineN&&uu)&&(E=R-L,h=E-1,u>=R&&(O='right')),h!=null){ + if(d=a[F+2],L==R&&p==(d.insertLeft?'left':'right')&&(O=p),p=='left'&&h==0)for(;F&&a[F-2]==a[F-3]&&a[F-1].insertLeft;)d=a[(F-=3)+2],O='left';if(p=='right'&&h==R-L)for(;F=0&&(p=a[h]).left==p.right;h--);return p; + }M(pF,'getUsefulRect');function mF(a,u,p,d){ + var h=qT(u.map,p,d),E=h.node,O=h.start,L=h.end,R=h.collapse,F;if(E.nodeType==3){ + for(var H=0;H<4;H++){ + for(;O&&Vs(u.line.text.charAt(h.coverStart+O));)--O;for(;h.coverStart+L0&&(R=d='right');var Q;a.options.lineWrapping&&(Q=E.getClientRects()).length>1?F=Q[d=='right'?Q.length-1:0]:F=E.getBoundingClientRect(); + }if(c&&f<9&&!O&&(!F||!F.left&&!F.right)){ + var $=E.parentNode.getClientRects()[0];$?F={left:$.left,right:$.left+dc(a.display),top:$.top,bottom:$.bottom}:F=dF; + }for(var Z=F.top-u.rect.top,le=F.bottom-u.rect.top,ge=(Z+le)/2,Te=u.view.measure.heights,De=0;De=d.text.length?(R=d.text.length,F='before'):R<=0&&(R=0,F='after'),!L)return O(F=='before'?R-1:R,F=='before');function H(le,ge,Te){ + var De=L[ge],qe=De.level==1;return O(Te?le-1:le,qe!=Te); + }M(H,'getBidi');var Q=pr(L,R,F),$=tn,Z=H(R,Q,F=='before');return $!=null&&(Z.other=H(R,$,F!='before')),Z; + }M(Ro,'cursorCoords');function zT(a,u){ + var p=0;u=Ve(a.doc,u),a.options.lineWrapping||(p=dc(a.display)*u.ch);var d=Qe(a.doc,u.line),h=Ja(d)+mh(a.display);return{left:p,right:p,top:h,bottom:h+d.height}; + }M(zT,'estimateCoords');function g0(a,u,p,d,h){ + var E=Ae(a,u,p);return E.xRel=h,d&&(E.outside=d),E; + }M(g0,'PosWithInfo');function y0(a,u,p){ + var d=a.doc;if(p+=a.display.viewOffset,p<0)return g0(d.first,0,null,-1,-1);var h=Lo(d,p),E=d.first+d.size-1;if(h>E)return g0(d.first+d.size-1,Qe(d,E).text.length,null,1,1);u<0&&(u=0);for(var O=Qe(d,h);;){ + var L=vF(a,O,h,u,p),R=QI(O,L.ch+(L.xRel>0||L.outside>0?1:0));if(!R)return L;var F=R.find(1);if(F.line==h)return F;O=Qe(d,h=F.line); + } + }M(y0,'coordsChar');function HT(a,u,p,d){ + d-=v0(u);var h=u.text.length,E=xi(function(O){ + return da(a,p,O-1).bottom<=d; + },h,0);return h=xi(function(O){ + return da(a,p,O).top>d; + },E,h),{begin:E,end:h}; + }M(HT,'wrappedLineExtent');function QT(a,u,p,d){ + p||(p=uc(a,u));var h=hh(a,u,da(a,p,d),'line').top;return HT(a,u,p,h); + }M(QT,'wrappedLineExtentChar');function b0(a,u,p,d){ + return a.bottom<=p?!1:a.top>p?!0:(d?a.left:a.right)>u; + }M(b0,'boxIsAfter');function vF(a,u,p,d,h){ + h-=Ja(u);var E=uc(a,u),O=v0(u),L=0,R=u.text.length,F=!0,H=ri(u,a.doc.direction);if(H){ + var Q=(a.options.lineWrapping?yF:gF)(a,u,p,E,H,d,h);F=Q.level!=1,L=F?Q.from:Q.to-1,R=F?Q.to:Q.from-1; + }var $=null,Z=null,le=xi(function(it){ + var Je=da(a,E,it);return Je.top+=O,Je.bottom+=O,b0(Je,d,h,!1)?(Je.top<=h&&Je.left<=d&&($=it,Z=Je),!0):!1; + },L,R),ge,Te,De=!1;if(Z){ + var qe=d-Z.left=Be.bottom?1:0; + }return le=Ml(u.text,le,1),g0(p,le,Te,De,d-ge); + }M(vF,'coordsCharInner');function gF(a,u,p,d,h,E,O){ + var L=xi(function(Q){ + var $=h[Q],Z=$.level!=1;return b0(Ro(a,Ae(p,Z?$.to:$.from,Z?'before':'after'),'line',u,d),E,O,!0); + },0,h.length-1),R=h[L];if(L>0){ + var F=R.level!=1,H=Ro(a,Ae(p,F?R.from:R.to,F?'after':'before'),'line',u,d);b0(H,E,O,!0)&&H.top>O&&(R=h[L-1]); + }return R; + }M(gF,'coordsBidiPart');function yF(a,u,p,d,h,E,O){ + var L=HT(a,u,d,O),R=L.begin,F=L.end;/\s/.test(u.text.charAt(F-1))&&F--;for(var H=null,Q=null,$=0;$=F||Z.to<=R)){ + var le=Z.level!=1,ge=da(a,d,le?Math.min(F,Z.to)-1:Math.max(R,Z.from)).right,Te=geTe)&&(H=Z,Q=Te); + } + }return H||(H=h[h.length-1]),H.fromF&&(H={from:H.from,to:F,level:H.level}),H; + }M(yF,'coordsBidiPartWrapped');var cc;function fc(a){ + if(a.cachedTextHeight!=null)return a.cachedTextHeight;if(cc==null){ + cc=z('pre',null,'CodeMirror-line-like');for(var u=0;u<49;++u)cc.appendChild(document.createTextNode('x')),cc.appendChild(z('br'));cc.appendChild(document.createTextNode('x')); + }U(a.measure,cc);var p=cc.offsetHeight/50;return p>3&&(a.cachedTextHeight=p),B(a.measure),p||1; + }M(fc,'textHeight');function dc(a){ + if(a.cachedCharWidth!=null)return a.cachedCharWidth;var u=z('span','xxxxxxxxxx'),p=z('pre',[u],'CodeMirror-line-like');U(a.measure,p);var d=u.getBoundingClientRect(),h=(d.right-d.left)/10;return h>2&&(a.cachedCharWidth=h),h||10; + }M(dc,'charWidth');function A0(a){ + for(var u=a.display,p={},d={},h=u.gutters.clientLeft,E=u.gutters.firstChild,O=0;E;E=E.nextSibling,++O){ + var L=a.display.gutterSpecs[O].className;p[L]=E.offsetLeft+E.clientLeft+h,d[L]=E.clientWidth; + }return{fixedPos:x0(u),gutterTotalWidth:u.gutters.offsetWidth,gutterLeft:p,gutterWidth:d,wrapperWidth:u.wrapper.clientWidth}; + }M(A0,'getDimensions');function x0(a){ + return a.scroller.getBoundingClientRect().left-a.sizer.getBoundingClientRect().left; + }M(x0,'compensateForHScroll');function WT(a){ + var u=fc(a.display),p=a.options.lineWrapping,d=p&&Math.max(5,a.display.scroller.clientWidth/dc(a.display)-3);return function(h){ + if(zs(a.doc,h))return 0;var E=0;if(h.widgets)for(var O=0;O0&&(F=Qe(a.doc,R.line).text).length==R.ch){ + var H=ie(F,F.length,a.options.tabSize)-F.length;R=Ae(R.line,Math.max(0,Math.round((E-MT(a.display).left)/dc(a.display))-H)); + }return R; + }M(Gl,'posFromMouse');function zl(a,u){ + if(u>=a.display.viewTo||(u-=a.display.viewFrom,u<0))return null;for(var p=a.display.view,d=0;du)&&(h.updateLineNumbers=u),a.curOp.viewChanged=!0,u>=h.viewTo)Gs&&u0(a.doc,u)h.viewFrom?Qs(a):(h.viewFrom+=d,h.viewTo+=d);else if(u<=h.viewFrom&&p>=h.viewTo)Qs(a);else if(u<=h.viewFrom){ + var E=gh(a,p,p+d,1);E?(h.view=h.view.slice(E.index),h.viewFrom=E.lineN,h.viewTo+=d):Qs(a); + }else if(p>=h.viewTo){ + var O=gh(a,u,u,-1);O?(h.view=h.view.slice(0,O.index),h.viewTo=O.lineN):Qs(a); + }else{ + var L=gh(a,u,u,-1),R=gh(a,p,p+d,1);L&&R?(h.view=h.view.slice(0,L.index).concat(dh(a,L.lineN,R.lineN)).concat(h.view.slice(R.index)),h.viewTo+=d):Qs(a); + }var F=h.externalMeasured;F&&(p=h.lineN&&u=d.viewTo)){ + var E=d.view[zl(a,u)];if(E.node!=null){ + var O=E.changes||(E.changes=[]);me(O,p)==-1&&O.push(p); + } + } + }M(Hs,'regLineChange');function Qs(a){ + a.display.viewFrom=a.display.viewTo=a.doc.first,a.display.view=[],a.display.viewOffset=0; + }M(Qs,'resetView');function gh(a,u,p,d){ + var h=zl(a,u),E,O=a.display.view;if(!Gs||p==a.doc.first+a.doc.size)return{index:h,lineN:p};for(var L=a.display.viewFrom,R=0;R0){ + if(h==O.length-1)return null;E=L+O[h].size-u,h++; + }else E=L-u;u+=E,p+=E; + }for(;u0(a.doc,p)!=p;){ + if(h==(d<0?0:O.length-1))return null;p+=d*O[h-(d<0?1:0)].size,h+=d; + }return{index:h,lineN:p}; + }M(gh,'viewCuttingPoint');function bF(a,u,p){ + var d=a.display,h=d.view;h.length==0||u>=d.viewTo||p<=d.viewFrom?(d.view=dh(a,u,p),d.viewFrom=u):(d.viewFrom>u?d.view=dh(a,u,d.viewFrom).concat(d.view):d.viewFromp&&(d.view=d.view.slice(0,zl(a,p)))),d.viewTo=p; + }M(bF,'adjustView');function YT(a){ + for(var u=a.display.view,p=0,d=0;d=a.display.viewTo||R.to().line0?O:a.defaultCharWidth())+'px'; + }if(d.other){ + var L=p.appendChild(z('div','\xA0','CodeMirror-cursor CodeMirror-secondarycursor'));L.style.display='',L.style.left=d.other.left+'px',L.style.top=d.other.top+'px',L.style.height=(d.other.bottom-d.other.top)*.85+'px'; + } + }M(E0,'drawSelectionCursor');function yh(a,u){ + return a.top-u.top||a.left-u.left; + }M(yh,'cmpCoords');function AF(a,u,p){ + var d=a.display,h=a.doc,E=document.createDocumentFragment(),O=MT(a.display),L=O.left,R=Math.max(d.sizerWidth,Bl(a)-d.sizer.offsetLeft)-O.right,F=h.direction=='ltr';function H(Le,Be,it,Je){ + Be<0&&(Be=0),Be=Math.round(Be),Je=Math.round(Je),E.appendChild(z('div',null,'CodeMirror-selected','position: absolute; left: '+Le+`px; + top: `+Be+'px; width: '+(it??R-Le)+`px; + height: `+(Je-Be)+'px')); + }M(H,'add');function Q(Le,Be,it){ + var Je=Qe(h,Le),Et=Je.text.length,$t,hn;function mr(zr,ki){ + return vh(a,Ae(Le,zr),'div',Je,ki); + }M(mr,'coords');function Ci(zr,ki,On){ + var sn=QT(a,Je,null,zr),Hr=ki=='ltr'==(On=='after')?'left':'right',Dr=On=='after'?sn.begin:sn.end-(/\s/.test(Je.text.charAt(sn.end-1))?2:1);return mr(Dr,Hr)[Hr]; + }M(Ci,'wrapX');var Si=ri(Je,h.direction);return ic(Si,Be||0,it??Et,function(zr,ki,On,sn){ + var Hr=On=='ltr',Dr=mr(zr,Hr?'left':'right'),Oi=mr(ki-1,Hr?'right':'left'),Dd=Be==null&&zr==0,Xl=it==null&&ki==Et,Bn=sn==0,$a=!Si||sn==Si.length-1;if(Oi.top-Dr.top<=3){ + var vn=(F?Dd:Xl)&&Bn,oS=(F?Xl:Dd)&&$a,Js=vn?L:(Hr?Dr:Oi).left,Cc=oS?R:(Hr?Oi:Dr).right;H(Js,Dr.top,Cc-Js,Dr.bottom); + }else{ + var Sc,ai,Ld,aS;Hr?(Sc=F&&Dd&&Bn?L:Dr.left,ai=F?R:Ci(zr,On,'before'),Ld=F?L:Ci(ki,On,'after'),aS=F&&Xl&&$a?R:Oi.right):(Sc=F?Ci(zr,On,'before'):L,ai=!F&&Dd&&Bn?R:Dr.right,Ld=!F&&Xl&&$a?L:Oi.left,aS=F?Ci(ki,On,'after'):R),H(Sc,Dr.top,ai-Sc,Dr.bottom),Dr.bottom0?u.blinker=setInterval(function(){ + a.hasFocus()||pc(a),u.cursorDiv.style.visibility=(p=!p)?'':'hidden'; + },a.options.cursorBlinkRate):a.options.cursorBlinkRate<0&&(u.cursorDiv.style.visibility='hidden'); + } + }M(T0,'restartBlink');function XT(a){ + a.hasFocus()||(a.display.input.focus(),a.state.focused||S0(a)); + }M(XT,'ensureFocus');function C0(a){ + a.state.delayingBlurEvent=!0,setTimeout(function(){ + a.state.delayingBlurEvent&&(a.state.delayingBlurEvent=!1,a.state.focused&&pc(a)); + },100); + }M(C0,'delayBlurEvent');function S0(a,u){ + a.state.delayingBlurEvent&&!a.state.draggingText&&(a.state.delayingBlurEvent=!1),a.options.readOnly!='nocursor'&&(a.state.focused||(ut(a,'focus',a,u),a.state.focused=!0,re(a.display.wrapper,'CodeMirror-focused'),!a.curOp&&a.display.selForContextMenu!=a.doc.sel&&(a.display.input.reset(),m&&setTimeout(function(){ + return a.display.input.reset(!0); + },20)),a.display.input.receivedFocus()),T0(a)); + }M(S0,'onFocus');function pc(a,u){ + a.state.delayingBlurEvent||(a.state.focused&&(ut(a,'blur',a,u),a.state.focused=!1,G(a.display.wrapper,'CodeMirror-focused')),clearInterval(a.display.blinker),setTimeout(function(){ + a.state.focused||(a.display.shift=!1); + },150)); + }M(pc,'onBlur');function bh(a){ + for(var u=a.display,p=u.lineDiv.offsetTop,d=Math.max(0,u.scroller.getBoundingClientRect().top),h=u.lineDiv.getBoundingClientRect().top,E=0,O=0;O.005||Z<-.005)&&(ha.display.sizerWidth){ + var ge=Math.ceil(H/dc(a.display));ge>a.display.maxLineLength&&(a.display.maxLineLength=ge,a.display.maxLine=L.line,a.display.maxLineChanged=!0); + } + } + }Math.abs(E)>2&&(u.scroller.scrollTop+=E); + }M(bh,'updateHeightsInViewport');function ZT(a){ + if(a.widgets)for(var u=0;u=O&&(E=Lo(u,Ja(Qe(u,R))-a.wrapper.clientHeight),O=R); + }return{from:E,to:Math.max(O,E+1)}; + }M(Ah,'visibleLines');function xF(a,u){ + if(!Nr(a,'scrollCursorIntoView')){ + var p=a.display,d=p.sizer.getBoundingClientRect(),h=null;if(u.top+d.top<0?h=!0:u.bottom+d.top>(window.innerHeight||document.documentElement.clientHeight)&&(h=!1),h!=null&&!S){ + var E=z('div','\u200B',null,`position: absolute; + top: `+(u.top-p.viewOffset-mh(a.display))+`px; + height: `+(u.bottom-u.top+fa(a)+p.barHeight)+`px; + left: `+u.left+'px; width: '+Math.max(2,u.right-u.left)+'px;');a.display.lineSpace.appendChild(E),E.scrollIntoView(h),a.display.lineSpace.removeChild(E); + } + } + }M(xF,'maybeScrollWindow');function wF(a,u,p,d){ + d==null&&(d=0);var h;!a.options.lineWrapping&&u==p&&(p=u.sticky=='before'?Ae(u.line,u.ch+1,'before'):u,u=u.ch?Ae(u.line,u.sticky=='before'?u.ch-1:u.ch,'after'):u);for(var E=0;E<5;E++){ + var O=!1,L=Ro(a,u),R=!p||p==u?L:Ro(a,p);h={left:Math.min(L.left,R.left),top:Math.min(L.top,R.top)-d,right:Math.max(L.left,R.left),bottom:Math.max(L.bottom,R.bottom)+d};var F=k0(a,h),H=a.doc.scrollTop,Q=a.doc.scrollLeft;if(F.scrollTop!=null&&(yd(a,F.scrollTop),Math.abs(a.doc.scrollTop-H)>1&&(O=!0)),F.scrollLeft!=null&&(Hl(a,F.scrollLeft),Math.abs(a.doc.scrollLeft-Q)>1&&(O=!0)),!O)break; + }return h; + }M(wF,'scrollPosIntoView');function EF(a,u){ + var p=k0(a,u);p.scrollTop!=null&&yd(a,p.scrollTop),p.scrollLeft!=null&&Hl(a,p.scrollLeft); + }M(EF,'scrollIntoView');function k0(a,u){ + var p=a.display,d=fc(a.display);u.top<0&&(u.top=0);var h=a.curOp&&a.curOp.scrollTop!=null?a.curOp.scrollTop:p.scroller.scrollTop,E=m0(a),O={};u.bottom-u.top>E&&(u.bottom=u.top+E);var L=a.doc.height+p0(p),R=u.topL-d;if(u.toph+E){ + var H=Math.min(u.top,(F?L:u.bottom)-E);H!=h&&(O.scrollTop=H); + }var Q=a.options.fixedGutter?0:p.gutters.offsetWidth,$=a.curOp&&a.curOp.scrollLeft!=null?a.curOp.scrollLeft:p.scroller.scrollLeft-Q,Z=Bl(a)-p.gutters.offsetWidth,le=u.right-u.left>Z;return le&&(u.right=u.left+Z),u.left<10?O.scrollLeft=0:u.left<$?O.scrollLeft=Math.max(0,u.left+Q-(le?0:10)):u.right>Z+$-3&&(O.scrollLeft=u.right+(le?0:10)-Z),O; + }M(k0,'calculateScrollPos');function O0(a,u){ + u!=null&&(xh(a),a.curOp.scrollTop=(a.curOp.scrollTop==null?a.doc.scrollTop:a.curOp.scrollTop)+u); + }M(O0,'addToScrollTop');function mc(a){ + xh(a);var u=a.getCursor();a.curOp.scrollToPos={from:u,to:u,margin:a.options.cursorScrollMargin}; + }M(mc,'ensureCursorVisible');function gd(a,u,p){ + (u!=null||p!=null)&&xh(a),u!=null&&(a.curOp.scrollLeft=u),p!=null&&(a.curOp.scrollTop=p); + }M(gd,'scrollToCoords');function TF(a,u){ + xh(a),a.curOp.scrollToPos=u; + }M(TF,'scrollToRange');function xh(a){ + var u=a.curOp.scrollToPos;if(u){ + a.curOp.scrollToPos=null;var p=zT(a,u.from),d=zT(a,u.to);JT(a,p,d,u.margin); + } + }M(xh,'resolveScrollToPos');function JT(a,u,p,d){ + var h=k0(a,{left:Math.min(u.left,p.left),top:Math.min(u.top,p.top)-d,right:Math.max(u.right,p.right),bottom:Math.max(u.bottom,p.bottom)+d});gd(a,h.scrollLeft,h.scrollTop); + }M(JT,'scrollToCoordsRange');function yd(a,u){ + Math.abs(a.doc.scrollTop-u)<2||(i||L0(a,{top:u}),_T(a,u,!0),i&&L0(a),Ad(a,100)); + }M(yd,'updateScrollTop');function _T(a,u,p){ + u=Math.max(0,Math.min(a.display.scroller.scrollHeight-a.display.scroller.clientHeight,u)),!(a.display.scroller.scrollTop==u&&!p)&&(a.doc.scrollTop=u,a.display.scrollbars.setScrollTop(u),a.display.scroller.scrollTop!=u&&(a.display.scroller.scrollTop=u)); + }M(_T,'setScrollTop');function Hl(a,u,p,d){ + u=Math.max(0,Math.min(u,a.display.scroller.scrollWidth-a.display.scroller.clientWidth)),!((p?u==a.doc.scrollLeft:Math.abs(a.doc.scrollLeft-u)<2)&&!d)&&(a.doc.scrollLeft=u,rC(a),a.display.scroller.scrollLeft!=u&&(a.display.scroller.scrollLeft=u),a.display.scrollbars.setScrollLeft(u)); + }M(Hl,'setScrollLeft');function bd(a){ + var u=a.display,p=u.gutters.offsetWidth,d=Math.round(a.doc.height+p0(a.display));return{clientHeight:u.scroller.clientHeight,viewHeight:u.wrapper.clientHeight,scrollWidth:u.scroller.scrollWidth,clientWidth:u.scroller.clientWidth,viewWidth:u.wrapper.clientWidth,barLeft:a.options.fixedGutter?p:0,docHeight:d,scrollHeight:d+fa(a)+u.barHeight,nativeBarWidth:u.nativeBarWidth,gutterWidth:p}; + }M(bd,'measureForScrollbars');var hc=M(function(a,u,p){ + this.cm=p;var d=this.vert=z('div',[z('div',null,null,'min-width: 1px')],'CodeMirror-vscrollbar'),h=this.horiz=z('div',[z('div',null,null,'height: 100%; min-height: 1px')],'CodeMirror-hscrollbar');d.tabIndex=h.tabIndex=-1,a(d),a(h),rt(d,'scroll',function(){ + d.clientHeight&&u(d.scrollTop,'vertical'); + }),rt(h,'scroll',function(){ + h.clientWidth&&u(h.scrollLeft,'horizontal'); + }),this.checkedZeroWidth=!1,c&&f<8&&(this.horiz.style.minHeight=this.vert.style.minWidth='18px'); + },'NativeScrollbars');hc.prototype.update=function(a){ + var u=a.scrollWidth>a.clientWidth+1,p=a.scrollHeight>a.clientHeight+1,d=a.nativeBarWidth;if(p){ + this.vert.style.display='block',this.vert.style.bottom=u?d+'px':'0';var h=a.viewHeight-(u?d:0);this.vert.firstChild.style.height=Math.max(0,a.scrollHeight-a.clientHeight+h)+'px'; + }else this.vert.scrollTop=0,this.vert.style.display='',this.vert.firstChild.style.height='0';if(u){ + this.horiz.style.display='block',this.horiz.style.right=p?d+'px':'0',this.horiz.style.left=a.barLeft+'px';var E=a.viewWidth-a.barLeft-(p?d:0);this.horiz.firstChild.style.width=Math.max(0,a.scrollWidth-a.clientWidth+E)+'px'; + }else this.horiz.style.display='',this.horiz.firstChild.style.width='0';return!this.checkedZeroWidth&&a.clientHeight>0&&(d==0&&this.zeroWidthHack(),this.checkedZeroWidth=!0),{right:p?d:0,bottom:u?d:0}; + },hc.prototype.setScrollLeft=function(a){ + this.horiz.scrollLeft!=a&&(this.horiz.scrollLeft=a),this.disableHoriz&&this.enableZeroWidthBar(this.horiz,this.disableHoriz,'horiz'); + },hc.prototype.setScrollTop=function(a){ + this.vert.scrollTop!=a&&(this.vert.scrollTop=a),this.disableVert&&this.enableZeroWidthBar(this.vert,this.disableVert,'vert'); + },hc.prototype.zeroWidthHack=function(){ + var a=x&&!T?'12px':'18px';this.horiz.style.height=this.vert.style.width=a,this.horiz.style.pointerEvents=this.vert.style.pointerEvents='none',this.disableHoriz=new ye,this.disableVert=new ye; + },hc.prototype.enableZeroWidthBar=function(a,u,p){ + a.style.pointerEvents='auto';function d(){ + var h=a.getBoundingClientRect(),E=p=='vert'?document.elementFromPoint(h.right-1,(h.top+h.bottom)/2):document.elementFromPoint((h.right+h.left)/2,h.bottom-1);E!=a?a.style.pointerEvents='none':u.set(1e3,d); + }M(d,'maybeDisable'),u.set(1e3,d); + },hc.prototype.clear=function(){ + var a=this.horiz.parentNode;a.removeChild(this.horiz),a.removeChild(this.vert); + };var wh=M(function(){},'NullScrollbars');wh.prototype.update=function(){ + return{bottom:0,right:0}; + },wh.prototype.setScrollLeft=function(){},wh.prototype.setScrollTop=function(){},wh.prototype.clear=function(){};function vc(a,u){ + u||(u=bd(a));var p=a.display.barWidth,d=a.display.barHeight;$T(a,u);for(var h=0;h<4&&p!=a.display.barWidth||d!=a.display.barHeight;h++)p!=a.display.barWidth&&a.options.lineWrapping&&bh(a),$T(a,bd(a)),p=a.display.barWidth,d=a.display.barHeight; + }M(vc,'updateScrollbars');function $T(a,u){ + var p=a.display,d=p.scrollbars.update(u);p.sizer.style.paddingRight=(p.barWidth=d.right)+'px',p.sizer.style.paddingBottom=(p.barHeight=d.bottom)+'px',p.heightForcer.style.borderBottom=d.bottom+'px solid transparent',d.right&&d.bottom?(p.scrollbarFiller.style.display='block',p.scrollbarFiller.style.height=d.bottom+'px',p.scrollbarFiller.style.width=d.right+'px'):p.scrollbarFiller.style.display='',d.bottom&&a.options.coverGutterNextToScrollbar&&a.options.fixedGutter?(p.gutterFiller.style.display='block',p.gutterFiller.style.height=d.bottom+'px',p.gutterFiller.style.width=u.gutterWidth+'px'):p.gutterFiller.style.display=''; + }M($T,'updateScrollbarsInner');var CF={native:hc,null:wh};function eC(a){ + a.display.scrollbars&&(a.display.scrollbars.clear(),a.display.scrollbars.addClass&&G(a.display.wrapper,a.display.scrollbars.addClass)),a.display.scrollbars=new CF[a.options.scrollbarStyle](function(u){ + a.display.wrapper.insertBefore(u,a.display.scrollbarFiller),rt(u,'mousedown',function(){ + a.state.focused&&setTimeout(function(){ + return a.display.input.focus(); + },0); + }),u.setAttribute('cm-not-content','true'); + },function(u,p){ + p=='horizontal'?Hl(a,u):yd(a,u); + },a),a.display.scrollbars.addClass&&re(a.display.wrapper,a.display.scrollbars.addClass); + }M(eC,'initScrollbars');var H$=0;function Ql(a){ + a.curOp={cm:a,viewChanged:!1,startHeight:a.doc.height,forceUpdate:!1,updateInput:0,typing:!1,changeObjs:null,cursorActivityHandlers:null,cursorActivityCalled:0,selectionChanged:!1,updateMaxLine:!1,scrollLeft:null,scrollTop:null,scrollToPos:null,focus:!1,id:++H$,markArrays:null},tF(a.curOp); + }M(Ql,'startOperation');function Wl(a){ + var u=a.curOp;u&&nF(u,function(p){ + for(var d=0;d=p.viewTo)||p.maxLineChanged&&u.options.lineWrapping,a.update=a.mustUpdate&&new N0(u,a.mustUpdate&&{top:a.scrollTop,ensure:a.scrollToPos},a.forceUpdate); + }M(kF,'endOperation_R1');function OF(a){ + a.updatedDisplay=a.mustUpdate&&D0(a.cm,a.update); + }M(OF,'endOperation_W1');function NF(a){ + var u=a.cm,p=u.display;a.updatedDisplay&&bh(u),a.barMeasure=bd(u),p.maxLineChanged&&!u.options.lineWrapping&&(a.adjustWidthTo=FT(u,p.maxLine,p.maxLine.text.length).left+3,u.display.sizerWidth=a.adjustWidthTo,a.barMeasure.scrollWidth=Math.max(p.scroller.clientWidth,p.sizer.offsetLeft+a.adjustWidthTo+fa(u)+u.display.barWidth),a.maxScrollLeft=Math.max(0,p.sizer.offsetLeft+a.adjustWidthTo-Bl(u))),(a.updatedDisplay||a.selectionChanged)&&(a.preparedSelection=p.input.prepareSelection()); + }M(NF,'endOperation_R2');function DF(a){ + var u=a.cm;a.adjustWidthTo!=null&&(u.display.sizer.style.minWidth=a.adjustWidthTo+'px',a.maxScrollLeft=a.display.viewTo)){ + var p=+new Date+a.options.workTime,d=ud(a,u.highlightFrontier),h=[];u.iter(d.line,Math.min(u.first+u.size,a.display.viewTo+500),function(E){ + if(d.line>=a.display.viewFrom){ + var O=E.styles,L=E.text.length>a.options.maxHighlightLength?ji(u.mode,d.state):null,R=dT(a,E,d,!0);L&&(d.state=L),E.styles=R.styles;var F=E.styleClasses,H=R.classes;H?E.styleClasses=H:F&&(E.styleClasses=null);for(var Q=!O||O.length!=E.styles.length||F!=H&&(!F||!H||F.bgClass!=H.bgClass||F.textClass!=H.textClass),$=0;!Q&&$p)return Ad(a,a.options.workDelay),!0; + }),u.highlightFrontier=d.line,u.modeFrontier=Math.max(u.modeFrontier,d.line),h.length&&Ei(a,function(){ + for(var E=0;E=p.viewFrom&&u.visible.to<=p.viewTo&&(p.updateLineNumbers==null||p.updateLineNumbers>=p.viewTo)&&p.renderedView==p.view&&YT(a)==0)return!1;nC(a)&&(Qs(a),u.dims=A0(a));var h=d.first+d.size,E=Math.max(u.visible.from-a.options.viewportMargin,d.first),O=Math.min(h,u.visible.to+a.options.viewportMargin);p.viewFromO&&p.viewTo-O<20&&(O=Math.min(h,p.viewTo)),Gs&&(E=u0(a.doc,E),O=TT(a.doc,O));var L=E!=p.viewFrom||O!=p.viewTo||p.lastWrapHeight!=u.wrapperHeight||p.lastWrapWidth!=u.wrapperWidth;bF(a,E,O),p.viewOffset=Ja(Qe(a.doc,p.viewFrom)),a.display.mover.style.top=p.viewOffset+'px';var R=YT(a);if(!L&&R==0&&!u.force&&p.renderedView==p.view&&(p.updateLineNumbers==null||p.updateLineNumbers>=p.viewTo))return!1;var F=MF(a);return R>4&&(p.lineDiv.style.display='none'),FF(a,p.updateLineNumbers,u.dims),R>4&&(p.lineDiv.style.display=''),p.renderedView=p.view,IF(F),B(p.cursorDiv),B(p.selectionDiv),p.gutters.style.height=p.sizer.style.minHeight=0,L&&(p.lastWrapHeight=u.wrapperHeight,p.lastWrapWidth=u.wrapperWidth,Ad(a,400)),p.updateLineNumbers=null,!0; + }M(D0,'updateDisplayIfNeeded');function tC(a,u){ + for(var p=u.viewport,d=!0;;d=!1){ + if(!d||!a.options.lineWrapping||u.oldDisplayWidth==Bl(a)){ + if(p&&p.top!=null&&(p={top:Math.min(a.doc.height+p0(a.display)-m0(a),p.top)}),u.visible=Ah(a.display,a.doc,p),u.visible.from>=a.display.viewFrom&&u.visible.to<=a.display.viewTo)break; + }else d&&(u.visible=Ah(a.display,a.doc,p));if(!D0(a,u))break;bh(a);var h=bd(a);vd(a),vc(a,h),R0(a,h),u.force=!1; + }u.signal(a,'update',a),(a.display.viewFrom!=a.display.reportedViewFrom||a.display.viewTo!=a.display.reportedViewTo)&&(u.signal(a,'viewportChange',a,a.display.viewFrom,a.display.viewTo),a.display.reportedViewFrom=a.display.viewFrom,a.display.reportedViewTo=a.display.viewTo); + }M(tC,'postUpdateDisplay');function L0(a,u){ + var p=new N0(a,u);if(D0(a,p)){ + bh(a),tC(a,p);var d=bd(a);vd(a),vc(a,d),R0(a,d),p.finish(); + } + }M(L0,'updateDisplaySimple');function FF(a,u,p){ + var d=a.display,h=a.options.lineNumbers,E=d.lineDiv,O=E.firstChild;function L(le){ + var ge=le.nextSibling;return m&&x&&a.display.currentWheelTarget==le?le.style.display='none':le.parentNode.removeChild(le),ge; + }M(L,'rm');for(var R=d.view,F=d.viewFrom,H=0;H-1&&(Z=!1),NT(a,Q,F,p)),Z&&(B(Q.lineNumber),Q.lineNumber.appendChild(document.createTextNode(lc(a.options,F)))),O=Q.node.nextSibling; + }F+=Q.size; + }for(;O;)O=L(O); + }M(FF,'patchDisplay');function P0(a){ + var u=a.gutters.offsetWidth;a.sizer.style.marginLeft=u+'px',nn(a,'gutterChanged',a); + }M(P0,'updateGutterSpace');function R0(a,u){ + a.display.sizer.style.minHeight=u.docHeight+'px',a.display.heightForcer.style.top=u.docHeight+'px',a.display.gutters.style.height=u.docHeight+a.display.barHeight+fa(a)+'px'; + }M(R0,'setDocumentHeight');function rC(a){ + var u=a.display,p=u.view;if(!(!u.alignWidgets&&(!u.gutters.firstChild||!a.options.fixedGutter))){ + for(var d=x0(u)-u.scroller.scrollLeft+a.doc.scrollLeft,h=u.gutters.offsetWidth,E=d+'px',O=0;OL.clientWidth,F=L.scrollHeight>L.clientHeight;if(d&&R||h&&F){ + if(h&&x&&m){ + e:for(var H=u.target,Q=O.view;H!=L;H=H.parentNode)for(var $=0;$=0&&q(a,d.to())<=0)return p; + }return-1; + };var qt=M(function(a,u){ + this.anchor=a,this.head=u; + },'Range');qt.prototype.from=function(){ + return ct(this.anchor,this.head); + },qt.prototype.to=function(){ + return we(this.anchor,this.head); + },qt.prototype.empty=function(){ + return this.head.line==this.anchor.line&&this.head.ch==this.anchor.ch; + };function Mo(a,u,p){ + var d=a&&a.options.selectionsMayTouch,h=u[p];u.sort(function($,Z){ + return q($.from(),Z.from()); + }),p=me(u,h);for(var E=1;E0:R>=0){ + var F=ct(L.from(),O.from()),H=we(L.to(),O.to()),Q=L.empty()?O.from()==O.head:L.from()==L.head;E<=p&&--p,u.splice(--E,2,new qt(Q?H:F,Q?F:H)); + } + }return new io(u,p); + }M(Mo,'normalizeSelection');function Ys(a,u){ + return new io([new qt(a,u||a)],0); + }M(Ys,'simpleSelection');function Ks(a){ + return a.text?Ae(a.from.line+a.text.length-1,pe(a.text).length+(a.text.length==1?a.from.ch:0)):a.to; + }M(Ks,'changeEnd');function sC(a,u){ + if(q(a,u.from)<0)return a;if(q(a,u.to)<=0)return Ks(u);var p=a.line+u.text.length-(u.to.line-u.from.line)-1,d=a.ch;return a.line==u.to.line&&(d+=Ks(u).ch-u.to.ch),Ae(p,d); + }M(sC,'adjustForChange');function F0(a,u){ + for(var p=[],d=0;d1&&a.remove(L.line+1,le-1),a.insert(L.line+1,De); + }nn(a,'change',a,u); + }M(j0,'updateDoc');function Xs(a,u,p){ + function d(h,E,O){ + if(h.linked)for(var L=0;L1&&!a.done[a.done.length-2].ranges)return a.done.pop(),pe(a.done); + }M(BF,'lastChangeEvent');function pC(a,u,p,d){ + var h=a.history;h.undone.length=0;var E=+new Date,O,L;if((h.lastOp==d||h.lastOrigin==u.origin&&u.origin&&(u.origin.charAt(0)=='+'&&h.lastModTime>E-(a.cm?a.cm.options.historyEventDelay:500)||u.origin.charAt(0)=='*'))&&(O=BF(h,h.lastOp==d)))L=pe(O.changes),q(u.from,u.to)==0&&q(u.from,L.to)==0?L.to=Ks(u):O.changes.push(V0(a,u));else{ + var R=pe(h.done);for((!R||!R.ranges)&&Th(a.sel,h.done),O={changes:[V0(a,u)],generation:h.generation},h.done.push(O);h.done.length>h.undoDepth;)h.done.shift(),h.done[0].ranges||h.done.shift(); + }h.done.push(p),h.generation=++h.maxGeneration,h.lastModTime=h.lastSelTime=E,h.lastOp=h.lastSelOp=d,h.lastOrigin=h.lastSelOrigin=u.origin,L||ut(a,'historyAdded'); + }M(pC,'addChangeToHistory');function GF(a,u,p,d){ + var h=u.charAt(0);return h=='*'||h=='+'&&p.ranges.length==d.ranges.length&&p.somethingSelected()==d.somethingSelected()&&new Date-a.history.lastSelTime<=(a.cm?a.cm.options.historyEventDelay:500); + }M(GF,'selectionEventCanBeMerged');function zF(a,u,p,d){ + var h=a.history,E=d&&d.origin;p==h.lastSelOp||E&&h.lastSelOrigin==E&&(h.lastModTime==h.lastSelTime&&h.lastOrigin==E||GF(a,E,pe(h.done),u))?h.done[h.done.length-1]=u:Th(u,h.done),h.lastSelTime=+new Date,h.lastSelOrigin=E,h.lastSelOp=p,d&&d.clearRedo!==!1&&dC(h.undone); + }M(zF,'addSelectionToHistory');function Th(a,u){ + var p=pe(u);p&&p.ranges&&p.equals(a)||u.push(a); + }M(Th,'pushSelectionToHistory');function mC(a,u,p,d){ + var h=u['spans_'+a.id],E=0;a.iter(Math.max(a.first,p),Math.min(a.first+a.size,d),function(O){ + O.markedSpans&&((h||(h=u['spans_'+a.id]={}))[E]=O.markedSpans),++E; + }); + }M(mC,'attachLocalSpans');function HF(a){ + if(!a)return null;for(var u,p=0;p-1&&(pe(L)[Q]=F[Q],delete F[Q]); + } + }return d; + }M(gc,'copyHistoryArray');function U0(a,u,p,d){ + if(d){ + var h=a.anchor;if(p){ + var E=q(u,h)<0;E!=q(p,h)<0?(h=u,u=p):E!=q(u,p)<0&&(u=p); + }return new qt(h,u); + }else return new qt(p||u,u); + }M(U0,'extendRange');function Ch(a,u,p,d,h){ + h==null&&(h=a.cm&&(a.cm.display.shift||a.extend)),kn(a,new io([U0(a.sel.primary(),u,p,h)],0),d); + }M(Ch,'extendSelection');function vC(a,u,p){ + for(var d=[],h=a.cm&&(a.cm.display.shift||a.extend),E=0;E=u.ch:L.to>u.ch))){ + if(h&&(ut(R,'beforeCursorEnter'),R.explicitlyCleared))if(E.markedSpans){ + --O;continue; + }else break;if(!R.atomic)continue;if(p){ + var Q=R.find(d<0?1:-1),$=void 0;if((d<0?H:F)&&(Q=wC(a,Q,-d,Q&&Q.line==u.line?E:null)),Q&&Q.line==u.line&&($=q(Q,p))&&(d<0?$<0:$>0))return yc(a,Q,u,d,h); + }var Z=R.find(d<0?-1:1);return(d<0?F:H)&&(Z=wC(a,Z,d,Z.line==u.line?E:null)),Z?yc(a,Z,u,d,h):null; + } + }return u; + }M(yc,'skipAtomicInner');function kh(a,u,p,d,h){ + var E=d||1,O=yc(a,u,p,E,h)||!h&&yc(a,u,p,E,!0)||yc(a,u,p,-E,h)||!h&&yc(a,u,p,-E,!0);return O||(a.cantEdit=!0,Ae(a.first,0)); + }M(kh,'skipAtomic');function wC(a,u,p,d){ + return p<0&&u.ch==0?u.line>a.first?Ve(a,Ae(u.line-1)):null:p>0&&u.ch==(d||Qe(a,u.line)).text.length?u.line=0;--h)CC(a,{from:d[h].from,to:d[h].to,text:h?['']:u.text,origin:u.origin});else CC(a,u); + } + }M(bc,'makeChange');function CC(a,u){ + if(!(u.text.length==1&&u.text[0]==''&&q(u.from,u.to)==0)){ + var p=F0(a,u);pC(a,u,p,a.cm?a.cm.curOp.id:NaN),Ed(a,u,p,s0(a,u));var d=[];Xs(a,function(h,E){ + !E&&me(d,h.history)==-1&&(NC(h.history,u),d.push(h.history)),Ed(h,u,null,s0(h,u)); + }); + } + }M(CC,'makeChangeInner');function Oh(a,u,p){ + var d=a.cm&&a.cm.state.suppressEdits;if(!(d&&!p)){ + for(var h=a.history,E,O=a.sel,L=u=='undo'?h.done:h.undone,R=u=='undo'?h.undone:h.done,F=0;F=0;--Z){ + var le=$(Z);if(le)return le.v; + } + } + } + }M(Oh,'makeChangeFromHistory');function SC(a,u){ + if(u!=0&&(a.first+=u,a.sel=new io(Me(a.sel.ranges,function(h){ + return new qt(Ae(h.anchor.line+u,h.anchor.ch),Ae(h.head.line+u,h.head.ch)); + }),a.sel.primIndex),a.cm)){ + oi(a.cm,a.first,a.first-u,u);for(var p=a.cm.display,d=p.viewFrom;da.lastLine())){ + if(u.from.lineE&&(u={from:u.from,to:Ae(E,Qe(a,E).text.length),text:[u.text[0]],origin:u.origin}),u.removed=Do(a,u.from,u.to),p||(p=F0(a,u)),a.cm?YF(a.cm,u,d):j0(a,u,d),Sh(a,p,He),a.cantEdit&&kh(a,Ae(a.firstLine(),0))&&(a.cantEdit=!1); + } + }M(Ed,'makeChangeSingleDoc');function YF(a,u,p){ + var d=a.doc,h=a.display,E=u.from,O=u.to,L=!1,R=E.line;a.options.lineWrapping||(R=Pt(Po(Qe(d,E.line))),d.iter(R,O.line+1,function(Z){ + if(Z==h.maxLine)return L=!0,!0; + })),d.sel.contains(u.from,u.to)>-1&&ql(a),j0(d,u,p,WT(a)),a.options.lineWrapping||(d.iter(R,E.line+u.text.length,function(Z){ + var le=fh(Z);le>h.maxLineLength&&(h.maxLine=Z,h.maxLineLength=le,h.maxLineChanged=!0,L=!1); + }),L&&(a.curOp.updateMaxLine=!0)),FI(d,E.line),Ad(a,400);var F=u.text.length-(O.line-E.line)-1;u.full?oi(a):E.line==O.line&&u.text.length==1&&!uC(a.doc,u)?Hs(a,E.line,'text'):oi(a,E.line,O.line+1,F);var H=rn(a,'changes'),Q=rn(a,'change');if(Q||H){ + var $={from:E,to:O,text:u.text,removed:u.removed,origin:u.origin};Q&&nn(a,'change',a,$),H&&(a.curOp.changeObjs||(a.curOp.changeObjs=[])).push($); + }a.display.selForContextMenu=null; + }M(YF,'makeChangeSingleDocInEditor');function Ac(a,u,p,d,h){ + var E;d||(d=p),q(d,p)<0&&(E=[d,p],p=E[0],d=E[1]),typeof u=='string'&&(u=a.splitLines(u)),bc(a,{from:p,to:d,text:u,origin:h}); + }M(Ac,'replaceRange');function kC(a,u,p,d){ + p1||!(this.children[0]instanceof Cd))){ + var L=[];this.collapse(L),this.children=[new Cd(L)],this.children[0].parent=this; + } + },collapse:function(a){ + for(var u=0;u50){ + for(var O=h.lines.length%25+25,L=O;L10);a.parent.maybeSpill(); + } + },iterN:function(a,u,p){ + for(var d=0;da.display.maxLineLength&&(a.display.maxLine=F,a.display.maxLineLength=H,a.display.maxLineChanged=!0); + }d!=null&&a&&this.collapsed&&oi(a,d,h+1),this.lines.length=0,this.explicitlyCleared=!0,this.atomic&&this.doc.cantEdit&&(this.doc.cantEdit=!1,a&&AC(a.doc)),a&&nn(a,'markerCleared',a,this,d,h),u&&Wl(a),this.parent&&this.parent.clear(); + } + },Yl.prototype.find=function(a,u){ + a==null&&this.type=='bookmark'&&(a=1);for(var p,d,h=0;h0||O==0&&E.clearWhenEmpty!==!1)return E;if(E.replacedWith&&(E.collapsed=!0,E.widgetNode=j('span',[E.replacedWith],'CodeMirror-widget'),d.handleMouseEvents||E.widgetNode.setAttribute('cm-ignore-events','true'),d.insertLeft&&(E.widgetNode.insertLeft=!0)),E.collapsed){ + if(ET(a,u.line,u,p,E)||u.line!=p.line&&ET(a,p.line,u,p,E))throw new Error('Inserting collapsed marker partially overlapping an existing one');VI(); + }E.addToHistory&&pC(a,{from:u,to:p,origin:'markText'},a.sel,NaN);var L=u.line,R=a.cm,F;if(a.iter(L,p.line+1,function(Q){ + R&&E.collapsed&&!R.options.lineWrapping&&Po(Q)==R.display.maxLine&&(F=!0),E.collapsed&&L!=u.line&&ii(Q,0),BI(Q,new sh(E,L==u.line?u.ch:null,L==p.line?p.ch:null),a.cm&&a.cm.curOp),++L; + }),E.collapsed&&a.iter(u.line,p.line+1,function(Q){ + zs(a,Q)&&ii(Q,0); + }),E.clearOnEnter&&rt(E,'beforeCursorEnter',function(){ + return E.clear(); + }),E.readOnly&&(jI(),(a.history.done.length||a.history.undone.length)&&a.clearHistory()),E.collapsed&&(E.id=++XF,E.atomic=!0),R){ + if(F&&(R.curOp.updateMaxLine=!0),E.collapsed)oi(R,u.line,p.line+1);else if(E.className||E.startStyle||E.endStyle||E.css||E.attributes||E.title)for(var H=u.line;H<=p.line;H++)Hs(R,H,'text');E.atomic&&AC(R.doc),nn(R,'markerAdded',R,E); + }return E; + }M(xc,'markText');var Dh=M(function(a,u){ + this.markers=a,this.primary=u;for(var p=0;p=0;R--)bc(this,d[R]);L?yC(this,L):this.cm&&mc(this.cm); + }),undo:an(function(){ + Oh(this,'undo'); + }),redo:an(function(){ + Oh(this,'redo'); + }),undoSelection:an(function(){ + Oh(this,'undo',!0); + }),redoSelection:an(function(){ + Oh(this,'redo',!0); + }),setExtending:function(a){ + this.extend=a; + },getExtending:function(){ + return this.extend; + },historySize:function(){ + for(var a=this.history,u=0,p=0,d=0;d=a.ch)&&u.push(h.marker.parent||h.marker); + }return u; + },findMarks:function(a,u,p){ + a=Ve(this,a),u=Ve(this,u);var d=[],h=a.line;return this.iter(a.line,u.line+1,function(E){ + var O=E.markedSpans;if(O)for(var L=0;L=R.to||R.from==null&&h!=a.line||R.from!=null&&h==u.line&&R.from>=u.ch)&&(!p||p(R.marker))&&d.push(R.marker.parent||R.marker); + }++h; + }),d; + },getAllMarks:function(){ + var a=[];return this.iter(function(u){ + var p=u.markedSpans;if(p)for(var d=0;da)return u=a,!0;a-=E,++p; + }),Ve(this,Ae(p,u)); + },indexFromPos:function(a){ + a=Ve(this,a);var u=a.ch;if(a.lineu&&(u=a.from),a.to!=null&&a.to-1){ + u.state.draggingText(a),setTimeout(function(){ + return u.display.input.focus(); + },20);return; + }try{ + var H=a.dataTransfer.getData('Text');if(H){ + var Q;if(u.state.draggingText&&!u.state.draggingText.copy&&(Q=u.listSelections()),Sh(u.doc,Ys(p,p)),Q)for(var $=0;$=0;L--)Ac(a.doc,'',d[L].from,d[L].to,'+delete');mc(a); + }); + }M(Ec,'deleteNearSelection');function z0(a,u,p){ + var d=Ml(a.text,u+p,p);return d<0||d>a.text.length?null:d; + }M(z0,'moveCharLogically');function H0(a,u,p){ + var d=z0(a,u.ch,p);return d==null?null:new Ae(u.line,d,p<0?'after':'before'); + }M(H0,'moveLogically');function Q0(a,u,p,d,h){ + if(a){ + u.doc.direction=='rtl'&&(h=-h);var E=ri(p,u.doc.direction);if(E){ + var O=h<0?pe(E):E[0],L=h<0==(O.level==1),R=L?'after':'before',F;if(O.level>0||u.doc.direction=='rtl'){ + var H=uc(u,p);F=h<0?p.text.length-1:0;var Q=da(u,H,F).top;F=xi(function($){ + return da(u,H,$).top==Q; + },h<0==(O.level==1)?O.from:O.to-1,F),R=='before'&&(F=z0(p,F,1)); + }else F=h<0?O.to:O.from;return new Ae(d,F,R); + } + }return new Ae(d,h<0?p.text.length:0,h<0?'before':'after'); + }M(Q0,'endOfLine');function u3(a,u,p,d){ + var h=ri(u,a.doc.direction);if(!h)return H0(u,p,d);p.ch>=u.text.length?(p.ch=u.text.length,p.sticky='before'):p.ch<=0&&(p.ch=0,p.sticky='after');var E=pr(h,p.ch,p.sticky),O=h[E];if(a.doc.direction=='ltr'&&O.level%2==0&&(d>0?O.to>p.ch:O.from=O.from&&$>=H.begin)){ + var Z=Q?'before':'after';return new Ae(p.line,$,Z); + } + }var le=M(function(De,qe,Le){ + for(var Be=M(function($t,hn){ + return hn?new Ae(p.line,L($t,1),'before'):new Ae(p.line,$t,'after'); + },'getRes');De>=0&&De0==(it.level!=1),Et=Je?Le.begin:L(Le.end,-1);if(it.from<=Et&&Et0?H.end:L(H.begin,-1);return Te!=null&&!(d>0&&Te==u.text.length)&&(ge=le(d>0?0:h.length-1,d,F(Te)),ge)?ge:null; + }M(u3,'moveVisually');var Mh={selectAll:EC,singleSelection:function(a){ + return a.setSelection(a.getCursor('anchor'),a.getCursor('head'),He); + },killLine:function(a){ + return Ec(a,function(u){ + if(u.empty()){ + var p=Qe(a.doc,u.head.line).text.length;return u.head.ch==p&&u.head.line0)h=new Ae(h.line,h.ch+1),a.replaceRange(E.charAt(h.ch-1)+E.charAt(h.ch-2),Ae(h.line,h.ch-2),h,'+transpose');else if(h.line>a.doc.first){ + var O=Qe(a.doc,h.line-1).text;O&&(h=new Ae(h.line,1),a.replaceRange(E.charAt(0)+a.doc.lineSeparator()+O.charAt(O.length-1),Ae(h.line-1,O.length-1),h,'+transpose')); + } + }p.push(new qt(h,h)); + }a.setSelections(p); + }); + },newlineAndIndent:function(a){ + return Ei(a,function(){ + for(var u=a.listSelections(),p=u.length-1;p>=0;p--)a.replaceRange(a.doc.lineSeparator(),u[p].anchor,u[p].head,'+input');u=a.listSelections();for(var d=0;da&&q(u,this.pos)==0&&p==this.button; + };var Fh,qh;function m3(a,u){ + var p=+new Date;return qh&&qh.compare(p,a,u)?(Fh=qh=null,'triple'):Fh&&Fh.compare(p,a,u)?(qh=new QC(p,a,u),Fh=null,'double'):(Fh=new QC(p,a,u),qh=null,'single'); + }M(m3,'clickRepeat');function WC(a){ + var u=this,p=u.display;if(!(Nr(u,a)||p.activeTouch&&p.input.supportsTouch())){ + if(p.input.ensurePolled(),p.shift=a.shiftKey,_a(p,a)){ + m||(p.scroller.draggable=!1,setTimeout(function(){ + return p.scroller.draggable=!0; + },100));return; + }if(!W0(u,a)){ + var d=Gl(u,a),h=td(a),E=d?m3(d,h):'single';window.focus(),h==1&&u.state.selectingText&&u.state.selectingText(a),!(d&&h3(u,h,d,E,a))&&(h==1?d?g3(u,d,E,a):Ka(a)==p.scroller&&mn(a):h==2?(d&&Ch(u.doc,d),setTimeout(function(){ + return p.input.focus(); + },20)):h==3&&(I?u.display.input.onContextMenu(a):C0(u))); + } + } + }M(WC,'onMouseDown');function h3(a,u,p,d,h){ + var E='Click';return d=='double'?E='Double'+E:d=='triple'&&(E='Triple'+E),E=(u==1?'Left':u==2?'Middle':'Right')+E,kd(a,IC(E,h),h,function(O){ + if(typeof O=='string'&&(O=Mh[O]),!O)return!1;var L=!1;try{ + a.isReadOnly()&&(a.state.suppressEdits=!0),L=O(a,p)!=Ge; + }finally{ + a.state.suppressEdits=!1; + }return L; + }); + }M(h3,'handleMappedButton');function v3(a,u,p){ + var d=a.getOption('configureMouse'),h=d?d(a,u,p):{};if(h.unit==null){ + var E=k?p.shiftKey&&p.metaKey:p.altKey;h.unit=E?'rectangle':u=='single'?'char':u=='double'?'word':'line'; + }return(h.extend==null||a.doc.extend)&&(h.extend=a.doc.extend||p.shiftKey),h.addNew==null&&(h.addNew=x?p.metaKey:p.ctrlKey),h.moveOnDrag==null&&(h.moveOnDrag=!(x?p.altKey:p.ctrlKey)),h; + }M(v3,'configureMouse');function g3(a,u,p,d){ + c?setTimeout(Re(XT,a),0):a.curOp.focus=ee();var h=v3(a,p,d),E=a.doc.sel,O;a.options.dragDrop&&rd&&!a.isReadOnly()&&p=='single'&&(O=E.contains(u))>-1&&(q((O=E.ranges[O]).from(),u)<0||u.xRel>0)&&(q(O.to(),u)>0||u.xRel<0)?y3(a,d,u,h):b3(a,d,u,h); + }M(g3,'leftButtonDown');function y3(a,u,p,d){ + var h=a.display,E=!1,O=on(a,function(F){ + m&&(h.scroller.draggable=!1),a.state.draggingText=!1,a.state.delayingBlurEvent&&(a.hasFocus()?a.state.delayingBlurEvent=!1:C0(a)),Vn(h.wrapper.ownerDocument,'mouseup',O),Vn(h.wrapper.ownerDocument,'mousemove',L),Vn(h.scroller,'dragstart',R),Vn(h.scroller,'drop',O),E||(mn(F),d.addNew||Ch(a.doc,p,null,null,d.extend),m&&!w||c&&f==9?setTimeout(function(){ + h.wrapper.ownerDocument.body.focus({preventScroll:!0}),h.input.focus(); + },20):h.input.focus()); + }),L=M(function(F){ + E=E||Math.abs(u.clientX-F.clientX)+Math.abs(u.clientY-F.clientY)>=10; + },'mouseMove'),R=M(function(){ + return E=!0; + },'dragStart');m&&(h.scroller.draggable=!0),a.state.draggingText=O,O.copy=!d.moveOnDrag,rt(h.wrapper.ownerDocument,'mouseup',O),rt(h.wrapper.ownerDocument,'mousemove',L),rt(h.scroller,'dragstart',R),rt(h.scroller,'drop',O),a.state.delayingBlurEvent=!0,setTimeout(function(){ + return h.input.focus(); + },20),h.scroller.dragDrop&&h.scroller.dragDrop(); + }M(y3,'leftButtonStartDrag');function YC(a,u,p){ + if(p=='char')return new qt(u,u);if(p=='word')return a.findWordAt(u);if(p=='line')return new qt(Ae(u.line,0),Ve(a.doc,Ae(u.line+1,0)));var d=p(a,u);return new qt(d.from,d.to); + }M(YC,'rangeForUnit');function b3(a,u,p,d){ + c&&C0(a);var h=a.display,E=a.doc;mn(u);var O,L,R=E.sel,F=R.ranges;if(d.addNew&&!d.extend?(L=E.sel.contains(p),L>-1?O=F[L]:O=new qt(p,p)):(O=E.sel.primary(),L=E.sel.primIndex),d.unit=='rectangle')d.addNew||(O=new qt(p,p)),p=Gl(a,u,!0,!0),L=-1;else{ + var H=YC(a,p,d.unit);d.extend?O=U0(O,H.anchor,H.head,d.extend):O=H; + }d.addNew?L==-1?(L=F.length,kn(E,Mo(a,F.concat([O]),L),{scroll:!1,origin:'*mouse'})):F.length>1&&F[L].empty()&&d.unit=='char'&&!d.extend?(kn(E,Mo(a,F.slice(0,L).concat(F.slice(L+1)),0),{scroll:!1,origin:'*mouse'}),R=E.sel):B0(E,L,O,dr):(L=0,kn(E,new io([O],0),dr),R=E.sel);var Q=p;function $(Le){ + if(q(Q,Le)!=0)if(Q=Le,d.unit=='rectangle'){ + for(var Be=[],it=a.options.tabSize,Je=ie(Qe(E,p.line).text,p.ch,it),Et=ie(Qe(E,Le.line).text,Le.ch,it),$t=Math.min(Je,Et),hn=Math.max(Je,Et),mr=Math.min(p.line,Le.line),Ci=Math.min(a.lastLine(),Math.max(p.line,Le.line));mr<=Ci;mr++){ + var Si=Qe(E,mr).text,zr=bt(Si,$t,it);$t==hn?Be.push(new qt(Ae(mr,zr),Ae(mr,zr))):Si.length>zr&&Be.push(new qt(Ae(mr,zr),Ae(mr,bt(Si,hn,it)))); + }Be.length||Be.push(new qt(p,p)),kn(E,Mo(a,R.ranges.slice(0,L).concat(Be),L),{origin:'*mouse',scroll:!1}),a.scrollIntoView(Le); + }else{ + var ki=O,On=YC(a,Le,d.unit),sn=ki.anchor,Hr;q(On.anchor,sn)>0?(Hr=On.head,sn=ct(ki.from(),On.anchor)):(Hr=On.anchor,sn=we(ki.to(),On.head));var Dr=R.ranges.slice(0);Dr[L]=A3(a,new qt(Ve(E,sn),Hr)),kn(E,Mo(a,Dr,L),dr); + } + }M($,'extendTo');var Z=h.wrapper.getBoundingClientRect(),le=0;function ge(Le){ + var Be=++le,it=Gl(a,Le,!0,d.unit=='rectangle');if(it)if(q(it,Q)!=0){ + a.curOp.focus=ee(),$(it);var Je=Ah(h,E);(it.line>=Je.to||it.lineZ.bottom?20:0;Et&&setTimeout(on(a,function(){ + le==Be&&(h.scroller.scrollTop+=Et,ge(Le)); + }),50); + } + }M(ge,'extend');function Te(Le){ + a.state.selectingText=!1,le=1/0,Le&&(mn(Le),h.input.focus()),Vn(h.wrapper.ownerDocument,'mousemove',De),Vn(h.wrapper.ownerDocument,'mouseup',qe),E.history.lastSelOrigin=null; + }M(Te,'done');var De=on(a,function(Le){ + Le.buttons===0||!td(Le)?Te(Le):ge(Le); + }),qe=on(a,Te);a.state.selectingText=qe,rt(h.wrapper.ownerDocument,'mousemove',De),rt(h.wrapper.ownerDocument,'mouseup',qe); + }M(b3,'leftButtonSelect');function A3(a,u){ + var p=u.anchor,d=u.head,h=Qe(a.doc,p.line);if(q(p,d)==0&&p.sticky==d.sticky)return u;var E=ri(h);if(!E)return u;var O=pr(E,p.ch,p.sticky),L=E[O];if(L.from!=p.ch&&L.to!=p.ch)return u;var R=O+(L.from==p.ch==(L.level!=1)?0:1);if(R==0||R==E.length)return u;var F;if(d.line!=p.line)F=(d.line-p.line)*(a.doc.direction=='ltr'?1:-1)>0;else{ + var H=pr(E,d.ch,d.sticky),Q=H-O||(d.ch-p.ch)*(L.level==1?-1:1);H==R-1||H==R?F=Q<0:F=Q>0; + }var $=E[R+(F?-1:0)],Z=F==($.level==1),le=Z?$.from:$.to,ge=Z?'after':'before';return p.ch==le&&p.sticky==ge?u:new qt(new Ae(p.line,le,ge),d); + }M(A3,'bidiSimplify');function KC(a,u,p,d){ + var h,E;if(u.touches)h=u.touches[0].clientX,E=u.touches[0].clientY;else try{ + h=u.clientX,E=u.clientY; + }catch{ + return!1; + }if(h>=Math.floor(a.display.gutters.getBoundingClientRect().right))return!1;d&&mn(u);var O=a.display,L=O.lineDiv.getBoundingClientRect();if(E>L.bottom||!rn(a,p))return wi(u);E-=L.top-O.viewOffset;for(var R=0;R=h){ + var H=Lo(a.doc,E),Q=a.display.gutterSpecs[R];return ut(a,p,a,H,Q.className,u),wi(u); + } + } + }M(KC,'gutterEvent');function W0(a,u){ + return KC(a,u,'gutterClick',!0); + }M(W0,'clickInGutter');function XC(a,u){ + _a(a.display,u)||x3(a,u)||Nr(a,u,'contextmenu')||I||a.display.input.onContextMenu(u); + }M(XC,'onContextMenu');function x3(a,u){ + return rn(a,'gutterContextMenu')?KC(a,u,'gutterContextMenu',!1):!1; + }M(x3,'contextMenuInGutter');function ZC(a){ + a.display.wrapper.className=a.display.wrapper.className.replace(/\s*cm-s-\S+/g,'')+a.options.theme.replace(/(^|\s)\s*/g,' cm-s-'),hd(a); + }M(ZC,'themeChanged');var Od={toString:function(){ + return'CodeMirror.Init'; + }},w3={},Y0={};function E3(a){ + var u=a.optionHandlers;function p(d,h,E,O){ + a.defaults[d]=h,E&&(u[d]=O?function(L,R,F){ + F!=Od&&E(L,R,F); + }:E); + }M(p,'option'),a.defineOption=p,a.Init=Od,p('value','',function(d,h){ + return d.setValue(h); + },!0),p('mode',null,function(d,h){ + d.doc.modeOption=h,q0(d); + },!0),p('indentUnit',2,q0,!0),p('indentWithTabs',!1),p('smartIndent',!0),p('tabSize',4,function(d){ + wd(d),hd(d),oi(d); + },!0),p('lineSeparator',null,function(d,h){ + if(d.doc.lineSep=h,!!h){ + var E=[],O=d.doc.first;d.doc.iter(function(R){ + for(var F=0;;){ + var H=R.text.indexOf(h,F);if(H==-1)break;F=H+h.length,E.push(Ae(O,H)); + }O++; + });for(var L=E.length-1;L>=0;L--)Ac(d.doc,h,E[L],Ae(E[L].line,E[L].ch+h.length)); + } + }),p('specialChars',/[\u0000-\u001f\u007f-\u009f\u00ad\u061c\u200b\u200e\u200f\u2028\u2029\ufeff\ufff9-\ufffc]/g,function(d,h,E){ + d.state.specialChars=new RegExp(h.source+(h.test(' ')?'':'| '),'g'),E!=Od&&d.refresh(); + }),p('specialCharPlaceholder',ZI,function(d){ + return d.refresh(); + },!0),p('electricChars',!0),p('inputStyle',C?'contenteditable':'textarea',function(){ + throw new Error('inputStyle can not (yet) be changed in a running editor'); + },!0),p('spellcheck',!1,function(d,h){ + return d.getInputField().spellcheck=h; + },!0),p('autocorrect',!1,function(d,h){ + return d.getInputField().autocorrect=h; + },!0),p('autocapitalize',!1,function(d,h){ + return d.getInputField().autocapitalize=h; + },!0),p('rtlMoveVisually',!P),p('wholeLineUpdateBefore',!0),p('theme','default',function(d){ + ZC(d),xd(d); + },!0),p('keyMap','default',function(d,h,E){ + var O=Rh(h),L=E!=Od&&Rh(E);L&&L.detach&&L.detach(d,O),O.attach&&O.attach(d,L||null); + }),p('extraKeys',null),p('configureMouse',null),p('lineWrapping',!1,C3,!0),p('gutters',[],function(d,h){ + d.display.gutterSpecs=M0(h,d.options.lineNumbers),xd(d); + },!0),p('fixedGutter',!0,function(d,h){ + d.display.gutters.style.left=h?x0(d.display)+'px':'0',d.refresh(); + },!0),p('coverGutterNextToScrollbar',!1,function(d){ + return vc(d); + },!0),p('scrollbarStyle','native',function(d){ + eC(d),vc(d),d.display.scrollbars.setScrollTop(d.doc.scrollTop),d.display.scrollbars.setScrollLeft(d.doc.scrollLeft); + },!0),p('lineNumbers',!1,function(d,h){ + d.display.gutterSpecs=M0(d.options.gutters,h),xd(d); + },!0),p('firstLineNumber',1,xd,!0),p('lineNumberFormatter',function(d){ + return d; + },xd,!0),p('showCursorWhenSelecting',!1,vd,!0),p('resetSelectionOnContextMenu',!0),p('lineWiseCopyCut',!0),p('pasteLinesPerSelection',!0),p('selectionsMayTouch',!1),p('readOnly',!1,function(d,h){ + h=='nocursor'&&(pc(d),d.display.input.blur()),d.display.input.readOnlyChanged(h); + }),p('screenReaderLabel',null,function(d,h){ + h=h===''?null:h,d.display.input.screenReaderLabelChanged(h); + }),p('disableInput',!1,function(d,h){ + h||d.display.input.reset(); + },!0),p('dragDrop',!0,T3),p('allowDropFileTypes',null),p('cursorBlinkRate',530),p('cursorScrollMargin',0),p('cursorHeight',1,vd,!0),p('singleCursorHeightPerLine',!0,vd,!0),p('workTime',100),p('workDelay',100),p('flattenSpans',!0,wd,!0),p('addModeClass',!1,wd,!0),p('pollInterval',100),p('undoDepth',200,function(d,h){ + return d.doc.history.undoDepth=h; + }),p('historyEventDelay',1250),p('viewportMargin',10,function(d){ + return d.refresh(); + },!0),p('maxHighlightLength',1e4,wd,!0),p('moveInputWithCursor',!0,function(d,h){ + h||d.display.input.resetPosition(); + }),p('tabindex',null,function(d,h){ + return d.display.input.getField().tabIndex=h||''; + }),p('autofocus',null),p('direction','ltr',function(d,h){ + return d.doc.setDirection(h); + },!0),p('phrases',null); + }M(E3,'defineOptions');function T3(a,u,p){ + var d=p&&p!=Od;if(!u!=!d){ + var h=a.display.dragFunctions,E=u?rt:Vn;E(a.display.scroller,'dragstart',h.start),E(a.display.scroller,'dragenter',h.enter),E(a.display.scroller,'dragover',h.over),E(a.display.scroller,'dragleave',h.leave),E(a.display.scroller,'drop',h.drop); + } + }M(T3,'dragDropChanged');function C3(a){ + a.options.lineWrapping?(re(a.display.wrapper,'CodeMirror-wrap'),a.display.sizer.style.minWidth='',a.display.sizerWidth=null):(G(a.display.wrapper,'CodeMirror-wrap'),f0(a)),w0(a),oi(a),hd(a),setTimeout(function(){ + return vc(a); + },100); + }M(C3,'wrappingChanged');function or(a,u){ + var p=this;if(!(this instanceof or))return new or(a,u);this.options=u=u?Se(u):{},Se(w3,u,!1);var d=u.value;typeof d=='string'?d=new Ti(d,u.mode,null,u.lineSeparator,u.direction):u.mode&&(d.modeOption=u.mode),this.doc=d;var h=new or.inputStyles[u.inputStyle](this),E=this.display=new qF(a,d,h,u);E.wrapper.CodeMirror=this,ZC(this),u.lineWrapping&&(this.display.wrapper.className+=' CodeMirror-wrap'),eC(this),this.state={keyMaps:[],overlays:[],modeGen:0,overwrite:!1,delayingBlurEvent:!1,focused:!1,suppressEdits:!1,pasteIncoming:-1,cutIncoming:-1,selectingText:!1,draggingText:!1,highlight:new ye,keySeq:null,specialChars:null},u.autofocus&&!C&&E.input.focus(),c&&f<11&&setTimeout(function(){ + return p.display.input.reset(!0); + },20),S3(this),i3(),Ql(this),this.curOp.forceUpdate=!0,cC(this,d),u.autofocus&&!C||this.hasFocus()?setTimeout(function(){ + p.hasFocus()&&!p.state.focused&&S0(p); + },20):pc(this);for(var O in Y0)Y0.hasOwnProperty(O)&&Y0[O](this,u[O],Od);nC(this),u.finishInit&&u.finishInit(this);for(var L=0;L20*20; + }M(O,'farAway'),rt(u.scroller,'touchstart',function(R){ + if(!Nr(a,R)&&!E(R)&&!W0(a,R)){ + u.input.ensurePolled(),clearTimeout(p);var F=+new Date;u.activeTouch={start:F,moved:!1,prev:F-d.end<=300?d:null},R.touches.length==1&&(u.activeTouch.left=R.touches[0].pageX,u.activeTouch.top=R.touches[0].pageY); + } + }),rt(u.scroller,'touchmove',function(){ + u.activeTouch&&(u.activeTouch.moved=!0); + }),rt(u.scroller,'touchend',function(R){ + var F=u.activeTouch;if(F&&!_a(u,R)&&F.left!=null&&!F.moved&&new Date-F.start<300){ + var H=a.coordsChar(u.activeTouch,'page'),Q;!F.prev||O(F,F.prev)?Q=new qt(H,H):!F.prev.prev||O(F,F.prev.prev)?Q=a.findWordAt(H):Q=new qt(Ae(H.line,0),Ve(a.doc,Ae(H.line+1,0))),a.setSelection(Q.anchor,Q.head),a.focus(),mn(R); + }h(); + }),rt(u.scroller,'touchcancel',h),rt(u.scroller,'scroll',function(){ + u.scroller.clientHeight&&(yd(a,u.scroller.scrollTop),Hl(a,u.scroller.scrollLeft,!0),ut(a,'scroll',a)); + }),rt(u.scroller,'mousewheel',function(R){ + return aC(a,R); + }),rt(u.scroller,'DOMMouseScroll',function(R){ + return aC(a,R); + }),rt(u.wrapper,'scroll',function(){ + return u.wrapper.scrollTop=u.wrapper.scrollLeft=0; + }),u.dragFunctions={enter:function(R){ + Nr(a,R)||Us(R); + },over:function(R){ + Nr(a,R)||(r3(a,R),Us(R)); + },start:function(R){ + return t3(a,R); + },drop:on(a,e3),leave:function(R){ + Nr(a,R)||PC(a); + }};var L=u.input.getField();rt(L,'keyup',function(R){ + return zC.call(a,R); + }),rt(L,'keydown',on(a,GC)),rt(L,'keypress',on(a,HC)),rt(L,'focus',function(R){ + return S0(a,R); + }),rt(L,'blur',function(R){ + return pc(a,R); + }); + }M(S3,'registerEventHandlers');var JC=[];or.defineInitHook=function(a){ + return JC.push(a); + };function Nd(a,u,p,d){ + var h=a.doc,E;p==null&&(p='add'),p=='smart'&&(h.mode.indent?E=ud(a,u).state:p='prev');var O=a.options.tabSize,L=Qe(h,u),R=ie(L.text,null,O);L.stateAfter&&(L.stateAfter=null);var F=L.text.match(/^\s*/)[0],H;if(!d&&!/\S/.test(L.text))H=0,p='not';else if(p=='smart'&&(H=h.mode.indent(E,L.text.slice(F.length),L.text),H==Ge||H>150)){ + if(!d)return;p='prev'; + }p=='prev'?u>h.first?H=ie(Qe(h,u-1).text,null,O):H=0:p=='add'?H=R+a.options.indentUnit:p=='subtract'?H=R-a.options.indentUnit:typeof p=='number'&&(H=R+p),H=Math.max(0,H);var Q='',$=0;if(a.options.indentWithTabs)for(var Z=Math.floor(H/O);Z;--Z)$+=O,Q+=' ';if($O,R=od(u),F=null;if(L&&d.ranges.length>1)if(pa&&pa.text.join(` +`)==u){ + if(d.ranges.length%pa.text.length==0){ + F=[];for(var H=0;H=0;$--){ + var Z=d.ranges[$],le=Z.from(),ge=Z.to();Z.empty()&&(p&&p>0?le=Ae(le.line,le.ch-p):a.state.overwrite&&!L?ge=Ae(ge.line,Math.min(Qe(E,ge.line).text.length,ge.ch+pe(R).length)):L&&pa&&pa.lineWise&&pa.text.join(` +`)==R.join(` +`)&&(le=ge=Ae(le.line,0)));var Te={from:le,to:ge,text:F?F[$%F.length]:R,origin:h||(L?'paste':a.state.cutIncoming>O?'cut':'+input')};bc(a.doc,Te),nn(a,'inputRead',a,Te); + }u&&!L&&$C(a,u),mc(a),a.curOp.updateInput<2&&(a.curOp.updateInput=Q),a.curOp.typing=!0,a.state.pasteIncoming=a.state.cutIncoming=-1; + }M(K0,'applyTextInput');function _C(a,u){ + var p=a.clipboardData&&a.clipboardData.getData('Text');if(p)return a.preventDefault(),!u.isReadOnly()&&!u.options.disableInput&&Ei(u,function(){ + return K0(u,p,0,null,'paste'); + }),!0; + }M(_C,'handlePaste');function $C(a,u){ + if(!(!a.options.electricChars||!a.options.smartIndent))for(var p=a.doc.sel,d=p.ranges.length-1;d>=0;d--){ + var h=p.ranges[d];if(!(h.head.ch>100||d&&p.ranges[d-1].head.line==h.head.line)){ + var E=a.getModeAt(h.head),O=!1;if(E.electricChars){ + for(var L=0;L-1){ + O=Nd(a,h.head.line,'smart');break; + } + }else E.electricInput&&E.electricInput.test(Qe(a.doc,h.head.line).text.slice(0,h.head.ch))&&(O=Nd(a,h.head.line,'smart'));O&&nn(a,'electricInput',a,h.head.line); + } + } + }M($C,'triggerElectric');function eS(a){ + for(var u=[],p=[],d=0;dE&&(Nd(this,L.head.line,d,!0),E=L.head.line,O==this.doc.sel.primIndex&&mc(this));else{ + var R=L.from(),F=L.to(),H=Math.max(E,R.line);E=Math.min(this.lastLine(),F.line-(F.ch?0:1))+1;for(var Q=H;Q0&&B0(this.doc,O,new qt(R,$[O].to()),He); + } + } + }),getTokenAt:function(d,h){ + return hT(this,d,h); + },getLineTokens:function(d,h){ + return hT(this,Ae(d),h,!0); + },getTokenTypeAt:function(d){ + d=Ve(this.doc,d);var h=pT(this,Qe(this.doc,d.line)),E=0,O=(h.length-1)/2,L=d.ch,R;if(L==0)R=h[2];else for(;;){ + var F=E+O>>1;if((F?h[F*2-1]:0)>=L)O=F;else if(h[F*2+1]R&&(d=R,O=!0),L=Qe(this.doc,d); + }else L=d;return hh(this,L,{top:0,left:0},h||'page',E||O).top+(O?this.doc.height-Ja(L):0); + },defaultTextHeight:function(){ + return fc(this.display); + },defaultCharWidth:function(){ + return dc(this.display); + },getViewport:function(){ + return{from:this.display.viewFrom,to:this.display.viewTo}; + },addWidget:function(d,h,E,O,L){ + var R=this.display;d=Ro(this,Ve(this.doc,d));var F=d.bottom,H=d.left;if(h.style.position='absolute',h.setAttribute('cm-ignore-events','true'),this.display.input.setUneditable(h),R.sizer.appendChild(h),O=='over')F=d.top;else if(O=='above'||O=='near'){ + var Q=Math.max(R.wrapper.clientHeight,this.doc.height),$=Math.max(R.sizer.clientWidth,R.lineSpace.clientWidth);(O=='above'||d.bottom+h.offsetHeight>Q)&&d.top>h.offsetHeight?F=d.top-h.offsetHeight:d.bottom+h.offsetHeight<=Q&&(F=d.bottom),H+h.offsetWidth>$&&(H=$-h.offsetWidth); + }h.style.top=F+'px',h.style.left=h.style.right='',L=='right'?(H=R.sizer.clientWidth-h.offsetWidth,h.style.right='0px'):(L=='left'?H=0:L=='middle'&&(H=(R.sizer.clientWidth-h.offsetWidth)/2),h.style.left=H+'px'),E&&EF(this,{left:H,top:F,right:H+h.offsetWidth,bottom:F+h.offsetHeight}); + },triggerOnKeyDown:Un(GC),triggerOnKeyPress:Un(HC),triggerOnKeyUp:zC,triggerOnMouseDown:Un(WC),execCommand:function(d){ + if(Mh.hasOwnProperty(d))return Mh[d].call(null,this); + },triggerElectric:Un(function(d){ + $C(this,d); + }),findPosH:function(d,h,E,O){ + var L=1;h<0&&(L=-1,h=-h);for(var R=Ve(this.doc,d),F=0;F0&&H(E.charAt(O-1));)--O;for(;L.5||this.options.lineWrapping)&&w0(this),ut(this,'refresh',this); + }),swapDoc:Un(function(d){ + var h=this.doc;return h.cm=null,this.state.selectingText&&this.state.selectingText(),cC(this,d),hd(this),this.display.input.reset(),gd(this,d.scrollLeft,d.scrollTop),this.curOp.forceScroll=!0,nn(this,'swapDoc',this,h),h; + }),phrase:function(d){ + var h=this.options.phrases;return h&&Object.prototype.hasOwnProperty.call(h,d)?h[d]:d; + },getInputField:function(){ + return this.display.input.getField(); + },getWrapperElement:function(){ + return this.display.wrapper; + },getScrollerElement:function(){ + return this.display.scroller; + },getGutterElement:function(){ + return this.display.gutters; + }},ko(a),a.registerHelper=function(d,h,E){ + p.hasOwnProperty(d)||(p[d]=a[d]={_global:[]}),p[d][h]=E; + },a.registerGlobalHelper=function(d,h,E,O){ + a.registerHelper(d,h,O),p[d]._global.push({pred:E,val:O}); + }; + }M(k3,'addEditorMethods');function X0(a,u,p,d,h){ + var E=u,O=p,L=Qe(a,u.line),R=h&&a.direction=='rtl'?-p:p;function F(){ + var qe=u.line+R;return qe=a.first+a.size?!1:(u=new Ae(qe,u.ch,u.sticky),L=Qe(a,qe)); + }M(F,'findNextLine');function H(qe){ + var Le;if(d=='codepoint'){ + var Be=L.text.charCodeAt(u.ch+(p>0?0:-1));if(isNaN(Be))Le=null;else{ + var it=p>0?Be>=55296&&Be<56320:Be>=56320&&Be<57343;Le=new Ae(u.line,Math.max(0,Math.min(L.text.length,u.ch+p*(it?2:1))),-p); + } + }else h?Le=u3(a.cm,L,u,p):Le=H0(L,u,p);if(Le==null)if(!qe&&F())u=Q0(h,a.cm,L,u.line,R);else return!1;else u=Le;return!0; + }if(M(H,'moveOnce'),d=='char'||d=='codepoint')H();else if(d=='column')H(!0);else if(d=='word'||d=='group')for(var Q=null,$=d=='group',Z=a.cm&&a.cm.getHelper(u,'wordChars'),le=!0;!(p<0&&!H(!le));le=!1){ + var ge=L.text.charAt(u.ch)||` +`,Te=ua(ge,Z)?'w':$&&ge==` +`?'n':!$||/\s/.test(ge)?null:'p';if($&&!le&&!Te&&(Te='s'),Q&&Q!=Te){ + p<0&&(p=1,H(),u.sticky='after');break; + }if(Te&&(Q=Te),p>0&&!H(!le))break; + }var De=kh(a,u,E,O,!0);return W(E,De)&&(De.hitSide=!0),De; + }M(X0,'findPosH');function nS(a,u,p,d){ + var h=a.doc,E=u.left,O;if(d=='page'){ + var L=Math.min(a.display.wrapper.clientHeight,window.innerHeight||document.documentElement.clientHeight),R=Math.max(L-.5*fc(a.display),3);O=(p>0?u.bottom:u.top)+p*R; + }else d=='line'&&(O=p>0?u.bottom+3:u.top-3);for(var F;F=y0(a,E,O),!!F.outside;){ + if(p<0?O<=0:O>=h.height){ + F.hitSide=!0;break; + }O+=p*5; + }return F; + }M(nS,'findPosV');var Yt=M(function(a){ + this.cm=a,this.lastAnchorNode=this.lastAnchorOffset=this.lastFocusNode=this.lastFocusOffset=null,this.polling=new ye,this.composing=null,this.gracePeriod=!1,this.readDOMTimeout=null; + },'ContentEditableInput');Yt.prototype.init=function(a){ + var u=this,p=this,d=p.cm,h=p.div=a.lineDiv;h.contentEditable=!0,tS(h,d.options.spellcheck,d.options.autocorrect,d.options.autocapitalize);function E(L){ + for(var R=L.target;R;R=R.parentNode){ + if(R==h)return!0;if(/\bCodeMirror-(?:line)?widget\b/.test(R.className))break; + }return!1; + }M(E,'belongsToInput'),rt(h,'paste',function(L){ + !E(L)||Nr(d,L)||_C(L,d)||f<=11&&setTimeout(on(d,function(){ + return u.updateFromDOM(); + }),20); + }),rt(h,'compositionstart',function(L){ + u.composing={data:L.data,done:!1}; + }),rt(h,'compositionupdate',function(L){ + u.composing||(u.composing={data:L.data,done:!1}); + }),rt(h,'compositionend',function(L){ + u.composing&&(L.data!=u.composing.data&&u.readFromDOMSoon(),u.composing.done=!0); + }),rt(h,'touchstart',function(){ + return p.forceCompositionEnd(); + }),rt(h,'input',function(){ + u.composing||u.readFromDOMSoon(); + });function O(L){ + if(!(!E(L)||Nr(d,L))){ + if(d.somethingSelected())jh({lineWise:!1,text:d.getSelections()}),L.type=='cut'&&d.replaceSelection('',null,'cut');else if(d.options.lineWiseCopyCut){ + var R=eS(d);jh({lineWise:!0,text:R.text}),L.type=='cut'&&d.operation(function(){ + d.setSelections(R.ranges,0,He),d.replaceSelection('',null,'cut'); + }); + }else return;if(L.clipboardData){ + L.clipboardData.clearData();var F=pa.text.join(` +`);if(L.clipboardData.setData('Text',F),L.clipboardData.getData('Text')==F){ + L.preventDefault();return; + } + }var H=rS(),Q=H.firstChild;d.display.lineSpace.insertBefore(H,d.display.lineSpace.firstChild),Q.value=pa.text.join(` +`);var $=ee();xe(Q),setTimeout(function(){ + d.display.lineSpace.removeChild(H),$.focus(),$==h&&p.showPrimarySelection(); + },50); + } + }M(O,'onCopyCut'),rt(h,'copy',O),rt(h,'cut',O); + },Yt.prototype.screenReaderLabelChanged=function(a){ + a?this.div.setAttribute('aria-label',a):this.div.removeAttribute('aria-label'); + },Yt.prototype.prepareSelection=function(){ + var a=KT(this.cm,!1);return a.focus=ee()==this.div,a; + },Yt.prototype.showSelection=function(a,u){ + !a||!this.cm.display.view.length||((a.focus||u)&&this.showPrimarySelection(),this.showMultipleSelections(a)); + },Yt.prototype.getSelection=function(){ + return this.cm.display.wrapper.ownerDocument.getSelection(); + },Yt.prototype.showPrimarySelection=function(){ + var a=this.getSelection(),u=this.cm,p=u.doc.sel.primary(),d=p.from(),h=p.to();if(u.display.viewTo==u.display.viewFrom||d.line>=u.display.viewTo||h.line=u.display.viewFrom&&iS(u,d)||{node:L[0].measure.map[2],offset:0},F=h.linea.firstLine()&&(d=Ae(d.line-1,Qe(a.doc,d.line-1).length)),h.ch==Qe(a.doc,h.line).text.length&&h.lineu.viewTo-1)return!1;var E,O,L;d.line==u.viewFrom||(E=zl(a,d.line))==0?(O=Pt(u.view[0].line),L=u.view[0].node):(O=Pt(u.view[E].line),L=u.view[E-1].node.nextSibling);var R=zl(a,h.line),F,H;if(R==u.view.length-1?(F=u.viewTo-1,H=u.lineDiv.lastChild):(F=Pt(u.view[R+1].line)-1,H=u.view[R+1].node.previousSibling),!L)return!1;for(var Q=a.doc.splitLines(N3(a,L,H,O,F)),$=Do(a.doc,Ae(O,0),Ae(F,Qe(a.doc,F).text.length));Q.length>1&&$.length>1;)if(pe(Q)==pe($))Q.pop(),$.pop(),F--;else if(Q[0]==$[0])Q.shift(),$.shift(),O++;else break;for(var Z=0,le=0,ge=Q[0],Te=$[0],De=Math.min(ge.length,Te.length);Zd.ch&&qe.charCodeAt(qe.length-le-1)==Le.charCodeAt(Le.length-le-1);)Z--,le++;Q[Q.length-1]=qe.slice(0,qe.length-le).replace(/^\u200b+/,''),Q[0]=Q[0].slice(Z).replace(/\u200b+$/,'');var it=Ae(O,Z),Je=Ae(F,$.length?pe($).length-le:0);if(Q.length>1||Q[0]||q(it,Je))return Ac(a.doc,Q,it,Je,'+input'),!0; + },Yt.prototype.ensurePolled=function(){ + this.forceCompositionEnd(); + },Yt.prototype.reset=function(){ + this.forceCompositionEnd(); + },Yt.prototype.forceCompositionEnd=function(){ + this.composing&&(clearTimeout(this.readDOMTimeout),this.composing=null,this.updateFromDOM(),this.div.blur(),this.div.focus()); + },Yt.prototype.readFromDOMSoon=function(){ + var a=this;this.readDOMTimeout==null&&(this.readDOMTimeout=setTimeout(function(){ + if(a.readDOMTimeout=null,a.composing)if(a.composing.done)a.composing=null;else return;a.updateFromDOM(); + },80)); + },Yt.prototype.updateFromDOM=function(){ + var a=this;(this.cm.isReadOnly()||!this.pollContent())&&Ei(this.cm,function(){ + return oi(a.cm); + }); + },Yt.prototype.setUneditable=function(a){ + a.contentEditable='false'; + },Yt.prototype.onKeyPress=function(a){ + a.charCode==0||this.composing||(a.preventDefault(),this.cm.isReadOnly()||on(this.cm,K0)(this.cm,String.fromCharCode(a.charCode==null?a.keyCode:a.charCode),0)); + },Yt.prototype.readOnlyChanged=function(a){ + this.div.contentEditable=String(a!='nocursor'); + },Yt.prototype.onContextMenu=function(){},Yt.prototype.resetPosition=function(){},Yt.prototype.needsContentAttribute=!0;function iS(a,u){ + var p=h0(a,u.line);if(!p||p.hidden)return null;var d=Qe(a.doc,u.line),h=IT(p,d,u.line),E=ri(d,a.doc.direction),O='left';if(E){ + var L=pr(E,u.ch);O=L%2?'right':'left'; + }var R=qT(h.map,u.ch,O);return R.offset=R.collapse=='right'?R.end:R.start,R; + }M(iS,'posToDOM');function O3(a){ + for(var u=a;u;u=u.parentNode)if(/CodeMirror-gutter-wrapper/.test(u.className))return!0;return!1; + }M(O3,'isInGutter');function Tc(a,u){ + return u&&(a.bad=!0),a; + }M(Tc,'badPos');function N3(a,u,p,d,h){ + var E='',O=!1,L=a.doc.lineSeparator(),R=!1;function F(Z){ + return function(le){ + return le.id==Z; + }; + }M(F,'recognizeMarker');function H(){ + O&&(E+=L,R&&(E+=L),O=R=!1); + }M(H,'close');function Q(Z){ + Z&&(H(),E+=Z); + }M(Q,'addText');function $(Z){ + if(Z.nodeType==1){ + var le=Z.getAttribute('cm-text');if(le){ + Q(le);return; + }var ge=Z.getAttribute('cm-marker'),Te;if(ge){ + var De=a.findMarks(Ae(d,0),Ae(h+1,0),F(+ge));De.length&&(Te=De[0].find(0))&&Q(Do(a.doc,Te.from,Te.to).join(L));return; + }if(Z.getAttribute('contenteditable')=='false')return;var qe=/^(pre|div|p|li|table|br)$/i.test(Z.nodeName);if(!/^br$/i.test(Z.nodeName)&&Z.textContent.length==0)return;qe&&H();for(var Le=0;Le=9&&u.hasSelection&&(u.hasSelection=null),p.poll(); + }),rt(h,'paste',function(O){ + Nr(d,O)||_C(O,d)||(d.state.pasteIncoming=+new Date,p.fastPoll()); + });function E(O){ + if(!Nr(d,O)){ + if(d.somethingSelected())jh({lineWise:!1,text:d.getSelections()});else if(d.options.lineWiseCopyCut){ + var L=eS(d);jh({lineWise:!0,text:L.text}),O.type=='cut'?d.setSelections(L.ranges,null,He):(p.prevInput='',h.value=L.text.join(` +`),xe(h)); + }else return;O.type=='cut'&&(d.state.cutIncoming=+new Date); + } + }M(E,'prepareCopyCut'),rt(h,'cut',E),rt(h,'copy',E),rt(a.scroller,'paste',function(O){ + if(!(_a(a,O)||Nr(d,O))){ + if(!h.dispatchEvent){ + d.state.pasteIncoming=+new Date,p.focus();return; + }var L=new Event('paste');L.clipboardData=O.clipboardData,h.dispatchEvent(L); + } + }),rt(a.lineSpace,'selectstart',function(O){ + _a(a,O)||mn(O); + }),rt(h,'compositionstart',function(){ + var O=d.getCursor('from');p.composing&&p.composing.range.clear(),p.composing={start:O,range:d.markText(O,d.getCursor('to'),{className:'CodeMirror-composing'})}; + }),rt(h,'compositionend',function(){ + p.composing&&(p.poll(),p.composing.range.clear(),p.composing=null); + }); + },qr.prototype.createField=function(a){ + this.wrapper=rS(),this.textarea=this.wrapper.firstChild; + },qr.prototype.screenReaderLabelChanged=function(a){ + a?this.textarea.setAttribute('aria-label',a):this.textarea.removeAttribute('aria-label'); + },qr.prototype.prepareSelection=function(){ + var a=this.cm,u=a.display,p=a.doc,d=KT(a);if(a.options.moveInputWithCursor){ + var h=Ro(a,p.sel.primary().head,'div'),E=u.wrapper.getBoundingClientRect(),O=u.lineDiv.getBoundingClientRect();d.teTop=Math.max(0,Math.min(u.wrapper.clientHeight-10,h.top+O.top-E.top)),d.teLeft=Math.max(0,Math.min(u.wrapper.clientWidth-10,h.left+O.left-E.left)); + }return d; + },qr.prototype.showSelection=function(a){ + var u=this.cm,p=u.display;U(p.cursorDiv,a.cursors),U(p.selectionDiv,a.selection),a.teTop!=null&&(this.wrapper.style.top=a.teTop+'px',this.wrapper.style.left=a.teLeft+'px'); + },qr.prototype.reset=function(a){ + if(!(this.contextMenuPending||this.composing)){ + var u=this.cm;if(u.somethingSelected()){ + this.prevInput='';var p=u.getSelection();this.textarea.value=p,u.state.focused&&xe(this.textarea),c&&f>=9&&(this.hasSelection=p); + }else a||(this.prevInput=this.textarea.value='',c&&f>=9&&(this.hasSelection=null)); + } + },qr.prototype.getField=function(){ + return this.textarea; + },qr.prototype.supportsTouch=function(){ + return!1; + },qr.prototype.focus=function(){ + if(this.cm.options.readOnly!='nocursor'&&(!C||ee()!=this.textarea))try{ + this.textarea.focus(); + }catch{} + },qr.prototype.blur=function(){ + this.textarea.blur(); + },qr.prototype.resetPosition=function(){ + this.wrapper.style.top=this.wrapper.style.left=0; + },qr.prototype.receivedFocus=function(){ + this.slowPoll(); + },qr.prototype.slowPoll=function(){ + var a=this;this.pollingFast||this.polling.set(this.cm.options.pollInterval,function(){ + a.poll(),a.cm.state.focused&&a.slowPoll(); + }); + },qr.prototype.fastPoll=function(){ + var a=!1,u=this;u.pollingFast=!0;function p(){ + var d=u.poll();!d&&!a?(a=!0,u.polling.set(60,p)):(u.pollingFast=!1,u.slowPoll()); + }M(p,'p'),u.polling.set(20,p); + },qr.prototype.poll=function(){ + var a=this,u=this.cm,p=this.textarea,d=this.prevInput;if(this.contextMenuPending||!u.state.focused||oh(p)&&!d&&!this.composing||u.isReadOnly()||u.options.disableInput||u.state.keySeq)return!1;var h=p.value;if(h==d&&!u.somethingSelected())return!1;if(c&&f>=9&&this.hasSelection===h||x&&/[\uf700-\uf7ff]/.test(h))return u.display.input.reset(),!1;if(u.doc.sel==u.display.selForContextMenu){ + var E=h.charCodeAt(0);if(E==8203&&!d&&(d='\u200B'),E==8666)return this.reset(),this.cm.execCommand('undo'); + }for(var O=0,L=Math.min(d.length,h.length);O1e3||h.indexOf(` +`)>-1?p.value=a.prevInput='':a.prevInput=h,a.composing&&(a.composing.range.clear(),a.composing.range=u.markText(a.composing.start,u.getCursor('to'),{className:'CodeMirror-composing'})); + }),!0; + },qr.prototype.ensurePolled=function(){ + this.pollingFast&&this.poll()&&(this.pollingFast=!1); + },qr.prototype.onKeyPress=function(){ + c&&f>=9&&(this.hasSelection=null),this.fastPoll(); + },qr.prototype.onContextMenu=function(a){ + var u=this,p=u.cm,d=p.display,h=u.textarea;u.contextMenuPending&&u.contextMenuPending();var E=Gl(p,a),O=d.scroller.scrollTop;if(!E||y)return;var L=p.options.resetSelectionOnContextMenu;L&&p.doc.sel.contains(E)==-1&&on(p,kn)(p.doc,Ys(E),He);var R=h.style.cssText,F=u.wrapper.style.cssText,H=u.wrapper.offsetParent.getBoundingClientRect();u.wrapper.style.cssText='position: static',h.style.cssText=`position: absolute; width: 30px; height: 30px; + top: `+(a.clientY-H.top-5)+'px; left: '+(a.clientX-H.left-5)+`px; + z-index: 1000; background: `+(c?'rgba(255, 255, 255, .05)':'transparent')+`; + outline: none; border-width: 0; outline: none; overflow: hidden; opacity: .05; filter: alpha(opacity=5);`;var Q;m&&(Q=window.scrollY),d.input.focus(),m&&window.scrollTo(null,Q),d.input.reset(),p.somethingSelected()||(h.value=u.prevInput=' '),u.contextMenuPending=Z,d.selForContextMenu=p.doc.sel,clearTimeout(d.detectingSelectAll);function $(){ + if(h.selectionStart!=null){ + var ge=p.somethingSelected(),Te='\u200B'+(ge?h.value:'');h.value='\u21DA',h.value=Te,u.prevInput=ge?'':'\u200B',h.selectionStart=1,h.selectionEnd=Te.length,d.selForContextMenu=p.doc.sel; + } + }M($,'prepareSelectAllHack');function Z(){ + if(u.contextMenuPending==Z&&(u.contextMenuPending=!1,u.wrapper.style.cssText=F,h.style.cssText=R,c&&f<9&&d.scrollbars.setScrollTop(d.scroller.scrollTop=O),h.selectionStart!=null)){ + (!c||c&&f<9)&&$();var ge=0,Te=M(function(){ + d.selForContextMenu==p.doc.sel&&h.selectionStart==0&&h.selectionEnd>0&&u.prevInput=='\u200B'?on(p,EC)(p):ge++<10?d.detectingSelectAll=setTimeout(Te,500):(d.selForContextMenu=null,d.input.reset()); + },'poll');d.detectingSelectAll=setTimeout(Te,200); + } + }if(M(Z,'rehide'),c&&f>=9&&$(),I){ + Us(a);var le=M(function(){ + Vn(window,'mouseup',le),setTimeout(Z,20); + },'mouseup');rt(window,'mouseup',le); + }else setTimeout(Z,50); + },qr.prototype.readOnlyChanged=function(a){ + a||this.reset(),this.textarea.disabled=a=='nocursor',this.textarea.readOnly=!!a; + },qr.prototype.setUneditable=function(){},qr.prototype.needsContentAttribute=!1;function L3(a,u){ + if(u=u?Se(u):{},u.value=a.value,!u.tabindex&&a.tabIndex&&(u.tabindex=a.tabIndex),!u.placeholder&&a.placeholder&&(u.placeholder=a.placeholder),u.autofocus==null){ + var p=ee();u.autofocus=p==a||a.getAttribute('autofocus')!=null&&p==document.body; + }function d(){ + a.value=L.getValue(); + }M(d,'save');var h;if(a.form&&(rt(a.form,'submit',d),!u.leaveSubmitMethodAlone)){ + var E=a.form;h=E.submit;try{ + var O=E.submit=function(){ + d(),E.submit=h,E.submit(),E.submit=O; + }; + }catch{} + }u.finishInit=function(R){ + R.save=d,R.getTextArea=function(){ + return a; + },R.toTextArea=function(){ + R.toTextArea=isNaN,d(),a.parentNode.removeChild(R.getWrapperElement()),a.style.display='',a.form&&(Vn(a.form,'submit',d),!u.leaveSubmitMethodAlone&&typeof a.form.submit=='function'&&(a.form.submit=h)); + }; + },a.style.display='none';var L=or(function(R){ + return a.parentNode.insertBefore(R,a.nextSibling); + },u);return L; + }M(L3,'fromTextArea');function P3(a){ + a.off=Vn,a.on=rt,a.wheelEventPixels=jF,a.Doc=Ti,a.splitLines=od,a.countColumn=ie,a.findColumn=bt,a.isWordChar=Or,a.Pass=Ge,a.signal=ut,a.Line=fd,a.changeEnd=Ks,a.scrollbarModel=CF,a.Pos=Ae,a.cmpPos=q,a.modes=ro,a.mimeModes=qi,a.resolveMode=Vl,a.getMode=Ul,a.modeExtensions=No,a.extendMode=no,a.copyState=ji,a.startState=ac,a.innerMode=oc,a.commands=Mh,a.keyMap=Zs,a.keyName=FC,a.isModifierKey=MC,a.lookupKey=wc,a.normalizeKeyMap=l3,a.StringStream=xr,a.SharedTextMarker=Dh,a.TextMarker=Yl,a.LineWidget=Nh,a.e_preventDefault=mn,a.e_stopPropagation=jl,a.e_stop=Us,a.addClass=re,a.contains=K,a.rmClass=G,a.keyNames=Kl; + }M(P3,'addLegacyProps'),E3(or),k3(or);var K$='iter insert remove copy getEditor constructor'.split(' ');for(var Z0 in Ti.prototype)Ti.prototype.hasOwnProperty(Z0)&&me(K$,Z0)<0&&(or.prototype[Z0]=function(a){ + return function(){ + return a.apply(this.doc,arguments); + }; + }(Ti.prototype[Z0]));return ko(Ti),or.inputStyles={textarea:qr,contenteditable:Yt},or.defineMode=function(a){ + !or.defaults.mode&&a!='null'&&(or.defaults.mode=a),sd.apply(this,arguments); + },or.defineMIME=ca,or.defineMode('null',function(){ + return{token:function(a){ + return a.skipToEnd(); + }}; + }),or.defineMIME('text/plain','null'),or.defineExtension=function(a,u){ + or.prototype[a]=u; + },or.defineDocExtension=function(a,u){ + Ti.prototype[a]=u; + },or.fromTextArea=L3,P3(or),or.version='5.65.3',or; + }); + }(PZ)),PZ.exports; +}var mxe,M,hxe,PZ,RZ,ir=at(()=>{ + mxe=Object.defineProperty,M=(e,t)=>mxe(e,'name',{value:t,configurable:!0}),hxe=typeof globalThis<'u'?globalThis:typeof window<'u'?window:typeof global<'u'?global:typeof self<'u'?self:{};M(_t,'getDefaultExportFromCjs');PZ={exports:{}};M(Kt,'requireCodemirror'); +});var FZ={};Ui(FZ,{C:()=>tt,c:()=>yxe});function MZ(e,t){ + for(var r=0;rn[i]}); + } + } + }return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:'Module'})); +}var vxe,gxe,IZ,tt,yxe,ia=at(()=>{ + ir();vxe=Object.defineProperty,gxe=(e,t)=>vxe(e,'name',{value:t,configurable:!0});gxe(MZ,'_mergeNamespaces');IZ=Kt(),tt=_t(IZ),yxe=MZ({__proto__:null,default:tt},[IZ]); +});var VZ={};Ui(VZ,{s:()=>wxe});function qZ(e,t){ + for(var r=0;rn[i]}); + } + } + }return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:'Module'})); +}var bxe,eo,Axe,jZ,xxe,wxe,OM=at(()=>{ + ir();bxe=Object.defineProperty,eo=(e,t)=>bxe(e,'name',{value:t,configurable:!0});eo(qZ,'_mergeNamespaces');Axe={exports:{}};(function(e,t){ + (function(r){ + r(Kt()); + })(function(r){ + var n='CodeMirror-hint',i='CodeMirror-hint-active';r.showHint=function(A,b,C){ + if(!b)return A.showHint(C);C&&C.async&&(b.async=!0);var x={hint:b};if(C)for(var k in C)x[k]=C[k];return A.showHint(x); + },r.defineExtension('showHint',function(A){ + A=c(this,this.getCursor('start'),A);var b=this.listSelections();if(!(b.length>1)){ + if(this.somethingSelected()){ + if(!A.hint.supportsSelection)return;for(var C=0;CD.clientHeight+1:!1,He;setTimeout(function(){ + He=x.getScrollInfo(); + });var dr=Oe.bottom-me;if(dr>0){ + var Ue=Oe.bottom-Oe.top,bt=j.top-(j.bottom-Oe.top);if(bt-Ue>0)D.style.top=(K=j.top-Ue-se)+'px',ee=!1;else if(Ue>me){ + D.style.height=me-5+'px',D.style.top=(K=j.bottom-Oe.top-se)+'px';var he=x.getCursor();b.from.ch!=he.ch&&(j=x.cursorCoords(he),D.style.left=(J=j.left-re)+'px',Oe=D.getBoundingClientRect()); + } + }var Fe=Oe.right-ye;if(Ge&&(Fe+=x.display.nativeBarWidth),Fe>0&&(Oe.right-Oe.left>ye&&(D.style.width=ye-5+'px',Fe-=Oe.right-Oe.left-ye),D.style.left=(J=j.left-Fe-re)+'px'),Ge)for(var pe=D.firstChild;pe;pe=pe.nextSibling)pe.style.paddingRight=x.display.nativeBarWidth+'px';if(x.addKeyMap(this.keyMap=m(A,{moveFocus:function(nt,lt){ + C.changeActive(C.selectedHint+nt,lt); + },setFocus:function(nt){ + C.changeActive(nt); + },menuSize:function(){ + return C.screenAmount(); + },length:I.length,close:function(){ + A.close(); + },pick:function(){ + C.pick(); + },data:b})),A.options.closeOnUnfocus){ + var Me;x.on('blur',this.onBlur=function(){ + Me=setTimeout(function(){ + A.close(); + },100); + }),x.on('focus',this.onFocus=function(){ + clearTimeout(Me); + }); + }x.on('scroll',this.onScroll=function(){ + var nt=x.getScrollInfo(),lt=x.getWrapperElement().getBoundingClientRect();He||(He=x.getScrollInfo());var wt=K+He.top-nt.top,Or=wt-(P.pageYOffset||(k.documentElement||k.body).scrollTop);if(ee||(Or+=D.offsetHeight),Or<=lt.top||Or>=lt.bottom)return A.close();D.style.top=wt+'px',D.style.left=J+He.left-nt.left+'px'; + }),r.on(D,'dblclick',function(nt){ + var lt=v(D,nt.target||nt.srcElement);lt&<.hintId!=null&&(C.changeActive(lt.hintId),C.pick()); + }),r.on(D,'click',function(nt){ + var lt=v(D,nt.target||nt.srcElement);lt&<.hintId!=null&&(C.changeActive(lt.hintId),A.options.completeOnSingleClick&&C.pick()); + }),r.on(D,'mousedown',function(){ + setTimeout(function(){ + x.focus(); + },20); + });var st=this.getSelectedHintRange();return(st.from!==0||st.to!==0)&&this.scrollToActive(),r.signal(b,'select',I[this.selectedHint],D.childNodes[this.selectedHint]),!0; + }eo(g,'Widget'),g.prototype={close:function(){ + if(this.completion.widget==this){ + this.completion.widget=null,this.hints.parentNode&&this.hints.parentNode.removeChild(this.hints),this.completion.cm.removeKeyMap(this.keyMap);var A=this.completion.cm.getInputField();A.removeAttribute('aria-activedescendant'),A.removeAttribute('aria-owns');var b=this.completion.cm;this.completion.options.closeOnUnfocus&&(b.off('blur',this.onBlur),b.off('focus',this.onFocus)),b.off('scroll',this.onScroll); + } + },disable:function(){ + this.completion.cm.removeKeyMap(this.keyMap);var A=this;this.keyMap={Enter:function(){ + A.picked=!0; + }},this.completion.cm.addKeyMap(this.keyMap); + },pick:function(){ + this.completion.pick(this.data,this.selectedHint); + },changeActive:function(A,b){ + if(A>=this.data.list.length?A=b?this.data.list.length-1:0:A<0&&(A=b?0:this.data.list.length-1),this.selectedHint!=A){ + var C=this.hints.childNodes[this.selectedHint];C&&(C.className=C.className.replace(' '+i,''),C.removeAttribute('aria-selected')),C=this.hints.childNodes[this.selectedHint=A],C.className+=' '+i,C.setAttribute('aria-selected','true'),this.completion.cm.getInputField().setAttribute('aria-activedescendant',C.id),this.scrollToActive(),r.signal(this.data,'select',this.data.list[this.selectedHint],C); + } + },scrollToActive:function(){ + var A=this.getSelectedHintRange(),b=this.hints.childNodes[A.from],C=this.hints.childNodes[A.to],x=this.hints.firstChild;b.offsetTopthis.hints.scrollTop+this.hints.clientHeight&&(this.hints.scrollTop=C.offsetTop+C.offsetHeight-this.hints.clientHeight+x.offsetTop); + },screenAmount:function(){ + return Math.floor(this.hints.clientHeight/this.hints.firstChild.offsetHeight)||1; + },getSelectedHintRange:function(){ + var A=this.completion.options.scrollMargin||0;return{from:Math.max(0,this.selectedHint-A),to:Math.min(this.data.list.length-1,this.selectedHint+A)}; + }};function y(A,b){ + if(!A.somethingSelected())return b;for(var C=[],x=0;x0?D(B):V(G+1); + }); + }eo(V,'run'),V(0); + },'resolved');return k.async=!0,k.supportsSelection=!0,k; + }else return(x=A.getHelper(A.getCursor(),'hintWords'))?function(P){ + return r.hint.fromList(P,{words:x}); + }:r.hint.anyword?function(P,D){ + return r.hint.anyword(P,D); + }:function(){}; + }eo(T,'resolveAutoHints'),r.registerHelper('hint','auto',{resolve:T}),r.registerHelper('hint','fromList',function(A,b){ + var C=A.getCursor(),x=A.getTokenAt(C),k,P=r.Pos(C.line,x.start),D=C;x.start,]/,closeOnPick:!0,closeOnUnfocus:!0,updateOnCursorActivity:!0,completeOnSingleClick:!0,container:null,customKeys:null,extraKeys:null,paddingForScrollbar:!0,moveOnOverlap:!0};r.defineOption('hintOptions',null); + }); + })();jZ=Axe.exports,xxe=_t(jZ),wxe=qZ({__proto__:null,default:xxe},[jZ]); +});function Sy(){ + return UZ||(UZ=1,function(e,t){ + (function(r){ + r(Kt()); + })(function(r){ + var n=/MSIE \d/.test(navigator.userAgent)&&(document.documentMode==null||document.documentMode<8),i=r.Pos,o={'(':')>',')':'(<','[':']>',']':'[<','{':'}>','}':'{<','<':'>>','>':'<<'};function s(g){ + return g&&g.bracketRegex||/[(){}[\]]/; + }Yu(s,'bracketRegex');function l(g,y,w){ + var T=g.getLineHandle(y.line),S=y.ch-1,A=w&&w.afterCursor;A==null&&(A=/(^| )cm-fat-cursor($| )/.test(g.getWrapperElement().className));var b=s(w),C=!A&&S>=0&&b.test(T.text.charAt(S))&&o[T.text.charAt(S)]||b.test(T.text.charAt(S+1))&&o[T.text.charAt(++S)];if(!C)return null;var x=C.charAt(1)=='>'?1:-1;if(w&&w.strict&&x>0!=(S==y.ch))return null;var k=g.getTokenTypeAt(i(y.line,S+1)),P=c(g,i(y.line,S+(x>0?1:0)),x,k,w);return P==null?null:{from:i(y.line,S),to:P&&P.pos,match:P&&P.ch==C.charAt(0),forward:x>0}; + }Yu(l,'findMatchingBracket');function c(g,y,w,T,S){ + for(var A=S&&S.maxScanLineLength||1e4,b=S&&S.maxScanLines||1e3,C=[],x=s(S),k=w>0?Math.min(y.line+b,g.lastLine()+1):Math.max(g.firstLine()-1,y.line-b),P=y.line;P!=k;P+=w){ + var D=g.getLine(P);if(D){ + var N=w>0?0:D.length-1,I=w>0?D.length:-1;if(!(D.length>A))for(P==y.line&&(N=y.ch-(w<0?1:0));N!=I;N+=w){ + var V=D.charAt(N);if(x.test(V)&&(T===void 0||(g.getTokenTypeAt(i(P,N+1))||'')==(T||''))){ + var G=o[V];if(G&&G.charAt(1)=='>'==w>0)C.push(V);else if(C.length)C.pop();else return{pos:i(P,N),ch:V}; + } + } + } + }return P-w==(w>0?g.lastLine():g.firstLine())?!1:null; + }Yu(c,'scanForBracket');function f(g,y,w){ + for(var T=g.state.matchBrackets.maxHighlightLineLength||1e3,S=w&&w.highlightNonMatching,A=[],b=g.listSelections(),C=0;C{ + ir();Exe=Object.defineProperty,Yu=(e,t)=>Exe(e,'name',{value:t,configurable:!0}),Txe={exports:{}};Yu(Sy,'requireMatchbrackets'); +});var zZ={};Ui(zZ,{m:()=>Oxe});function BZ(e,t){ + for(var r=0;rn[i]}); + } + } + }return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:'Module'})); +}var Cxe,Sxe,GZ,kxe,Oxe,HZ=at(()=>{ + ir();NM();Cxe=Object.defineProperty,Sxe=(e,t)=>Cxe(e,'name',{value:t,configurable:!0});Sxe(BZ,'_mergeNamespaces');GZ=Sy(),kxe=_t(GZ),Oxe=BZ({__proto__:null,default:kxe},[GZ]); +});var YZ={};Ui(YZ,{c:()=>Pxe});function QZ(e,t){ + for(var r=0;rn[i]}); + } + } + }return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:'Module'})); +}var Nxe,oa,Dxe,WZ,Lxe,Pxe,KZ=at(()=>{ + ir();Nxe=Object.defineProperty,oa=(e,t)=>Nxe(e,'name',{value:t,configurable:!0});oa(QZ,'_mergeNamespaces');Dxe={exports:{}};(function(e,t){ + (function(r){ + r(Kt()); + })(function(r){ + var n={pairs:'()[]{}\'\'""',closeBefore:')]}\'":;>',triples:'',explode:'[]{}'},i=r.Pos;r.defineOption('autoCloseBrackets',!1,function(A,b,C){ + C&&C!=r.Init&&(A.removeKeyMap(s),A.state.closeBrackets=null),b&&(l(o(b,'pairs')),A.state.closeBrackets=b,A.addKeyMap(s)); + });function o(A,b){ + return b=='pairs'&&typeof A=='string'?A:typeof A=='object'&&A[b]!=null?A[b]:n[b]; + }oa(o,'getOption');var s={Backspace:m,Enter:v};function l(A){ + for(var b=0;b=0;k--){ + var D=x[k].head;A.replaceRange('',i(D.line,D.ch-1),i(D.line,D.ch+1),'+delete'); + } + }oa(m,'handleBackspace');function v(A){ + var b=f(A),C=b&&o(b,'explode');if(!C||A.getOption('disableInput'))return r.Pass;for(var x=A.listSelections(),k=0;k0?{line:D.head.line,ch:D.head.ch+b}:{line:D.head.line-1};C.push({anchor:N,head:N}); + }A.setSelections(C,k); + }oa(g,'moveSel');function y(A){ + var b=r.cmpPos(A.anchor,A.head)>0;return{anchor:new i(A.anchor.line,A.anchor.ch+(b?-1:1)),head:new i(A.head.line,A.head.ch+(b?1:-1))}; + }oa(y,'contractSelection');function w(A,b){ + var C=f(A);if(!C||A.getOption('disableInput'))return r.Pass;var x=o(C,'pairs'),k=x.indexOf(b);if(k==-1)return r.Pass;for(var P=o(C,'closeBefore'),D=o(C,'triples'),N=x.charAt(k+1)==b,I=A.listSelections(),V=k%2==0,G,B=0;B=0&&A.getRange(z,i(z.line,z.ch+3))==b+b+b?j='skipThree':j='skip';else if(N&&z.ch>1&&D.indexOf(b)>=0&&A.getRange(i(z.line,z.ch-2),z)==b+b){ + if(z.ch>2&&/\bstring/.test(A.getTokenTypeAt(i(z.line,z.ch-2))))return r.Pass;j='addFour'; + }else if(N){ + var K=z.ch==0?' ':A.getRange(i(z.line,z.ch-1),z);if(!r.isWordChar(J)&&K!=b&&!r.isWordChar(K))j='both';else return r.Pass; + }else if(V&&(J.length===0||/\s/.test(J)||P.indexOf(J)>-1))j='both';else return r.Pass;if(!G)G=j;else if(G!=j)return r.Pass; + }var ee=k%2?x.charAt(k-1):b,re=k%2?b:x.charAt(k+1);A.operation(function(){ + if(G=='skip')g(A,1);else if(G=='skipThree')g(A,3);else if(G=='surround'){ + for(var se=A.getSelections(),xe=0;xeFxe});function XZ(e,t){ + for(var r=0;rn[i]}); + } + } + }return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:'Module'})); +}var Rxe,Xm,Mxe,ZZ,Ixe,Fxe,LM=at(()=>{ + ir();Rxe=Object.defineProperty,Xm=(e,t)=>Rxe(e,'name',{value:t,configurable:!0});Xm(XZ,'_mergeNamespaces');Mxe={exports:{}};(function(e,t){ + (function(r){ + r(Kt()); + })(function(r){ + function n(i){ + return function(o,s){ + var l=s.line,c=o.getLine(l);function f(T){ + for(var S,A=s.ch,b=0;;){ + var C=A<=0?-1:c.lastIndexOf(T[0],A-1);if(C==-1){ + if(b==1)break;b=1,A=c.length;continue; + }if(b==1&&Ci.lastLine())return null;var y=i.getTokenAt(r.Pos(g,1));if(/\S/.test(y.string)||(y=i.getTokenAt(r.Pos(g,y.end+1))),y.type!='keyword'||y.string!='import')return null;for(var w=g,T=Math.min(i.lastLine(),g+10);w<=T;++w){ + var S=i.getLine(w),A=S.indexOf(';');if(A!=-1)return{startCh:y.end,end:r.Pos(w,A)}; + } + }Xm(s,'hasImport');var l=o.line,c=s(l),f;if(!c||s(l-1)||(f=s(l-2))&&f.end.line==l-1)return null;for(var m=c.end;;){ + var v=s(m.line+1);if(v==null)break;m=v.end; + }return{from:i.clipPos(r.Pos(l,c.startCh+1)),to:m}; + }),r.registerHelper('fold','include',function(i,o){ + function s(v){ + if(vi.lastLine())return null;var g=i.getTokenAt(r.Pos(v,1));if(/\S/.test(g.string)||(g=i.getTokenAt(r.Pos(v,g.end+1))),g.type=='meta'&&g.string.slice(0,8)=='#include')return g.start+8; + }Xm(s,'hasInclude');var l=o.line,c=s(l);if(c==null||s(l-1)!=null)return null;for(var f=l;;){ + var m=s(f+1);if(m==null)break;++f; + }return{from:r.Pos(l,c+1),to:i.clipPos(r.Pos(f))}; + }); + }); + })();ZZ=Mxe.exports,Ixe=_t(ZZ),Fxe=XZ({__proto__:null,default:Ixe},[ZZ]); +});var PM={};Ui(PM,{f:()=>Bxe});function _Z(e,t){ + for(var r=0;rn[i]}); + } + } + }return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:'Module'})); +}function $Z(){ + return JZ||(JZ=1,function(e,t){ + (function(r){ + r(Kt()); + })(function(r){ + function n(l,c,f,m){ + if(f&&f.call){ + var v=f;f=null; + }else var v=s(l,f,'rangeFinder');typeof c=='number'&&(c=r.Pos(c,0));var g=s(l,f,'minFoldSize');function y(A){ + var b=v(l,c);if(!b||b.to.line-b.from.linel.firstLine();)c=r.Pos(c.line-1,0),w=y(!1);if(!(!w||w.cleared||m==='unfold')){ + var T=i(l,f,w);r.on(T,'mousedown',function(A){ + S.clear(),r.e_preventDefault(A); + });var S=l.markText(w.from,w.to,{replacedWith:T,clearOnEnter:s(l,f,'clearOnEnter'),__isFold:!0});S.on('clear',function(A,b){ + r.signal(l,'unfold',l,A,b); + }),r.signal(l,'fold',l,w.from,w.to); + } + }$n(n,'doFold');function i(l,c,f){ + var m=s(l,c,'widget');if(typeof m=='function'&&(m=m(f.from,f.to)),typeof m=='string'){ + var v=document.createTextNode(m);m=document.createElement('span'),m.appendChild(v),m.className='CodeMirror-foldmarker'; + }else m&&(m=m.cloneNode(!0));return m; + }$n(i,'makeWidget'),r.newFoldFunction=function(l,c){ + return function(f,m){ + n(f,m,{rangeFinder:l,widget:c}); + }; + },r.defineExtension('foldCode',function(l,c,f){ + n(this,l,c,f); + }),r.defineExtension('isFolded',function(l){ + for(var c=this.findMarksAt(l),f=0;f{ + ir();qxe=Object.defineProperty,$n=(e,t)=>qxe(e,'name',{value:t,configurable:!0});$n(_Z,'_mergeNamespaces');jxe={exports:{}},Vxe={exports:{}};$n($Z,'requireFoldcode');(function(e,t){ + (function(r){ + r(Kt(),$Z()); + })(function(r){ + r.defineOption('foldGutter',!1,function(T,S,A){ + A&&A!=r.Init&&(T.clearGutter(T.state.foldGutter.options.gutter),T.state.foldGutter=null,T.off('gutterClick',v),T.off('changes',g),T.off('viewportChange',y),T.off('fold',w),T.off('unfold',w),T.off('swapDoc',g)),S&&(T.state.foldGutter=new i(o(S)),m(T),T.on('gutterClick',v),T.on('changes',g),T.on('viewportChange',y),T.on('fold',w),T.on('unfold',w),T.on('swapDoc',g)); + });var n=r.Pos;function i(T){ + this.options=T,this.from=this.to=0; + }$n(i,'State');function o(T){ + return T===!0&&(T={}),T.gutter==null&&(T.gutter='CodeMirror-foldgutter'),T.indicatorOpen==null&&(T.indicatorOpen='CodeMirror-foldgutter-open'),T.indicatorFolded==null&&(T.indicatorFolded='CodeMirror-foldgutter-folded'),T; + }$n(o,'parseOptions');function s(T,S){ + for(var A=T.findMarks(n(S,0),n(S+1,0)),b=0;b=x){ + if(D&&V&&D.test(V.className))return;I=l(b.indicatorOpen); + } + }!I&&!V||T.setGutterMarker(N,b.gutter,I); + }); + }$n(c,'updateFoldInfo');function f(T){ + return new RegExp('(^|\\s)'+T+'(?:$|\\s)\\s*'); + }$n(f,'classTest');function m(T){ + var S=T.getViewport(),A=T.state.foldGutter;A&&(T.operation(function(){ + c(T,S.from,S.to); + }),A.from=S.from,A.to=S.to); + }$n(m,'updateInViewport');function v(T,S,A){ + var b=T.state.foldGutter;if(b){ + var C=b.options;if(A==C.gutter){ + var x=s(T,S);x?x.clear():T.foldCode(n(S,0),C); + } + } + }$n(v,'onGutterClick');function g(T){ + var S=T.state.foldGutter;if(S){ + var A=S.options;S.from=S.to=0,clearTimeout(S.changeUpdate),S.changeUpdate=setTimeout(function(){ + m(T); + },A.foldOnChangeTimeSpan||600); + } + }$n(g,'onChange');function y(T){ + var S=T.state.foldGutter;if(S){ + var A=S.options;clearTimeout(S.changeUpdate),S.changeUpdate=setTimeout(function(){ + var b=T.getViewport();S.from==S.to||b.from-S.to>20||S.from-b.to>20?m(T):T.operation(function(){ + b.fromS.to&&(c(T,S.to,b.to),S.to=b.to); + }); + },A.updateViewportTimeSpan||400); + } + }$n(y,'onViewportChange');function w(T,S){ + var A=T.state.foldGutter;if(A){ + var b=S.line;b>=A.from&&bQxe});function tJ(e,t){ + for(var r=0;rn[i]}); + } + } + }return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:'Module'})); +}var Gxe,Jr,zxe,rJ,Hxe,Qxe,iJ=at(()=>{ + ir();Gxe=Object.defineProperty,Jr=(e,t)=>Gxe(e,'name',{value:t,configurable:!0});Jr(tJ,'_mergeNamespaces');zxe={exports:{}};(function(e,t){ + (function(r){ + r(Kt()); + })(function(r){ + var n='CodeMirror-lint-markers',i='CodeMirror-lint-line-';function o(D,N,I){ + var V=document.createElement('div');V.className='CodeMirror-lint-tooltip cm-s-'+D.options.theme,V.appendChild(I.cloneNode(!0)),D.state.lint.options.selfContain?D.getWrapperElement().appendChild(V):document.body.appendChild(V);function G(B){ + if(!V.parentNode)return r.off(document,'mousemove',G);V.style.top=Math.max(0,B.clientY-V.offsetHeight-5)+'px',V.style.left=B.clientX+5+'px'; + }return Jr(G,'position'),r.on(document,'mousemove',G),G(N),V.style.opacity!=null&&(V.style.opacity=1),V; + }Jr(o,'showTooltip');function s(D){ + D.parentNode&&D.parentNode.removeChild(D); + }Jr(s,'rm');function l(D){ + D.parentNode&&(D.style.opacity==null&&s(D),D.style.opacity=0,setTimeout(function(){ + s(D); + },600)); + }Jr(l,'hideTooltip');function c(D,N,I,V){ + var G=o(D,N,I);function B(){ + r.off(V,'mouseout',B),G&&(l(G),G=null); + }Jr(B,'hide');var U=setInterval(function(){ + if(G)for(var z=V;;z=z.parentNode){ + if(z&&z.nodeType==11&&(z=z.host),z==document.body)return;if(!z){ + B();break; + } + }if(!G)return clearInterval(U); + },400);r.on(V,'mouseout',B); + }Jr(c,'showTooltipFor');function f(D,N,I){ + this.marked=[],N instanceof Function&&(N={getAnnotations:N}),(!N||N===!0)&&(N={}),this.options={},this.linterOptions=N.options||{};for(var V in m)this.options[V]=m[V];for(var V in N)m.hasOwnProperty(V)?N[V]!=null&&(this.options[V]=N[V]):N.options||(this.linterOptions[V]=N[V]);this.timeout=null,this.hasGutter=I,this.onMouseOver=function(G){ + P(D,G); + },this.waitingFor=0; + }Jr(f,'LintState');var m={highlightLines:!1,tooltips:!0,delay:500,lintOnChange:!0,getAnnotations:null,async:!1,selfContain:null,formatAnnotation:null,onUpdateLinting:null};function v(D){ + var N=D.state.lint;N.hasGutter&&D.clearGutter(n),N.options.highlightLines&&g(D);for(var I=0;I-1?!1:z.push(se.message); + });for(var j=null,J=I.hasGutter&&document.createDocumentFragment(),K=0;K1,V.tooltips)),V.highlightLines&&D.addLineClass(B,'wrap',i+j); + } + }V.onUpdateLinting&&V.onUpdateLinting(N,G,D); + } + }Jr(C,'updateLinting');function x(D){ + var N=D.state.lint;N&&(clearTimeout(N.timeout),N.timeout=setTimeout(function(){ + b(D); + },N.options.delay)); + }Jr(x,'onChange');function k(D,N,I){ + for(var V=I.target||I.srcElement,G=document.createDocumentFragment(),B=0;BN);I++){ + var V=b.getLine(D++);k=k==null?V:k+` +`+V; + }P=P*2,C.lastIndex=x.ch;var G=C.exec(k);if(G){ + var B=k.slice(0,G.index).split(` +`),U=G[0].split(` +`),z=x.line+B.length-1,j=B[B.length-1].length;return{from:n(z,j),to:n(z+U.length-1,U.length==1?j+U[0].length:U[U.length-1].length),match:G}; + } + } + }ei(c,'searchRegexpForwardMultiline');function f(b,C,x){ + for(var k,P=0;P<=b.length;){ + C.lastIndex=P;var D=C.exec(b);if(!D)break;var N=D.index+D[0].length;if(N>b.length-x)break;(!k||N>k.index+k[0].length)&&(k=D),P=D.index+1; + }return k; + }ei(f,'lastMatchIn');function m(b,C,x){ + C=o(C,'g');for(var k=x.line,P=x.ch,D=b.firstLine();k>=D;k--,P=-1){ + var N=b.getLine(k),I=f(N,C,P<0?0:N.length-P);if(I)return{from:n(k,I.index),to:n(k,I.index+I[0].length),match:I}; + } + }ei(m,'searchRegexpBackward');function v(b,C,x){ + if(!s(C))return m(b,C,x);C=o(C,'gm');for(var k,P=1,D=b.getLine(x.line).length-x.ch,N=x.line,I=b.firstLine();N>=I;){ + for(var V=0;V=I;V++){ + var G=b.getLine(N--);k=k==null?G:G+` +`+k; + }P*=2;var B=f(k,C,D);if(B){ + var U=k.slice(0,B.index).split(` `),z=B[0].split(` -`),j=N+U.length,J=U[U.length-1].length;return{from:n(j,J),to:n(j+z.length-1,z.length==1?J+z[0].length:z[z.length-1].length),match:B}}}}ei(v,"searchRegexpBackwardMultiline");var g,y;String.prototype.normalize?(g=ei(function(b){return b.normalize("NFD").toLowerCase()},"doFold"),y=ei(function(b){return b.normalize("NFD")},"noFold")):(g=ei(function(b){return b.toLowerCase()},"doFold"),y=ei(function(b){return b},"noFold"));function w(b,C,x,k){if(b.length==C.length)return x;for(var P=0,D=x+Math.max(0,b.length-C.length);;){if(P==D)return P;var N=P+D>>1,I=k(b.slice(0,N)).length;if(I==x)return N;I>x?D=N:P=N+1}}ei(w,"adjustPos");function T(b,C,x,k){if(!C.length)return null;var P=k?g:y,D=P(C).split(/\r|\n\r?/);e:for(var N=x.line,I=x.ch,V=b.lastLine()+1-D.length;N<=V;N++,I=0){var G=b.getLine(N).slice(I),B=P(G);if(D.length==1){var U=B.indexOf(D[0]);if(U==-1)continue e;var x=w(G,B,U,P)+I;return{from:n(N,w(G,B,U,P)+I),to:n(N,w(G,B,U+D[0].length,P)+I)}}else{var z=B.length-D[0].length;if(B.slice(z)!=D[0])continue e;for(var j=1;j=V;N--,I=-1){var G=b.getLine(N);I>-1&&(G=G.slice(0,I));var B=P(G);if(D.length==1){var U=B.lastIndexOf(D[0]);if(U==-1)continue e;return{from:n(N,w(G,B,U,P)),to:n(N,w(G,B,U+D[0].length,P))}}else{var z=D[D.length-1];if(B.slice(0,z.length)!=z)continue e;for(var j=1,x=N-D.length+1;j(this.doc.getLine(C.line)||"").length&&(C.ch=0,C.line++)),r.cmpPos(C,this.doc.clipPos(C))!=0))return this.atOccurrence=!1;var x=this.matches(b,C);if(this.afterEmptyMatch=x&&r.cmpPos(x.from,x.to)==0,x)return this.pos=x,this.atOccurrence=!0,this.pos.match||!0;var k=n(b?this.doc.firstLine():this.doc.lastLine()+1,0);return this.pos={from:k,to:k},this.atOccurrence=!1},from:function(){if(this.atOccurrence)return this.pos.from},to:function(){if(this.atOccurrence)return this.pos.to},replace:function(b,C){if(this.atOccurrence){var x=r.splitLines(b);this.doc.replaceRange(x,this.pos.from,this.pos.to,C),this.pos.to=n(this.pos.from.line+x.length-1,x[x.length-1].length+(x.length==1?this.pos.from.ch:0))}}},r.defineExtension("getSearchCursor",function(b,C,x){return new A(this.doc,b,C,x)}),r.defineDocExtension("getSearchCursor",function(b,C,x){return new A(this,b,C,x)}),r.defineExtension("selectMatches",function(b,C){for(var x=[],k=this.getSearchCursor(b,this.getCursor("from"),C);k.findNext()&&!(r.cmpPos(k.to(),this.getCursor("to"))>0);)x.push({anchor:k.from(),head:k.to()});x.length&&this.setSelections(x,0)})})}()),Yxe.exports}var Wxe,ei,Yxe,oJ,kE=at(()=>{ir();Wxe=Object.defineProperty,ei=(e,t)=>Wxe(e,"name",{value:t,configurable:!0}),Yxe={exports:{}};ei(Qf,"requireSearchcursor")});var MM={};Ui(MM,{s:()=>Jxe});function aJ(e,t){for(var r=0;rn[i]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}var Kxe,Xxe,sJ,Zxe,Jxe,IM=at(()=>{ir();kE();Kxe=Object.defineProperty,Xxe=(e,t)=>Kxe(e,"name",{value:t,configurable:!0});Xxe(aJ,"_mergeNamespaces");sJ=Qf(),Zxe=_t(sJ),Jxe=aJ({__proto__:null,default:Zxe},[sJ])});var FM={};Ui(FM,{a:()=>Wf,d:()=>twe});function lJ(e,t){for(var r=0;rn[i]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}var _xe,Zm,$xe,Wf,ewe,twe,ky=at(()=>{ir();_xe=Object.defineProperty,Zm=(e,t)=>_xe(e,"name",{value:t,configurable:!0});Zm(lJ,"_mergeNamespaces");$xe={exports:{}};(function(e,t){(function(r){r(Kt())})(function(r){function n(o,s,l){var c=o.getWrapperElement(),f;return f=c.appendChild(document.createElement("div")),l?f.className="CodeMirror-dialog CodeMirror-dialog-bottom":f.className="CodeMirror-dialog CodeMirror-dialog-top",typeof s=="string"?f.innerHTML=s:f.appendChild(s),r.addClass(c,"dialog-opened"),f}Zm(n,"dialogDiv");function i(o,s){o.state.currentNotificationClose&&o.state.currentNotificationClose(),o.state.currentNotificationClose=s}Zm(i,"closeNotification"),r.defineExtension("openDialog",function(o,s,l){l||(l={}),i(this,null);var c=n(this,o,l.bottom),f=!1,m=this;function v(w){if(typeof w=="string")g.value=w;else{if(f)return;f=!0,r.rmClass(c.parentNode,"dialog-opened"),c.parentNode.removeChild(c),m.focus(),l.onClose&&l.onClose(c)}}Zm(v,"close");var g=c.getElementsByTagName("input")[0],y;return g?(g.focus(),l.value&&(g.value=l.value,l.selectValueOnOpen!==!1&&g.select()),l.onInput&&r.on(g,"input",function(w){l.onInput(w,g.value,v)}),l.onKeyUp&&r.on(g,"keyup",function(w){l.onKeyUp(w,g.value,v)}),r.on(g,"keydown",function(w){l&&l.onKeyDown&&l.onKeyDown(w,g.value,v)||((w.keyCode==27||l.closeOnEnter!==!1&&w.keyCode==13)&&(g.blur(),r.e_stop(w),v()),w.keyCode==13&&s(g.value,w))}),l.closeOnBlur!==!1&&r.on(c,"focusout",function(w){w.relatedTarget!==null&&v()})):(y=c.getElementsByTagName("button")[0])&&(r.on(y,"click",function(){v(),m.focus()}),l.closeOnBlur!==!1&&r.on(y,"blur",v),y.focus()),v}),r.defineExtension("openConfirm",function(o,s,l){i(this,null);var c=n(this,o,l&&l.bottom),f=c.getElementsByTagName("button"),m=!1,v=this,g=1;function y(){m||(m=!0,r.rmClass(c.parentNode,"dialog-opened"),c.parentNode.removeChild(c),v.focus())}Zm(y,"close"),f[0].focus();for(var w=0;wowe});function uJ(e,t){for(var r=0;rn[i]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}var rwe,OE,nwe,cJ,iwe,owe,jM=at(()=>{ir();ky();rwe=Object.defineProperty,OE=(e,t)=>rwe(e,"name",{value:t,configurable:!0});OE(uJ,"_mergeNamespaces");nwe={exports:{}};(function(e,t){(function(r){r(Kt(),Wf)})(function(r){r.defineOption("search",{bottom:!1});function n(s,l,c,f,m){s.openDialog?s.openDialog(l,m,{value:f,selectValueOnOpen:!0,bottom:s.options.search.bottom}):m(prompt(c,f))}OE(n,"dialog");function i(s){return s.phrase("Jump to line:")+' '+s.phrase("(Use line:column or scroll% syntax)")+""}OE(i,"getJumpDialog");function o(s,l){var c=Number(l);return/^[-+]/.test(l)?s.getCursor().line+c:c-1}OE(o,"interpretLine"),r.commands.jumpToLine=function(s){var l=s.getCursor();n(s,i(s),s.phrase("Jump to line:"),l.line+1+":"+l.ch,function(c){if(c){var f;if(f=/^\s*([\+\-]?\d+)\s*\:\s*(\d+)\s*$/.exec(c))s.setCursor(o(s,f[1]),Number(f[2]));else if(f=/^\s*([\+\-]?\d+(\.\d+)?)\%\s*/.exec(c)){var m=Math.round(s.lineCount()*Number(f[1])/100);/^[-+]/.test(f[1])&&(m=l.line+m+1),s.setCursor(m-1,l.ch)}else(f=/^\s*\:?\s*([\+\-]?\d+)\s*/.exec(c))&&s.setCursor(o(s,f[1]),l.ch)}})},r.keyMap.default["Alt-G"]="jumpToLine"})})();cJ=nwe.exports,iwe=_t(cJ),owe=uJ({__proto__:null,default:iwe},[cJ])});var VM={};Ui(VM,{s:()=>uwe});function fJ(e,t){for(var r=0;rn[i]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}var awe,Eo,swe,dJ,lwe,uwe,UM=at(()=>{ir();kE();NM();awe=Object.defineProperty,Eo=(e,t)=>awe(e,"name",{value:t,configurable:!0});Eo(fJ,"_mergeNamespaces");swe={exports:{}};(function(e,t){(function(r){r(Kt(),Qf(),Sy())})(function(r){var n=r.commands,i=r.Pos;function o(x,k,P){if(P<0&&k.ch==0)return x.clipPos(i(k.line-1));var D=x.getLine(k.line);if(P>0&&k.ch>=D.length)return x.clipPos(i(k.line+1,0));for(var N="start",I,V=k.ch,G=V,B=P<0?0:D.length,U=0;G!=B;G+=P,U++){var z=D.charAt(P<0?G-1:G),j=z!="_"&&r.isWordChar(z)?"w":"o";if(j=="w"&&z.toUpperCase()==z&&(j="W"),N=="start")j!="o"?(N="in",I=j):V=G+P;else if(N=="in"&&I!=j){if(I=="w"&&j=="W"&&P<0&&G--,I=="W"&&j=="w"&&P>0)if(G==V+1){I="w";continue}else G--;break}}return i(k.line,G)}Eo(o,"findPosSubword");function s(x,k){x.extendSelectionsBy(function(P){return x.display.shift||x.doc.extend||P.empty()?o(x.doc,P.head,k):k<0?P.from():P.to()})}Eo(s,"moveSubword"),n.goSubwordLeft=function(x){s(x,-1)},n.goSubwordRight=function(x){s(x,1)},n.scrollLineUp=function(x){var k=x.getScrollInfo();if(!x.somethingSelected()){var P=x.lineAtHeight(k.top+k.clientHeight,"local");x.getCursor().line>=P&&x.execCommand("goLineUp")}x.scrollTo(null,k.top-x.defaultTextHeight())},n.scrollLineDown=function(x){var k=x.getScrollInfo();if(!x.somethingSelected()){var P=x.lineAtHeight(k.top,"local")+1;x.getCursor().line<=P&&x.execCommand("goLineDown")}x.scrollTo(null,k.top+x.defaultTextHeight())},n.splitSelectionByLine=function(x){for(var k=x.listSelections(),P=[],D=0;DN.line&&V==I.line&&I.ch==0||P.push({anchor:V==N.line?N:i(V,0),head:V==I.line?I:i(V)});x.setSelections(P,0)},n.singleSelectionTop=function(x){var k=x.listSelections()[0];x.setSelection(k.anchor,k.head,{scroll:!1})},n.selectLine=function(x){for(var k=x.listSelections(),P=[],D=0;DD?P.push(G,B):P.length&&(P[P.length-1]=B),D=B}x.operation(function(){for(var U=0;Ux.lastLine()?x.replaceRange(` -`+J,i(x.lastLine()),null,"+swapLine"):x.replaceRange(J+` -`,i(j,0),null,"+swapLine")}x.setSelections(N),x.scrollIntoView()})},n.swapLineDown=function(x){if(x.isReadOnly())return r.Pass;for(var k=x.listSelections(),P=[],D=x.lastLine()+1,N=k.length-1;N>=0;N--){var I=k[N],V=I.to().line+1,G=I.from().line;I.to().ch==0&&!I.empty()&&V--,V=0;B-=2){var U=P[B],z=P[B+1],j=x.getLine(U);U==x.lastLine()?x.replaceRange("",i(U-1),i(U),"+swapLine"):x.replaceRange("",i(U,0),i(U+1,0),"+swapLine"),x.replaceRange(j+` -`,i(z,0),null,"+swapLine")}x.scrollIntoView()})},n.toggleCommentIndented=function(x){x.toggleComment({indent:!0})},n.joinLines=function(x){for(var k=x.listSelections(),P=[],D=0;D=0;I--){var V=P[D[I]];if(!(G&&r.cmpPos(V.head,G)>0)){var B=c(x,V.head);G=B.from,x.replaceRange(k(B.word),B.from,B.to)}}})}Eo(T,"modifyWordOrSelection"),n.smartBackspace=function(x){if(x.somethingSelected())return r.Pass;x.operation(function(){for(var k=x.listSelections(),P=x.getOption("indentUnit"),D=k.length-1;D>=0;D--){var N=k[D].head,I=x.getRange({line:N.line,ch:0},N),V=r.countColumn(I,null,x.getOption("tabSize")),G=x.findPosH(N,-1,"char",!1);if(I&&!/\S/.test(I)&&V%P==0){var B=new i(N.line,r.findColumn(I,V-P,P));B.ch!=N.ch&&(G=B)}x.replaceRange("",G,N,"+delete")}})},n.delLineRight=function(x){x.operation(function(){for(var k=x.listSelections(),P=k.length-1;P>=0;P--)x.replaceRange("",k[P].anchor,i(k[P].to().line),"+delete");x.scrollIntoView()})},n.upcaseAtCursor=function(x){T(x,function(k){return k.toUpperCase()})},n.downcaseAtCursor=function(x){T(x,function(k){return k.toLowerCase()})},n.setSublimeMark=function(x){x.state.sublimeMark&&x.state.sublimeMark.clear(),x.state.sublimeMark=x.setBookmark(x.getCursor())},n.selectToSublimeMark=function(x){var k=x.state.sublimeMark&&x.state.sublimeMark.find();k&&x.setSelection(x.getCursor(),k)},n.deleteToSublimeMark=function(x){var k=x.state.sublimeMark&&x.state.sublimeMark.find();if(k){var P=x.getCursor(),D=k;if(r.cmpPos(P,D)>0){var N=D;D=P,P=N}x.state.sublimeKilled=x.getRange(P,D),x.replaceRange("",P,D)}},n.swapWithSublimeMark=function(x){var k=x.state.sublimeMark&&x.state.sublimeMark.find();k&&(x.state.sublimeMark.clear(),x.state.sublimeMark=x.setBookmark(x.getCursor()),x.setCursor(k))},n.sublimeYank=function(x){x.state.sublimeKilled!=null&&x.replaceSelection(x.state.sublimeKilled,null,"paste")},n.showInCenter=function(x){var k=x.cursorCoords(null,"local");x.scrollTo(null,(k.top+k.bottom)/2-x.getScrollInfo().clientHeight/2)};function S(x){var k=x.getCursor("from"),P=x.getCursor("to");if(r.cmpPos(k,P)==0){var D=c(x,k);if(!D.word)return;k=D.from,P=D.to}return{from:k,to:P,query:x.getRange(k,P),word:D}}Eo(S,"getTarget");function A(x,k){var P=S(x);if(P){var D=P.query,N=x.getSearchCursor(D,k?P.to:P.from);(k?N.findNext():N.findPrevious())?x.setSelection(N.from(),N.to()):(N=x.getSearchCursor(D,k?i(x.firstLine(),0):x.clipPos(i(x.lastLine()))),(k?N.findNext():N.findPrevious())?x.setSelection(N.from(),N.to()):P.word&&x.setSelection(P.from,P.to))}}Eo(A,"findAndGoTo"),n.findUnder=function(x){A(x,!0)},n.findUnderPrevious=function(x){A(x,!1)},n.findAllUnder=function(x){var k=S(x);if(k){for(var P=x.getSearchCursor(k.query),D=[],N=-1;P.findNext();)D.push({anchor:P.from(),head:P.to()}),P.from().line<=k.from.line&&P.from().ch<=k.from.ch&&N++;x.setSelections(D,N)}};var b=r.keyMap;b.macSublime={"Cmd-Left":"goLineStartSmart","Shift-Tab":"indentLess","Shift-Ctrl-K":"deleteLine","Alt-Q":"wrapLines","Ctrl-Left":"goSubwordLeft","Ctrl-Right":"goSubwordRight","Ctrl-Alt-Up":"scrollLineUp","Ctrl-Alt-Down":"scrollLineDown","Cmd-L":"selectLine","Shift-Cmd-L":"splitSelectionByLine",Esc:"singleSelectionTop","Cmd-Enter":"insertLineAfter","Shift-Cmd-Enter":"insertLineBefore","Cmd-D":"selectNextOccurrence","Shift-Cmd-Space":"selectScope","Shift-Cmd-M":"selectBetweenBrackets","Cmd-M":"goToBracket","Cmd-Ctrl-Up":"swapLineUp","Cmd-Ctrl-Down":"swapLineDown","Cmd-/":"toggleCommentIndented","Cmd-J":"joinLines","Shift-Cmd-D":"duplicateLine",F5:"sortLines","Shift-F5":"reverseSortLines","Cmd-F5":"sortLinesInsensitive","Shift-Cmd-F5":"reverseSortLinesInsensitive",F2:"nextBookmark","Shift-F2":"prevBookmark","Cmd-F2":"toggleBookmark","Shift-Cmd-F2":"clearBookmarks","Alt-F2":"selectBookmarks",Backspace:"smartBackspace","Cmd-K Cmd-D":"skipAndSelectNextOccurrence","Cmd-K Cmd-K":"delLineRight","Cmd-K Cmd-U":"upcaseAtCursor","Cmd-K Cmd-L":"downcaseAtCursor","Cmd-K Cmd-Space":"setSublimeMark","Cmd-K Cmd-A":"selectToSublimeMark","Cmd-K Cmd-W":"deleteToSublimeMark","Cmd-K Cmd-X":"swapWithSublimeMark","Cmd-K Cmd-Y":"sublimeYank","Cmd-K Cmd-C":"showInCenter","Cmd-K Cmd-G":"clearBookmarks","Cmd-K Cmd-Backspace":"delLineLeft","Cmd-K Cmd-1":"foldAll","Cmd-K Cmd-0":"unfoldAll","Cmd-K Cmd-J":"unfoldAll","Ctrl-Shift-Up":"addCursorToPrevLine","Ctrl-Shift-Down":"addCursorToNextLine","Cmd-F3":"findUnder","Shift-Cmd-F3":"findUnderPrevious","Alt-F3":"findAllUnder","Shift-Cmd-[":"fold","Shift-Cmd-]":"unfold","Cmd-I":"findIncremental","Shift-Cmd-I":"findIncrementalReverse","Cmd-H":"replace",F3:"findNext","Shift-F3":"findPrev",fallthrough:"macDefault"},r.normalizeKeyMap(b.macSublime),b.pcSublime={"Shift-Tab":"indentLess","Shift-Ctrl-K":"deleteLine","Alt-Q":"wrapLines","Ctrl-T":"transposeChars","Alt-Left":"goSubwordLeft","Alt-Right":"goSubwordRight","Ctrl-Up":"scrollLineUp","Ctrl-Down":"scrollLineDown","Ctrl-L":"selectLine","Shift-Ctrl-L":"splitSelectionByLine",Esc:"singleSelectionTop","Ctrl-Enter":"insertLineAfter","Shift-Ctrl-Enter":"insertLineBefore","Ctrl-D":"selectNextOccurrence","Shift-Ctrl-Space":"selectScope","Shift-Ctrl-M":"selectBetweenBrackets","Ctrl-M":"goToBracket","Shift-Ctrl-Up":"swapLineUp","Shift-Ctrl-Down":"swapLineDown","Ctrl-/":"toggleCommentIndented","Ctrl-J":"joinLines","Shift-Ctrl-D":"duplicateLine",F9:"sortLines","Shift-F9":"reverseSortLines","Ctrl-F9":"sortLinesInsensitive","Shift-Ctrl-F9":"reverseSortLinesInsensitive",F2:"nextBookmark","Shift-F2":"prevBookmark","Ctrl-F2":"toggleBookmark","Shift-Ctrl-F2":"clearBookmarks","Alt-F2":"selectBookmarks",Backspace:"smartBackspace","Ctrl-K Ctrl-D":"skipAndSelectNextOccurrence","Ctrl-K Ctrl-K":"delLineRight","Ctrl-K Ctrl-U":"upcaseAtCursor","Ctrl-K Ctrl-L":"downcaseAtCursor","Ctrl-K Ctrl-Space":"setSublimeMark","Ctrl-K Ctrl-A":"selectToSublimeMark","Ctrl-K Ctrl-W":"deleteToSublimeMark","Ctrl-K Ctrl-X":"swapWithSublimeMark","Ctrl-K Ctrl-Y":"sublimeYank","Ctrl-K Ctrl-C":"showInCenter","Ctrl-K Ctrl-G":"clearBookmarks","Ctrl-K Ctrl-Backspace":"delLineLeft","Ctrl-K Ctrl-1":"foldAll","Ctrl-K Ctrl-0":"unfoldAll","Ctrl-K Ctrl-J":"unfoldAll","Ctrl-Alt-Up":"addCursorToPrevLine","Ctrl-Alt-Down":"addCursorToNextLine","Ctrl-F3":"findUnder","Shift-Ctrl-F3":"findUnderPrevious","Alt-F3":"findAllUnder","Shift-Ctrl-[":"fold","Shift-Ctrl-]":"unfold","Ctrl-I":"findIncremental","Shift-Ctrl-I":"findIncrementalReverse","Ctrl-H":"replace",F3:"findNext","Shift-F3":"findPrev",fallthrough:"pcDefault"},r.normalizeKeyMap(b.pcSublime);var C=b.default==b.macDefault;b.sublime=C?b.macSublime:b.pcSublime})})();dJ=swe.exports,lwe=_t(dJ),uwe=fJ({__proto__:null,default:lwe},[dJ])});var hJ={};Ui(hJ,{j:()=>pwe});function pJ(e,t){for(var r=0;rn[i]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}var cwe,Ce,fwe,mJ,dwe,pwe,vJ=at(()=>{ir();cwe=Object.defineProperty,Ce=(e,t)=>cwe(e,"name",{value:t,configurable:!0});Ce(pJ,"_mergeNamespaces");fwe={exports:{}};(function(e,t){(function(r){r(Kt())})(function(r){r.defineMode("javascript",function(n,i){var o=n.indentUnit,s=i.statementIndent,l=i.jsonld,c=i.json||l,f=i.trackScope!==!1,m=i.typescript,v=i.wordCharacters||/[\w$\xa1-\uffff]/,g=function(){function q(Sn){return{type:Sn,style:"keyword"}}Ce(q,"kw");var W=q("keyword a"),ce=q("keyword b"),we=q("keyword c"),ct=q("keyword d"),kt=q("operator"),Ve={type:"atom",style:"atom"};return{if:q("if"),while:W,with:W,else:ce,do:ce,try:ce,finally:ce,return:ct,break:ct,continue:ct,new:q("new"),delete:we,void:we,throw:we,debugger:q("debugger"),var:q("var"),const:q("var"),let:q("var"),function:q("function"),catch:q("catch"),for:q("for"),switch:q("switch"),case:q("case"),default:q("default"),in:kt,typeof:kt,instanceof:kt,true:Ve,false:Ve,null:Ve,undefined:Ve,NaN:Ve,Infinity:Ve,this:q("this"),class:q("class"),super:q("atom"),yield:we,export:q("export"),import:q("import"),extends:we,await:we}}(),y=/[+\-*&%=<>!?|~^@]/,w=/^@(context|id|value|language|type|container|list|set|reverse|index|base|vocab|graph)"/;function T(q){for(var W=!1,ce,we=!1;(ce=q.next())!=null;){if(!W){if(ce=="/"&&!we)return;ce=="["?we=!0:we&&ce=="]"&&(we=!1)}W=!W&&ce=="\\"}}Ce(T,"readRegexp");var S,A;function b(q,W,ce){return S=q,A=ce,W}Ce(b,"ret");function C(q,W){var ce=q.next();if(ce=='"'||ce=="'")return W.tokenize=x(ce),W.tokenize(q,W);if(ce=="."&&q.match(/^\d[\d_]*(?:[eE][+\-]?[\d_]+)?/))return b("number","number");if(ce=="."&&q.match(".."))return b("spread","meta");if(/[\[\]{}\(\),;\:\.]/.test(ce))return b(ce);if(ce=="="&&q.eat(">"))return b("=>","operator");if(ce=="0"&&q.match(/^(?:x[\dA-Fa-f_]+|o[0-7_]+|b[01_]+)n?/))return b("number","number");if(/\d/.test(ce))return q.match(/^[\d_]*(?:n|(?:\.[\d_]*)?(?:[eE][+\-]?[\d_]+)?)?/),b("number","number");if(ce=="/")return q.eat("*")?(W.tokenize=k,k(q,W)):q.eat("/")?(q.skipToEnd(),b("comment","comment")):Ae(q,W,1)?(T(q),q.match(/^\b(([gimyus])(?![gimyus]*\2))+\b/),b("regexp","string-2")):(q.eat("="),b("operator","operator",q.current()));if(ce=="`")return W.tokenize=P,P(q,W);if(ce=="#"&&q.peek()=="!")return q.skipToEnd(),b("meta","meta");if(ce=="#"&&q.eatWhile(v))return b("variable","property");if(ce=="<"&&q.match("!--")||ce=="-"&&q.match("->")&&!/\S/.test(q.string.slice(0,q.start)))return q.skipToEnd(),b("comment","comment");if(y.test(ce))return(ce!=">"||!W.lexical||W.lexical.type!=">")&&(q.eat("=")?(ce=="!"||ce=="=")&&q.eat("="):/[<>*+\-|&?]/.test(ce)&&(q.eat(ce),ce==">"&&q.eat(ce))),ce=="?"&&q.eat(".")?b("."):b("operator","operator",q.current());if(v.test(ce)){q.eatWhile(v);var we=q.current();if(W.lastType!="."){if(g.propertyIsEnumerable(we)){var ct=g[we];return b(ct.type,ct.style,we)}if(we=="async"&&q.match(/^(\s|\/\*([^*]|\*(?!\/))*?\*\/)*[\[\(\w]/,!1))return b("async","keyword",we)}return b("variable","variable",we)}}Ce(C,"tokenBase");function x(q){return function(W,ce){var we=!1,ct;if(l&&W.peek()=="@"&&W.match(w))return ce.tokenize=C,b("jsonld-keyword","meta");for(;(ct=W.next())!=null&&!(ct==q&&!we);)we=!we&&ct=="\\";return we||(ce.tokenize=C),b("string","string")}}Ce(x,"tokenString");function k(q,W){for(var ce=!1,we;we=q.next();){if(we=="/"&&ce){W.tokenize=C;break}ce=we=="*"}return b("comment","comment")}Ce(k,"tokenComment");function P(q,W){for(var ce=!1,we;(we=q.next())!=null;){if(!ce&&(we=="`"||we=="$"&&q.eat("{"))){W.tokenize=C;break}ce=!ce&&we=="\\"}return b("quasi","string-2",q.current())}Ce(P,"tokenQuasi");var D="([{}])";function N(q,W){W.fatArrowAt&&(W.fatArrowAt=null);var ce=q.string.indexOf("=>",q.start);if(!(ce<0)){if(m){var we=/:\s*(?:\w+(?:<[^>]*>|\[\])?|\{[^}]*\})\s*$/.exec(q.string.slice(q.start,ce));we&&(ce=we.index)}for(var ct=0,kt=!1,Ve=ce-1;Ve>=0;--Ve){var Sn=q.string.charAt(Ve),Vi=D.indexOf(Sn);if(Vi>=0&&Vi<3){if(!ct){++Ve;break}if(--ct==0){Sn=="("&&(kt=!0);break}}else if(Vi>=3&&Vi<6)++ct;else if(v.test(Sn))kt=!0;else if(/["'\/`]/.test(Sn))for(;;--Ve){if(Ve==0)return;var ld=q.string.charAt(Ve-1);if(ld==Sn&&q.string.charAt(Ve-2)!="\\"){Ve--;break}}else if(kt&&!ct){++Ve;break}}kt&&!ct&&(W.fatArrowAt=Ve)}}Ce(N,"findFatArrow");var I={atom:!0,number:!0,variable:!0,string:!0,regexp:!0,this:!0,import:!0,"jsonld-keyword":!0};function V(q,W,ce,we,ct,kt){this.indented=q,this.column=W,this.type=ce,this.prev=ct,this.info=kt,we!=null&&(this.align=we)}Ce(V,"JSLexical");function G(q,W){if(!f)return!1;for(var ce=q.localVars;ce;ce=ce.next)if(ce.name==W)return!0;for(var we=q.context;we;we=we.prev)for(var ce=we.vars;ce;ce=ce.next)if(ce.name==W)return!0}Ce(G,"inScope");function B(q,W,ce,we,ct){var kt=q.cc;for(U.state=q,U.stream=ct,U.marked=null,U.cc=kt,U.style=W,q.lexical.hasOwnProperty("align")||(q.lexical.align=!0);;){var Ve=kt.length?kt.pop():c?Ue:He;if(Ve(ce,we)){for(;kt.length&&kt[kt.length-1].lex;)kt.pop()();return U.marked?U.marked:ce=="variable"&&G(q,we)?"variable-2":W}}}Ce(B,"parseJS");var U={state:null,column:null,marked:null,cc:null};function z(){for(var q=arguments.length-1;q>=0;q--)U.cc.push(arguments[q])}Ce(z,"pass");function j(){return z.apply(null,arguments),!0}Ce(j,"cont");function J(q,W){for(var ce=W;ce;ce=ce.next)if(ce.name==q)return!0;return!1}Ce(J,"inList");function K(q){var W=U.state;if(U.marked="def",!!f){if(W.context){if(W.lexical.info=="var"&&W.context&&W.context.block){var ce=ee(q,W.context);if(ce!=null){W.context=ce;return}}else if(!J(q,W.localVars)){W.localVars=new xe(q,W.localVars);return}}i.globalVars&&!J(q,W.globalVars)&&(W.globalVars=new xe(q,W.globalVars))}}Ce(K,"register");function ee(q,W){if(W)if(W.block){var ce=ee(q,W.prev);return ce?ce==W.prev?W:new se(ce,W.vars,!0):null}else return J(q,W.vars)?W:new se(W.prev,new xe(q,W.vars),!1);else return null}Ce(ee,"registerVarScoped");function re(q){return q=="public"||q=="private"||q=="protected"||q=="abstract"||q=="readonly"}Ce(re,"isModifier");function se(q,W,ce){this.prev=q,this.vars=W,this.block=ce}Ce(se,"Context");function xe(q,W){this.name=q,this.next=W}Ce(xe,"Var");var Re=new xe("this",new xe("arguments",null));function Se(){U.state.context=new se(U.state.context,U.state.localVars,!1),U.state.localVars=Re}Ce(Se,"pushcontext");function ie(){U.state.context=new se(U.state.context,U.state.localVars,!0),U.state.localVars=null}Ce(ie,"pushblockcontext"),Se.lex=ie.lex=!0;function ye(){U.state.localVars=U.state.context.vars,U.state.context=U.state.context.prev}Ce(ye,"popcontext"),ye.lex=!0;function me(q,W){var ce=Ce(function(){var we=U.state,ct=we.indented;if(we.lexical.type=="stat")ct=we.lexical.indented;else for(var kt=we.lexical;kt&&kt.type==")"&&kt.align;kt=kt.prev)ct=kt.indented;we.lexical=new V(ct,U.stream.column(),q,null,we.lexical,W)},"result");return ce.lex=!0,ce}Ce(me,"pushlex");function Oe(){var q=U.state;q.lexical.prev&&(q.lexical.type==")"&&(q.indented=q.lexical.indented),q.lexical=q.lexical.prev)}Ce(Oe,"poplex"),Oe.lex=!0;function Ge(q){function W(ce){return ce==q?j():q==";"||ce=="}"||ce==")"||ce=="]"?z():j(W)}return Ce(W,"exp"),W}Ce(Ge,"expect");function He(q,W){return q=="var"?j(me("vardef",W),rd,Ge(";"),Oe):q=="keyword a"?j(me("form"),he,He,Oe):q=="keyword b"?j(me("form"),He,Oe):q=="keyword d"?U.stream.match(/^\s*$/,!1)?j():j(me("stat"),pe,Ge(";"),Oe):q=="debugger"?j(Ge(";")):q=="{"?j(me("}"),ie,ri,Oe,ye):q==";"?j():q=="if"?(U.state.lexical.info=="else"&&U.state.cc[U.state.cc.length-1]==Oe&&U.state.cc.pop()(),j(me("form"),he,He,Oe,oh)):q=="function"?j(ro):q=="for"?j(me("form"),ie,ah,He,ye,Oe):q=="class"||m&&W=="interface"?(U.marked="keyword",j(me("form",q=="class"?q:W),Ul,Oe)):q=="variable"?m&&W=="declare"?(U.marked="keyword",j(He)):m&&(W=="module"||W=="enum"||W=="type")&&U.stream.match(/^\s*\w/,!1)?(U.marked="keyword",W=="enum"?j(Lo):W=="type"?j(sd,Ge("operator"),ut,Ge(";")):j(me("form"),ni,Ge("{"),me("}"),ri,Oe,Oe)):m&&W=="namespace"?(U.marked="keyword",j(me("form"),Ue,He,Oe)):m&&W=="abstract"?(U.marked="keyword",j(He)):j(me("stat"),Vs):q=="switch"?j(me("form"),he,Ge("{"),me("}","switch"),ie,ri,Oe,Oe,ye):q=="case"?j(Ue,Ge(":")):q=="default"?j(Ge(":")):q=="catch"?j(me("form"),Se,dr,He,Oe,ye):q=="export"?j(me("stat"),oc,Oe):q=="import"?j(me("stat"),xr,Oe):q=="async"?j(He):W=="@"?j(Ue,He):z(me("stat"),Ue,Ge(";"),Oe)}Ce(He,"statement");function dr(q){if(q=="(")return j(ca,Ge(")"))}Ce(dr,"maybeCatchBinding");function Ue(q,W){return Fe(q,W,!1)}Ce(Ue,"expression");function bt(q,W){return Fe(q,W,!0)}Ce(bt,"expressionNoComma");function he(q){return q!="("?z():j(me(")"),pe,Ge(")"),Oe)}Ce(he,"parenExpr");function Fe(q,W,ce){if(U.state.fatArrowAt==U.stream.start){var we=ce?Or:wt;if(q=="(")return j(Se,me(")"),pr(ca,")"),Oe,Ge("=>"),we,ye);if(q=="variable")return z(Se,ni,Ge("=>"),we,ye)}var ct=ce?st:Me;return I.hasOwnProperty(q)?j(ct):q=="function"?j(ro,ct):q=="class"||m&&W=="interface"?(U.marked="keyword",j(me("form"),Vl,Oe)):q=="keyword c"||q=="async"?j(ce?bt:Ue):q=="("?j(me(")"),pe,Ge(")"),Oe,ct):q=="operator"||q=="spread"?j(ce?bt:Ue):q=="["?j(me("]"),Pt,Oe,ct):q=="{"?Il(xi,"}",null,ct):q=="quasi"?z(nt,ct):q=="new"?j(ua(ce)):j()}Ce(Fe,"expressionInner");function pe(q){return q.match(/[;\}\)\],]/)?z():z(Ue)}Ce(pe,"maybeexpression");function Me(q,W){return q==","?j(pe):st(q,W,!1)}Ce(Me,"maybeoperatorComma");function st(q,W,ce){var we=ce==!1?Me:st,ct=ce==!1?Ue:bt;if(q=="=>")return j(Se,ce?Or:wt,ye);if(q=="operator")return/\+\+|--/.test(W)||m&&W=="!"?j(we):m&&W=="<"&&U.stream.match(/^([^<>]|<[^<>]*>)*>\s*\(/,!1)?j(me(">"),pr(ut,">"),Oe,we):W=="?"?j(Ue,Ge(":"),ct):j(ct);if(q=="quasi")return z(nt,we);if(q!=";"){if(q=="(")return Il(bt,")","call",we);if(q==".")return j(Ml,we);if(q=="[")return j(me("]"),pe,Ge("]"),Oe,we);if(m&&W=="as")return U.marked="keyword",j(ut,we);if(q=="regexp")return U.state.lastType=U.marked="operator",U.stream.backUp(U.stream.pos-U.stream.start-1),j(ct)}}Ce(st,"maybeoperatorNoComma");function nt(q,W){return q!="quasi"?z():W.slice(W.length-2)!="${"?j(nt):j(pe,lt)}Ce(nt,"quasi");function lt(q){if(q=="}")return U.marked="string-2",U.state.tokenize=P,j(nt)}Ce(lt,"continueQuasi");function wt(q){return N(U.stream,U.state),z(q=="{"?He:Ue)}Ce(wt,"arrowBody");function Or(q){return N(U.stream,U.state),z(q=="{"?He:bt)}Ce(Or,"arrowBodyNoComma");function ua(q){return function(W){return W=="."?j(q?nc:Rl):W=="variable"&&m?j(Us,q?st:Me):z(q?bt:Ue)}}Ce(ua,"maybeTarget");function Rl(q,W){if(W=="target")return U.marked="keyword",j(Me)}Ce(Rl,"target");function nc(q,W){if(W=="target")return U.marked="keyword",j(st)}Ce(nc,"targetNoComma");function Vs(q){return q==":"?j(Oe,He):z(Me,Ge(";"),Oe)}Ce(Vs,"maybelabel");function Ml(q){if(q=="variable")return U.marked="property",j()}Ce(Ml,"property");function xi(q,W){if(q=="async")return U.marked="property",j(xi);if(q=="variable"||U.style=="keyword"){if(U.marked="property",W=="get"||W=="set")return j(ic);var ce;return m&&U.state.fatArrowAt==U.stream.start&&(ce=U.stream.match(/^\s*:\s*/,!1))&&(U.state.fatArrowAt=U.stream.pos+ce[0].length),j(tn)}else{if(q=="number"||q=="string")return U.marked=l?"property":U.style+" property",j(tn);if(q=="jsonld-keyword")return j(tn);if(m&&re(W))return U.marked="keyword",j(xi);if(q=="[")return j(Ue,Ya,Ge("]"),tn);if(q=="spread")return j(bt,tn);if(W=="*")return U.marked="keyword",j(xi);if(q==":")return z(tn)}}Ce(xi,"objprop");function ic(q){return q!="variable"?z(tn):(U.marked="property",j(ro))}Ce(ic,"getterSetter");function tn(q){if(q==":")return j(bt);if(q=="(")return z(ro)}Ce(tn,"afterprop");function pr(q,W,ce){function we(ct,kt){if(ce?ce.indexOf(ct)>-1:ct==","){var Ve=U.state.lexical;return Ve.info=="call"&&(Ve.pos=(Ve.pos||0)+1),j(function(Sn,Vi){return Sn==W||Vi==W?z():z(q)},we)}return ct==W||kt==W?j():ce&&ce.indexOf(";")>-1?z(q):j(Ge(W))}return Ce(we,"proceed"),function(ct,kt){return ct==W||kt==W?j():z(q,we)}}Ce(pr,"commasep");function Il(q,W,ce){for(var we=3;we"),ut);if(q=="quasi")return z(ko,wi)}Ce(ut,"typeexpr");function Nr(q){if(q=="=>")return j(ut)}Ce(Nr,"maybeReturnType");function ql(q){return q.match(/[\}\)\]]/)?j():q==","||q==";"?j(ql):z(rn,ql)}Ce(ql,"typeprops");function rn(q,W){if(q=="variable"||U.style=="keyword")return U.marked="property",j(rn);if(W=="?"||q=="number"||q=="string")return j(rn);if(q==":")return j(ut);if(q=="[")return j(Ge("variable"),rt,Ge("]"),rn);if(q=="(")return z(qi,rn);if(!q.match(/[;\}\)\],]/))return j()}Ce(rn,"typeprop");function ko(q,W){return q!="quasi"?z():W.slice(W.length-2)!="${"?j(ko):j(ut,mn)}Ce(ko,"quasiType");function mn(q){if(q=="}")return U.marked="string-2",U.state.tokenize=P,j(ko)}Ce(mn,"continueQuasiType");function jl(q,W){return q=="variable"&&U.stream.match(/^\s*[?:]/,!1)||W=="?"?j(jl):q==":"?j(ut):q=="spread"?j(jl):z(ut)}Ce(jl,"typearg");function wi(q,W){if(W=="<")return j(me(">"),pr(ut,">"),Oe,wi);if(W=="|"||q=="."||W=="&")return j(ut);if(q=="[")return j(ut,Ge("]"),wi);if(W=="extends"||W=="implements")return U.marked="keyword",j(ut);if(W=="?")return j(ut,Ge(":"),ut)}Ce(wi,"afterType");function Us(q,W){if(W=="<")return j(me(">"),pr(ut,">"),Oe,wi)}Ce(Us,"maybeTypeArgs");function Ka(){return z(ut,td)}Ce(Ka,"typeparam");function td(q,W){if(W=="=")return j(ut)}Ce(td,"maybeTypeDefault");function rd(q,W){return W=="enum"?(U.marked="keyword",j(Lo)):z(ni,Ya,Oo,od)}Ce(rd,"vardef");function ni(q,W){if(m&&re(W))return U.marked="keyword",j(ni);if(q=="variable")return K(W),j();if(q=="spread")return j(ni);if(q=="[")return Il(id,"]");if(q=="{")return Il(nd,"}")}Ce(ni,"pattern");function nd(q,W){return q=="variable"&&!U.stream.match(/^\s*:/,!1)?(K(W),j(Oo)):(q=="variable"&&(U.marked="property"),q=="spread"?j(ni):q=="}"?z():q=="["?j(Ue,Ge("]"),Ge(":"),nd):j(Ge(":"),ni,Oo))}Ce(nd,"proppattern");function id(){return z(ni,Oo)}Ce(id,"eltpattern");function Oo(q,W){if(W=="=")return j(bt)}Ce(Oo,"maybeAssign");function od(q){if(q==",")return j(rd)}Ce(od,"vardefCont");function oh(q,W){if(q=="keyword b"&&W=="else")return j(me("form","else"),He,Oe)}Ce(oh,"maybeelse");function ah(q,W){if(W=="await")return j(ah);if(q=="(")return j(me(")"),ad,Oe)}Ce(ah,"forspec");function ad(q){return q=="var"?j(rd,Xa):q=="variable"?j(Xa):z(Xa)}Ce(ad,"forspec1");function Xa(q,W){return q==")"?j():q==";"?j(Xa):W=="in"||W=="of"?(U.marked="keyword",j(Ue,Xa)):z(Ue,Xa)}Ce(Xa,"forspec2");function ro(q,W){if(W=="*")return U.marked="keyword",j(ro);if(q=="variable")return K(W),j(ro);if(q=="(")return j(Se,me(")"),pr(ca,")"),Oe,Fl,He,ye);if(m&&W=="<")return j(me(">"),pr(Ka,">"),Oe,ro)}Ce(ro,"functiondef");function qi(q,W){if(W=="*")return U.marked="keyword",j(qi);if(q=="variable")return K(W),j(qi);if(q=="(")return j(Se,me(")"),pr(ca,")"),Oe,Fl,ye);if(m&&W=="<")return j(me(">"),pr(Ka,">"),Oe,qi)}Ce(qi,"functiondecl");function sd(q,W){if(q=="keyword"||q=="variable")return U.marked="type",j(sd);if(W=="<")return j(me(">"),pr(Ka,">"),Oe)}Ce(sd,"typename");function ca(q,W){return W=="@"&&j(Ue,ca),q=="spread"?j(ca):m&&re(W)?(U.marked="keyword",j(ca)):m&&q=="this"?j(Ya,Oo):z(ni,Ya,Oo)}Ce(ca,"funarg");function Vl(q,W){return q=="variable"?Ul(q,W):No(q,W)}Ce(Vl,"classExpression");function Ul(q,W){if(q=="variable")return K(W),j(No)}Ce(Ul,"className");function No(q,W){if(W=="<")return j(me(">"),pr(Ka,">"),Oe,No);if(W=="extends"||W=="implements"||m&&q==",")return W=="implements"&&(U.marked="keyword"),j(m?ut:Ue,No);if(q=="{")return j(me("}"),no,Oe)}Ce(No,"classNameAfter");function no(q,W){if(q=="async"||q=="variable"&&(W=="static"||W=="get"||W=="set"||m&&re(W))&&U.stream.match(/^\s+[\w$\xa1-\uffff]/,!1))return U.marked="keyword",j(no);if(q=="variable"||U.style=="keyword")return U.marked="property",j(ji,no);if(q=="number"||q=="string")return j(ji,no);if(q=="[")return j(Ue,Ya,Ge("]"),ji,no);if(W=="*")return U.marked="keyword",j(no);if(m&&q=="(")return z(qi,no);if(q==";"||q==",")return j(no);if(q=="}")return j();if(W=="@")return j(Ue,no)}Ce(no,"classBody");function ji(q,W){if(W=="!"||W=="?")return j(ji);if(q==":")return j(ut,Oo);if(W=="=")return j(bt);var ce=U.state.lexical.prev,we=ce&&ce.info=="interface";return z(we?qi:ro)}Ce(ji,"classfield");function oc(q,W){return W=="*"?(U.marked="keyword",j(ii,Ge(";"))):W=="default"?(U.marked="keyword",j(Ue,Ge(";"))):q=="{"?j(pr(ac,"}"),ii,Ge(";")):z(He)}Ce(oc,"afterExport");function ac(q,W){if(W=="as")return U.marked="keyword",j(Ge("variable"));if(q=="variable")return z(bt,ac)}Ce(ac,"exportField");function xr(q){return q=="string"?j():q=="("?z(Ue):q=="."?z(Me):z(Qe,Do,ii)}Ce(xr,"afterImport");function Qe(q,W){return q=="{"?Il(Qe,"}"):(q=="variable"&&K(W),W=="*"&&(U.marked="keyword"),j(sc))}Ce(Qe,"importSpec");function Do(q){if(q==",")return j(Qe,Do)}Ce(Do,"maybeMoreImports");function sc(q,W){if(W=="as")return U.marked="keyword",j(Qe)}Ce(sc,"maybeAs");function ii(q,W){if(W=="from")return U.marked="keyword",j(Ue)}Ce(ii,"maybeFrom");function Pt(q){return q=="]"?j():z(pr(bt,"]"))}Ce(Pt,"arrayLiteral");function Lo(){return z(me("form"),ni,Ge("{"),me("}"),pr(Bs,"}"),Oe,Oe)}Ce(Lo,"enumdef");function Bs(){return z(ni,Oo)}Ce(Bs,"enummember");function lc(q,W){return q.lastType=="operator"||q.lastType==","||y.test(W.charAt(0))||/[,.]/.test(W.charAt(0))}Ce(lc,"isContinuedStatement");function Ae(q,W,ce){return W.tokenize==C&&/^(?:operator|sof|keyword [bcd]|case|new|export|default|spread|[\[{}\(,;:]|=>)$/.test(W.lastType)||W.lastType=="quasi"&&/\{\s*$/.test(q.string.slice(0,q.pos-(ce||0)))}return Ce(Ae,"expressionAllowed"),{startState:function(q){var W={tokenize:C,lastType:"sof",cc:[],lexical:new V((q||0)-o,0,"block",!1),localVars:i.localVars,context:i.localVars&&new se(null,null,!1),indented:q||0};return i.globalVars&&typeof i.globalVars=="object"&&(W.globalVars=i.globalVars),W},token:function(q,W){if(q.sol()&&(W.lexical.hasOwnProperty("align")||(W.lexical.align=!1),W.indented=q.indentation(),N(q,W)),W.tokenize!=k&&q.eatSpace())return null;var ce=W.tokenize(q,W);return S=="comment"?ce:(W.lastType=S=="operator"&&(A=="++"||A=="--")?"incdec":S,B(W,ce,S,A,q))},indent:function(q,W){if(q.tokenize==k||q.tokenize==P)return r.Pass;if(q.tokenize!=C)return 0;var ce=W&&W.charAt(0),we=q.lexical,ct;if(!/^\s*else\b/.test(W))for(var kt=q.cc.length-1;kt>=0;--kt){var Ve=q.cc[kt];if(Ve==Oe)we=we.prev;else if(Ve!=oh&&Ve!=ye)break}for(;(we.type=="stat"||we.type=="form")&&(ce=="}"||(ct=q.cc[q.cc.length-1])&&(ct==Me||ct==st)&&!/^[,\.=+\-*:?[\(]/.test(W));)we=we.prev;s&&we.type==")"&&we.prev.type=="stat"&&(we=we.prev);var Sn=we.type,Vi=ce==Sn;return Sn=="vardef"?we.indented+(q.lastType=="operator"||q.lastType==","?we.info.length+1:0):Sn=="form"&&ce=="{"?we.indented:Sn=="form"?we.indented+o:Sn=="stat"?we.indented+(lc(q,W)?s||o:0):we.info=="switch"&&!Vi&&i.doubleIndentSwitch!=!1?we.indented+(/^(?:case|default)\b/.test(W)?o:2*o):we.align?we.column+(Vi?0:1):we.indented+(Vi?0:o)},electricInput:/^\s*(?:case .*?:|default:|\{|\})$/,blockCommentStart:c?null:"/*",blockCommentEnd:c?null:"*/",blockCommentContinue:c?null:" * ",lineComment:c?null:"//",fold:"brace",closeBrackets:"()[]{}''\"\"``",helperType:c?"json":"javascript",jsonldMode:l,jsonMode:c,expressionAllowed:Ae,skipExpression:function(q){B(q,"atom","atom","true",new r.StringStream("",2,null))}}}),r.registerHelper("wordChars","javascript",/[\w$]/),r.defineMIME("text/javascript","javascript"),r.defineMIME("text/ecmascript","javascript"),r.defineMIME("application/javascript","javascript"),r.defineMIME("application/x-javascript","javascript"),r.defineMIME("application/ecmascript","javascript"),r.defineMIME("application/json",{name:"javascript",json:!0}),r.defineMIME("application/x-json",{name:"javascript",json:!0}),r.defineMIME("application/manifest+json",{name:"javascript",json:!0}),r.defineMIME("application/ld+json",{name:"javascript",jsonld:!0}),r.defineMIME("text/typescript",{name:"javascript",typescript:!0}),r.defineMIME("application/typescript",{name:"javascript",typescript:!0})})})();mJ=fwe.exports,dwe=_t(mJ),pwe=pJ({__proto__:null,default:dwe},[mJ])});var bJ={};Ui(bJ,{c:()=>gwe});function gJ(e,t){for(var r=0;rn[i]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}var mwe,NE,hwe,yJ,vwe,gwe,AJ=at(()=>{ir();mwe=Object.defineProperty,NE=(e,t)=>mwe(e,"name",{value:t,configurable:!0});NE(gJ,"_mergeNamespaces");hwe={exports:{}};(function(e,t){(function(r){r(Kt())})(function(r){var n={},i=/[^\s\u00a0]/,o=r.Pos,s=r.cmpPos;function l(m){var v=m.search(i);return v==-1?0:v}NE(l,"firstNonWS"),r.commands.toggleComment=function(m){m.toggleComment()},r.defineExtension("toggleComment",function(m){m||(m=n);for(var v=this,g=1/0,y=this.listSelections(),w=null,T=y.length-1;T>=0;T--){var S=y[T].from(),A=y[T].to();S.line>=g||(A.line>=g&&(A=o(g,0)),g=S.line,w==null?v.uncomment(S,A,m)?w="un":(v.lineComment(S,A,m),w="line"):w=="un"?v.uncomment(S,A,m):v.lineComment(S,A,m))}});function c(m,v,g){return/\bstring\b/.test(m.getTokenTypeAt(o(v.line,0)))&&!/^[\'\"\`]/.test(g)}NE(c,"probablyInsideString");function f(m,v){var g=m.getMode();return g.useInnerComments===!1||!g.innerMode?g:m.getModeAt(v)}NE(f,"getMode"),r.defineExtension("lineComment",function(m,v,g){g||(g=n);var y=this,w=f(y,m),T=y.getLine(m.line);if(!(T==null||c(y,m,T))){var S=g.lineComment||w.lineComment;if(!S){(g.blockCommentStart||w.blockCommentStart)&&(g.fullLines=!0,y.blockComment(m,v,g));return}var A=Math.min(v.ch!=0||v.line==m.line?v.line+1:v.line,y.lastLine()+1),b=g.padding==null?" ":g.padding,C=g.commentBlankLines||m.line==v.line;y.operation(function(){if(g.indent){for(var x=null,k=m.line;kD.length)&&(x=D)}for(var k=m.line;kA||y.operation(function(){if(g.fullLines!=!1){var C=i.test(y.getLine(A));y.replaceRange(b+S,o(A)),y.replaceRange(T+b,o(m.line,0));var x=g.blockCommentLead||w.blockCommentLead;if(x!=null)for(var k=m.line+1;k<=A;++k)(k!=A||C)&&y.replaceRange(x+b,o(k,0))}else{var P=s(y.getCursor("to"),v)==0,D=!y.somethingSelected();y.replaceRange(S,v),P&&y.setSelection(D?v:y.getCursor("from"),v),y.replaceRange(T,m)}})}}),r.defineExtension("uncomment",function(m,v,g){g||(g=n);var y=this,w=f(y,m),T=Math.min(v.ch!=0||v.line==m.line?v.line:v.line-1,y.lastLine()),S=Math.min(m.line,T),A=g.lineComment||w.lineComment,b=[],C=g.padding==null?" ":g.padding,x;e:{if(!A)break e;for(var k=S;k<=T;++k){var P=y.getLine(k),D=P.indexOf(A);if(D>-1&&!/comment/.test(y.getTokenTypeAt(o(k,D+1)))&&(D=-1),D==-1&&i.test(P)||D>-1&&i.test(P.slice(0,D)))break e;b.push(P)}if(y.operation(function(){for(var se=S;se<=T;++se){var xe=b[se-S],Re=xe.indexOf(A),Se=Re+A.length;Re<0||(xe.slice(Se,Se+C.length)==C&&(Se+=C.length),x=!0,y.replaceRange("",o(se,Re),o(se,Se)))}}),x)return!0}var N=g.blockCommentStart||w.blockCommentStart,I=g.blockCommentEnd||w.blockCommentEnd;if(!N||!I)return!1;var V=g.blockCommentLead||w.blockCommentLead,G=y.getLine(S),B=G.indexOf(N);if(B==-1)return!1;var U=T==S?G:y.getLine(T),z=U.indexOf(I,T==S?B+N.length:0),j=o(S,B+1),J=o(T,z+1);if(z==-1||!/comment/.test(y.getTokenTypeAt(j))||!/comment/.test(y.getTokenTypeAt(J))||y.getRange(j,J,` -`).indexOf(I)>-1)return!1;var K=G.lastIndexOf(N,m.ch),ee=K==-1?-1:G.slice(0,m.ch).indexOf(I,K+N.length);if(K!=-1&&ee!=-1&&ee+I.length!=m.ch)return!1;ee=U.indexOf(I,v.ch);var re=U.slice(v.ch).lastIndexOf(N,ee-v.ch);return K=ee==-1||re==-1?-1:v.ch+re,ee!=-1&&K!=-1&&K!=v.ch?!1:(y.operation(function(){y.replaceRange("",o(T,z-(C&&U.slice(z-C.length,z)==C?C.length:0)),o(T,z+I.length));var se=B+N.length;if(C&&G.slice(se,se+C.length)==C&&(se+=C.length),y.replaceRange("",o(S,B),o(S,se)),V)for(var xe=S+1;xe<=T;++xe){var Re=y.getLine(xe),Se=Re.indexOf(V);if(!(Se==-1||i.test(Re.slice(0,Se)))){var ie=Se+V.length;C&&Re.slice(ie,ie+C.length)==C&&(ie+=C.length),y.replaceRange("",o(xe,Se),o(xe,ie))}}}),!0)})})})();yJ=hwe.exports,vwe=_t(yJ),gwe=gJ({__proto__:null,default:vwe},[yJ])});var BM={};Ui(BM,{s:()=>xwe});function xJ(e,t){for(var r=0;rn[i]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}var ywe,Ar,bwe,wJ,Awe,xwe,GM=at(()=>{ir();kE();ky();ywe=Object.defineProperty,Ar=(e,t)=>ywe(e,"name",{value:t,configurable:!0});Ar(xJ,"_mergeNamespaces");bwe={exports:{}};(function(e,t){(function(r){r(Kt(),Qf(),Wf)})(function(r){r.defineOption("search",{bottom:!1});function n(N,I){return typeof N=="string"?N=new RegExp(N.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&"),I?"gi":"g"):N.global||(N=new RegExp(N.source,N.ignoreCase?"gi":"g")),{token:function(V){N.lastIndex=V.pos;var G=N.exec(V.string);if(G&&G.index==V.pos)return V.pos+=G[0].length||1,"searching";G?V.pos=G.index:V.skipToEnd()}}}Ar(n,"searchOverlay");function i(){this.posFrom=this.posTo=this.lastQuery=this.query=null,this.overlay=null}Ar(i,"SearchState");function o(N){return N.state.search||(N.state.search=new i)}Ar(o,"getSearchState");function s(N){return typeof N=="string"&&N==N.toLowerCase()}Ar(s,"queryCaseInsensitive");function l(N,I,V){return N.getSearchCursor(I,V,{caseFold:s(I),multiline:!0})}Ar(l,"getSearchCursor");function c(N,I,V,G,B){N.openDialog(I,G,{value:V,selectValueOnOpen:!0,closeOnEnter:!1,onClose:function(){S(N)},onKeyDown:B,bottom:N.options.search.bottom})}Ar(c,"persistentDialog");function f(N,I,V,G,B){N.openDialog?N.openDialog(I,B,{value:G,selectValueOnOpen:!0,bottom:N.options.search.bottom}):B(prompt(V,G))}Ar(f,"dialog");function m(N,I,V,G){N.openConfirm?N.openConfirm(I,G):confirm(V)&&G[0]()}Ar(m,"confirmDialog");function v(N){return N.replace(/\\([nrt\\])/g,function(I,V){return V=="n"?` -`:V=="r"?"\r":V=="t"?" ":V=="\\"?"\\":I})}Ar(v,"parseString");function g(N){var I=N.match(/^\/(.*)\/([a-z]*)$/);if(I)try{N=new RegExp(I[1],I[2].indexOf("i")==-1?"":"i")}catch{}else N=v(N);return(typeof N=="string"?N=="":N.test(""))&&(N=/x^/),N}Ar(g,"parseQuery");function y(N,I,V){I.queryText=V,I.query=g(V),N.removeOverlay(I.overlay,s(I.query)),I.overlay=n(I.query,s(I.query)),N.addOverlay(I.overlay),N.showMatchesOnScrollbar&&(I.annotate&&(I.annotate.clear(),I.annotate=null),I.annotate=N.showMatchesOnScrollbar(I.query,s(I.query)))}Ar(y,"startSearch");function w(N,I,V,G){var B=o(N);if(B.query)return T(N,I);var U=N.getSelection()||B.lastQuery;if(U instanceof RegExp&&U.source=="x^"&&(U=null),V&&N.openDialog){var z=null,j=Ar(function(J,K){r.e_stop(K),J&&(J!=B.queryText&&(y(N,B,J),B.posFrom=B.posTo=N.getCursor()),z&&(z.style.opacity=1),T(N,K.shiftKey,function(ee,re){var se;re.line<3&&document.querySelector&&(se=N.display.wrapper.querySelector(".CodeMirror-dialog"))&&se.getBoundingClientRect().bottom-4>N.cursorCoords(re,"window").top&&((z=se).style.opacity=.4)}))},"searchNext");c(N,b(N),U,j,function(J,K){var ee=r.keyName(J),re=N.getOption("extraKeys"),se=re&&re[ee]||r.keyMap[N.getOption("keyMap")][ee];se=="findNext"||se=="findPrev"||se=="findPersistentNext"||se=="findPersistentPrev"?(r.e_stop(J),y(N,o(N),K),N.execCommand(se)):(se=="find"||se=="findPersistent")&&(r.e_stop(J),j(K,J))}),G&&U&&(y(N,B,U),T(N,I))}else f(N,b(N),"Search for:",U,function(J){J&&!B.query&&N.operation(function(){y(N,B,J),B.posFrom=B.posTo=N.getCursor(),T(N,I)})})}Ar(w,"doSearch");function T(N,I,V){N.operation(function(){var G=o(N),B=l(N,G.query,I?G.posFrom:G.posTo);!B.find(I)&&(B=l(N,G.query,I?r.Pos(N.lastLine()):r.Pos(N.firstLine(),0)),!B.find(I))||(N.setSelection(B.from(),B.to()),N.scrollIntoView({from:B.from(),to:B.to()},20),G.posFrom=B.from(),G.posTo=B.to(),V&&V(B.from(),B.to()))})}Ar(T,"findNext");function S(N){N.operation(function(){var I=o(N);I.lastQuery=I.query,I.query&&(I.query=I.queryText=null,N.removeOverlay(I.overlay),I.annotate&&(I.annotate.clear(),I.annotate=null))})}Ar(S,"clearSearch");function A(N,I){var V=N?document.createElement(N):document.createDocumentFragment();for(var G in I)V[G]=I[G];for(var B=2;B{ia();OM();Zc();ir();tt.registerHelper("hint","graphql",(e,t)=>{let{schema:r,externalFragments:n}=t;if(!r)return;let i=e.getCursor(),o=e.getTokenAt(i),s=o.type!==null&&/"|\w/.test(o.string[0])?o.start:o.end,l=new mo(i.line,s),c={list:ED(r,e.getValue(),l,o,n).map(f=>({text:f.label,type:f.type,description:f.documentation,isDeprecated:f.isDeprecated,deprecationReason:f.deprecationReason})),from:{line:i.line,ch:s},to:{line:i.line,ch:o.end}};return c!=null&&c.list&&c.list.length>0&&(c.from=tt.Pos(c.from.line,c.from.ch),c.to=tt.Pos(c.to.line,c.to.ch),tt.signal(e,"hasCompletion",e,c,o)),c})});var Twe={};var TJ,Ewe,CJ=at(()=>{ia();Zc();ir();TJ=["error","warning","information","hint"],Ewe={"GraphQL: Validation":"validation","GraphQL: Deprecation":"deprecation","GraphQL: Syntax":"syntax"};tt.registerHelper("lint","graphql",(e,t)=>{let{schema:r,validationRules:n,externalFragments:i}=t;return PD(e,r,n,void 0,i).map(o=>({message:o.message,severity:o.severity?TJ[o.severity-1]:TJ[0],type:o.source?Ewe[o.source]:void 0,from:tt.Pos(o.range.start.line,o.range.start.character),to:tt.Pos(o.range.end.line,o.range.end.character)}))})});function Oy(e,t){let r=[],n=e;for(;n!=null&&n.kind;)r.push(n),n=n.prevState;for(let i=r.length-1;i>=0;i--)t(r[i])}var Cwe,Swe,Ny=at(()=>{Cwe=Object.defineProperty,Swe=(e,t)=>Cwe(e,"name",{value:t,configurable:!0});Swe(Oy,"forEachState")});function Dy(e,t){let r={schema:e,type:null,parentType:null,inputType:null,directiveDef:null,fieldDef:null,argDef:null,argDefs:null,objectFieldDefs:null};return Oy(t,n=>{var i,o;switch(n.kind){case"Query":case"ShortQuery":r.type=e.getQueryType();break;case"Mutation":r.type=e.getMutationType();break;case"Subscription":r.type=e.getSubscriptionType();break;case"InlineFragment":case"FragmentDefinition":n.type&&(r.type=e.getType(n.type));break;case"Field":case"AliasedField":r.fieldDef=r.type&&n.name?zM(e,r.parentType,n.name):null,r.type=(i=r.fieldDef)===null||i===void 0?void 0:i.type;break;case"SelectionSet":r.parentType=r.type?(0,kr.getNamedType)(r.type):null;break;case"Directive":r.directiveDef=n.name?e.getDirective(n.name):null;break;case"Arguments":let s=n.prevState?n.prevState.kind==="Field"?r.fieldDef:n.prevState.kind==="Directive"?r.directiveDef:n.prevState.kind==="AliasedField"?n.prevState.name&&zM(e,r.parentType,n.prevState.name):null:null;r.argDefs=s?s.args:null;break;case"Argument":if(r.argDef=null,r.argDefs){for(let v=0;vv.value===n.name):null;break;case"ListValue":let c=r.inputType?(0,kr.getNullableType)(r.inputType):null;r.inputType=c instanceof kr.GraphQLList?c.ofType:null;break;case"ObjectValue":let f=r.inputType?(0,kr.getNamedType)(r.inputType):null;r.objectFieldDefs=f instanceof kr.GraphQLInputObjectType?f.getFields():null;break;case"ObjectField":let m=n.name&&r.objectFieldDefs?r.objectFieldDefs[n.name]:null;r.inputType=m?.type;break;case"NamedType":r.type=n.name?e.getType(n.name):null;break}}),r}function zM(e,t,r){if(r===kr.SchemaMetaFieldDef.name&&e.getQueryType()===t)return kr.SchemaMetaFieldDef;if(r===kr.TypeMetaFieldDef.name&&e.getQueryType()===t)return kr.TypeMetaFieldDef;if(r===kr.TypeNameMetaFieldDef.name&&(0,kr.isCompositeType)(t))return kr.TypeNameMetaFieldDef;if(t&&t.getFields)return t.getFields()[r]}function SJ(e,t){for(let r=0;r{kr=fe(Ur());Ny();kwe=Object.defineProperty,Nl=(e,t)=>kwe(e,"name",{value:t,configurable:!0});Nl(Dy,"getTypeInfo");Nl(zM,"getFieldDef");Nl(SJ,"find");Nl(Ly,"getFieldReference");Nl(Py,"getDirectiveReference");Nl(Ry,"getArgumentReference");Nl(My,"getEnumValueReference");Nl(Jm,"getTypeReference");Nl(HM,"isMetaField")});var Nwe={};function kJ(e){return{options:e instanceof Function?{render:e}:e===!0?{}:e}}function OJ(e){let{options:t}=e.state.info;return t?.hoverTime||500}function NJ(e,t){let r=e.state.info,n=t.target||t.srcElement;if(!(n instanceof HTMLElement)||n.nodeName!=="SPAN"||r.hoverTimeout!==void 0)return;let i=n.getBoundingClientRect(),o=Ua(function(){clearTimeout(r.hoverTimeout),r.hoverTimeout=setTimeout(l,c)},"onMouseMove"),s=Ua(function(){tt.off(document,"mousemove",o),tt.off(e.getWrapperElement(),"mouseout",s),clearTimeout(r.hoverTimeout),r.hoverTimeout=void 0},"onMouseOut"),l=Ua(function(){tt.off(document,"mousemove",o),tt.off(e.getWrapperElement(),"mouseout",s),r.hoverTimeout=void 0,DJ(e,i)},"onHover"),c=OJ(e);r.hoverTimeout=setTimeout(l,c),tt.on(document,"mousemove",o),tt.on(e.getWrapperElement(),"mouseout",s)}function DJ(e,t){let r=e.coordsChar({left:(t.left+t.right)/2,top:(t.top+t.bottom)/2},"window"),n=e.state.info,{options:i}=n,o=i.render||e.getHelper(r,"info");if(o){let s=e.getTokenAt(r,!0);if(s){let l=o(s,i,e,r);l&&LJ(e,t,l)}}}function LJ(e,t,r){let n=document.createElement("div");n.className="CodeMirror-info",n.append(r),document.body.append(n);let i=n.getBoundingClientRect(),o=window.getComputedStyle(n),s=i.right-i.left+parseFloat(o.marginLeft)+parseFloat(o.marginRight),l=i.bottom-i.top+parseFloat(o.marginTop)+parseFloat(o.marginBottom),c=t.bottom;l>window.innerHeight-t.bottom-15&&t.top>window.innerHeight-t.bottom&&(c=t.top-l),c<0&&(c=t.bottom);let f=Math.max(0,window.innerWidth-s-15);f>t.left&&(f=t.left),n.style.opacity="1",n.style.top=c+"px",n.style.left=f+"px";let m,v=Ua(function(){clearTimeout(m)},"onMouseOverPopup"),g=Ua(function(){clearTimeout(m),m=setTimeout(y,200)},"onMouseOut"),y=Ua(function(){tt.off(n,"mouseover",v),tt.off(n,"mouseout",g),tt.off(e.getWrapperElement(),"mouseout",g),n.style.opacity?(n.style.opacity="0",setTimeout(()=>{n.parentNode&&n.remove()},600)):n.parentNode&&n.remove()},"hidePopup");tt.on(n,"mouseover",v),tt.on(n,"mouseout",g),tt.on(e.getWrapperElement(),"mouseout",g)}var Owe,Ua,WM=at(()=>{ia();ir();Owe=Object.defineProperty,Ua=(e,t)=>Owe(e,"name",{value:t,configurable:!0});tt.defineOption("info",!1,(e,t,r)=>{if(r&&r!==tt.Init){let n=e.state.info.onMouseOver;tt.off(e.getWrapperElement(),"mouseover",n),clearTimeout(e.state.info.hoverTimeout),delete e.state.info}if(t){let n=e.state.info=kJ(t);n.onMouseOver=NJ.bind(null,e),tt.on(e.getWrapperElement(),"mouseover",n.onMouseOver)}});Ua(kJ,"createState");Ua(OJ,"getHoverTime");Ua(NJ,"onMouseOver");Ua(DJ,"onMouseHover");Ua(LJ,"showPopup")});var Lwe={};function PJ(e,t,r){RJ(e,t,r),YM(e,t,r,t.type)}function RJ(e,t,r){var n;let i=((n=t.fieldDef)===null||n===void 0?void 0:n.name)||"";to(e,i,"field-name",r,Ly(t))}function MJ(e,t,r){var n;let i="@"+(((n=t.directiveDef)===null||n===void 0?void 0:n.name)||"");to(e,i,"directive-name",r,Py(t))}function IJ(e,t,r){var n;let i=((n=t.argDef)===null||n===void 0?void 0:n.name)||"";to(e,i,"arg-name",r,Ry(t)),YM(e,t,r,t.inputType)}function FJ(e,t,r){var n;let i=((n=t.enumValue)===null||n===void 0?void 0:n.name)||"";Yf(e,t,r,t.inputType),to(e,"."),to(e,i,"enum-value",r,My(t))}function YM(e,t,r,n){let i=document.createElement("span");i.className="type-name-pill",n instanceof $m.GraphQLNonNull?(Yf(i,t,r,n.ofType),to(i,"!")):n instanceof $m.GraphQLList?(to(i,"["),Yf(i,t,r,n.ofType),to(i,"]")):to(i,n?.name||"","type-name",r,Jm(t,n)),e.append(i)}function Yf(e,t,r,n){n instanceof $m.GraphQLNonNull?(Yf(e,t,r,n.ofType),to(e,"!")):n instanceof $m.GraphQLList?(to(e,"["),Yf(e,t,r,n.ofType),to(e,"]")):to(e,n?.name||"","type-name",r,Jm(t,n))}function _m(e,t,r){let{description:n}=r;if(n){let i=document.createElement("div");i.className="info-description",t.renderDescription?i.innerHTML=t.renderDescription(n):i.append(document.createTextNode(n)),e.append(i)}qJ(e,t,r)}function qJ(e,t,r){let n=r.deprecationReason;if(n){let i=document.createElement("div");i.className="info-deprecation",e.append(i);let o=document.createElement("span");o.className="info-deprecation-label",o.append(document.createTextNode("Deprecated")),i.append(o);let s=document.createElement("div");s.className="info-deprecation-reason",t.renderDescription?s.innerHTML=t.renderDescription(n):s.append(document.createTextNode(n)),i.append(s)}}function to(e,t,r="",n={onClick:null},i=null){if(r){let{onClick:o}=n,s;o?(s=document.createElement("a"),s.href="javascript:void 0",s.addEventListener("click",l=>{o(i,l)})):s=document.createElement("span"),s.className=r,s.append(document.createTextNode(t)),e.append(s)}else e.append(document.createTextNode(t))}var $m,Dwe,Fs,jJ=at(()=>{$m=fe(Ur());ia();QM();WM();ir();Ny();Dwe=Object.defineProperty,Fs=(e,t)=>Dwe(e,"name",{value:t,configurable:!0});tt.registerHelper("info","graphql",(e,t)=>{if(!t.schema||!e.state)return;let{kind:r,step:n}=e.state,i=Dy(t.schema,e.state);if(r==="Field"&&n===0&&i.fieldDef||r==="AliasedField"&&n===2&&i.fieldDef){let o=document.createElement("div");o.className="CodeMirror-info-header",PJ(o,i,t);let s=document.createElement("div");return s.append(o),_m(s,t,i.fieldDef),s}if(r==="Directive"&&n===1&&i.directiveDef){let o=document.createElement("div");o.className="CodeMirror-info-header",MJ(o,i,t);let s=document.createElement("div");return s.append(o),_m(s,t,i.directiveDef),s}if(r==="Argument"&&n===0&&i.argDef){let o=document.createElement("div");o.className="CodeMirror-info-header",IJ(o,i,t);let s=document.createElement("div");return s.append(o),_m(s,t,i.argDef),s}if(r==="EnumValue"&&i.enumValue&&i.enumValue.description){let o=document.createElement("div");o.className="CodeMirror-info-header",FJ(o,i,t);let s=document.createElement("div");return s.append(o),_m(s,t,i.enumValue),s}if(r==="NamedType"&&i.type&&i.type.description){let o=document.createElement("div");o.className="CodeMirror-info-header",Yf(o,i,t,i.type);let s=document.createElement("div");return s.append(o),_m(s,t,i.type),s}});Fs(PJ,"renderField");Fs(RJ,"renderQualifiedField");Fs(MJ,"renderDirective");Fs(IJ,"renderArg");Fs(FJ,"renderEnumValue");Fs(YM,"renderTypeAnnotation");Fs(Yf,"renderType");Fs(_m,"renderDescription");Fs(qJ,"renderDeprecation");Fs(to,"text")});var Mwe={};function VJ(e,t){let r=t.target||t.srcElement;if(!(r instanceof HTMLElement)||r?.nodeName!=="SPAN")return;let n=r.getBoundingClientRect(),i={left:(n.left+n.right)/2,top:(n.top+n.bottom)/2};e.state.jump.cursor=i,e.state.jump.isHoldingModifier&&KM(e)}function UJ(e){if(!e.state.jump.isHoldingModifier&&e.state.jump.cursor){e.state.jump.cursor=null;return}e.state.jump.isHoldingModifier&&e.state.jump.marker&&XM(e)}function BJ(e,t){if(e.state.jump.isHoldingModifier||!GJ(t.key))return;e.state.jump.isHoldingModifier=!0,e.state.jump.cursor&&KM(e);let r=Dl(o=>{o.code===t.code&&(e.state.jump.isHoldingModifier=!1,e.state.jump.marker&&XM(e),tt.off(document,"keyup",r),tt.off(document,"click",n),e.off("mousedown",i))},"onKeyUp"),n=Dl(o=>{let{destination:s,options:l}=e.state.jump;s&&l.onClick(s,o)},"onClick"),i=Dl((o,s)=>{e.state.jump.destination&&(s.codemirrorIgnore=!0)},"onMouseDown");tt.on(document,"keyup",r),tt.on(document,"click",n),e.on("mousedown",i)}function GJ(e){return e===(Rwe?"Meta":"Control")}function KM(e){if(e.state.jump.marker)return;let{cursor:t,options:r}=e.state.jump,n=e.coordsChar(t),i=e.getTokenAt(n,!0),o=r.getDestination||e.getHelper(n,"jump");if(o){let s=o(i,r,e);if(s){let l=e.markText({line:n.line,ch:i.start},{line:n.line,ch:i.end},{className:"CodeMirror-jump-token"});e.state.jump.marker=l,e.state.jump.destination=s}}}function XM(e){let{marker:t}=e.state.jump;e.state.jump.marker=null,e.state.jump.destination=null,t.clear()}var Pwe,Dl,Rwe,zJ=at(()=>{ia();QM();ir();Ny();Pwe=Object.defineProperty,Dl=(e,t)=>Pwe(e,"name",{value:t,configurable:!0});tt.defineOption("jump",!1,(e,t,r)=>{if(r&&r!==tt.Init){let n=e.state.jump.onMouseOver;tt.off(e.getWrapperElement(),"mouseover",n);let i=e.state.jump.onMouseOut;tt.off(e.getWrapperElement(),"mouseout",i),tt.off(document,"keydown",e.state.jump.onKeyDown),delete e.state.jump}if(t){let n=e.state.jump={options:t,onMouseOver:VJ.bind(null,e),onMouseOut:UJ.bind(null,e),onKeyDown:BJ.bind(null,e)};tt.on(e.getWrapperElement(),"mouseover",n.onMouseOver),tt.on(e.getWrapperElement(),"mouseout",n.onMouseOut),tt.on(document,"keydown",n.onKeyDown)}});Dl(VJ,"onMouseOver");Dl(UJ,"onMouseOut");Dl(BJ,"onKeyDown");Rwe=typeof navigator<"u"&&navigator&&navigator.appVersion.includes("Mac");Dl(GJ,"isJumpModifier");Dl(KM,"enableJumpMode");Dl(XM,"disableJumpMode");tt.registerHelper("jump","graphql",(e,t)=>{if(!t.schema||!t.onClick||!e.state)return;let{state:r}=e,{kind:n,step:i}=r,o=Dy(t.schema,r);if(n==="Field"&&i===0&&o.fieldDef||n==="AliasedField"&&i===2&&o.fieldDef)return Ly(o);if(n==="Directive"&&i===1&&o.directiveDef)return Py(o);if(n==="Argument"&&i===0&&o.argDef)return Ry(o);if(n==="EnumValue"&&o.enumValue)return My(o);if(n==="NamedType"&&o.type)return Jm(o)})});function Kf(e,t){var r,n;let{levels:i,indentLevel:o}=e;return((!i||i.length===0?o:i.at(-1)-(!((r=this.electricInput)===null||r===void 0)&&r.test(t)?1:0))||0)*(((n=this.config)===null||n===void 0?void 0:n.indentUnit)||0)}var Iwe,Fwe,DE=at(()=>{Iwe=Object.defineProperty,Fwe=(e,t)=>Iwe(e,"name",{value:t,configurable:!0});Fwe(Kf,"indent")});var Uwe={};var qwe,jwe,Vwe,HJ=at(()=>{ia();Zc();DE();ir();qwe=Object.defineProperty,jwe=(e,t)=>qwe(e,"name",{value:t,configurable:!0}),Vwe=jwe(e=>{let t=po({eatWhitespace:r=>r.eatWhile(vp),lexRules:gp,parseRules:yp,editorConfig:{tabSize:e.tabSize}});return{config:e,startState:t.startState,token:t.token,indent:Kf,electricInput:/^\s*[})\]]/,fold:"brace",lineComment:"#",closeBrackets:{pairs:'()[]{}""',explode:"()[]{}"}}},"graphqlModeFactory");tt.defineMode("graphql",Vwe)});var Gwe={};function Xf(e,t,r){let n=QJ(r,ZM(t.string));if(!n)return;let i=t.type!==null&&/"|\w/.test(t.string[0])?t.start:t.end;return{list:n,from:{line:e.line,ch:i},to:{line:e.line,ch:t.end}}}function QJ(e,t){if(!t)return LE(e,n=>!n.isDeprecated);let r=e.map(n=>({proximity:WJ(ZM(n.text),t),entry:n}));return LE(LE(r,n=>n.proximity<=2),n=>!n.entry.isDeprecated).sort((n,i)=>(n.entry.isDeprecated?1:0)-(i.entry.isDeprecated?1:0)||n.proximity-i.proximity||n.entry.text.length-i.entry.text.length).map(n=>n.entry)}function LE(e,t){let r=e.filter(t);return r.length===0?e:r}function ZM(e){return e.toLowerCase().replaceAll(/\W/g,"")}function WJ(e,t){let r=YJ(t,e);return e.length>t.length&&(r-=e.length-t.length-1,r+=e.indexOf(t)===0?0:.5),r}function YJ(e,t){let r,n,i=[],o=e.length,s=t.length;for(r=0;r<=o;r++)i[r]=[r];for(n=1;n<=s;n++)i[0][n]=n;for(r=1;r<=o;r++)for(n=1;n<=s;n++){let l=e[r-1]===t[n-1]?0:1;i[r][n]=Math.min(i[r-1][n]+1,i[r][n-1]+1,i[r-1][n-1]+l),r>1&&n>1&&e[r-1]===t[n-2]&&e[r-2]===t[n-1]&&(i[r][n]=Math.min(i[r][n],i[r-2][n-2]+l))}return i[o][s]}function KJ(e,t,r){let n=t.state.kind==="Invalid"?t.state.prevState:t.state,{kind:i,step:o}=n;if(i==="Document"&&o===0)return Xf(e,t,[{text:"{"}]);let{variableToType:s}=r;if(!s)return;let l=XJ(s,t.state);if(i==="Document"||i==="Variable"&&o===0){let c=Object.keys(s);return Xf(e,t,c.map(f=>({text:`"${f}": `,type:s[f]})))}if((i==="ObjectValue"||i==="ObjectField"&&o===0)&&l.fields){let c=Object.keys(l.fields).map(f=>l.fields[f]);return Xf(e,t,c.map(f=>({text:`"${f.name}": `,type:f.type,description:f.description})))}if(i==="StringValue"||i==="NumberValue"||i==="BooleanValue"||i==="NullValue"||i==="ListValue"&&o===1||i==="ObjectField"&&o===2||i==="Variable"&&o===2){let c=l.type?(0,bi.getNamedType)(l.type):void 0;if(c instanceof bi.GraphQLInputObjectType)return Xf(e,t,[{text:"{"}]);if(c instanceof bi.GraphQLEnumType){let f=c.getValues();return Xf(e,t,f.map(m=>({text:`"${m.name}"`,type:c,description:m.description})))}if(c===bi.GraphQLBoolean)return Xf(e,t,[{text:"true",type:bi.GraphQLBoolean,description:"Not false."},{text:"false",type:bi.GraphQLBoolean,description:"Not true."}])}}function XJ(e,t){let r={type:null,fields:null};return Oy(t,n=>{switch(n.kind){case"Variable":{r.type=e[n.name];break}case"ListValue":{let i=r.type?(0,bi.getNullableType)(r.type):void 0;r.type=i instanceof bi.GraphQLList?i.ofType:null;break}case"ObjectValue":{let i=r.type?(0,bi.getNamedType)(r.type):void 0;r.fields=i instanceof bi.GraphQLInputObjectType?i.getFields():null;break}case"ObjectField":{let i=n.name&&r.fields?r.fields[n.name]:null;r.type=i?.type;break}}}),r}var bi,Bwe,Ku,ZJ=at(()=>{ia();bi=fe(Ur());Ny();ir();Bwe=Object.defineProperty,Ku=(e,t)=>Bwe(e,"name",{value:t,configurable:!0});Ku(Xf,"hintList");Ku(QJ,"filterAndSortList");Ku(LE,"filterNonEmpty");Ku(ZM,"normalizeText");Ku(WJ,"getProximity");Ku(YJ,"lexicalDistance");tt.registerHelper("hint","graphql-variables",(e,t)=>{let r=e.getCursor(),n=e.getTokenAt(r),i=KJ(r,n,t);return i!=null&&i.list&&i.list.length>0&&(i.from=tt.Pos(i.from.line,i.from.ch),i.to=tt.Pos(i.to.line,i.to.ch),tt.signal(e,"hasCompletion",e,i,n)),i});Ku(KJ,"getVariablesHint");Ku(XJ,"getTypeInfo")});var Hwe={};function JJ(e){qs=e,RE=e.length,Cn=Ai=jy=-1,dn(),Vy();let t=_M();return Ll("EOF"),t}function _M(){let e=Cn,t=[];if(Ll("{"),!qy("}")){do t.push(_J());while(qy(","));Ll("}")}return{kind:"Object",start:e,end:jy,members:t}}function _J(){let e=Cn,t=To==="String"?eI():null;Ll("String"),Ll(":");let r=$M();return{kind:"Member",start:e,end:jy,key:t,value:r}}function $J(){let e=Cn,t=[];if(Ll("["),!qy("]")){do t.push($M());while(qy(","));Ll("]")}return{kind:"Array",start:e,end:jy,values:t}}function $M(){switch(To){case"[":return $J();case"{":return _M();case"String":case"Number":case"Boolean":case"Null":let e=eI();return Vy(),e}Ll("Value")}function eI(){return{kind:To,start:Cn,end:Ai,value:JSON.parse(qs.slice(Cn,Ai))}}function Ll(e){if(To===e){Vy();return}let t;if(To==="EOF")t="[end of file]";else if(Ai-Cn>1)t="`"+qs.slice(Cn,Ai)+"`";else{let r=qs.slice(Cn).match(/^.+?\b/);t="`"+(r?r[0]:qs[Cn])+"`"}throw Zf(`Expected ${e} but found ${t}.`)}function Zf(e){return new Fy(e,{start:Cn,end:Ai})}function qy(e){if(To===e)return Vy(),!0}function dn(){return Ai31;)if(Gt===92)switch(Gt=dn(),Gt){case 34:case 47:case 92:case 98:case 102:case 110:case 114:case 116:dn();break;case 117:dn(),Iy(),Iy(),Iy(),Iy();break;default:throw Zf("Bad character escape sequence.")}else{if(Ai===RE)throw Zf("Unterminated string.");dn()}if(Gt===34){dn();return}throw Zf("Unterminated string.")}function Iy(){if(Gt>=48&&Gt<=57||Gt>=65&&Gt<=70||Gt>=97&&Gt<=102)return dn();throw Zf("Expected hexadecimal digit.")}function t_(){Gt===45&&dn(),Gt===48?dn():PE(),Gt===46&&(dn(),PE()),(Gt===69||Gt===101)&&(Gt=dn(),(Gt===43||Gt===45)&&dn(),PE())}function PE(){if(Gt<48||Gt>57)throw Zf("Expected decimal digit.");do dn();while(Gt>=48&&Gt<=57)}function r_(e,t,r){var n;let i=[];for(let o of r.members)if(o){let s=(n=o.key)===null||n===void 0?void 0:n.value,l=t[s];if(l)for(let[c,f]of eh(l,o.value))i.push(ME(e,c,f));else i.push(ME(e,o.key,`Variable "$${s}" does not appear in any GraphQL query.`))}return i}function eh(e,t){if(!e||!t)return[];if(e instanceof Ba.GraphQLNonNull)return t.kind==="Null"?[[t,`Type "${e}" is non-nullable and cannot be null.`]]:eh(e.ofType,t);if(t.kind==="Null")return[];if(e instanceof Ba.GraphQLList){let r=e.ofType;if(t.kind==="Array"){let n=t.values||[];return JM(n,i=>eh(r,i))}return eh(r,t)}if(e instanceof Ba.GraphQLInputObjectType){if(t.kind!=="Object")return[[t,`Type "${e}" must be an Object.`]];let r=Object.create(null),n=JM(t.members,i=>{var o;let s=(o=i?.key)===null||o===void 0?void 0:o.value;r[s]=!0;let l=e.getFields()[s];if(!l)return[[i.key,`Type "${e}" does not have a field "${s}".`]];let c=l?l.type:void 0;return eh(c,i.value)});for(let i of Object.keys(e.getFields())){let o=e.getFields()[i];!r[i]&&o.type instanceof Ba.GraphQLNonNull&&!o.defaultValue&&n.push([t,`Object of type "${e}" is missing required field "${i}".`])}return n}return e.name==="Boolean"&&t.kind!=="Boolean"||e.name==="String"&&t.kind!=="String"||e.name==="ID"&&t.kind!=="Number"&&t.kind!=="String"||e.name==="Float"&&t.kind!=="Number"||e.name==="Int"&&(t.kind!=="Number"||(t.value|0)!==t.value)?[[t,`Expected value of type "${e}".`]]:(e instanceof Ba.GraphQLEnumType||e instanceof Ba.GraphQLScalarType)&&(t.kind!=="String"&&t.kind!=="Number"&&t.kind!=="Boolean"&&t.kind!=="Null"||n_(e.parseValue(t.value)))?[[t,`Expected value of type "${e}".`]]:[]}function ME(e,t,r){return{message:r,severity:"error",type:"validation",from:e.posFromIndex(t.start),to:e.posFromIndex(t.end)}}function n_(e){return e==null||e!==e}function JM(e,t){return Array.prototype.concat.apply([],e.map(t))}var Ba,zwe,_r,qs,RE,Cn,Ai,jy,Gt,To,Fy,i_=at(()=>{ia();Ba=fe(Ur());ir();zwe=Object.defineProperty,_r=(e,t)=>zwe(e,"name",{value:t,configurable:!0});_r(JJ,"jsonParse");_r(_M,"parseObj");_r(_J,"parseMember");_r($J,"parseArr");_r($M,"parseVal");_r(eI,"curToken");_r(Ll,"expect");Fy=class extends Error{constructor(t,r){super(t),this.position=r}};_r(Fy,"JSONSyntaxError");_r(Zf,"syntaxError");_r(qy,"skip");_r(dn,"ch");_r(Vy,"lex");_r(e_,"readString");_r(Iy,"readHex");_r(t_,"readNumber");_r(PE,"readDigits");tt.registerHelper("lint","graphql-variables",(e,t,r)=>{if(!e)return[];let n;try{n=JJ(e)}catch(o){if(o instanceof Fy)return[ME(r,o.position,o.message)];throw o}let{variableToType:i}=t;return i?r_(r,i,n):[]});_r(r_,"validateVariables");_r(eh,"validateValue");_r(ME,"lintError");_r(n_,"isNullish");_r(JM,"mapCat")});var Xwe={};function tI(e){return{style:e,match:t=>t.kind==="String",update(t,r){t.name=r.value.slice(1,-1)}}}var Qwe,Wwe,Ywe,Kwe,o_=at(()=>{ia();Zc();DE();ir();Qwe=Object.defineProperty,Wwe=(e,t)=>Qwe(e,"name",{value:t,configurable:!0});tt.defineMode("graphql-variables",e=>{let t=po({eatWhitespace:r=>r.eatSpace(),lexRules:Ywe,parseRules:Kwe,editorConfig:{tabSize:e.tabSize}});return{config:e,startState:t.startState,token:t.token,indent:Kf,electricInput:/^\s*[}\]]/,fold:"brace",closeBrackets:{pairs:'[]{}""',explode:"[]{}"}}});Ywe={Punctuation:/^\[|]|\{|\}|:|,/,Number:/^-?(?:0|(?:[1-9][0-9]*))(?:\.[0-9]*)?(?:[eE][+-]?[0-9]+)?/,String:/^"(?:[^"\\]|\\(?:"|\/|\\|b|f|n|r|t|u[0-9a-fA-F]{4}))*"?/,Keyword:/^true|false|null/},Kwe={Document:[ze("{"),gt("Variable",er(ze(","))),ze("}")],Variable:[tI("variable"),ze(":"),"Value"],Value(e){switch(e.kind){case"Number":return"NumberValue";case"String":return"StringValue";case"Punctuation":switch(e.value){case"[":return"ListValue";case"{":return"ObjectValue"}return null;case"Keyword":switch(e.value){case"true":case"false":return"BooleanValue";case"null":return"NullValue"}return null}},NumberValue:[Dn("Number","number")],StringValue:[Dn("String","string")],BooleanValue:[Dn("Keyword","builtin")],NullValue:[Dn("Keyword","keyword")],ListValue:[ze("["),gt("Value",er(ze(","))),ze("]")],ObjectValue:[ze("{"),gt("ObjectField",er(ze(","))),ze("}")],ObjectField:[tI("attribute"),ze(":"),"Value"]};Wwe(tI,"namedKey")});var _we={};var Zwe,Jwe,a_=at(()=>{ia();Zc();DE();ir();tt.defineMode("graphql-results",e=>{let t=po({eatWhitespace:r=>r.eatSpace(),lexRules:Zwe,parseRules:Jwe,editorConfig:{tabSize:e.tabSize}});return{config:e,startState:t.startState,token:t.token,indent:Kf,electricInput:/^\s*[}\]]/,fold:"brace",closeBrackets:{pairs:'[]{}""',explode:"[]{}"}}});Zwe={Punctuation:/^\[|]|\{|\}|:|,/,Number:/^-?(?:0|(?:[1-9][0-9]*))(?:\.[0-9]*)?(?:[eE][+-]?[0-9]+)?/,String:/^"(?:[^"\\]|\\(?:"|\/|\\|b|f|n|r|t|u[0-9a-fA-F]{4}))*"?/,Keyword:/^true|false|null/},Jwe={Document:[ze("{"),gt("Entry",ze(",")),ze("}")],Entry:[Dn("String","def"),ze(":"),"Value"],Value(e){switch(e.kind){case"Number":return"NumberValue";case"String":return"StringValue";case"Punctuation":switch(e.value){case"[":return"ListValue";case"{":return"ObjectValue"}return null;case"Keyword":switch(e.value){case"true":case"false":return"BooleanValue";case"null":return"NullValue"}return null}},NumberValue:[Dn("Number","number")],StringValue:[Dn("String","string")],BooleanValue:[Dn("Keyword","builtin")],NullValue:[Dn("Keyword","keyword")],ListValue:[ze("["),gt("Value",ze(",")),ze("]")],ObjectValue:[ze("{"),gt("ObjectField",ze(",")),ze("}")],ObjectField:[Dn("String","property"),ze(":"),"Value"]}});var N$=X(uT=>{"use strict";Object.defineProperty(uT,"__esModule",{value:!0});var uTe=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},y$=function(){function e(t,r){var n=[],i=!0,o=!1,s=void 0;try{for(var l=t[Symbol.iterator](),c;!(i=(c=l.next()).done)&&(n.push(c.value),!(r&&n.length===r));i=!0);}catch(f){o=!0,s=f}finally{try{!i&&l.return&&l.return()}finally{if(o)throw s}}return n}return function(t,r){if(Array.isArray(t))return t;if(Symbol.iterator in Object(t))return e(t,r);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}(),Wt=Object.assign||function(e){for(var t=1;t"u"?v=!0:typeof f.kind=="string"&&(y=!0)}catch{}var w=i.props.selection,T=i._getArgSelection();if(!T){console.error("missing arg selection when setting arg value");return}var S=rc(i.props.arg.type),A=(0,vt.isLeafType)(S)||g||v||y;if(!A){console.warn("Unable to handle non leaf types in InputArgView.setArgValue",f);return}var b=void 0,C=void 0;f===null||typeof f>"u"?C=null:!f.target&&f.kind&&f.kind==="VariableDefinition"?(b=f,C=b.variable):typeof f.kind=="string"?C=f:f.target&&typeof f.target.value=="string"&&(b=f.target.value,C=T$(S,b));var x=i.props.modifyFields((w.fields||[]).map(function(k){var P=k===T,D=P?Wt({},k,{value:C}):k;return D}),m);return x},i._modifyChildFields=function(f){return i.props.modifyFields(i.props.selection.fields.map(function(m){return m.name.value===i.props.arg.name?Wt({},m,{value:{kind:"ObjectValue",fields:f}}):m}),!0)},n),en(i,o)}return Ha(t,[{key:"render",value:function(){var n=this.props,i=n.arg,o=n.parentField,s=this._getArgSelection();return be.createElement(S$,{argValue:s?s.value:null,arg:i,parentField:o,addArg:this._addArg,removeArg:this._removeArg,setArgFields:this._modifyChildFields,setArgValue:this._setArgValue,getDefaultScalarArgValue:this.props.getDefaultScalarArgValue,makeDefaultArg:this.props.makeDefaultArg,onRunOperation:this.props.onRunOperation,styleConfig:this.props.styleConfig,onCommit:this.props.onCommit,definition:this.props.definition})}}]),t}(be.PureComponent);function OI(e){if((0,vt.isEnumType)(e))return{kind:"EnumValue",value:e.getValues()[0].name};switch(e.name){case"String":return{kind:"StringValue",value:""};case"Float":return{kind:"FloatValue",value:"1.5"};case"Int":return{kind:"IntValue",value:"10"};case"Boolean":return{kind:"BooleanValue",value:!1};default:return{kind:"StringValue",value:""}}}function C$(e,t,r){return OI(r)}var bTe=function(e){Wa(t,e);function t(){var r,n,i,o;Qa(this,t);for(var s=arguments.length,l=Array(s),c=0;c"u"?v=!0:typeof f.kind=="string"&&(y=!0)}catch{}var w=i.props.selection,T=i._getArgSelection();if(!T&&!g){console.error("missing arg selection when setting arg value");return}var S=rc(i.props.arg.type),A=(0,vt.isLeafType)(S)||g||v||y;if(!A){console.warn("Unable to handle non leaf types in ArgView._setArgValue");return}var b=void 0,C=void 0;return f===null||typeof f>"u"?C=null:f.target&&typeof f.target.value=="string"?(b=f.target.value,C=T$(S,b)):!f.target&&f.kind==="VariableDefinition"?(b=f,C=b.variable):typeof f.kind=="string"&&(C=f),i.props.modifyArguments((w.arguments||[]).map(function(x){return x===T?Wt({},x,{value:C}):x}),m)},i._setArgFields=function(f,m){var v=i.props.selection,g=i._getArgSelection();if(!g){console.error("missing arg selection when setting arg value");return}return i.props.modifyArguments((v.arguments||[]).map(function(y){return y===g?Wt({},y,{value:{kind:"ObjectValue",fields:f}}):y}),m)},n),en(i,o)}return Ha(t,[{key:"render",value:function(){var n=this.props,i=n.arg,o=n.parentField,s=this._getArgSelection();return be.createElement(S$,{argValue:s?s.value:null,arg:i,parentField:o,addArg:this._addArg,removeArg:this._removeArg,setArgFields:this._setArgFields,setArgValue:this._setArgValue,getDefaultScalarArgValue:this.props.getDefaultScalarArgValue,makeDefaultArg:this.props.makeDefaultArg,onRunOperation:this.props.onRunOperation,styleConfig:this.props.styleConfig,onCommit:this.props.onCommit,definition:this.props.definition})}}]),t}(be.PureComponent);function ATe(e){return e.ctrlKey&&e.key==="Enter"}function xTe(e){return e!=="FragmentDefinition"}var wTe=function(e){Wa(t,e);function t(){var r,n,i,o;Qa(this,t);for(var s=arguments.length,l=Array(s),c=0;c0?b=""+S+A:b=S;var C=s.type.toString(),x=(0,vt.parseType)(C),k={kind:"VariableDefinition",variable:{kind:"Variable",name:{kind:"Name",value:b}},type:x,directives:[]},P=function(xe){return(n.props.definition.variableDefinitions||[]).find(function(Re){return Re.variable.name.value===xe})},D=void 0,N={};if(typeof o<"u"&&o!==null){var I=(0,vt.visit)(o,{Variable:function(xe){var Re=xe.name.value,Se=P(Re);if(N[Re]=N[Re]+1||1,!!Se)return Se.defaultValue}}),V=k.type.kind==="NonNullType",G=V?Wt({},k,{type:k.type.type}):k;D=Wt({},G,{defaultValue:I})}else D=k;var B=Object.entries(N).filter(function(se){var xe=y$(se,2),Re=xe[0],Se=xe[1];return Se<2}).map(function(se){var xe=y$(se,2),Re=xe[0],Se=xe[1];return Re});if(D){var U=n.props.setArgValue(D,!1);if(U){var z=U.definitions.find(function(se){return se.operation&&se.name&&se.name.value&&n.props.definition.name&&n.props.definition.name.value?se.name.value===n.props.definition.name.value:!1}),j=[].concat(sa(z.variableDefinitions||[]),[D]).filter(function(se){return B.indexOf(se.variable.name.value)===-1}),J=Wt({},z,{variableDefinitions:j}),K=U.definitions,ee=K.map(function(se){return z===se?J:se}),re=Wt({},U,{definitions:ee});n.props.onCommit(re)}}},g=function(){if(!(!o||!o.name||!o.name.value)){var S=o.name.value,A=(n.props.definition.variableDefinitions||[]).find(function(G){return G.variable.name.value===S});if(A){var b=A.defaultValue,C=n.props.setArgValue(b,{commit:!1});if(C){var x=C.definitions.find(function(G){return G.name.value===n.props.definition.name.value});if(!x)return;var k=0;(0,vt.visit)(x,{Variable:function(B){B.name.value===S&&(k=k+1)}});var P=x.variableDefinitions||[];k<2&&(P=P.filter(function(G){return G.variable.name.value!==S}));var D=Wt({},x,{variableDefinitions:P}),N=C.definitions,I=N.map(function(G){return x===G?D:G}),V=Wt({},C,{definitions:I});n.props.onCommit(V)}}}},y=o&&o.kind==="Variable",w=this.state.displayArgActions?be.createElement("button",{type:"submit",className:"toolbar-button",title:y?"Remove the variable":"Extract the current value into a GraphQL variable",onClick:function(S){S.preventDefault(),S.stopPropagation(),y?g():v()},style:l.styles.actionButtonStyle},be.createElement("span",{style:{color:l.colors.variable}},"$")):null;return be.createElement("div",{style:{cursor:"pointer",minHeight:"16px",WebkitUserSelect:"none",userSelect:"none"},"data-arg-name":s.name,"data-arg-type":c.name,className:"graphiql-explorer-"+s.name},be.createElement("span",{style:{cursor:"pointer"},onClick:function(S){var A=!o;A?n.props.addArg(!0):n.props.removeArg(!0),n.setState({displayArgActions:A})}},(0,vt.isInputObjectType)(c)?be.createElement("span",null,o?this.props.styleConfig.arrowOpen:this.props.styleConfig.arrowClosed):be.createElement(sT,{checked:!!o,styleConfig:this.props.styleConfig}),be.createElement("span",{style:{color:l.colors.attribute},title:s.description,onMouseEnter:function(){o!==null&&typeof o<"u"&&n.setState({displayArgActions:!0})},onMouseLeave:function(){return n.setState({displayArgActions:!1})}},s.name,E$(s)?"*":"",": ",w," ")," "),f||be.createElement("span",null)," ")}}]),t}(be.PureComponent),ETe=function(e){Wa(t,e);function t(){var r,n,i,o;Qa(this,t);for(var s=arguments.length,l=Array(s),c=0;c0;b&&n.setState({displayFieldActions:!0})},onMouseLeave:function(){return n.setState({displayFieldActions:!1})}},(0,vt.isObjectType)(m)?be.createElement("span",null,f?this.props.styleConfig.arrowOpen:this.props.styleConfig.arrowClosed):null,(0,vt.isObjectType)(m)?null:be.createElement(sT,{checked:!!f,styleConfig:this.props.styleConfig}),be.createElement("span",{style:{color:c.colors.property},className:"graphiql-explorer-field-view"},o.name),this.state.displayFieldActions?be.createElement("button",{type:"submit",className:"toolbar-button",title:"Extract selections into a new reusable fragment",onClick:function(b){b.preventDefault(),b.stopPropagation();var C=m.name,x=C+"Fragment",k=(y||[]).filter(function(G){return G.name.value.startsWith(x)}).length;k>0&&(x=""+x+k);var P=f?f.selectionSet?f.selectionSet.selections:[]:[],D=[{kind:"FragmentSpread",name:{kind:"Name",value:x},directives:[]}],N={kind:"FragmentDefinition",name:{kind:"Name",value:x},typeCondition:{kind:"NamedType",name:{kind:"Name",value:m.name}},directives:[],selectionSet:{kind:"SelectionSet",selections:P}},I=n._modifyChildSelections(D,!1);if(I){var V=Wt({},I,{definitions:[].concat(sa(I.definitions),[N])});n.props.onCommit(V)}else console.warn("Unable to complete extractFragment operation")},style:Wt({},c.styles.actionButtonStyle)},be.createElement("span",null,"\u2026")):null),f&&v.length?be.createElement("div",{style:{marginLeft:16},className:"graphiql-explorer-graphql-arguments"},v.map(function(A){return be.createElement(bTe,{key:A.name,parentField:o,arg:A,selection:f,modifyArguments:n._setArguments,getDefaultScalarArgValue:n.props.getDefaultScalarArgValue,makeDefaultArg:n.props.makeDefaultArg,onRunOperation:n.props.onRunOperation,styleConfig:n.props.styleConfig,onCommit:n.props.onCommit,definition:n.props.definition})})):null);if(f&&((0,vt.isObjectType)(m)||(0,vt.isInterfaceType)(m)||(0,vt.isUnionType)(m))){var T=(0,vt.isUnionType)(m)?{}:m.getFields(),S=f?f.selectionSet?f.selectionSet.selections:[]:[];return be.createElement("div",{className:"graphiql-explorer-"+o.name},w,be.createElement("div",{style:{marginLeft:16}},y?y.map(function(A){var b=s.getType(A.typeCondition.name.value),C=A.name.value;return b?be.createElement(TTe,{key:C,fragment:A,selections:S,modifySelections:n._modifyChildSelections,schema:s,styleConfig:n.props.styleConfig,onCommit:n.props.onCommit}):null}):null,Object.keys(T).sort().map(function(A){return be.createElement(t,{key:A,field:T[A],selections:S,modifySelections:n._modifyChildSelections,schema:s,getDefaultFieldNames:l,getDefaultScalarArgValue:n.props.getDefaultScalarArgValue,makeDefaultArg:n.props.makeDefaultArg,onRunOperation:n.props.onRunOperation,styleConfig:n.props.styleConfig,onCommit:n.props.onCommit,definition:n.props.definition,availableFragments:n.props.availableFragments})}),(0,vt.isInterfaceType)(m)||(0,vt.isUnionType)(m)?s.getPossibleTypes(m).map(function(A){return be.createElement(ETe,{key:A.name,implementingType:A,selections:S,modifySelections:n._modifyChildSelections,schema:s,getDefaultFieldNames:l,getDefaultScalarArgValue:n.props.getDefaultScalarArgValue,makeDefaultArg:n.props.makeDefaultArg,onRunOperation:n.props.onRunOperation,styleConfig:n.props.styleConfig,onCommit:n.props.onCommit,definition:n.props.definition})}):null))}return w}}]),t}(be.PureComponent);function CTe(e){try{return e.trim()?(0,vt.parse)(e,{noLocation:!0}):null}catch(t){return new Error(t)}}var STe={kind:"OperationDefinition",operation:"query",variableDefinitions:[],name:{kind:"Name",value:"MyQuery"},directives:[],selectionSet:{kind:"SelectionSet",selections:[]}},aT={kind:"Document",definitions:[STe]},ih=null;function kTe(e){if(ih&&ih[0]===e)return ih[1];var t=CTe(e);return t?t instanceof Error?ih?ih[1]:aT:(ih=[e,t],t):aT}var x$={buttonStyle:{fontSize:"1.2em",padding:"0px",backgroundColor:"white",border:"none",margin:"5px 0px",height:"40px",width:"100%",display:"block",maxWidth:"none"},actionButtonStyle:{padding:"0px",backgroundColor:"white",border:"none",margin:"0px",maxWidth:"none",height:"15px",width:"15px",display:"inline-block",fontSize:"smaller"},explorerActionsStyle:{margin:"4px -8px -8px",paddingLeft:"8px",bottom:"0px",width:"100%",textAlign:"center",background:"none",borderTop:"none",borderBottom:"none"}},OTe=function(e){Wa(t,e);function t(){var r,n,i,o;Qa(this,t);for(var s=arguments.length,l=Array(s),c=0;c"u"?"undefined":uTe(He))==="object"&&typeof He.commit<"u"?dr=He.commit:dr=!0,Ge){var Ue=Wt({},T,{definitions:T.definitions.map(function(bt){return bt===j?Ge:bt})});return dr&&me(Ue),Ue}else return T},schema:o,getDefaultFieldNames:S,getDefaultScalarArgValue:A,makeDefaultArg:l,onRunOperation:function(){n.props.onRunOperation&&n.props.onRunOperation(K)},styleConfig:c,availableFragments:U})}),z),V)}}]),t}(be.PureComponent);O$.defaultProps={getDefaultFieldNames:w$,getDefaultScalarArgValue:C$};var DTe=function(e){Wa(t,e);function t(){var r,n,i,o;Qa(this,t);for(var s=arguments.length,l=Array(s),c=0;c{"use strict";Object.defineProperty(r0,"__esModule",{value:!0});r0.Explorer=void 0;var LTe=N$(),D$=PTe(LTe);function PTe(e){return e&&e.__esModule?e:{default:e}}r0.Explorer=D$.default;r0.default=D$.default});var V$=X(RI=>{"use strict";var j$=mf();RI.createRoot=j$.createRoot,RI.hydrateRoot=j$.hydrateRoot;var yGe});var Y=fe(K3(),1),ue=fe(Ee(),1),te=fe(Ee(),1);function X3(e){var t,r,n="";if(typeof e=="string"||typeof e=="number")n+=e;else if(typeof e=="object")if(Array.isArray(e))for(t=0;t{let n=e.subscribe({next(i){t(i),n.unsubscribe()},error:r,complete(){r(new Error("no value resolved"))}})})}function YN(e){return typeof e=="object"&&e!==null&&"subscribe"in e&&typeof e.subscribe=="function"}function KN(e){return typeof e=="object"&&e!==null&&(e[Symbol.toStringTag]==="AsyncGenerator"||Symbol.asyncIterator in e)}function Sfe(e){var t;return q4(this,void 0,void 0,function*(){let r=(t=("return"in e?e:e[Symbol.asyncIterator]()).return)===null||t===void 0?void 0:t.bind(e),i=yield("next"in e?e:e[Symbol.asyncIterator]()).next.bind(e)();return r?.(),i.value})}function XN(e){return q4(this,void 0,void 0,function*(){let t=yield e;return KN(t)?Sfe(t):YN(t)?Cfe(t):t})}function ZN(e){return JSON.stringify(e,null,2)}function kfe(e){return Object.assign(Object.assign({},e),{message:e.message,stack:e.stack})}function j4(e){return e instanceof Error?kfe(e):e}function fp(e){return Array.isArray(e)?ZN({errors:e.map(t=>j4(t))}):ZN({errors:[j4(e)]})}function SA(e){return ZN(e)}var Hn=fe(Ur());function V4(e,t,r){let n=[];if(!e||!t)return{insertions:n,result:t};let i;try{i=(0,Hn.parse)(t)}catch{return{insertions:n,result:t}}let o=r||Ofe,s=new Hn.TypeInfo(e);return(0,Hn.visit)(i,{leave(l){s.leave(l)},enter(l){if(s.enter(l),l.kind==="Field"&&!l.selectionSet){let c=s.getType(),f=U4(Lfe(c),o);if(f&&l.loc){let m=Dfe(t,l.loc.start);n.push({index:l.loc.end,string:" "+(0,Hn.print)(f).replaceAll(` +`),j=N+U.length,J=U[U.length-1].length;return{from:n(j,J),to:n(j+z.length-1,z.length==1?J+z[0].length:z[z.length-1].length),match:B}; + } + } + }ei(v,'searchRegexpBackwardMultiline');var g,y;String.prototype.normalize?(g=ei(function(b){ + return b.normalize('NFD').toLowerCase(); + },'doFold'),y=ei(function(b){ + return b.normalize('NFD'); + },'noFold')):(g=ei(function(b){ + return b.toLowerCase(); + },'doFold'),y=ei(function(b){ + return b; + },'noFold'));function w(b,C,x,k){ + if(b.length==C.length)return x;for(var P=0,D=x+Math.max(0,b.length-C.length);;){ + if(P==D)return P;var N=P+D>>1,I=k(b.slice(0,N)).length;if(I==x)return N;I>x?D=N:P=N+1; + } + }ei(w,'adjustPos');function T(b,C,x,k){ + if(!C.length)return null;var P=k?g:y,D=P(C).split(/\r|\n\r?/);e:for(var N=x.line,I=x.ch,V=b.lastLine()+1-D.length;N<=V;N++,I=0){ + var G=b.getLine(N).slice(I),B=P(G);if(D.length==1){ + var U=B.indexOf(D[0]);if(U==-1)continue e;var x=w(G,B,U,P)+I;return{from:n(N,w(G,B,U,P)+I),to:n(N,w(G,B,U+D[0].length,P)+I)}; + }else{ + var z=B.length-D[0].length;if(B.slice(z)!=D[0])continue e;for(var j=1;j=V;N--,I=-1){ + var G=b.getLine(N);I>-1&&(G=G.slice(0,I));var B=P(G);if(D.length==1){ + var U=B.lastIndexOf(D[0]);if(U==-1)continue e;return{from:n(N,w(G,B,U,P)),to:n(N,w(G,B,U+D[0].length,P))}; + }else{ + var z=D[D.length-1];if(B.slice(0,z.length)!=z)continue e;for(var j=1,x=N-D.length+1;j(this.doc.getLine(C.line)||'').length&&(C.ch=0,C.line++)),r.cmpPos(C,this.doc.clipPos(C))!=0))return this.atOccurrence=!1;var x=this.matches(b,C);if(this.afterEmptyMatch=x&&r.cmpPos(x.from,x.to)==0,x)return this.pos=x,this.atOccurrence=!0,this.pos.match||!0;var k=n(b?this.doc.firstLine():this.doc.lastLine()+1,0);return this.pos={from:k,to:k},this.atOccurrence=!1; + },from:function(){ + if(this.atOccurrence)return this.pos.from; + },to:function(){ + if(this.atOccurrence)return this.pos.to; + },replace:function(b,C){ + if(this.atOccurrence){ + var x=r.splitLines(b);this.doc.replaceRange(x,this.pos.from,this.pos.to,C),this.pos.to=n(this.pos.from.line+x.length-1,x[x.length-1].length+(x.length==1?this.pos.from.ch:0)); + } + }},r.defineExtension('getSearchCursor',function(b,C,x){ + return new A(this.doc,b,C,x); + }),r.defineDocExtension('getSearchCursor',function(b,C,x){ + return new A(this,b,C,x); + }),r.defineExtension('selectMatches',function(b,C){ + for(var x=[],k=this.getSearchCursor(b,this.getCursor('from'),C);k.findNext()&&!(r.cmpPos(k.to(),this.getCursor('to'))>0);)x.push({anchor:k.from(),head:k.to()});x.length&&this.setSelections(x,0); + }); + }); + }()),Yxe.exports; +}var Wxe,ei,Yxe,oJ,kE=at(()=>{ + ir();Wxe=Object.defineProperty,ei=(e,t)=>Wxe(e,'name',{value:t,configurable:!0}),Yxe={exports:{}};ei(Qf,'requireSearchcursor'); +});var MM={};Ui(MM,{s:()=>Jxe});function aJ(e,t){ + for(var r=0;rn[i]}); + } + } + }return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:'Module'})); +}var Kxe,Xxe,sJ,Zxe,Jxe,IM=at(()=>{ + ir();kE();Kxe=Object.defineProperty,Xxe=(e,t)=>Kxe(e,'name',{value:t,configurable:!0});Xxe(aJ,'_mergeNamespaces');sJ=Qf(),Zxe=_t(sJ),Jxe=aJ({__proto__:null,default:Zxe},[sJ]); +});var FM={};Ui(FM,{a:()=>Wf,d:()=>twe});function lJ(e,t){ + for(var r=0;rn[i]}); + } + } + }return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:'Module'})); +}var _xe,Zm,$xe,Wf,ewe,twe,ky=at(()=>{ + ir();_xe=Object.defineProperty,Zm=(e,t)=>_xe(e,'name',{value:t,configurable:!0});Zm(lJ,'_mergeNamespaces');$xe={exports:{}};(function(e,t){ + (function(r){ + r(Kt()); + })(function(r){ + function n(o,s,l){ + var c=o.getWrapperElement(),f;return f=c.appendChild(document.createElement('div')),l?f.className='CodeMirror-dialog CodeMirror-dialog-bottom':f.className='CodeMirror-dialog CodeMirror-dialog-top',typeof s=='string'?f.innerHTML=s:f.appendChild(s),r.addClass(c,'dialog-opened'),f; + }Zm(n,'dialogDiv');function i(o,s){ + o.state.currentNotificationClose&&o.state.currentNotificationClose(),o.state.currentNotificationClose=s; + }Zm(i,'closeNotification'),r.defineExtension('openDialog',function(o,s,l){ + l||(l={}),i(this,null);var c=n(this,o,l.bottom),f=!1,m=this;function v(w){ + if(typeof w=='string')g.value=w;else{ + if(f)return;f=!0,r.rmClass(c.parentNode,'dialog-opened'),c.parentNode.removeChild(c),m.focus(),l.onClose&&l.onClose(c); + } + }Zm(v,'close');var g=c.getElementsByTagName('input')[0],y;return g?(g.focus(),l.value&&(g.value=l.value,l.selectValueOnOpen!==!1&&g.select()),l.onInput&&r.on(g,'input',function(w){ + l.onInput(w,g.value,v); + }),l.onKeyUp&&r.on(g,'keyup',function(w){ + l.onKeyUp(w,g.value,v); + }),r.on(g,'keydown',function(w){ + l&&l.onKeyDown&&l.onKeyDown(w,g.value,v)||((w.keyCode==27||l.closeOnEnter!==!1&&w.keyCode==13)&&(g.blur(),r.e_stop(w),v()),w.keyCode==13&&s(g.value,w)); + }),l.closeOnBlur!==!1&&r.on(c,'focusout',function(w){ + w.relatedTarget!==null&&v(); + })):(y=c.getElementsByTagName('button')[0])&&(r.on(y,'click',function(){ + v(),m.focus(); + }),l.closeOnBlur!==!1&&r.on(y,'blur',v),y.focus()),v; + }),r.defineExtension('openConfirm',function(o,s,l){ + i(this,null);var c=n(this,o,l&&l.bottom),f=c.getElementsByTagName('button'),m=!1,v=this,g=1;function y(){ + m||(m=!0,r.rmClass(c.parentNode,'dialog-opened'),c.parentNode.removeChild(c),v.focus()); + }Zm(y,'close'),f[0].focus();for(var w=0;wowe});function uJ(e,t){ + for(var r=0;rn[i]}); + } + } + }return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:'Module'})); +}var rwe,OE,nwe,cJ,iwe,owe,jM=at(()=>{ + ir();ky();rwe=Object.defineProperty,OE=(e,t)=>rwe(e,'name',{value:t,configurable:!0});OE(uJ,'_mergeNamespaces');nwe={exports:{}};(function(e,t){ + (function(r){ + r(Kt(),Wf); + })(function(r){ + r.defineOption('search',{bottom:!1});function n(s,l,c,f,m){ + s.openDialog?s.openDialog(l,m,{value:f,selectValueOnOpen:!0,bottom:s.options.search.bottom}):m(prompt(c,f)); + }OE(n,'dialog');function i(s){ + return s.phrase('Jump to line:')+' '+s.phrase('(Use line:column or scroll% syntax)')+''; + }OE(i,'getJumpDialog');function o(s,l){ + var c=Number(l);return/^[-+]/.test(l)?s.getCursor().line+c:c-1; + }OE(o,'interpretLine'),r.commands.jumpToLine=function(s){ + var l=s.getCursor();n(s,i(s),s.phrase('Jump to line:'),l.line+1+':'+l.ch,function(c){ + if(c){ + var f;if(f=/^\s*([\+\-]?\d+)\s*\:\s*(\d+)\s*$/.exec(c))s.setCursor(o(s,f[1]),Number(f[2]));else if(f=/^\s*([\+\-]?\d+(\.\d+)?)\%\s*/.exec(c)){ + var m=Math.round(s.lineCount()*Number(f[1])/100);/^[-+]/.test(f[1])&&(m=l.line+m+1),s.setCursor(m-1,l.ch); + }else(f=/^\s*\:?\s*([\+\-]?\d+)\s*/.exec(c))&&s.setCursor(o(s,f[1]),l.ch); + } + }); + },r.keyMap.default['Alt-G']='jumpToLine'; + }); + })();cJ=nwe.exports,iwe=_t(cJ),owe=uJ({__proto__:null,default:iwe},[cJ]); +});var VM={};Ui(VM,{s:()=>uwe});function fJ(e,t){ + for(var r=0;rn[i]}); + } + } + }return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:'Module'})); +}var awe,Eo,swe,dJ,lwe,uwe,UM=at(()=>{ + ir();kE();NM();awe=Object.defineProperty,Eo=(e,t)=>awe(e,'name',{value:t,configurable:!0});Eo(fJ,'_mergeNamespaces');swe={exports:{}};(function(e,t){ + (function(r){ + r(Kt(),Qf(),Sy()); + })(function(r){ + var n=r.commands,i=r.Pos;function o(x,k,P){ + if(P<0&&k.ch==0)return x.clipPos(i(k.line-1));var D=x.getLine(k.line);if(P>0&&k.ch>=D.length)return x.clipPos(i(k.line+1,0));for(var N='start',I,V=k.ch,G=V,B=P<0?0:D.length,U=0;G!=B;G+=P,U++){ + var z=D.charAt(P<0?G-1:G),j=z!='_'&&r.isWordChar(z)?'w':'o';if(j=='w'&&z.toUpperCase()==z&&(j='W'),N=='start')j!='o'?(N='in',I=j):V=G+P;else if(N=='in'&&I!=j){ + if(I=='w'&&j=='W'&&P<0&&G--,I=='W'&&j=='w'&&P>0)if(G==V+1){ + I='w';continue; + }else G--;break; + } + }return i(k.line,G); + }Eo(o,'findPosSubword');function s(x,k){ + x.extendSelectionsBy(function(P){ + return x.display.shift||x.doc.extend||P.empty()?o(x.doc,P.head,k):k<0?P.from():P.to(); + }); + }Eo(s,'moveSubword'),n.goSubwordLeft=function(x){ + s(x,-1); + },n.goSubwordRight=function(x){ + s(x,1); + },n.scrollLineUp=function(x){ + var k=x.getScrollInfo();if(!x.somethingSelected()){ + var P=x.lineAtHeight(k.top+k.clientHeight,'local');x.getCursor().line>=P&&x.execCommand('goLineUp'); + }x.scrollTo(null,k.top-x.defaultTextHeight()); + },n.scrollLineDown=function(x){ + var k=x.getScrollInfo();if(!x.somethingSelected()){ + var P=x.lineAtHeight(k.top,'local')+1;x.getCursor().line<=P&&x.execCommand('goLineDown'); + }x.scrollTo(null,k.top+x.defaultTextHeight()); + },n.splitSelectionByLine=function(x){ + for(var k=x.listSelections(),P=[],D=0;DN.line&&V==I.line&&I.ch==0||P.push({anchor:V==N.line?N:i(V,0),head:V==I.line?I:i(V)});x.setSelections(P,0); + },n.singleSelectionTop=function(x){ + var k=x.listSelections()[0];x.setSelection(k.anchor,k.head,{scroll:!1}); + },n.selectLine=function(x){ + for(var k=x.listSelections(),P=[],D=0;DD?P.push(G,B):P.length&&(P[P.length-1]=B),D=B; + }x.operation(function(){ + for(var U=0;Ux.lastLine()?x.replaceRange(` +`+J,i(x.lastLine()),null,'+swapLine'):x.replaceRange(J+` +`,i(j,0),null,'+swapLine'); + }x.setSelections(N),x.scrollIntoView(); + }); + },n.swapLineDown=function(x){ + if(x.isReadOnly())return r.Pass;for(var k=x.listSelections(),P=[],D=x.lastLine()+1,N=k.length-1;N>=0;N--){ + var I=k[N],V=I.to().line+1,G=I.from().line;I.to().ch==0&&!I.empty()&&V--,V=0;B-=2){ + var U=P[B],z=P[B+1],j=x.getLine(U);U==x.lastLine()?x.replaceRange('',i(U-1),i(U),'+swapLine'):x.replaceRange('',i(U,0),i(U+1,0),'+swapLine'),x.replaceRange(j+` +`,i(z,0),null,'+swapLine'); + }x.scrollIntoView(); + }); + },n.toggleCommentIndented=function(x){ + x.toggleComment({indent:!0}); + },n.joinLines=function(x){ + for(var k=x.listSelections(),P=[],D=0;D=0;I--){ + var V=P[D[I]];if(!(G&&r.cmpPos(V.head,G)>0)){ + var B=c(x,V.head);G=B.from,x.replaceRange(k(B.word),B.from,B.to); + } + } + }); + }Eo(T,'modifyWordOrSelection'),n.smartBackspace=function(x){ + if(x.somethingSelected())return r.Pass;x.operation(function(){ + for(var k=x.listSelections(),P=x.getOption('indentUnit'),D=k.length-1;D>=0;D--){ + var N=k[D].head,I=x.getRange({line:N.line,ch:0},N),V=r.countColumn(I,null,x.getOption('tabSize')),G=x.findPosH(N,-1,'char',!1);if(I&&!/\S/.test(I)&&V%P==0){ + var B=new i(N.line,r.findColumn(I,V-P,P));B.ch!=N.ch&&(G=B); + }x.replaceRange('',G,N,'+delete'); + } + }); + },n.delLineRight=function(x){ + x.operation(function(){ + for(var k=x.listSelections(),P=k.length-1;P>=0;P--)x.replaceRange('',k[P].anchor,i(k[P].to().line),'+delete');x.scrollIntoView(); + }); + },n.upcaseAtCursor=function(x){ + T(x,function(k){ + return k.toUpperCase(); + }); + },n.downcaseAtCursor=function(x){ + T(x,function(k){ + return k.toLowerCase(); + }); + },n.setSublimeMark=function(x){ + x.state.sublimeMark&&x.state.sublimeMark.clear(),x.state.sublimeMark=x.setBookmark(x.getCursor()); + },n.selectToSublimeMark=function(x){ + var k=x.state.sublimeMark&&x.state.sublimeMark.find();k&&x.setSelection(x.getCursor(),k); + },n.deleteToSublimeMark=function(x){ + var k=x.state.sublimeMark&&x.state.sublimeMark.find();if(k){ + var P=x.getCursor(),D=k;if(r.cmpPos(P,D)>0){ + var N=D;D=P,P=N; + }x.state.sublimeKilled=x.getRange(P,D),x.replaceRange('',P,D); + } + },n.swapWithSublimeMark=function(x){ + var k=x.state.sublimeMark&&x.state.sublimeMark.find();k&&(x.state.sublimeMark.clear(),x.state.sublimeMark=x.setBookmark(x.getCursor()),x.setCursor(k)); + },n.sublimeYank=function(x){ + x.state.sublimeKilled!=null&&x.replaceSelection(x.state.sublimeKilled,null,'paste'); + },n.showInCenter=function(x){ + var k=x.cursorCoords(null,'local');x.scrollTo(null,(k.top+k.bottom)/2-x.getScrollInfo().clientHeight/2); + };function S(x){ + var k=x.getCursor('from'),P=x.getCursor('to');if(r.cmpPos(k,P)==0){ + var D=c(x,k);if(!D.word)return;k=D.from,P=D.to; + }return{from:k,to:P,query:x.getRange(k,P),word:D}; + }Eo(S,'getTarget');function A(x,k){ + var P=S(x);if(P){ + var D=P.query,N=x.getSearchCursor(D,k?P.to:P.from);(k?N.findNext():N.findPrevious())?x.setSelection(N.from(),N.to()):(N=x.getSearchCursor(D,k?i(x.firstLine(),0):x.clipPos(i(x.lastLine()))),(k?N.findNext():N.findPrevious())?x.setSelection(N.from(),N.to()):P.word&&x.setSelection(P.from,P.to)); + } + }Eo(A,'findAndGoTo'),n.findUnder=function(x){ + A(x,!0); + },n.findUnderPrevious=function(x){ + A(x,!1); + },n.findAllUnder=function(x){ + var k=S(x);if(k){ + for(var P=x.getSearchCursor(k.query),D=[],N=-1;P.findNext();)D.push({anchor:P.from(),head:P.to()}),P.from().line<=k.from.line&&P.from().ch<=k.from.ch&&N++;x.setSelections(D,N); + } + };var b=r.keyMap;b.macSublime={'Cmd-Left':'goLineStartSmart','Shift-Tab':'indentLess','Shift-Ctrl-K':'deleteLine','Alt-Q':'wrapLines','Ctrl-Left':'goSubwordLeft','Ctrl-Right':'goSubwordRight','Ctrl-Alt-Up':'scrollLineUp','Ctrl-Alt-Down':'scrollLineDown','Cmd-L':'selectLine','Shift-Cmd-L':'splitSelectionByLine',Esc:'singleSelectionTop','Cmd-Enter':'insertLineAfter','Shift-Cmd-Enter':'insertLineBefore','Cmd-D':'selectNextOccurrence','Shift-Cmd-Space':'selectScope','Shift-Cmd-M':'selectBetweenBrackets','Cmd-M':'goToBracket','Cmd-Ctrl-Up':'swapLineUp','Cmd-Ctrl-Down':'swapLineDown','Cmd-/':'toggleCommentIndented','Cmd-J':'joinLines','Shift-Cmd-D':'duplicateLine',F5:'sortLines','Shift-F5':'reverseSortLines','Cmd-F5':'sortLinesInsensitive','Shift-Cmd-F5':'reverseSortLinesInsensitive',F2:'nextBookmark','Shift-F2':'prevBookmark','Cmd-F2':'toggleBookmark','Shift-Cmd-F2':'clearBookmarks','Alt-F2':'selectBookmarks',Backspace:'smartBackspace','Cmd-K Cmd-D':'skipAndSelectNextOccurrence','Cmd-K Cmd-K':'delLineRight','Cmd-K Cmd-U':'upcaseAtCursor','Cmd-K Cmd-L':'downcaseAtCursor','Cmd-K Cmd-Space':'setSublimeMark','Cmd-K Cmd-A':'selectToSublimeMark','Cmd-K Cmd-W':'deleteToSublimeMark','Cmd-K Cmd-X':'swapWithSublimeMark','Cmd-K Cmd-Y':'sublimeYank','Cmd-K Cmd-C':'showInCenter','Cmd-K Cmd-G':'clearBookmarks','Cmd-K Cmd-Backspace':'delLineLeft','Cmd-K Cmd-1':'foldAll','Cmd-K Cmd-0':'unfoldAll','Cmd-K Cmd-J':'unfoldAll','Ctrl-Shift-Up':'addCursorToPrevLine','Ctrl-Shift-Down':'addCursorToNextLine','Cmd-F3':'findUnder','Shift-Cmd-F3':'findUnderPrevious','Alt-F3':'findAllUnder','Shift-Cmd-[':'fold','Shift-Cmd-]':'unfold','Cmd-I':'findIncremental','Shift-Cmd-I':'findIncrementalReverse','Cmd-H':'replace',F3:'findNext','Shift-F3':'findPrev',fallthrough:'macDefault'},r.normalizeKeyMap(b.macSublime),b.pcSublime={'Shift-Tab':'indentLess','Shift-Ctrl-K':'deleteLine','Alt-Q':'wrapLines','Ctrl-T':'transposeChars','Alt-Left':'goSubwordLeft','Alt-Right':'goSubwordRight','Ctrl-Up':'scrollLineUp','Ctrl-Down':'scrollLineDown','Ctrl-L':'selectLine','Shift-Ctrl-L':'splitSelectionByLine',Esc:'singleSelectionTop','Ctrl-Enter':'insertLineAfter','Shift-Ctrl-Enter':'insertLineBefore','Ctrl-D':'selectNextOccurrence','Shift-Ctrl-Space':'selectScope','Shift-Ctrl-M':'selectBetweenBrackets','Ctrl-M':'goToBracket','Shift-Ctrl-Up':'swapLineUp','Shift-Ctrl-Down':'swapLineDown','Ctrl-/':'toggleCommentIndented','Ctrl-J':'joinLines','Shift-Ctrl-D':'duplicateLine',F9:'sortLines','Shift-F9':'reverseSortLines','Ctrl-F9':'sortLinesInsensitive','Shift-Ctrl-F9':'reverseSortLinesInsensitive',F2:'nextBookmark','Shift-F2':'prevBookmark','Ctrl-F2':'toggleBookmark','Shift-Ctrl-F2':'clearBookmarks','Alt-F2':'selectBookmarks',Backspace:'smartBackspace','Ctrl-K Ctrl-D':'skipAndSelectNextOccurrence','Ctrl-K Ctrl-K':'delLineRight','Ctrl-K Ctrl-U':'upcaseAtCursor','Ctrl-K Ctrl-L':'downcaseAtCursor','Ctrl-K Ctrl-Space':'setSublimeMark','Ctrl-K Ctrl-A':'selectToSublimeMark','Ctrl-K Ctrl-W':'deleteToSublimeMark','Ctrl-K Ctrl-X':'swapWithSublimeMark','Ctrl-K Ctrl-Y':'sublimeYank','Ctrl-K Ctrl-C':'showInCenter','Ctrl-K Ctrl-G':'clearBookmarks','Ctrl-K Ctrl-Backspace':'delLineLeft','Ctrl-K Ctrl-1':'foldAll','Ctrl-K Ctrl-0':'unfoldAll','Ctrl-K Ctrl-J':'unfoldAll','Ctrl-Alt-Up':'addCursorToPrevLine','Ctrl-Alt-Down':'addCursorToNextLine','Ctrl-F3':'findUnder','Shift-Ctrl-F3':'findUnderPrevious','Alt-F3':'findAllUnder','Shift-Ctrl-[':'fold','Shift-Ctrl-]':'unfold','Ctrl-I':'findIncremental','Shift-Ctrl-I':'findIncrementalReverse','Ctrl-H':'replace',F3:'findNext','Shift-F3':'findPrev',fallthrough:'pcDefault'},r.normalizeKeyMap(b.pcSublime);var C=b.default==b.macDefault;b.sublime=C?b.macSublime:b.pcSublime; + }); + })();dJ=swe.exports,lwe=_t(dJ),uwe=fJ({__proto__:null,default:lwe},[dJ]); +});var hJ={};Ui(hJ,{j:()=>pwe});function pJ(e,t){ + for(var r=0;rn[i]}); + } + } + }return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:'Module'})); +}var cwe,Ce,fwe,mJ,dwe,pwe,vJ=at(()=>{ + ir();cwe=Object.defineProperty,Ce=(e,t)=>cwe(e,'name',{value:t,configurable:!0});Ce(pJ,'_mergeNamespaces');fwe={exports:{}};(function(e,t){ + (function(r){ + r(Kt()); + })(function(r){ + r.defineMode('javascript',function(n,i){ + var o=n.indentUnit,s=i.statementIndent,l=i.jsonld,c=i.json||l,f=i.trackScope!==!1,m=i.typescript,v=i.wordCharacters||/[\w$\xa1-\uffff]/,g=function(){ + function q(Sn){ + return{type:Sn,style:'keyword'}; + }Ce(q,'kw');var W=q('keyword a'),ce=q('keyword b'),we=q('keyword c'),ct=q('keyword d'),kt=q('operator'),Ve={type:'atom',style:'atom'};return{if:q('if'),while:W,with:W,else:ce,do:ce,try:ce,finally:ce,return:ct,break:ct,continue:ct,new:q('new'),delete:we,void:we,throw:we,debugger:q('debugger'),var:q('var'),const:q('var'),let:q('var'),function:q('function'),catch:q('catch'),for:q('for'),switch:q('switch'),case:q('case'),default:q('default'),in:kt,typeof:kt,instanceof:kt,true:Ve,false:Ve,null:Ve,undefined:Ve,NaN:Ve,Infinity:Ve,this:q('this'),class:q('class'),super:q('atom'),yield:we,export:q('export'),import:q('import'),extends:we,await:we}; + }(),y=/[+\-*&%=<>!?|~^@]/,w=/^@(context|id|value|language|type|container|list|set|reverse|index|base|vocab|graph)"/;function T(q){ + for(var W=!1,ce,we=!1;(ce=q.next())!=null;){ + if(!W){ + if(ce=='/'&&!we)return;ce=='['?we=!0:we&&ce==']'&&(we=!1); + }W=!W&&ce=='\\'; + } + }Ce(T,'readRegexp');var S,A;function b(q,W,ce){ + return S=q,A=ce,W; + }Ce(b,'ret');function C(q,W){ + var ce=q.next();if(ce=='"'||ce=="'")return W.tokenize=x(ce),W.tokenize(q,W);if(ce=='.'&&q.match(/^\d[\d_]*(?:[eE][+\-]?[\d_]+)?/))return b('number','number');if(ce=='.'&&q.match('..'))return b('spread','meta');if(/[\[\]{}\(\),;\:\.]/.test(ce))return b(ce);if(ce=='='&&q.eat('>'))return b('=>','operator');if(ce=='0'&&q.match(/^(?:x[\dA-Fa-f_]+|o[0-7_]+|b[01_]+)n?/))return b('number','number');if(/\d/.test(ce))return q.match(/^[\d_]*(?:n|(?:\.[\d_]*)?(?:[eE][+\-]?[\d_]+)?)?/),b('number','number');if(ce=='/')return q.eat('*')?(W.tokenize=k,k(q,W)):q.eat('/')?(q.skipToEnd(),b('comment','comment')):Ae(q,W,1)?(T(q),q.match(/^\b(([gimyus])(?![gimyus]*\2))+\b/),b('regexp','string-2')):(q.eat('='),b('operator','operator',q.current()));if(ce=='`')return W.tokenize=P,P(q,W);if(ce=='#'&&q.peek()=='!')return q.skipToEnd(),b('meta','meta');if(ce=='#'&&q.eatWhile(v))return b('variable','property');if(ce=='<'&&q.match('!--')||ce=='-'&&q.match('->')&&!/\S/.test(q.string.slice(0,q.start)))return q.skipToEnd(),b('comment','comment');if(y.test(ce))return(ce!='>'||!W.lexical||W.lexical.type!='>')&&(q.eat('=')?(ce=='!'||ce=='=')&&q.eat('='):/[<>*+\-|&?]/.test(ce)&&(q.eat(ce),ce=='>'&&q.eat(ce))),ce=='?'&&q.eat('.')?b('.'):b('operator','operator',q.current());if(v.test(ce)){ + q.eatWhile(v);var we=q.current();if(W.lastType!='.'){ + if(g.propertyIsEnumerable(we)){ + var ct=g[we];return b(ct.type,ct.style,we); + }if(we=='async'&&q.match(/^(\s|\/\*([^*]|\*(?!\/))*?\*\/)*[\[\(\w]/,!1))return b('async','keyword',we); + }return b('variable','variable',we); + } + }Ce(C,'tokenBase');function x(q){ + return function(W,ce){ + var we=!1,ct;if(l&&W.peek()=='@'&&W.match(w))return ce.tokenize=C,b('jsonld-keyword','meta');for(;(ct=W.next())!=null&&!(ct==q&&!we);)we=!we&&ct=='\\';return we||(ce.tokenize=C),b('string','string'); + }; + }Ce(x,'tokenString');function k(q,W){ + for(var ce=!1,we;we=q.next();){ + if(we=='/'&&ce){ + W.tokenize=C;break; + }ce=we=='*'; + }return b('comment','comment'); + }Ce(k,'tokenComment');function P(q,W){ + for(var ce=!1,we;(we=q.next())!=null;){ + if(!ce&&(we=='`'||we=='$'&&q.eat('{'))){ + W.tokenize=C;break; + }ce=!ce&&we=='\\'; + }return b('quasi','string-2',q.current()); + }Ce(P,'tokenQuasi');var D='([{}])';function N(q,W){ + W.fatArrowAt&&(W.fatArrowAt=null);var ce=q.string.indexOf('=>',q.start);if(!(ce<0)){ + if(m){ + var we=/:\s*(?:\w+(?:<[^>]*>|\[\])?|\{[^}]*\})\s*$/.exec(q.string.slice(q.start,ce));we&&(ce=we.index); + }for(var ct=0,kt=!1,Ve=ce-1;Ve>=0;--Ve){ + var Sn=q.string.charAt(Ve),Vi=D.indexOf(Sn);if(Vi>=0&&Vi<3){ + if(!ct){ + ++Ve;break; + }if(--ct==0){ + Sn=='('&&(kt=!0);break; + } + }else if(Vi>=3&&Vi<6)++ct;else if(v.test(Sn))kt=!0;else if(/["'\/`]/.test(Sn))for(;;--Ve){ + if(Ve==0)return;var ld=q.string.charAt(Ve-1);if(ld==Sn&&q.string.charAt(Ve-2)!='\\'){ + Ve--;break; + } + }else if(kt&&!ct){ + ++Ve;break; + } + }kt&&!ct&&(W.fatArrowAt=Ve); + } + }Ce(N,'findFatArrow');var I={atom:!0,number:!0,variable:!0,string:!0,regexp:!0,this:!0,import:!0,'jsonld-keyword':!0};function V(q,W,ce,we,ct,kt){ + this.indented=q,this.column=W,this.type=ce,this.prev=ct,this.info=kt,we!=null&&(this.align=we); + }Ce(V,'JSLexical');function G(q,W){ + if(!f)return!1;for(var ce=q.localVars;ce;ce=ce.next)if(ce.name==W)return!0;for(var we=q.context;we;we=we.prev)for(var ce=we.vars;ce;ce=ce.next)if(ce.name==W)return!0; + }Ce(G,'inScope');function B(q,W,ce,we,ct){ + var kt=q.cc;for(U.state=q,U.stream=ct,U.marked=null,U.cc=kt,U.style=W,q.lexical.hasOwnProperty('align')||(q.lexical.align=!0);;){ + var Ve=kt.length?kt.pop():c?Ue:He;if(Ve(ce,we)){ + for(;kt.length&&kt[kt.length-1].lex;)kt.pop()();return U.marked?U.marked:ce=='variable'&&G(q,we)?'variable-2':W; + } + } + }Ce(B,'parseJS');var U={state:null,column:null,marked:null,cc:null};function z(){ + for(var q=arguments.length-1;q>=0;q--)U.cc.push(arguments[q]); + }Ce(z,'pass');function j(){ + return z.apply(null,arguments),!0; + }Ce(j,'cont');function J(q,W){ + for(var ce=W;ce;ce=ce.next)if(ce.name==q)return!0;return!1; + }Ce(J,'inList');function K(q){ + var W=U.state;if(U.marked='def',!!f){ + if(W.context){ + if(W.lexical.info=='var'&&W.context&&W.context.block){ + var ce=ee(q,W.context);if(ce!=null){ + W.context=ce;return; + } + }else if(!J(q,W.localVars)){ + W.localVars=new xe(q,W.localVars);return; + } + }i.globalVars&&!J(q,W.globalVars)&&(W.globalVars=new xe(q,W.globalVars)); + } + }Ce(K,'register');function ee(q,W){ + if(W)if(W.block){ + var ce=ee(q,W.prev);return ce?ce==W.prev?W:new se(ce,W.vars,!0):null; + }else return J(q,W.vars)?W:new se(W.prev,new xe(q,W.vars),!1);else return null; + }Ce(ee,'registerVarScoped');function re(q){ + return q=='public'||q=='private'||q=='protected'||q=='abstract'||q=='readonly'; + }Ce(re,'isModifier');function se(q,W,ce){ + this.prev=q,this.vars=W,this.block=ce; + }Ce(se,'Context');function xe(q,W){ + this.name=q,this.next=W; + }Ce(xe,'Var');var Re=new xe('this',new xe('arguments',null));function Se(){ + U.state.context=new se(U.state.context,U.state.localVars,!1),U.state.localVars=Re; + }Ce(Se,'pushcontext');function ie(){ + U.state.context=new se(U.state.context,U.state.localVars,!0),U.state.localVars=null; + }Ce(ie,'pushblockcontext'),Se.lex=ie.lex=!0;function ye(){ + U.state.localVars=U.state.context.vars,U.state.context=U.state.context.prev; + }Ce(ye,'popcontext'),ye.lex=!0;function me(q,W){ + var ce=Ce(function(){ + var we=U.state,ct=we.indented;if(we.lexical.type=='stat')ct=we.lexical.indented;else for(var kt=we.lexical;kt&&kt.type==')'&&kt.align;kt=kt.prev)ct=kt.indented;we.lexical=new V(ct,U.stream.column(),q,null,we.lexical,W); + },'result');return ce.lex=!0,ce; + }Ce(me,'pushlex');function Oe(){ + var q=U.state;q.lexical.prev&&(q.lexical.type==')'&&(q.indented=q.lexical.indented),q.lexical=q.lexical.prev); + }Ce(Oe,'poplex'),Oe.lex=!0;function Ge(q){ + function W(ce){ + return ce==q?j():q==';'||ce=='}'||ce==')'||ce==']'?z():j(W); + }return Ce(W,'exp'),W; + }Ce(Ge,'expect');function He(q,W){ + return q=='var'?j(me('vardef',W),rd,Ge(';'),Oe):q=='keyword a'?j(me('form'),he,He,Oe):q=='keyword b'?j(me('form'),He,Oe):q=='keyword d'?U.stream.match(/^\s*$/,!1)?j():j(me('stat'),pe,Ge(';'),Oe):q=='debugger'?j(Ge(';')):q=='{'?j(me('}'),ie,ri,Oe,ye):q==';'?j():q=='if'?(U.state.lexical.info=='else'&&U.state.cc[U.state.cc.length-1]==Oe&&U.state.cc.pop()(),j(me('form'),he,He,Oe,oh)):q=='function'?j(ro):q=='for'?j(me('form'),ie,ah,He,ye,Oe):q=='class'||m&&W=='interface'?(U.marked='keyword',j(me('form',q=='class'?q:W),Ul,Oe)):q=='variable'?m&&W=='declare'?(U.marked='keyword',j(He)):m&&(W=='module'||W=='enum'||W=='type')&&U.stream.match(/^\s*\w/,!1)?(U.marked='keyword',W=='enum'?j(Lo):W=='type'?j(sd,Ge('operator'),ut,Ge(';')):j(me('form'),ni,Ge('{'),me('}'),ri,Oe,Oe)):m&&W=='namespace'?(U.marked='keyword',j(me('form'),Ue,He,Oe)):m&&W=='abstract'?(U.marked='keyword',j(He)):j(me('stat'),Vs):q=='switch'?j(me('form'),he,Ge('{'),me('}','switch'),ie,ri,Oe,Oe,ye):q=='case'?j(Ue,Ge(':')):q=='default'?j(Ge(':')):q=='catch'?j(me('form'),Se,dr,He,Oe,ye):q=='export'?j(me('stat'),oc,Oe):q=='import'?j(me('stat'),xr,Oe):q=='async'?j(He):W=='@'?j(Ue,He):z(me('stat'),Ue,Ge(';'),Oe); + }Ce(He,'statement');function dr(q){ + if(q=='(')return j(ca,Ge(')')); + }Ce(dr,'maybeCatchBinding');function Ue(q,W){ + return Fe(q,W,!1); + }Ce(Ue,'expression');function bt(q,W){ + return Fe(q,W,!0); + }Ce(bt,'expressionNoComma');function he(q){ + return q!='('?z():j(me(')'),pe,Ge(')'),Oe); + }Ce(he,'parenExpr');function Fe(q,W,ce){ + if(U.state.fatArrowAt==U.stream.start){ + var we=ce?Or:wt;if(q=='(')return j(Se,me(')'),pr(ca,')'),Oe,Ge('=>'),we,ye);if(q=='variable')return z(Se,ni,Ge('=>'),we,ye); + }var ct=ce?st:Me;return I.hasOwnProperty(q)?j(ct):q=='function'?j(ro,ct):q=='class'||m&&W=='interface'?(U.marked='keyword',j(me('form'),Vl,Oe)):q=='keyword c'||q=='async'?j(ce?bt:Ue):q=='('?j(me(')'),pe,Ge(')'),Oe,ct):q=='operator'||q=='spread'?j(ce?bt:Ue):q=='['?j(me(']'),Pt,Oe,ct):q=='{'?Il(xi,'}',null,ct):q=='quasi'?z(nt,ct):q=='new'?j(ua(ce)):j(); + }Ce(Fe,'expressionInner');function pe(q){ + return q.match(/[;\}\)\],]/)?z():z(Ue); + }Ce(pe,'maybeexpression');function Me(q,W){ + return q==','?j(pe):st(q,W,!1); + }Ce(Me,'maybeoperatorComma');function st(q,W,ce){ + var we=ce==!1?Me:st,ct=ce==!1?Ue:bt;if(q=='=>')return j(Se,ce?Or:wt,ye);if(q=='operator')return/\+\+|--/.test(W)||m&&W=='!'?j(we):m&&W=='<'&&U.stream.match(/^([^<>]|<[^<>]*>)*>\s*\(/,!1)?j(me('>'),pr(ut,'>'),Oe,we):W=='?'?j(Ue,Ge(':'),ct):j(ct);if(q=='quasi')return z(nt,we);if(q!=';'){ + if(q=='(')return Il(bt,')','call',we);if(q=='.')return j(Ml,we);if(q=='[')return j(me(']'),pe,Ge(']'),Oe,we);if(m&&W=='as')return U.marked='keyword',j(ut,we);if(q=='regexp')return U.state.lastType=U.marked='operator',U.stream.backUp(U.stream.pos-U.stream.start-1),j(ct); + } + }Ce(st,'maybeoperatorNoComma');function nt(q,W){ + return q!='quasi'?z():W.slice(W.length-2)!='${'?j(nt):j(pe,lt); + }Ce(nt,'quasi');function lt(q){ + if(q=='}')return U.marked='string-2',U.state.tokenize=P,j(nt); + }Ce(lt,'continueQuasi');function wt(q){ + return N(U.stream,U.state),z(q=='{'?He:Ue); + }Ce(wt,'arrowBody');function Or(q){ + return N(U.stream,U.state),z(q=='{'?He:bt); + }Ce(Or,'arrowBodyNoComma');function ua(q){ + return function(W){ + return W=='.'?j(q?nc:Rl):W=='variable'&&m?j(Us,q?st:Me):z(q?bt:Ue); + }; + }Ce(ua,'maybeTarget');function Rl(q,W){ + if(W=='target')return U.marked='keyword',j(Me); + }Ce(Rl,'target');function nc(q,W){ + if(W=='target')return U.marked='keyword',j(st); + }Ce(nc,'targetNoComma');function Vs(q){ + return q==':'?j(Oe,He):z(Me,Ge(';'),Oe); + }Ce(Vs,'maybelabel');function Ml(q){ + if(q=='variable')return U.marked='property',j(); + }Ce(Ml,'property');function xi(q,W){ + if(q=='async')return U.marked='property',j(xi);if(q=='variable'||U.style=='keyword'){ + if(U.marked='property',W=='get'||W=='set')return j(ic);var ce;return m&&U.state.fatArrowAt==U.stream.start&&(ce=U.stream.match(/^\s*:\s*/,!1))&&(U.state.fatArrowAt=U.stream.pos+ce[0].length),j(tn); + }else{ + if(q=='number'||q=='string')return U.marked=l?'property':U.style+' property',j(tn);if(q=='jsonld-keyword')return j(tn);if(m&&re(W))return U.marked='keyword',j(xi);if(q=='[')return j(Ue,Ya,Ge(']'),tn);if(q=='spread')return j(bt,tn);if(W=='*')return U.marked='keyword',j(xi);if(q==':')return z(tn); + } + }Ce(xi,'objprop');function ic(q){ + return q!='variable'?z(tn):(U.marked='property',j(ro)); + }Ce(ic,'getterSetter');function tn(q){ + if(q==':')return j(bt);if(q=='(')return z(ro); + }Ce(tn,'afterprop');function pr(q,W,ce){ + function we(ct,kt){ + if(ce?ce.indexOf(ct)>-1:ct==','){ + var Ve=U.state.lexical;return Ve.info=='call'&&(Ve.pos=(Ve.pos||0)+1),j(function(Sn,Vi){ + return Sn==W||Vi==W?z():z(q); + },we); + }return ct==W||kt==W?j():ce&&ce.indexOf(';')>-1?z(q):j(Ge(W)); + }return Ce(we,'proceed'),function(ct,kt){ + return ct==W||kt==W?j():z(q,we); + }; + }Ce(pr,'commasep');function Il(q,W,ce){ + for(var we=3;we'),ut);if(q=='quasi')return z(ko,wi); + }Ce(ut,'typeexpr');function Nr(q){ + if(q=='=>')return j(ut); + }Ce(Nr,'maybeReturnType');function ql(q){ + return q.match(/[\}\)\]]/)?j():q==','||q==';'?j(ql):z(rn,ql); + }Ce(ql,'typeprops');function rn(q,W){ + if(q=='variable'||U.style=='keyword')return U.marked='property',j(rn);if(W=='?'||q=='number'||q=='string')return j(rn);if(q==':')return j(ut);if(q=='[')return j(Ge('variable'),rt,Ge(']'),rn);if(q=='(')return z(qi,rn);if(!q.match(/[;\}\)\],]/))return j(); + }Ce(rn,'typeprop');function ko(q,W){ + return q!='quasi'?z():W.slice(W.length-2)!='${'?j(ko):j(ut,mn); + }Ce(ko,'quasiType');function mn(q){ + if(q=='}')return U.marked='string-2',U.state.tokenize=P,j(ko); + }Ce(mn,'continueQuasiType');function jl(q,W){ + return q=='variable'&&U.stream.match(/^\s*[?:]/,!1)||W=='?'?j(jl):q==':'?j(ut):q=='spread'?j(jl):z(ut); + }Ce(jl,'typearg');function wi(q,W){ + if(W=='<')return j(me('>'),pr(ut,'>'),Oe,wi);if(W=='|'||q=='.'||W=='&')return j(ut);if(q=='[')return j(ut,Ge(']'),wi);if(W=='extends'||W=='implements')return U.marked='keyword',j(ut);if(W=='?')return j(ut,Ge(':'),ut); + }Ce(wi,'afterType');function Us(q,W){ + if(W=='<')return j(me('>'),pr(ut,'>'),Oe,wi); + }Ce(Us,'maybeTypeArgs');function Ka(){ + return z(ut,td); + }Ce(Ka,'typeparam');function td(q,W){ + if(W=='=')return j(ut); + }Ce(td,'maybeTypeDefault');function rd(q,W){ + return W=='enum'?(U.marked='keyword',j(Lo)):z(ni,Ya,Oo,od); + }Ce(rd,'vardef');function ni(q,W){ + if(m&&re(W))return U.marked='keyword',j(ni);if(q=='variable')return K(W),j();if(q=='spread')return j(ni);if(q=='[')return Il(id,']');if(q=='{')return Il(nd,'}'); + }Ce(ni,'pattern');function nd(q,W){ + return q=='variable'&&!U.stream.match(/^\s*:/,!1)?(K(W),j(Oo)):(q=='variable'&&(U.marked='property'),q=='spread'?j(ni):q=='}'?z():q=='['?j(Ue,Ge(']'),Ge(':'),nd):j(Ge(':'),ni,Oo)); + }Ce(nd,'proppattern');function id(){ + return z(ni,Oo); + }Ce(id,'eltpattern');function Oo(q,W){ + if(W=='=')return j(bt); + }Ce(Oo,'maybeAssign');function od(q){ + if(q==',')return j(rd); + }Ce(od,'vardefCont');function oh(q,W){ + if(q=='keyword b'&&W=='else')return j(me('form','else'),He,Oe); + }Ce(oh,'maybeelse');function ah(q,W){ + if(W=='await')return j(ah);if(q=='(')return j(me(')'),ad,Oe); + }Ce(ah,'forspec');function ad(q){ + return q=='var'?j(rd,Xa):q=='variable'?j(Xa):z(Xa); + }Ce(ad,'forspec1');function Xa(q,W){ + return q==')'?j():q==';'?j(Xa):W=='in'||W=='of'?(U.marked='keyword',j(Ue,Xa)):z(Ue,Xa); + }Ce(Xa,'forspec2');function ro(q,W){ + if(W=='*')return U.marked='keyword',j(ro);if(q=='variable')return K(W),j(ro);if(q=='(')return j(Se,me(')'),pr(ca,')'),Oe,Fl,He,ye);if(m&&W=='<')return j(me('>'),pr(Ka,'>'),Oe,ro); + }Ce(ro,'functiondef');function qi(q,W){ + if(W=='*')return U.marked='keyword',j(qi);if(q=='variable')return K(W),j(qi);if(q=='(')return j(Se,me(')'),pr(ca,')'),Oe,Fl,ye);if(m&&W=='<')return j(me('>'),pr(Ka,'>'),Oe,qi); + }Ce(qi,'functiondecl');function sd(q,W){ + if(q=='keyword'||q=='variable')return U.marked='type',j(sd);if(W=='<')return j(me('>'),pr(Ka,'>'),Oe); + }Ce(sd,'typename');function ca(q,W){ + return W=='@'&&j(Ue,ca),q=='spread'?j(ca):m&&re(W)?(U.marked='keyword',j(ca)):m&&q=='this'?j(Ya,Oo):z(ni,Ya,Oo); + }Ce(ca,'funarg');function Vl(q,W){ + return q=='variable'?Ul(q,W):No(q,W); + }Ce(Vl,'classExpression');function Ul(q,W){ + if(q=='variable')return K(W),j(No); + }Ce(Ul,'className');function No(q,W){ + if(W=='<')return j(me('>'),pr(Ka,'>'),Oe,No);if(W=='extends'||W=='implements'||m&&q==',')return W=='implements'&&(U.marked='keyword'),j(m?ut:Ue,No);if(q=='{')return j(me('}'),no,Oe); + }Ce(No,'classNameAfter');function no(q,W){ + if(q=='async'||q=='variable'&&(W=='static'||W=='get'||W=='set'||m&&re(W))&&U.stream.match(/^\s+[\w$\xa1-\uffff]/,!1))return U.marked='keyword',j(no);if(q=='variable'||U.style=='keyword')return U.marked='property',j(ji,no);if(q=='number'||q=='string')return j(ji,no);if(q=='[')return j(Ue,Ya,Ge(']'),ji,no);if(W=='*')return U.marked='keyword',j(no);if(m&&q=='(')return z(qi,no);if(q==';'||q==',')return j(no);if(q=='}')return j();if(W=='@')return j(Ue,no); + }Ce(no,'classBody');function ji(q,W){ + if(W=='!'||W=='?')return j(ji);if(q==':')return j(ut,Oo);if(W=='=')return j(bt);var ce=U.state.lexical.prev,we=ce&&ce.info=='interface';return z(we?qi:ro); + }Ce(ji,'classfield');function oc(q,W){ + return W=='*'?(U.marked='keyword',j(ii,Ge(';'))):W=='default'?(U.marked='keyword',j(Ue,Ge(';'))):q=='{'?j(pr(ac,'}'),ii,Ge(';')):z(He); + }Ce(oc,'afterExport');function ac(q,W){ + if(W=='as')return U.marked='keyword',j(Ge('variable'));if(q=='variable')return z(bt,ac); + }Ce(ac,'exportField');function xr(q){ + return q=='string'?j():q=='('?z(Ue):q=='.'?z(Me):z(Qe,Do,ii); + }Ce(xr,'afterImport');function Qe(q,W){ + return q=='{'?Il(Qe,'}'):(q=='variable'&&K(W),W=='*'&&(U.marked='keyword'),j(sc)); + }Ce(Qe,'importSpec');function Do(q){ + if(q==',')return j(Qe,Do); + }Ce(Do,'maybeMoreImports');function sc(q,W){ + if(W=='as')return U.marked='keyword',j(Qe); + }Ce(sc,'maybeAs');function ii(q,W){ + if(W=='from')return U.marked='keyword',j(Ue); + }Ce(ii,'maybeFrom');function Pt(q){ + return q==']'?j():z(pr(bt,']')); + }Ce(Pt,'arrayLiteral');function Lo(){ + return z(me('form'),ni,Ge('{'),me('}'),pr(Bs,'}'),Oe,Oe); + }Ce(Lo,'enumdef');function Bs(){ + return z(ni,Oo); + }Ce(Bs,'enummember');function lc(q,W){ + return q.lastType=='operator'||q.lastType==','||y.test(W.charAt(0))||/[,.]/.test(W.charAt(0)); + }Ce(lc,'isContinuedStatement');function Ae(q,W,ce){ + return W.tokenize==C&&/^(?:operator|sof|keyword [bcd]|case|new|export|default|spread|[\[{}\(,;:]|=>)$/.test(W.lastType)||W.lastType=='quasi'&&/\{\s*$/.test(q.string.slice(0,q.pos-(ce||0))); + }return Ce(Ae,'expressionAllowed'),{startState:function(q){ + var W={tokenize:C,lastType:'sof',cc:[],lexical:new V((q||0)-o,0,'block',!1),localVars:i.localVars,context:i.localVars&&new se(null,null,!1),indented:q||0};return i.globalVars&&typeof i.globalVars=='object'&&(W.globalVars=i.globalVars),W; + },token:function(q,W){ + if(q.sol()&&(W.lexical.hasOwnProperty('align')||(W.lexical.align=!1),W.indented=q.indentation(),N(q,W)),W.tokenize!=k&&q.eatSpace())return null;var ce=W.tokenize(q,W);return S=='comment'?ce:(W.lastType=S=='operator'&&(A=='++'||A=='--')?'incdec':S,B(W,ce,S,A,q)); + },indent:function(q,W){ + if(q.tokenize==k||q.tokenize==P)return r.Pass;if(q.tokenize!=C)return 0;var ce=W&&W.charAt(0),we=q.lexical,ct;if(!/^\s*else\b/.test(W))for(var kt=q.cc.length-1;kt>=0;--kt){ + var Ve=q.cc[kt];if(Ve==Oe)we=we.prev;else if(Ve!=oh&&Ve!=ye)break; + }for(;(we.type=='stat'||we.type=='form')&&(ce=='}'||(ct=q.cc[q.cc.length-1])&&(ct==Me||ct==st)&&!/^[,\.=+\-*:?[\(]/.test(W));)we=we.prev;s&&we.type==')'&&we.prev.type=='stat'&&(we=we.prev);var Sn=we.type,Vi=ce==Sn;return Sn=='vardef'?we.indented+(q.lastType=='operator'||q.lastType==','?we.info.length+1:0):Sn=='form'&&ce=='{'?we.indented:Sn=='form'?we.indented+o:Sn=='stat'?we.indented+(lc(q,W)?s||o:0):we.info=='switch'&&!Vi&&i.doubleIndentSwitch!=!1?we.indented+(/^(?:case|default)\b/.test(W)?o:2*o):we.align?we.column+(Vi?0:1):we.indented+(Vi?0:o); + },electricInput:/^\s*(?:case .*?:|default:|\{|\})$/,blockCommentStart:c?null:'/*',blockCommentEnd:c?null:'*/',blockCommentContinue:c?null:' * ',lineComment:c?null:'//',fold:'brace',closeBrackets:"()[]{}''\"\"``",helperType:c?'json':'javascript',jsonldMode:l,jsonMode:c,expressionAllowed:Ae,skipExpression:function(q){ + B(q,'atom','atom','true',new r.StringStream('',2,null)); + }}; + }),r.registerHelper('wordChars','javascript',/[\w$]/),r.defineMIME('text/javascript','javascript'),r.defineMIME('text/ecmascript','javascript'),r.defineMIME('application/javascript','javascript'),r.defineMIME('application/x-javascript','javascript'),r.defineMIME('application/ecmascript','javascript'),r.defineMIME('application/json',{name:'javascript',json:!0}),r.defineMIME('application/x-json',{name:'javascript',json:!0}),r.defineMIME('application/manifest+json',{name:'javascript',json:!0}),r.defineMIME('application/ld+json',{name:'javascript',jsonld:!0}),r.defineMIME('text/typescript',{name:'javascript',typescript:!0}),r.defineMIME('application/typescript',{name:'javascript',typescript:!0}); + }); + })();mJ=fwe.exports,dwe=_t(mJ),pwe=pJ({__proto__:null,default:dwe},[mJ]); +});var bJ={};Ui(bJ,{c:()=>gwe});function gJ(e,t){ + for(var r=0;rn[i]}); + } + } + }return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:'Module'})); +}var mwe,NE,hwe,yJ,vwe,gwe,AJ=at(()=>{ + ir();mwe=Object.defineProperty,NE=(e,t)=>mwe(e,'name',{value:t,configurable:!0});NE(gJ,'_mergeNamespaces');hwe={exports:{}};(function(e,t){ + (function(r){ + r(Kt()); + })(function(r){ + var n={},i=/[^\s\u00a0]/,o=r.Pos,s=r.cmpPos;function l(m){ + var v=m.search(i);return v==-1?0:v; + }NE(l,'firstNonWS'),r.commands.toggleComment=function(m){ + m.toggleComment(); + },r.defineExtension('toggleComment',function(m){ + m||(m=n);for(var v=this,g=1/0,y=this.listSelections(),w=null,T=y.length-1;T>=0;T--){ + var S=y[T].from(),A=y[T].to();S.line>=g||(A.line>=g&&(A=o(g,0)),g=S.line,w==null?v.uncomment(S,A,m)?w='un':(v.lineComment(S,A,m),w='line'):w=='un'?v.uncomment(S,A,m):v.lineComment(S,A,m)); + } + });function c(m,v,g){ + return/\bstring\b/.test(m.getTokenTypeAt(o(v.line,0)))&&!/^[\'\"\`]/.test(g); + }NE(c,'probablyInsideString');function f(m,v){ + var g=m.getMode();return g.useInnerComments===!1||!g.innerMode?g:m.getModeAt(v); + }NE(f,'getMode'),r.defineExtension('lineComment',function(m,v,g){ + g||(g=n);var y=this,w=f(y,m),T=y.getLine(m.line);if(!(T==null||c(y,m,T))){ + var S=g.lineComment||w.lineComment;if(!S){ + (g.blockCommentStart||w.blockCommentStart)&&(g.fullLines=!0,y.blockComment(m,v,g));return; + }var A=Math.min(v.ch!=0||v.line==m.line?v.line+1:v.line,y.lastLine()+1),b=g.padding==null?' ':g.padding,C=g.commentBlankLines||m.line==v.line;y.operation(function(){ + if(g.indent){ + for(var x=null,k=m.line;kD.length)&&(x=D); + }for(var k=m.line;kA||y.operation(function(){ + if(g.fullLines!=!1){ + var C=i.test(y.getLine(A));y.replaceRange(b+S,o(A)),y.replaceRange(T+b,o(m.line,0));var x=g.blockCommentLead||w.blockCommentLead;if(x!=null)for(var k=m.line+1;k<=A;++k)(k!=A||C)&&y.replaceRange(x+b,o(k,0)); + }else{ + var P=s(y.getCursor('to'),v)==0,D=!y.somethingSelected();y.replaceRange(S,v),P&&y.setSelection(D?v:y.getCursor('from'),v),y.replaceRange(T,m); + } + }); + } + }),r.defineExtension('uncomment',function(m,v,g){ + g||(g=n);var y=this,w=f(y,m),T=Math.min(v.ch!=0||v.line==m.line?v.line:v.line-1,y.lastLine()),S=Math.min(m.line,T),A=g.lineComment||w.lineComment,b=[],C=g.padding==null?' ':g.padding,x;e:{ + if(!A)break e;for(var k=S;k<=T;++k){ + var P=y.getLine(k),D=P.indexOf(A);if(D>-1&&!/comment/.test(y.getTokenTypeAt(o(k,D+1)))&&(D=-1),D==-1&&i.test(P)||D>-1&&i.test(P.slice(0,D)))break e;b.push(P); + }if(y.operation(function(){ + for(var se=S;se<=T;++se){ + var xe=b[se-S],Re=xe.indexOf(A),Se=Re+A.length;Re<0||(xe.slice(Se,Se+C.length)==C&&(Se+=C.length),x=!0,y.replaceRange('',o(se,Re),o(se,Se))); + } + }),x)return!0; + }var N=g.blockCommentStart||w.blockCommentStart,I=g.blockCommentEnd||w.blockCommentEnd;if(!N||!I)return!1;var V=g.blockCommentLead||w.blockCommentLead,G=y.getLine(S),B=G.indexOf(N);if(B==-1)return!1;var U=T==S?G:y.getLine(T),z=U.indexOf(I,T==S?B+N.length:0),j=o(S,B+1),J=o(T,z+1);if(z==-1||!/comment/.test(y.getTokenTypeAt(j))||!/comment/.test(y.getTokenTypeAt(J))||y.getRange(j,J,` +`).indexOf(I)>-1)return!1;var K=G.lastIndexOf(N,m.ch),ee=K==-1?-1:G.slice(0,m.ch).indexOf(I,K+N.length);if(K!=-1&&ee!=-1&&ee+I.length!=m.ch)return!1;ee=U.indexOf(I,v.ch);var re=U.slice(v.ch).lastIndexOf(N,ee-v.ch);return K=ee==-1||re==-1?-1:v.ch+re,ee!=-1&&K!=-1&&K!=v.ch?!1:(y.operation(function(){ + y.replaceRange('',o(T,z-(C&&U.slice(z-C.length,z)==C?C.length:0)),o(T,z+I.length));var se=B+N.length;if(C&&G.slice(se,se+C.length)==C&&(se+=C.length),y.replaceRange('',o(S,B),o(S,se)),V)for(var xe=S+1;xe<=T;++xe){ + var Re=y.getLine(xe),Se=Re.indexOf(V);if(!(Se==-1||i.test(Re.slice(0,Se)))){ + var ie=Se+V.length;C&&Re.slice(ie,ie+C.length)==C&&(ie+=C.length),y.replaceRange('',o(xe,Se),o(xe,ie)); + } + } + }),!0); + }); + }); + })();yJ=hwe.exports,vwe=_t(yJ),gwe=gJ({__proto__:null,default:vwe},[yJ]); +});var BM={};Ui(BM,{s:()=>xwe});function xJ(e,t){ + for(var r=0;rn[i]}); + } + } + }return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:'Module'})); +}var ywe,Ar,bwe,wJ,Awe,xwe,GM=at(()=>{ + ir();kE();ky();ywe=Object.defineProperty,Ar=(e,t)=>ywe(e,'name',{value:t,configurable:!0});Ar(xJ,'_mergeNamespaces');bwe={exports:{}};(function(e,t){ + (function(r){ + r(Kt(),Qf(),Wf); + })(function(r){ + r.defineOption('search',{bottom:!1});function n(N,I){ + return typeof N=='string'?N=new RegExp(N.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,'\\$&'),I?'gi':'g'):N.global||(N=new RegExp(N.source,N.ignoreCase?'gi':'g')),{token:function(V){ + N.lastIndex=V.pos;var G=N.exec(V.string);if(G&&G.index==V.pos)return V.pos+=G[0].length||1,'searching';G?V.pos=G.index:V.skipToEnd(); + }}; + }Ar(n,'searchOverlay');function i(){ + this.posFrom=this.posTo=this.lastQuery=this.query=null,this.overlay=null; + }Ar(i,'SearchState');function o(N){ + return N.state.search||(N.state.search=new i); + }Ar(o,'getSearchState');function s(N){ + return typeof N=='string'&&N==N.toLowerCase(); + }Ar(s,'queryCaseInsensitive');function l(N,I,V){ + return N.getSearchCursor(I,V,{caseFold:s(I),multiline:!0}); + }Ar(l,'getSearchCursor');function c(N,I,V,G,B){ + N.openDialog(I,G,{value:V,selectValueOnOpen:!0,closeOnEnter:!1,onClose:function(){ + S(N); + },onKeyDown:B,bottom:N.options.search.bottom}); + }Ar(c,'persistentDialog');function f(N,I,V,G,B){ + N.openDialog?N.openDialog(I,B,{value:G,selectValueOnOpen:!0,bottom:N.options.search.bottom}):B(prompt(V,G)); + }Ar(f,'dialog');function m(N,I,V,G){ + N.openConfirm?N.openConfirm(I,G):confirm(V)&&G[0](); + }Ar(m,'confirmDialog');function v(N){ + return N.replace(/\\([nrt\\])/g,function(I,V){ + return V=='n'?` +`:V=='r'?'\r':V=='t'?' ':V=='\\'?'\\':I; + }); + }Ar(v,'parseString');function g(N){ + var I=N.match(/^\/(.*)\/([a-z]*)$/);if(I)try{ + N=new RegExp(I[1],I[2].indexOf('i')==-1?'':'i'); + }catch{}else N=v(N);return(typeof N=='string'?N=='':N.test(''))&&(N=/x^/),N; + }Ar(g,'parseQuery');function y(N,I,V){ + I.queryText=V,I.query=g(V),N.removeOverlay(I.overlay,s(I.query)),I.overlay=n(I.query,s(I.query)),N.addOverlay(I.overlay),N.showMatchesOnScrollbar&&(I.annotate&&(I.annotate.clear(),I.annotate=null),I.annotate=N.showMatchesOnScrollbar(I.query,s(I.query))); + }Ar(y,'startSearch');function w(N,I,V,G){ + var B=o(N);if(B.query)return T(N,I);var U=N.getSelection()||B.lastQuery;if(U instanceof RegExp&&U.source=='x^'&&(U=null),V&&N.openDialog){ + var z=null,j=Ar(function(J,K){ + r.e_stop(K),J&&(J!=B.queryText&&(y(N,B,J),B.posFrom=B.posTo=N.getCursor()),z&&(z.style.opacity=1),T(N,K.shiftKey,function(ee,re){ + var se;re.line<3&&document.querySelector&&(se=N.display.wrapper.querySelector('.CodeMirror-dialog'))&&se.getBoundingClientRect().bottom-4>N.cursorCoords(re,'window').top&&((z=se).style.opacity=.4); + })); + },'searchNext');c(N,b(N),U,j,function(J,K){ + var ee=r.keyName(J),re=N.getOption('extraKeys'),se=re&&re[ee]||r.keyMap[N.getOption('keyMap')][ee];se=='findNext'||se=='findPrev'||se=='findPersistentNext'||se=='findPersistentPrev'?(r.e_stop(J),y(N,o(N),K),N.execCommand(se)):(se=='find'||se=='findPersistent')&&(r.e_stop(J),j(K,J)); + }),G&&U&&(y(N,B,U),T(N,I)); + }else f(N,b(N),'Search for:',U,function(J){ + J&&!B.query&&N.operation(function(){ + y(N,B,J),B.posFrom=B.posTo=N.getCursor(),T(N,I); + }); + }); + }Ar(w,'doSearch');function T(N,I,V){ + N.operation(function(){ + var G=o(N),B=l(N,G.query,I?G.posFrom:G.posTo);!B.find(I)&&(B=l(N,G.query,I?r.Pos(N.lastLine()):r.Pos(N.firstLine(),0)),!B.find(I))||(N.setSelection(B.from(),B.to()),N.scrollIntoView({from:B.from(),to:B.to()},20),G.posFrom=B.from(),G.posTo=B.to(),V&&V(B.from(),B.to())); + }); + }Ar(T,'findNext');function S(N){ + N.operation(function(){ + var I=o(N);I.lastQuery=I.query,I.query&&(I.query=I.queryText=null,N.removeOverlay(I.overlay),I.annotate&&(I.annotate.clear(),I.annotate=null)); + }); + }Ar(S,'clearSearch');function A(N,I){ + var V=N?document.createElement(N):document.createDocumentFragment();for(var G in I)V[G]=I[G];for(var B=2;B{ + ia();OM();Zc();ir();tt.registerHelper('hint','graphql',(e,t)=>{ + let{schema:r,externalFragments:n}=t;if(!r)return;let i=e.getCursor(),o=e.getTokenAt(i),s=o.type!==null&&/"|\w/.test(o.string[0])?o.start:o.end,l=new mo(i.line,s),c={list:ED(r,e.getValue(),l,o,n).map(f=>({text:f.label,type:f.type,description:f.documentation,isDeprecated:f.isDeprecated,deprecationReason:f.deprecationReason})),from:{line:i.line,ch:s},to:{line:i.line,ch:o.end}};return c!=null&&c.list&&c.list.length>0&&(c.from=tt.Pos(c.from.line,c.from.ch),c.to=tt.Pos(c.to.line,c.to.ch),tt.signal(e,'hasCompletion',e,c,o)),c; + }); +});var Twe={};var TJ,Ewe,CJ=at(()=>{ + ia();Zc();ir();TJ=['error','warning','information','hint'],Ewe={'GraphQL: Validation':'validation','GraphQL: Deprecation':'deprecation','GraphQL: Syntax':'syntax'};tt.registerHelper('lint','graphql',(e,t)=>{ + let{schema:r,validationRules:n,externalFragments:i}=t;return PD(e,r,n,void 0,i).map(o=>({message:o.message,severity:o.severity?TJ[o.severity-1]:TJ[0],type:o.source?Ewe[o.source]:void 0,from:tt.Pos(o.range.start.line,o.range.start.character),to:tt.Pos(o.range.end.line,o.range.end.character)})); + }); +});function Oy(e,t){ + let r=[],n=e;for(;n!=null&&n.kind;)r.push(n),n=n.prevState;for(let i=r.length-1;i>=0;i--)t(r[i]); +}var Cwe,Swe,Ny=at(()=>{ + Cwe=Object.defineProperty,Swe=(e,t)=>Cwe(e,'name',{value:t,configurable:!0});Swe(Oy,'forEachState'); +});function Dy(e,t){ + let r={schema:e,type:null,parentType:null,inputType:null,directiveDef:null,fieldDef:null,argDef:null,argDefs:null,objectFieldDefs:null};return Oy(t,n=>{ + var i,o;switch(n.kind){ + case'Query':case'ShortQuery':r.type=e.getQueryType();break;case'Mutation':r.type=e.getMutationType();break;case'Subscription':r.type=e.getSubscriptionType();break;case'InlineFragment':case'FragmentDefinition':n.type&&(r.type=e.getType(n.type));break;case'Field':case'AliasedField':r.fieldDef=r.type&&n.name?zM(e,r.parentType,n.name):null,r.type=(i=r.fieldDef)===null||i===void 0?void 0:i.type;break;case'SelectionSet':r.parentType=r.type?(0,kr.getNamedType)(r.type):null;break;case'Directive':r.directiveDef=n.name?e.getDirective(n.name):null;break;case'Arguments':let s=n.prevState?n.prevState.kind==='Field'?r.fieldDef:n.prevState.kind==='Directive'?r.directiveDef:n.prevState.kind==='AliasedField'?n.prevState.name&&zM(e,r.parentType,n.prevState.name):null:null;r.argDefs=s?s.args:null;break;case'Argument':if(r.argDef=null,r.argDefs){ + for(let v=0;vv.value===n.name):null;break;case'ListValue':let c=r.inputType?(0,kr.getNullableType)(r.inputType):null;r.inputType=c instanceof kr.GraphQLList?c.ofType:null;break;case'ObjectValue':let f=r.inputType?(0,kr.getNamedType)(r.inputType):null;r.objectFieldDefs=f instanceof kr.GraphQLInputObjectType?f.getFields():null;break;case'ObjectField':let m=n.name&&r.objectFieldDefs?r.objectFieldDefs[n.name]:null;r.inputType=m?.type;break;case'NamedType':r.type=n.name?e.getType(n.name):null;break; + } + }),r; +}function zM(e,t,r){ + if(r===kr.SchemaMetaFieldDef.name&&e.getQueryType()===t)return kr.SchemaMetaFieldDef;if(r===kr.TypeMetaFieldDef.name&&e.getQueryType()===t)return kr.TypeMetaFieldDef;if(r===kr.TypeNameMetaFieldDef.name&&(0,kr.isCompositeType)(t))return kr.TypeNameMetaFieldDef;if(t&&t.getFields)return t.getFields()[r]; +}function SJ(e,t){ + for(let r=0;r{ + kr=fe(Ur());Ny();kwe=Object.defineProperty,Nl=(e,t)=>kwe(e,'name',{value:t,configurable:!0});Nl(Dy,'getTypeInfo');Nl(zM,'getFieldDef');Nl(SJ,'find');Nl(Ly,'getFieldReference');Nl(Py,'getDirectiveReference');Nl(Ry,'getArgumentReference');Nl(My,'getEnumValueReference');Nl(Jm,'getTypeReference');Nl(HM,'isMetaField'); +});var Nwe={};function kJ(e){ + return{options:e instanceof Function?{render:e}:e===!0?{}:e}; +}function OJ(e){ + let{options:t}=e.state.info;return t?.hoverTime||500; +}function NJ(e,t){ + let r=e.state.info,n=t.target||t.srcElement;if(!(n instanceof HTMLElement)||n.nodeName!=='SPAN'||r.hoverTimeout!==void 0)return;let i=n.getBoundingClientRect(),o=Ua(function(){ + clearTimeout(r.hoverTimeout),r.hoverTimeout=setTimeout(l,c); + },'onMouseMove'),s=Ua(function(){ + tt.off(document,'mousemove',o),tt.off(e.getWrapperElement(),'mouseout',s),clearTimeout(r.hoverTimeout),r.hoverTimeout=void 0; + },'onMouseOut'),l=Ua(function(){ + tt.off(document,'mousemove',o),tt.off(e.getWrapperElement(),'mouseout',s),r.hoverTimeout=void 0,DJ(e,i); + },'onHover'),c=OJ(e);r.hoverTimeout=setTimeout(l,c),tt.on(document,'mousemove',o),tt.on(e.getWrapperElement(),'mouseout',s); +}function DJ(e,t){ + let r=e.coordsChar({left:(t.left+t.right)/2,top:(t.top+t.bottom)/2},'window'),n=e.state.info,{options:i}=n,o=i.render||e.getHelper(r,'info');if(o){ + let s=e.getTokenAt(r,!0);if(s){ + let l=o(s,i,e,r);l&&LJ(e,t,l); + } + } +}function LJ(e,t,r){ + let n=document.createElement('div');n.className='CodeMirror-info',n.append(r),document.body.append(n);let i=n.getBoundingClientRect(),o=window.getComputedStyle(n),s=i.right-i.left+parseFloat(o.marginLeft)+parseFloat(o.marginRight),l=i.bottom-i.top+parseFloat(o.marginTop)+parseFloat(o.marginBottom),c=t.bottom;l>window.innerHeight-t.bottom-15&&t.top>window.innerHeight-t.bottom&&(c=t.top-l),c<0&&(c=t.bottom);let f=Math.max(0,window.innerWidth-s-15);f>t.left&&(f=t.left),n.style.opacity='1',n.style.top=c+'px',n.style.left=f+'px';let m,v=Ua(function(){ + clearTimeout(m); + },'onMouseOverPopup'),g=Ua(function(){ + clearTimeout(m),m=setTimeout(y,200); + },'onMouseOut'),y=Ua(function(){ + tt.off(n,'mouseover',v),tt.off(n,'mouseout',g),tt.off(e.getWrapperElement(),'mouseout',g),n.style.opacity?(n.style.opacity='0',setTimeout(()=>{ + n.parentNode&&n.remove(); + },600)):n.parentNode&&n.remove(); + },'hidePopup');tt.on(n,'mouseover',v),tt.on(n,'mouseout',g),tt.on(e.getWrapperElement(),'mouseout',g); +}var Owe,Ua,WM=at(()=>{ + ia();ir();Owe=Object.defineProperty,Ua=(e,t)=>Owe(e,'name',{value:t,configurable:!0});tt.defineOption('info',!1,(e,t,r)=>{ + if(r&&r!==tt.Init){ + let n=e.state.info.onMouseOver;tt.off(e.getWrapperElement(),'mouseover',n),clearTimeout(e.state.info.hoverTimeout),delete e.state.info; + }if(t){ + let n=e.state.info=kJ(t);n.onMouseOver=NJ.bind(null,e),tt.on(e.getWrapperElement(),'mouseover',n.onMouseOver); + } + });Ua(kJ,'createState');Ua(OJ,'getHoverTime');Ua(NJ,'onMouseOver');Ua(DJ,'onMouseHover');Ua(LJ,'showPopup'); +});var Lwe={};function PJ(e,t,r){ + RJ(e,t,r),YM(e,t,r,t.type); +}function RJ(e,t,r){ + var n;let i=((n=t.fieldDef)===null||n===void 0?void 0:n.name)||'';to(e,i,'field-name',r,Ly(t)); +}function MJ(e,t,r){ + var n;let i='@'+(((n=t.directiveDef)===null||n===void 0?void 0:n.name)||'');to(e,i,'directive-name',r,Py(t)); +}function IJ(e,t,r){ + var n;let i=((n=t.argDef)===null||n===void 0?void 0:n.name)||'';to(e,i,'arg-name',r,Ry(t)),YM(e,t,r,t.inputType); +}function FJ(e,t,r){ + var n;let i=((n=t.enumValue)===null||n===void 0?void 0:n.name)||'';Yf(e,t,r,t.inputType),to(e,'.'),to(e,i,'enum-value',r,My(t)); +}function YM(e,t,r,n){ + let i=document.createElement('span');i.className='type-name-pill',n instanceof $m.GraphQLNonNull?(Yf(i,t,r,n.ofType),to(i,'!')):n instanceof $m.GraphQLList?(to(i,'['),Yf(i,t,r,n.ofType),to(i,']')):to(i,n?.name||'','type-name',r,Jm(t,n)),e.append(i); +}function Yf(e,t,r,n){ + n instanceof $m.GraphQLNonNull?(Yf(e,t,r,n.ofType),to(e,'!')):n instanceof $m.GraphQLList?(to(e,'['),Yf(e,t,r,n.ofType),to(e,']')):to(e,n?.name||'','type-name',r,Jm(t,n)); +}function _m(e,t,r){ + let{description:n}=r;if(n){ + let i=document.createElement('div');i.className='info-description',t.renderDescription?i.innerHTML=t.renderDescription(n):i.append(document.createTextNode(n)),e.append(i); + }qJ(e,t,r); +}function qJ(e,t,r){ + let n=r.deprecationReason;if(n){ + let i=document.createElement('div');i.className='info-deprecation',e.append(i);let o=document.createElement('span');o.className='info-deprecation-label',o.append(document.createTextNode('Deprecated')),i.append(o);let s=document.createElement('div');s.className='info-deprecation-reason',t.renderDescription?s.innerHTML=t.renderDescription(n):s.append(document.createTextNode(n)),i.append(s); + } +}function to(e,t,r='',n={onClick:null},i=null){ + if(r){ + let{onClick:o}=n,s;o?(s=document.createElement('a'),s.href='javascript:void 0',s.addEventListener('click',l=>{ + o(i,l); + })):s=document.createElement('span'),s.className=r,s.append(document.createTextNode(t)),e.append(s); + }else e.append(document.createTextNode(t)); +}var $m,Dwe,Fs,jJ=at(()=>{ + $m=fe(Ur());ia();QM();WM();ir();Ny();Dwe=Object.defineProperty,Fs=(e,t)=>Dwe(e,'name',{value:t,configurable:!0});tt.registerHelper('info','graphql',(e,t)=>{ + if(!t.schema||!e.state)return;let{kind:r,step:n}=e.state,i=Dy(t.schema,e.state);if(r==='Field'&&n===0&&i.fieldDef||r==='AliasedField'&&n===2&&i.fieldDef){ + let o=document.createElement('div');o.className='CodeMirror-info-header',PJ(o,i,t);let s=document.createElement('div');return s.append(o),_m(s,t,i.fieldDef),s; + }if(r==='Directive'&&n===1&&i.directiveDef){ + let o=document.createElement('div');o.className='CodeMirror-info-header',MJ(o,i,t);let s=document.createElement('div');return s.append(o),_m(s,t,i.directiveDef),s; + }if(r==='Argument'&&n===0&&i.argDef){ + let o=document.createElement('div');o.className='CodeMirror-info-header',IJ(o,i,t);let s=document.createElement('div');return s.append(o),_m(s,t,i.argDef),s; + }if(r==='EnumValue'&&i.enumValue&&i.enumValue.description){ + let o=document.createElement('div');o.className='CodeMirror-info-header',FJ(o,i,t);let s=document.createElement('div');return s.append(o),_m(s,t,i.enumValue),s; + }if(r==='NamedType'&&i.type&&i.type.description){ + let o=document.createElement('div');o.className='CodeMirror-info-header',Yf(o,i,t,i.type);let s=document.createElement('div');return s.append(o),_m(s,t,i.type),s; + } + });Fs(PJ,'renderField');Fs(RJ,'renderQualifiedField');Fs(MJ,'renderDirective');Fs(IJ,'renderArg');Fs(FJ,'renderEnumValue');Fs(YM,'renderTypeAnnotation');Fs(Yf,'renderType');Fs(_m,'renderDescription');Fs(qJ,'renderDeprecation');Fs(to,'text'); +});var Mwe={};function VJ(e,t){ + let r=t.target||t.srcElement;if(!(r instanceof HTMLElement)||r?.nodeName!=='SPAN')return;let n=r.getBoundingClientRect(),i={left:(n.left+n.right)/2,top:(n.top+n.bottom)/2};e.state.jump.cursor=i,e.state.jump.isHoldingModifier&&KM(e); +}function UJ(e){ + if(!e.state.jump.isHoldingModifier&&e.state.jump.cursor){ + e.state.jump.cursor=null;return; + }e.state.jump.isHoldingModifier&&e.state.jump.marker&&XM(e); +}function BJ(e,t){ + if(e.state.jump.isHoldingModifier||!GJ(t.key))return;e.state.jump.isHoldingModifier=!0,e.state.jump.cursor&&KM(e);let r=Dl(o=>{ + o.code===t.code&&(e.state.jump.isHoldingModifier=!1,e.state.jump.marker&&XM(e),tt.off(document,'keyup',r),tt.off(document,'click',n),e.off('mousedown',i)); + },'onKeyUp'),n=Dl(o=>{ + let{destination:s,options:l}=e.state.jump;s&&l.onClick(s,o); + },'onClick'),i=Dl((o,s)=>{ + e.state.jump.destination&&(s.codemirrorIgnore=!0); + },'onMouseDown');tt.on(document,'keyup',r),tt.on(document,'click',n),e.on('mousedown',i); +}function GJ(e){ + return e===(Rwe?'Meta':'Control'); +}function KM(e){ + if(e.state.jump.marker)return;let{cursor:t,options:r}=e.state.jump,n=e.coordsChar(t),i=e.getTokenAt(n,!0),o=r.getDestination||e.getHelper(n,'jump');if(o){ + let s=o(i,r,e);if(s){ + let l=e.markText({line:n.line,ch:i.start},{line:n.line,ch:i.end},{className:'CodeMirror-jump-token'});e.state.jump.marker=l,e.state.jump.destination=s; + } + } +}function XM(e){ + let{marker:t}=e.state.jump;e.state.jump.marker=null,e.state.jump.destination=null,t.clear(); +}var Pwe,Dl,Rwe,zJ=at(()=>{ + ia();QM();ir();Ny();Pwe=Object.defineProperty,Dl=(e,t)=>Pwe(e,'name',{value:t,configurable:!0});tt.defineOption('jump',!1,(e,t,r)=>{ + if(r&&r!==tt.Init){ + let n=e.state.jump.onMouseOver;tt.off(e.getWrapperElement(),'mouseover',n);let i=e.state.jump.onMouseOut;tt.off(e.getWrapperElement(),'mouseout',i),tt.off(document,'keydown',e.state.jump.onKeyDown),delete e.state.jump; + }if(t){ + let n=e.state.jump={options:t,onMouseOver:VJ.bind(null,e),onMouseOut:UJ.bind(null,e),onKeyDown:BJ.bind(null,e)};tt.on(e.getWrapperElement(),'mouseover',n.onMouseOver),tt.on(e.getWrapperElement(),'mouseout',n.onMouseOut),tt.on(document,'keydown',n.onKeyDown); + } + });Dl(VJ,'onMouseOver');Dl(UJ,'onMouseOut');Dl(BJ,'onKeyDown');Rwe=typeof navigator<'u'&&navigator&&navigator.appVersion.includes('Mac');Dl(GJ,'isJumpModifier');Dl(KM,'enableJumpMode');Dl(XM,'disableJumpMode');tt.registerHelper('jump','graphql',(e,t)=>{ + if(!t.schema||!t.onClick||!e.state)return;let{state:r}=e,{kind:n,step:i}=r,o=Dy(t.schema,r);if(n==='Field'&&i===0&&o.fieldDef||n==='AliasedField'&&i===2&&o.fieldDef)return Ly(o);if(n==='Directive'&&i===1&&o.directiveDef)return Py(o);if(n==='Argument'&&i===0&&o.argDef)return Ry(o);if(n==='EnumValue'&&o.enumValue)return My(o);if(n==='NamedType'&&o.type)return Jm(o); + }); +});function Kf(e,t){ + var r,n;let{levels:i,indentLevel:o}=e;return((!i||i.length===0?o:i.at(-1)-(!((r=this.electricInput)===null||r===void 0)&&r.test(t)?1:0))||0)*(((n=this.config)===null||n===void 0?void 0:n.indentUnit)||0); +}var Iwe,Fwe,DE=at(()=>{ + Iwe=Object.defineProperty,Fwe=(e,t)=>Iwe(e,'name',{value:t,configurable:!0});Fwe(Kf,'indent'); +});var Uwe={};var qwe,jwe,Vwe,HJ=at(()=>{ + ia();Zc();DE();ir();qwe=Object.defineProperty,jwe=(e,t)=>qwe(e,'name',{value:t,configurable:!0}),Vwe=jwe(e=>{ + let t=po({eatWhitespace:r=>r.eatWhile(vp),lexRules:gp,parseRules:yp,editorConfig:{tabSize:e.tabSize}});return{config:e,startState:t.startState,token:t.token,indent:Kf,electricInput:/^\s*[})\]]/,fold:'brace',lineComment:'#',closeBrackets:{pairs:'()[]{}""',explode:'()[]{}'}}; + },'graphqlModeFactory');tt.defineMode('graphql',Vwe); +});var Gwe={};function Xf(e,t,r){ + let n=QJ(r,ZM(t.string));if(!n)return;let i=t.type!==null&&/"|\w/.test(t.string[0])?t.start:t.end;return{list:n,from:{line:e.line,ch:i},to:{line:e.line,ch:t.end}}; +}function QJ(e,t){ + if(!t)return LE(e,n=>!n.isDeprecated);let r=e.map(n=>({proximity:WJ(ZM(n.text),t),entry:n}));return LE(LE(r,n=>n.proximity<=2),n=>!n.entry.isDeprecated).sort((n,i)=>(n.entry.isDeprecated?1:0)-(i.entry.isDeprecated?1:0)||n.proximity-i.proximity||n.entry.text.length-i.entry.text.length).map(n=>n.entry); +}function LE(e,t){ + let r=e.filter(t);return r.length===0?e:r; +}function ZM(e){ + return e.toLowerCase().replaceAll(/\W/g,''); +}function WJ(e,t){ + let r=YJ(t,e);return e.length>t.length&&(r-=e.length-t.length-1,r+=e.indexOf(t)===0?0:.5),r; +}function YJ(e,t){ + let r,n,i=[],o=e.length,s=t.length;for(r=0;r<=o;r++)i[r]=[r];for(n=1;n<=s;n++)i[0][n]=n;for(r=1;r<=o;r++)for(n=1;n<=s;n++){ + let l=e[r-1]===t[n-1]?0:1;i[r][n]=Math.min(i[r-1][n]+1,i[r][n-1]+1,i[r-1][n-1]+l),r>1&&n>1&&e[r-1]===t[n-2]&&e[r-2]===t[n-1]&&(i[r][n]=Math.min(i[r][n],i[r-2][n-2]+l)); + }return i[o][s]; +}function KJ(e,t,r){ + let n=t.state.kind==='Invalid'?t.state.prevState:t.state,{kind:i,step:o}=n;if(i==='Document'&&o===0)return Xf(e,t,[{text:'{'}]);let{variableToType:s}=r;if(!s)return;let l=XJ(s,t.state);if(i==='Document'||i==='Variable'&&o===0){ + let c=Object.keys(s);return Xf(e,t,c.map(f=>({text:`"${f}": `,type:s[f]}))); + }if((i==='ObjectValue'||i==='ObjectField'&&o===0)&&l.fields){ + let c=Object.keys(l.fields).map(f=>l.fields[f]);return Xf(e,t,c.map(f=>({text:`"${f.name}": `,type:f.type,description:f.description}))); + }if(i==='StringValue'||i==='NumberValue'||i==='BooleanValue'||i==='NullValue'||i==='ListValue'&&o===1||i==='ObjectField'&&o===2||i==='Variable'&&o===2){ + let c=l.type?(0,bi.getNamedType)(l.type):void 0;if(c instanceof bi.GraphQLInputObjectType)return Xf(e,t,[{text:'{'}]);if(c instanceof bi.GraphQLEnumType){ + let f=c.getValues();return Xf(e,t,f.map(m=>({text:`"${m.name}"`,type:c,description:m.description}))); + }if(c===bi.GraphQLBoolean)return Xf(e,t,[{text:'true',type:bi.GraphQLBoolean,description:'Not false.'},{text:'false',type:bi.GraphQLBoolean,description:'Not true.'}]); + } +}function XJ(e,t){ + let r={type:null,fields:null};return Oy(t,n=>{ + switch(n.kind){ + case'Variable':{r.type=e[n.name];break;}case'ListValue':{let i=r.type?(0,bi.getNullableType)(r.type):void 0;r.type=i instanceof bi.GraphQLList?i.ofType:null;break;}case'ObjectValue':{let i=r.type?(0,bi.getNamedType)(r.type):void 0;r.fields=i instanceof bi.GraphQLInputObjectType?i.getFields():null;break;}case'ObjectField':{let i=n.name&&r.fields?r.fields[n.name]:null;r.type=i?.type;break;} + } + }),r; +}var bi,Bwe,Ku,ZJ=at(()=>{ + ia();bi=fe(Ur());Ny();ir();Bwe=Object.defineProperty,Ku=(e,t)=>Bwe(e,'name',{value:t,configurable:!0});Ku(Xf,'hintList');Ku(QJ,'filterAndSortList');Ku(LE,'filterNonEmpty');Ku(ZM,'normalizeText');Ku(WJ,'getProximity');Ku(YJ,'lexicalDistance');tt.registerHelper('hint','graphql-variables',(e,t)=>{ + let r=e.getCursor(),n=e.getTokenAt(r),i=KJ(r,n,t);return i!=null&&i.list&&i.list.length>0&&(i.from=tt.Pos(i.from.line,i.from.ch),i.to=tt.Pos(i.to.line,i.to.ch),tt.signal(e,'hasCompletion',e,i,n)),i; + });Ku(KJ,'getVariablesHint');Ku(XJ,'getTypeInfo'); +});var Hwe={};function JJ(e){ + qs=e,RE=e.length,Cn=Ai=jy=-1,dn(),Vy();let t=_M();return Ll('EOF'),t; +}function _M(){ + let e=Cn,t=[];if(Ll('{'),!qy('}')){ + do t.push(_J());while(qy(','));Ll('}'); + }return{kind:'Object',start:e,end:jy,members:t}; +}function _J(){ + let e=Cn,t=To==='String'?eI():null;Ll('String'),Ll(':');let r=$M();return{kind:'Member',start:e,end:jy,key:t,value:r}; +}function $J(){ + let e=Cn,t=[];if(Ll('['),!qy(']')){ + do t.push($M());while(qy(','));Ll(']'); + }return{kind:'Array',start:e,end:jy,values:t}; +}function $M(){ + switch(To){ + case'[':return $J();case'{':return _M();case'String':case'Number':case'Boolean':case'Null':let e=eI();return Vy(),e; + }Ll('Value'); +}function eI(){ + return{kind:To,start:Cn,end:Ai,value:JSON.parse(qs.slice(Cn,Ai))}; +}function Ll(e){ + if(To===e){ + Vy();return; + }let t;if(To==='EOF')t='[end of file]';else if(Ai-Cn>1)t='`'+qs.slice(Cn,Ai)+'`';else{ + let r=qs.slice(Cn).match(/^.+?\b/);t='`'+(r?r[0]:qs[Cn])+'`'; + }throw Zf(`Expected ${e} but found ${t}.`); +}function Zf(e){ + return new Fy(e,{start:Cn,end:Ai}); +}function qy(e){ + if(To===e)return Vy(),!0; +}function dn(){ + return Ai31;)if(Gt===92)switch(Gt=dn(),Gt){ + case 34:case 47:case 92:case 98:case 102:case 110:case 114:case 116:dn();break;case 117:dn(),Iy(),Iy(),Iy(),Iy();break;default:throw Zf('Bad character escape sequence.'); + }else{ + if(Ai===RE)throw Zf('Unterminated string.');dn(); + }if(Gt===34){ + dn();return; + }throw Zf('Unterminated string.'); +}function Iy(){ + if(Gt>=48&&Gt<=57||Gt>=65&&Gt<=70||Gt>=97&&Gt<=102)return dn();throw Zf('Expected hexadecimal digit.'); +}function t_(){ + Gt===45&&dn(),Gt===48?dn():PE(),Gt===46&&(dn(),PE()),(Gt===69||Gt===101)&&(Gt=dn(),(Gt===43||Gt===45)&&dn(),PE()); +}function PE(){ + if(Gt<48||Gt>57)throw Zf('Expected decimal digit.');do dn();while(Gt>=48&&Gt<=57); +}function r_(e,t,r){ + var n;let i=[];for(let o of r.members)if(o){ + let s=(n=o.key)===null||n===void 0?void 0:n.value,l=t[s];if(l)for(let[c,f]of eh(l,o.value))i.push(ME(e,c,f));else i.push(ME(e,o.key,`Variable "$${s}" does not appear in any GraphQL query.`)); + }return i; +}function eh(e,t){ + if(!e||!t)return[];if(e instanceof Ba.GraphQLNonNull)return t.kind==='Null'?[[t,`Type "${e}" is non-nullable and cannot be null.`]]:eh(e.ofType,t);if(t.kind==='Null')return[];if(e instanceof Ba.GraphQLList){ + let r=e.ofType;if(t.kind==='Array'){ + let n=t.values||[];return JM(n,i=>eh(r,i)); + }return eh(r,t); + }if(e instanceof Ba.GraphQLInputObjectType){ + if(t.kind!=='Object')return[[t,`Type "${e}" must be an Object.`]];let r=Object.create(null),n=JM(t.members,i=>{ + var o;let s=(o=i?.key)===null||o===void 0?void 0:o.value;r[s]=!0;let l=e.getFields()[s];if(!l)return[[i.key,`Type "${e}" does not have a field "${s}".`]];let c=l?l.type:void 0;return eh(c,i.value); + });for(let i of Object.keys(e.getFields())){ + let o=e.getFields()[i];!r[i]&&o.type instanceof Ba.GraphQLNonNull&&!o.defaultValue&&n.push([t,`Object of type "${e}" is missing required field "${i}".`]); + }return n; + }return e.name==='Boolean'&&t.kind!=='Boolean'||e.name==='String'&&t.kind!=='String'||e.name==='ID'&&t.kind!=='Number'&&t.kind!=='String'||e.name==='Float'&&t.kind!=='Number'||e.name==='Int'&&(t.kind!=='Number'||(t.value|0)!==t.value)?[[t,`Expected value of type "${e}".`]]:(e instanceof Ba.GraphQLEnumType||e instanceof Ba.GraphQLScalarType)&&(t.kind!=='String'&&t.kind!=='Number'&&t.kind!=='Boolean'&&t.kind!=='Null'||n_(e.parseValue(t.value)))?[[t,`Expected value of type "${e}".`]]:[]; +}function ME(e,t,r){ + return{message:r,severity:'error',type:'validation',from:e.posFromIndex(t.start),to:e.posFromIndex(t.end)}; +}function n_(e){ + return e==null||e!==e; +}function JM(e,t){ + return Array.prototype.concat.apply([],e.map(t)); +}var Ba,zwe,_r,qs,RE,Cn,Ai,jy,Gt,To,Fy,i_=at(()=>{ + ia();Ba=fe(Ur());ir();zwe=Object.defineProperty,_r=(e,t)=>zwe(e,'name',{value:t,configurable:!0});_r(JJ,'jsonParse');_r(_M,'parseObj');_r(_J,'parseMember');_r($J,'parseArr');_r($M,'parseVal');_r(eI,'curToken');_r(Ll,'expect');Fy=class extends Error{ + constructor(t,r){ + super(t),this.position=r; + } + };_r(Fy,'JSONSyntaxError');_r(Zf,'syntaxError');_r(qy,'skip');_r(dn,'ch');_r(Vy,'lex');_r(e_,'readString');_r(Iy,'readHex');_r(t_,'readNumber');_r(PE,'readDigits');tt.registerHelper('lint','graphql-variables',(e,t,r)=>{ + if(!e)return[];let n;try{ + n=JJ(e); + }catch(o){ + if(o instanceof Fy)return[ME(r,o.position,o.message)];throw o; + }let{variableToType:i}=t;return i?r_(r,i,n):[]; + });_r(r_,'validateVariables');_r(eh,'validateValue');_r(ME,'lintError');_r(n_,'isNullish');_r(JM,'mapCat'); +});var Xwe={};function tI(e){ + return{style:e,match:t=>t.kind==='String',update(t,r){ + t.name=r.value.slice(1,-1); + }}; +}var Qwe,Wwe,Ywe,Kwe,o_=at(()=>{ + ia();Zc();DE();ir();Qwe=Object.defineProperty,Wwe=(e,t)=>Qwe(e,'name',{value:t,configurable:!0});tt.defineMode('graphql-variables',e=>{ + let t=po({eatWhitespace:r=>r.eatSpace(),lexRules:Ywe,parseRules:Kwe,editorConfig:{tabSize:e.tabSize}});return{config:e,startState:t.startState,token:t.token,indent:Kf,electricInput:/^\s*[}\]]/,fold:'brace',closeBrackets:{pairs:'[]{}""',explode:'[]{}'}}; + });Ywe={Punctuation:/^\[|]|\{|\}|:|,/,Number:/^-?(?:0|(?:[1-9][0-9]*))(?:\.[0-9]*)?(?:[eE][+-]?[0-9]+)?/,String:/^"(?:[^"\\]|\\(?:"|\/|\\|b|f|n|r|t|u[0-9a-fA-F]{4}))*"?/,Keyword:/^true|false|null/},Kwe={Document:[ze('{'),gt('Variable',er(ze(','))),ze('}')],Variable:[tI('variable'),ze(':'),'Value'],Value(e){ + switch(e.kind){ + case'Number':return'NumberValue';case'String':return'StringValue';case'Punctuation':switch(e.value){ + case'[':return'ListValue';case'{':return'ObjectValue'; + }return null;case'Keyword':switch(e.value){ + case'true':case'false':return'BooleanValue';case'null':return'NullValue'; + }return null; + } + },NumberValue:[Dn('Number','number')],StringValue:[Dn('String','string')],BooleanValue:[Dn('Keyword','builtin')],NullValue:[Dn('Keyword','keyword')],ListValue:[ze('['),gt('Value',er(ze(','))),ze(']')],ObjectValue:[ze('{'),gt('ObjectField',er(ze(','))),ze('}')],ObjectField:[tI('attribute'),ze(':'),'Value']};Wwe(tI,'namedKey'); +});var _we={};var Zwe,Jwe,a_=at(()=>{ + ia();Zc();DE();ir();tt.defineMode('graphql-results',e=>{ + let t=po({eatWhitespace:r=>r.eatSpace(),lexRules:Zwe,parseRules:Jwe,editorConfig:{tabSize:e.tabSize}});return{config:e,startState:t.startState,token:t.token,indent:Kf,electricInput:/^\s*[}\]]/,fold:'brace',closeBrackets:{pairs:'[]{}""',explode:'[]{}'}}; + });Zwe={Punctuation:/^\[|]|\{|\}|:|,/,Number:/^-?(?:0|(?:[1-9][0-9]*))(?:\.[0-9]*)?(?:[eE][+-]?[0-9]+)?/,String:/^"(?:[^"\\]|\\(?:"|\/|\\|b|f|n|r|t|u[0-9a-fA-F]{4}))*"?/,Keyword:/^true|false|null/},Jwe={Document:[ze('{'),gt('Entry',ze(',')),ze('}')],Entry:[Dn('String','def'),ze(':'),'Value'],Value(e){ + switch(e.kind){ + case'Number':return'NumberValue';case'String':return'StringValue';case'Punctuation':switch(e.value){ + case'[':return'ListValue';case'{':return'ObjectValue'; + }return null;case'Keyword':switch(e.value){ + case'true':case'false':return'BooleanValue';case'null':return'NullValue'; + }return null; + } + },NumberValue:[Dn('Number','number')],StringValue:[Dn('String','string')],BooleanValue:[Dn('Keyword','builtin')],NullValue:[Dn('Keyword','keyword')],ListValue:[ze('['),gt('Value',ze(',')),ze(']')],ObjectValue:[ze('{'),gt('ObjectField',ze(',')),ze('}')],ObjectField:[Dn('String','property'),ze(':'),'Value']}; +});var N$=X(uT=>{ + 'use strict';Object.defineProperty(uT,'__esModule',{value:!0});var uTe=typeof Symbol=='function'&&typeof Symbol.iterator=='symbol'?function(e){ + return typeof e; + }:function(e){ + return e&&typeof Symbol=='function'&&e.constructor===Symbol&&e!==Symbol.prototype?'symbol':typeof e; + },y$=function(){ + function e(t,r){ + var n=[],i=!0,o=!1,s=void 0;try{ + for(var l=t[Symbol.iterator](),c;!(i=(c=l.next()).done)&&(n.push(c.value),!(r&&n.length===r));i=!0); + }catch(f){ + o=!0,s=f; + }finally{ + try{ + !i&&l.return&&l.return(); + }finally{ + if(o)throw s; + } + }return n; + }return function(t,r){ + if(Array.isArray(t))return t;if(Symbol.iterator in Object(t))return e(t,r);throw new TypeError('Invalid attempt to destructure non-iterable instance'); + }; + }(),Wt=Object.assign||function(e){ + for(var t=1;t'u'?v=!0:typeof f.kind=='string'&&(y=!0); + }catch{}var w=i.props.selection,T=i._getArgSelection();if(!T){ + console.error('missing arg selection when setting arg value');return; + }var S=rc(i.props.arg.type),A=(0,vt.isLeafType)(S)||g||v||y;if(!A){ + console.warn('Unable to handle non leaf types in InputArgView.setArgValue',f);return; + }var b=void 0,C=void 0;f===null||typeof f>'u'?C=null:!f.target&&f.kind&&f.kind==='VariableDefinition'?(b=f,C=b.variable):typeof f.kind=='string'?C=f:f.target&&typeof f.target.value=='string'&&(b=f.target.value,C=T$(S,b));var x=i.props.modifyFields((w.fields||[]).map(function(k){ + var P=k===T,D=P?Wt({},k,{value:C}):k;return D; + }),m);return x; + },i._modifyChildFields=function(f){ + return i.props.modifyFields(i.props.selection.fields.map(function(m){ + return m.name.value===i.props.arg.name?Wt({},m,{value:{kind:'ObjectValue',fields:f}}):m; + }),!0); + },n),en(i,o); + }return Ha(t,[{key:'render',value:function(){ + var n=this.props,i=n.arg,o=n.parentField,s=this._getArgSelection();return be.createElement(S$,{argValue:s?s.value:null,arg:i,parentField:o,addArg:this._addArg,removeArg:this._removeArg,setArgFields:this._modifyChildFields,setArgValue:this._setArgValue,getDefaultScalarArgValue:this.props.getDefaultScalarArgValue,makeDefaultArg:this.props.makeDefaultArg,onRunOperation:this.props.onRunOperation,styleConfig:this.props.styleConfig,onCommit:this.props.onCommit,definition:this.props.definition}); + }}]),t; + }(be.PureComponent);function OI(e){ + if((0,vt.isEnumType)(e))return{kind:'EnumValue',value:e.getValues()[0].name};switch(e.name){ + case'String':return{kind:'StringValue',value:''};case'Float':return{kind:'FloatValue',value:'1.5'};case'Int':return{kind:'IntValue',value:'10'};case'Boolean':return{kind:'BooleanValue',value:!1};default:return{kind:'StringValue',value:''}; + } + }function C$(e,t,r){ + return OI(r); + }var bTe=function(e){ + Wa(t,e);function t(){ + var r,n,i,o;Qa(this,t);for(var s=arguments.length,l=Array(s),c=0;c'u'?v=!0:typeof f.kind=='string'&&(y=!0); + }catch{}var w=i.props.selection,T=i._getArgSelection();if(!T&&!g){ + console.error('missing arg selection when setting arg value');return; + }var S=rc(i.props.arg.type),A=(0,vt.isLeafType)(S)||g||v||y;if(!A){ + console.warn('Unable to handle non leaf types in ArgView._setArgValue');return; + }var b=void 0,C=void 0;return f===null||typeof f>'u'?C=null:f.target&&typeof f.target.value=='string'?(b=f.target.value,C=T$(S,b)):!f.target&&f.kind==='VariableDefinition'?(b=f,C=b.variable):typeof f.kind=='string'&&(C=f),i.props.modifyArguments((w.arguments||[]).map(function(x){ + return x===T?Wt({},x,{value:C}):x; + }),m); + },i._setArgFields=function(f,m){ + var v=i.props.selection,g=i._getArgSelection();if(!g){ + console.error('missing arg selection when setting arg value');return; + }return i.props.modifyArguments((v.arguments||[]).map(function(y){ + return y===g?Wt({},y,{value:{kind:'ObjectValue',fields:f}}):y; + }),m); + },n),en(i,o); + }return Ha(t,[{key:'render',value:function(){ + var n=this.props,i=n.arg,o=n.parentField,s=this._getArgSelection();return be.createElement(S$,{argValue:s?s.value:null,arg:i,parentField:o,addArg:this._addArg,removeArg:this._removeArg,setArgFields:this._setArgFields,setArgValue:this._setArgValue,getDefaultScalarArgValue:this.props.getDefaultScalarArgValue,makeDefaultArg:this.props.makeDefaultArg,onRunOperation:this.props.onRunOperation,styleConfig:this.props.styleConfig,onCommit:this.props.onCommit,definition:this.props.definition}); + }}]),t; + }(be.PureComponent);function ATe(e){ + return e.ctrlKey&&e.key==='Enter'; + }function xTe(e){ + return e!=='FragmentDefinition'; + }var wTe=function(e){ + Wa(t,e);function t(){ + var r,n,i,o;Qa(this,t);for(var s=arguments.length,l=Array(s),c=0;c0?b=''+S+A:b=S;var C=s.type.toString(),x=(0,vt.parseType)(C),k={kind:'VariableDefinition',variable:{kind:'Variable',name:{kind:'Name',value:b}},type:x,directives:[]},P=function(xe){ + return(n.props.definition.variableDefinitions||[]).find(function(Re){ + return Re.variable.name.value===xe; + }); + },D=void 0,N={};if(typeof o<'u'&&o!==null){ + var I=(0,vt.visit)(o,{Variable:function(xe){ + var Re=xe.name.value,Se=P(Re);if(N[Re]=N[Re]+1||1,!!Se)return Se.defaultValue; + }}),V=k.type.kind==='NonNullType',G=V?Wt({},k,{type:k.type.type}):k;D=Wt({},G,{defaultValue:I}); + }else D=k;var B=Object.entries(N).filter(function(se){ + var xe=y$(se,2),Re=xe[0],Se=xe[1];return Se<2; + }).map(function(se){ + var xe=y$(se,2),Re=xe[0],Se=xe[1];return Re; + });if(D){ + var U=n.props.setArgValue(D,!1);if(U){ + var z=U.definitions.find(function(se){ + return se.operation&&se.name&&se.name.value&&n.props.definition.name&&n.props.definition.name.value?se.name.value===n.props.definition.name.value:!1; + }),j=[].concat(sa(z.variableDefinitions||[]),[D]).filter(function(se){ + return B.indexOf(se.variable.name.value)===-1; + }),J=Wt({},z,{variableDefinitions:j}),K=U.definitions,ee=K.map(function(se){ + return z===se?J:se; + }),re=Wt({},U,{definitions:ee});n.props.onCommit(re); + } + } + },g=function(){ + if(!(!o||!o.name||!o.name.value)){ + var S=o.name.value,A=(n.props.definition.variableDefinitions||[]).find(function(G){ + return G.variable.name.value===S; + });if(A){ + var b=A.defaultValue,C=n.props.setArgValue(b,{commit:!1});if(C){ + var x=C.definitions.find(function(G){ + return G.name.value===n.props.definition.name.value; + });if(!x)return;var k=0;(0,vt.visit)(x,{Variable:function(B){ + B.name.value===S&&(k=k+1); + }});var P=x.variableDefinitions||[];k<2&&(P=P.filter(function(G){ + return G.variable.name.value!==S; + }));var D=Wt({},x,{variableDefinitions:P}),N=C.definitions,I=N.map(function(G){ + return x===G?D:G; + }),V=Wt({},C,{definitions:I});n.props.onCommit(V); + } + } + } + },y=o&&o.kind==='Variable',w=this.state.displayArgActions?be.createElement('button',{type:'submit',className:'toolbar-button',title:y?'Remove the variable':'Extract the current value into a GraphQL variable',onClick:function(S){ + S.preventDefault(),S.stopPropagation(),y?g():v(); + },style:l.styles.actionButtonStyle},be.createElement('span',{style:{color:l.colors.variable}},'$')):null;return be.createElement('div',{style:{cursor:'pointer',minHeight:'16px',WebkitUserSelect:'none',userSelect:'none'},'data-arg-name':s.name,'data-arg-type':c.name,className:'graphiql-explorer-'+s.name},be.createElement('span',{style:{cursor:'pointer'},onClick:function(S){ + var A=!o;A?n.props.addArg(!0):n.props.removeArg(!0),n.setState({displayArgActions:A}); + }},(0,vt.isInputObjectType)(c)?be.createElement('span',null,o?this.props.styleConfig.arrowOpen:this.props.styleConfig.arrowClosed):be.createElement(sT,{checked:!!o,styleConfig:this.props.styleConfig}),be.createElement('span',{style:{color:l.colors.attribute},title:s.description,onMouseEnter:function(){ + o!==null&&typeof o<'u'&&n.setState({displayArgActions:!0}); + },onMouseLeave:function(){ + return n.setState({displayArgActions:!1}); + }},s.name,E$(s)?'*':'',': ',w,' '),' '),f||be.createElement('span',null),' '); + }}]),t; + }(be.PureComponent),ETe=function(e){ + Wa(t,e);function t(){ + var r,n,i,o;Qa(this,t);for(var s=arguments.length,l=Array(s),c=0;c0;b&&n.setState({displayFieldActions:!0}); + },onMouseLeave:function(){ + return n.setState({displayFieldActions:!1}); + }},(0,vt.isObjectType)(m)?be.createElement('span',null,f?this.props.styleConfig.arrowOpen:this.props.styleConfig.arrowClosed):null,(0,vt.isObjectType)(m)?null:be.createElement(sT,{checked:!!f,styleConfig:this.props.styleConfig}),be.createElement('span',{style:{color:c.colors.property},className:'graphiql-explorer-field-view'},o.name),this.state.displayFieldActions?be.createElement('button',{type:'submit',className:'toolbar-button',title:'Extract selections into a new reusable fragment',onClick:function(b){ + b.preventDefault(),b.stopPropagation();var C=m.name,x=C+'Fragment',k=(y||[]).filter(function(G){ + return G.name.value.startsWith(x); + }).length;k>0&&(x=''+x+k);var P=f?f.selectionSet?f.selectionSet.selections:[]:[],D=[{kind:'FragmentSpread',name:{kind:'Name',value:x},directives:[]}],N={kind:'FragmentDefinition',name:{kind:'Name',value:x},typeCondition:{kind:'NamedType',name:{kind:'Name',value:m.name}},directives:[],selectionSet:{kind:'SelectionSet',selections:P}},I=n._modifyChildSelections(D,!1);if(I){ + var V=Wt({},I,{definitions:[].concat(sa(I.definitions),[N])});n.props.onCommit(V); + }else console.warn('Unable to complete extractFragment operation'); + },style:Wt({},c.styles.actionButtonStyle)},be.createElement('span',null,'\u2026')):null),f&&v.length?be.createElement('div',{style:{marginLeft:16},className:'graphiql-explorer-graphql-arguments'},v.map(function(A){ + return be.createElement(bTe,{key:A.name,parentField:o,arg:A,selection:f,modifyArguments:n._setArguments,getDefaultScalarArgValue:n.props.getDefaultScalarArgValue,makeDefaultArg:n.props.makeDefaultArg,onRunOperation:n.props.onRunOperation,styleConfig:n.props.styleConfig,onCommit:n.props.onCommit,definition:n.props.definition}); + })):null);if(f&&((0,vt.isObjectType)(m)||(0,vt.isInterfaceType)(m)||(0,vt.isUnionType)(m))){ + var T=(0,vt.isUnionType)(m)?{}:m.getFields(),S=f?f.selectionSet?f.selectionSet.selections:[]:[];return be.createElement('div',{className:'graphiql-explorer-'+o.name},w,be.createElement('div',{style:{marginLeft:16}},y?y.map(function(A){ + var b=s.getType(A.typeCondition.name.value),C=A.name.value;return b?be.createElement(TTe,{key:C,fragment:A,selections:S,modifySelections:n._modifyChildSelections,schema:s,styleConfig:n.props.styleConfig,onCommit:n.props.onCommit}):null; + }):null,Object.keys(T).sort().map(function(A){ + return be.createElement(t,{key:A,field:T[A],selections:S,modifySelections:n._modifyChildSelections,schema:s,getDefaultFieldNames:l,getDefaultScalarArgValue:n.props.getDefaultScalarArgValue,makeDefaultArg:n.props.makeDefaultArg,onRunOperation:n.props.onRunOperation,styleConfig:n.props.styleConfig,onCommit:n.props.onCommit,definition:n.props.definition,availableFragments:n.props.availableFragments}); + }),(0,vt.isInterfaceType)(m)||(0,vt.isUnionType)(m)?s.getPossibleTypes(m).map(function(A){ + return be.createElement(ETe,{key:A.name,implementingType:A,selections:S,modifySelections:n._modifyChildSelections,schema:s,getDefaultFieldNames:l,getDefaultScalarArgValue:n.props.getDefaultScalarArgValue,makeDefaultArg:n.props.makeDefaultArg,onRunOperation:n.props.onRunOperation,styleConfig:n.props.styleConfig,onCommit:n.props.onCommit,definition:n.props.definition}); + }):null)); + }return w; + }}]),t; + }(be.PureComponent);function CTe(e){ + try{ + return e.trim()?(0,vt.parse)(e,{noLocation:!0}):null; + }catch(t){ + return new Error(t); + } + }var STe={kind:'OperationDefinition',operation:'query',variableDefinitions:[],name:{kind:'Name',value:'MyQuery'},directives:[],selectionSet:{kind:'SelectionSet',selections:[]}},aT={kind:'Document',definitions:[STe]},ih=null;function kTe(e){ + if(ih&&ih[0]===e)return ih[1];var t=CTe(e);return t?t instanceof Error?ih?ih[1]:aT:(ih=[e,t],t):aT; + }var x$={buttonStyle:{fontSize:'1.2em',padding:'0px',backgroundColor:'white',border:'none',margin:'5px 0px',height:'40px',width:'100%',display:'block',maxWidth:'none'},actionButtonStyle:{padding:'0px',backgroundColor:'white',border:'none',margin:'0px',maxWidth:'none',height:'15px',width:'15px',display:'inline-block',fontSize:'smaller'},explorerActionsStyle:{margin:'4px -8px -8px',paddingLeft:'8px',bottom:'0px',width:'100%',textAlign:'center',background:'none',borderTop:'none',borderBottom:'none'}},OTe=function(e){ + Wa(t,e);function t(){ + var r,n,i,o;Qa(this,t);for(var s=arguments.length,l=Array(s),c=0;c'u'?'undefined':uTe(He))==='object'&&typeof He.commit<'u'?dr=He.commit:dr=!0,Ge){ + var Ue=Wt({},T,{definitions:T.definitions.map(function(bt){ + return bt===j?Ge:bt; + })});return dr&&me(Ue),Ue; + }else return T; + },schema:o,getDefaultFieldNames:S,getDefaultScalarArgValue:A,makeDefaultArg:l,onRunOperation:function(){ + n.props.onRunOperation&&n.props.onRunOperation(K); + },styleConfig:c,availableFragments:U}); + }),z),V); + }}]),t; + }(be.PureComponent);O$.defaultProps={getDefaultFieldNames:w$,getDefaultScalarArgValue:C$};var DTe=function(e){ + Wa(t,e);function t(){ + var r,n,i,o;Qa(this,t);for(var s=arguments.length,l=Array(s),c=0;c{ + 'use strict';Object.defineProperty(r0,'__esModule',{value:!0});r0.Explorer=void 0;var LTe=N$(),D$=PTe(LTe);function PTe(e){ + return e&&e.__esModule?e:{default:e}; + }r0.Explorer=D$.default;r0.default=D$.default; +});var V$=X(RI=>{ + 'use strict';var j$=mf();RI.createRoot=j$.createRoot,RI.hydrateRoot=j$.hydrateRoot;var yGe; +});var Y=fe(K3(),1),ue=fe(Ee(),1),te=fe(Ee(),1);function X3(e){ + var t,r,n='';if(typeof e=='string'||typeof e=='number')n+=e;else if(typeof e=='object')if(Array.isArray(e))for(t=0;t{ + let n=e.subscribe({next(i){ + t(i),n.unsubscribe(); + },error:r,complete(){ + r(new Error('no value resolved')); + }}); + }); +}function YN(e){ + return typeof e=='object'&&e!==null&&'subscribe'in e&&typeof e.subscribe=='function'; +}function KN(e){ + return typeof e=='object'&&e!==null&&(e[Symbol.toStringTag]==='AsyncGenerator'||Symbol.asyncIterator in e); +}function Sfe(e){ + var t;return q4(this,void 0,void 0,function*(){ + let r=(t=('return'in e?e:e[Symbol.asyncIterator]()).return)===null||t===void 0?void 0:t.bind(e),i=yield('next'in e?e:e[Symbol.asyncIterator]()).next.bind(e)();return r?.(),i.value; + }); +}function XN(e){ + return q4(this,void 0,void 0,function*(){ + let t=yield e;return KN(t)?Sfe(t):YN(t)?Cfe(t):t; + }); +}function ZN(e){ + return JSON.stringify(e,null,2); +}function kfe(e){ + return Object.assign(Object.assign({},e),{message:e.message,stack:e.stack}); +}function j4(e){ + return e instanceof Error?kfe(e):e; +}function fp(e){ + return Array.isArray(e)?ZN({errors:e.map(t=>j4(t))}):ZN({errors:[j4(e)]}); +}function SA(e){ + return ZN(e); +}var Hn=fe(Ur());function V4(e,t,r){ + let n=[];if(!e||!t)return{insertions:n,result:t};let i;try{ + i=(0,Hn.parse)(t); + }catch{ + return{insertions:n,result:t}; + }let o=r||Ofe,s=new Hn.TypeInfo(e);return(0,Hn.visit)(i,{leave(l){ + s.leave(l); + },enter(l){ + if(s.enter(l),l.kind==='Field'&&!l.selectionSet){ + let c=s.getType(),f=U4(Lfe(c),o);if(f&&l.loc){ + let m=Dfe(t,l.loc.start);n.push({index:l.loc.end,string:' '+(0,Hn.print)(f).replaceAll(` `,` -`+m)})}}}}),{insertions:n,result:Nfe(t,n)}}function Ofe(e){if(!("getFields"in e))return[];let t=e.getFields();if(t.id)return["id"];if(t.edges)return["edges"];if(t.node)return["node"];let r=[];for(let n of Object.keys(t))(0,Hn.isLeafType)(t[n].type)&&r.push(n);return r}function U4(e,t){let r=(0,Hn.getNamedType)(e);if(!e||(0,Hn.isLeafType)(e))return;let n=t(r);if(!(!Array.isArray(n)||n.length===0||!("getFields"in r)))return{kind:Hn.Kind.SELECTION_SET,selections:n.map(i=>{let o=r.getFields()[i],s=o?o.type:null;return{kind:Hn.Kind.FIELD,name:{kind:Hn.Kind.NAME,value:i},selectionSet:U4(s,t)}})}}function Nfe(e,t){if(t.length===0)return e;let r="",n=0;for(let{index:i,string:o}of t)r+=e.slice(n,i)+o,n=i;return r+=e.slice(n),r}function Dfe(e,t){let r=t,n=t;for(;r;){let i=e.charCodeAt(r-1);if(i===10||i===13||i===8232||i===8233)break;r--,i!==9&&i!==11&&i!==12&&i!==32&&i!==160&&(n=r)}return e.slice(r,n)}function Lfe(e){if(e)return e}var fo=fe(Ur());function Pfe(e,t){var r;let n=new Map,i=[];for(let o of e)if(o.kind==="Field"){let s=t(o),l=n.get(s);if(!((r=o.directives)===null||r===void 0)&&r.length){let c=Object.assign({},o);i.push(c)}else if(l?.selectionSet&&o.selectionSet)l.selectionSet.selections=[...l.selectionSet.selections,...o.selectionSet.selections];else if(!l){let c=Object.assign({},o);n.set(s,c),i.push(c)}}else i.push(o);return i}function B4(e,t,r){var n;let i=r?(0,fo.getNamedType)(r).name:null,o=[],s=[];for(let l of t){if(l.kind==="FragmentSpread"){let c=l.name.value;if(!l.directives||l.directives.length===0){if(s.includes(c))continue;s.push(c)}let f=e[l.name.value];if(f){let{typeCondition:m,directives:v,selectionSet:g}=f;l={kind:fo.Kind.INLINE_FRAGMENT,typeCondition:m,directives:v,selectionSet:g}}}if(l.kind===fo.Kind.INLINE_FRAGMENT&&(!l.directives||((n=l.directives)===null||n===void 0?void 0:n.length)===0)){let c=l.typeCondition?l.typeCondition.name.value:null;if(!c||c===i){o.push(...B4(e,l.selectionSet.selections,r));continue}}o.push(l)}return o}function G4(e,t){let r=t?new fo.TypeInfo(t):null,n=Object.create(null);for(let l of e.definitions)l.kind===fo.Kind.FRAGMENT_DEFINITION&&(n[l.name.value]=l);let i={SelectionSet(l){let c=r?r.getParentType():null,{selections:f}=l;return f=B4(n,f,c),Object.assign(Object.assign({},l),{selections:f})},FragmentDefinition(){return null}},o=(0,fo.visit)(e,r?(0,fo.visitWithTypeInfo)(r,i):i);return(0,fo.visit)(o,{SelectionSet(l){let{selections:c}=l;return c=Pfe(c,f=>f.alias?f.alias.value:f.name.value),Object.assign(Object.assign({},l),{selections:c})},FragmentDefinition(){return null}})}function z4(e,t,r){if(!r||r.length<1)return;let n=r.map(i=>{var o;return(o=i.name)===null||o===void 0?void 0:o.value});if(t&&n.includes(t))return t;if(t&&e){let o=e.map(s=>{var l;return(l=s.name)===null||l===void 0?void 0:l.value}).indexOf(t);if(o!==-1&&o"u"?this.storage=null:this.storage={getItem:window.localStorage.getItem.bind(window.localStorage),setItem:window.localStorage.setItem.bind(window.localStorage),removeItem:window.localStorage.removeItem.bind(window.localStorage),get length(){let r=0;for(let n in window.localStorage)n.indexOf(`${kA}:`)===0&&(r+=1);return r},clear(){for(let r in window.localStorage)r.indexOf(`${kA}:`)===0&&window.localStorage.removeItem(r)}}}get(t){if(!this.storage)return null;let r=`${kA}:${t}`,n=this.storage.getItem(r);return n==="null"||n==="undefined"?(this.storage.removeItem(r),null):n||null}set(t,r){let n=!1,i=null;if(this.storage){let o=`${kA}:${t}`;if(r)try{this.storage.setItem(o,r)}catch(s){i=s instanceof Error?s:new Error(`${s}`),n=Rfe(this.storage,s)}else this.storage.removeItem(o)}return{isQuotaError:n,error:i}}clear(){this.storage&&this.storage.clear()}},kA="graphiql";var H4=fe(Ur());var jv=class{constructor(t,r,n=null){this.key=t,this.storage=r,this.maxSize=n,this.items=this.fetchAll()}get length(){return this.items.length}contains(t){return this.items.some(r=>r.query===t.query&&r.variables===t.variables&&r.headers===t.headers&&r.operationName===t.operationName)}edit(t,r){if(typeof r=="number"&&this.items[r]){let i=this.items[r];if(i.query===t.query&&i.variables===t.variables&&i.headers===t.headers&&i.operationName===t.operationName){this.items.splice(r,1,t),this.save();return}}let n=this.items.findIndex(i=>i.query===t.query&&i.variables===t.variables&&i.headers===t.headers&&i.operationName===t.operationName);n!==-1&&(this.items.splice(n,1,t),this.save())}delete(t){let r=this.items.findIndex(n=>n.query===t.query&&n.variables===t.variables&&n.headers===t.headers&&n.operationName===t.operationName);r!==-1&&(this.items.splice(r,1),this.save())}fetchRecent(){return this.items.at(-1)}fetchAll(){let t=this.storage.get(this.key);return t?JSON.parse(t)[this.key]:[]}push(t){let r=[...this.items,t];this.maxSize&&r.length>this.maxSize&&r.shift();for(let n=0;n<5;n++){let i=this.storage.set(this.key,JSON.stringify({[this.key]:r}));if(!i?.error)this.items=r;else if(i.isQuotaError&&this.maxSize)r.shift();else return}}save(){this.storage.set(this.key,JSON.stringify({[this.key]:this.items}))}};var Mfe=1e5,OA=class{constructor(t,r){this.storage=t,this.maxHistoryLength=r,this.updateHistory=({query:n,variables:i,headers:o,operationName:s})=>{if(!this.shouldSaveQuery(n,i,o,this.history.fetchRecent()))return;this.history.push({query:n,variables:i,headers:o,operationName:s});let l=this.history.items,c=this.favorite.items;this.queries=l.concat(c)},this.deleteHistory=({query:n,variables:i,headers:o,operationName:s,favorite:l},c=!1)=>{function f(m){let v=m.items.find(g=>g.query===n&&g.variables===i&&g.headers===o&&g.operationName===s);v&&m.delete(v)}(l||c)&&f(this.favorite),(!l||c)&&f(this.history),this.queries=[...this.history.items,...this.favorite.items]},this.history=new jv("queries",this.storage,this.maxHistoryLength),this.favorite=new jv("favorites",this.storage,null),this.queries=[...this.history.fetchAll(),...this.favorite.fetchAll()]}shouldSaveQuery(t,r,n,i){if(!t)return!1;try{(0,H4.parse)(t)}catch{return!1}return t.length>Mfe?!1:i?!(JSON.stringify(t)===JSON.stringify(i.query)&&(JSON.stringify(r)===JSON.stringify(i.variables)&&(JSON.stringify(n)===JSON.stringify(i.headers)||n&&!i.headers)||r&&!i.variables)):!0}toggleFavorite({query:t,variables:r,headers:n,operationName:i,label:o,favorite:s}){let l={query:t,variables:r,headers:n,operationName:i,label:o};s?(l.favorite=!1,this.favorite.delete(l),this.history.push(l)):(l.favorite=!0,this.favorite.push(l),this.history.delete(l)),this.queries=[...this.history.items,...this.favorite.items]}editLabel({query:t,variables:r,headers:n,operationName:i,label:o,favorite:s},l){let c={query:t,variables:r,headers:n,operationName:i,label:o};s?this.favorite.edit(Object.assign(Object.assign({},c),{favorite:s}),l):this.history.edit(c,l),this.queries=[...this.history.items,...this.favorite.items]}};Zc();var u_=fe(Dq(),1),c_=fe(Iq(),1);function Ze(){return Ze=Object.assign?Object.assign.bind():function(e){for(var t=1;te.forEach(r=>Ode(r,t))}function sr(...e){return(0,Fq.useCallback)(Ap(...e),e)}var Pi=fe(Ee(),1);function qq(e,t){let r=(0,Pi.createContext)(t);function n(o){let{children:s,...l}=o,c=(0,Pi.useMemo)(()=>l,Object.values(l));return(0,Pi.createElement)(r.Provider,{value:c},s)}function i(o){let s=(0,Pi.useContext)(r);if(s)return s;if(t!==void 0)return t;throw new Error(`\`${o}\` must be used within \`${e}\``)}return n.displayName=e+"Provider",[n,i]}function Hi(e,t=[]){let r=[];function n(o,s){let l=(0,Pi.createContext)(s),c=r.length;r=[...r,s];function f(v){let{scope:g,children:y,...w}=v,T=g?.[e][c]||l,S=(0,Pi.useMemo)(()=>w,Object.values(w));return(0,Pi.createElement)(T.Provider,{value:S},y)}function m(v,g){let y=g?.[e][c]||l,w=(0,Pi.useContext)(y);if(w)return w;if(s!==void 0)return s;throw new Error(`\`${v}\` must be used within \`${o}\``)}return f.displayName=o+"Provider",[f,m]}let i=()=>{let o=r.map(s=>(0,Pi.createContext)(s));return function(l){let c=l?.[e]||o;return(0,Pi.useMemo)(()=>({[`__scope${e}`]:{...l,[e]:c}}),[l,c])}};return i.scopeName=e,[n,Nde(i,...t)]}function Nde(...e){let t=e[0];if(e.length===1)return t;let r=()=>{let n=e.map(i=>({useScope:i(),scopeName:i.scopeName}));return function(o){let s=n.reduce((l,{useScope:c,scopeName:f})=>{let v=c(o)[`__scope${f}`];return{...l,...v}},{});return(0,Pi.useMemo)(()=>({[`__scope${t.scopeName}`]:s}),[s])}};return r.scopeName=t.scopeName,r}var MD=fe(Ee(),1);var jq=fe(Ee(),1),ds=globalThis?.document?jq.useLayoutEffect:()=>{};var Dde=MD["useId".toString()]||(()=>{}),Lde=0;function Ea(e){let[t,r]=MD.useState(Dde());return ds(()=>{e||r(n=>n??String(Lde++))},[e]),e||(t?`radix-${t}`:"")}var mu=fe(Ee(),1);var xp=fe(Ee(),1);function Wn(e){let t=(0,xp.useRef)(e);return(0,xp.useEffect)(()=>{t.current=e}),(0,xp.useMemo)(()=>(...r)=>{var n;return(n=t.current)===null||n===void 0?void 0:n.call(t,...r)},[])}function hu({prop:e,defaultProp:t,onChange:r=()=>{}}){let[n,i]=Pde({defaultProp:t,onChange:r}),o=e!==void 0,s=o?e:n,l=Wn(r),c=(0,mu.useCallback)(f=>{if(o){let v=typeof f=="function"?f(e):f;v!==e&&l(v)}else i(f)},[o,e,i,l]);return[s,c]}function Pde({defaultProp:e,onChange:t}){let r=(0,mu.useState)(e),[n]=r,i=(0,mu.useRef)(n),o=Wn(t);return(0,mu.useEffect)(()=>{i.current!==n&&(o(n),i.current=n)},[n,i,o]),r}var Xr=fe(Ee(),1);var Jp=fe(Ee(),1),oB=fe(mf(),1);var Ir=fe(Ee(),1);var bs=(0,Ir.forwardRef)((e,t)=>{let{children:r,...n}=e,i=Ir.Children.toArray(r),o=i.find(Mme);if(o){let s=o.props.children,l=i.map(c=>c===o?Ir.Children.count(s)>1?Ir.Children.only(null):(0,Ir.isValidElement)(s)?s.props.children:null:c);return(0,Ir.createElement)(KL,Ze({},n,{ref:t}),(0,Ir.isValidElement)(s)?(0,Ir.cloneElement)(s,void 0,l):null)}return(0,Ir.createElement)(KL,Ze({},n,{ref:t}),r)});bs.displayName="Slot";var KL=(0,Ir.forwardRef)((e,t)=>{let{children:r,...n}=e;return(0,Ir.isValidElement)(r)?(0,Ir.cloneElement)(r,{...Ime(n,r.props),ref:t?Ap(t,r.ref):r.ref}):Ir.Children.count(r)>1?Ir.Children.only(null):null});KL.displayName="SlotClone";var XL=({children:e})=>(0,Ir.createElement)(Ir.Fragment,null,e);function Mme(e){return(0,Ir.isValidElement)(e)&&e.type===XL}function Ime(e,t){let r={...t};for(let n in t){let i=e[n],o=t[n];/^on[A-Z]/.test(n)?i&&o?r[n]=(...l)=>{o(...l),i(...l)}:i&&(r[n]=i):n==="style"?r[n]={...i,...o}:n==="className"&&(r[n]=[i,o].filter(Boolean).join(" "))}return{...e,...r}}var Fme=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","span","svg","ul"],cr=Fme.reduce((e,t)=>{let r=(0,Jp.forwardRef)((n,i)=>{let{asChild:o,...s}=n,l=o?bs:t;return(0,Jp.useEffect)(()=>{window[Symbol.for("radix-ui")]=!0},[]),(0,Jp.createElement)(l,Ze({},s,{ref:i}))});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{});function dx(e,t){e&&(0,oB.flushSync)(()=>e.dispatchEvent(t))}var aB=fe(Ee(),1);function sB(e,t=globalThis?.document){let r=Wn(e);(0,aB.useEffect)(()=>{let n=i=>{i.key==="Escape"&&r(i)};return t.addEventListener("keydown",n),()=>t.removeEventListener("keydown",n)},[r,t])}var ZL="dismissableLayer.update",qme="dismissableLayer.pointerDownOutside",jme="dismissableLayer.focusOutside",lB,Vme=(0,Xr.createContext)({layers:new Set,layersWithOutsidePointerEventsDisabled:new Set,branches:new Set}),_p=(0,Xr.forwardRef)((e,t)=>{var r;let{disableOutsidePointerEvents:n=!1,onEscapeKeyDown:i,onPointerDownOutside:o,onFocusOutside:s,onInteractOutside:l,onDismiss:c,...f}=e,m=(0,Xr.useContext)(Vme),[v,g]=(0,Xr.useState)(null),y=(r=v?.ownerDocument)!==null&&r!==void 0?r:globalThis?.document,[,w]=(0,Xr.useState)({}),T=sr(t,N=>g(N)),S=Array.from(m.layers),[A]=[...m.layersWithOutsidePointerEventsDisabled].slice(-1),b=S.indexOf(A),C=v?S.indexOf(v):-1,x=m.layersWithOutsidePointerEventsDisabled.size>0,k=C>=b,P=Ume(N=>{let I=N.target,V=[...m.branches].some(G=>G.contains(I));!k||V||(o?.(N),l?.(N),N.defaultPrevented||c?.())},y),D=Bme(N=>{let I=N.target;[...m.branches].some(G=>G.contains(I))||(s?.(N),l?.(N),N.defaultPrevented||c?.())},y);return sB(N=>{C===m.layers.size-1&&(i?.(N),!N.defaultPrevented&&c&&(N.preventDefault(),c()))},y),(0,Xr.useEffect)(()=>{if(v)return n&&(m.layersWithOutsidePointerEventsDisabled.size===0&&(lB=y.body.style.pointerEvents,y.body.style.pointerEvents="none"),m.layersWithOutsidePointerEventsDisabled.add(v)),m.layers.add(v),uB(),()=>{n&&m.layersWithOutsidePointerEventsDisabled.size===1&&(y.body.style.pointerEvents=lB)}},[v,y,n,m]),(0,Xr.useEffect)(()=>()=>{v&&(m.layers.delete(v),m.layersWithOutsidePointerEventsDisabled.delete(v),uB())},[v,m]),(0,Xr.useEffect)(()=>{let N=()=>w({});return document.addEventListener(ZL,N),()=>document.removeEventListener(ZL,N)},[]),(0,Xr.createElement)(cr.div,Ze({},f,{ref:T,style:{pointerEvents:x?k?"auto":"none":void 0,...e.style},onFocusCapture:xt(e.onFocusCapture,D.onFocusCapture),onBlurCapture:xt(e.onBlurCapture,D.onBlurCapture),onPointerDownCapture:xt(e.onPointerDownCapture,P.onPointerDownCapture)}))});function Ume(e,t=globalThis?.document){let r=Wn(e),n=(0,Xr.useRef)(!1),i=(0,Xr.useRef)(()=>{});return(0,Xr.useEffect)(()=>{let o=l=>{if(l.target&&!n.current){let f=function(){cB(qme,r,c,{discrete:!0})},c={originalEvent:l};l.pointerType==="touch"?(t.removeEventListener("click",i.current),i.current=f,t.addEventListener("click",i.current,{once:!0})):f()}else t.removeEventListener("click",i.current);n.current=!1},s=window.setTimeout(()=>{t.addEventListener("pointerdown",o)},0);return()=>{window.clearTimeout(s),t.removeEventListener("pointerdown",o),t.removeEventListener("click",i.current)}},[t,r]),{onPointerDownCapture:()=>n.current=!0}}function Bme(e,t=globalThis?.document){let r=Wn(e),n=(0,Xr.useRef)(!1);return(0,Xr.useEffect)(()=>{let i=o=>{o.target&&!n.current&&cB(jme,r,{originalEvent:o},{discrete:!1})};return t.addEventListener("focusin",i),()=>t.removeEventListener("focusin",i)},[t,r]),{onFocusCapture:()=>n.current=!0,onBlurCapture:()=>n.current=!1}}function uB(){let e=new CustomEvent(ZL);document.dispatchEvent(e)}function cB(e,t,r,{discrete:n}){let i=r.originalEvent.target,o=new CustomEvent(e,{bubbles:!1,cancelable:!0,detail:r});t&&i.addEventListener(e,t,{once:!0}),n?dx(i,o):i.dispatchEvent(o)}var Zi=fe(Ee(),1);var JL="focusScope.autoFocusOnMount",_L="focusScope.autoFocusOnUnmount",fB={bubbles:!1,cancelable:!0};var px=(0,Zi.forwardRef)((e,t)=>{let{loop:r=!1,trapped:n=!1,onMountAutoFocus:i,onUnmountAutoFocus:o,...s}=e,[l,c]=(0,Zi.useState)(null),f=Wn(i),m=Wn(o),v=(0,Zi.useRef)(null),g=sr(t,T=>c(T)),y=(0,Zi.useRef)({paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}}).current;(0,Zi.useEffect)(()=>{if(n){let T=function(C){if(y.paused||!l)return;let x=C.target;l.contains(x)?v.current=x:qu(v.current,{select:!0})},S=function(C){if(y.paused||!l)return;let x=C.relatedTarget;x!==null&&(l.contains(x)||qu(v.current,{select:!0}))},A=function(C){if(document.activeElement===document.body)for(let k of C)k.removedNodes.length>0&&qu(l)};document.addEventListener("focusin",T),document.addEventListener("focusout",S);let b=new MutationObserver(A);return l&&b.observe(l,{childList:!0,subtree:!0}),()=>{document.removeEventListener("focusin",T),document.removeEventListener("focusout",S),b.disconnect()}}},[n,l,y.paused]),(0,Zi.useEffect)(()=>{if(l){pB.add(y);let T=document.activeElement;if(!l.contains(T)){let A=new CustomEvent(JL,fB);l.addEventListener(JL,f),l.dispatchEvent(A),A.defaultPrevented||(Gme(Yme(hB(l)),{select:!0}),document.activeElement===T&&qu(l))}return()=>{l.removeEventListener(JL,f),setTimeout(()=>{let A=new CustomEvent(_L,fB);l.addEventListener(_L,m),l.dispatchEvent(A),A.defaultPrevented||qu(T??document.body,{select:!0}),l.removeEventListener(_L,m),pB.remove(y)},0)}}},[l,f,m,y]);let w=(0,Zi.useCallback)(T=>{if(!r&&!n||y.paused)return;let S=T.key==="Tab"&&!T.altKey&&!T.ctrlKey&&!T.metaKey,A=document.activeElement;if(S&&A){let b=T.currentTarget,[C,x]=zme(b);C&&x?!T.shiftKey&&A===x?(T.preventDefault(),r&&qu(C,{select:!0})):T.shiftKey&&A===C&&(T.preventDefault(),r&&qu(x,{select:!0})):A===b&&T.preventDefault()}},[r,n,y.paused]);return(0,Zi.createElement)(cr.div,Ze({tabIndex:-1},s,{ref:g,onKeyDown:w}))});function Gme(e,{select:t=!1}={}){let r=document.activeElement;for(let n of e)if(qu(n,{select:t}),document.activeElement!==r)return}function zme(e){let t=hB(e),r=dB(t,e),n=dB(t.reverse(),e);return[r,n]}function hB(e){let t=[],r=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:n=>{let i=n.tagName==="INPUT"&&n.type==="hidden";return n.disabled||n.hidden||i?NodeFilter.FILTER_SKIP:n.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});for(;r.nextNode();)t.push(r.currentNode);return t}function dB(e,t){for(let r of e)if(!Hme(r,{upTo:t}))return r}function Hme(e,{upTo:t}){if(getComputedStyle(e).visibility==="hidden")return!0;for(;e;){if(t!==void 0&&e===t)return!1;if(getComputedStyle(e).display==="none")return!0;e=e.parentElement}return!1}function Qme(e){return e instanceof HTMLInputElement&&"select"in e}function qu(e,{select:t=!1}={}){if(e&&e.focus){let r=document.activeElement;e.focus({preventScroll:!0}),e!==r&&Qme(e)&&t&&e.select()}}var pB=Wme();function Wme(){let e=[];return{add(t){let r=e[0];t!==r&&r?.pause(),e=mB(e,t),e.unshift(t)},remove(t){var r;e=mB(e,t),(r=e[0])===null||r===void 0||r.resume()}}}function mB(e,t){let r=[...e],n=r.indexOf(t);return n!==-1&&r.splice(n,1),r}function Yme(e){return e.filter(t=>t.tagName!=="A")}var mx=fe(Ee(),1),vB=fe(mf(),1);var $p=(0,mx.forwardRef)((e,t)=>{var r;let{container:n=globalThis==null||(r=globalThis.document)===null||r===void 0?void 0:r.body,...i}=e;return n?vB.default.createPortal((0,mx.createElement)(cr.div,Ze({},i,{ref:t})),n):null});var hi=fe(Ee(),1),gB=fe(mf(),1);function Kme(e,t){return(0,hi.useReducer)((r,n)=>{let i=t[r][n];return i??r},e)}var Pa=e=>{let{present:t,children:r}=e,n=Xme(t),i=typeof r=="function"?r({present:n.isPresent}):hi.Children.only(r),o=sr(n.ref,i.ref);return typeof r=="function"||n.isPresent?(0,hi.cloneElement)(i,{ref:o}):null};Pa.displayName="Presence";function Xme(e){let[t,r]=(0,hi.useState)(),n=(0,hi.useRef)({}),i=(0,hi.useRef)(e),o=(0,hi.useRef)("none"),s=e?"mounted":"unmounted",[l,c]=Kme(s,{mounted:{UNMOUNT:"unmounted",ANIMATION_OUT:"unmountSuspended"},unmountSuspended:{MOUNT:"mounted",ANIMATION_END:"unmounted"},unmounted:{MOUNT:"mounted"}});return(0,hi.useEffect)(()=>{let f=hx(n.current);o.current=l==="mounted"?f:"none"},[l]),ds(()=>{let f=n.current,m=i.current;if(m!==e){let g=o.current,y=hx(f);e?c("MOUNT"):y==="none"||f?.display==="none"?c("UNMOUNT"):c(m&&g!==y?"ANIMATION_OUT":"UNMOUNT"),i.current=e}},[e,c]),ds(()=>{if(t){let f=v=>{let y=hx(n.current).includes(v.animationName);v.target===t&&y&&(0,gB.flushSync)(()=>c("ANIMATION_END"))},m=v=>{v.target===t&&(o.current=hx(n.current))};return t.addEventListener("animationstart",m),t.addEventListener("animationcancel",f),t.addEventListener("animationend",f),()=>{t.removeEventListener("animationstart",m),t.removeEventListener("animationcancel",f),t.removeEventListener("animationend",f)}}else c("ANIMATION_END")},[t,c]),{isPresent:["mounted","unmountSuspended"].includes(l),ref:(0,hi.useCallback)(f=>{f&&(n.current=getComputedStyle(f)),r(f)},[])}}function hx(e){return e?.animationName||"none"}var bB=fe(Ee(),1),$L=0;function vx(){(0,bB.useEffect)(()=>{var e,t;let r=document.querySelectorAll("[data-radix-focus-guard]");return document.body.insertAdjacentElement("afterbegin",(e=r[0])!==null&&e!==void 0?e:yB()),document.body.insertAdjacentElement("beforeend",(t=r[1])!==null&&t!==void 0?t:yB()),$L++,()=>{$L===1&&document.querySelectorAll("[data-radix-focus-guard]").forEach(n=>n.remove()),$L--}},[])}function yB(){let e=document.createElement("span");return e.setAttribute("data-radix-focus-guard",""),e.tabIndex=0,e.style.cssText="outline: none; opacity: 0; position: fixed; pointer-events: none",e}var As=function(){return As=Object.assign||function(t){for(var r,n=1,i=arguments.length;n"u")return the;var t=rhe(e),r=document.documentElement.clientWidth,n=window.innerWidth;return{left:t[0],top:t[1],right:t[2],gap:Math.max(0,n-r+t[2]-t[0])}};var nhe=qg(),ihe=function(e,t,r,n){var i=e.left,o=e.top,s=e.right,l=e.gap;return r===void 0&&(r="margin"),` +`+m)}); + } + } + }}),{insertions:n,result:Nfe(t,n)}; +}function Ofe(e){ + if(!('getFields'in e))return[];let t=e.getFields();if(t.id)return['id'];if(t.edges)return['edges'];if(t.node)return['node'];let r=[];for(let n of Object.keys(t))(0,Hn.isLeafType)(t[n].type)&&r.push(n);return r; +}function U4(e,t){ + let r=(0,Hn.getNamedType)(e);if(!e||(0,Hn.isLeafType)(e))return;let n=t(r);if(!(!Array.isArray(n)||n.length===0||!('getFields'in r)))return{kind:Hn.Kind.SELECTION_SET,selections:n.map(i=>{ + let o=r.getFields()[i],s=o?o.type:null;return{kind:Hn.Kind.FIELD,name:{kind:Hn.Kind.NAME,value:i},selectionSet:U4(s,t)}; + })}; +}function Nfe(e,t){ + if(t.length===0)return e;let r='',n=0;for(let{index:i,string:o}of t)r+=e.slice(n,i)+o,n=i;return r+=e.slice(n),r; +}function Dfe(e,t){ + let r=t,n=t;for(;r;){ + let i=e.charCodeAt(r-1);if(i===10||i===13||i===8232||i===8233)break;r--,i!==9&&i!==11&&i!==12&&i!==32&&i!==160&&(n=r); + }return e.slice(r,n); +}function Lfe(e){ + if(e)return e; +}var fo=fe(Ur());function Pfe(e,t){ + var r;let n=new Map,i=[];for(let o of e)if(o.kind==='Field'){ + let s=t(o),l=n.get(s);if(!((r=o.directives)===null||r===void 0)&&r.length){ + let c=Object.assign({},o);i.push(c); + }else if(l?.selectionSet&&o.selectionSet)l.selectionSet.selections=[...l.selectionSet.selections,...o.selectionSet.selections];else if(!l){ + let c=Object.assign({},o);n.set(s,c),i.push(c); + } + }else i.push(o);return i; +}function B4(e,t,r){ + var n;let i=r?(0,fo.getNamedType)(r).name:null,o=[],s=[];for(let l of t){ + if(l.kind==='FragmentSpread'){ + let c=l.name.value;if(!l.directives||l.directives.length===0){ + if(s.includes(c))continue;s.push(c); + }let f=e[l.name.value];if(f){ + let{typeCondition:m,directives:v,selectionSet:g}=f;l={kind:fo.Kind.INLINE_FRAGMENT,typeCondition:m,directives:v,selectionSet:g}; + } + }if(l.kind===fo.Kind.INLINE_FRAGMENT&&(!l.directives||((n=l.directives)===null||n===void 0?void 0:n.length)===0)){ + let c=l.typeCondition?l.typeCondition.name.value:null;if(!c||c===i){ + o.push(...B4(e,l.selectionSet.selections,r));continue; + } + }o.push(l); + }return o; +}function G4(e,t){ + let r=t?new fo.TypeInfo(t):null,n=Object.create(null);for(let l of e.definitions)l.kind===fo.Kind.FRAGMENT_DEFINITION&&(n[l.name.value]=l);let i={SelectionSet(l){ + let c=r?r.getParentType():null,{selections:f}=l;return f=B4(n,f,c),Object.assign(Object.assign({},l),{selections:f}); + },FragmentDefinition(){ + return null; + }},o=(0,fo.visit)(e,r?(0,fo.visitWithTypeInfo)(r,i):i);return(0,fo.visit)(o,{SelectionSet(l){ + let{selections:c}=l;return c=Pfe(c,f=>f.alias?f.alias.value:f.name.value),Object.assign(Object.assign({},l),{selections:c}); + },FragmentDefinition(){ + return null; + }}); +}function z4(e,t,r){ + if(!r||r.length<1)return;let n=r.map(i=>{ + var o;return(o=i.name)===null||o===void 0?void 0:o.value; + });if(t&&n.includes(t))return t;if(t&&e){ + let o=e.map(s=>{ + var l;return(l=s.name)===null||l===void 0?void 0:l.value; + }).indexOf(t);if(o!==-1&&o'u'?this.storage=null:this.storage={getItem:window.localStorage.getItem.bind(window.localStorage),setItem:window.localStorage.setItem.bind(window.localStorage),removeItem:window.localStorage.removeItem.bind(window.localStorage),get length(){ + let r=0;for(let n in window.localStorage)n.indexOf(`${kA}:`)===0&&(r+=1);return r; + },clear(){ + for(let r in window.localStorage)r.indexOf(`${kA}:`)===0&&window.localStorage.removeItem(r); + }}; + }get(t){ + if(!this.storage)return null;let r=`${kA}:${t}`,n=this.storage.getItem(r);return n==='null'||n==='undefined'?(this.storage.removeItem(r),null):n||null; + }set(t,r){ + let n=!1,i=null;if(this.storage){ + let o=`${kA}:${t}`;if(r)try{ + this.storage.setItem(o,r); + }catch(s){ + i=s instanceof Error?s:new Error(`${s}`),n=Rfe(this.storage,s); + }else this.storage.removeItem(o); + }return{isQuotaError:n,error:i}; + }clear(){ + this.storage&&this.storage.clear(); + } + },kA='graphiql';var H4=fe(Ur());var jv=class{ + constructor(t,r,n=null){ + this.key=t,this.storage=r,this.maxSize=n,this.items=this.fetchAll(); + }get length(){ + return this.items.length; + }contains(t){ + return this.items.some(r=>r.query===t.query&&r.variables===t.variables&&r.headers===t.headers&&r.operationName===t.operationName); + }edit(t,r){ + if(typeof r=='number'&&this.items[r]){ + let i=this.items[r];if(i.query===t.query&&i.variables===t.variables&&i.headers===t.headers&&i.operationName===t.operationName){ + this.items.splice(r,1,t),this.save();return; + } + }let n=this.items.findIndex(i=>i.query===t.query&&i.variables===t.variables&&i.headers===t.headers&&i.operationName===t.operationName);n!==-1&&(this.items.splice(n,1,t),this.save()); + }delete(t){ + let r=this.items.findIndex(n=>n.query===t.query&&n.variables===t.variables&&n.headers===t.headers&&n.operationName===t.operationName);r!==-1&&(this.items.splice(r,1),this.save()); + }fetchRecent(){ + return this.items.at(-1); + }fetchAll(){ + let t=this.storage.get(this.key);return t?JSON.parse(t)[this.key]:[]; + }push(t){ + let r=[...this.items,t];this.maxSize&&r.length>this.maxSize&&r.shift();for(let n=0;n<5;n++){ + let i=this.storage.set(this.key,JSON.stringify({[this.key]:r}));if(!i?.error)this.items=r;else if(i.isQuotaError&&this.maxSize)r.shift();else return; + } + }save(){ + this.storage.set(this.key,JSON.stringify({[this.key]:this.items})); + } +};var Mfe=1e5,OA=class{ + constructor(t,r){ + this.storage=t,this.maxHistoryLength=r,this.updateHistory=({query:n,variables:i,headers:o,operationName:s})=>{ + if(!this.shouldSaveQuery(n,i,o,this.history.fetchRecent()))return;this.history.push({query:n,variables:i,headers:o,operationName:s});let l=this.history.items,c=this.favorite.items;this.queries=l.concat(c); + },this.deleteHistory=({query:n,variables:i,headers:o,operationName:s,favorite:l},c=!1)=>{ + function f(m){ + let v=m.items.find(g=>g.query===n&&g.variables===i&&g.headers===o&&g.operationName===s);v&&m.delete(v); + }(l||c)&&f(this.favorite),(!l||c)&&f(this.history),this.queries=[...this.history.items,...this.favorite.items]; + },this.history=new jv('queries',this.storage,this.maxHistoryLength),this.favorite=new jv('favorites',this.storage,null),this.queries=[...this.history.fetchAll(),...this.favorite.fetchAll()]; + }shouldSaveQuery(t,r,n,i){ + if(!t)return!1;try{ + (0,H4.parse)(t); + }catch{ + return!1; + }return t.length>Mfe?!1:i?!(JSON.stringify(t)===JSON.stringify(i.query)&&(JSON.stringify(r)===JSON.stringify(i.variables)&&(JSON.stringify(n)===JSON.stringify(i.headers)||n&&!i.headers)||r&&!i.variables)):!0; + }toggleFavorite({query:t,variables:r,headers:n,operationName:i,label:o,favorite:s}){ + let l={query:t,variables:r,headers:n,operationName:i,label:o};s?(l.favorite=!1,this.favorite.delete(l),this.history.push(l)):(l.favorite=!0,this.favorite.push(l),this.history.delete(l)),this.queries=[...this.history.items,...this.favorite.items]; + }editLabel({query:t,variables:r,headers:n,operationName:i,label:o,favorite:s},l){ + let c={query:t,variables:r,headers:n,operationName:i,label:o};s?this.favorite.edit(Object.assign(Object.assign({},c),{favorite:s}),l):this.history.edit(c,l),this.queries=[...this.history.items,...this.favorite.items]; + } +};Zc();var u_=fe(Dq(),1),c_=fe(Iq(),1);function Ze(){ + return Ze=Object.assign?Object.assign.bind():function(e){ + for(var t=1;te.forEach(r=>Ode(r,t)); +}function sr(...e){ + return(0,Fq.useCallback)(Ap(...e),e); +}var Pi=fe(Ee(),1);function qq(e,t){ + let r=(0,Pi.createContext)(t);function n(o){ + let{children:s,...l}=o,c=(0,Pi.useMemo)(()=>l,Object.values(l));return(0,Pi.createElement)(r.Provider,{value:c},s); + }function i(o){ + let s=(0,Pi.useContext)(r);if(s)return s;if(t!==void 0)return t;throw new Error(`\`${o}\` must be used within \`${e}\``); + }return n.displayName=e+'Provider',[n,i]; +}function Hi(e,t=[]){ + let r=[];function n(o,s){ + let l=(0,Pi.createContext)(s),c=r.length;r=[...r,s];function f(v){ + let{scope:g,children:y,...w}=v,T=g?.[e][c]||l,S=(0,Pi.useMemo)(()=>w,Object.values(w));return(0,Pi.createElement)(T.Provider,{value:S},y); + }function m(v,g){ + let y=g?.[e][c]||l,w=(0,Pi.useContext)(y);if(w)return w;if(s!==void 0)return s;throw new Error(`\`${v}\` must be used within \`${o}\``); + }return f.displayName=o+'Provider',[f,m]; + }let i=()=>{ + let o=r.map(s=>(0,Pi.createContext)(s));return function(l){ + let c=l?.[e]||o;return(0,Pi.useMemo)(()=>({[`__scope${e}`]:{...l,[e]:c}}),[l,c]); + }; + };return i.scopeName=e,[n,Nde(i,...t)]; +}function Nde(...e){ + let t=e[0];if(e.length===1)return t;let r=()=>{ + let n=e.map(i=>({useScope:i(),scopeName:i.scopeName}));return function(o){ + let s=n.reduce((l,{useScope:c,scopeName:f})=>{ + let v=c(o)[`__scope${f}`];return{...l,...v}; + },{});return(0,Pi.useMemo)(()=>({[`__scope${t.scopeName}`]:s}),[s]); + }; + };return r.scopeName=t.scopeName,r; +}var MD=fe(Ee(),1);var jq=fe(Ee(),1),ds=globalThis?.document?jq.useLayoutEffect:()=>{};var Dde=MD['useId'.toString()]||(()=>{}),Lde=0;function Ea(e){ + let[t,r]=MD.useState(Dde());return ds(()=>{ + e||r(n=>n??String(Lde++)); + },[e]),e||(t?`radix-${t}`:''); +}var mu=fe(Ee(),1);var xp=fe(Ee(),1);function Wn(e){ + let t=(0,xp.useRef)(e);return(0,xp.useEffect)(()=>{ + t.current=e; + }),(0,xp.useMemo)(()=>(...r)=>{ + var n;return(n=t.current)===null||n===void 0?void 0:n.call(t,...r); + },[]); +}function hu({prop:e,defaultProp:t,onChange:r=()=>{}}){ + let[n,i]=Pde({defaultProp:t,onChange:r}),o=e!==void 0,s=o?e:n,l=Wn(r),c=(0,mu.useCallback)(f=>{ + if(o){ + let v=typeof f=='function'?f(e):f;v!==e&&l(v); + }else i(f); + },[o,e,i,l]);return[s,c]; +}function Pde({defaultProp:e,onChange:t}){ + let r=(0,mu.useState)(e),[n]=r,i=(0,mu.useRef)(n),o=Wn(t);return(0,mu.useEffect)(()=>{ + i.current!==n&&(o(n),i.current=n); + },[n,i,o]),r; +}var Xr=fe(Ee(),1);var Jp=fe(Ee(),1),oB=fe(mf(),1);var Ir=fe(Ee(),1);var bs=(0,Ir.forwardRef)((e,t)=>{ + let{children:r,...n}=e,i=Ir.Children.toArray(r),o=i.find(Mme);if(o){ + let s=o.props.children,l=i.map(c=>c===o?Ir.Children.count(s)>1?Ir.Children.only(null):(0,Ir.isValidElement)(s)?s.props.children:null:c);return(0,Ir.createElement)(KL,Ze({},n,{ref:t}),(0,Ir.isValidElement)(s)?(0,Ir.cloneElement)(s,void 0,l):null); + }return(0,Ir.createElement)(KL,Ze({},n,{ref:t}),r); +});bs.displayName='Slot';var KL=(0,Ir.forwardRef)((e,t)=>{ + let{children:r,...n}=e;return(0,Ir.isValidElement)(r)?(0,Ir.cloneElement)(r,{...Ime(n,r.props),ref:t?Ap(t,r.ref):r.ref}):Ir.Children.count(r)>1?Ir.Children.only(null):null; +});KL.displayName='SlotClone';var XL=({children:e})=>(0,Ir.createElement)(Ir.Fragment,null,e);function Mme(e){ + return(0,Ir.isValidElement)(e)&&e.type===XL; +}function Ime(e,t){ + let r={...t};for(let n in t){ + let i=e[n],o=t[n];/^on[A-Z]/.test(n)?i&&o?r[n]=(...l)=>{ + o(...l),i(...l); + }:i&&(r[n]=i):n==='style'?r[n]={...i,...o}:n==='className'&&(r[n]=[i,o].filter(Boolean).join(' ')); + }return{...e,...r}; +}var Fme=['a','button','div','form','h2','h3','img','input','label','li','nav','ol','p','span','svg','ul'],cr=Fme.reduce((e,t)=>{ + let r=(0,Jp.forwardRef)((n,i)=>{ + let{asChild:o,...s}=n,l=o?bs:t;return(0,Jp.useEffect)(()=>{ + window[Symbol.for('radix-ui')]=!0; + },[]),(0,Jp.createElement)(l,Ze({},s,{ref:i})); + });return r.displayName=`Primitive.${t}`,{...e,[t]:r}; +},{});function dx(e,t){ + e&&(0,oB.flushSync)(()=>e.dispatchEvent(t)); +}var aB=fe(Ee(),1);function sB(e,t=globalThis?.document){ + let r=Wn(e);(0,aB.useEffect)(()=>{ + let n=i=>{ + i.key==='Escape'&&r(i); + };return t.addEventListener('keydown',n),()=>t.removeEventListener('keydown',n); + },[r,t]); +}var ZL='dismissableLayer.update',qme='dismissableLayer.pointerDownOutside',jme='dismissableLayer.focusOutside',lB,Vme=(0,Xr.createContext)({layers:new Set,layersWithOutsidePointerEventsDisabled:new Set,branches:new Set}),_p=(0,Xr.forwardRef)((e,t)=>{ + var r;let{disableOutsidePointerEvents:n=!1,onEscapeKeyDown:i,onPointerDownOutside:o,onFocusOutside:s,onInteractOutside:l,onDismiss:c,...f}=e,m=(0,Xr.useContext)(Vme),[v,g]=(0,Xr.useState)(null),y=(r=v?.ownerDocument)!==null&&r!==void 0?r:globalThis?.document,[,w]=(0,Xr.useState)({}),T=sr(t,N=>g(N)),S=Array.from(m.layers),[A]=[...m.layersWithOutsidePointerEventsDisabled].slice(-1),b=S.indexOf(A),C=v?S.indexOf(v):-1,x=m.layersWithOutsidePointerEventsDisabled.size>0,k=C>=b,P=Ume(N=>{ + let I=N.target,V=[...m.branches].some(G=>G.contains(I));!k||V||(o?.(N),l?.(N),N.defaultPrevented||c?.()); + },y),D=Bme(N=>{ + let I=N.target;[...m.branches].some(G=>G.contains(I))||(s?.(N),l?.(N),N.defaultPrevented||c?.()); + },y);return sB(N=>{ + C===m.layers.size-1&&(i?.(N),!N.defaultPrevented&&c&&(N.preventDefault(),c())); + },y),(0,Xr.useEffect)(()=>{ + if(v)return n&&(m.layersWithOutsidePointerEventsDisabled.size===0&&(lB=y.body.style.pointerEvents,y.body.style.pointerEvents='none'),m.layersWithOutsidePointerEventsDisabled.add(v)),m.layers.add(v),uB(),()=>{ + n&&m.layersWithOutsidePointerEventsDisabled.size===1&&(y.body.style.pointerEvents=lB); + }; + },[v,y,n,m]),(0,Xr.useEffect)(()=>()=>{ + v&&(m.layers.delete(v),m.layersWithOutsidePointerEventsDisabled.delete(v),uB()); + },[v,m]),(0,Xr.useEffect)(()=>{ + let N=()=>w({});return document.addEventListener(ZL,N),()=>document.removeEventListener(ZL,N); + },[]),(0,Xr.createElement)(cr.div,Ze({},f,{ref:T,style:{pointerEvents:x?k?'auto':'none':void 0,...e.style},onFocusCapture:xt(e.onFocusCapture,D.onFocusCapture),onBlurCapture:xt(e.onBlurCapture,D.onBlurCapture),onPointerDownCapture:xt(e.onPointerDownCapture,P.onPointerDownCapture)})); +});function Ume(e,t=globalThis?.document){ + let r=Wn(e),n=(0,Xr.useRef)(!1),i=(0,Xr.useRef)(()=>{});return(0,Xr.useEffect)(()=>{ + let o=l=>{ + if(l.target&&!n.current){ + let f=function(){ + cB(qme,r,c,{discrete:!0}); + },c={originalEvent:l};l.pointerType==='touch'?(t.removeEventListener('click',i.current),i.current=f,t.addEventListener('click',i.current,{once:!0})):f(); + }else t.removeEventListener('click',i.current);n.current=!1; + },s=window.setTimeout(()=>{ + t.addEventListener('pointerdown',o); + },0);return()=>{ + window.clearTimeout(s),t.removeEventListener('pointerdown',o),t.removeEventListener('click',i.current); + }; + },[t,r]),{onPointerDownCapture:()=>n.current=!0}; +}function Bme(e,t=globalThis?.document){ + let r=Wn(e),n=(0,Xr.useRef)(!1);return(0,Xr.useEffect)(()=>{ + let i=o=>{ + o.target&&!n.current&&cB(jme,r,{originalEvent:o},{discrete:!1}); + };return t.addEventListener('focusin',i),()=>t.removeEventListener('focusin',i); + },[t,r]),{onFocusCapture:()=>n.current=!0,onBlurCapture:()=>n.current=!1}; +}function uB(){ + let e=new CustomEvent(ZL);document.dispatchEvent(e); +}function cB(e,t,r,{discrete:n}){ + let i=r.originalEvent.target,o=new CustomEvent(e,{bubbles:!1,cancelable:!0,detail:r});t&&i.addEventListener(e,t,{once:!0}),n?dx(i,o):i.dispatchEvent(o); +}var Zi=fe(Ee(),1);var JL='focusScope.autoFocusOnMount',_L='focusScope.autoFocusOnUnmount',fB={bubbles:!1,cancelable:!0};var px=(0,Zi.forwardRef)((e,t)=>{ + let{loop:r=!1,trapped:n=!1,onMountAutoFocus:i,onUnmountAutoFocus:o,...s}=e,[l,c]=(0,Zi.useState)(null),f=Wn(i),m=Wn(o),v=(0,Zi.useRef)(null),g=sr(t,T=>c(T)),y=(0,Zi.useRef)({paused:!1,pause(){ + this.paused=!0; + },resume(){ + this.paused=!1; + }}).current;(0,Zi.useEffect)(()=>{ + if(n){ + let T=function(C){ + if(y.paused||!l)return;let x=C.target;l.contains(x)?v.current=x:qu(v.current,{select:!0}); + },S=function(C){ + if(y.paused||!l)return;let x=C.relatedTarget;x!==null&&(l.contains(x)||qu(v.current,{select:!0})); + },A=function(C){ + if(document.activeElement===document.body)for(let k of C)k.removedNodes.length>0&&qu(l); + };document.addEventListener('focusin',T),document.addEventListener('focusout',S);let b=new MutationObserver(A);return l&&b.observe(l,{childList:!0,subtree:!0}),()=>{ + document.removeEventListener('focusin',T),document.removeEventListener('focusout',S),b.disconnect(); + }; + } + },[n,l,y.paused]),(0,Zi.useEffect)(()=>{ + if(l){ + pB.add(y);let T=document.activeElement;if(!l.contains(T)){ + let A=new CustomEvent(JL,fB);l.addEventListener(JL,f),l.dispatchEvent(A),A.defaultPrevented||(Gme(Yme(hB(l)),{select:!0}),document.activeElement===T&&qu(l)); + }return()=>{ + l.removeEventListener(JL,f),setTimeout(()=>{ + let A=new CustomEvent(_L,fB);l.addEventListener(_L,m),l.dispatchEvent(A),A.defaultPrevented||qu(T??document.body,{select:!0}),l.removeEventListener(_L,m),pB.remove(y); + },0); + }; + } + },[l,f,m,y]);let w=(0,Zi.useCallback)(T=>{ + if(!r&&!n||y.paused)return;let S=T.key==='Tab'&&!T.altKey&&!T.ctrlKey&&!T.metaKey,A=document.activeElement;if(S&&A){ + let b=T.currentTarget,[C,x]=zme(b);C&&x?!T.shiftKey&&A===x?(T.preventDefault(),r&&qu(C,{select:!0})):T.shiftKey&&A===C&&(T.preventDefault(),r&&qu(x,{select:!0})):A===b&&T.preventDefault(); + } + },[r,n,y.paused]);return(0,Zi.createElement)(cr.div,Ze({tabIndex:-1},s,{ref:g,onKeyDown:w})); +});function Gme(e,{select:t=!1}={}){ + let r=document.activeElement;for(let n of e)if(qu(n,{select:t}),document.activeElement!==r)return; +}function zme(e){ + let t=hB(e),r=dB(t,e),n=dB(t.reverse(),e);return[r,n]; +}function hB(e){ + let t=[],r=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:n=>{ + let i=n.tagName==='INPUT'&&n.type==='hidden';return n.disabled||n.hidden||i?NodeFilter.FILTER_SKIP:n.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP; + }});for(;r.nextNode();)t.push(r.currentNode);return t; +}function dB(e,t){ + for(let r of e)if(!Hme(r,{upTo:t}))return r; +}function Hme(e,{upTo:t}){ + if(getComputedStyle(e).visibility==='hidden')return!0;for(;e;){ + if(t!==void 0&&e===t)return!1;if(getComputedStyle(e).display==='none')return!0;e=e.parentElement; + }return!1; +}function Qme(e){ + return e instanceof HTMLInputElement&&'select'in e; +}function qu(e,{select:t=!1}={}){ + if(e&&e.focus){ + let r=document.activeElement;e.focus({preventScroll:!0}),e!==r&&Qme(e)&&t&&e.select(); + } +}var pB=Wme();function Wme(){ + let e=[];return{add(t){ + let r=e[0];t!==r&&r?.pause(),e=mB(e,t),e.unshift(t); + },remove(t){ + var r;e=mB(e,t),(r=e[0])===null||r===void 0||r.resume(); + }}; +}function mB(e,t){ + let r=[...e],n=r.indexOf(t);return n!==-1&&r.splice(n,1),r; +}function Yme(e){ + return e.filter(t=>t.tagName!=='A'); +}var mx=fe(Ee(),1),vB=fe(mf(),1);var $p=(0,mx.forwardRef)((e,t)=>{ + var r;let{container:n=globalThis==null||(r=globalThis.document)===null||r===void 0?void 0:r.body,...i}=e;return n?vB.default.createPortal((0,mx.createElement)(cr.div,Ze({},i,{ref:t})),n):null; +});var hi=fe(Ee(),1),gB=fe(mf(),1);function Kme(e,t){ + return(0,hi.useReducer)((r,n)=>{ + let i=t[r][n];return i??r; + },e); +}var Pa=e=>{ + let{present:t,children:r}=e,n=Xme(t),i=typeof r=='function'?r({present:n.isPresent}):hi.Children.only(r),o=sr(n.ref,i.ref);return typeof r=='function'||n.isPresent?(0,hi.cloneElement)(i,{ref:o}):null; +};Pa.displayName='Presence';function Xme(e){ + let[t,r]=(0,hi.useState)(),n=(0,hi.useRef)({}),i=(0,hi.useRef)(e),o=(0,hi.useRef)('none'),s=e?'mounted':'unmounted',[l,c]=Kme(s,{mounted:{UNMOUNT:'unmounted',ANIMATION_OUT:'unmountSuspended'},unmountSuspended:{MOUNT:'mounted',ANIMATION_END:'unmounted'},unmounted:{MOUNT:'mounted'}});return(0,hi.useEffect)(()=>{ + let f=hx(n.current);o.current=l==='mounted'?f:'none'; + },[l]),ds(()=>{ + let f=n.current,m=i.current;if(m!==e){ + let g=o.current,y=hx(f);e?c('MOUNT'):y==='none'||f?.display==='none'?c('UNMOUNT'):c(m&&g!==y?'ANIMATION_OUT':'UNMOUNT'),i.current=e; + } + },[e,c]),ds(()=>{ + if(t){ + let f=v=>{ + let y=hx(n.current).includes(v.animationName);v.target===t&&y&&(0,gB.flushSync)(()=>c('ANIMATION_END')); + },m=v=>{ + v.target===t&&(o.current=hx(n.current)); + };return t.addEventListener('animationstart',m),t.addEventListener('animationcancel',f),t.addEventListener('animationend',f),()=>{ + t.removeEventListener('animationstart',m),t.removeEventListener('animationcancel',f),t.removeEventListener('animationend',f); + }; + }else c('ANIMATION_END'); + },[t,c]),{isPresent:['mounted','unmountSuspended'].includes(l),ref:(0,hi.useCallback)(f=>{ + f&&(n.current=getComputedStyle(f)),r(f); + },[])}; +}function hx(e){ + return e?.animationName||'none'; +}var bB=fe(Ee(),1),$L=0;function vx(){ + (0,bB.useEffect)(()=>{ + var e,t;let r=document.querySelectorAll('[data-radix-focus-guard]');return document.body.insertAdjacentElement('afterbegin',(e=r[0])!==null&&e!==void 0?e:yB()),document.body.insertAdjacentElement('beforeend',(t=r[1])!==null&&t!==void 0?t:yB()),$L++,()=>{ + $L===1&&document.querySelectorAll('[data-radix-focus-guard]').forEach(n=>n.remove()),$L--; + }; + },[]); +}function yB(){ + let e=document.createElement('span');return e.setAttribute('data-radix-focus-guard',''),e.tabIndex=0,e.style.cssText='outline: none; opacity: 0; position: fixed; pointer-events: none',e; +}var As=function(){ + return As=Object.assign||function(t){ + for(var r,n=1,i=arguments.length;n'u')return the;var t=rhe(e),r=document.documentElement.clientWidth,n=window.innerWidth;return{left:t[0],top:t[1],right:t[2],gap:Math.max(0,n-r+t[2]-t[0])}; + };var nhe=qg(),ihe=function(e,t,r,n){ + var i=e.left,o=e.top,s=e.right,l=e.gap;return r===void 0&&(r='margin'),` .`.concat(eP,` { overflow: hidden `).concat(n,`; - padding-right: `).concat(l,"px ").concat(n,`; + padding-right: `).concat(l,'px ').concat(n,`; } body { overflow: hidden `).concat(n,`; overscroll-behavior: contain; - `).concat([t&&"position: relative ".concat(n,";"),r==="margin"&&` + `).concat([t&&'position: relative '.concat(n,';'),r==='margin'&&` padding-left: `.concat(i,`px; padding-top: `).concat(o,`px; padding-right: `).concat(s,`px; margin-left:0; margin-top:0; - margin-right: `).concat(l,"px ").concat(n,`; - `),r==="padding"&&"padding-right: ".concat(l,"px ").concat(n,";")].filter(Boolean).join(""),` + margin-right: `).concat(l,'px ').concat(n,`; + `),r==='padding'&&'padding-right: '.concat(l,'px ').concat(n,';')].filter(Boolean).join(''),` } .`).concat(hf,` { - right: `).concat(l,"px ").concat(n,`; + right: `).concat(l,'px ').concat(n,`; } .`).concat(vf,` { - margin-right: `).concat(l,"px ").concat(n,`; + margin-right: `).concat(l,'px ').concat(n,`; } - .`).concat(hf," .").concat(hf,` { + .`).concat(hf,' .').concat(hf,` { right: 0 `).concat(n,`; } - .`).concat(vf," .").concat(vf,` { + .`).concat(vf,' .').concat(vf,` { margin-right: 0 `).concat(n,`; } body { - `).concat(tP,": ").concat(l,`px; + `).concat(tP,': ').concat(l,`px; } -`)},cP=function(e){var t=e.noRelative,r=e.noImportant,n=e.gapMode,i=n===void 0?"margin":n,o=yx.useMemo(function(){return uP(i)},[i]);return yx.createElement(nhe,{styles:ihe(o,!t,i,r?"":"!important")})};var fP=!1;if(typeof window<"u")try{jg=Object.defineProperty({},"passive",{get:function(){return fP=!0,!0}}),window.addEventListener("test",jg,jg),window.removeEventListener("test",jg,jg)}catch{fP=!1}var jg,gf=fP?{passive:!1}:!1;var ohe=function(e){return e.tagName==="TEXTAREA"},LB=function(e,t){var r=window.getComputedStyle(e);return r[t]!=="hidden"&&!(r.overflowY===r.overflowX&&!ohe(e)&&r[t]==="visible")},ahe=function(e){return LB(e,"overflowY")},she=function(e){return LB(e,"overflowX")},dP=function(e,t){var r=t;do{typeof ShadowRoot<"u"&&r instanceof ShadowRoot&&(r=r.host);var n=PB(e,r);if(n){var i=RB(e,r),o=i[1],s=i[2];if(o>s)return!0}r=r.parentNode}while(r&&r!==document.body);return!1},lhe=function(e){var t=e.scrollTop,r=e.scrollHeight,n=e.clientHeight;return[t,r,n]},uhe=function(e){var t=e.scrollLeft,r=e.scrollWidth,n=e.clientWidth;return[t,r,n]},PB=function(e,t){return e==="v"?ahe(t):she(t)},RB=function(e,t){return e==="v"?lhe(t):uhe(t)},che=function(e,t){return e==="h"&&t==="rtl"?-1:1},MB=function(e,t,r,n,i){var o=che(e,window.getComputedStyle(t).direction),s=o*n,l=r.target,c=t.contains(l),f=!1,m=s>0,v=0,g=0;do{var y=RB(e,l),w=y[0],T=y[1],S=y[2],A=T-S-o*w;(w||A)&&PB(e,l)&&(v+=A,g+=w),l=l.parentNode}while(!c&&l!==document.body||c&&(t.contains(l)||t===l));return(m&&(i&&v===0||!i&&s>v)||!m&&(i&&g===0||!i&&-s>g))&&(f=!0),f};var bx=function(e){return"changedTouches"in e?[e.changedTouches[0].clientX,e.changedTouches[0].clientY]:[0,0]},IB=function(e){return[e.deltaX,e.deltaY]},FB=function(e){return e&&"current"in e?e.current:e},fhe=function(e,t){return e[0]===t[0]&&e[1]===t[1]},dhe=function(e){return` +`); + },cP=function(e){ + var t=e.noRelative,r=e.noImportant,n=e.gapMode,i=n===void 0?'margin':n,o=yx.useMemo(function(){ + return uP(i); + },[i]);return yx.createElement(nhe,{styles:ihe(o,!t,i,r?'':'!important')}); + };var fP=!1;if(typeof window<'u')try{ + jg=Object.defineProperty({},'passive',{get:function(){ + return fP=!0,!0; + }}),window.addEventListener('test',jg,jg),window.removeEventListener('test',jg,jg); +}catch{ + fP=!1; +}var jg,gf=fP?{passive:!1}:!1;var ohe=function(e){ + return e.tagName==='TEXTAREA'; + },LB=function(e,t){ + var r=window.getComputedStyle(e);return r[t]!=='hidden'&&!(r.overflowY===r.overflowX&&!ohe(e)&&r[t]==='visible'); + },ahe=function(e){ + return LB(e,'overflowY'); + },she=function(e){ + return LB(e,'overflowX'); + },dP=function(e,t){ + var r=t;do{ + typeof ShadowRoot<'u'&&r instanceof ShadowRoot&&(r=r.host);var n=PB(e,r);if(n){ + var i=RB(e,r),o=i[1],s=i[2];if(o>s)return!0; + }r=r.parentNode; + }while(r&&r!==document.body);return!1; + },lhe=function(e){ + var t=e.scrollTop,r=e.scrollHeight,n=e.clientHeight;return[t,r,n]; + },uhe=function(e){ + var t=e.scrollLeft,r=e.scrollWidth,n=e.clientWidth;return[t,r,n]; + },PB=function(e,t){ + return e==='v'?ahe(t):she(t); + },RB=function(e,t){ + return e==='v'?lhe(t):uhe(t); + },che=function(e,t){ + return e==='h'&&t==='rtl'?-1:1; + },MB=function(e,t,r,n,i){ + var o=che(e,window.getComputedStyle(t).direction),s=o*n,l=r.target,c=t.contains(l),f=!1,m=s>0,v=0,g=0;do{ + var y=RB(e,l),w=y[0],T=y[1],S=y[2],A=T-S-o*w;(w||A)&&PB(e,l)&&(v+=A,g+=w),l=l.parentNode; + }while(!c&&l!==document.body||c&&(t.contains(l)||t===l));return(m&&(i&&v===0||!i&&s>v)||!m&&(i&&g===0||!i&&-s>g))&&(f=!0),f; + };var bx=function(e){ + return'changedTouches'in e?[e.changedTouches[0].clientX,e.changedTouches[0].clientY]:[0,0]; + },IB=function(e){ + return[e.deltaX,e.deltaY]; + },FB=function(e){ + return e&&'current'in e?e.current:e; + },fhe=function(e,t){ + return e[0]===t[0]&&e[1]===t[1]; + },dhe=function(e){ + return` .block-interactivity-`.concat(e,` {pointer-events: none;} .allow-interactivity-`).concat(e,` {pointer-events: all;} -`)},phe=0,tm=[];function qB(e){var t=br.useRef([]),r=br.useRef([0,0]),n=br.useRef(),i=br.useState(phe++)[0],o=br.useState(function(){return qg()})[0],s=br.useRef(e);br.useEffect(function(){s.current=e},[e]),br.useEffect(function(){if(e.inert){document.body.classList.add("block-interactivity-".concat(i));var T=xB([e.lockRef.current],(e.shards||[]).map(FB),!0).filter(Boolean);return T.forEach(function(S){return S.classList.add("allow-interactivity-".concat(i))}),function(){document.body.classList.remove("block-interactivity-".concat(i)),T.forEach(function(S){return S.classList.remove("allow-interactivity-".concat(i))})}}},[e.inert,e.lockRef.current,e.shards]);var l=br.useCallback(function(T,S){if("touches"in T&&T.touches.length===2)return!s.current.allowPinchZoom;var A=bx(T),b=r.current,C="deltaX"in T?T.deltaX:b[0]-A[0],x="deltaY"in T?T.deltaY:b[1]-A[1],k,P=T.target,D=Math.abs(C)>Math.abs(x)?"h":"v";if("touches"in T&&D==="h"&&P.type==="range")return!1;var N=dP(D,P);if(!N)return!0;if(N?k=D:(k=D==="v"?"h":"v",N=dP(D,P)),!N)return!1;if(!n.current&&"changedTouches"in T&&(C||x)&&(n.current=k),!k)return!0;var I=n.current||k;return MB(I,S,T,I==="h"?C:x,!0)},[]),c=br.useCallback(function(T){var S=T;if(!(!tm.length||tm[tm.length-1]!==o)){var A="deltaY"in S?IB(S):bx(S),b=t.current.filter(function(k){return k.name===S.type&&k.target===S.target&&fhe(k.delta,A)})[0];if(b&&b.should){S.cancelable&&S.preventDefault();return}if(!b){var C=(s.current.shards||[]).map(FB).filter(Boolean).filter(function(k){return k.contains(S.target)}),x=C.length>0?l(S,C[0]):!s.current.noIsolation;x&&S.cancelable&&S.preventDefault()}}},[]),f=br.useCallback(function(T,S,A,b){var C={name:T,delta:S,target:A,should:b};t.current.push(C),setTimeout(function(){t.current=t.current.filter(function(x){return x!==C})},1)},[]),m=br.useCallback(function(T){r.current=bx(T),n.current=void 0},[]),v=br.useCallback(function(T){f(T.type,IB(T),T.target,l(T,e.lockRef.current))},[]),g=br.useCallback(function(T){f(T.type,bx(T),T.target,l(T,e.lockRef.current))},[]);br.useEffect(function(){return tm.push(o),e.setCallbacks({onScrollCapture:v,onWheelCapture:v,onTouchMoveCapture:g}),document.addEventListener("wheel",c,gf),document.addEventListener("touchmove",c,gf),document.addEventListener("touchstart",m,gf),function(){tm=tm.filter(function(T){return T!==o}),document.removeEventListener("wheel",c,gf),document.removeEventListener("touchmove",c,gf),document.removeEventListener("touchstart",m,gf)}},[]);var y=e.removeScrollBar,w=e.inert;return br.createElement(br.Fragment,null,w?br.createElement(o,{styles:dhe(i)}):null,y?br.createElement(cP,{gapMode:"margin"}):null)}var jB=iP(gx,qB);var VB=Ax.forwardRef(function(e,t){return Ax.createElement(Fg,As({},e,{ref:t,sideCar:jB}))});VB.classNames=Fg.classNames;var Vg=VB;var mhe=function(e){if(typeof document>"u")return null;var t=Array.isArray(e)?e[0]:e;return t.ownerDocument.body},rm=new WeakMap,xx=new WeakMap,wx={},pP=0,UB=function(e){return e&&(e.host||UB(e.parentNode))},hhe=function(e,t){return t.map(function(r){if(e.contains(r))return r;var n=UB(r);return n&&e.contains(n)?n:(console.error("aria-hidden",r,"in not contained inside",e,". Doing nothing"),null)}).filter(function(r){return!!r})},vhe=function(e,t,r,n){var i=hhe(t,Array.isArray(e)?e:[e]);wx[r]||(wx[r]=new WeakMap);var o=wx[r],s=[],l=new Set,c=new Set(i),f=function(v){!v||l.has(v)||(l.add(v),f(v.parentNode))};i.forEach(f);var m=function(v){!v||c.has(v)||Array.prototype.forEach.call(v.children,function(g){if(l.has(g))m(g);else{var y=g.getAttribute(n),w=y!==null&&y!=="false",T=(rm.get(g)||0)+1,S=(o.get(g)||0)+1;rm.set(g,T),o.set(g,S),s.push(g),T===1&&w&&xx.set(g,!0),S===1&&g.setAttribute(r,"true"),w||g.setAttribute(n,"true")}})};return m(t),l.clear(),pP++,function(){s.forEach(function(v){var g=rm.get(v)-1,y=o.get(v)-1;rm.set(v,g),o.set(v,y),g||(xx.has(v)||v.removeAttribute(n),xx.delete(v)),y||v.removeAttribute(r)}),pP--,pP||(rm=new WeakMap,rm=new WeakMap,xx=new WeakMap,wx={})}},Ex=function(e,t,r){r===void 0&&(r="data-aria-hidden");var n=Array.from(Array.isArray(e)?e:[e]),i=t||mhe(e);return i?(n.push.apply(n,Array.from(i.querySelectorAll("[aria-live]"))),vhe(n,i,r,"aria-hidden")):function(){return null}};var BB="Dialog",[GB,F2e]=Hi(BB),[ghe,Ra]=GB(BB),yhe=e=>{let{__scopeDialog:t,children:r,open:n,defaultOpen:i,onOpenChange:o,modal:s=!0}=e,l=(0,pt.useRef)(null),c=(0,pt.useRef)(null),[f=!1,m]=hu({prop:n,defaultProp:i,onChange:o});return(0,pt.createElement)(ghe,{scope:t,triggerRef:l,contentRef:c,contentId:Ea(),titleId:Ea(),descriptionId:Ea(),open:f,onOpenChange:m,onOpenToggle:(0,pt.useCallback)(()=>m(v=>!v),[m]),modal:s},r)},bhe="DialogTrigger",Ahe=(0,pt.forwardRef)((e,t)=>{let{__scopeDialog:r,...n}=e,i=Ra(bhe,r),o=sr(t,i.triggerRef);return(0,pt.createElement)(cr.button,Ze({type:"button","aria-haspopup":"dialog","aria-expanded":i.open,"aria-controls":i.contentId,"data-state":hP(i.open)},n,{ref:o,onClick:xt(e.onClick,i.onOpenToggle)}))}),zB="DialogPortal",[xhe,HB]=GB(zB,{forceMount:void 0}),whe=e=>{let{__scopeDialog:t,forceMount:r,children:n,container:i}=e,o=Ra(zB,t);return(0,pt.createElement)(xhe,{scope:t,forceMount:r},pt.Children.map(n,s=>(0,pt.createElement)(Pa,{present:r||o.open},(0,pt.createElement)($p,{asChild:!0,container:i},s))))},mP="DialogOverlay",Ehe=(0,pt.forwardRef)((e,t)=>{let r=HB(mP,e.__scopeDialog),{forceMount:n=r.forceMount,...i}=e,o=Ra(mP,e.__scopeDialog);return o.modal?(0,pt.createElement)(Pa,{present:n||o.open},(0,pt.createElement)(The,Ze({},i,{ref:t}))):null}),The=(0,pt.forwardRef)((e,t)=>{let{__scopeDialog:r,...n}=e,i=Ra(mP,r);return(0,pt.createElement)(Vg,{as:bs,allowPinchZoom:!0,shards:[i.contentRef]},(0,pt.createElement)(cr.div,Ze({"data-state":hP(i.open)},n,{ref:t,style:{pointerEvents:"auto",...n.style}})))}),nm="DialogContent",Che=(0,pt.forwardRef)((e,t)=>{let r=HB(nm,e.__scopeDialog),{forceMount:n=r.forceMount,...i}=e,o=Ra(nm,e.__scopeDialog);return(0,pt.createElement)(Pa,{present:n||o.open},o.modal?(0,pt.createElement)(She,Ze({},i,{ref:t})):(0,pt.createElement)(khe,Ze({},i,{ref:t})))}),She=(0,pt.forwardRef)((e,t)=>{let r=Ra(nm,e.__scopeDialog),n=(0,pt.useRef)(null),i=sr(t,r.contentRef,n);return(0,pt.useEffect)(()=>{let o=n.current;if(o)return Ex(o)},[]),(0,pt.createElement)(QB,Ze({},e,{ref:i,trapFocus:r.open,disableOutsidePointerEvents:!0,onCloseAutoFocus:xt(e.onCloseAutoFocus,o=>{var s;o.preventDefault(),(s=r.triggerRef.current)===null||s===void 0||s.focus()}),onPointerDownOutside:xt(e.onPointerDownOutside,o=>{let s=o.detail.originalEvent,l=s.button===0&&s.ctrlKey===!0;(s.button===2||l)&&o.preventDefault()}),onFocusOutside:xt(e.onFocusOutside,o=>o.preventDefault())}))}),khe=(0,pt.forwardRef)((e,t)=>{let r=Ra(nm,e.__scopeDialog),n=(0,pt.useRef)(!1),i=(0,pt.useRef)(!1);return(0,pt.createElement)(QB,Ze({},e,{ref:t,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:o=>{var s;if((s=e.onCloseAutoFocus)===null||s===void 0||s.call(e,o),!o.defaultPrevented){var l;n.current||(l=r.triggerRef.current)===null||l===void 0||l.focus(),o.preventDefault()}n.current=!1,i.current=!1},onInteractOutside:o=>{var s,l;(s=e.onInteractOutside)===null||s===void 0||s.call(e,o),o.defaultPrevented||(n.current=!0,o.detail.originalEvent.type==="pointerdown"&&(i.current=!0));let c=o.target;((l=r.triggerRef.current)===null||l===void 0?void 0:l.contains(c))&&o.preventDefault(),o.detail.originalEvent.type==="focusin"&&i.current&&o.preventDefault()}}))}),QB=(0,pt.forwardRef)((e,t)=>{let{__scopeDialog:r,trapFocus:n,onOpenAutoFocus:i,onCloseAutoFocus:o,...s}=e,l=Ra(nm,r),c=(0,pt.useRef)(null),f=sr(t,c);return vx(),(0,pt.createElement)(pt.Fragment,null,(0,pt.createElement)(px,{asChild:!0,loop:!0,trapped:n,onMountAutoFocus:i,onUnmountAutoFocus:o},(0,pt.createElement)(_p,Ze({role:"dialog",id:l.contentId,"aria-describedby":l.descriptionId,"aria-labelledby":l.titleId,"data-state":hP(l.open)},s,{ref:f,onDismiss:()=>l.onOpenChange(!1)}))),!1)}),WB="DialogTitle",Ohe=(0,pt.forwardRef)((e,t)=>{let{__scopeDialog:r,...n}=e,i=Ra(WB,r);return(0,pt.createElement)(cr.h2,Ze({id:i.titleId},n,{ref:t}))}),Nhe="DialogDescription",Dhe=(0,pt.forwardRef)((e,t)=>{let{__scopeDialog:r,...n}=e,i=Ra(Nhe,r);return(0,pt.createElement)(cr.p,Ze({id:i.descriptionId},n,{ref:t}))}),Lhe="DialogClose",Phe=(0,pt.forwardRef)((e,t)=>{let{__scopeDialog:r,...n}=e,i=Ra(Lhe,r);return(0,pt.createElement)(cr.button,Ze({type:"button"},n,{ref:t,onClick:xt(e.onClick,()=>i.onOpenChange(!1))}))});function hP(e){return e?"open":"closed"}var Rhe="DialogTitleWarning",[q2e,j2e]=qq(Rhe,{contentName:nm,titleName:WB,docsSlug:"dialog"});var YB=yhe,KB=Ahe,XB=whe,ZB=Ehe,JB=Che,_B=Ohe,$B=Dhe,eG=Phe;var Tx=fe(Ee(),1);var Ihe=(0,Tx.forwardRef)((e,t)=>(0,Tx.createElement)(cr.span,Ze({},e,{ref:t,style:{position:"absolute",border:0,width:1,height:1,padding:0,margin:-1,overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",wordWrap:"normal",...e.style}}))),Cx=Ihe;var Zn=fe(Ee(),1);var Ye=fe(Ee(),1);var Ma=fe(Ee(),1);function Sx(e){let t=e+"CollectionProvider",[r,n]=Hi(t),[i,o]=r(t,{collectionRef:{current:null},itemMap:new Map}),s=y=>{let{scope:w,children:T}=y,S=Ma.default.useRef(null),A=Ma.default.useRef(new Map).current;return Ma.default.createElement(i,{scope:w,itemMap:A,collectionRef:S},T)},l=e+"CollectionSlot",c=Ma.default.forwardRef((y,w)=>{let{scope:T,children:S}=y,A=o(l,T),b=sr(w,A.collectionRef);return Ma.default.createElement(bs,{ref:b},S)}),f=e+"CollectionItemSlot",m="data-radix-collection-item",v=Ma.default.forwardRef((y,w)=>{let{scope:T,children:S,...A}=y,b=Ma.default.useRef(null),C=sr(w,b),x=o(f,T);return Ma.default.useEffect(()=>(x.itemMap.set(b,{ref:b,...A}),()=>void x.itemMap.delete(b))),Ma.default.createElement(bs,{[m]:"",ref:C},S)});function g(y){let w=o(e+"CollectionConsumer",y);return Ma.default.useCallback(()=>{let S=w.collectionRef.current;if(!S)return[];let A=Array.from(S.querySelectorAll(`[${m}]`));return Array.from(w.itemMap.values()).sort((x,k)=>A.indexOf(x.ref.current)-A.indexOf(k.ref.current))},[w.collectionRef,w.itemMap])}return[{Provider:s,Slot:c,ItemSlot:v},g,n]}var Ug=fe(Ee(),1),Fhe=(0,Ug.createContext)(void 0);function kx(e){let t=(0,Ug.useContext)(Fhe);return e||t||"ltr"}var Rn=fe(Ee(),1);var tG=["top","right","bottom","left"];var xs=Math.min,Fi=Math.max,Gg=Math.round,zg=Math.floor,gl=e=>({x:e,y:e}),qhe={left:"right",right:"left",bottom:"top",top:"bottom"},jhe={start:"end",end:"start"};function Nx(e,t,r){return Fi(e,xs(t,r))}function ws(e,t){return typeof e=="function"?e(t):e}function Es(e){return e.split("-")[0]}function yf(e){return e.split("-")[1]}function Dx(e){return e==="x"?"y":"x"}function Lx(e){return e==="y"?"height":"width"}function bf(e){return["top","bottom"].includes(Es(e))?"y":"x"}function Px(e){return Dx(bf(e))}function rG(e,t,r){r===void 0&&(r=!1);let n=yf(e),i=Px(e),o=Lx(i),s=i==="x"?n===(r?"end":"start")?"right":"left":n==="start"?"bottom":"top";return t.reference[o]>t.floating[o]&&(s=Bg(s)),[s,Bg(s)]}function nG(e){let t=Bg(e);return[Ox(e),t,Ox(t)]}function Ox(e){return e.replace(/start|end/g,t=>jhe[t])}function Vhe(e,t,r){let n=["left","right"],i=["right","left"],o=["top","bottom"],s=["bottom","top"];switch(e){case"top":case"bottom":return r?t?i:n:t?n:i;case"left":case"right":return t?o:s;default:return[]}}function iG(e,t,r,n){let i=yf(e),o=Vhe(Es(e),r==="start",n);return i&&(o=o.map(s=>s+"-"+i),t&&(o=o.concat(o.map(Ox)))),o}function Bg(e){return e.replace(/left|right|bottom|top/g,t=>qhe[t])}function Uhe(e){return{top:0,right:0,bottom:0,left:0,...e}}function vP(e){return typeof e!="number"?Uhe(e):{top:e,right:e,bottom:e,left:e}}function Af(e){return{...e,top:e.y,left:e.x,right:e.x+e.width,bottom:e.y+e.height}}function oG(e,t,r){let{reference:n,floating:i}=e,o=bf(t),s=Px(t),l=Lx(s),c=Es(t),f=o==="y",m=n.x+n.width/2-i.width/2,v=n.y+n.height/2-i.height/2,g=n[l]/2-i[l]/2,y;switch(c){case"top":y={x:m,y:n.y-i.height};break;case"bottom":y={x:m,y:n.y+n.height};break;case"right":y={x:n.x+n.width,y:v};break;case"left":y={x:n.x-i.width,y:v};break;default:y={x:n.x,y:n.y}}switch(yf(t)){case"start":y[s]-=g*(r&&f?-1:1);break;case"end":y[s]+=g*(r&&f?-1:1);break}return y}var lG=async(e,t,r)=>{let{placement:n="bottom",strategy:i="absolute",middleware:o=[],platform:s}=r,l=o.filter(Boolean),c=await(s.isRTL==null?void 0:s.isRTL(t)),f=await s.getElementRects({reference:e,floating:t,strategy:i}),{x:m,y:v}=oG(f,n,c),g=n,y={},w=0;for(let T=0;T({name:"arrow",options:e,async fn(t){let{x:r,y:n,placement:i,rects:o,platform:s,elements:l,middlewareData:c}=t,{element:f,padding:m=0}=ws(e,t)||{};if(f==null)return{};let v=vP(m),g={x:r,y:n},y=Px(i),w=Lx(y),T=await s.getDimensions(f),S=y==="y",A=S?"top":"left",b=S?"bottom":"right",C=S?"clientHeight":"clientWidth",x=o.reference[w]+o.reference[y]-g[y]-o.floating[w],k=g[y]-o.reference[y],P=await(s.getOffsetParent==null?void 0:s.getOffsetParent(f)),D=P?P[C]:0;(!D||!await(s.isElement==null?void 0:s.isElement(P)))&&(D=l.floating[C]||o.floating[w]);let N=x/2-k/2,I=D/2-T[w]/2-1,V=xs(v[A],I),G=xs(v[b],I),B=V,U=D-T[w]-G,z=D/2-T[w]/2+N,j=Nx(B,z,U),J=!c.arrow&&yf(i)!=null&&z!=j&&o.reference[w]/2-(zB<=0)){var I,V;let B=(((I=o.flip)==null?void 0:I.index)||0)+1,U=k[B];if(U)return{data:{index:B,overflows:N},reset:{placement:U}};let z=(V=N.filter(j=>j.overflows[0]<=0).sort((j,J)=>j.overflows[1]-J.overflows[1])[0])==null?void 0:V.placement;if(!z)switch(y){case"bestFit":{var G;let j=(G=N.map(J=>[J.placement,J.overflows.filter(K=>K>0).reduce((K,ee)=>K+ee,0)]).sort((J,K)=>J[1]-K[1])[0])==null?void 0:G[0];j&&(z=j);break}case"initialPlacement":z=l;break}if(i!==z)return{reset:{placement:z}}}return{}}}};function aG(e,t){return{top:e.top-t.height,right:e.right-t.width,bottom:e.bottom-t.height,left:e.left-t.width}}function sG(e){return tG.some(t=>e[t]>=0)}var Ix=function(e){return e===void 0&&(e={}),{name:"hide",options:e,async fn(t){let{rects:r}=t,{strategy:n="referenceHidden",...i}=ws(e,t);switch(n){case"referenceHidden":{let o=await xf(t,{...i,elementContext:"reference"}),s=aG(o,r.reference);return{data:{referenceHiddenOffsets:s,referenceHidden:sG(s)}}}case"escaped":{let o=await xf(t,{...i,altBoundary:!0}),s=aG(o,r.floating);return{data:{escapedOffsets:s,escaped:sG(s)}}}default:return{}}}}};async function Bhe(e,t){let{placement:r,platform:n,elements:i}=e,o=await(n.isRTL==null?void 0:n.isRTL(i.floating)),s=Es(r),l=yf(r),c=bf(r)==="y",f=["left","top"].includes(s)?-1:1,m=o&&c?-1:1,v=ws(t,e),{mainAxis:g,crossAxis:y,alignmentAxis:w}=typeof v=="number"?{mainAxis:v,crossAxis:0,alignmentAxis:null}:{mainAxis:0,crossAxis:0,alignmentAxis:null,...v};return l&&typeof w=="number"&&(y=l==="end"?w*-1:w),c?{x:y*m,y:g*f}:{x:g*f,y:y*m}}var Fx=function(e){return e===void 0&&(e=0),{name:"offset",options:e,async fn(t){let{x:r,y:n}=t,i=await Bhe(t,e);return{x:r+i.x,y:n+i.y,data:i}}}},qx=function(e){return e===void 0&&(e={}),{name:"shift",options:e,async fn(t){let{x:r,y:n,placement:i}=t,{mainAxis:o=!0,crossAxis:s=!1,limiter:l={fn:S=>{let{x:A,y:b}=S;return{x:A,y:b}}},...c}=ws(e,t),f={x:r,y:n},m=await xf(t,c),v=bf(Es(i)),g=Dx(v),y=f[g],w=f[v];if(o){let S=g==="y"?"top":"left",A=g==="y"?"bottom":"right",b=y+m[S],C=y-m[A];y=Nx(b,y,C)}if(s){let S=v==="y"?"top":"left",A=v==="y"?"bottom":"right",b=w+m[S],C=w-m[A];w=Nx(b,w,C)}let T=l.fn({...t,[g]:y,[v]:w});return{...T,data:{x:T.x-r,y:T.y-n}}}}},jx=function(e){return e===void 0&&(e={}),{options:e,fn(t){let{x:r,y:n,placement:i,rects:o,middlewareData:s}=t,{offset:l=0,mainAxis:c=!0,crossAxis:f=!0}=ws(e,t),m={x:r,y:n},v=bf(i),g=Dx(v),y=m[g],w=m[v],T=ws(l,t),S=typeof T=="number"?{mainAxis:T,crossAxis:0}:{mainAxis:0,crossAxis:0,...T};if(c){let C=g==="y"?"height":"width",x=o.reference[g]-o.floating[C]+S.mainAxis,k=o.reference[g]+o.reference[C]-S.mainAxis;yk&&(y=k)}if(f){var A,b;let C=g==="y"?"width":"height",x=["top","left"].includes(Es(i)),k=o.reference[v]-o.floating[C]+(x&&((A=s.offset)==null?void 0:A[v])||0)+(x?0:S.crossAxis),P=o.reference[v]+o.reference[C]+(x?0:((b=s.offset)==null?void 0:b[v])||0)-(x?S.crossAxis:0);wP&&(w=P)}return{[g]:y,[v]:w}}}},Vx=function(e){return e===void 0&&(e={}),{name:"size",options:e,async fn(t){let{placement:r,rects:n,platform:i,elements:o}=t,{apply:s=()=>{},...l}=ws(e,t),c=await xf(t,l),f=Es(r),m=yf(r),v=bf(r)==="y",{width:g,height:y}=n.floating,w,T;f==="top"||f==="bottom"?(w=f,T=m===(await(i.isRTL==null?void 0:i.isRTL(o.floating))?"start":"end")?"left":"right"):(T=f,w=m==="end"?"top":"bottom");let S=y-c[w],A=g-c[T],b=!t.middlewareData.shift,C=S,x=A;if(v){let P=g-c.left-c.right;x=m||b?xs(A,P):P}else{let P=y-c.top-c.bottom;C=m||b?xs(S,P):P}if(b&&!m){let P=Fi(c.left,0),D=Fi(c.right,0),N=Fi(c.top,0),I=Fi(c.bottom,0);v?x=g-2*(P!==0||D!==0?P+D:Fi(c.left,c.right)):C=y-2*(N!==0||I!==0?N+I:Fi(c.top,c.bottom))}await s({...t,availableWidth:x,availableHeight:C});let k=await i.getDimensions(o.floating);return g!==k.width||y!==k.height?{reset:{rects:!0}}:{}}}};function yl(e){return cG(e)?(e.nodeName||"").toLowerCase():"#document"}function Ji(e){var t;return(e==null||(t=e.ownerDocument)==null?void 0:t.defaultView)||window}function Ts(e){var t;return(t=(cG(e)?e.ownerDocument:e.document)||window.document)==null?void 0:t.documentElement}function cG(e){return e instanceof Node||e instanceof Ji(e).Node}function Cs(e){return e instanceof Element||e instanceof Ji(e).Element}function Ia(e){return e instanceof HTMLElement||e instanceof Ji(e).HTMLElement}function uG(e){return typeof ShadowRoot>"u"?!1:e instanceof ShadowRoot||e instanceof Ji(e).ShadowRoot}function im(e){let{overflow:t,overflowX:r,overflowY:n,display:i}=xo(e);return/auto|scroll|overlay|hidden|clip/.test(t+n+r)&&!["inline","contents"].includes(i)}function fG(e){return["table","td","th"].includes(yl(e))}function Ux(e){let t=Bx(),r=xo(e);return r.transform!=="none"||r.perspective!=="none"||(r.containerType?r.containerType!=="normal":!1)||!t&&(r.backdropFilter?r.backdropFilter!=="none":!1)||!t&&(r.filter?r.filter!=="none":!1)||["transform","perspective","filter"].some(n=>(r.willChange||"").includes(n))||["paint","layout","strict","content"].some(n=>(r.contain||"").includes(n))}function dG(e){let t=wf(e);for(;Ia(t)&&!Hg(t);){if(Ux(t))return t;t=wf(t)}return null}function Bx(){return typeof CSS>"u"||!CSS.supports?!1:CSS.supports("-webkit-backdrop-filter","none")}function Hg(e){return["html","body","#document"].includes(yl(e))}function xo(e){return Ji(e).getComputedStyle(e)}function Qg(e){return Cs(e)?{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}:{scrollLeft:e.pageXOffset,scrollTop:e.pageYOffset}}function wf(e){if(yl(e)==="html")return e;let t=e.assignedSlot||e.parentNode||uG(e)&&e.host||Ts(e);return uG(t)?t.host:t}function pG(e){let t=wf(e);return Hg(t)?e.ownerDocument?e.ownerDocument.body:e.body:Ia(t)&&im(t)?t:pG(t)}function Ef(e,t,r){var n;t===void 0&&(t=[]),r===void 0&&(r=!0);let i=pG(e),o=i===((n=e.ownerDocument)==null?void 0:n.body),s=Ji(i);return o?t.concat(s,s.visualViewport||[],im(i)?i:[],s.frameElement&&r?Ef(s.frameElement):[]):t.concat(i,Ef(i,[],r))}function vG(e){let t=xo(e),r=parseFloat(t.width)||0,n=parseFloat(t.height)||0,i=Ia(e),o=i?e.offsetWidth:r,s=i?e.offsetHeight:n,l=Gg(r)!==o||Gg(n)!==s;return l&&(r=o,n=s),{width:r,height:n,$:l}}function gP(e){return Cs(e)?e:e.contextElement}function om(e){let t=gP(e);if(!Ia(t))return gl(1);let r=t.getBoundingClientRect(),{width:n,height:i,$:o}=vG(t),s=(o?Gg(r.width):r.width)/n,l=(o?Gg(r.height):r.height)/i;return(!s||!Number.isFinite(s))&&(s=1),(!l||!Number.isFinite(l))&&(l=1),{x:s,y:l}}var Hhe=gl(0);function gG(e){let t=Ji(e);return!Bx()||!t.visualViewport?Hhe:{x:t.visualViewport.offsetLeft,y:t.visualViewport.offsetTop}}function Qhe(e,t,r){return t===void 0&&(t=!1),!r||t&&r!==Ji(e)?!1:t}function Tf(e,t,r,n){t===void 0&&(t=!1),r===void 0&&(r=!1);let i=e.getBoundingClientRect(),o=gP(e),s=gl(1);t&&(n?Cs(n)&&(s=om(n)):s=om(e));let l=Qhe(o,r,n)?gG(o):gl(0),c=(i.left+l.x)/s.x,f=(i.top+l.y)/s.y,m=i.width/s.x,v=i.height/s.y;if(o){let g=Ji(o),y=n&&Cs(n)?Ji(n):n,w=g.frameElement;for(;w&&n&&y!==g;){let T=om(w),S=w.getBoundingClientRect(),A=xo(w),b=S.left+(w.clientLeft+parseFloat(A.paddingLeft))*T.x,C=S.top+(w.clientTop+parseFloat(A.paddingTop))*T.y;c*=T.x,f*=T.y,m*=T.x,v*=T.y,c+=b,f+=C,w=Ji(w).frameElement}}return Af({width:m,height:v,x:c,y:f})}function Whe(e){let{rect:t,offsetParent:r,strategy:n}=e,i=Ia(r),o=Ts(r);if(r===o)return t;let s={scrollLeft:0,scrollTop:0},l=gl(1),c=gl(0);if((i||!i&&n!=="fixed")&&((yl(r)!=="body"||im(o))&&(s=Qg(r)),Ia(r))){let f=Tf(r);l=om(r),c.x=f.x+r.clientLeft,c.y=f.y+r.clientTop}return{width:t.width*l.x,height:t.height*l.y,x:t.x*l.x-s.scrollLeft*l.x+c.x,y:t.y*l.y-s.scrollTop*l.y+c.y}}function Yhe(e){return Array.from(e.getClientRects())}function yG(e){return Tf(Ts(e)).left+Qg(e).scrollLeft}function Khe(e){let t=Ts(e),r=Qg(e),n=e.ownerDocument.body,i=Fi(t.scrollWidth,t.clientWidth,n.scrollWidth,n.clientWidth),o=Fi(t.scrollHeight,t.clientHeight,n.scrollHeight,n.clientHeight),s=-r.scrollLeft+yG(e),l=-r.scrollTop;return xo(n).direction==="rtl"&&(s+=Fi(t.clientWidth,n.clientWidth)-i),{width:i,height:o,x:s,y:l}}function Xhe(e,t){let r=Ji(e),n=Ts(e),i=r.visualViewport,o=n.clientWidth,s=n.clientHeight,l=0,c=0;if(i){o=i.width,s=i.height;let f=Bx();(!f||f&&t==="fixed")&&(l=i.offsetLeft,c=i.offsetTop)}return{width:o,height:s,x:l,y:c}}function Zhe(e,t){let r=Tf(e,!0,t==="fixed"),n=r.top+e.clientTop,i=r.left+e.clientLeft,o=Ia(e)?om(e):gl(1),s=e.clientWidth*o.x,l=e.clientHeight*o.y,c=i*o.x,f=n*o.y;return{width:s,height:l,x:c,y:f}}function mG(e,t,r){let n;if(t==="viewport")n=Xhe(e,r);else if(t==="document")n=Khe(Ts(e));else if(Cs(t))n=Zhe(t,r);else{let i=gG(e);n={...t,x:t.x-i.x,y:t.y-i.y}}return Af(n)}function bG(e,t){let r=wf(e);return r===t||!Cs(r)||Hg(r)?!1:xo(r).position==="fixed"||bG(r,t)}function Jhe(e,t){let r=t.get(e);if(r)return r;let n=Ef(e,[],!1).filter(l=>Cs(l)&&yl(l)!=="body"),i=null,o=xo(e).position==="fixed",s=o?wf(e):e;for(;Cs(s)&&!Hg(s);){let l=xo(s),c=Ux(s);!c&&l.position==="fixed"&&(i=null),(o?!c&&!i:!c&&l.position==="static"&&!!i&&["absolute","fixed"].includes(i.position)||im(s)&&!c&&bG(e,s))?n=n.filter(m=>m!==s):i=l,s=wf(s)}return t.set(e,n),n}function _he(e){let{element:t,boundary:r,rootBoundary:n,strategy:i}=e,s=[...r==="clippingAncestors"?Jhe(t,this._c):[].concat(r),n],l=s[0],c=s.reduce((f,m)=>{let v=mG(t,m,i);return f.top=Fi(v.top,f.top),f.right=xs(v.right,f.right),f.bottom=xs(v.bottom,f.bottom),f.left=Fi(v.left,f.left),f},mG(t,l,i));return{width:c.right-c.left,height:c.bottom-c.top,x:c.left,y:c.top}}function $he(e){return vG(e)}function eve(e,t,r){let n=Ia(t),i=Ts(t),o=r==="fixed",s=Tf(e,!0,o,t),l={scrollLeft:0,scrollTop:0},c=gl(0);if(n||!n&&!o)if((yl(t)!=="body"||im(i))&&(l=Qg(t)),n){let f=Tf(t,!0,o,t);c.x=f.x+t.clientLeft,c.y=f.y+t.clientTop}else i&&(c.x=yG(i));return{x:s.left+l.scrollLeft-c.x,y:s.top+l.scrollTop-c.y,width:s.width,height:s.height}}function hG(e,t){return!Ia(e)||xo(e).position==="fixed"?null:t?t(e):e.offsetParent}function AG(e,t){let r=Ji(e);if(!Ia(e))return r;let n=hG(e,t);for(;n&&fG(n)&&xo(n).position==="static";)n=hG(n,t);return n&&(yl(n)==="html"||yl(n)==="body"&&xo(n).position==="static"&&!Ux(n))?r:n||dG(e)||r}var tve=async function(e){let{reference:t,floating:r,strategy:n}=e,i=this.getOffsetParent||AG,o=this.getDimensions;return{reference:eve(t,await i(r),n),floating:{x:0,y:0,...await o(r)}}};function rve(e){return xo(e).direction==="rtl"}var xG={convertOffsetParentRelativeRectToViewportRelativeRect:Whe,getDocumentElement:Ts,getClippingRect:_he,getOffsetParent:AG,getElementRects:tve,getClientRects:Yhe,getDimensions:$he,getScale:om,isElement:Cs,isRTL:rve};function nve(e,t){let r=null,n,i=Ts(e);function o(){clearTimeout(n),r&&r.disconnect(),r=null}function s(l,c){l===void 0&&(l=!1),c===void 0&&(c=1),o();let{left:f,top:m,width:v,height:g}=e.getBoundingClientRect();if(l||t(),!v||!g)return;let y=zg(m),w=zg(i.clientWidth-(f+v)),T=zg(i.clientHeight-(m+g)),S=zg(f),b={rootMargin:-y+"px "+-w+"px "+-T+"px "+-S+"px",threshold:Fi(0,xs(1,c))||1},C=!0;function x(k){let P=k[0].intersectionRatio;if(P!==c){if(!C)return s();P?s(!1,P):n=setTimeout(()=>{s(!1,1e-7)},100)}C=!1}try{r=new IntersectionObserver(x,{...b,root:i.ownerDocument})}catch{r=new IntersectionObserver(x,b)}r.observe(e)}return s(!0),o}function yP(e,t,r,n){n===void 0&&(n={});let{ancestorScroll:i=!0,ancestorResize:o=!0,elementResize:s=typeof ResizeObserver=="function",layoutShift:l=typeof IntersectionObserver=="function",animationFrame:c=!1}=n,f=gP(e),m=i||o?[...f?Ef(f):[],...Ef(t)]:[];m.forEach(A=>{i&&A.addEventListener("scroll",r,{passive:!0}),o&&A.addEventListener("resize",r)});let v=f&&l?nve(f,r):null,g=-1,y=null;s&&(y=new ResizeObserver(A=>{let[b]=A;b&&b.target===f&&y&&(y.unobserve(t),cancelAnimationFrame(g),g=requestAnimationFrame(()=>{y&&y.observe(t)})),r()}),f&&!c&&y.observe(f),y.observe(t));let w,T=c?Tf(e):null;c&&S();function S(){let A=Tf(e);T&&(A.x!==T.x||A.y!==T.y||A.width!==T.width||A.height!==T.height)&&r(),T=A,w=requestAnimationFrame(S)}return r(),()=>{m.forEach(A=>{i&&A.removeEventListener("scroll",r),o&&A.removeEventListener("resize",r)}),v&&v(),y&&y.disconnect(),y=null,c&&cancelAnimationFrame(w)}}var bP=(e,t,r)=>{let n=new Map,i={platform:xG,...r},o={...i.platform,_c:n};return lG(e,t,{...i,platform:o})};var fn=fe(Ee(),1),Hx=fe(Ee(),1),TG=fe(mf(),1),CG=e=>{function t(r){return{}.hasOwnProperty.call(r,"current")}return{name:"arrow",options:e,fn(r){let{element:n,padding:i}=typeof e=="function"?e(r):e;return n&&t(n)?n.current!=null?Rx({element:n.current,padding:i}).fn(r):{}:n?Rx({element:n,padding:i}).fn(r):{}}}},Gx=typeof document<"u"?Hx.useLayoutEffect:Hx.useEffect;function zx(e,t){if(e===t)return!0;if(typeof e!=typeof t)return!1;if(typeof e=="function"&&e.toString()===t.toString())return!0;let r,n,i;if(e&&t&&typeof e=="object"){if(Array.isArray(e)){if(r=e.length,r!=t.length)return!1;for(n=r;n--!==0;)if(!zx(e[n],t[n]))return!1;return!0}if(i=Object.keys(e),r=i.length,r!==Object.keys(t).length)return!1;for(n=r;n--!==0;)if(!{}.hasOwnProperty.call(t,i[n]))return!1;for(n=r;n--!==0;){let o=i[n];if(!(o==="_owner"&&e.$$typeof)&&!zx(e[o],t[o]))return!1}return!0}return e!==e&&t!==t}function SG(e){return typeof window>"u"?1:(e.ownerDocument.defaultView||window).devicePixelRatio||1}function wG(e,t){let r=SG(e);return Math.round(t*r)/r}function EG(e){let t=fn.useRef(e);return Gx(()=>{t.current=e}),t}function kG(e){e===void 0&&(e={});let{placement:t="bottom",strategy:r="absolute",middleware:n=[],platform:i,elements:{reference:o,floating:s}={},transform:l=!0,whileElementsMounted:c,open:f}=e,[m,v]=fn.useState({x:0,y:0,strategy:r,placement:t,middlewareData:{},isPositioned:!1}),[g,y]=fn.useState(n);zx(g,n)||y(n);let[w,T]=fn.useState(null),[S,A]=fn.useState(null),b=fn.useCallback(J=>{J!=P.current&&(P.current=J,T(J))},[T]),C=fn.useCallback(J=>{J!==D.current&&(D.current=J,A(J))},[A]),x=o||w,k=s||S,P=fn.useRef(null),D=fn.useRef(null),N=fn.useRef(m),I=EG(c),V=EG(i),G=fn.useCallback(()=>{if(!P.current||!D.current)return;let J={placement:t,strategy:r,middleware:g};V.current&&(J.platform=V.current),bP(P.current,D.current,J).then(K=>{let ee={...K,isPositioned:!0};B.current&&!zx(N.current,ee)&&(N.current=ee,TG.flushSync(()=>{v(ee)}))})},[g,t,r,V]);Gx(()=>{f===!1&&N.current.isPositioned&&(N.current.isPositioned=!1,v(J=>({...J,isPositioned:!1})))},[f]);let B=fn.useRef(!1);Gx(()=>(B.current=!0,()=>{B.current=!1}),[]),Gx(()=>{if(x&&(P.current=x),k&&(D.current=k),x&&k){if(I.current)return I.current(x,k,G);G()}},[x,k,G,I]);let U=fn.useMemo(()=>({reference:P,floating:D,setReference:b,setFloating:C}),[b,C]),z=fn.useMemo(()=>({reference:x,floating:k}),[x,k]),j=fn.useMemo(()=>{let J={position:r,left:0,top:0};if(!z.floating)return J;let K=wG(z.floating,m.x),ee=wG(z.floating,m.y);return l?{...J,transform:"translate("+K+"px, "+ee+"px)",...SG(z.floating)>=1.5&&{willChange:"transform"}}:{position:r,left:K,top:ee}},[r,l,z.floating,m.x,m.y]);return fn.useMemo(()=>({...m,update:G,refs:U,elements:z,floatingStyles:j}),[m,G,U,z,j])}var OG=fe(Ee(),1);function NG(e){let[t,r]=(0,OG.useState)(void 0);return ds(()=>{if(e){r({width:e.offsetWidth,height:e.offsetHeight});let n=new ResizeObserver(i=>{if(!Array.isArray(i)||!i.length)return;let o=i[0],s,l;if("borderBoxSize"in o){let c=o.borderBoxSize,f=Array.isArray(c)?c[0]:c;s=f.inlineSize,l=f.blockSize}else s=e.offsetWidth,l=e.offsetHeight;r({width:s,height:l})});return n.observe(e,{box:"border-box"}),()=>n.unobserve(e)}else r(void 0)},[e]),t}var DG="Popper",[LG,am]=Hi(DG),[ive,PG]=LG(DG),ove=e=>{let{__scopePopper:t,children:r}=e,[n,i]=(0,Rn.useState)(null);return(0,Rn.createElement)(ive,{scope:t,anchor:n,onAnchorChange:i},r)},ave="PopperAnchor",sve=(0,Rn.forwardRef)((e,t)=>{let{__scopePopper:r,virtualRef:n,...i}=e,o=PG(ave,r),s=(0,Rn.useRef)(null),l=sr(t,s);return(0,Rn.useEffect)(()=>{o.onAnchorChange(n?.current||s.current)}),n?null:(0,Rn.createElement)(cr.div,Ze({},i,{ref:l}))}),RG="PopperContent",[lve,gLe]=LG(RG),uve=(0,Rn.forwardRef)((e,t)=>{var r,n,i,o,s,l,c,f;let{__scopePopper:m,side:v="bottom",sideOffset:g=0,align:y="center",alignOffset:w=0,arrowPadding:T=0,avoidCollisions:S=!0,collisionBoundary:A=[],collisionPadding:b=0,sticky:C="partial",hideWhenDetached:x=!1,updatePositionStrategy:k="optimized",onPlaced:P,...D}=e,N=PG(RG,m),[I,V]=(0,Rn.useState)(null),G=sr(t,pe=>V(pe)),[B,U]=(0,Rn.useState)(null),z=NG(B),j=(r=z?.width)!==null&&r!==void 0?r:0,J=(n=z?.height)!==null&&n!==void 0?n:0,K=v+(y!=="center"?"-"+y:""),ee=typeof b=="number"?b:{top:0,right:0,bottom:0,left:0,...b},re=Array.isArray(A)?A:[A],se=re.length>0,xe={padding:ee,boundary:re.filter(cve),altBoundary:se},{refs:Re,floatingStyles:Se,placement:ie,isPositioned:ye,middlewareData:me}=kG({strategy:"fixed",placement:K,whileElementsMounted:(...pe)=>yP(...pe,{animationFrame:k==="always"}),elements:{reference:N.anchor},middleware:[Fx({mainAxis:g+J,alignmentAxis:w}),S&&qx({mainAxis:!0,crossAxis:!1,limiter:C==="partial"?jx():void 0,...xe}),S&&Mx({...xe}),Vx({...xe,apply:({elements:pe,rects:Me,availableWidth:st,availableHeight:nt})=>{let{width:lt,height:wt}=Me.reference,Or=pe.floating.style;Or.setProperty("--radix-popper-available-width",`${st}px`),Or.setProperty("--radix-popper-available-height",`${nt}px`),Or.setProperty("--radix-popper-anchor-width",`${lt}px`),Or.setProperty("--radix-popper-anchor-height",`${wt}px`)}}),B&&CG({element:B,padding:T}),fve({arrowWidth:j,arrowHeight:J}),x&&Ix({strategy:"referenceHidden",...xe})]}),[Oe,Ge]=MG(ie),He=Wn(P);ds(()=>{ye&&He?.()},[ye,He]);let dr=(i=me.arrow)===null||i===void 0?void 0:i.x,Ue=(o=me.arrow)===null||o===void 0?void 0:o.y,bt=((s=me.arrow)===null||s===void 0?void 0:s.centerOffset)!==0,[he,Fe]=(0,Rn.useState)();return ds(()=>{I&&Fe(window.getComputedStyle(I).zIndex)},[I]),(0,Rn.createElement)("div",{ref:Re.setFloating,"data-radix-popper-content-wrapper":"",style:{...Se,transform:ye?Se.transform:"translate(0, -200%)",minWidth:"max-content",zIndex:he,"--radix-popper-transform-origin":[(l=me.transformOrigin)===null||l===void 0?void 0:l.x,(c=me.transformOrigin)===null||c===void 0?void 0:c.y].join(" ")},dir:e.dir},(0,Rn.createElement)(lve,{scope:m,placedSide:Oe,onArrowChange:U,arrowX:dr,arrowY:Ue,shouldHideArrow:bt},(0,Rn.createElement)(cr.div,Ze({"data-side":Oe,"data-align":Ge},D,{ref:G,style:{...D.style,animation:ye?void 0:"none",opacity:(f=me.hide)!==null&&f!==void 0&&f.referenceHidden?0:void 0}}))))});function cve(e){return e!==null}var fve=e=>({name:"transformOrigin",options:e,fn(t){var r,n,i,o,s;let{placement:l,rects:c,middlewareData:f}=t,v=((r=f.arrow)===null||r===void 0?void 0:r.centerOffset)!==0,g=v?0:e.arrowWidth,y=v?0:e.arrowHeight,[w,T]=MG(l),S={start:"0%",center:"50%",end:"100%"}[T],A=((n=(i=f.arrow)===null||i===void 0?void 0:i.x)!==null&&n!==void 0?n:0)+g/2,b=((o=(s=f.arrow)===null||s===void 0?void 0:s.y)!==null&&o!==void 0?o:0)+y/2,C="",x="";return w==="bottom"?(C=v?S:`${A}px`,x=`${-y}px`):w==="top"?(C=v?S:`${A}px`,x=`${c.floating.height+y}px`):w==="right"?(C=`${-y}px`,x=v?S:`${b}px`):w==="left"&&(C=`${c.floating.width+y}px`,x=v?S:`${b}px`),{data:{x:C,y:x}}}});function MG(e){let[t,r="center"]=e.split("-");return[t,r]}var Qx=ove,Wx=sve,Yx=uve;var fr=fe(Ee(),1);var AP="rovingFocusGroup.onEntryFocus",dve={bubbles:!1,cancelable:!0},wP="RovingFocusGroup",[xP,IG,pve]=Sx(wP),[mve,EP]=Hi(wP,[pve]),[hve,vve]=mve(wP),gve=(0,fr.forwardRef)((e,t)=>(0,fr.createElement)(xP.Provider,{scope:e.__scopeRovingFocusGroup},(0,fr.createElement)(xP.Slot,{scope:e.__scopeRovingFocusGroup},(0,fr.createElement)(yve,Ze({},e,{ref:t}))))),yve=(0,fr.forwardRef)((e,t)=>{let{__scopeRovingFocusGroup:r,orientation:n,loop:i=!1,dir:o,currentTabStopId:s,defaultCurrentTabStopId:l,onCurrentTabStopIdChange:c,onEntryFocus:f,...m}=e,v=(0,fr.useRef)(null),g=sr(t,v),y=kx(o),[w=null,T]=hu({prop:s,defaultProp:l,onChange:c}),[S,A]=(0,fr.useState)(!1),b=Wn(f),C=IG(r),x=(0,fr.useRef)(!1),[k,P]=(0,fr.useState)(0);return(0,fr.useEffect)(()=>{let D=v.current;if(D)return D.addEventListener(AP,b),()=>D.removeEventListener(AP,b)},[b]),(0,fr.createElement)(hve,{scope:r,orientation:n,dir:y,loop:i,currentTabStopId:w,onItemFocus:(0,fr.useCallback)(D=>T(D),[T]),onItemShiftTab:(0,fr.useCallback)(()=>A(!0),[]),onFocusableItemAdd:(0,fr.useCallback)(()=>P(D=>D+1),[]),onFocusableItemRemove:(0,fr.useCallback)(()=>P(D=>D-1),[])},(0,fr.createElement)(cr.div,Ze({tabIndex:S||k===0?-1:0,"data-orientation":n},m,{ref:g,style:{outline:"none",...e.style},onMouseDown:xt(e.onMouseDown,()=>{x.current=!0}),onFocus:xt(e.onFocus,D=>{let N=!x.current;if(D.target===D.currentTarget&&N&&!S){let I=new CustomEvent(AP,dve);if(D.currentTarget.dispatchEvent(I),!I.defaultPrevented){let V=C().filter(j=>j.focusable),G=V.find(j=>j.active),B=V.find(j=>j.id===w),z=[G,B,...V].filter(Boolean).map(j=>j.ref.current);FG(z)}}x.current=!1}),onBlur:xt(e.onBlur,()=>A(!1))})))}),bve="RovingFocusGroupItem",Ave=(0,fr.forwardRef)((e,t)=>{let{__scopeRovingFocusGroup:r,focusable:n=!0,active:i=!1,tabStopId:o,...s}=e,l=Ea(),c=o||l,f=vve(bve,r),m=f.currentTabStopId===c,v=IG(r),{onFocusableItemAdd:g,onFocusableItemRemove:y}=f;return(0,fr.useEffect)(()=>{if(n)return g(),()=>y()},[n,g,y]),(0,fr.createElement)(xP.ItemSlot,{scope:r,id:c,focusable:n,active:i},(0,fr.createElement)(cr.span,Ze({tabIndex:m?0:-1,"data-orientation":f.orientation},s,{ref:t,onMouseDown:xt(e.onMouseDown,w=>{n?f.onItemFocus(c):w.preventDefault()}),onFocus:xt(e.onFocus,()=>f.onItemFocus(c)),onKeyDown:xt(e.onKeyDown,w=>{if(w.key==="Tab"&&w.shiftKey){f.onItemShiftTab();return}if(w.target!==w.currentTarget)return;let T=Eve(w,f.orientation,f.dir);if(T!==void 0){w.preventDefault();let A=v().filter(b=>b.focusable).map(b=>b.ref.current);if(T==="last")A.reverse();else if(T==="prev"||T==="next"){T==="prev"&&A.reverse();let b=A.indexOf(w.currentTarget);A=f.loop?Tve(A,b+1):A.slice(b+1)}setTimeout(()=>FG(A))}})})))}),xve={ArrowLeft:"prev",ArrowUp:"prev",ArrowRight:"next",ArrowDown:"next",PageUp:"first",Home:"first",PageDown:"last",End:"last"};function wve(e,t){return t!=="rtl"?e:e==="ArrowLeft"?"ArrowRight":e==="ArrowRight"?"ArrowLeft":e}function Eve(e,t,r){let n=wve(e.key,r);if(!(t==="vertical"&&["ArrowLeft","ArrowRight"].includes(n))&&!(t==="horizontal"&&["ArrowUp","ArrowDown"].includes(n)))return xve[n]}function FG(e){let t=document.activeElement;for(let r of e)if(r===t||(r.focus(),document.activeElement!==t))return}function Tve(e,t){return e.map((r,n)=>e[(t+n)%e.length])}var qG=gve,jG=Ave;var TP=["Enter"," "],Sve=["ArrowDown","PageUp","Home"],UG=["ArrowUp","PageDown","End"],kve=[...Sve,...UG],KLe={ltr:[...TP,"ArrowRight"],rtl:[...TP,"ArrowLeft"]};var Kx="Menu",[CP,Ove,Nve]=Sx(Kx),[Cf,OP]=Hi(Kx,[Nve,am,EP]),NP=am(),BG=EP(),[Dve,Wg]=Cf(Kx),[Lve,DP]=Cf(Kx),Pve=e=>{let{__scopeMenu:t,open:r=!1,children:n,dir:i,onOpenChange:o,modal:s=!0}=e,l=NP(t),[c,f]=(0,Ye.useState)(null),m=(0,Ye.useRef)(!1),v=Wn(o),g=kx(i);return(0,Ye.useEffect)(()=>{let y=()=>{m.current=!0,document.addEventListener("pointerdown",w,{capture:!0,once:!0}),document.addEventListener("pointermove",w,{capture:!0,once:!0})},w=()=>m.current=!1;return document.addEventListener("keydown",y,{capture:!0}),()=>{document.removeEventListener("keydown",y,{capture:!0}),document.removeEventListener("pointerdown",w,{capture:!0}),document.removeEventListener("pointermove",w,{capture:!0})}},[]),(0,Ye.createElement)(Qx,l,(0,Ye.createElement)(Dve,{scope:t,open:r,onOpenChange:v,content:c,onContentChange:f},(0,Ye.createElement)(Lve,{scope:t,onClose:(0,Ye.useCallback)(()=>v(!1),[v]),isUsingKeyboardRef:m,dir:g,modal:s},n)))};var Rve=(0,Ye.forwardRef)((e,t)=>{let{__scopeMenu:r,...n}=e,i=NP(r);return(0,Ye.createElement)(Wx,Ze({},i,n,{ref:t}))}),GG="MenuPortal",[Mve,Ive]=Cf(GG,{forceMount:void 0}),Fve=e=>{let{__scopeMenu:t,forceMount:r,children:n,container:i}=e,o=Wg(GG,t);return(0,Ye.createElement)(Mve,{scope:t,forceMount:r},(0,Ye.createElement)(Pa,{present:r||o.open},(0,Ye.createElement)($p,{asChild:!0,container:i},n)))},ju="MenuContent",[qve,zG]=Cf(ju),jve=(0,Ye.forwardRef)((e,t)=>{let r=Ive(ju,e.__scopeMenu),{forceMount:n=r.forceMount,...i}=e,o=Wg(ju,e.__scopeMenu),s=DP(ju,e.__scopeMenu);return(0,Ye.createElement)(CP.Provider,{scope:e.__scopeMenu},(0,Ye.createElement)(Pa,{present:n||o.open},(0,Ye.createElement)(CP.Slot,{scope:e.__scopeMenu},s.modal?(0,Ye.createElement)(Vve,Ze({},i,{ref:t})):(0,Ye.createElement)(Uve,Ze({},i,{ref:t})))))}),Vve=(0,Ye.forwardRef)((e,t)=>{let r=Wg(ju,e.__scopeMenu),n=(0,Ye.useRef)(null),i=sr(t,n);return(0,Ye.useEffect)(()=>{let o=n.current;if(o)return Ex(o)},[]),(0,Ye.createElement)(HG,Ze({},e,{ref:i,trapFocus:r.open,disableOutsidePointerEvents:r.open,disableOutsideScroll:!0,onFocusOutside:xt(e.onFocusOutside,o=>o.preventDefault(),{checkForDefaultPrevented:!1}),onDismiss:()=>r.onOpenChange(!1)}))}),Uve=(0,Ye.forwardRef)((e,t)=>{let r=Wg(ju,e.__scopeMenu);return(0,Ye.createElement)(HG,Ze({},e,{ref:t,trapFocus:!1,disableOutsidePointerEvents:!1,disableOutsideScroll:!1,onDismiss:()=>r.onOpenChange(!1)}))}),HG=(0,Ye.forwardRef)((e,t)=>{let{__scopeMenu:r,loop:n=!1,trapFocus:i,onOpenAutoFocus:o,onCloseAutoFocus:s,disableOutsidePointerEvents:l,onEntryFocus:c,onEscapeKeyDown:f,onPointerDownOutside:m,onFocusOutside:v,onInteractOutside:g,onDismiss:y,disableOutsideScroll:w,...T}=e,S=Wg(ju,r),A=DP(ju,r),b=NP(r),C=BG(r),x=Ove(r),[k,P]=(0,Ye.useState)(null),D=(0,Ye.useRef)(null),N=sr(t,D,S.onContentChange),I=(0,Ye.useRef)(0),V=(0,Ye.useRef)(""),G=(0,Ye.useRef)(0),B=(0,Ye.useRef)(null),U=(0,Ye.useRef)("right"),z=(0,Ye.useRef)(0),j=w?Vg:Ye.Fragment,J=w?{as:bs,allowPinchZoom:!0}:void 0,K=re=>{var se,xe;let Re=V.current+re,Se=x().filter(He=>!He.disabled),ie=document.activeElement,ye=(se=Se.find(He=>He.ref.current===ie))===null||se===void 0?void 0:se.textValue,me=Se.map(He=>He.textValue),Oe=Xve(me,Re,ye),Ge=(xe=Se.find(He=>He.textValue===Oe))===null||xe===void 0?void 0:xe.ref.current;(function He(dr){V.current=dr,window.clearTimeout(I.current),dr!==""&&(I.current=window.setTimeout(()=>He(""),1e3))})(Re),Ge&&setTimeout(()=>Ge.focus())};(0,Ye.useEffect)(()=>()=>window.clearTimeout(I.current),[]),vx();let ee=(0,Ye.useCallback)(re=>{var se,xe;return U.current===((se=B.current)===null||se===void 0?void 0:se.side)&&Jve(re,(xe=B.current)===null||xe===void 0?void 0:xe.area)},[]);return(0,Ye.createElement)(qve,{scope:r,searchRef:V,onItemEnter:(0,Ye.useCallback)(re=>{ee(re)&&re.preventDefault()},[ee]),onItemLeave:(0,Ye.useCallback)(re=>{var se;ee(re)||((se=D.current)===null||se===void 0||se.focus(),P(null))},[ee]),onTriggerLeave:(0,Ye.useCallback)(re=>{ee(re)&&re.preventDefault()},[ee]),pointerGraceTimerRef:G,onPointerGraceIntentChange:(0,Ye.useCallback)(re=>{B.current=re},[])},(0,Ye.createElement)(j,J,(0,Ye.createElement)(px,{asChild:!0,trapped:i,onMountAutoFocus:xt(o,re=>{var se;re.preventDefault(),(se=D.current)===null||se===void 0||se.focus()}),onUnmountAutoFocus:s},(0,Ye.createElement)(_p,{asChild:!0,disableOutsidePointerEvents:l,onEscapeKeyDown:f,onPointerDownOutside:m,onFocusOutside:v,onInteractOutside:g,onDismiss:y},(0,Ye.createElement)(qG,Ze({asChild:!0},C,{dir:A.dir,orientation:"vertical",loop:n,currentTabStopId:k,onCurrentTabStopIdChange:P,onEntryFocus:xt(c,re=>{A.isUsingKeyboardRef.current||re.preventDefault()})}),(0,Ye.createElement)(Yx,Ze({role:"menu","aria-orientation":"vertical","data-state":Wve(S.open),"data-radix-menu-content":"",dir:A.dir},b,T,{ref:N,style:{outline:"none",...T.style},onKeyDown:xt(T.onKeyDown,re=>{let xe=re.target.closest("[data-radix-menu-content]")===re.currentTarget,Re=re.ctrlKey||re.altKey||re.metaKey,Se=re.key.length===1;xe&&(re.key==="Tab"&&re.preventDefault(),!Re&&Se&&K(re.key));let ie=D.current;if(re.target!==ie||!kve.includes(re.key))return;re.preventDefault();let me=x().filter(Oe=>!Oe.disabled).map(Oe=>Oe.ref.current);UG.includes(re.key)&&me.reverse(),Yve(me)}),onBlur:xt(e.onBlur,re=>{re.currentTarget.contains(re.target)||(window.clearTimeout(I.current),V.current="")}),onPointerMove:xt(e.onPointerMove,kP(re=>{let se=re.target,xe=z.current!==re.clientX;if(re.currentTarget.contains(se)&&xe){let Re=re.clientX>z.current?"right":"left";U.current=Re,z.current=re.clientX}}))})))))))});var SP="MenuItem",VG="menu.itemSelect",Bve=(0,Ye.forwardRef)((e,t)=>{let{disabled:r=!1,onSelect:n,...i}=e,o=(0,Ye.useRef)(null),s=DP(SP,e.__scopeMenu),l=zG(SP,e.__scopeMenu),c=sr(t,o),f=(0,Ye.useRef)(!1),m=()=>{let v=o.current;if(!r&&v){let g=new CustomEvent(VG,{bubbles:!0,cancelable:!0});v.addEventListener(VG,y=>n?.(y),{once:!0}),dx(v,g),g.defaultPrevented?f.current=!1:s.onClose()}};return(0,Ye.createElement)(Gve,Ze({},i,{ref:c,disabled:r,onClick:xt(e.onClick,m),onPointerDown:v=>{var g;(g=e.onPointerDown)===null||g===void 0||g.call(e,v),f.current=!0},onPointerUp:xt(e.onPointerUp,v=>{var g;f.current||(g=v.currentTarget)===null||g===void 0||g.click()}),onKeyDown:xt(e.onKeyDown,v=>{let g=l.searchRef.current!=="";r||g&&v.key===" "||TP.includes(v.key)&&(v.currentTarget.click(),v.preventDefault())})}))}),Gve=(0,Ye.forwardRef)((e,t)=>{let{__scopeMenu:r,disabled:n=!1,textValue:i,...o}=e,s=zG(SP,r),l=BG(r),c=(0,Ye.useRef)(null),f=sr(t,c),[m,v]=(0,Ye.useState)(!1),[g,y]=(0,Ye.useState)("");return(0,Ye.useEffect)(()=>{let w=c.current;if(w){var T;y(((T=w.textContent)!==null&&T!==void 0?T:"").trim())}},[o.children]),(0,Ye.createElement)(CP.ItemSlot,{scope:r,disabled:n,textValue:i??g},(0,Ye.createElement)(jG,Ze({asChild:!0},l,{focusable:!n}),(0,Ye.createElement)(cr.div,Ze({role:"menuitem","data-highlighted":m?"":void 0,"aria-disabled":n||void 0,"data-disabled":n?"":void 0},o,{ref:f,onPointerMove:xt(e.onPointerMove,kP(w=>{n?s.onItemLeave(w):(s.onItemEnter(w),w.defaultPrevented||w.currentTarget.focus())})),onPointerLeave:xt(e.onPointerLeave,kP(w=>s.onItemLeave(w))),onFocus:xt(e.onFocus,()=>v(!0)),onBlur:xt(e.onBlur,()=>v(!1))}))))});var zve="MenuRadioGroup",[XLe,ZLe]=Cf(zve,{value:void 0,onValueChange:()=>{}});var Hve="MenuItemIndicator",[JLe,_Le]=Cf(Hve,{checked:!1});var Qve="MenuSub",[$Le,ePe]=Cf(Qve);function Wve(e){return e?"open":"closed"}function Yve(e){let t=document.activeElement;for(let r of e)if(r===t||(r.focus(),document.activeElement!==t))return}function Kve(e,t){return e.map((r,n)=>e[(t+n)%e.length])}function Xve(e,t,r){let i=t.length>1&&Array.from(t).every(f=>f===t[0])?t[0]:t,o=r?e.indexOf(r):-1,s=Kve(e,Math.max(o,0));i.length===1&&(s=s.filter(f=>f!==r));let c=s.find(f=>f.toLowerCase().startsWith(i.toLowerCase()));return c!==r?c:void 0}function Zve(e,t){let{x:r,y:n}=e,i=!1;for(let o=0,s=t.length-1;on!=m>n&&r<(f-l)*(n-c)/(m-c)+l&&(i=!i)}return i}function Jve(e,t){if(!t)return!1;let r={x:e.clientX,y:e.clientY};return Zve(r,t)}function kP(e){return t=>t.pointerType==="mouse"?e(t):void 0}var QG=Pve,WG=Rve,YG=Fve,KG=jve;var XG=Bve;var ZG="DropdownMenu",[_ve,xPe]=Hi(ZG,[OP]),Yg=OP(),[$ve,JG]=_ve(ZG),ege=e=>{let{__scopeDropdownMenu:t,children:r,dir:n,open:i,defaultOpen:o,onOpenChange:s,modal:l=!0}=e,c=Yg(t),f=(0,Zn.useRef)(null),[m=!1,v]=hu({prop:i,defaultProp:o,onChange:s});return(0,Zn.createElement)($ve,{scope:t,triggerId:Ea(),triggerRef:f,contentId:Ea(),open:m,onOpenChange:v,onOpenToggle:(0,Zn.useCallback)(()=>v(g=>!g),[v]),modal:l},(0,Zn.createElement)(QG,Ze({},c,{open:m,onOpenChange:v,dir:n,modal:l}),r))},tge="DropdownMenuTrigger",rge=(0,Zn.forwardRef)((e,t)=>{let{__scopeDropdownMenu:r,disabled:n=!1,...i}=e,o=JG(tge,r),s=Yg(r);return(0,Zn.createElement)(WG,Ze({asChild:!0},s),(0,Zn.createElement)(cr.button,Ze({type:"button",id:o.triggerId,"aria-haspopup":"menu","aria-expanded":o.open,"aria-controls":o.open?o.contentId:void 0,"data-state":o.open?"open":"closed","data-disabled":n?"":void 0,disabled:n},i,{ref:Ap(t,o.triggerRef),onPointerDown:xt(e.onPointerDown,l=>{!n&&l.button===0&&l.ctrlKey===!1&&(o.onOpenToggle(),o.open||l.preventDefault())}),onKeyDown:xt(e.onKeyDown,l=>{n||(["Enter"," "].includes(l.key)&&o.onOpenToggle(),l.key==="ArrowDown"&&o.onOpenChange(!0),["Enter"," ","ArrowDown"].includes(l.key)&&l.preventDefault())})})))});var nge=e=>{let{__scopeDropdownMenu:t,...r}=e,n=Yg(t);return(0,Zn.createElement)(YG,Ze({},n,r))},ige="DropdownMenuContent",oge=(0,Zn.forwardRef)((e,t)=>{let{__scopeDropdownMenu:r,...n}=e,i=JG(ige,r),o=Yg(r),s=(0,Zn.useRef)(!1);return(0,Zn.createElement)(KG,Ze({id:i.contentId,"aria-labelledby":i.triggerId},o,n,{ref:t,onCloseAutoFocus:xt(e.onCloseAutoFocus,l=>{var c;s.current||(c=i.triggerRef.current)===null||c===void 0||c.focus(),s.current=!1,l.preventDefault()}),onInteractOutside:xt(e.onInteractOutside,l=>{let c=l.detail.originalEvent,f=c.button===0&&c.ctrlKey===!0,m=c.button===2||f;(!i.modal||m)&&(s.current=!0)}),style:{...e.style,"--radix-dropdown-menu-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-dropdown-menu-content-available-width":"var(--radix-popper-available-width)","--radix-dropdown-menu-content-available-height":"var(--radix-popper-available-height)","--radix-dropdown-menu-trigger-width":"var(--radix-popper-anchor-width)","--radix-dropdown-menu-trigger-height":"var(--radix-popper-anchor-height)"}}))});var age=(0,Zn.forwardRef)((e,t)=>{let{__scopeDropdownMenu:r,...n}=e,i=Yg(r);return(0,Zn.createElement)(XG,Ze({},i,n,{ref:t}))});var _G=ege,$G=rge,ez=nge,tz=oge;var rz=age;var f_=fe(oW(),1);var rR=function(e,t){return rR=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(r,n){r.__proto__=n}||function(r,n){for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(r[i]=n[i])},rR(e,t)};function uw(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");rR(e,t);function r(){this.constructor=e}e.prototype=t===null?Object.create(t):(r.prototype=t.prototype,new r)}var ve=function(){return ve=Object.assign||function(t){for(var r,n=1,i=arguments.length;n0)&&!(i=n.next()).done;)o.push(i.value)}catch(l){s={error:l}}finally{try{i&&!i.done&&(r=n.return)&&r.call(n)}finally{if(s)throw s.error}}return o}function Jn(e,t,r){if(r||arguments.length===2)for(var n=0,i=t.length,o;n"u"||process.env===void 0?g0e:"production";var bl=function(e){return{isEnabled:function(t){return e.some(function(r){return!!t[r]})}}},Nf={measureLayout:bl(["layout","layoutId","drag"]),animation:bl(["animate","exit","variants","whileHover","whileTap","whileFocus","whileDrag","whileInView"]),exit:bl(["exit"]),drag:bl(["drag","dragControls"]),focus:bl(["whileFocus"]),hover:bl(["whileHover","onHoverStart","onHoverEnd"]),tap:bl(["whileTap","onTap","onTapStart","onTapCancel"]),pan:bl(["onPan","onPanStart","onPanSessionStart","onPanEnd"]),inView:bl(["whileInView","onViewportEnter","onViewportLeave"])};function aW(e){for(var t in e)e[t]!==null&&(t==="projectionNodeConstructor"?Nf.projectionNodeConstructor=e[t]:Nf[t].Component=e[t])}var Df=function(){},Gr=function(){};var sW=fe(Ee(),1),fw=(0,sW.createContext)({strict:!1});var cW=Object.keys(Nf),y0e=cW.length;function fW(e,t,r){var n=[],i=(0,uW.useContext)(fw);if(!t)return null;cw!=="production"&&r&&i.strict&&Gr(!1,"You have rendered a `motion` component within a `LazyMotion` component. This will break tree shaking. Import and render a `m` component instead.");for(var o=0;o"u")return t;var r=new Map;return new Proxy(t,{get:function(n,i){return r.has(i)||r.set(i,t(i)),r.get(i)}})}var RW=["animate","circle","defs","desc","ellipse","g","image","line","filter","marker","mask","metadata","path","pattern","polygon","polyline","rect","stop","svg","switch","symbol","text","tspan","use","view"];function fm(e){return typeof e!="string"||e.includes("-")?!1:!!(RW.indexOf(e)>-1||/[A-Z]/.test(e))}var rY=fe(Ee(),1);var QW=fe(Ee(),1);var dm={};function MW(e){Object.assign(dm,e)}var bw=["","X","Y","Z"],C0e=["translate","scale","rotate","skew"],pm=["transformPerspective","x","y","z"];C0e.forEach(function(e){return bw.forEach(function(t){return pm.push(e+t)})});function IW(e,t){return pm.indexOf(e)-pm.indexOf(t)}var S0e=new Set(pm);function Ds(e){return S0e.has(e)}var k0e=new Set(["originX","originY","originZ"]);function Aw(e){return k0e.has(e)}function xw(e,t){var r=t.layout,n=t.layoutId;return Ds(e)||Aw(e)||(r||n!==void 0)&&(!!dm[e]||e==="opacity")}var Mn=function(e){return!!(e!==null&&typeof e=="object"&&e.getVelocity)};var O0e={x:"translateX",y:"translateY",z:"translateZ",transformPerspective:"perspective"};function FW(e,t,r,n){var i=e.transform,o=e.transformKeys,s=t.enableHardwareAcceleration,l=s===void 0?!0:s,c=t.allowTransformNone,f=c===void 0?!0:c,m="";o.sort(IW);for(var v=!1,g=o.length,y=0;yr=>Math.max(Math.min(r,t),e),Gu=e=>e%1?Number(e.toFixed(5)):e,zu=/(-)?([\d]*\.?[\d])+/g,Tw=/(#[0-9a-f]{6}|#[0-9a-f]{3}|#(?:[0-9a-f]{2}){2,4}|(rgb|hsl)a?\((-?[\d\.]+%?[,\s]+){2,3}\s*\/*\s*[\d\.]+%?\))/gi,VW=/^(#[0-9a-f]{3}|#(?:[0-9a-f]{2}){2,4}|(rgb|hsl)a?\((-?[\d\.]+%?[,\s]+){2,3}\s*\/*\s*[\d\.]+%?\))$/i;function xl(e){return typeof e=="string"}var wo={test:e=>typeof e=="number",parse:parseFloat,transform:e=>e},wl=Object.assign(Object.assign({},wo),{transform:Ew(0,1)}),mm=Object.assign(Object.assign({},wo),{default:1});var ey=e=>({test:t=>xl(t)&&t.endsWith(e)&&t.split(" ").length===1,parse:parseFloat,transform:t=>`${t}${e}`}),qa=ey("deg"),yi=ey("%"),et=ey("px"),sR=ey("vh"),lR=ey("vw"),Cw=Object.assign(Object.assign({},yi),{parse:e=>yi.parse(e)/100,transform:e=>yi.transform(e*100)});var hm=(e,t)=>r=>!!(xl(r)&&VW.test(r)&&r.startsWith(e)||t&&Object.prototype.hasOwnProperty.call(r,t)),Sw=(e,t,r)=>n=>{if(!xl(n))return n;let[i,o,s,l]=n.match(zu);return{[e]:parseFloat(i),[t]:parseFloat(o),[r]:parseFloat(s),alpha:l!==void 0?parseFloat(l):1}};var Ls={test:hm("hsl","hue"),parse:Sw("hue","saturation","lightness"),transform:({hue:e,saturation:t,lightness:r,alpha:n=1})=>"hsla("+Math.round(e)+", "+yi.transform(Gu(t))+", "+yi.transform(Gu(r))+", "+Gu(wl.transform(n))+")"};var N0e=Ew(0,255),kw=Object.assign(Object.assign({},wo),{transform:e=>Math.round(N0e(e))}),Jo={test:hm("rgb","red"),parse:Sw("red","green","blue"),transform:({red:e,green:t,blue:r,alpha:n=1})=>"rgba("+kw.transform(e)+", "+kw.transform(t)+", "+kw.transform(r)+", "+Gu(wl.transform(n))+")"};function D0e(e){let t="",r="",n="",i="";return e.length>5?(t=e.substr(1,2),r=e.substr(3,2),n=e.substr(5,2),i=e.substr(7,2)):(t=e.substr(1,1),r=e.substr(2,1),n=e.substr(3,1),i=e.substr(4,1),t+=t,r+=r,n+=n,i+=i),{red:parseInt(t,16),green:parseInt(r,16),blue:parseInt(n,16),alpha:i?parseInt(i,16)/255:1}}var vm={test:hm("#"),parse:D0e,transform:Jo.transform};var Zr={test:e=>Jo.test(e)||vm.test(e)||Ls.test(e),parse:e=>Jo.test(e)?Jo.parse(e):Ls.test(e)?Ls.parse(e):vm.parse(e),transform:e=>xl(e)?e:e.hasOwnProperty("red")?Jo.transform(e):Ls.transform(e)};var UW="${c}",BW="${n}";function L0e(e){var t,r,n,i;return isNaN(e)&&xl(e)&&((r=(t=e.match(zu))===null||t===void 0?void 0:t.length)!==null&&r!==void 0?r:0)+((i=(n=e.match(Tw))===null||n===void 0?void 0:n.length)!==null&&i!==void 0?i:0)>0}function GW(e){typeof e=="number"&&(e=`${e}`);let t=[],r=0,n=e.match(Tw);n&&(r=n.length,e=e.replace(Tw,UW),t.push(...n.map(Zr.parse)));let i=e.match(zu);return i&&(e=e.replace(zu,BW),t.push(...i.map(wo.parse))),{values:t,numColors:r,tokenised:e}}function zW(e){return GW(e).values}function HW(e){let{values:t,numColors:r,tokenised:n}=GW(e),i=t.length;return o=>{let s=n;for(let l=0;ltypeof e=="number"?0:e;function R0e(e){let t=zW(e);return HW(e)(t.map(P0e))}var _n={test:L0e,parse:zW,createTransformer:HW,getAnimatableNone:R0e};var M0e=new Set(["brightness","contrast","saturate","opacity"]);function I0e(e){let[t,r]=e.slice(0,-1).split("(");if(t==="drop-shadow")return e;let[n]=r.match(zu)||[];if(!n)return e;let i=r.replace(n,""),o=M0e.has(t)?1:0;return n!==r&&(o*=100),t+"("+o+i+")"}var F0e=/([a-z-]*)\(.*?\)/g,gm=Object.assign(Object.assign({},_n),{getAnimatableNone:e=>{let t=e.match(F0e);return t?t.map(I0e).join(" "):e}});var uR=ve(ve({},wo),{transform:Math.round});var Ow={borderWidth:et,borderTopWidth:et,borderRightWidth:et,borderBottomWidth:et,borderLeftWidth:et,borderRadius:et,radius:et,borderTopLeftRadius:et,borderTopRightRadius:et,borderBottomRightRadius:et,borderBottomLeftRadius:et,width:et,maxWidth:et,height:et,maxHeight:et,size:et,top:et,right:et,bottom:et,left:et,padding:et,paddingTop:et,paddingRight:et,paddingBottom:et,paddingLeft:et,margin:et,marginTop:et,marginRight:et,marginBottom:et,marginLeft:et,rotate:qa,rotateX:qa,rotateY:qa,rotateZ:qa,scale:mm,scaleX:mm,scaleY:mm,scaleZ:mm,skew:qa,skewX:qa,skewY:qa,distance:et,translateX:et,translateY:et,translateZ:et,x:et,y:et,z:et,perspective:et,transformPerspective:et,opacity:wl,originX:Cw,originY:Cw,originZ:et,zIndex:uR,fillOpacity:wl,strokeOpacity:wl,numOctaves:uR};function ym(e,t,r,n){var i,o=e.style,s=e.vars,l=e.transform,c=e.transformKeys,f=e.transformOrigin;c.length=0;var m=!1,v=!1,g=!0;for(var y in t){var w=t[y];if(ww(y)){s[y]=w;continue}var T=Ow[y],S=jW(w,T);if(Ds(y)){if(m=!0,l[y]=S,c.push(y),!g)continue;w!==((i=T.default)!==null&&i!==void 0?i:0)&&(g=!1)}else Aw(y)?(f[y]=S,v=!0):o[y]=S}m?o.transform=FW(e,r,g,n):n?o.transform=n({},""):!t.transform&&o.transform&&(o.transform="none"),v&&(o.transformOrigin=qW(f))}var bm=function(){return{style:{},transform:{},transformKeys:[],transformOrigin:{},vars:{}}};function cR(e,t,r){for(var n in t)!Mn(t[n])&&!xw(n,r)&&(e[n]=t[n])}function q0e(e,t,r){var n=e.transformTemplate;return(0,QW.useMemo)(function(){var i=bm();ym(i,t,{enableHardwareAcceleration:!r},n);var o=i.vars,s=i.style;return ve(ve({},o),s)},[t])}function j0e(e,t,r){var n=e.style||{},i={};return cR(i,n,e),Object.assign(i,q0e(e,t,r)),e.transformValues&&(i=e.transformValues(i)),i}function WW(e,t,r){var n={},i=j0e(e,t,r);return e.drag&&e.dragListener!==!1&&(n.draggable=!1,i.userSelect=i.WebkitUserSelect=i.WebkitTouchCallout="none",i.touchAction=e.drag===!0?"none":"pan-".concat(e.drag==="x"?"y":"x")),n.style=i,n}var V0e=new Set(["initial","animate","exit","style","variants","transition","transformTemplate","transformValues","custom","inherit","layout","layoutId","layoutDependency","onLayoutAnimationStart","onLayoutAnimationComplete","onLayoutMeasure","onBeforeLayoutMeasure","onAnimationStart","onAnimationComplete","onUpdate","onDragStart","onDrag","onDragEnd","onMeasureDragConstraints","onDirectionLock","onDragTransitionEnd","drag","dragControls","dragListener","dragConstraints","dragDirectionLock","dragSnapToOrigin","_dragX","_dragY","dragElastic","dragMomentum","dragPropagation","dragTransition","whileDrag","onPan","onPanStart","onPanEnd","onPanSessionStart","onTap","onTapStart","onTapCancel","onHoverStart","onHoverEnd","whileFocus","whileTap","whileHover","whileInView","onViewportEnter","onViewportLeave","viewport","layoutScroll"]);function ty(e){return V0e.has(e)}var XW=function(e){return!ty(e)};function Q0e(e){e&&(XW=function(t){return t.startsWith("on")?!ty(t):e(t)})}try{Q0e(KW().default)}catch{}function ZW(e,t,r){var n={};for(var i in e)(XW(i)||r===!0&&ty(i)||!t&&!ty(i)||e.draggable&&i.startsWith("onDrag"))&&(n[i]=e[i]);return n}var eY=fe(Ee(),1);function JW(e,t,r){return typeof e=="string"?e:et.transform(t+r*e)}function _W(e,t,r){var n=JW(t,e.x,e.width),i=JW(r,e.y,e.height);return"".concat(n," ").concat(i)}var W0e={offset:"stroke-dashoffset",array:"stroke-dasharray"},Y0e={offset:"strokeDashoffset",array:"strokeDasharray"};function $W(e,t,r,n,i){r===void 0&&(r=1),n===void 0&&(n=0),i===void 0&&(i=!0),e.pathLength=1;var o=i?W0e:Y0e;e[o.offset]=et.transform(-n);var s=et.transform(t),l=et.transform(r);e[o.array]="".concat(s," ").concat(l)}function Am(e,t,r,n){var i=t.attrX,o=t.attrY,s=t.originX,l=t.originY,c=t.pathLength,f=t.pathSpacing,m=f===void 0?1:f,v=t.pathOffset,g=v===void 0?0:v,y=Fr(t,["attrX","attrY","originX","originY","pathLength","pathSpacing","pathOffset"]);ym(e,y,r,n),e.attrs=e.style,e.style={};var w=e.attrs,T=e.style,S=e.dimensions;w.transform&&(S&&(T.transform=w.transform),delete w.transform),S&&(s!==void 0||l!==void 0||T.transform)&&(T.transformOrigin=_W(S,s!==void 0?s:.5,l!==void 0?l:.5)),i!==void 0&&(w.x=i),o!==void 0&&(w.y=o),c!==void 0&&$W(w,c,m,g,!1)}var Nw=function(){return ve(ve({},bm()),{attrs:{}})};function tY(e,t){var r=(0,eY.useMemo)(function(){var i=Nw();return Am(i,t,{enableHardwareAcceleration:!1},e.transformTemplate),ve(ve({},i.attrs),{style:ve({},i.style)})},[t]);if(e.style){var n={};cR(n,e.style,e),r.style=ve(ve({},n),r.style)}return r}function nY(e){e===void 0&&(e=!1);var t=function(r,n,i,o,s,l){var c=s.latestValues,f=fm(r)?tY:WW,m=f(n,c,l),v=ZW(n,typeof r=="string",e),g=ve(ve(ve({},v),m),{ref:o});return i&&(g["data-projection-id"]=i),(0,rY.createElement)(r,g)};return t}var K0e=/([a-z])([A-Z])/g,X0e="$1-$2",Dw=function(e){return e.replace(K0e,X0e).toLowerCase()};function Lw(e,t,r,n){var i=t.style,o=t.vars;Object.assign(e.style,i,n&&n.getProjectionStyles(r));for(var s in o)e.style.setProperty(s,o[s])}var Pw=new Set(["baseFrequency","diffuseConstant","kernelMatrix","kernelUnitLength","keySplines","keyTimes","limitingConeAngle","markerHeight","markerWidth","numOctaves","targetX","targetY","surfaceScale","specularConstant","specularExponent","stdDeviation","tableValues","viewBox","gradientTransform","pathLength"]);function Rw(e,t,r,n){Lw(e,t,void 0,n);for(var i in t.attrs)e.setAttribute(Pw.has(i)?i:Dw(i),t.attrs[i])}function xm(e){var t=e.style,r={};for(var n in t)(Mn(t[n])||xw(n,e))&&(r[n]=t[n]);return r}function Mw(e){var t=xm(e);for(var r in e)if(Mn(e[r])){var n=r==="x"||r==="y"?"attr"+r.toUpperCase():r;t[n]=e[r]}return t}var pR=fe(Ee(),1);function wm(e){return typeof e=="object"&&typeof e.start=="function"}var El=function(e){return Array.isArray(e)};var iY=function(e){return!!(e&&typeof e=="object"&&e.mix&&e.toValue)},Iw=function(e){return El(e)?e[e.length-1]||0:e};function Em(e){var t=Mn(e)?e.get():e;return iY(t)?t.toValue():t}function oY(e,t,r,n){var i=e.scrapeMotionValuesFromProps,o=e.createRenderState,s=e.onMount,l={latestValues:Z0e(t,r,n,i),renderState:o()};return s&&(l.mount=function(c){return s(t,c,l)}),l}var Fw=function(e){return function(t,r){var n=(0,pR.useContext)(Lf),i=(0,pR.useContext)(Uu);return r?oY(e,t,n,i):gi(function(){return oY(e,t,n,i)})}};function Z0e(e,t,r,n){var i={},o=r?.initial===!1,s=n(e);for(var l in s)i[l]=Em(s[l]);var c=e.initial,f=e.animate,m=Mf(e),v=hw(e);t&&v&&!m&&e.inherit!==!1&&(c??(c=t.initial),f??(f=t.animate));var g=o||c===!1,y=g?f:c;if(y&&typeof y!="boolean"&&!wm(y)){var w=Array.isArray(y)?y:[y];w.forEach(function(T){var S=oR(e,T);if(S){var A=S.transitionEnd;S.transition;var b=Fr(S,["transitionEnd","transition"]);for(var C in b){var x=b[C];if(Array.isArray(x)){var k=g?x.length-1:0;x=x[k]}x!==null&&(i[C]=x)}for(var C in A)i[C]=A[C]}})}return i}var aY={useVisualState:Fw({scrapeMotionValuesFromProps:Mw,createRenderState:Nw,onMount:function(e,t,r){var n=r.renderState,i=r.latestValues;try{n.dimensions=typeof t.getBBox=="function"?t.getBBox():t.getBoundingClientRect()}catch{n.dimensions={x:0,y:0,width:0,height:0}}Am(n,i,{enableHardwareAcceleration:!1},e.transformTemplate),Rw(t,n)}})};var sY={useVisualState:Fw({scrapeMotionValuesFromProps:xm,createRenderState:bm})};function lY(e,t,r,n,i){var o=t.forwardMotionProps,s=o===void 0?!1:o,l=fm(e)?aY:sY;return ve(ve({},l),{preloadedFeatures:r,useRender:nY(s),createVisualElement:n,projectionNodeConstructor:i,Component:e})}var Ft;(function(e){e.Animate="animate",e.Hover="whileHover",e.Tap="whileTap",e.Drag="whileDrag",e.Focus="whileFocus",e.InView="whileInView",e.Exit="exit"})(Ft||(Ft={}));var uY=fe(Ee(),1);function If(e,t,r,n){return n===void 0&&(n={passive:!0}),e.addEventListener(t,r,n),function(){return e.removeEventListener(t,r)}}function ry(e,t,r,n){(0,uY.useEffect)(function(){var i=e.current;if(r&&i)return If(i,t,r,n)},[e,t,r,n])}function cY(e){var t=e.whileFocus,r=e.visualElement,n=function(){var o;(o=r.animationState)===null||o===void 0||o.setActive(Ft.Focus,!0)},i=function(){var o;(o=r.animationState)===null||o===void 0||o.setActive(Ft.Focus,!1)};ry(r,"focus",t?n:void 0),ry(r,"blur",t?i:void 0)}function qw(e){return typeof PointerEvent<"u"&&e instanceof PointerEvent?e.pointerType==="mouse":e instanceof MouseEvent}function jw(e){var t=!!e.touches;return t}function J0e(e){return function(t){var r=t instanceof MouseEvent,n=!r||r&&t.button===0;n&&e(t)}}var _0e={pageX:0,pageY:0};function $0e(e,t){t===void 0&&(t="page");var r=e.touches[0]||e.changedTouches[0],n=r||_0e;return{x:n[t+"X"],y:n[t+"Y"]}}function ebe(e,t){return t===void 0&&(t="page"),{x:e[t+"X"],y:e[t+"Y"]}}function ny(e,t){return t===void 0&&(t="page"),{point:jw(e)?$0e(e,t):ebe(e,t)}}var mR=function(e,t){t===void 0&&(t=!1);var r=function(n){return e(n,ny(n))};return t?J0e(r):r};var fY=function(){return Ns&&window.onpointerdown===null},dY=function(){return Ns&&window.ontouchstart===null},pY=function(){return Ns&&window.onmousedown===null};var tbe={pointerdown:"mousedown",pointermove:"mousemove",pointerup:"mouseup",pointercancel:"mousecancel",pointerover:"mouseover",pointerout:"mouseout",pointerenter:"mouseenter",pointerleave:"mouseleave"},rbe={pointerdown:"touchstart",pointermove:"touchmove",pointerup:"touchend",pointercancel:"touchcancel"};function mY(e){return fY()?e:dY()?rbe[e]:pY()?tbe[e]:e}function Tl(e,t,r,n){return If(e,mY(t),mR(r,t==="pointerdown"),n)}function Ff(e,t,r,n){return ry(e,mY(t),r&&mR(r,t==="pointerdown"),n)}function gY(e){var t=null;return function(){var r=function(){t=null};return t===null?(t=e,r):!1}}var hY=gY("dragHorizontal"),vY=gY("dragVertical");function hR(e){var t=!1;if(e==="y")t=vY();else if(e==="x")t=hY();else{var r=hY(),n=vY();r&&n?t=function(){r(),n()}:(r&&r(),n&&n())}return t}function Vw(){var e=hR(!0);return e?(e(),!1):!0}function yY(e,t,r){return function(n,i){var o;!qw(n)||Vw()||((o=e.animationState)===null||o===void 0||o.setActive(Ft.Hover,t),r?.(n,i))}}function bY(e){var t=e.onHoverStart,r=e.onHoverEnd,n=e.whileHover,i=e.visualElement;Ff(i,"pointerenter",t||n?yY(i,!0,t):void 0,{passive:!t}),Ff(i,"pointerleave",r||n?yY(i,!1,r):void 0,{passive:!r})}var jR=fe(Ee(),1);var vR=function(e,t){return t?e===t?!0:vR(e,t.parentElement):!1};var AY=fe(Ee(),1);function Uw(e){return(0,AY.useEffect)(function(){return function(){return e()}},[])}function Bw(e,t){var r={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,n=Object.getOwnPropertySymbols(e);iMath.min(Math.max(r,e),t);var gR=.001,nbe=.01,xY=10,ibe=.05,obe=1;function wY({duration:e=800,bounce:t=.25,velocity:r=0,mass:n=1}){let i,o;Df(e<=xY*1e3,"Spring duration must be 10 seconds or less");let s=1-t;s=Hu(ibe,obe,s),e=Hu(nbe,xY,e/1e3),s<1?(i=f=>{let m=f*s,v=m*e,g=m-r,y=Gw(f,s),w=Math.exp(-v);return gR-g/y*w},o=f=>{let v=f*s*e,g=v*r+r,y=Math.pow(s,2)*Math.pow(f,2)*e,w=Math.exp(-v),T=Gw(Math.pow(f,2),s);return(-i(f)+gR>0?-1:1)*((g-y)*w)/T}):(i=f=>{let m=Math.exp(-f*e),v=(f-r)*e+1;return-gR+m*v},o=f=>{let m=Math.exp(-f*e),v=(r-f)*(e*e);return m*v});let l=5/e,c=sbe(i,o,l);if(e=e*1e3,isNaN(c))return{stiffness:100,damping:10,duration:e};{let f=Math.pow(c,2)*n;return{stiffness:f,damping:s*2*Math.sqrt(n*f),duration:e}}}var abe=12;function sbe(e,t,r){let n=r;for(let i=1;ie[r]!==void 0)}function cbe(e){let t=Object.assign({velocity:0,stiffness:100,damping:10,mass:1,isResolvedFromDuration:!1},e);if(!EY(e,ube)&&EY(e,lbe)){let r=wY(e);t=Object.assign(Object.assign(Object.assign({},t),r),{velocity:0,mass:1}),t.isResolvedFromDuration=!0}return t}function zw(e){var{from:t=0,to:r=1,restSpeed:n=2,restDelta:i}=e,o=Bw(e,["from","to","restSpeed","restDelta"]);let s={done:!1,value:t},{stiffness:l,damping:c,mass:f,velocity:m,duration:v,isResolvedFromDuration:g}=cbe(o),y=TY,w=TY;function T(){let S=m?-(m/1e3):0,A=r-t,b=c/(2*Math.sqrt(l*f)),C=Math.sqrt(l/f)/1e3;if(i===void 0&&(i=Math.min(Math.abs(r-t)/100,.4)),b<1){let x=Gw(C,b);y=k=>{let P=Math.exp(-b*C*k);return r-P*((S+b*C*A)/x*Math.sin(x*k)+A*Math.cos(x*k))},w=k=>{let P=Math.exp(-b*C*k);return b*C*P*(Math.sin(x*k)*(S+b*C*A)/x+A*Math.cos(x*k))-P*(Math.cos(x*k)*(S+b*C*A)-x*A*Math.sin(x*k))}}else if(b===1)y=x=>r-Math.exp(-C*x)*(A+(S+C*A)*x);else{let x=C*Math.sqrt(b*b-1);y=k=>{let P=Math.exp(-b*C*k),D=Math.min(x*k,300);return r-P*((S+b*C*A)*Math.sinh(D)+x*A*Math.cosh(D))/x}}}return T(),{next:S=>{let A=y(S);if(g)s.done=S>=v;else{let b=w(S)*1e3,C=Math.abs(b)<=n,x=Math.abs(r-A)<=i;s.done=C&&x}return s.value=s.done?r:A,s},flipTarget:()=>{m=-m,[t,r]=[r,t],T()}}}zw.needsInterpolation=(e,t)=>typeof e=="string"||typeof t=="string";var TY=e=>0;var Cl=(e,t,r)=>{let n=t-e;return n===0?1:(r-e)/n};var Dt=(e,t,r)=>-r*e+r*t+e;function yR(e,t,r){return r<0&&(r+=1),r>1&&(r-=1),r<1/6?e+(t-e)*6*r:r<1/2?t:r<2/3?e+(t-e)*(2/3-r)*6:e}function bR({hue:e,saturation:t,lightness:r,alpha:n}){e/=360,t/=100,r/=100;let i=0,o=0,s=0;if(!t)i=o=s=r;else{let l=r<.5?r*(1+t):r+t-r*t,c=2*r-l;i=yR(c,l,e+1/3),o=yR(c,l,e),s=yR(c,l,e-1/3)}return{red:Math.round(i*255),green:Math.round(o*255),blue:Math.round(s*255),alpha:n}}var fbe=(e,t,r)=>{let n=e*e,i=t*t;return Math.sqrt(Math.max(0,r*(i-n)+n))},dbe=[vm,Jo,Ls],CY=e=>dbe.find(t=>t.test(e)),SY=e=>`'${e}' is not an animatable color. Use the equivalent color code instead.`,Hw=(e,t)=>{let r=CY(e),n=CY(t);Gr(!!r,SY(e)),Gr(!!n,SY(t));let i=r.parse(e),o=n.parse(t);r===Ls&&(i=bR(i),r=Jo),n===Ls&&(o=bR(o),n=Jo);let s=Object.assign({},i);return l=>{for(let c in s)c!=="alpha"&&(s[c]=fbe(i[c],o[c],l));return s.alpha=Dt(i.alpha,o.alpha,l),r.transform(s)}};var iy=e=>typeof e=="number";var pbe=(e,t)=>r=>t(e(r)),Sl=(...e)=>e.reduce(pbe);function OY(e,t){return iy(e)?r=>Dt(e,t,r):Zr.test(e)?Hw(e,t):xR(e,t)}var AR=(e,t)=>{let r=[...e],n=r.length,i=e.map((o,s)=>OY(o,t[s]));return o=>{for(let s=0;s{let r=Object.assign(Object.assign({},e),t),n={};for(let i in r)e[i]!==void 0&&t[i]!==void 0&&(n[i]=OY(e[i],t[i]));return i=>{for(let o in n)r[o]=n[o](i);return r}};function kY(e){let t=_n.parse(e),r=t.length,n=0,i=0,o=0;for(let s=0;s{let r=_n.createTransformer(t),n=kY(e),i=kY(t);return n.numHSL===i.numHSL&&n.numRGB===i.numRGB&&n.numNumbers>=i.numNumbers?Sl(AR(n.parsed,i.parsed),r):(Df(!0,`Complex values '${e}' and '${t}' too different to mix. Ensure all colors are of the same type, and that each contains the same quantity of number and color values. Falling back to instant transition.`),s=>`${s>0?t:e}`)};var mbe=(e,t)=>r=>Dt(e,t,r);function hbe(e){if(typeof e=="number")return mbe;if(typeof e=="string")return Zr.test(e)?Hw:xR;if(Array.isArray(e))return AR;if(typeof e=="object")return NY}function vbe(e,t,r){let n=[],i=r||hbe(e[0]),o=e.length-1;for(let s=0;sr(Cl(e,t,n))}function ybe(e,t){let r=e.length,n=r-1;return i=>{let o=0,s=!1;if(i<=e[0]?s=!0:i>=e[n]&&(o=n-1,s=!0),!s){let c=1;for(;ci||c===n);c++);o=c-1}let l=Cl(e[o],e[o+1],i);return t[o](l)}}function qf(e,t,{clamp:r=!0,ease:n,mixer:i}={}){let o=e.length;Gr(o===t.length,"Both input and output ranges must be the same length"),Gr(!n||!Array.isArray(n)||n.length===o-1,"Array of easing functions must be of length `input.length - 1`, as it applies to the transitions **between** the defined values."),e[0]>e[o-1]&&(e=[].concat(e),t=[].concat(t),e.reverse(),t.reverse());let s=vbe(t,n,i),l=o===2?gbe(e,s):ybe(e,s);return r?c=>l(Hu(e[0],e[o-1],c)):l}var oy=e=>t=>1-e(1-t),Qw=e=>t=>t<=.5?e(2*t)/2:(2-e(2*(1-t)))/2,DY=e=>t=>Math.pow(t,e),wR=e=>t=>t*t*((e+1)*t-e),LY=e=>{let t=wR(e);return r=>(r*=2)<1?.5*t(r):.5*(2-Math.pow(2,-10*(r-1)))};var PY=1.525,bbe=4/11,Abe=8/11,xbe=9/10,jf=e=>e,ay=DY(2),ER=oy(ay),sy=Qw(ay),Ww=e=>1-Math.sin(Math.acos(e)),Cm=oy(Ww),TR=Qw(Cm),ly=wR(PY),CR=oy(ly),SR=Qw(ly),kR=LY(PY),wbe=4356/361,Ebe=35442/1805,Tbe=16061/1805,Tm=e=>{if(e===1||e===0)return e;let t=e*e;return ee<.5?.5*(1-Tm(1-e*2)):.5*Tm(e*2-1)+.5;function Cbe(e,t){return e.map(()=>t||sy).splice(0,e.length-1)}function Sbe(e){let t=e.length;return e.map((r,n)=>n!==0?n/(t-1):0)}function kbe(e,t){return e.map(r=>r*t)}function uy({from:e=0,to:t=1,ease:r,offset:n,duration:i=300}){let o={done:!1,value:e},s=Array.isArray(t)?t:[e,t],l=kbe(n&&n.length===s.length?n:Sbe(s),i);function c(){return qf(l,s,{ease:Array.isArray(r)?r:Cbe(s,r)})}let f=c();return{next:m=>(o.value=f(m),o.done=m>=i,o),flipTarget:()=>{s.reverse(),f=c()}}}function RY({velocity:e=0,from:t=0,power:r=.8,timeConstant:n=350,restDelta:i=.5,modifyTarget:o}){let s={done:!1,value:t},l=r*e,c=t+l,f=o===void 0?c:o(c);return f!==c&&(l=f-t),{next:m=>{let v=-l*Math.exp(-m/n);return s.done=!(v>i||v<-i),s.value=s.done?f:f+v,s},flipTarget:()=>{}}}var MY={keyframes:uy,spring:zw,decay:RY};function IY(e){if(Array.isArray(e.to))return uy;if(MY[e.type])return MY[e.type];let t=new Set(Object.keys(e));return t.has("ease")||t.has("duration")&&!t.has("dampingRatio")?uy:t.has("dampingRatio")||t.has("stiffness")||t.has("mass")||t.has("damping")||t.has("restSpeed")||t.has("restDelta")?zw:uy}var DR=16.666666666666668,Obe=typeof performance<"u"?()=>performance.now():()=>Date.now(),LR=typeof window<"u"?e=>window.requestAnimationFrame(e):e=>setTimeout(()=>e(Obe()),DR);function FY(e){let t=[],r=[],n=0,i=!1,o=!1,s=new WeakSet,l={schedule:(c,f=!1,m=!1)=>{let v=m&&i,g=v?t:r;return f&&s.add(c),g.indexOf(c)===-1&&(g.push(c),v&&i&&(n=t.length)),c},cancel:c=>{let f=r.indexOf(c);f!==-1&&r.splice(f,1),s.delete(c)},process:c=>{if(i){o=!0;return}if(i=!0,[t,r]=[r,t],r.length=0,n=t.length,n)for(let f=0;f(e[t]=FY(()=>cy=!0),e),{}),Dbe=fy.reduce((e,t)=>{let r=Yw[t];return e[t]=(n,i=!1,o=!1)=>(cy||Pbe(),r.schedule(n,i,o)),e},{}),Ps=fy.reduce((e,t)=>(e[t]=Yw[t].cancel,e),{}),Kw=fy.reduce((e,t)=>(e[t]=()=>Yw[t].process(Sm),e),{}),Lbe=e=>Yw[e].process(Sm),qY=e=>{cy=!1,Sm.delta=PR?DR:Math.max(Math.min(e-Sm.timestamp,Nbe),1),Sm.timestamp=e,RR=!0,fy.forEach(Lbe),RR=!1,cy&&(PR=!1,LR(qY))},Pbe=()=>{cy=!0,PR=!0,RR||LR(qY)},Vf=()=>Sm,In=Dbe;function MR(e,t,r=0){return e-t-r}function jY(e,t,r=0,n=!0){return n?MR(t+-e,t,r):t-(e-t)+r}function VY(e,t,r,n){return n?e>=t+r:e<=-r}var Rbe=e=>{let t=({delta:r})=>e(r);return{start:()=>In.update(t,!0),stop:()=>Ps.update(t)}};function dy(e){var t,r,{from:n,autoplay:i=!0,driver:o=Rbe,elapsed:s=0,repeat:l=0,repeatType:c="loop",repeatDelay:f=0,onPlay:m,onStop:v,onComplete:g,onRepeat:y,onUpdate:w}=e,T=Bw(e,["from","autoplay","driver","elapsed","repeat","repeatType","repeatDelay","onPlay","onStop","onComplete","onRepeat","onUpdate"]);let{to:S}=T,A,b=0,C=T.duration,x,k=!1,P=!0,D,N=IY(T);!((r=(t=N).needsInterpolation)===null||r===void 0)&&r.call(t,n,S)&&(D=qf([0,100],[n,S],{clamp:!1}),n=0,S=100);let I=N(Object.assign(Object.assign({},T),{from:n,to:S}));function V(){b++,c==="reverse"?(P=b%2===0,s=jY(s,C,f,P)):(s=MR(s,C,f),c==="mirror"&&I.flipTarget()),k=!1,y&&y()}function G(){A.stop(),g&&g()}function B(z){if(P||(z=-z),s+=z,!k){let j=I.next(Math.max(0,s));x=j.value,D&&(x=D(x)),k=P?j.done:s<=0}w?.(x),k&&(b===0&&(C??(C=s)),b{v?.(),A.stop()}}}function py(e,t){return t?e*(1e3/t):0}function IR({from:e=0,velocity:t=0,min:r,max:n,power:i=.8,timeConstant:o=750,bounceStiffness:s=500,bounceDamping:l=10,restDelta:c=1,modifyTarget:f,driver:m,onUpdate:v,onComplete:g,onStop:y}){let w;function T(C){return r!==void 0&&Cn}function S(C){return r===void 0?n:n===void 0||Math.abs(r-C){var k;v?.(x),(k=C.onUpdate)===null||k===void 0||k.call(C,x)},onComplete:g,onStop:y}))}function b(C){A(Object.assign({type:"spring",stiffness:s,damping:l,restDelta:c},C))}if(T(e))b({from:e,velocity:t,to:S(e)});else{let C=i*t+e;typeof f<"u"&&(C=f(C));let x=S(C),k=x===r?-1:1,P,D,N=I=>{P=D,D=I,t=py(I-P,Vf().delta),(k===1&&I>x||k===-1&&Iw?.stop()}}var my=e=>e.hasOwnProperty("x")&&e.hasOwnProperty("y");var FR=e=>my(e)&&e.hasOwnProperty("z");var Xw=(e,t)=>Math.abs(e-t);function hy(e,t){if(iy(e)&&iy(t))return Xw(e,t);if(my(e)&&my(t)){let r=Xw(e.x,t.x),n=Xw(e.y,t.y),i=FR(e)&&FR(t)?Xw(e.z,t.z):0;return Math.sqrt(Math.pow(r,2)+Math.pow(n,2)+Math.pow(i,2))}}var UY=(e,t)=>1-3*t+3*e,BY=(e,t)=>3*t-6*e,GY=e=>3*e,_w=(e,t,r)=>((UY(t,r)*e+BY(t,r))*e+GY(t))*e,zY=(e,t,r)=>3*UY(t,r)*e*e+2*BY(t,r)*e+GY(t),Mbe=1e-7,Ibe=10;function Fbe(e,t,r,n,i){let o,s,l=0;do s=t+(r-t)/2,o=_w(s,n,i)-e,o>0?r=s:t=s;while(Math.abs(o)>Mbe&&++l=jbe?Vbe(s,v,e,r):g===0?v:Fbe(s,l,l+Zw,e,r)}return s=>s===0||s===1?s:_w(o(s),t,n)}function HY(e){var t=e.onTap,r=e.onTapStart,n=e.onTapCancel,i=e.whileTap,o=e.visualElement,s=t||r||n||i,l=(0,jR.useRef)(!1),c=(0,jR.useRef)(null),f={passive:!(r||t||n||w)};function m(){var T;(T=c.current)===null||T===void 0||T.call(c),c.current=null}function v(){var T;return m(),l.current=!1,(T=o.animationState)===null||T===void 0||T.setActive(Ft.Tap,!1),!Vw()}function g(T,S){v()&&(vR(o.getInstance(),T.target)?t?.(T,S):n?.(T,S))}function y(T,S){v()&&n?.(T,S)}function w(T,S){var A;m(),!l.current&&(l.current=!0,c.current=Sl(Tl(window,"pointerup",g,f),Tl(window,"pointercancel",y,f)),(A=o.animationState)===null||A===void 0||A.setActive(Ft.Tap,!0),r?.(T,S))}Ff(o,"pointerdown",s?w:void 0,f),Uw(m)}var vy=fe(Ee(),1);var QY=new Set;function WY(e,t,r){e||QY.has(t)||(console.warn(t),r&&console.warn(r),QY.add(t))}var UR=new WeakMap,VR=new WeakMap,Ube=function(e){var t;(t=UR.get(e.target))===null||t===void 0||t(e)},Bbe=function(e){e.forEach(Ube)};function Gbe(e){var t=e.root,r=Fr(e,["root"]),n=t||document;VR.has(n)||VR.set(n,{});var i=VR.get(n),o=JSON.stringify(r);return i[o]||(i[o]=new IntersectionObserver(Bbe,ve({root:t},r))),i[o]}function YY(e,t,r){var n=Gbe(t);return UR.set(e,r),n.observe(e),function(){UR.delete(e),n.unobserve(e)}}function KY(e){var t=e.visualElement,r=e.whileInView,n=e.onViewportEnter,i=e.onViewportLeave,o=e.viewport,s=o===void 0?{}:o,l=(0,vy.useRef)({hasEnteredView:!1,isInView:!1}),c=!!(r||n||i);s.once&&l.current.hasEnteredView&&(c=!1);var f=typeof IntersectionObserver>"u"?Qbe:Hbe;f(c,l.current,t,s)}var zbe={some:0,all:1};function Hbe(e,t,r,n){var i=n.root,o=n.margin,s=n.amount,l=s===void 0?"some":s,c=n.once;(0,vy.useEffect)(function(){if(e){var f={root:i?.current,rootMargin:o,threshold:typeof l=="number"?l:zbe[l]},m=function(v){var g,y=v.isIntersecting;if(t.isInView!==y&&(t.isInView=y,!(c&&!y&&t.hasEnteredView))){y&&(t.hasEnteredView=!0),(g=r.animationState)===null||g===void 0||g.setActive(Ft.InView,y);var w=r.getProps(),T=y?w.onViewportEnter:w.onViewportLeave;T?.(v)}};return YY(r.getInstance(),f,m)}},[e,i,o,l])}function Qbe(e,t,r,n){var i=n.fallback,o=i===void 0?!0:i;(0,vy.useEffect)(function(){!e||!o||(cw!=="production"&&WY(!1,"IntersectionObserver not available on this device. whileInView animations will trigger on mount."),requestAnimationFrame(function(){var s;t.hasEnteredView=!0;var l=r.getProps().onViewportEnter;l?.(null),(s=r.animationState)===null||s===void 0||s.setActive(Ft.InView,!0)}))},[e])}var ja=function(e){return function(t){return e(t),null}};var XY={inView:ja(KY),tap:ja(HY),focus:ja(cY),hover:ja(bY)};var yy=fe(Ee(),1);var $w=fe(Ee(),1);var Wbe=0,Ybe=function(){return Wbe++},ZY=function(){return gi(Ybe)};function eE(){var e=(0,$w.useContext)(Uu);if(e===null)return[!0,null];var t=e.isPresent,r=e.onExitComplete,n=e.register,i=ZY();(0,$w.useEffect)(function(){return n(i)},[]);var o=function(){return r?.(i)};return!t&&r?[!1,o]:[!0]}function BR(e,t){if(!Array.isArray(t))return!1;var r=t.length;if(r!==e.length)return!1;for(var n=0;n-1&&e.splice(r,1)}function sK(e,t,r){var n=ht(e),i=n.slice(0),o=t<0?i.length+t:t;if(o>=0&&ob&&G,J=Array.isArray(V)?V:[V],K=J.reduce(o,{});B===!1&&(K={});var ee=I.prevResolvedValues,re=ee===void 0?{}:ee,se=ve(ve({},re),K),xe=function(ye){j=!0,S.delete(ye),I.needsAnimating[ye]=!0};for(var Re in se){var Se=K[Re],ie=re[Re];A.hasOwnProperty(Re)||(Se!==ie?El(Se)&&El(ie)?!BR(Se,ie)||z?xe(Re):I.protectedKeys[Re]=!0:Se!==void 0?xe(Re):S.add(Re):Se!==void 0&&S.has(Re)?xe(Re):I.protectedKeys[Re]=!0)}I.prevProp=V,I.prevResolvedValues=K,I.isActive&&(A=ve(ve({},A),K)),i&&e.blockInitialAnimation&&(j=!1),j&&!U&&T.push.apply(T,Jn([],ht(J.map(function(ye){return{animation:ye,options:ve({type:N},m)}})),!1))},x=0;x=3;if(!(!y&&!w)){var T=g.point,S=Vf().timestamp;i.history.push(ve(ve({},T),{timestamp:S}));var A=i.handlers,b=A.onStart,C=A.onMove;y||(b&&b(i.lastMoveEvent,g),i.startEvent=i.lastMoveEvent),C&&C(i.lastMoveEvent,g)}}},this.handlePointerMove=function(g,y){if(i.lastMoveEvent=g,i.lastMoveEventInfo=YR(y,i.transformPagePoint),qw(g)&&g.buttons===0){i.handlePointerUp(g,y);return}In.update(i.updatePoint,!0)},this.handlePointerUp=function(g,y){i.end();var w=i.handlers,T=w.onEnd,S=w.onSessionEnd,A=KR(YR(y,i.transformPagePoint),i.history);i.startEvent&&T&&T(g,A),S&&S(g,A)},!(jw(t)&&t.touches.length>1)){this.handlers=r,this.transformPagePoint=s;var l=ny(t),c=YR(l,this.transformPagePoint),f=c.point,m=Vf().timestamp;this.history=[ve(ve({},f),{timestamp:m})];var v=r.onSessionStart;v&&v(t,KR(c,this.history)),this.removeListeners=Sl(Tl(window,"pointermove",this.handlePointerMove),Tl(window,"pointerup",this.handlePointerUp),Tl(window,"pointercancel",this.handlePointerUp))}}return e.prototype.updateHandlers=function(t){this.handlers=t},e.prototype.end=function(){this.removeListeners&&this.removeListeners(),Ps.update(this.updatePoint)},e}();function YR(e,t){return t?{point:t(e.point)}:e}function gK(e,t){return{x:e.x-t.x,y:e.y-t.y}}function KR(e,t){var r=e.point;return{point:r,delta:gK(r,yK(t)),offset:gK(r,hAe(t)),velocity:vAe(t,.1)}}function hAe(e){return e[0]}function yK(e){return e[e.length-1]}function vAe(e,t){if(e.length<2)return{x:0,y:0};for(var r=e.length-1,n=null,i=yK(e);r>=0&&(n=e[r],!(i.timestamp-n.timestamp>km(t)));)r--;if(!n)return{x:0,y:0};var o=(i.timestamp-n.timestamp)/1e3;if(o===0)return{x:0,y:0};var s={x:(i.x-n.x)/o,y:(i.y-n.y)/o};return s.x===1/0&&(s.x=0),s.y===1/0&&(s.y=0),s}function $o(e){return e.max-e.min}function bK(e,t,r){return t===void 0&&(t=0),r===void 0&&(r=.01),hy(e,t)i&&(e=r?Dt(i,e,r.max):Math.min(e,i)),e}function TK(e,t,r){return{min:t!==void 0?e.min+t:void 0,max:r!==void 0?e.max+r-(e.max-e.min):void 0}}function NK(e,t){var r=t.top,n=t.left,i=t.bottom,o=t.right;return{x:TK(e.x,n,o),y:TK(e.y,r,i)}}function CK(e,t){var r,n=t.min-e.min,i=t.max-e.max;return t.max-t.minn?r=Cl(t.min,t.max-n,e.min):n>i&&(r=Cl(e.min,e.max-i,t.min)),Hu(0,1,r)}function PK(e,t){var r={};return t.min!==void 0&&(r.min=t.min-e.min),t.max!==void 0&&(r.max=t.max-e.min),r}var aE=.35;function RK(e){return e===void 0&&(e=aE),e===!1?e=0:e===!0&&(e=aE),{x:SK(e,"left","right"),y:SK(e,"top","bottom")}}function SK(e,t,r){return{min:kK(e,t),max:kK(e,r)}}function kK(e,t){var r;return typeof e=="number"?e:(r=e[t])!==null&&r!==void 0?r:0}var MK=function(){return{translate:0,scale:1,origin:0,originPoint:0}},Im=function(){return{x:MK(),y:MK()}},IK=function(){return{min:0,max:0}},Fn=function(){return{x:IK(),y:IK()}};function ea(e){return[e("x"),e("y")]}function sE(e){var t=e.top,r=e.left,n=e.right,i=e.bottom;return{x:{min:r,max:n},y:{min:t,max:i}}}function FK(e){var t=e.x,r=e.y;return{top:r.min,right:t.max,bottom:r.max,left:t.min}}function qK(e,t){if(!t)return e;var r=t({x:e.left,y:e.top}),n=t({x:e.right,y:e.bottom});return{top:r.y,left:r.x,bottom:n.y,right:n.x}}function XR(e){return e===void 0||e===1}function ZR(e){var t=e.scale,r=e.scaleX,n=e.scaleY;return!XR(t)||!XR(r)||!XR(n)}function Rs(e){return ZR(e)||jK(e.x)||jK(e.y)||e.z||e.rotate||e.rotateX||e.rotateY}function jK(e){return e&&e!=="0%"}function by(e,t,r){var n=e-r,i=t*n;return r+i}function VK(e,t,r,n,i){return i!==void 0&&(e=by(e,i,n)),by(e,r,n)+t}function JR(e,t,r,n,i){t===void 0&&(t=0),r===void 0&&(r=1),e.min=VK(e.min,t,r,n,i),e.max=VK(e.max,t,r,n,i)}function _R(e,t){var r=t.x,n=t.y;JR(e.x,r.translate,r.scale,r.originPoint),JR(e.y,n.translate,n.scale,n.originPoint)}function BK(e,t,r,n){var i,o;n===void 0&&(n=!1);var s=r.length;if(s){t.x=t.y=1;for(var l,c,f=0;ft?r="y":Math.abs(e.x)>t&&(r="x"),r}function HK(e){var t=e.dragControls,r=e.visualElement,n=gi(function(){return new zK(r)});(0,eM.useEffect)(function(){return t&&t.subscribe(n)},[n,t]),(0,eM.useEffect)(function(){return n.addListeners()},[n])}var Fm=fe(Ee(),1);function QK(e){var t=e.onPan,r=e.onPanStart,n=e.onPanEnd,i=e.onPanSessionStart,o=e.visualElement,s=t||r||n||i,l=(0,Fm.useRef)(null),c=(0,Fm.useContext)(Vu).transformPagePoint,f={onSessionStart:i,onStart:r,onMove:t,onEnd:function(v,g){l.current=null,n&&n(v,g)}};(0,Fm.useEffect)(function(){l.current!==null&&l.current.updateHandlers(f)});function m(v){l.current=new oE(v,f,{transformPagePoint:c})}Ff(o,"pointerdown",s&&m),Uw(function(){return l.current&&l.current.end()})}var WK={pan:ja(QK),drag:ja(HK)};var uE=["LayoutMeasure","BeforeLayoutMeasure","LayoutUpdate","ViewportBoxUpdate","Update","Render","AnimationComplete","LayoutAnimationComplete","AnimationStart","LayoutAnimationStart","SetAxisTarget","Unmount"];function YK(){var e=uE.map(function(){return new Qu}),t={},r={clearAllListeners:function(){return e.forEach(function(n){return n.clear()})},updatePropListeners:function(n){uE.forEach(function(i){var o,s="on"+i,l=n[s];(o=t[i])===null||o===void 0||o.call(t),l&&(t[i]=r[s](l))})}};return e.forEach(function(n,i){r["on"+uE[i]]=function(o){return n.add(o)},r["notify"+uE[i]]=function(){for(var o=[],s=0;s=0?window.pageYOffset:null,f=NAe(t,e,l);return o.length&&o.forEach(function(m){var v=ht(m,2),g=v[0],y=v[1];e.getValue(g).set(y)}),e.syncRender(),c!==null&&window.scrollTo({top:c}),{target:f,transitionEnd:n}}else return{target:t,transitionEnd:n}};function nX(e,t,r,n){return CAe(t)?DAe(e,t,r,n):{target:t,transitionEnd:n}}var iX=function(e,t,r,n){var i=ZK(e,t,n);return t=i.target,n=i.transitionEnd,nX(e,t,r,n)};function LAe(e){return window.getComputedStyle(e)}var iM={treeType:"dom",readValueFromInstance:function(e,t){if(Ds(t)){var r=Om(t);return r&&r.default||0}else{var n=LAe(e);return(ww(t)?n.getPropertyValue(t):n[t])||0}},sortNodePosition:function(e,t){return e.compareDocumentPosition(t)&2?1:-1},getBaseTarget:function(e,t){var r;return(r=e.style)===null||r===void 0?void 0:r[t]},measureViewportBox:function(e,t){var r=t.transformPagePoint;return $R(e,r)},resetTransform:function(e,t,r){var n=r.transformTemplate;t.style.transform=n?n({},""):"none",e.scheduleRender()},restoreTransform:function(e,t){e.style.transform=t.style.transform},removeValueFromRenderState:function(e,t){var r=t.vars,n=t.style;delete r[e],delete n[e]},makeTargetAnimatable:function(e,t,r,n){var i=r.transformValues;n===void 0&&(n=!0);var o=t.transition,s=t.transitionEnd,l=Fr(t,["transition","transitionEnd"]),c=dK(l,o||{},e);if(i&&(s&&(s=i(s)),l&&(l=i(l)),c&&(c=i(c))),n){fK(e,l,c);var f=iX(e,l,c,s);s=f.transitionEnd,l=f.target}return ve({transition:o,transitionEnd:s},l)},scrapeMotionValuesFromProps:xm,build:function(e,t,r,n,i){e.isVisible!==void 0&&(t.style.visibility=e.isVisible?"visible":"hidden"),ym(t,r,n,i.transformTemplate)},render:Lw},oX=cE(iM);var aX=cE(ve(ve({},iM),{getBaseTarget:function(e,t){return e[t]},readValueFromInstance:function(e,t){var r;return Ds(t)?((r=Om(t))===null||r===void 0?void 0:r.default)||0:(t=Pw.has(t)?t:Dw(t),e.getAttribute(t))},scrapeMotionValuesFromProps:Mw,build:function(e,t,r,n,i){Am(t,r,n,i.transformTemplate)},render:Rw}));var sX=function(e,t){return fm(e)?aX(t,{enableHardwareAcceleration:!1}):oX(t,{enableHardwareAcceleration:!0})};var jm=fe(Ee(),1);function lX(e,t){return t.max===t.min?0:e/(t.max-t.min)*100}var qm={correct:function(e,t){if(!t.target)return e;if(typeof e=="string")if(et.test(e))e=parseFloat(e);else return e;var r=lX(e,t.target.x),n=lX(e,t.target.y);return"".concat(r,"% ").concat(n,"%")}};var uX="_$css",cX={correct:function(e,t){var r=t.treeScale,n=t.projectionDelta,i=e,o=e.includes("var("),s=[];o&&(e=e.replace(nM,function(T){return s.push(T),uX}));var l=_n.parse(e);if(l.length>5)return i;var c=_n.createTransformer(e),f=typeof l[0]!="number"?1:0,m=n.x.scale*r.x,v=n.y.scale*r.y;l[0+f]/=m,l[1+f]/=v;var g=Dt(m,v,.5);typeof l[2+f]=="number"&&(l[2+f]/=g),typeof l[3+f]=="number"&&(l[3+f]/=g);var y=c(l);if(o){var w=0;y=y.replace(uX,function(){var T=s[w];return w++,T})}return y}};var PAe=function(e){uw(t,e);function t(){return e!==null&&e.apply(this,arguments)||this}return t.prototype.componentDidMount=function(){var r=this,n=this.props,i=n.visualElement,o=n.layoutGroup,s=n.switchLayoutGroup,l=n.layoutId,c=i.projection;MW(RAe),c&&(o?.group&&o.group.add(c),s?.register&&l&&s.register(c),c.root.didUpdate(),c.addEventListener("animationComplete",function(){r.safeToRemove()}),c.setOptions(ve(ve({},c.options),{onExitComplete:function(){return r.safeToRemove()}}))),Bu.hasEverUpdated=!0},t.prototype.getSnapshotBeforeUpdate=function(r){var n=this,i=this.props,o=i.layoutDependency,s=i.visualElement,l=i.drag,c=i.isPresent,f=s.projection;return f&&(f.isPresent=c,l||r.layoutDependency!==o||o===void 0?f.willUpdate():this.safeToRemove(),r.isPresent!==c&&(c?f.promote():f.relegate()||In.postRender(function(){var m;!((m=f.getStack())===null||m===void 0)&&m.members.length||n.safeToRemove()}))),null},t.prototype.componentDidUpdate=function(){var r=this.props.visualElement.projection;r&&(r.root.didUpdate(),!r.currentAnimation&&r.isLead()&&this.safeToRemove())},t.prototype.componentWillUnmount=function(){var r=this.props,n=r.visualElement,i=r.layoutGroup,o=r.switchLayoutGroup,s=n.projection;s&&(s.scheduleCheckAfterUnmount(),i?.group&&i.group.remove(s),o?.deregister&&o.deregister(s))},t.prototype.safeToRemove=function(){var r=this.props.safeToRemove;r?.()},t.prototype.render=function(){return null},t}(jm.default.Component);function fX(e){var t=ht(eE(),2),r=t[0],n=t[1],i=(0,jm.useContext)(gw);return jm.default.createElement(PAe,ve({},e,{layoutGroup:i,switchLayoutGroup:(0,jm.useContext)(yw),isPresent:r,safeToRemove:n}))}var RAe={borderRadius:ve(ve({},qm),{applyTo:["borderTopLeftRadius","borderTopRightRadius","borderBottomLeftRadius","borderBottomRightRadius"]}),borderTopLeftRadius:qm,borderTopRightRadius:qm,borderBottomLeftRadius:qm,borderBottomRightRadius:qm,boxShadow:cX};var dX={measureLayout:fX};function pX(e,t,r){r===void 0&&(r={});var n=Mn(e)?e:_o(e);return Nm("",n,t,r),{stop:function(){return n.stop()},isAnimating:function(){return n.isAnimating()}}}var gX=["TopLeft","TopRight","BottomLeft","BottomRight"],MAe=gX.length,mX=function(e){return typeof e=="string"?parseFloat(e):e},hX=function(e){return typeof e=="number"||et.test(e)};function yX(e,t,r,n,i,o){var s,l,c,f;i?(e.opacity=Dt(0,(s=r.opacity)!==null&&s!==void 0?s:1,IAe(n)),e.opacityExit=Dt((l=t.opacity)!==null&&l!==void 0?l:1,0,FAe(n))):o&&(e.opacity=Dt((c=t.opacity)!==null&&c!==void 0?c:1,(f=r.opacity)!==null&&f!==void 0?f:1,n));for(var m=0;mt?1:r(Cl(e,t,n))}}function AX(e,t){e.min=t.min,e.max=t.max}function ta(e,t){AX(e.x,t.x),AX(e.y,t.y)}function xX(e,t,r,n,i){return e-=t,e=by(e,1/r,n),i!==void 0&&(e=by(e,1/i,n)),e}function qAe(e,t,r,n,i,o,s){if(t===void 0&&(t=0),r===void 0&&(r=1),n===void 0&&(n=.5),o===void 0&&(o=e),s===void 0&&(s=e),yi.test(t)){t=parseFloat(t);var l=Dt(s.min,s.max,t/100);t=l-s.min}if(typeof t=="number"){var c=Dt(o.min,o.max,n);e===o&&(c-=t),e.min=xX(e.min,t,r,c,i),e.max=xX(e.max,t,r,c,i)}}function wX(e,t,r,n,i){var o=ht(r,3),s=o[0],l=o[1],c=o[2];qAe(e,t[s],t[l],t[c],t.scale,n,i)}var jAe=["x","scaleX","originX"],VAe=["y","scaleY","originY"];function oM(e,t,r,n){wX(e.x,t,jAe,r?.x,n?.x),wX(e.y,t,VAe,r?.y,n?.y)}function EX(e){return e.translate===0&&e.scale===1}function aM(e){return EX(e.x)&&EX(e.y)}function sM(e,t){return e.x.min===t.x.min&&e.x.max===t.x.max&&e.y.min===t.y.min&&e.y.max===t.y.max}var TX=function(){function e(){this.members=[]}return e.prototype.add=function(t){Dm(this.members,t),t.scheduleRender()},e.prototype.remove=function(t){if(Lm(this.members,t),t===this.prevLead&&(this.prevLead=void 0),t===this.lead){var r=this.members[this.members.length-1];r&&this.promote(r)}},e.prototype.relegate=function(t){var r=this.members.findIndex(function(s){return t===s});if(r===0)return!1;for(var n,i=r;i>=0;i--){var o=this.members[i];if(o.isPresent!==!1){n=o;break}}return n?(this.promote(n),!0):!1},e.prototype.promote=function(t,r){var n,i=this.lead;if(t!==i&&(this.prevLead=i,this.lead=t,t.show(),i)){i.instance&&i.scheduleRender(),t.scheduleRender(),t.resumeFrom=i,r&&(t.resumeFrom.preserveOpacity=!0),i.snapshot&&(t.snapshot=i.snapshot,t.snapshot.latestValues=i.animationValues||i.latestValues,t.snapshot.isShared=!0),!((n=t.root)===null||n===void 0)&&n.isUpdating&&(t.isLayoutDirty=!0);var o=t.options.crossfade;o===!1&&i.hide()}},e.prototype.exitAnimationComplete=function(){this.members.forEach(function(t){var r,n,i,o,s;(n=(r=t.options).onExitComplete)===null||n===void 0||n.call(r),(s=(i=t.resumingFrom)===null||i===void 0?void 0:(o=i.options).onExitComplete)===null||s===void 0||s.call(o)})},e.prototype.scheduleRender=function(){this.members.forEach(function(t){t.instance&&t.scheduleRender(!1)})},e.prototype.removeLeadSnapshot=function(){this.lead&&this.lead.snapshot&&(this.lead.snapshot=void 0)},e}();var UAe="translate3d(0px, 0px, 0) scale(1, 1) scale(1, 1)";function lM(e,t,r){var n=e.x.translate/t.x,i=e.y.translate/t.y,o="translate3d(".concat(n,"px, ").concat(i,"px, 0) ");if(o+="scale(".concat(1/t.x,", ").concat(1/t.y,") "),r){var s=r.rotate,l=r.rotateX,c=r.rotateY;s&&(o+="rotate(".concat(s,"deg) ")),l&&(o+="rotateX(".concat(l,"deg) ")),c&&(o+="rotateY(".concat(c,"deg) "))}var f=e.x.scale*t.x,m=e.y.scale*t.y;return o+="scale(".concat(f,", ").concat(m,")"),o===UAe?"none":o}var CX=function(e,t){return e.depth-t.depth};var SX=function(){function e(){this.children=[],this.isDirty=!1}return e.prototype.add=function(t){Dm(this.children,t),this.isDirty=!0},e.prototype.remove=function(t){Lm(this.children,t),this.isDirty=!0},e.prototype.forEach=function(t){this.isDirty&&this.children.sort(CX),this.isDirty=!1,this.children.forEach(t)},e}();var kX=1e3;function dE(e){var t=e.attachResizeListener,r=e.defaultParent,n=e.measureScroll,i=e.checkIsScrollRoot,o=e.resetTransform;return function(){function s(l,c,f){var m=this;c===void 0&&(c={}),f===void 0&&(f=r?.()),this.children=new Set,this.options={},this.isTreeAnimating=!1,this.isAnimationBlocked=!1,this.isLayoutDirty=!1,this.updateManuallyBlocked=!1,this.updateBlockedByResize=!1,this.isUpdating=!1,this.isSVG=!1,this.needsReset=!1,this.shouldResetTransform=!1,this.treeScale={x:1,y:1},this.eventHandlers=new Map,this.potentialNodes=new Map,this.checkUpdateFailed=function(){m.isUpdating&&(m.isUpdating=!1,m.clearAllSnapshots())},this.updateProjection=function(){m.nodes.forEach(WAe),m.nodes.forEach(YAe)},this.hasProjected=!1,this.isVisible=!0,this.animationProgress=0,this.sharedNodes=new Map,this.id=l,this.latestValues=c,this.root=f?f.root||f:this,this.path=f?Jn(Jn([],ht(f.path),!1),[f],!1):[],this.parent=f,this.depth=f?f.depth+1:0,l&&this.root.registerPotentialNode(l,this);for(var v=0;v=0;n--)if(e.path[n].instance){r=e.path[n];break}var i=r&&r!==e.root?r.instance:document,o=i.querySelector('[data-projection-id="'.concat(t,'"]'));o&&e.mount(o,!0)}function LX(e){e.min=Math.round(e.min),e.max=Math.round(e.max)}function PX(e){LX(e.x),LX(e.y)}var RX=dE({attachResizeListener:function(e,t){return If(e,"resize",t)},measureScroll:function(){return{x:document.documentElement.scrollLeft||document.body.scrollLeft,y:document.documentElement.scrollTop||document.body.scrollTop}},checkIsScrollRoot:function(){return!0}});var uM={current:void 0},MX=dE({measureScroll:function(e){return{x:e.scrollLeft,y:e.scrollTop}},defaultParent:function(){if(!uM.current){var e=new RX(0,{});e.mount(window),e.setOptions({layoutScroll:!0}),uM.current=e}return uM.current},resetTransform:function(e,t){e.style.transform=t??"none"},checkIsScrollRoot:function(e){return window.getComputedStyle(e).position==="fixed"}});var e1e=ve(ve(ve(ve({},vK),XY),WK),dX),pE=PW(function(e,t){return lY(e,t,e1e,sX,MX)});var cM=fe(Ee(),1),Vm=fe(Ee(),1);var IX=fe(Ee(),1),mE=(0,IX.createContext)(null);function FX(e,t,r,n){if(!n)return e;var i=e.findIndex(function(m){return m.value===t});if(i===-1)return e;var o=n>0?1:-1,s=e[i+o];if(!s)return e;var l=e[i],c=s.layout,f=Dt(c.min,c.max,.5);return o===1&&l.layout.max+r>f||o===-1&&l.layout.min+r{let{__scopeTooltip:t,delayDuration:r=l1e,skipDelayDuration:n=300,disableHoverableContent:i=!1,children:o}=e,[s,l]=(0,_e.useState)(!0),c=(0,_e.useRef)(!1),f=(0,_e.useRef)(0);return(0,_e.useEffect)(()=>{let m=f.current;return()=>window.clearTimeout(m)},[]),(0,_e.createElement)(u1e,{scope:t,isOpenDelayed:s,delayDuration:r,onOpen:(0,_e.useCallback)(()=>{window.clearTimeout(f.current),l(!1)},[]),onClose:(0,_e.useCallback)(()=>{window.clearTimeout(f.current),f.current=window.setTimeout(()=>l(!0),n)},[n]),isPointerInTransitRef:c,onPointerInTransitChange:(0,_e.useCallback)(m=>{c.current=m},[]),disableHoverableContent:i},o)},mM="Tooltip",[f1e,xy]=gE(mM),d1e=e=>{let{__scopeTooltip:t,children:r,open:n,defaultOpen:i=!1,onOpenChange:o,disableHoverableContent:s,delayDuration:l}=e,c=pM(mM,e.__scopeTooltip),f=dM(t),[m,v]=(0,_e.useState)(null),g=Ea(),y=(0,_e.useRef)(0),w=s??c.disableHoverableContent,T=l??c.delayDuration,S=(0,_e.useRef)(!1),[A=!1,b]=hu({prop:n,defaultProp:i,onChange:D=>{D?(c.onOpen(),document.dispatchEvent(new CustomEvent(fM))):c.onClose(),o?.(D)}}),C=(0,_e.useMemo)(()=>A?S.current?"delayed-open":"instant-open":"closed",[A]),x=(0,_e.useCallback)(()=>{window.clearTimeout(y.current),S.current=!1,b(!0)},[b]),k=(0,_e.useCallback)(()=>{window.clearTimeout(y.current),b(!1)},[b]),P=(0,_e.useCallback)(()=>{window.clearTimeout(y.current),y.current=window.setTimeout(()=>{S.current=!0,b(!0)},T)},[T,b]);return(0,_e.useEffect)(()=>()=>window.clearTimeout(y.current),[]),(0,_e.createElement)(Qx,f,(0,_e.createElement)(f1e,{scope:t,contentId:g,open:A,stateAttribute:C,trigger:m,onTriggerChange:v,onTriggerEnter:(0,_e.useCallback)(()=>{c.isOpenDelayed?P():x()},[c.isOpenDelayed,P,x]),onTriggerLeave:(0,_e.useCallback)(()=>{w?k():window.clearTimeout(y.current)},[k,w]),onOpen:x,onClose:k,disableHoverableContent:w},r))},WX="TooltipTrigger",p1e=(0,_e.forwardRef)((e,t)=>{let{__scopeTooltip:r,...n}=e,i=xy(WX,r),o=pM(WX,r),s=dM(r),l=(0,_e.useRef)(null),c=sr(t,l,i.onTriggerChange),f=(0,_e.useRef)(!1),m=(0,_e.useRef)(!1),v=(0,_e.useCallback)(()=>f.current=!1,[]);return(0,_e.useEffect)(()=>()=>document.removeEventListener("pointerup",v),[v]),(0,_e.createElement)(Wx,Ze({asChild:!0},s),(0,_e.createElement)(cr.button,Ze({"aria-describedby":i.open?i.contentId:void 0,"data-state":i.stateAttribute},n,{ref:c,onPointerMove:xt(e.onPointerMove,g=>{g.pointerType!=="touch"&&!m.current&&!o.isPointerInTransitRef.current&&(i.onTriggerEnter(),m.current=!0)}),onPointerLeave:xt(e.onPointerLeave,()=>{i.onTriggerLeave(),m.current=!1}),onPointerDown:xt(e.onPointerDown,()=>{f.current=!0,document.addEventListener("pointerup",v,{once:!0})}),onFocus:xt(e.onFocus,()=>{f.current||i.onOpen()}),onBlur:xt(e.onBlur,i.onClose),onClick:xt(e.onClick,i.onClose)})))}),YX="TooltipPortal",[m1e,h1e]=gE(YX,{forceMount:void 0}),v1e=e=>{let{__scopeTooltip:t,forceMount:r,children:n,container:i}=e,o=xy(YX,t);return(0,_e.createElement)(m1e,{scope:t,forceMount:r},(0,_e.createElement)(Pa,{present:r||o.open},(0,_e.createElement)($p,{asChild:!0,container:i},n)))},Ay="TooltipContent",g1e=(0,_e.forwardRef)((e,t)=>{let r=h1e(Ay,e.__scopeTooltip),{forceMount:n=r.forceMount,side:i="top",...o}=e,s=xy(Ay,e.__scopeTooltip);return(0,_e.createElement)(Pa,{present:n||s.open},s.disableHoverableContent?(0,_e.createElement)(KX,Ze({side:i},o,{ref:t})):(0,_e.createElement)(y1e,Ze({side:i},o,{ref:t})))}),y1e=(0,_e.forwardRef)((e,t)=>{let r=xy(Ay,e.__scopeTooltip),n=pM(Ay,e.__scopeTooltip),i=(0,_e.useRef)(null),o=sr(t,i),[s,l]=(0,_e.useState)(null),{trigger:c,onClose:f}=r,m=i.current,{onPointerInTransitChange:v}=n,g=(0,_e.useCallback)(()=>{l(null),v(!1)},[v]),y=(0,_e.useCallback)((w,T)=>{let S=w.currentTarget,A={x:w.clientX,y:w.clientY},b=A1e(A,S.getBoundingClientRect()),C=x1e(A,b),x=w1e(T.getBoundingClientRect()),k=T1e([...C,...x]);l(k),v(!0)},[v]);return(0,_e.useEffect)(()=>()=>g(),[g]),(0,_e.useEffect)(()=>{if(c&&m){let w=S=>y(S,m),T=S=>y(S,c);return c.addEventListener("pointerleave",w),m.addEventListener("pointerleave",T),()=>{c.removeEventListener("pointerleave",w),m.removeEventListener("pointerleave",T)}}},[c,m,y,g]),(0,_e.useEffect)(()=>{if(s){let w=T=>{let S=T.target,A={x:T.clientX,y:T.clientY},b=c?.contains(S)||m?.contains(S),C=!E1e(A,s);b?g():C&&(g(),f())};return document.addEventListener("pointermove",w),()=>document.removeEventListener("pointermove",w)}},[c,m,s,f,g]),(0,_e.createElement)(KX,Ze({},e,{ref:o}))}),[b1e,iVe]=gE(mM,{isInside:!1}),KX=(0,_e.forwardRef)((e,t)=>{let{__scopeTooltip:r,children:n,"aria-label":i,onEscapeKeyDown:o,onPointerDownOutside:s,...l}=e,c=xy(Ay,r),f=dM(r),{onClose:m}=c;return(0,_e.useEffect)(()=>(document.addEventListener(fM,m),()=>document.removeEventListener(fM,m)),[m]),(0,_e.useEffect)(()=>{if(c.trigger){let v=g=>{let y=g.target;y!=null&&y.contains(c.trigger)&&m()};return window.addEventListener("scroll",v,{capture:!0}),()=>window.removeEventListener("scroll",v,{capture:!0})}},[c.trigger,m]),(0,_e.createElement)(_p,{asChild:!0,disableOutsidePointerEvents:!1,onEscapeKeyDown:o,onPointerDownOutside:s,onFocusOutside:v=>v.preventDefault(),onDismiss:m},(0,_e.createElement)(Yx,Ze({"data-state":c.stateAttribute},f,l,{ref:t,style:{...l.style,"--radix-tooltip-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-tooltip-content-available-width":"var(--radix-popper-available-width)","--radix-tooltip-content-available-height":"var(--radix-popper-available-height)","--radix-tooltip-trigger-width":"var(--radix-popper-anchor-width)","--radix-tooltip-trigger-height":"var(--radix-popper-anchor-height)"}}),(0,_e.createElement)(XL,null,n),(0,_e.createElement)(b1e,{scope:r,isInside:!0},(0,_e.createElement)(Cx,{id:c.contentId,role:"tooltip"},i||n))))});function A1e(e,t){let r=Math.abs(t.top-e.y),n=Math.abs(t.bottom-e.y),i=Math.abs(t.right-e.x),o=Math.abs(t.left-e.x);switch(Math.min(r,n,i,o)){case o:return"left";case i:return"right";case r:return"top";case n:return"bottom";default:throw new Error("unreachable")}}function x1e(e,t,r=5){let n=[];switch(t){case"top":n.push({x:e.x-r,y:e.y+r},{x:e.x+r,y:e.y+r});break;case"bottom":n.push({x:e.x-r,y:e.y-r},{x:e.x+r,y:e.y-r});break;case"left":n.push({x:e.x+r,y:e.y-r},{x:e.x+r,y:e.y+r});break;case"right":n.push({x:e.x-r,y:e.y-r},{x:e.x-r,y:e.y+r});break}return n}function w1e(e){let{top:t,right:r,bottom:n,left:i}=e;return[{x:i,y:t},{x:r,y:t},{x:r,y:n},{x:i,y:n}]}function E1e(e,t){let{x:r,y:n}=e,i=!1;for(let o=0,s=t.length-1;on!=m>n&&r<(f-l)*(n-c)/(m-c)+l&&(i=!i)}return i}function T1e(e){let t=e.slice();return t.sort((r,n)=>r.xn.x?1:r.yn.y?1:0),C1e(t)}function C1e(e){if(e.length<=1)return e.slice();let t=[];for(let n=0;n=2;){let o=t[t.length-1],s=t[t.length-2];if((o.x-s.x)*(i.y-s.y)>=(o.y-s.y)*(i.x-s.x))t.pop();else break}t.push(i)}t.pop();let r=[];for(let n=e.length-1;n>=0;n--){let i=e[n];for(;r.length>=2;){let o=r[r.length-1],s=r[r.length-2];if((o.x-s.x)*(i.y-s.y)>=(o.y-s.y)*(i.x-s.x))r.pop();else break}r.push(i)}return r.pop(),t.length===1&&r.length===1&&t[0].x===r[0].x&&t[0].y===r[0].y?t:t.concat(r)}var XX=c1e,ZX=d1e,JX=p1e,_X=v1e,$X=g1e;var yt=fe(Ee(),1);var tZ=fe(Ee(),1);var yE=fe(Ee(),1);var k1e=Object.defineProperty,O1e=(e,t,r)=>t in e?k1e(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,hM=(e,t,r)=>(O1e(e,typeof t!="symbol"?t+"":t,r),r),vM=class{constructor(){hM(this,"current",this.detect()),hM(this,"handoffState","pending"),hM(this,"currentId",0)}set(t){this.current!==t&&(this.handoffState="pending",this.currentId=0,this.current=t)}reset(){this.set(this.detect())}nextId(){return++this.currentId}get isServer(){return this.current==="server"}get isClient(){return this.current==="client"}detect(){return typeof window>"u"||typeof document>"u"?"server":"client"}handoff(){this.handoffState==="pending"&&(this.handoffState="complete")}get isHandoffComplete(){return this.handoffState==="complete"}},Va=new vM;var Tn=(e,t)=>{Va.isServer?(0,yE.useEffect)(e,t):(0,yE.useLayoutEffect)(e,t)};var eZ=fe(Ee(),1);function Is(e){let t=(0,eZ.useRef)(e);return Tn(()=>{t.current=e},[e]),t}function bE(e,t){let[r,n]=(0,tZ.useState)(e),i=Is(e);return Tn(()=>n(i.current),[i,n,...t]),r}var AE=fe(Ee(),1);function rZ(e){typeof queueMicrotask=="function"?queueMicrotask(e):Promise.resolve().then(e).catch(t=>setTimeout(()=>{throw t}))}function Bm(){let e=[],t={addEventListener(r,n,i,o){return r.addEventListener(n,i,o),t.add(()=>r.removeEventListener(n,i,o))},requestAnimationFrame(...r){let n=requestAnimationFrame(...r);return t.add(()=>cancelAnimationFrame(n))},nextFrame(...r){return t.requestAnimationFrame(()=>t.requestAnimationFrame(...r))},setTimeout(...r){let n=setTimeout(...r);return t.add(()=>clearTimeout(n))},microTask(...r){let n={current:!0};return rZ(()=>{n.current&&r[0]()}),t.add(()=>{n.current=!1})},style(r,n,i){let o=r.style.getPropertyValue(n);return Object.assign(r.style,{[n]:i}),this.add(()=>{Object.assign(r.style,{[n]:o})})},group(r){let n=Bm();return r(n),this.add(()=>n.dispose())},add(r){return e.push(r),()=>{let n=e.indexOf(r);if(n>=0)for(let i of e.splice(n,1))i()}},dispose(){for(let r of e.splice(0))r()}};return t}function xE(){let[e]=(0,AE.useState)(Bm);return(0,AE.useEffect)(()=>()=>e.dispose(),[e]),e}var nZ=fe(Ee(),1);var Qt=function(e){let t=Is(e);return nZ.default.useCallback((...r)=>t.current(...r),[t])};var gM=fe(Ee(),1);var zf=fe(Ee(),1);function N1e(){let e=typeof document>"u";return"useSyncExternalStore"in zf?(t=>t.useSyncExternalStore)(zf)(()=>()=>{},()=>!1,()=>!e):!1}function iZ(){let e=N1e(),[t,r]=zf.useState(Va.isHandoffComplete);return t&&Va.isHandoffComplete===!1&&r(!1),zf.useEffect(()=>{t!==!0&&r(!0)},[t]),zf.useEffect(()=>Va.handoff(),[]),e?!1:t}var oZ,Gm=(oZ=gM.default.useId)!=null?oZ:function(){let e=iZ(),[t,r]=gM.default.useState(e?()=>Va.nextId():null);return Tn(()=>{t===null&&r(Va.nextId())},[t]),t!=null?""+t:void 0};var Ey=fe(Ee(),1);function ra(e,t,...r){if(e in t){let i=t[e];return typeof i=="function"?i(...r):i}let n=new Error(`Tried to handle "${e}" but there is no handler defined. Only defined handlers are: ${Object.keys(t).map(i=>`"${i}"`).join(", ")}.`);throw Error.captureStackTrace&&Error.captureStackTrace(n,ra),n}function zm(e){return Va.isServer?null:e instanceof Node?e.ownerDocument:e!=null&&e.hasOwnProperty("current")&&e.current instanceof Node?e.current.ownerDocument:document}var aZ=["[contentEditable=true]","[tabindex]","a[href]","area[href]","button:not([disabled])","iframe","input:not([disabled])","select:not([disabled])","textarea:not([disabled])"].map(e=>`${e}:not([tabindex='-1'])`).join(","),D1e=(e=>(e[e.First=1]="First",e[e.Previous=2]="Previous",e[e.Next=4]="Next",e[e.Last=8]="Last",e[e.WrapAround=16]="WrapAround",e[e.NoScroll=32]="NoScroll",e))(D1e||{}),L1e=(e=>(e[e.Error=0]="Error",e[e.Overflow=1]="Overflow",e[e.Success=2]="Success",e[e.Underflow=3]="Underflow",e))(L1e||{}),P1e=(e=>(e[e.Previous=-1]="Previous",e[e.Next=1]="Next",e))(P1e||{});var yM=(e=>(e[e.Strict=0]="Strict",e[e.Loose=1]="Loose",e))(yM||{});function sZ(e,t=0){var r;return e===((r=zm(e))==null?void 0:r.body)?!1:ra(t,{0(){return e.matches(aZ)},1(){let n=e;for(;n!==null;){if(n.matches(aZ))return!0;n=n.parentElement}return!1}})}var R1e=(e=>(e[e.Keyboard=0]="Keyboard",e[e.Mouse=1]="Mouse",e))(R1e||{});typeof window<"u"&&typeof document<"u"&&(document.addEventListener("keydown",e=>{e.metaKey||e.altKey||e.ctrlKey||(document.documentElement.dataset.headlessuiFocusVisible="")},!0),document.addEventListener("click",e=>{e.detail===1?delete document.documentElement.dataset.headlessuiFocusVisible:e.detail===0&&(document.documentElement.dataset.headlessuiFocusVisible="")},!0));var LVe=["textarea","input"].join(",");function lZ(e,t=r=>r){return e.slice().sort((r,n)=>{let i=t(r),o=t(n);if(i===null||o===null)return 0;let s=i.compareDocumentPosition(o);return s&Node.DOCUMENT_POSITION_FOLLOWING?-1:s&Node.DOCUMENT_POSITION_PRECEDING?1:0})}var uZ=fe(Ee(),1);function wy(e,t,r){let n=Is(t);(0,uZ.useEffect)(()=>{function i(o){n.current(o)}return document.addEventListener(e,i,r),()=>document.removeEventListener(e,i,r)},[e,r])}var cZ=fe(Ee(),1);function fZ(e,t,r){let n=Is(t);(0,cZ.useEffect)(()=>{function i(o){n.current(o)}return window.addEventListener(e,i,r),()=>window.removeEventListener(e,i,r)},[e,r])}function dZ(e,t,r=!0){let n=(0,Ey.useRef)(!1);(0,Ey.useEffect)(()=>{requestAnimationFrame(()=>{n.current=r})},[r]);function i(s,l){if(!n.current||s.defaultPrevented)return;let c=l(s);if(c===null||!c.getRootNode().contains(c)||!c.isConnected)return;let f=function m(v){return typeof v=="function"?m(v()):Array.isArray(v)||v instanceof Set?v:[v]}(e);for(let m of f){if(m===null)continue;let v=m instanceof HTMLElement?m:m.current;if(v!=null&&v.contains(c)||s.composed&&s.composedPath().includes(v))return}return!sZ(c,yM.Loose)&&c.tabIndex!==-1&&s.preventDefault(),t(s,c)}let o=(0,Ey.useRef)(null);wy("pointerdown",s=>{var l,c;n.current&&(o.current=((c=(l=s.composedPath)==null?void 0:l.call(s))==null?void 0:c[0])||s.target)},!0),wy("mousedown",s=>{var l,c;n.current&&(o.current=((c=(l=s.composedPath)==null?void 0:l.call(s))==null?void 0:c[0])||s.target)},!0),wy("click",s=>{o.current&&(i(s,()=>o.current),o.current=null)},!0),wy("touchend",s=>i(s,()=>s.target instanceof HTMLElement?s.target:null),!0),fZ("blur",s=>i(s,()=>window.document.activeElement instanceof HTMLIFrameElement?window.document.activeElement:null),!0)}var mZ=fe(Ee(),1);function pZ(e){var t;if(e.type)return e.type;let r=(t=e.as)!=null?t:"button";if(typeof r=="string"&&r.toLowerCase()==="button")return"button"}function hZ(e,t){let[r,n]=(0,mZ.useState)(()=>pZ(e));return Tn(()=>{n(pZ(e))},[e.type,e.as]),Tn(()=>{r||t.current&&t.current instanceof HTMLButtonElement&&!t.current.hasAttribute("type")&&n("button")},[r,t]),r}var wE=fe(Ee(),1);var M1e=Symbol();function Hm(...e){let t=(0,wE.useRef)(e);(0,wE.useEffect)(()=>{t.current=e},[e]);let r=Qt(n=>{for(let i of t.current)i!=null&&(typeof i=="function"?i(n):i.current=n)});return e.every(n=>n==null||n?.[M1e])?void 0:r}var Ty=fe(Ee(),1);function vZ({container:e,accept:t,walk:r,enabled:n=!0}){let i=(0,Ty.useRef)(t),o=(0,Ty.useRef)(r);(0,Ty.useEffect)(()=>{i.current=t,o.current=r},[t,r]),Tn(()=>{if(!e||!n)return;let s=zm(e);if(!s)return;let l=i.current,c=o.current,f=Object.assign(v=>l(v),{acceptNode:l}),m=s.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,f,!1);for(;m.nextNode();)c(m.currentNode)},[e,n,i,o])}function I1e(e){throw new Error("Unexpected object: "+e)}var qn=(e=>(e[e.First=0]="First",e[e.Previous=1]="Previous",e[e.Next=2]="Next",e[e.Last=3]="Last",e[e.Specific=4]="Specific",e[e.Nothing=5]="Nothing",e))(qn||{});function gZ(e,t){let r=t.resolveItems();if(r.length<=0)return null;let n=t.resolveActiveIndex(),i=n??-1,o=(()=>{switch(e.focus){case 0:return r.findIndex(s=>!t.resolveDisabled(s));case 1:{let s=r.slice().reverse().findIndex((l,c,f)=>i!==-1&&f.length-c-1>=i?!1:!t.resolveDisabled(l));return s===-1?s:r.length-1-s}case 2:return r.findIndex((s,l)=>l<=i?!1:!t.resolveDisabled(s));case 3:{let s=r.slice().reverse().findIndex(l=>!t.resolveDisabled(l));return s===-1?s:r.length-1-s}case 4:return r.findIndex(s=>t.resolveId(s)===e.id);case 5:return null;default:I1e(e)}})();return o===-1?n:o}var na=fe(Ee(),1);function bM(...e){return Array.from(new Set(e.flatMap(t=>typeof t=="string"?t.split(" "):[]))).filter(Boolean).join(" ")}var CE=(e=>(e[e.None=0]="None",e[e.RenderStrategy=1]="RenderStrategy",e[e.Static=2]="Static",e))(CE||{}),F1e=(e=>(e[e.Unmount=0]="Unmount",e[e.Hidden=1]="Hidden",e))(F1e||{});function kl({ourProps:e,theirProps:t,slot:r,defaultTag:n,features:i,visible:o=!0,name:s}){let l=yZ(t,e);if(o)return EE(l,r,n,s);let c=i??0;if(c&2){let{static:f=!1,...m}=l;if(f)return EE(m,r,n,s)}if(c&1){let{unmount:f=!0,...m}=l;return ra(f?0:1,{0(){return null},1(){return EE({...m,hidden:!0,style:{display:"none"}},r,n,s)}})}return EE(l,r,n,s)}function EE(e,t={},r,n){let{as:i=r,children:o,refName:s="ref",...l}=AM(e,["unmount","static"]),c=e.ref!==void 0?{[s]:e.ref}:{},f=typeof o=="function"?o(t):o;"className"in l&&l.className&&typeof l.className=="function"&&(l.className=l.className(t));let m={};if(t){let v=!1,g=[];for(let[y,w]of Object.entries(t))typeof w=="boolean"&&(v=!0),w===!0&&g.push(y);v&&(m["data-headlessui-state"]=g.join(" "))}if(i===na.Fragment&&Object.keys(TE(l)).length>0){if(!(0,na.isValidElement)(f)||Array.isArray(f)&&f.length>1)throw new Error(['Passing props on "Fragment"!',"",`The current component <${n} /> is rendering a "Fragment".`,"However we need to passthrough the following props:",Object.keys(l).map(w=>` - ${w}`).join(` -`),"","You can apply a few solutions:",['Add an `as="..."` prop, to ensure that we render an actual element instead of a "Fragment".',"Render a single element as the child so that we can forward the props onto that element."].map(w=>` - ${w}`).join(` +`); + },phe=0,tm=[];function qB(e){ + var t=br.useRef([]),r=br.useRef([0,0]),n=br.useRef(),i=br.useState(phe++)[0],o=br.useState(function(){ + return qg(); + })[0],s=br.useRef(e);br.useEffect(function(){ + s.current=e; + },[e]),br.useEffect(function(){ + if(e.inert){ + document.body.classList.add('block-interactivity-'.concat(i));var T=xB([e.lockRef.current],(e.shards||[]).map(FB),!0).filter(Boolean);return T.forEach(function(S){ + return S.classList.add('allow-interactivity-'.concat(i)); + }),function(){ + document.body.classList.remove('block-interactivity-'.concat(i)),T.forEach(function(S){ + return S.classList.remove('allow-interactivity-'.concat(i)); + }); + }; + } + },[e.inert,e.lockRef.current,e.shards]);var l=br.useCallback(function(T,S){ + if('touches'in T&&T.touches.length===2)return!s.current.allowPinchZoom;var A=bx(T),b=r.current,C='deltaX'in T?T.deltaX:b[0]-A[0],x='deltaY'in T?T.deltaY:b[1]-A[1],k,P=T.target,D=Math.abs(C)>Math.abs(x)?'h':'v';if('touches'in T&&D==='h'&&P.type==='range')return!1;var N=dP(D,P);if(!N)return!0;if(N?k=D:(k=D==='v'?'h':'v',N=dP(D,P)),!N)return!1;if(!n.current&&'changedTouches'in T&&(C||x)&&(n.current=k),!k)return!0;var I=n.current||k;return MB(I,S,T,I==='h'?C:x,!0); + },[]),c=br.useCallback(function(T){ + var S=T;if(!(!tm.length||tm[tm.length-1]!==o)){ + var A='deltaY'in S?IB(S):bx(S),b=t.current.filter(function(k){ + return k.name===S.type&&k.target===S.target&&fhe(k.delta,A); + })[0];if(b&&b.should){ + S.cancelable&&S.preventDefault();return; + }if(!b){ + var C=(s.current.shards||[]).map(FB).filter(Boolean).filter(function(k){ + return k.contains(S.target); + }),x=C.length>0?l(S,C[0]):!s.current.noIsolation;x&&S.cancelable&&S.preventDefault(); + } + } + },[]),f=br.useCallback(function(T,S,A,b){ + var C={name:T,delta:S,target:A,should:b};t.current.push(C),setTimeout(function(){ + t.current=t.current.filter(function(x){ + return x!==C; + }); + },1); + },[]),m=br.useCallback(function(T){ + r.current=bx(T),n.current=void 0; + },[]),v=br.useCallback(function(T){ + f(T.type,IB(T),T.target,l(T,e.lockRef.current)); + },[]),g=br.useCallback(function(T){ + f(T.type,bx(T),T.target,l(T,e.lockRef.current)); + },[]);br.useEffect(function(){ + return tm.push(o),e.setCallbacks({onScrollCapture:v,onWheelCapture:v,onTouchMoveCapture:g}),document.addEventListener('wheel',c,gf),document.addEventListener('touchmove',c,gf),document.addEventListener('touchstart',m,gf),function(){ + tm=tm.filter(function(T){ + return T!==o; + }),document.removeEventListener('wheel',c,gf),document.removeEventListener('touchmove',c,gf),document.removeEventListener('touchstart',m,gf); + }; + },[]);var y=e.removeScrollBar,w=e.inert;return br.createElement(br.Fragment,null,w?br.createElement(o,{styles:dhe(i)}):null,y?br.createElement(cP,{gapMode:'margin'}):null); +}var jB=iP(gx,qB);var VB=Ax.forwardRef(function(e,t){ + return Ax.createElement(Fg,As({},e,{ref:t,sideCar:jB})); +});VB.classNames=Fg.classNames;var Vg=VB;var mhe=function(e){ + if(typeof document>'u')return null;var t=Array.isArray(e)?e[0]:e;return t.ownerDocument.body; + },rm=new WeakMap,xx=new WeakMap,wx={},pP=0,UB=function(e){ + return e&&(e.host||UB(e.parentNode)); + },hhe=function(e,t){ + return t.map(function(r){ + if(e.contains(r))return r;var n=UB(r);return n&&e.contains(n)?n:(console.error('aria-hidden',r,'in not contained inside',e,'. Doing nothing'),null); + }).filter(function(r){ + return!!r; + }); + },vhe=function(e,t,r,n){ + var i=hhe(t,Array.isArray(e)?e:[e]);wx[r]||(wx[r]=new WeakMap);var o=wx[r],s=[],l=new Set,c=new Set(i),f=function(v){ + !v||l.has(v)||(l.add(v),f(v.parentNode)); + };i.forEach(f);var m=function(v){ + !v||c.has(v)||Array.prototype.forEach.call(v.children,function(g){ + if(l.has(g))m(g);else{ + var y=g.getAttribute(n),w=y!==null&&y!=='false',T=(rm.get(g)||0)+1,S=(o.get(g)||0)+1;rm.set(g,T),o.set(g,S),s.push(g),T===1&&w&&xx.set(g,!0),S===1&&g.setAttribute(r,'true'),w||g.setAttribute(n,'true'); + } + }); + };return m(t),l.clear(),pP++,function(){ + s.forEach(function(v){ + var g=rm.get(v)-1,y=o.get(v)-1;rm.set(v,g),o.set(v,y),g||(xx.has(v)||v.removeAttribute(n),xx.delete(v)),y||v.removeAttribute(r); + }),pP--,pP||(rm=new WeakMap,rm=new WeakMap,xx=new WeakMap,wx={}); + }; + },Ex=function(e,t,r){ + r===void 0&&(r='data-aria-hidden');var n=Array.from(Array.isArray(e)?e:[e]),i=t||mhe(e);return i?(n.push.apply(n,Array.from(i.querySelectorAll('[aria-live]'))),vhe(n,i,r,'aria-hidden')):function(){ + return null; + }; + };var BB='Dialog',[GB,F2e]=Hi(BB),[ghe,Ra]=GB(BB),yhe=e=>{ + let{__scopeDialog:t,children:r,open:n,defaultOpen:i,onOpenChange:o,modal:s=!0}=e,l=(0,pt.useRef)(null),c=(0,pt.useRef)(null),[f=!1,m]=hu({prop:n,defaultProp:i,onChange:o});return(0,pt.createElement)(ghe,{scope:t,triggerRef:l,contentRef:c,contentId:Ea(),titleId:Ea(),descriptionId:Ea(),open:f,onOpenChange:m,onOpenToggle:(0,pt.useCallback)(()=>m(v=>!v),[m]),modal:s},r); + },bhe='DialogTrigger',Ahe=(0,pt.forwardRef)((e,t)=>{ + let{__scopeDialog:r,...n}=e,i=Ra(bhe,r),o=sr(t,i.triggerRef);return(0,pt.createElement)(cr.button,Ze({type:'button','aria-haspopup':'dialog','aria-expanded':i.open,'aria-controls':i.contentId,'data-state':hP(i.open)},n,{ref:o,onClick:xt(e.onClick,i.onOpenToggle)})); + }),zB='DialogPortal',[xhe,HB]=GB(zB,{forceMount:void 0}),whe=e=>{ + let{__scopeDialog:t,forceMount:r,children:n,container:i}=e,o=Ra(zB,t);return(0,pt.createElement)(xhe,{scope:t,forceMount:r},pt.Children.map(n,s=>(0,pt.createElement)(Pa,{present:r||o.open},(0,pt.createElement)($p,{asChild:!0,container:i},s)))); + },mP='DialogOverlay',Ehe=(0,pt.forwardRef)((e,t)=>{ + let r=HB(mP,e.__scopeDialog),{forceMount:n=r.forceMount,...i}=e,o=Ra(mP,e.__scopeDialog);return o.modal?(0,pt.createElement)(Pa,{present:n||o.open},(0,pt.createElement)(The,Ze({},i,{ref:t}))):null; + }),The=(0,pt.forwardRef)((e,t)=>{ + let{__scopeDialog:r,...n}=e,i=Ra(mP,r);return(0,pt.createElement)(Vg,{as:bs,allowPinchZoom:!0,shards:[i.contentRef]},(0,pt.createElement)(cr.div,Ze({'data-state':hP(i.open)},n,{ref:t,style:{pointerEvents:'auto',...n.style}}))); + }),nm='DialogContent',Che=(0,pt.forwardRef)((e,t)=>{ + let r=HB(nm,e.__scopeDialog),{forceMount:n=r.forceMount,...i}=e,o=Ra(nm,e.__scopeDialog);return(0,pt.createElement)(Pa,{present:n||o.open},o.modal?(0,pt.createElement)(She,Ze({},i,{ref:t})):(0,pt.createElement)(khe,Ze({},i,{ref:t}))); + }),She=(0,pt.forwardRef)((e,t)=>{ + let r=Ra(nm,e.__scopeDialog),n=(0,pt.useRef)(null),i=sr(t,r.contentRef,n);return(0,pt.useEffect)(()=>{ + let o=n.current;if(o)return Ex(o); + },[]),(0,pt.createElement)(QB,Ze({},e,{ref:i,trapFocus:r.open,disableOutsidePointerEvents:!0,onCloseAutoFocus:xt(e.onCloseAutoFocus,o=>{ + var s;o.preventDefault(),(s=r.triggerRef.current)===null||s===void 0||s.focus(); + }),onPointerDownOutside:xt(e.onPointerDownOutside,o=>{ + let s=o.detail.originalEvent,l=s.button===0&&s.ctrlKey===!0;(s.button===2||l)&&o.preventDefault(); + }),onFocusOutside:xt(e.onFocusOutside,o=>o.preventDefault())})); + }),khe=(0,pt.forwardRef)((e,t)=>{ + let r=Ra(nm,e.__scopeDialog),n=(0,pt.useRef)(!1),i=(0,pt.useRef)(!1);return(0,pt.createElement)(QB,Ze({},e,{ref:t,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:o=>{ + var s;if((s=e.onCloseAutoFocus)===null||s===void 0||s.call(e,o),!o.defaultPrevented){ + var l;n.current||(l=r.triggerRef.current)===null||l===void 0||l.focus(),o.preventDefault(); + }n.current=!1,i.current=!1; + },onInteractOutside:o=>{ + var s,l;(s=e.onInteractOutside)===null||s===void 0||s.call(e,o),o.defaultPrevented||(n.current=!0,o.detail.originalEvent.type==='pointerdown'&&(i.current=!0));let c=o.target;((l=r.triggerRef.current)===null||l===void 0?void 0:l.contains(c))&&o.preventDefault(),o.detail.originalEvent.type==='focusin'&&i.current&&o.preventDefault(); + }})); + }),QB=(0,pt.forwardRef)((e,t)=>{ + let{__scopeDialog:r,trapFocus:n,onOpenAutoFocus:i,onCloseAutoFocus:o,...s}=e,l=Ra(nm,r),c=(0,pt.useRef)(null),f=sr(t,c);return vx(),(0,pt.createElement)(pt.Fragment,null,(0,pt.createElement)(px,{asChild:!0,loop:!0,trapped:n,onMountAutoFocus:i,onUnmountAutoFocus:o},(0,pt.createElement)(_p,Ze({role:'dialog',id:l.contentId,'aria-describedby':l.descriptionId,'aria-labelledby':l.titleId,'data-state':hP(l.open)},s,{ref:f,onDismiss:()=>l.onOpenChange(!1)}))),!1); + }),WB='DialogTitle',Ohe=(0,pt.forwardRef)((e,t)=>{ + let{__scopeDialog:r,...n}=e,i=Ra(WB,r);return(0,pt.createElement)(cr.h2,Ze({id:i.titleId},n,{ref:t})); + }),Nhe='DialogDescription',Dhe=(0,pt.forwardRef)((e,t)=>{ + let{__scopeDialog:r,...n}=e,i=Ra(Nhe,r);return(0,pt.createElement)(cr.p,Ze({id:i.descriptionId},n,{ref:t})); + }),Lhe='DialogClose',Phe=(0,pt.forwardRef)((e,t)=>{ + let{__scopeDialog:r,...n}=e,i=Ra(Lhe,r);return(0,pt.createElement)(cr.button,Ze({type:'button'},n,{ref:t,onClick:xt(e.onClick,()=>i.onOpenChange(!1))})); + });function hP(e){ + return e?'open':'closed'; +}var Rhe='DialogTitleWarning',[q2e,j2e]=qq(Rhe,{contentName:nm,titleName:WB,docsSlug:'dialog'});var YB=yhe,KB=Ahe,XB=whe,ZB=Ehe,JB=Che,_B=Ohe,$B=Dhe,eG=Phe;var Tx=fe(Ee(),1);var Ihe=(0,Tx.forwardRef)((e,t)=>(0,Tx.createElement)(cr.span,Ze({},e,{ref:t,style:{position:'absolute',border:0,width:1,height:1,padding:0,margin:-1,overflow:'hidden',clip:'rect(0, 0, 0, 0)',whiteSpace:'nowrap',wordWrap:'normal',...e.style}}))),Cx=Ihe;var Zn=fe(Ee(),1);var Ye=fe(Ee(),1);var Ma=fe(Ee(),1);function Sx(e){ + let t=e+'CollectionProvider',[r,n]=Hi(t),[i,o]=r(t,{collectionRef:{current:null},itemMap:new Map}),s=y=>{ + let{scope:w,children:T}=y,S=Ma.default.useRef(null),A=Ma.default.useRef(new Map).current;return Ma.default.createElement(i,{scope:w,itemMap:A,collectionRef:S},T); + },l=e+'CollectionSlot',c=Ma.default.forwardRef((y,w)=>{ + let{scope:T,children:S}=y,A=o(l,T),b=sr(w,A.collectionRef);return Ma.default.createElement(bs,{ref:b},S); + }),f=e+'CollectionItemSlot',m='data-radix-collection-item',v=Ma.default.forwardRef((y,w)=>{ + let{scope:T,children:S,...A}=y,b=Ma.default.useRef(null),C=sr(w,b),x=o(f,T);return Ma.default.useEffect(()=>(x.itemMap.set(b,{ref:b,...A}),()=>void x.itemMap.delete(b))),Ma.default.createElement(bs,{[m]:'',ref:C},S); + });function g(y){ + let w=o(e+'CollectionConsumer',y);return Ma.default.useCallback(()=>{ + let S=w.collectionRef.current;if(!S)return[];let A=Array.from(S.querySelectorAll(`[${m}]`));return Array.from(w.itemMap.values()).sort((x,k)=>A.indexOf(x.ref.current)-A.indexOf(k.ref.current)); + },[w.collectionRef,w.itemMap]); + }return[{Provider:s,Slot:c,ItemSlot:v},g,n]; +}var Ug=fe(Ee(),1),Fhe=(0,Ug.createContext)(void 0);function kx(e){ + let t=(0,Ug.useContext)(Fhe);return e||t||'ltr'; +}var Rn=fe(Ee(),1);var tG=['top','right','bottom','left'];var xs=Math.min,Fi=Math.max,Gg=Math.round,zg=Math.floor,gl=e=>({x:e,y:e}),qhe={left:'right',right:'left',bottom:'top',top:'bottom'},jhe={start:'end',end:'start'};function Nx(e,t,r){ + return Fi(e,xs(t,r)); +}function ws(e,t){ + return typeof e=='function'?e(t):e; +}function Es(e){ + return e.split('-')[0]; +}function yf(e){ + return e.split('-')[1]; +}function Dx(e){ + return e==='x'?'y':'x'; +}function Lx(e){ + return e==='y'?'height':'width'; +}function bf(e){ + return['top','bottom'].includes(Es(e))?'y':'x'; +}function Px(e){ + return Dx(bf(e)); +}function rG(e,t,r){ + r===void 0&&(r=!1);let n=yf(e),i=Px(e),o=Lx(i),s=i==='x'?n===(r?'end':'start')?'right':'left':n==='start'?'bottom':'top';return t.reference[o]>t.floating[o]&&(s=Bg(s)),[s,Bg(s)]; +}function nG(e){ + let t=Bg(e);return[Ox(e),t,Ox(t)]; +}function Ox(e){ + return e.replace(/start|end/g,t=>jhe[t]); +}function Vhe(e,t,r){ + let n=['left','right'],i=['right','left'],o=['top','bottom'],s=['bottom','top'];switch(e){ + case'top':case'bottom':return r?t?i:n:t?n:i;case'left':case'right':return t?o:s;default:return[]; + } +}function iG(e,t,r,n){ + let i=yf(e),o=Vhe(Es(e),r==='start',n);return i&&(o=o.map(s=>s+'-'+i),t&&(o=o.concat(o.map(Ox)))),o; +}function Bg(e){ + return e.replace(/left|right|bottom|top/g,t=>qhe[t]); +}function Uhe(e){ + return{top:0,right:0,bottom:0,left:0,...e}; +}function vP(e){ + return typeof e!='number'?Uhe(e):{top:e,right:e,bottom:e,left:e}; +}function Af(e){ + return{...e,top:e.y,left:e.x,right:e.x+e.width,bottom:e.y+e.height}; +}function oG(e,t,r){ + let{reference:n,floating:i}=e,o=bf(t),s=Px(t),l=Lx(s),c=Es(t),f=o==='y',m=n.x+n.width/2-i.width/2,v=n.y+n.height/2-i.height/2,g=n[l]/2-i[l]/2,y;switch(c){ + case'top':y={x:m,y:n.y-i.height};break;case'bottom':y={x:m,y:n.y+n.height};break;case'right':y={x:n.x+n.width,y:v};break;case'left':y={x:n.x-i.width,y:v};break;default:y={x:n.x,y:n.y}; + }switch(yf(t)){ + case'start':y[s]-=g*(r&&f?-1:1);break;case'end':y[s]+=g*(r&&f?-1:1);break; + }return y; +}var lG=async(e,t,r)=>{ + let{placement:n='bottom',strategy:i='absolute',middleware:o=[],platform:s}=r,l=o.filter(Boolean),c=await(s.isRTL==null?void 0:s.isRTL(t)),f=await s.getElementRects({reference:e,floating:t,strategy:i}),{x:m,y:v}=oG(f,n,c),g=n,y={},w=0;for(let T=0;T({name:'arrow',options:e,async fn(t){ + let{x:r,y:n,placement:i,rects:o,platform:s,elements:l,middlewareData:c}=t,{element:f,padding:m=0}=ws(e,t)||{};if(f==null)return{};let v=vP(m),g={x:r,y:n},y=Px(i),w=Lx(y),T=await s.getDimensions(f),S=y==='y',A=S?'top':'left',b=S?'bottom':'right',C=S?'clientHeight':'clientWidth',x=o.reference[w]+o.reference[y]-g[y]-o.floating[w],k=g[y]-o.reference[y],P=await(s.getOffsetParent==null?void 0:s.getOffsetParent(f)),D=P?P[C]:0;(!D||!await(s.isElement==null?void 0:s.isElement(P)))&&(D=l.floating[C]||o.floating[w]);let N=x/2-k/2,I=D/2-T[w]/2-1,V=xs(v[A],I),G=xs(v[b],I),B=V,U=D-T[w]-G,z=D/2-T[w]/2+N,j=Nx(B,z,U),J=!c.arrow&&yf(i)!=null&&z!=j&&o.reference[w]/2-(zB<=0)){ + var I,V;let B=(((I=o.flip)==null?void 0:I.index)||0)+1,U=k[B];if(U)return{data:{index:B,overflows:N},reset:{placement:U}};let z=(V=N.filter(j=>j.overflows[0]<=0).sort((j,J)=>j.overflows[1]-J.overflows[1])[0])==null?void 0:V.placement;if(!z)switch(y){ + case'bestFit':{var G;let j=(G=N.map(J=>[J.placement,J.overflows.filter(K=>K>0).reduce((K,ee)=>K+ee,0)]).sort((J,K)=>J[1]-K[1])[0])==null?void 0:G[0];j&&(z=j);break;}case'initialPlacement':z=l;break; + }if(i!==z)return{reset:{placement:z}}; + }return{}; + }}; +};function aG(e,t){ + return{top:e.top-t.height,right:e.right-t.width,bottom:e.bottom-t.height,left:e.left-t.width}; +}function sG(e){ + return tG.some(t=>e[t]>=0); +}var Ix=function(e){ + return e===void 0&&(e={}),{name:'hide',options:e,async fn(t){ + let{rects:r}=t,{strategy:n='referenceHidden',...i}=ws(e,t);switch(n){ + case'referenceHidden':{let o=await xf(t,{...i,elementContext:'reference'}),s=aG(o,r.reference);return{data:{referenceHiddenOffsets:s,referenceHidden:sG(s)}};}case'escaped':{let o=await xf(t,{...i,altBoundary:!0}),s=aG(o,r.floating);return{data:{escapedOffsets:s,escaped:sG(s)}};}default:return{}; + } + }}; +};async function Bhe(e,t){ + let{placement:r,platform:n,elements:i}=e,o=await(n.isRTL==null?void 0:n.isRTL(i.floating)),s=Es(r),l=yf(r),c=bf(r)==='y',f=['left','top'].includes(s)?-1:1,m=o&&c?-1:1,v=ws(t,e),{mainAxis:g,crossAxis:y,alignmentAxis:w}=typeof v=='number'?{mainAxis:v,crossAxis:0,alignmentAxis:null}:{mainAxis:0,crossAxis:0,alignmentAxis:null,...v};return l&&typeof w=='number'&&(y=l==='end'?w*-1:w),c?{x:y*m,y:g*f}:{x:g*f,y:y*m}; +}var Fx=function(e){ + return e===void 0&&(e=0),{name:'offset',options:e,async fn(t){ + let{x:r,y:n}=t,i=await Bhe(t,e);return{x:r+i.x,y:n+i.y,data:i}; + }}; + },qx=function(e){ + return e===void 0&&(e={}),{name:'shift',options:e,async fn(t){ + let{x:r,y:n,placement:i}=t,{mainAxis:o=!0,crossAxis:s=!1,limiter:l={fn:S=>{ + let{x:A,y:b}=S;return{x:A,y:b}; + }},...c}=ws(e,t),f={x:r,y:n},m=await xf(t,c),v=bf(Es(i)),g=Dx(v),y=f[g],w=f[v];if(o){ + let S=g==='y'?'top':'left',A=g==='y'?'bottom':'right',b=y+m[S],C=y-m[A];y=Nx(b,y,C); + }if(s){ + let S=v==='y'?'top':'left',A=v==='y'?'bottom':'right',b=w+m[S],C=w-m[A];w=Nx(b,w,C); + }let T=l.fn({...t,[g]:y,[v]:w});return{...T,data:{x:T.x-r,y:T.y-n}}; + }}; + },jx=function(e){ + return e===void 0&&(e={}),{options:e,fn(t){ + let{x:r,y:n,placement:i,rects:o,middlewareData:s}=t,{offset:l=0,mainAxis:c=!0,crossAxis:f=!0}=ws(e,t),m={x:r,y:n},v=bf(i),g=Dx(v),y=m[g],w=m[v],T=ws(l,t),S=typeof T=='number'?{mainAxis:T,crossAxis:0}:{mainAxis:0,crossAxis:0,...T};if(c){ + let C=g==='y'?'height':'width',x=o.reference[g]-o.floating[C]+S.mainAxis,k=o.reference[g]+o.reference[C]-S.mainAxis;yk&&(y=k); + }if(f){ + var A,b;let C=g==='y'?'width':'height',x=['top','left'].includes(Es(i)),k=o.reference[v]-o.floating[C]+(x&&((A=s.offset)==null?void 0:A[v])||0)+(x?0:S.crossAxis),P=o.reference[v]+o.reference[C]+(x?0:((b=s.offset)==null?void 0:b[v])||0)-(x?S.crossAxis:0);wP&&(w=P); + }return{[g]:y,[v]:w}; + }}; + },Vx=function(e){ + return e===void 0&&(e={}),{name:'size',options:e,async fn(t){ + let{placement:r,rects:n,platform:i,elements:o}=t,{apply:s=()=>{},...l}=ws(e,t),c=await xf(t,l),f=Es(r),m=yf(r),v=bf(r)==='y',{width:g,height:y}=n.floating,w,T;f==='top'||f==='bottom'?(w=f,T=m===(await(i.isRTL==null?void 0:i.isRTL(o.floating))?'start':'end')?'left':'right'):(T=f,w=m==='end'?'top':'bottom');let S=y-c[w],A=g-c[T],b=!t.middlewareData.shift,C=S,x=A;if(v){ + let P=g-c.left-c.right;x=m||b?xs(A,P):P; + }else{ + let P=y-c.top-c.bottom;C=m||b?xs(S,P):P; + }if(b&&!m){ + let P=Fi(c.left,0),D=Fi(c.right,0),N=Fi(c.top,0),I=Fi(c.bottom,0);v?x=g-2*(P!==0||D!==0?P+D:Fi(c.left,c.right)):C=y-2*(N!==0||I!==0?N+I:Fi(c.top,c.bottom)); + }await s({...t,availableWidth:x,availableHeight:C});let k=await i.getDimensions(o.floating);return g!==k.width||y!==k.height?{reset:{rects:!0}}:{}; + }}; + };function yl(e){ + return cG(e)?(e.nodeName||'').toLowerCase():'#document'; +}function Ji(e){ + var t;return(e==null||(t=e.ownerDocument)==null?void 0:t.defaultView)||window; +}function Ts(e){ + var t;return(t=(cG(e)?e.ownerDocument:e.document)||window.document)==null?void 0:t.documentElement; +}function cG(e){ + return e instanceof Node||e instanceof Ji(e).Node; +}function Cs(e){ + return e instanceof Element||e instanceof Ji(e).Element; +}function Ia(e){ + return e instanceof HTMLElement||e instanceof Ji(e).HTMLElement; +}function uG(e){ + return typeof ShadowRoot>'u'?!1:e instanceof ShadowRoot||e instanceof Ji(e).ShadowRoot; +}function im(e){ + let{overflow:t,overflowX:r,overflowY:n,display:i}=xo(e);return/auto|scroll|overlay|hidden|clip/.test(t+n+r)&&!['inline','contents'].includes(i); +}function fG(e){ + return['table','td','th'].includes(yl(e)); +}function Ux(e){ + let t=Bx(),r=xo(e);return r.transform!=='none'||r.perspective!=='none'||(r.containerType?r.containerType!=='normal':!1)||!t&&(r.backdropFilter?r.backdropFilter!=='none':!1)||!t&&(r.filter?r.filter!=='none':!1)||['transform','perspective','filter'].some(n=>(r.willChange||'').includes(n))||['paint','layout','strict','content'].some(n=>(r.contain||'').includes(n)); +}function dG(e){ + let t=wf(e);for(;Ia(t)&&!Hg(t);){ + if(Ux(t))return t;t=wf(t); + }return null; +}function Bx(){ + return typeof CSS>'u'||!CSS.supports?!1:CSS.supports('-webkit-backdrop-filter','none'); +}function Hg(e){ + return['html','body','#document'].includes(yl(e)); +}function xo(e){ + return Ji(e).getComputedStyle(e); +}function Qg(e){ + return Cs(e)?{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}:{scrollLeft:e.pageXOffset,scrollTop:e.pageYOffset}; +}function wf(e){ + if(yl(e)==='html')return e;let t=e.assignedSlot||e.parentNode||uG(e)&&e.host||Ts(e);return uG(t)?t.host:t; +}function pG(e){ + let t=wf(e);return Hg(t)?e.ownerDocument?e.ownerDocument.body:e.body:Ia(t)&&im(t)?t:pG(t); +}function Ef(e,t,r){ + var n;t===void 0&&(t=[]),r===void 0&&(r=!0);let i=pG(e),o=i===((n=e.ownerDocument)==null?void 0:n.body),s=Ji(i);return o?t.concat(s,s.visualViewport||[],im(i)?i:[],s.frameElement&&r?Ef(s.frameElement):[]):t.concat(i,Ef(i,[],r)); +}function vG(e){ + let t=xo(e),r=parseFloat(t.width)||0,n=parseFloat(t.height)||0,i=Ia(e),o=i?e.offsetWidth:r,s=i?e.offsetHeight:n,l=Gg(r)!==o||Gg(n)!==s;return l&&(r=o,n=s),{width:r,height:n,$:l}; +}function gP(e){ + return Cs(e)?e:e.contextElement; +}function om(e){ + let t=gP(e);if(!Ia(t))return gl(1);let r=t.getBoundingClientRect(),{width:n,height:i,$:o}=vG(t),s=(o?Gg(r.width):r.width)/n,l=(o?Gg(r.height):r.height)/i;return(!s||!Number.isFinite(s))&&(s=1),(!l||!Number.isFinite(l))&&(l=1),{x:s,y:l}; +}var Hhe=gl(0);function gG(e){ + let t=Ji(e);return!Bx()||!t.visualViewport?Hhe:{x:t.visualViewport.offsetLeft,y:t.visualViewport.offsetTop}; +}function Qhe(e,t,r){ + return t===void 0&&(t=!1),!r||t&&r!==Ji(e)?!1:t; +}function Tf(e,t,r,n){ + t===void 0&&(t=!1),r===void 0&&(r=!1);let i=e.getBoundingClientRect(),o=gP(e),s=gl(1);t&&(n?Cs(n)&&(s=om(n)):s=om(e));let l=Qhe(o,r,n)?gG(o):gl(0),c=(i.left+l.x)/s.x,f=(i.top+l.y)/s.y,m=i.width/s.x,v=i.height/s.y;if(o){ + let g=Ji(o),y=n&&Cs(n)?Ji(n):n,w=g.frameElement;for(;w&&n&&y!==g;){ + let T=om(w),S=w.getBoundingClientRect(),A=xo(w),b=S.left+(w.clientLeft+parseFloat(A.paddingLeft))*T.x,C=S.top+(w.clientTop+parseFloat(A.paddingTop))*T.y;c*=T.x,f*=T.y,m*=T.x,v*=T.y,c+=b,f+=C,w=Ji(w).frameElement; + } + }return Af({width:m,height:v,x:c,y:f}); +}function Whe(e){ + let{rect:t,offsetParent:r,strategy:n}=e,i=Ia(r),o=Ts(r);if(r===o)return t;let s={scrollLeft:0,scrollTop:0},l=gl(1),c=gl(0);if((i||!i&&n!=='fixed')&&((yl(r)!=='body'||im(o))&&(s=Qg(r)),Ia(r))){ + let f=Tf(r);l=om(r),c.x=f.x+r.clientLeft,c.y=f.y+r.clientTop; + }return{width:t.width*l.x,height:t.height*l.y,x:t.x*l.x-s.scrollLeft*l.x+c.x,y:t.y*l.y-s.scrollTop*l.y+c.y}; +}function Yhe(e){ + return Array.from(e.getClientRects()); +}function yG(e){ + return Tf(Ts(e)).left+Qg(e).scrollLeft; +}function Khe(e){ + let t=Ts(e),r=Qg(e),n=e.ownerDocument.body,i=Fi(t.scrollWidth,t.clientWidth,n.scrollWidth,n.clientWidth),o=Fi(t.scrollHeight,t.clientHeight,n.scrollHeight,n.clientHeight),s=-r.scrollLeft+yG(e),l=-r.scrollTop;return xo(n).direction==='rtl'&&(s+=Fi(t.clientWidth,n.clientWidth)-i),{width:i,height:o,x:s,y:l}; +}function Xhe(e,t){ + let r=Ji(e),n=Ts(e),i=r.visualViewport,o=n.clientWidth,s=n.clientHeight,l=0,c=0;if(i){ + o=i.width,s=i.height;let f=Bx();(!f||f&&t==='fixed')&&(l=i.offsetLeft,c=i.offsetTop); + }return{width:o,height:s,x:l,y:c}; +}function Zhe(e,t){ + let r=Tf(e,!0,t==='fixed'),n=r.top+e.clientTop,i=r.left+e.clientLeft,o=Ia(e)?om(e):gl(1),s=e.clientWidth*o.x,l=e.clientHeight*o.y,c=i*o.x,f=n*o.y;return{width:s,height:l,x:c,y:f}; +}function mG(e,t,r){ + let n;if(t==='viewport')n=Xhe(e,r);else if(t==='document')n=Khe(Ts(e));else if(Cs(t))n=Zhe(t,r);else{ + let i=gG(e);n={...t,x:t.x-i.x,y:t.y-i.y}; + }return Af(n); +}function bG(e,t){ + let r=wf(e);return r===t||!Cs(r)||Hg(r)?!1:xo(r).position==='fixed'||bG(r,t); +}function Jhe(e,t){ + let r=t.get(e);if(r)return r;let n=Ef(e,[],!1).filter(l=>Cs(l)&&yl(l)!=='body'),i=null,o=xo(e).position==='fixed',s=o?wf(e):e;for(;Cs(s)&&!Hg(s);){ + let l=xo(s),c=Ux(s);!c&&l.position==='fixed'&&(i=null),(o?!c&&!i:!c&&l.position==='static'&&!!i&&['absolute','fixed'].includes(i.position)||im(s)&&!c&&bG(e,s))?n=n.filter(m=>m!==s):i=l,s=wf(s); + }return t.set(e,n),n; +}function _he(e){ + let{element:t,boundary:r,rootBoundary:n,strategy:i}=e,s=[...r==='clippingAncestors'?Jhe(t,this._c):[].concat(r),n],l=s[0],c=s.reduce((f,m)=>{ + let v=mG(t,m,i);return f.top=Fi(v.top,f.top),f.right=xs(v.right,f.right),f.bottom=xs(v.bottom,f.bottom),f.left=Fi(v.left,f.left),f; + },mG(t,l,i));return{width:c.right-c.left,height:c.bottom-c.top,x:c.left,y:c.top}; +}function $he(e){ + return vG(e); +}function eve(e,t,r){ + let n=Ia(t),i=Ts(t),o=r==='fixed',s=Tf(e,!0,o,t),l={scrollLeft:0,scrollTop:0},c=gl(0);if(n||!n&&!o)if((yl(t)!=='body'||im(i))&&(l=Qg(t)),n){ + let f=Tf(t,!0,o,t);c.x=f.x+t.clientLeft,c.y=f.y+t.clientTop; + }else i&&(c.x=yG(i));return{x:s.left+l.scrollLeft-c.x,y:s.top+l.scrollTop-c.y,width:s.width,height:s.height}; +}function hG(e,t){ + return!Ia(e)||xo(e).position==='fixed'?null:t?t(e):e.offsetParent; +}function AG(e,t){ + let r=Ji(e);if(!Ia(e))return r;let n=hG(e,t);for(;n&&fG(n)&&xo(n).position==='static';)n=hG(n,t);return n&&(yl(n)==='html'||yl(n)==='body'&&xo(n).position==='static'&&!Ux(n))?r:n||dG(e)||r; +}var tve=async function(e){ + let{reference:t,floating:r,strategy:n}=e,i=this.getOffsetParent||AG,o=this.getDimensions;return{reference:eve(t,await i(r),n),floating:{x:0,y:0,...await o(r)}}; +};function rve(e){ + return xo(e).direction==='rtl'; +}var xG={convertOffsetParentRelativeRectToViewportRelativeRect:Whe,getDocumentElement:Ts,getClippingRect:_he,getOffsetParent:AG,getElementRects:tve,getClientRects:Yhe,getDimensions:$he,getScale:om,isElement:Cs,isRTL:rve};function nve(e,t){ + let r=null,n,i=Ts(e);function o(){ + clearTimeout(n),r&&r.disconnect(),r=null; + }function s(l,c){ + l===void 0&&(l=!1),c===void 0&&(c=1),o();let{left:f,top:m,width:v,height:g}=e.getBoundingClientRect();if(l||t(),!v||!g)return;let y=zg(m),w=zg(i.clientWidth-(f+v)),T=zg(i.clientHeight-(m+g)),S=zg(f),b={rootMargin:-y+'px '+-w+'px '+-T+'px '+-S+'px',threshold:Fi(0,xs(1,c))||1},C=!0;function x(k){ + let P=k[0].intersectionRatio;if(P!==c){ + if(!C)return s();P?s(!1,P):n=setTimeout(()=>{ + s(!1,1e-7); + },100); + }C=!1; + }try{ + r=new IntersectionObserver(x,{...b,root:i.ownerDocument}); + }catch{ + r=new IntersectionObserver(x,b); + }r.observe(e); + }return s(!0),o; +}function yP(e,t,r,n){ + n===void 0&&(n={});let{ancestorScroll:i=!0,ancestorResize:o=!0,elementResize:s=typeof ResizeObserver=='function',layoutShift:l=typeof IntersectionObserver=='function',animationFrame:c=!1}=n,f=gP(e),m=i||o?[...f?Ef(f):[],...Ef(t)]:[];m.forEach(A=>{ + i&&A.addEventListener('scroll',r,{passive:!0}),o&&A.addEventListener('resize',r); + });let v=f&&l?nve(f,r):null,g=-1,y=null;s&&(y=new ResizeObserver(A=>{ + let[b]=A;b&&b.target===f&&y&&(y.unobserve(t),cancelAnimationFrame(g),g=requestAnimationFrame(()=>{ + y&&y.observe(t); + })),r(); + }),f&&!c&&y.observe(f),y.observe(t));let w,T=c?Tf(e):null;c&&S();function S(){ + let A=Tf(e);T&&(A.x!==T.x||A.y!==T.y||A.width!==T.width||A.height!==T.height)&&r(),T=A,w=requestAnimationFrame(S); + }return r(),()=>{ + m.forEach(A=>{ + i&&A.removeEventListener('scroll',r),o&&A.removeEventListener('resize',r); + }),v&&v(),y&&y.disconnect(),y=null,c&&cancelAnimationFrame(w); + }; +}var bP=(e,t,r)=>{ + let n=new Map,i={platform:xG,...r},o={...i.platform,_c:n};return lG(e,t,{...i,platform:o}); +};var fn=fe(Ee(),1),Hx=fe(Ee(),1),TG=fe(mf(),1),CG=e=>{ + function t(r){ + return{}.hasOwnProperty.call(r,'current'); + }return{name:'arrow',options:e,fn(r){ + let{element:n,padding:i}=typeof e=='function'?e(r):e;return n&&t(n)?n.current!=null?Rx({element:n.current,padding:i}).fn(r):{}:n?Rx({element:n,padding:i}).fn(r):{}; + }}; + },Gx=typeof document<'u'?Hx.useLayoutEffect:Hx.useEffect;function zx(e,t){ + if(e===t)return!0;if(typeof e!=typeof t)return!1;if(typeof e=='function'&&e.toString()===t.toString())return!0;let r,n,i;if(e&&t&&typeof e=='object'){ + if(Array.isArray(e)){ + if(r=e.length,r!=t.length)return!1;for(n=r;n--!==0;)if(!zx(e[n],t[n]))return!1;return!0; + }if(i=Object.keys(e),r=i.length,r!==Object.keys(t).length)return!1;for(n=r;n--!==0;)if(!{}.hasOwnProperty.call(t,i[n]))return!1;for(n=r;n--!==0;){ + let o=i[n];if(!(o==='_owner'&&e.$$typeof)&&!zx(e[o],t[o]))return!1; + }return!0; + }return e!==e&&t!==t; +}function SG(e){ + return typeof window>'u'?1:(e.ownerDocument.defaultView||window).devicePixelRatio||1; +}function wG(e,t){ + let r=SG(e);return Math.round(t*r)/r; +}function EG(e){ + let t=fn.useRef(e);return Gx(()=>{ + t.current=e; + }),t; +}function kG(e){ + e===void 0&&(e={});let{placement:t='bottom',strategy:r='absolute',middleware:n=[],platform:i,elements:{reference:o,floating:s}={},transform:l=!0,whileElementsMounted:c,open:f}=e,[m,v]=fn.useState({x:0,y:0,strategy:r,placement:t,middlewareData:{},isPositioned:!1}),[g,y]=fn.useState(n);zx(g,n)||y(n);let[w,T]=fn.useState(null),[S,A]=fn.useState(null),b=fn.useCallback(J=>{ + J!=P.current&&(P.current=J,T(J)); + },[T]),C=fn.useCallback(J=>{ + J!==D.current&&(D.current=J,A(J)); + },[A]),x=o||w,k=s||S,P=fn.useRef(null),D=fn.useRef(null),N=fn.useRef(m),I=EG(c),V=EG(i),G=fn.useCallback(()=>{ + if(!P.current||!D.current)return;let J={placement:t,strategy:r,middleware:g};V.current&&(J.platform=V.current),bP(P.current,D.current,J).then(K=>{ + let ee={...K,isPositioned:!0};B.current&&!zx(N.current,ee)&&(N.current=ee,TG.flushSync(()=>{ + v(ee); + })); + }); + },[g,t,r,V]);Gx(()=>{ + f===!1&&N.current.isPositioned&&(N.current.isPositioned=!1,v(J=>({...J,isPositioned:!1}))); + },[f]);let B=fn.useRef(!1);Gx(()=>(B.current=!0,()=>{ + B.current=!1; + }),[]),Gx(()=>{ + if(x&&(P.current=x),k&&(D.current=k),x&&k){ + if(I.current)return I.current(x,k,G);G(); + } + },[x,k,G,I]);let U=fn.useMemo(()=>({reference:P,floating:D,setReference:b,setFloating:C}),[b,C]),z=fn.useMemo(()=>({reference:x,floating:k}),[x,k]),j=fn.useMemo(()=>{ + let J={position:r,left:0,top:0};if(!z.floating)return J;let K=wG(z.floating,m.x),ee=wG(z.floating,m.y);return l?{...J,transform:'translate('+K+'px, '+ee+'px)',...SG(z.floating)>=1.5&&{willChange:'transform'}}:{position:r,left:K,top:ee}; + },[r,l,z.floating,m.x,m.y]);return fn.useMemo(()=>({...m,update:G,refs:U,elements:z,floatingStyles:j}),[m,G,U,z,j]); +}var OG=fe(Ee(),1);function NG(e){ + let[t,r]=(0,OG.useState)(void 0);return ds(()=>{ + if(e){ + r({width:e.offsetWidth,height:e.offsetHeight});let n=new ResizeObserver(i=>{ + if(!Array.isArray(i)||!i.length)return;let o=i[0],s,l;if('borderBoxSize'in o){ + let c=o.borderBoxSize,f=Array.isArray(c)?c[0]:c;s=f.inlineSize,l=f.blockSize; + }else s=e.offsetWidth,l=e.offsetHeight;r({width:s,height:l}); + });return n.observe(e,{box:'border-box'}),()=>n.unobserve(e); + }else r(void 0); + },[e]),t; +}var DG='Popper',[LG,am]=Hi(DG),[ive,PG]=LG(DG),ove=e=>{ + let{__scopePopper:t,children:r}=e,[n,i]=(0,Rn.useState)(null);return(0,Rn.createElement)(ive,{scope:t,anchor:n,onAnchorChange:i},r); + },ave='PopperAnchor',sve=(0,Rn.forwardRef)((e,t)=>{ + let{__scopePopper:r,virtualRef:n,...i}=e,o=PG(ave,r),s=(0,Rn.useRef)(null),l=sr(t,s);return(0,Rn.useEffect)(()=>{ + o.onAnchorChange(n?.current||s.current); + }),n?null:(0,Rn.createElement)(cr.div,Ze({},i,{ref:l})); + }),RG='PopperContent',[lve,gLe]=LG(RG),uve=(0,Rn.forwardRef)((e,t)=>{ + var r,n,i,o,s,l,c,f;let{__scopePopper:m,side:v='bottom',sideOffset:g=0,align:y='center',alignOffset:w=0,arrowPadding:T=0,avoidCollisions:S=!0,collisionBoundary:A=[],collisionPadding:b=0,sticky:C='partial',hideWhenDetached:x=!1,updatePositionStrategy:k='optimized',onPlaced:P,...D}=e,N=PG(RG,m),[I,V]=(0,Rn.useState)(null),G=sr(t,pe=>V(pe)),[B,U]=(0,Rn.useState)(null),z=NG(B),j=(r=z?.width)!==null&&r!==void 0?r:0,J=(n=z?.height)!==null&&n!==void 0?n:0,K=v+(y!=='center'?'-'+y:''),ee=typeof b=='number'?b:{top:0,right:0,bottom:0,left:0,...b},re=Array.isArray(A)?A:[A],se=re.length>0,xe={padding:ee,boundary:re.filter(cve),altBoundary:se},{refs:Re,floatingStyles:Se,placement:ie,isPositioned:ye,middlewareData:me}=kG({strategy:'fixed',placement:K,whileElementsMounted:(...pe)=>yP(...pe,{animationFrame:k==='always'}),elements:{reference:N.anchor},middleware:[Fx({mainAxis:g+J,alignmentAxis:w}),S&&qx({mainAxis:!0,crossAxis:!1,limiter:C==='partial'?jx():void 0,...xe}),S&&Mx({...xe}),Vx({...xe,apply:({elements:pe,rects:Me,availableWidth:st,availableHeight:nt})=>{ + let{width:lt,height:wt}=Me.reference,Or=pe.floating.style;Or.setProperty('--radix-popper-available-width',`${st}px`),Or.setProperty('--radix-popper-available-height',`${nt}px`),Or.setProperty('--radix-popper-anchor-width',`${lt}px`),Or.setProperty('--radix-popper-anchor-height',`${wt}px`); + }}),B&&CG({element:B,padding:T}),fve({arrowWidth:j,arrowHeight:J}),x&&Ix({strategy:'referenceHidden',...xe})]}),[Oe,Ge]=MG(ie),He=Wn(P);ds(()=>{ + ye&&He?.(); + },[ye,He]);let dr=(i=me.arrow)===null||i===void 0?void 0:i.x,Ue=(o=me.arrow)===null||o===void 0?void 0:o.y,bt=((s=me.arrow)===null||s===void 0?void 0:s.centerOffset)!==0,[he,Fe]=(0,Rn.useState)();return ds(()=>{ + I&&Fe(window.getComputedStyle(I).zIndex); + },[I]),(0,Rn.createElement)('div',{ref:Re.setFloating,'data-radix-popper-content-wrapper':'',style:{...Se,transform:ye?Se.transform:'translate(0, -200%)',minWidth:'max-content',zIndex:he,'--radix-popper-transform-origin':[(l=me.transformOrigin)===null||l===void 0?void 0:l.x,(c=me.transformOrigin)===null||c===void 0?void 0:c.y].join(' ')},dir:e.dir},(0,Rn.createElement)(lve,{scope:m,placedSide:Oe,onArrowChange:U,arrowX:dr,arrowY:Ue,shouldHideArrow:bt},(0,Rn.createElement)(cr.div,Ze({'data-side':Oe,'data-align':Ge},D,{ref:G,style:{...D.style,animation:ye?void 0:'none',opacity:(f=me.hide)!==null&&f!==void 0&&f.referenceHidden?0:void 0}})))); + });function cve(e){ + return e!==null; +}var fve=e=>({name:'transformOrigin',options:e,fn(t){ + var r,n,i,o,s;let{placement:l,rects:c,middlewareData:f}=t,v=((r=f.arrow)===null||r===void 0?void 0:r.centerOffset)!==0,g=v?0:e.arrowWidth,y=v?0:e.arrowHeight,[w,T]=MG(l),S={start:'0%',center:'50%',end:'100%'}[T],A=((n=(i=f.arrow)===null||i===void 0?void 0:i.x)!==null&&n!==void 0?n:0)+g/2,b=((o=(s=f.arrow)===null||s===void 0?void 0:s.y)!==null&&o!==void 0?o:0)+y/2,C='',x='';return w==='bottom'?(C=v?S:`${A}px`,x=`${-y}px`):w==='top'?(C=v?S:`${A}px`,x=`${c.floating.height+y}px`):w==='right'?(C=`${-y}px`,x=v?S:`${b}px`):w==='left'&&(C=`${c.floating.width+y}px`,x=v?S:`${b}px`),{data:{x:C,y:x}}; +}});function MG(e){ + let[t,r='center']=e.split('-');return[t,r]; +}var Qx=ove,Wx=sve,Yx=uve;var fr=fe(Ee(),1);var AP='rovingFocusGroup.onEntryFocus',dve={bubbles:!1,cancelable:!0},wP='RovingFocusGroup',[xP,IG,pve]=Sx(wP),[mve,EP]=Hi(wP,[pve]),[hve,vve]=mve(wP),gve=(0,fr.forwardRef)((e,t)=>(0,fr.createElement)(xP.Provider,{scope:e.__scopeRovingFocusGroup},(0,fr.createElement)(xP.Slot,{scope:e.__scopeRovingFocusGroup},(0,fr.createElement)(yve,Ze({},e,{ref:t}))))),yve=(0,fr.forwardRef)((e,t)=>{ + let{__scopeRovingFocusGroup:r,orientation:n,loop:i=!1,dir:o,currentTabStopId:s,defaultCurrentTabStopId:l,onCurrentTabStopIdChange:c,onEntryFocus:f,...m}=e,v=(0,fr.useRef)(null),g=sr(t,v),y=kx(o),[w=null,T]=hu({prop:s,defaultProp:l,onChange:c}),[S,A]=(0,fr.useState)(!1),b=Wn(f),C=IG(r),x=(0,fr.useRef)(!1),[k,P]=(0,fr.useState)(0);return(0,fr.useEffect)(()=>{ + let D=v.current;if(D)return D.addEventListener(AP,b),()=>D.removeEventListener(AP,b); + },[b]),(0,fr.createElement)(hve,{scope:r,orientation:n,dir:y,loop:i,currentTabStopId:w,onItemFocus:(0,fr.useCallback)(D=>T(D),[T]),onItemShiftTab:(0,fr.useCallback)(()=>A(!0),[]),onFocusableItemAdd:(0,fr.useCallback)(()=>P(D=>D+1),[]),onFocusableItemRemove:(0,fr.useCallback)(()=>P(D=>D-1),[])},(0,fr.createElement)(cr.div,Ze({tabIndex:S||k===0?-1:0,'data-orientation':n},m,{ref:g,style:{outline:'none',...e.style},onMouseDown:xt(e.onMouseDown,()=>{ + x.current=!0; + }),onFocus:xt(e.onFocus,D=>{ + let N=!x.current;if(D.target===D.currentTarget&&N&&!S){ + let I=new CustomEvent(AP,dve);if(D.currentTarget.dispatchEvent(I),!I.defaultPrevented){ + let V=C().filter(j=>j.focusable),G=V.find(j=>j.active),B=V.find(j=>j.id===w),z=[G,B,...V].filter(Boolean).map(j=>j.ref.current);FG(z); + } + }x.current=!1; + }),onBlur:xt(e.onBlur,()=>A(!1))}))); + }),bve='RovingFocusGroupItem',Ave=(0,fr.forwardRef)((e,t)=>{ + let{__scopeRovingFocusGroup:r,focusable:n=!0,active:i=!1,tabStopId:o,...s}=e,l=Ea(),c=o||l,f=vve(bve,r),m=f.currentTabStopId===c,v=IG(r),{onFocusableItemAdd:g,onFocusableItemRemove:y}=f;return(0,fr.useEffect)(()=>{ + if(n)return g(),()=>y(); + },[n,g,y]),(0,fr.createElement)(xP.ItemSlot,{scope:r,id:c,focusable:n,active:i},(0,fr.createElement)(cr.span,Ze({tabIndex:m?0:-1,'data-orientation':f.orientation},s,{ref:t,onMouseDown:xt(e.onMouseDown,w=>{ + n?f.onItemFocus(c):w.preventDefault(); + }),onFocus:xt(e.onFocus,()=>f.onItemFocus(c)),onKeyDown:xt(e.onKeyDown,w=>{ + if(w.key==='Tab'&&w.shiftKey){ + f.onItemShiftTab();return; + }if(w.target!==w.currentTarget)return;let T=Eve(w,f.orientation,f.dir);if(T!==void 0){ + w.preventDefault();let A=v().filter(b=>b.focusable).map(b=>b.ref.current);if(T==='last')A.reverse();else if(T==='prev'||T==='next'){ + T==='prev'&&A.reverse();let b=A.indexOf(w.currentTarget);A=f.loop?Tve(A,b+1):A.slice(b+1); + }setTimeout(()=>FG(A)); + } + })}))); + }),xve={ArrowLeft:'prev',ArrowUp:'prev',ArrowRight:'next',ArrowDown:'next',PageUp:'first',Home:'first',PageDown:'last',End:'last'};function wve(e,t){ + return t!=='rtl'?e:e==='ArrowLeft'?'ArrowRight':e==='ArrowRight'?'ArrowLeft':e; +}function Eve(e,t,r){ + let n=wve(e.key,r);if(!(t==='vertical'&&['ArrowLeft','ArrowRight'].includes(n))&&!(t==='horizontal'&&['ArrowUp','ArrowDown'].includes(n)))return xve[n]; +}function FG(e){ + let t=document.activeElement;for(let r of e)if(r===t||(r.focus(),document.activeElement!==t))return; +}function Tve(e,t){ + return e.map((r,n)=>e[(t+n)%e.length]); +}var qG=gve,jG=Ave;var TP=['Enter',' '],Sve=['ArrowDown','PageUp','Home'],UG=['ArrowUp','PageDown','End'],kve=[...Sve,...UG],KLe={ltr:[...TP,'ArrowRight'],rtl:[...TP,'ArrowLeft']};var Kx='Menu',[CP,Ove,Nve]=Sx(Kx),[Cf,OP]=Hi(Kx,[Nve,am,EP]),NP=am(),BG=EP(),[Dve,Wg]=Cf(Kx),[Lve,DP]=Cf(Kx),Pve=e=>{ + let{__scopeMenu:t,open:r=!1,children:n,dir:i,onOpenChange:o,modal:s=!0}=e,l=NP(t),[c,f]=(0,Ye.useState)(null),m=(0,Ye.useRef)(!1),v=Wn(o),g=kx(i);return(0,Ye.useEffect)(()=>{ + let y=()=>{ + m.current=!0,document.addEventListener('pointerdown',w,{capture:!0,once:!0}),document.addEventListener('pointermove',w,{capture:!0,once:!0}); + },w=()=>m.current=!1;return document.addEventListener('keydown',y,{capture:!0}),()=>{ + document.removeEventListener('keydown',y,{capture:!0}),document.removeEventListener('pointerdown',w,{capture:!0}),document.removeEventListener('pointermove',w,{capture:!0}); + }; + },[]),(0,Ye.createElement)(Qx,l,(0,Ye.createElement)(Dve,{scope:t,open:r,onOpenChange:v,content:c,onContentChange:f},(0,Ye.createElement)(Lve,{scope:t,onClose:(0,Ye.useCallback)(()=>v(!1),[v]),isUsingKeyboardRef:m,dir:g,modal:s},n))); +};var Rve=(0,Ye.forwardRef)((e,t)=>{ + let{__scopeMenu:r,...n}=e,i=NP(r);return(0,Ye.createElement)(Wx,Ze({},i,n,{ref:t})); + }),GG='MenuPortal',[Mve,Ive]=Cf(GG,{forceMount:void 0}),Fve=e=>{ + let{__scopeMenu:t,forceMount:r,children:n,container:i}=e,o=Wg(GG,t);return(0,Ye.createElement)(Mve,{scope:t,forceMount:r},(0,Ye.createElement)(Pa,{present:r||o.open},(0,Ye.createElement)($p,{asChild:!0,container:i},n))); + },ju='MenuContent',[qve,zG]=Cf(ju),jve=(0,Ye.forwardRef)((e,t)=>{ + let r=Ive(ju,e.__scopeMenu),{forceMount:n=r.forceMount,...i}=e,o=Wg(ju,e.__scopeMenu),s=DP(ju,e.__scopeMenu);return(0,Ye.createElement)(CP.Provider,{scope:e.__scopeMenu},(0,Ye.createElement)(Pa,{present:n||o.open},(0,Ye.createElement)(CP.Slot,{scope:e.__scopeMenu},s.modal?(0,Ye.createElement)(Vve,Ze({},i,{ref:t})):(0,Ye.createElement)(Uve,Ze({},i,{ref:t}))))); + }),Vve=(0,Ye.forwardRef)((e,t)=>{ + let r=Wg(ju,e.__scopeMenu),n=(0,Ye.useRef)(null),i=sr(t,n);return(0,Ye.useEffect)(()=>{ + let o=n.current;if(o)return Ex(o); + },[]),(0,Ye.createElement)(HG,Ze({},e,{ref:i,trapFocus:r.open,disableOutsidePointerEvents:r.open,disableOutsideScroll:!0,onFocusOutside:xt(e.onFocusOutside,o=>o.preventDefault(),{checkForDefaultPrevented:!1}),onDismiss:()=>r.onOpenChange(!1)})); + }),Uve=(0,Ye.forwardRef)((e,t)=>{ + let r=Wg(ju,e.__scopeMenu);return(0,Ye.createElement)(HG,Ze({},e,{ref:t,trapFocus:!1,disableOutsidePointerEvents:!1,disableOutsideScroll:!1,onDismiss:()=>r.onOpenChange(!1)})); + }),HG=(0,Ye.forwardRef)((e,t)=>{ + let{__scopeMenu:r,loop:n=!1,trapFocus:i,onOpenAutoFocus:o,onCloseAutoFocus:s,disableOutsidePointerEvents:l,onEntryFocus:c,onEscapeKeyDown:f,onPointerDownOutside:m,onFocusOutside:v,onInteractOutside:g,onDismiss:y,disableOutsideScroll:w,...T}=e,S=Wg(ju,r),A=DP(ju,r),b=NP(r),C=BG(r),x=Ove(r),[k,P]=(0,Ye.useState)(null),D=(0,Ye.useRef)(null),N=sr(t,D,S.onContentChange),I=(0,Ye.useRef)(0),V=(0,Ye.useRef)(''),G=(0,Ye.useRef)(0),B=(0,Ye.useRef)(null),U=(0,Ye.useRef)('right'),z=(0,Ye.useRef)(0),j=w?Vg:Ye.Fragment,J=w?{as:bs,allowPinchZoom:!0}:void 0,K=re=>{ + var se,xe;let Re=V.current+re,Se=x().filter(He=>!He.disabled),ie=document.activeElement,ye=(se=Se.find(He=>He.ref.current===ie))===null||se===void 0?void 0:se.textValue,me=Se.map(He=>He.textValue),Oe=Xve(me,Re,ye),Ge=(xe=Se.find(He=>He.textValue===Oe))===null||xe===void 0?void 0:xe.ref.current;(function He(dr){ + V.current=dr,window.clearTimeout(I.current),dr!==''&&(I.current=window.setTimeout(()=>He(''),1e3)); + })(Re),Ge&&setTimeout(()=>Ge.focus()); + };(0,Ye.useEffect)(()=>()=>window.clearTimeout(I.current),[]),vx();let ee=(0,Ye.useCallback)(re=>{ + var se,xe;return U.current===((se=B.current)===null||se===void 0?void 0:se.side)&&Jve(re,(xe=B.current)===null||xe===void 0?void 0:xe.area); + },[]);return(0,Ye.createElement)(qve,{scope:r,searchRef:V,onItemEnter:(0,Ye.useCallback)(re=>{ + ee(re)&&re.preventDefault(); + },[ee]),onItemLeave:(0,Ye.useCallback)(re=>{ + var se;ee(re)||((se=D.current)===null||se===void 0||se.focus(),P(null)); + },[ee]),onTriggerLeave:(0,Ye.useCallback)(re=>{ + ee(re)&&re.preventDefault(); + },[ee]),pointerGraceTimerRef:G,onPointerGraceIntentChange:(0,Ye.useCallback)(re=>{ + B.current=re; + },[])},(0,Ye.createElement)(j,J,(0,Ye.createElement)(px,{asChild:!0,trapped:i,onMountAutoFocus:xt(o,re=>{ + var se;re.preventDefault(),(se=D.current)===null||se===void 0||se.focus(); + }),onUnmountAutoFocus:s},(0,Ye.createElement)(_p,{asChild:!0,disableOutsidePointerEvents:l,onEscapeKeyDown:f,onPointerDownOutside:m,onFocusOutside:v,onInteractOutside:g,onDismiss:y},(0,Ye.createElement)(qG,Ze({asChild:!0},C,{dir:A.dir,orientation:'vertical',loop:n,currentTabStopId:k,onCurrentTabStopIdChange:P,onEntryFocus:xt(c,re=>{ + A.isUsingKeyboardRef.current||re.preventDefault(); + })}),(0,Ye.createElement)(Yx,Ze({role:'menu','aria-orientation':'vertical','data-state':Wve(S.open),'data-radix-menu-content':'',dir:A.dir},b,T,{ref:N,style:{outline:'none',...T.style},onKeyDown:xt(T.onKeyDown,re=>{ + let xe=re.target.closest('[data-radix-menu-content]')===re.currentTarget,Re=re.ctrlKey||re.altKey||re.metaKey,Se=re.key.length===1;xe&&(re.key==='Tab'&&re.preventDefault(),!Re&&Se&&K(re.key));let ie=D.current;if(re.target!==ie||!kve.includes(re.key))return;re.preventDefault();let me=x().filter(Oe=>!Oe.disabled).map(Oe=>Oe.ref.current);UG.includes(re.key)&&me.reverse(),Yve(me); + }),onBlur:xt(e.onBlur,re=>{ + re.currentTarget.contains(re.target)||(window.clearTimeout(I.current),V.current=''); + }),onPointerMove:xt(e.onPointerMove,kP(re=>{ + let se=re.target,xe=z.current!==re.clientX;if(re.currentTarget.contains(se)&&xe){ + let Re=re.clientX>z.current?'right':'left';U.current=Re,z.current=re.clientX; + } + }))}))))))); + });var SP='MenuItem',VG='menu.itemSelect',Bve=(0,Ye.forwardRef)((e,t)=>{ + let{disabled:r=!1,onSelect:n,...i}=e,o=(0,Ye.useRef)(null),s=DP(SP,e.__scopeMenu),l=zG(SP,e.__scopeMenu),c=sr(t,o),f=(0,Ye.useRef)(!1),m=()=>{ + let v=o.current;if(!r&&v){ + let g=new CustomEvent(VG,{bubbles:!0,cancelable:!0});v.addEventListener(VG,y=>n?.(y),{once:!0}),dx(v,g),g.defaultPrevented?f.current=!1:s.onClose(); + } + };return(0,Ye.createElement)(Gve,Ze({},i,{ref:c,disabled:r,onClick:xt(e.onClick,m),onPointerDown:v=>{ + var g;(g=e.onPointerDown)===null||g===void 0||g.call(e,v),f.current=!0; + },onPointerUp:xt(e.onPointerUp,v=>{ + var g;f.current||(g=v.currentTarget)===null||g===void 0||g.click(); + }),onKeyDown:xt(e.onKeyDown,v=>{ + let g=l.searchRef.current!=='';r||g&&v.key===' '||TP.includes(v.key)&&(v.currentTarget.click(),v.preventDefault()); + })})); + }),Gve=(0,Ye.forwardRef)((e,t)=>{ + let{__scopeMenu:r,disabled:n=!1,textValue:i,...o}=e,s=zG(SP,r),l=BG(r),c=(0,Ye.useRef)(null),f=sr(t,c),[m,v]=(0,Ye.useState)(!1),[g,y]=(0,Ye.useState)('');return(0,Ye.useEffect)(()=>{ + let w=c.current;if(w){ + var T;y(((T=w.textContent)!==null&&T!==void 0?T:'').trim()); + } + },[o.children]),(0,Ye.createElement)(CP.ItemSlot,{scope:r,disabled:n,textValue:i??g},(0,Ye.createElement)(jG,Ze({asChild:!0},l,{focusable:!n}),(0,Ye.createElement)(cr.div,Ze({role:'menuitem','data-highlighted':m?'':void 0,'aria-disabled':n||void 0,'data-disabled':n?'':void 0},o,{ref:f,onPointerMove:xt(e.onPointerMove,kP(w=>{ + n?s.onItemLeave(w):(s.onItemEnter(w),w.defaultPrevented||w.currentTarget.focus()); + })),onPointerLeave:xt(e.onPointerLeave,kP(w=>s.onItemLeave(w))),onFocus:xt(e.onFocus,()=>v(!0)),onBlur:xt(e.onBlur,()=>v(!1))})))); + });var zve='MenuRadioGroup',[XLe,ZLe]=Cf(zve,{value:void 0,onValueChange:()=>{}});var Hve='MenuItemIndicator',[JLe,_Le]=Cf(Hve,{checked:!1});var Qve='MenuSub',[$Le,ePe]=Cf(Qve);function Wve(e){ + return e?'open':'closed'; +}function Yve(e){ + let t=document.activeElement;for(let r of e)if(r===t||(r.focus(),document.activeElement!==t))return; +}function Kve(e,t){ + return e.map((r,n)=>e[(t+n)%e.length]); +}function Xve(e,t,r){ + let i=t.length>1&&Array.from(t).every(f=>f===t[0])?t[0]:t,o=r?e.indexOf(r):-1,s=Kve(e,Math.max(o,0));i.length===1&&(s=s.filter(f=>f!==r));let c=s.find(f=>f.toLowerCase().startsWith(i.toLowerCase()));return c!==r?c:void 0; +}function Zve(e,t){ + let{x:r,y:n}=e,i=!1;for(let o=0,s=t.length-1;on!=m>n&&r<(f-l)*(n-c)/(m-c)+l&&(i=!i); + }return i; +}function Jve(e,t){ + if(!t)return!1;let r={x:e.clientX,y:e.clientY};return Zve(r,t); +}function kP(e){ + return t=>t.pointerType==='mouse'?e(t):void 0; +}var QG=Pve,WG=Rve,YG=Fve,KG=jve;var XG=Bve;var ZG='DropdownMenu',[_ve,xPe]=Hi(ZG,[OP]),Yg=OP(),[$ve,JG]=_ve(ZG),ege=e=>{ + let{__scopeDropdownMenu:t,children:r,dir:n,open:i,defaultOpen:o,onOpenChange:s,modal:l=!0}=e,c=Yg(t),f=(0,Zn.useRef)(null),[m=!1,v]=hu({prop:i,defaultProp:o,onChange:s});return(0,Zn.createElement)($ve,{scope:t,triggerId:Ea(),triggerRef:f,contentId:Ea(),open:m,onOpenChange:v,onOpenToggle:(0,Zn.useCallback)(()=>v(g=>!g),[v]),modal:l},(0,Zn.createElement)(QG,Ze({},c,{open:m,onOpenChange:v,dir:n,modal:l}),r)); + },tge='DropdownMenuTrigger',rge=(0,Zn.forwardRef)((e,t)=>{ + let{__scopeDropdownMenu:r,disabled:n=!1,...i}=e,o=JG(tge,r),s=Yg(r);return(0,Zn.createElement)(WG,Ze({asChild:!0},s),(0,Zn.createElement)(cr.button,Ze({type:'button',id:o.triggerId,'aria-haspopup':'menu','aria-expanded':o.open,'aria-controls':o.open?o.contentId:void 0,'data-state':o.open?'open':'closed','data-disabled':n?'':void 0,disabled:n},i,{ref:Ap(t,o.triggerRef),onPointerDown:xt(e.onPointerDown,l=>{ + !n&&l.button===0&&l.ctrlKey===!1&&(o.onOpenToggle(),o.open||l.preventDefault()); + }),onKeyDown:xt(e.onKeyDown,l=>{ + n||(['Enter',' '].includes(l.key)&&o.onOpenToggle(),l.key==='ArrowDown'&&o.onOpenChange(!0),['Enter',' ','ArrowDown'].includes(l.key)&&l.preventDefault()); + })}))); + });var nge=e=>{ + let{__scopeDropdownMenu:t,...r}=e,n=Yg(t);return(0,Zn.createElement)(YG,Ze({},n,r)); + },ige='DropdownMenuContent',oge=(0,Zn.forwardRef)((e,t)=>{ + let{__scopeDropdownMenu:r,...n}=e,i=JG(ige,r),o=Yg(r),s=(0,Zn.useRef)(!1);return(0,Zn.createElement)(KG,Ze({id:i.contentId,'aria-labelledby':i.triggerId},o,n,{ref:t,onCloseAutoFocus:xt(e.onCloseAutoFocus,l=>{ + var c;s.current||(c=i.triggerRef.current)===null||c===void 0||c.focus(),s.current=!1,l.preventDefault(); + }),onInteractOutside:xt(e.onInteractOutside,l=>{ + let c=l.detail.originalEvent,f=c.button===0&&c.ctrlKey===!0,m=c.button===2||f;(!i.modal||m)&&(s.current=!0); + }),style:{...e.style,'--radix-dropdown-menu-content-transform-origin':'var(--radix-popper-transform-origin)','--radix-dropdown-menu-content-available-width':'var(--radix-popper-available-width)','--radix-dropdown-menu-content-available-height':'var(--radix-popper-available-height)','--radix-dropdown-menu-trigger-width':'var(--radix-popper-anchor-width)','--radix-dropdown-menu-trigger-height':'var(--radix-popper-anchor-height)'}})); + });var age=(0,Zn.forwardRef)((e,t)=>{ + let{__scopeDropdownMenu:r,...n}=e,i=Yg(r);return(0,Zn.createElement)(XG,Ze({},i,n,{ref:t})); +});var _G=ege,$G=rge,ez=nge,tz=oge;var rz=age;var f_=fe(oW(),1);var rR=function(e,t){ + return rR=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(r,n){ + r.__proto__=n; + }||function(r,n){ + for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(r[i]=n[i]); + },rR(e,t); +};function uw(e,t){ + if(typeof t!='function'&&t!==null)throw new TypeError('Class extends value '+String(t)+' is not a constructor or null');rR(e,t);function r(){ + this.constructor=e; + }e.prototype=t===null?Object.create(t):(r.prototype=t.prototype,new r); +}var ve=function(){ + return ve=Object.assign||function(t){ + for(var r,n=1,i=arguments.length;n0)&&!(i=n.next()).done;)o.push(i.value); + }catch(l){ + s={error:l}; + }finally{ + try{ + i&&!i.done&&(r=n.return)&&r.call(n); + }finally{ + if(s)throw s.error; + } + }return o; +}function Jn(e,t,r){ + if(r||arguments.length===2)for(var n=0,i=t.length,o;n'u'||process.env===void 0?g0e:'production';var bl=function(e){ + return{isEnabled:function(t){ + return e.some(function(r){ + return!!t[r]; + }); + }}; + },Nf={measureLayout:bl(['layout','layoutId','drag']),animation:bl(['animate','exit','variants','whileHover','whileTap','whileFocus','whileDrag','whileInView']),exit:bl(['exit']),drag:bl(['drag','dragControls']),focus:bl(['whileFocus']),hover:bl(['whileHover','onHoverStart','onHoverEnd']),tap:bl(['whileTap','onTap','onTapStart','onTapCancel']),pan:bl(['onPan','onPanStart','onPanSessionStart','onPanEnd']),inView:bl(['whileInView','onViewportEnter','onViewportLeave'])};function aW(e){ + for(var t in e)e[t]!==null&&(t==='projectionNodeConstructor'?Nf.projectionNodeConstructor=e[t]:Nf[t].Component=e[t]); +}var Df=function(){},Gr=function(){};var sW=fe(Ee(),1),fw=(0,sW.createContext)({strict:!1});var cW=Object.keys(Nf),y0e=cW.length;function fW(e,t,r){ + var n=[],i=(0,uW.useContext)(fw);if(!t)return null;cw!=='production'&&r&&i.strict&&Gr(!1,'You have rendered a `motion` component within a `LazyMotion` component. This will break tree shaking. Import and render a `m` component instead.');for(var o=0;o'u')return t;var r=new Map;return new Proxy(t,{get:function(n,i){ + return r.has(i)||r.set(i,t(i)),r.get(i); + }}); +}var RW=['animate','circle','defs','desc','ellipse','g','image','line','filter','marker','mask','metadata','path','pattern','polygon','polyline','rect','stop','svg','switch','symbol','text','tspan','use','view'];function fm(e){ + return typeof e!='string'||e.includes('-')?!1:!!(RW.indexOf(e)>-1||/[A-Z]/.test(e)); +}var rY=fe(Ee(),1);var QW=fe(Ee(),1);var dm={};function MW(e){ + Object.assign(dm,e); +}var bw=['','X','Y','Z'],C0e=['translate','scale','rotate','skew'],pm=['transformPerspective','x','y','z'];C0e.forEach(function(e){ + return bw.forEach(function(t){ + return pm.push(e+t); + }); +});function IW(e,t){ + return pm.indexOf(e)-pm.indexOf(t); +}var S0e=new Set(pm);function Ds(e){ + return S0e.has(e); +}var k0e=new Set(['originX','originY','originZ']);function Aw(e){ + return k0e.has(e); +}function xw(e,t){ + var r=t.layout,n=t.layoutId;return Ds(e)||Aw(e)||(r||n!==void 0)&&(!!dm[e]||e==='opacity'); +}var Mn=function(e){ + return!!(e!==null&&typeof e=='object'&&e.getVelocity); +};var O0e={x:'translateX',y:'translateY',z:'translateZ',transformPerspective:'perspective'};function FW(e,t,r,n){ + var i=e.transform,o=e.transformKeys,s=t.enableHardwareAcceleration,l=s===void 0?!0:s,c=t.allowTransformNone,f=c===void 0?!0:c,m='';o.sort(IW);for(var v=!1,g=o.length,y=0;yr=>Math.max(Math.min(r,t),e),Gu=e=>e%1?Number(e.toFixed(5)):e,zu=/(-)?([\d]*\.?[\d])+/g,Tw=/(#[0-9a-f]{6}|#[0-9a-f]{3}|#(?:[0-9a-f]{2}){2,4}|(rgb|hsl)a?\((-?[\d\.]+%?[,\s]+){2,3}\s*\/*\s*[\d\.]+%?\))/gi,VW=/^(#[0-9a-f]{3}|#(?:[0-9a-f]{2}){2,4}|(rgb|hsl)a?\((-?[\d\.]+%?[,\s]+){2,3}\s*\/*\s*[\d\.]+%?\))$/i;function xl(e){ + return typeof e=='string'; +}var wo={test:e=>typeof e=='number',parse:parseFloat,transform:e=>e},wl=Object.assign(Object.assign({},wo),{transform:Ew(0,1)}),mm=Object.assign(Object.assign({},wo),{default:1});var ey=e=>({test:t=>xl(t)&&t.endsWith(e)&&t.split(' ').length===1,parse:parseFloat,transform:t=>`${t}${e}`}),qa=ey('deg'),yi=ey('%'),et=ey('px'),sR=ey('vh'),lR=ey('vw'),Cw=Object.assign(Object.assign({},yi),{parse:e=>yi.parse(e)/100,transform:e=>yi.transform(e*100)});var hm=(e,t)=>r=>!!(xl(r)&&VW.test(r)&&r.startsWith(e)||t&&Object.prototype.hasOwnProperty.call(r,t)),Sw=(e,t,r)=>n=>{ + if(!xl(n))return n;let[i,o,s,l]=n.match(zu);return{[e]:parseFloat(i),[t]:parseFloat(o),[r]:parseFloat(s),alpha:l!==void 0?parseFloat(l):1}; +};var Ls={test:hm('hsl','hue'),parse:Sw('hue','saturation','lightness'),transform:({hue:e,saturation:t,lightness:r,alpha:n=1})=>'hsla('+Math.round(e)+', '+yi.transform(Gu(t))+', '+yi.transform(Gu(r))+', '+Gu(wl.transform(n))+')'};var N0e=Ew(0,255),kw=Object.assign(Object.assign({},wo),{transform:e=>Math.round(N0e(e))}),Jo={test:hm('rgb','red'),parse:Sw('red','green','blue'),transform:({red:e,green:t,blue:r,alpha:n=1})=>'rgba('+kw.transform(e)+', '+kw.transform(t)+', '+kw.transform(r)+', '+Gu(wl.transform(n))+')'};function D0e(e){ + let t='',r='',n='',i='';return e.length>5?(t=e.substr(1,2),r=e.substr(3,2),n=e.substr(5,2),i=e.substr(7,2)):(t=e.substr(1,1),r=e.substr(2,1),n=e.substr(3,1),i=e.substr(4,1),t+=t,r+=r,n+=n,i+=i),{red:parseInt(t,16),green:parseInt(r,16),blue:parseInt(n,16),alpha:i?parseInt(i,16)/255:1}; +}var vm={test:hm('#'),parse:D0e,transform:Jo.transform};var Zr={test:e=>Jo.test(e)||vm.test(e)||Ls.test(e),parse:e=>Jo.test(e)?Jo.parse(e):Ls.test(e)?Ls.parse(e):vm.parse(e),transform:e=>xl(e)?e:e.hasOwnProperty('red')?Jo.transform(e):Ls.transform(e)};var UW='${c}',BW='${n}';function L0e(e){ + var t,r,n,i;return isNaN(e)&&xl(e)&&((r=(t=e.match(zu))===null||t===void 0?void 0:t.length)!==null&&r!==void 0?r:0)+((i=(n=e.match(Tw))===null||n===void 0?void 0:n.length)!==null&&i!==void 0?i:0)>0; +}function GW(e){ + typeof e=='number'&&(e=`${e}`);let t=[],r=0,n=e.match(Tw);n&&(r=n.length,e=e.replace(Tw,UW),t.push(...n.map(Zr.parse)));let i=e.match(zu);return i&&(e=e.replace(zu,BW),t.push(...i.map(wo.parse))),{values:t,numColors:r,tokenised:e}; +}function zW(e){ + return GW(e).values; +}function HW(e){ + let{values:t,numColors:r,tokenised:n}=GW(e),i=t.length;return o=>{ + let s=n;for(let l=0;ltypeof e=='number'?0:e;function R0e(e){ + let t=zW(e);return HW(e)(t.map(P0e)); +}var _n={test:L0e,parse:zW,createTransformer:HW,getAnimatableNone:R0e};var M0e=new Set(['brightness','contrast','saturate','opacity']);function I0e(e){ + let[t,r]=e.slice(0,-1).split('(');if(t==='drop-shadow')return e;let[n]=r.match(zu)||[];if(!n)return e;let i=r.replace(n,''),o=M0e.has(t)?1:0;return n!==r&&(o*=100),t+'('+o+i+')'; +}var F0e=/([a-z-]*)\(.*?\)/g,gm=Object.assign(Object.assign({},_n),{getAnimatableNone:e=>{ + let t=e.match(F0e);return t?t.map(I0e).join(' '):e; +}});var uR=ve(ve({},wo),{transform:Math.round});var Ow={borderWidth:et,borderTopWidth:et,borderRightWidth:et,borderBottomWidth:et,borderLeftWidth:et,borderRadius:et,radius:et,borderTopLeftRadius:et,borderTopRightRadius:et,borderBottomRightRadius:et,borderBottomLeftRadius:et,width:et,maxWidth:et,height:et,maxHeight:et,size:et,top:et,right:et,bottom:et,left:et,padding:et,paddingTop:et,paddingRight:et,paddingBottom:et,paddingLeft:et,margin:et,marginTop:et,marginRight:et,marginBottom:et,marginLeft:et,rotate:qa,rotateX:qa,rotateY:qa,rotateZ:qa,scale:mm,scaleX:mm,scaleY:mm,scaleZ:mm,skew:qa,skewX:qa,skewY:qa,distance:et,translateX:et,translateY:et,translateZ:et,x:et,y:et,z:et,perspective:et,transformPerspective:et,opacity:wl,originX:Cw,originY:Cw,originZ:et,zIndex:uR,fillOpacity:wl,strokeOpacity:wl,numOctaves:uR};function ym(e,t,r,n){ + var i,o=e.style,s=e.vars,l=e.transform,c=e.transformKeys,f=e.transformOrigin;c.length=0;var m=!1,v=!1,g=!0;for(var y in t){ + var w=t[y];if(ww(y)){ + s[y]=w;continue; + }var T=Ow[y],S=jW(w,T);if(Ds(y)){ + if(m=!0,l[y]=S,c.push(y),!g)continue;w!==((i=T.default)!==null&&i!==void 0?i:0)&&(g=!1); + }else Aw(y)?(f[y]=S,v=!0):o[y]=S; + }m?o.transform=FW(e,r,g,n):n?o.transform=n({},''):!t.transform&&o.transform&&(o.transform='none'),v&&(o.transformOrigin=qW(f)); +}var bm=function(){ + return{style:{},transform:{},transformKeys:[],transformOrigin:{},vars:{}}; +};function cR(e,t,r){ + for(var n in t)!Mn(t[n])&&!xw(n,r)&&(e[n]=t[n]); +}function q0e(e,t,r){ + var n=e.transformTemplate;return(0,QW.useMemo)(function(){ + var i=bm();ym(i,t,{enableHardwareAcceleration:!r},n);var o=i.vars,s=i.style;return ve(ve({},o),s); + },[t]); +}function j0e(e,t,r){ + var n=e.style||{},i={};return cR(i,n,e),Object.assign(i,q0e(e,t,r)),e.transformValues&&(i=e.transformValues(i)),i; +}function WW(e,t,r){ + var n={},i=j0e(e,t,r);return e.drag&&e.dragListener!==!1&&(n.draggable=!1,i.userSelect=i.WebkitUserSelect=i.WebkitTouchCallout='none',i.touchAction=e.drag===!0?'none':'pan-'.concat(e.drag==='x'?'y':'x')),n.style=i,n; +}var V0e=new Set(['initial','animate','exit','style','variants','transition','transformTemplate','transformValues','custom','inherit','layout','layoutId','layoutDependency','onLayoutAnimationStart','onLayoutAnimationComplete','onLayoutMeasure','onBeforeLayoutMeasure','onAnimationStart','onAnimationComplete','onUpdate','onDragStart','onDrag','onDragEnd','onMeasureDragConstraints','onDirectionLock','onDragTransitionEnd','drag','dragControls','dragListener','dragConstraints','dragDirectionLock','dragSnapToOrigin','_dragX','_dragY','dragElastic','dragMomentum','dragPropagation','dragTransition','whileDrag','onPan','onPanStart','onPanEnd','onPanSessionStart','onTap','onTapStart','onTapCancel','onHoverStart','onHoverEnd','whileFocus','whileTap','whileHover','whileInView','onViewportEnter','onViewportLeave','viewport','layoutScroll']);function ty(e){ + return V0e.has(e); +}var XW=function(e){ + return!ty(e); +};function Q0e(e){ + e&&(XW=function(t){ + return t.startsWith('on')?!ty(t):e(t); + }); +}try{ + Q0e(KW().default); +}catch{}function ZW(e,t,r){ + var n={};for(var i in e)(XW(i)||r===!0&&ty(i)||!t&&!ty(i)||e.draggable&&i.startsWith('onDrag'))&&(n[i]=e[i]);return n; +}var eY=fe(Ee(),1);function JW(e,t,r){ + return typeof e=='string'?e:et.transform(t+r*e); +}function _W(e,t,r){ + var n=JW(t,e.x,e.width),i=JW(r,e.y,e.height);return''.concat(n,' ').concat(i); +}var W0e={offset:'stroke-dashoffset',array:'stroke-dasharray'},Y0e={offset:'strokeDashoffset',array:'strokeDasharray'};function $W(e,t,r,n,i){ + r===void 0&&(r=1),n===void 0&&(n=0),i===void 0&&(i=!0),e.pathLength=1;var o=i?W0e:Y0e;e[o.offset]=et.transform(-n);var s=et.transform(t),l=et.transform(r);e[o.array]=''.concat(s,' ').concat(l); +}function Am(e,t,r,n){ + var i=t.attrX,o=t.attrY,s=t.originX,l=t.originY,c=t.pathLength,f=t.pathSpacing,m=f===void 0?1:f,v=t.pathOffset,g=v===void 0?0:v,y=Fr(t,['attrX','attrY','originX','originY','pathLength','pathSpacing','pathOffset']);ym(e,y,r,n),e.attrs=e.style,e.style={};var w=e.attrs,T=e.style,S=e.dimensions;w.transform&&(S&&(T.transform=w.transform),delete w.transform),S&&(s!==void 0||l!==void 0||T.transform)&&(T.transformOrigin=_W(S,s!==void 0?s:.5,l!==void 0?l:.5)),i!==void 0&&(w.x=i),o!==void 0&&(w.y=o),c!==void 0&&$W(w,c,m,g,!1); +}var Nw=function(){ + return ve(ve({},bm()),{attrs:{}}); +};function tY(e,t){ + var r=(0,eY.useMemo)(function(){ + var i=Nw();return Am(i,t,{enableHardwareAcceleration:!1},e.transformTemplate),ve(ve({},i.attrs),{style:ve({},i.style)}); + },[t]);if(e.style){ + var n={};cR(n,e.style,e),r.style=ve(ve({},n),r.style); + }return r; +}function nY(e){ + e===void 0&&(e=!1);var t=function(r,n,i,o,s,l){ + var c=s.latestValues,f=fm(r)?tY:WW,m=f(n,c,l),v=ZW(n,typeof r=='string',e),g=ve(ve(ve({},v),m),{ref:o});return i&&(g['data-projection-id']=i),(0,rY.createElement)(r,g); + };return t; +}var K0e=/([a-z])([A-Z])/g,X0e='$1-$2',Dw=function(e){ + return e.replace(K0e,X0e).toLowerCase(); +};function Lw(e,t,r,n){ + var i=t.style,o=t.vars;Object.assign(e.style,i,n&&n.getProjectionStyles(r));for(var s in o)e.style.setProperty(s,o[s]); +}var Pw=new Set(['baseFrequency','diffuseConstant','kernelMatrix','kernelUnitLength','keySplines','keyTimes','limitingConeAngle','markerHeight','markerWidth','numOctaves','targetX','targetY','surfaceScale','specularConstant','specularExponent','stdDeviation','tableValues','viewBox','gradientTransform','pathLength']);function Rw(e,t,r,n){ + Lw(e,t,void 0,n);for(var i in t.attrs)e.setAttribute(Pw.has(i)?i:Dw(i),t.attrs[i]); +}function xm(e){ + var t=e.style,r={};for(var n in t)(Mn(t[n])||xw(n,e))&&(r[n]=t[n]);return r; +}function Mw(e){ + var t=xm(e);for(var r in e)if(Mn(e[r])){ + var n=r==='x'||r==='y'?'attr'+r.toUpperCase():r;t[n]=e[r]; + }return t; +}var pR=fe(Ee(),1);function wm(e){ + return typeof e=='object'&&typeof e.start=='function'; +}var El=function(e){ + return Array.isArray(e); +};var iY=function(e){ + return!!(e&&typeof e=='object'&&e.mix&&e.toValue); + },Iw=function(e){ + return El(e)?e[e.length-1]||0:e; + };function Em(e){ + var t=Mn(e)?e.get():e;return iY(t)?t.toValue():t; +}function oY(e,t,r,n){ + var i=e.scrapeMotionValuesFromProps,o=e.createRenderState,s=e.onMount,l={latestValues:Z0e(t,r,n,i),renderState:o()};return s&&(l.mount=function(c){ + return s(t,c,l); + }),l; +}var Fw=function(e){ + return function(t,r){ + var n=(0,pR.useContext)(Lf),i=(0,pR.useContext)(Uu);return r?oY(e,t,n,i):gi(function(){ + return oY(e,t,n,i); + }); + }; +};function Z0e(e,t,r,n){ + var i={},o=r?.initial===!1,s=n(e);for(var l in s)i[l]=Em(s[l]);var c=e.initial,f=e.animate,m=Mf(e),v=hw(e);t&&v&&!m&&e.inherit!==!1&&(c??(c=t.initial),f??(f=t.animate));var g=o||c===!1,y=g?f:c;if(y&&typeof y!='boolean'&&!wm(y)){ + var w=Array.isArray(y)?y:[y];w.forEach(function(T){ + var S=oR(e,T);if(S){ + var A=S.transitionEnd;S.transition;var b=Fr(S,['transitionEnd','transition']);for(var C in b){ + var x=b[C];if(Array.isArray(x)){ + var k=g?x.length-1:0;x=x[k]; + }x!==null&&(i[C]=x); + }for(var C in A)i[C]=A[C]; + } + }); + }return i; +}var aY={useVisualState:Fw({scrapeMotionValuesFromProps:Mw,createRenderState:Nw,onMount:function(e,t,r){ + var n=r.renderState,i=r.latestValues;try{ + n.dimensions=typeof t.getBBox=='function'?t.getBBox():t.getBoundingClientRect(); + }catch{ + n.dimensions={x:0,y:0,width:0,height:0}; + }Am(n,i,{enableHardwareAcceleration:!1},e.transformTemplate),Rw(t,n); +}})};var sY={useVisualState:Fw({scrapeMotionValuesFromProps:xm,createRenderState:bm})};function lY(e,t,r,n,i){ + var o=t.forwardMotionProps,s=o===void 0?!1:o,l=fm(e)?aY:sY;return ve(ve({},l),{preloadedFeatures:r,useRender:nY(s),createVisualElement:n,projectionNodeConstructor:i,Component:e}); +}var Ft;(function(e){ + e.Animate='animate',e.Hover='whileHover',e.Tap='whileTap',e.Drag='whileDrag',e.Focus='whileFocus',e.InView='whileInView',e.Exit='exit'; +})(Ft||(Ft={}));var uY=fe(Ee(),1);function If(e,t,r,n){ + return n===void 0&&(n={passive:!0}),e.addEventListener(t,r,n),function(){ + return e.removeEventListener(t,r); + }; +}function ry(e,t,r,n){ + (0,uY.useEffect)(function(){ + var i=e.current;if(r&&i)return If(i,t,r,n); + },[e,t,r,n]); +}function cY(e){ + var t=e.whileFocus,r=e.visualElement,n=function(){ + var o;(o=r.animationState)===null||o===void 0||o.setActive(Ft.Focus,!0); + },i=function(){ + var o;(o=r.animationState)===null||o===void 0||o.setActive(Ft.Focus,!1); + };ry(r,'focus',t?n:void 0),ry(r,'blur',t?i:void 0); +}function qw(e){ + return typeof PointerEvent<'u'&&e instanceof PointerEvent?e.pointerType==='mouse':e instanceof MouseEvent; +}function jw(e){ + var t=!!e.touches;return t; +}function J0e(e){ + return function(t){ + var r=t instanceof MouseEvent,n=!r||r&&t.button===0;n&&e(t); + }; +}var _0e={pageX:0,pageY:0};function $0e(e,t){ + t===void 0&&(t='page');var r=e.touches[0]||e.changedTouches[0],n=r||_0e;return{x:n[t+'X'],y:n[t+'Y']}; +}function ebe(e,t){ + return t===void 0&&(t='page'),{x:e[t+'X'],y:e[t+'Y']}; +}function ny(e,t){ + return t===void 0&&(t='page'),{point:jw(e)?$0e(e,t):ebe(e,t)}; +}var mR=function(e,t){ + t===void 0&&(t=!1);var r=function(n){ + return e(n,ny(n)); + };return t?J0e(r):r; +};var fY=function(){ + return Ns&&window.onpointerdown===null; + },dY=function(){ + return Ns&&window.ontouchstart===null; + },pY=function(){ + return Ns&&window.onmousedown===null; + };var tbe={pointerdown:'mousedown',pointermove:'mousemove',pointerup:'mouseup',pointercancel:'mousecancel',pointerover:'mouseover',pointerout:'mouseout',pointerenter:'mouseenter',pointerleave:'mouseleave'},rbe={pointerdown:'touchstart',pointermove:'touchmove',pointerup:'touchend',pointercancel:'touchcancel'};function mY(e){ + return fY()?e:dY()?rbe[e]:pY()?tbe[e]:e; +}function Tl(e,t,r,n){ + return If(e,mY(t),mR(r,t==='pointerdown'),n); +}function Ff(e,t,r,n){ + return ry(e,mY(t),r&&mR(r,t==='pointerdown'),n); +}function gY(e){ + var t=null;return function(){ + var r=function(){ + t=null; + };return t===null?(t=e,r):!1; + }; +}var hY=gY('dragHorizontal'),vY=gY('dragVertical');function hR(e){ + var t=!1;if(e==='y')t=vY();else if(e==='x')t=hY();else{ + var r=hY(),n=vY();r&&n?t=function(){ + r(),n(); + }:(r&&r(),n&&n()); + }return t; +}function Vw(){ + var e=hR(!0);return e?(e(),!1):!0; +}function yY(e,t,r){ + return function(n,i){ + var o;!qw(n)||Vw()||((o=e.animationState)===null||o===void 0||o.setActive(Ft.Hover,t),r?.(n,i)); + }; +}function bY(e){ + var t=e.onHoverStart,r=e.onHoverEnd,n=e.whileHover,i=e.visualElement;Ff(i,'pointerenter',t||n?yY(i,!0,t):void 0,{passive:!t}),Ff(i,'pointerleave',r||n?yY(i,!1,r):void 0,{passive:!r}); +}var jR=fe(Ee(),1);var vR=function(e,t){ + return t?e===t?!0:vR(e,t.parentElement):!1; +};var AY=fe(Ee(),1);function Uw(e){ + return(0,AY.useEffect)(function(){ + return function(){ + return e(); + }; + },[]); +}function Bw(e,t){ + var r={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(e!=null&&typeof Object.getOwnPropertySymbols=='function')for(var i=0,n=Object.getOwnPropertySymbols(e);iMath.min(Math.max(r,e),t);var gR=.001,nbe=.01,xY=10,ibe=.05,obe=1;function wY({duration:e=800,bounce:t=.25,velocity:r=0,mass:n=1}){ + let i,o;Df(e<=xY*1e3,'Spring duration must be 10 seconds or less');let s=1-t;s=Hu(ibe,obe,s),e=Hu(nbe,xY,e/1e3),s<1?(i=f=>{ + let m=f*s,v=m*e,g=m-r,y=Gw(f,s),w=Math.exp(-v);return gR-g/y*w; + },o=f=>{ + let v=f*s*e,g=v*r+r,y=Math.pow(s,2)*Math.pow(f,2)*e,w=Math.exp(-v),T=Gw(Math.pow(f,2),s);return(-i(f)+gR>0?-1:1)*((g-y)*w)/T; + }):(i=f=>{ + let m=Math.exp(-f*e),v=(f-r)*e+1;return-gR+m*v; + },o=f=>{ + let m=Math.exp(-f*e),v=(r-f)*(e*e);return m*v; + });let l=5/e,c=sbe(i,o,l);if(e=e*1e3,isNaN(c))return{stiffness:100,damping:10,duration:e};{let f=Math.pow(c,2)*n;return{stiffness:f,damping:s*2*Math.sqrt(n*f),duration:e};} +}var abe=12;function sbe(e,t,r){ + let n=r;for(let i=1;ie[r]!==void 0); +}function cbe(e){ + let t=Object.assign({velocity:0,stiffness:100,damping:10,mass:1,isResolvedFromDuration:!1},e);if(!EY(e,ube)&&EY(e,lbe)){ + let r=wY(e);t=Object.assign(Object.assign(Object.assign({},t),r),{velocity:0,mass:1}),t.isResolvedFromDuration=!0; + }return t; +}function zw(e){ + var{from:t=0,to:r=1,restSpeed:n=2,restDelta:i}=e,o=Bw(e,['from','to','restSpeed','restDelta']);let s={done:!1,value:t},{stiffness:l,damping:c,mass:f,velocity:m,duration:v,isResolvedFromDuration:g}=cbe(o),y=TY,w=TY;function T(){ + let S=m?-(m/1e3):0,A=r-t,b=c/(2*Math.sqrt(l*f)),C=Math.sqrt(l/f)/1e3;if(i===void 0&&(i=Math.min(Math.abs(r-t)/100,.4)),b<1){ + let x=Gw(C,b);y=k=>{ + let P=Math.exp(-b*C*k);return r-P*((S+b*C*A)/x*Math.sin(x*k)+A*Math.cos(x*k)); + },w=k=>{ + let P=Math.exp(-b*C*k);return b*C*P*(Math.sin(x*k)*(S+b*C*A)/x+A*Math.cos(x*k))-P*(Math.cos(x*k)*(S+b*C*A)-x*A*Math.sin(x*k)); + }; + }else if(b===1)y=x=>r-Math.exp(-C*x)*(A+(S+C*A)*x);else{ + let x=C*Math.sqrt(b*b-1);y=k=>{ + let P=Math.exp(-b*C*k),D=Math.min(x*k,300);return r-P*((S+b*C*A)*Math.sinh(D)+x*A*Math.cosh(D))/x; + }; + } + }return T(),{next:S=>{ + let A=y(S);if(g)s.done=S>=v;else{ + let b=w(S)*1e3,C=Math.abs(b)<=n,x=Math.abs(r-A)<=i;s.done=C&&x; + }return s.value=s.done?r:A,s; + },flipTarget:()=>{ + m=-m,[t,r]=[r,t],T(); + }}; +}zw.needsInterpolation=(e,t)=>typeof e=='string'||typeof t=='string';var TY=e=>0;var Cl=(e,t,r)=>{ + let n=t-e;return n===0?1:(r-e)/n; +};var Dt=(e,t,r)=>-r*e+r*t+e;function yR(e,t,r){ + return r<0&&(r+=1),r>1&&(r-=1),r<1/6?e+(t-e)*6*r:r<1/2?t:r<2/3?e+(t-e)*(2/3-r)*6:e; +}function bR({hue:e,saturation:t,lightness:r,alpha:n}){ + e/=360,t/=100,r/=100;let i=0,o=0,s=0;if(!t)i=o=s=r;else{ + let l=r<.5?r*(1+t):r+t-r*t,c=2*r-l;i=yR(c,l,e+1/3),o=yR(c,l,e),s=yR(c,l,e-1/3); + }return{red:Math.round(i*255),green:Math.round(o*255),blue:Math.round(s*255),alpha:n}; +}var fbe=(e,t,r)=>{ + let n=e*e,i=t*t;return Math.sqrt(Math.max(0,r*(i-n)+n)); + },dbe=[vm,Jo,Ls],CY=e=>dbe.find(t=>t.test(e)),SY=e=>`'${e}' is not an animatable color. Use the equivalent color code instead.`,Hw=(e,t)=>{ + let r=CY(e),n=CY(t);Gr(!!r,SY(e)),Gr(!!n,SY(t));let i=r.parse(e),o=n.parse(t);r===Ls&&(i=bR(i),r=Jo),n===Ls&&(o=bR(o),n=Jo);let s=Object.assign({},i);return l=>{ + for(let c in s)c!=='alpha'&&(s[c]=fbe(i[c],o[c],l));return s.alpha=Dt(i.alpha,o.alpha,l),r.transform(s); + }; + };var iy=e=>typeof e=='number';var pbe=(e,t)=>r=>t(e(r)),Sl=(...e)=>e.reduce(pbe);function OY(e,t){ + return iy(e)?r=>Dt(e,t,r):Zr.test(e)?Hw(e,t):xR(e,t); +}var AR=(e,t)=>{ + let r=[...e],n=r.length,i=e.map((o,s)=>OY(o,t[s]));return o=>{ + for(let s=0;s{ + let r=Object.assign(Object.assign({},e),t),n={};for(let i in r)e[i]!==void 0&&t[i]!==void 0&&(n[i]=OY(e[i],t[i]));return i=>{ + for(let o in n)r[o]=n[o](i);return r; + }; + };function kY(e){ + let t=_n.parse(e),r=t.length,n=0,i=0,o=0;for(let s=0;s{ + let r=_n.createTransformer(t),n=kY(e),i=kY(t);return n.numHSL===i.numHSL&&n.numRGB===i.numRGB&&n.numNumbers>=i.numNumbers?Sl(AR(n.parsed,i.parsed),r):(Df(!0,`Complex values '${e}' and '${t}' too different to mix. Ensure all colors are of the same type, and that each contains the same quantity of number and color values. Falling back to instant transition.`),s=>`${s>0?t:e}`); +};var mbe=(e,t)=>r=>Dt(e,t,r);function hbe(e){ + if(typeof e=='number')return mbe;if(typeof e=='string')return Zr.test(e)?Hw:xR;if(Array.isArray(e))return AR;if(typeof e=='object')return NY; +}function vbe(e,t,r){ + let n=[],i=r||hbe(e[0]),o=e.length-1;for(let s=0;sr(Cl(e,t,n)); +}function ybe(e,t){ + let r=e.length,n=r-1;return i=>{ + let o=0,s=!1;if(i<=e[0]?s=!0:i>=e[n]&&(o=n-1,s=!0),!s){ + let c=1;for(;ci||c===n);c++);o=c-1; + }let l=Cl(e[o],e[o+1],i);return t[o](l); + }; +}function qf(e,t,{clamp:r=!0,ease:n,mixer:i}={}){ + let o=e.length;Gr(o===t.length,'Both input and output ranges must be the same length'),Gr(!n||!Array.isArray(n)||n.length===o-1,'Array of easing functions must be of length `input.length - 1`, as it applies to the transitions **between** the defined values.'),e[0]>e[o-1]&&(e=[].concat(e),t=[].concat(t),e.reverse(),t.reverse());let s=vbe(t,n,i),l=o===2?gbe(e,s):ybe(e,s);return r?c=>l(Hu(e[0],e[o-1],c)):l; +}var oy=e=>t=>1-e(1-t),Qw=e=>t=>t<=.5?e(2*t)/2:(2-e(2*(1-t)))/2,DY=e=>t=>Math.pow(t,e),wR=e=>t=>t*t*((e+1)*t-e),LY=e=>{ + let t=wR(e);return r=>(r*=2)<1?.5*t(r):.5*(2-Math.pow(2,-10*(r-1))); +};var PY=1.525,bbe=4/11,Abe=8/11,xbe=9/10,jf=e=>e,ay=DY(2),ER=oy(ay),sy=Qw(ay),Ww=e=>1-Math.sin(Math.acos(e)),Cm=oy(Ww),TR=Qw(Cm),ly=wR(PY),CR=oy(ly),SR=Qw(ly),kR=LY(PY),wbe=4356/361,Ebe=35442/1805,Tbe=16061/1805,Tm=e=>{ + if(e===1||e===0)return e;let t=e*e;return ee<.5?.5*(1-Tm(1-e*2)):.5*Tm(e*2-1)+.5;function Cbe(e,t){ + return e.map(()=>t||sy).splice(0,e.length-1); +}function Sbe(e){ + let t=e.length;return e.map((r,n)=>n!==0?n/(t-1):0); +}function kbe(e,t){ + return e.map(r=>r*t); +}function uy({from:e=0,to:t=1,ease:r,offset:n,duration:i=300}){ + let o={done:!1,value:e},s=Array.isArray(t)?t:[e,t],l=kbe(n&&n.length===s.length?n:Sbe(s),i);function c(){ + return qf(l,s,{ease:Array.isArray(r)?r:Cbe(s,r)}); + }let f=c();return{next:m=>(o.value=f(m),o.done=m>=i,o),flipTarget:()=>{ + s.reverse(),f=c(); + }}; +}function RY({velocity:e=0,from:t=0,power:r=.8,timeConstant:n=350,restDelta:i=.5,modifyTarget:o}){ + let s={done:!1,value:t},l=r*e,c=t+l,f=o===void 0?c:o(c);return f!==c&&(l=f-t),{next:m=>{ + let v=-l*Math.exp(-m/n);return s.done=!(v>i||v<-i),s.value=s.done?f:f+v,s; + },flipTarget:()=>{}}; +}var MY={keyframes:uy,spring:zw,decay:RY};function IY(e){ + if(Array.isArray(e.to))return uy;if(MY[e.type])return MY[e.type];let t=new Set(Object.keys(e));return t.has('ease')||t.has('duration')&&!t.has('dampingRatio')?uy:t.has('dampingRatio')||t.has('stiffness')||t.has('mass')||t.has('damping')||t.has('restSpeed')||t.has('restDelta')?zw:uy; +}var DR=16.666666666666668,Obe=typeof performance<'u'?()=>performance.now():()=>Date.now(),LR=typeof window<'u'?e=>window.requestAnimationFrame(e):e=>setTimeout(()=>e(Obe()),DR);function FY(e){ + let t=[],r=[],n=0,i=!1,o=!1,s=new WeakSet,l={schedule:(c,f=!1,m=!1)=>{ + let v=m&&i,g=v?t:r;return f&&s.add(c),g.indexOf(c)===-1&&(g.push(c),v&&i&&(n=t.length)),c; + },cancel:c=>{ + let f=r.indexOf(c);f!==-1&&r.splice(f,1),s.delete(c); + },process:c=>{ + if(i){ + o=!0;return; + }if(i=!0,[t,r]=[r,t],r.length=0,n=t.length,n)for(let f=0;f(e[t]=FY(()=>cy=!0),e),{}),Dbe=fy.reduce((e,t)=>{ + let r=Yw[t];return e[t]=(n,i=!1,o=!1)=>(cy||Pbe(),r.schedule(n,i,o)),e; + },{}),Ps=fy.reduce((e,t)=>(e[t]=Yw[t].cancel,e),{}),Kw=fy.reduce((e,t)=>(e[t]=()=>Yw[t].process(Sm),e),{}),Lbe=e=>Yw[e].process(Sm),qY=e=>{ + cy=!1,Sm.delta=PR?DR:Math.max(Math.min(e-Sm.timestamp,Nbe),1),Sm.timestamp=e,RR=!0,fy.forEach(Lbe),RR=!1,cy&&(PR=!1,LR(qY)); + },Pbe=()=>{ + cy=!0,PR=!0,RR||LR(qY); + },Vf=()=>Sm,In=Dbe;function MR(e,t,r=0){ + return e-t-r; +}function jY(e,t,r=0,n=!0){ + return n?MR(t+-e,t,r):t-(e-t)+r; +}function VY(e,t,r,n){ + return n?e>=t+r:e<=-r; +}var Rbe=e=>{ + let t=({delta:r})=>e(r);return{start:()=>In.update(t,!0),stop:()=>Ps.update(t)}; +};function dy(e){ + var t,r,{from:n,autoplay:i=!0,driver:o=Rbe,elapsed:s=0,repeat:l=0,repeatType:c='loop',repeatDelay:f=0,onPlay:m,onStop:v,onComplete:g,onRepeat:y,onUpdate:w}=e,T=Bw(e,['from','autoplay','driver','elapsed','repeat','repeatType','repeatDelay','onPlay','onStop','onComplete','onRepeat','onUpdate']);let{to:S}=T,A,b=0,C=T.duration,x,k=!1,P=!0,D,N=IY(T);!((r=(t=N).needsInterpolation)===null||r===void 0)&&r.call(t,n,S)&&(D=qf([0,100],[n,S],{clamp:!1}),n=0,S=100);let I=N(Object.assign(Object.assign({},T),{from:n,to:S}));function V(){ + b++,c==='reverse'?(P=b%2===0,s=jY(s,C,f,P)):(s=MR(s,C,f),c==='mirror'&&I.flipTarget()),k=!1,y&&y(); + }function G(){ + A.stop(),g&&g(); + }function B(z){ + if(P||(z=-z),s+=z,!k){ + let j=I.next(Math.max(0,s));x=j.value,D&&(x=D(x)),k=P?j.done:s<=0; + }w?.(x),k&&(b===0&&(C??(C=s)),b{ + v?.(),A.stop(); + }}; +}function py(e,t){ + return t?e*(1e3/t):0; +}function IR({from:e=0,velocity:t=0,min:r,max:n,power:i=.8,timeConstant:o=750,bounceStiffness:s=500,bounceDamping:l=10,restDelta:c=1,modifyTarget:f,driver:m,onUpdate:v,onComplete:g,onStop:y}){ + let w;function T(C){ + return r!==void 0&&Cn; + }function S(C){ + return r===void 0?n:n===void 0||Math.abs(r-C){ + var k;v?.(x),(k=C.onUpdate)===null||k===void 0||k.call(C,x); + },onComplete:g,onStop:y})); + }function b(C){ + A(Object.assign({type:'spring',stiffness:s,damping:l,restDelta:c},C)); + }if(T(e))b({from:e,velocity:t,to:S(e)});else{ + let C=i*t+e;typeof f<'u'&&(C=f(C));let x=S(C),k=x===r?-1:1,P,D,N=I=>{ + P=D,D=I,t=py(I-P,Vf().delta),(k===1&&I>x||k===-1&&Iw?.stop()}; +}var my=e=>e.hasOwnProperty('x')&&e.hasOwnProperty('y');var FR=e=>my(e)&&e.hasOwnProperty('z');var Xw=(e,t)=>Math.abs(e-t);function hy(e,t){ + if(iy(e)&&iy(t))return Xw(e,t);if(my(e)&&my(t)){ + let r=Xw(e.x,t.x),n=Xw(e.y,t.y),i=FR(e)&&FR(t)?Xw(e.z,t.z):0;return Math.sqrt(Math.pow(r,2)+Math.pow(n,2)+Math.pow(i,2)); + } +}var UY=(e,t)=>1-3*t+3*e,BY=(e,t)=>3*t-6*e,GY=e=>3*e,_w=(e,t,r)=>((UY(t,r)*e+BY(t,r))*e+GY(t))*e,zY=(e,t,r)=>3*UY(t,r)*e*e+2*BY(t,r)*e+GY(t),Mbe=1e-7,Ibe=10;function Fbe(e,t,r,n,i){ + let o,s,l=0;do s=t+(r-t)/2,o=_w(s,n,i)-e,o>0?r=s:t=s;while(Math.abs(o)>Mbe&&++l=jbe?Vbe(s,v,e,r):g===0?v:Fbe(s,l,l+Zw,e,r); + }return s=>s===0||s===1?s:_w(o(s),t,n); +}function HY(e){ + var t=e.onTap,r=e.onTapStart,n=e.onTapCancel,i=e.whileTap,o=e.visualElement,s=t||r||n||i,l=(0,jR.useRef)(!1),c=(0,jR.useRef)(null),f={passive:!(r||t||n||w)};function m(){ + var T;(T=c.current)===null||T===void 0||T.call(c),c.current=null; + }function v(){ + var T;return m(),l.current=!1,(T=o.animationState)===null||T===void 0||T.setActive(Ft.Tap,!1),!Vw(); + }function g(T,S){ + v()&&(vR(o.getInstance(),T.target)?t?.(T,S):n?.(T,S)); + }function y(T,S){ + v()&&n?.(T,S); + }function w(T,S){ + var A;m(),!l.current&&(l.current=!0,c.current=Sl(Tl(window,'pointerup',g,f),Tl(window,'pointercancel',y,f)),(A=o.animationState)===null||A===void 0||A.setActive(Ft.Tap,!0),r?.(T,S)); + }Ff(o,'pointerdown',s?w:void 0,f),Uw(m); +}var vy=fe(Ee(),1);var QY=new Set;function WY(e,t,r){ + e||QY.has(t)||(console.warn(t),r&&console.warn(r),QY.add(t)); +}var UR=new WeakMap,VR=new WeakMap,Ube=function(e){ + var t;(t=UR.get(e.target))===null||t===void 0||t(e); + },Bbe=function(e){ + e.forEach(Ube); + };function Gbe(e){ + var t=e.root,r=Fr(e,['root']),n=t||document;VR.has(n)||VR.set(n,{});var i=VR.get(n),o=JSON.stringify(r);return i[o]||(i[o]=new IntersectionObserver(Bbe,ve({root:t},r))),i[o]; +}function YY(e,t,r){ + var n=Gbe(t);return UR.set(e,r),n.observe(e),function(){ + UR.delete(e),n.unobserve(e); + }; +}function KY(e){ + var t=e.visualElement,r=e.whileInView,n=e.onViewportEnter,i=e.onViewportLeave,o=e.viewport,s=o===void 0?{}:o,l=(0,vy.useRef)({hasEnteredView:!1,isInView:!1}),c=!!(r||n||i);s.once&&l.current.hasEnteredView&&(c=!1);var f=typeof IntersectionObserver>'u'?Qbe:Hbe;f(c,l.current,t,s); +}var zbe={some:0,all:1};function Hbe(e,t,r,n){ + var i=n.root,o=n.margin,s=n.amount,l=s===void 0?'some':s,c=n.once;(0,vy.useEffect)(function(){ + if(e){ + var f={root:i?.current,rootMargin:o,threshold:typeof l=='number'?l:zbe[l]},m=function(v){ + var g,y=v.isIntersecting;if(t.isInView!==y&&(t.isInView=y,!(c&&!y&&t.hasEnteredView))){ + y&&(t.hasEnteredView=!0),(g=r.animationState)===null||g===void 0||g.setActive(Ft.InView,y);var w=r.getProps(),T=y?w.onViewportEnter:w.onViewportLeave;T?.(v); + } + };return YY(r.getInstance(),f,m); + } + },[e,i,o,l]); +}function Qbe(e,t,r,n){ + var i=n.fallback,o=i===void 0?!0:i;(0,vy.useEffect)(function(){ + !e||!o||(cw!=='production'&&WY(!1,'IntersectionObserver not available on this device. whileInView animations will trigger on mount.'),requestAnimationFrame(function(){ + var s;t.hasEnteredView=!0;var l=r.getProps().onViewportEnter;l?.(null),(s=r.animationState)===null||s===void 0||s.setActive(Ft.InView,!0); + })); + },[e]); +}var ja=function(e){ + return function(t){ + return e(t),null; + }; +};var XY={inView:ja(KY),tap:ja(HY),focus:ja(cY),hover:ja(bY)};var yy=fe(Ee(),1);var $w=fe(Ee(),1);var Wbe=0,Ybe=function(){ + return Wbe++; + },ZY=function(){ + return gi(Ybe); + };function eE(){ + var e=(0,$w.useContext)(Uu);if(e===null)return[!0,null];var t=e.isPresent,r=e.onExitComplete,n=e.register,i=ZY();(0,$w.useEffect)(function(){ + return n(i); + },[]);var o=function(){ + return r?.(i); + };return!t&&r?[!1,o]:[!0]; +}function BR(e,t){ + if(!Array.isArray(t))return!1;var r=t.length;if(r!==e.length)return!1;for(var n=0;n-1&&e.splice(r,1); +}function sK(e,t,r){ + var n=ht(e),i=n.slice(0),o=t<0?i.length+t:t;if(o>=0&&ob&&G,J=Array.isArray(V)?V:[V],K=J.reduce(o,{});B===!1&&(K={});var ee=I.prevResolvedValues,re=ee===void 0?{}:ee,se=ve(ve({},re),K),xe=function(ye){ + j=!0,S.delete(ye),I.needsAnimating[ye]=!0; + };for(var Re in se){ + var Se=K[Re],ie=re[Re];A.hasOwnProperty(Re)||(Se!==ie?El(Se)&&El(ie)?!BR(Se,ie)||z?xe(Re):I.protectedKeys[Re]=!0:Se!==void 0?xe(Re):S.add(Re):Se!==void 0&&S.has(Re)?xe(Re):I.protectedKeys[Re]=!0); + }I.prevProp=V,I.prevResolvedValues=K,I.isActive&&(A=ve(ve({},A),K)),i&&e.blockInitialAnimation&&(j=!1),j&&!U&&T.push.apply(T,Jn([],ht(J.map(function(ye){ + return{animation:ye,options:ve({type:N},m)}; + })),!1)); + },x=0;x=3;if(!(!y&&!w)){ + var T=g.point,S=Vf().timestamp;i.history.push(ve(ve({},T),{timestamp:S}));var A=i.handlers,b=A.onStart,C=A.onMove;y||(b&&b(i.lastMoveEvent,g),i.startEvent=i.lastMoveEvent),C&&C(i.lastMoveEvent,g); + } + } + },this.handlePointerMove=function(g,y){ + if(i.lastMoveEvent=g,i.lastMoveEventInfo=YR(y,i.transformPagePoint),qw(g)&&g.buttons===0){ + i.handlePointerUp(g,y);return; + }In.update(i.updatePoint,!0); + },this.handlePointerUp=function(g,y){ + i.end();var w=i.handlers,T=w.onEnd,S=w.onSessionEnd,A=KR(YR(y,i.transformPagePoint),i.history);i.startEvent&&T&&T(g,A),S&&S(g,A); + },!(jw(t)&&t.touches.length>1)){ + this.handlers=r,this.transformPagePoint=s;var l=ny(t),c=YR(l,this.transformPagePoint),f=c.point,m=Vf().timestamp;this.history=[ve(ve({},f),{timestamp:m})];var v=r.onSessionStart;v&&v(t,KR(c,this.history)),this.removeListeners=Sl(Tl(window,'pointermove',this.handlePointerMove),Tl(window,'pointerup',this.handlePointerUp),Tl(window,'pointercancel',this.handlePointerUp)); + } + }return e.prototype.updateHandlers=function(t){ + this.handlers=t; + },e.prototype.end=function(){ + this.removeListeners&&this.removeListeners(),Ps.update(this.updatePoint); + },e; +}();function YR(e,t){ + return t?{point:t(e.point)}:e; +}function gK(e,t){ + return{x:e.x-t.x,y:e.y-t.y}; +}function KR(e,t){ + var r=e.point;return{point:r,delta:gK(r,yK(t)),offset:gK(r,hAe(t)),velocity:vAe(t,.1)}; +}function hAe(e){ + return e[0]; +}function yK(e){ + return e[e.length-1]; +}function vAe(e,t){ + if(e.length<2)return{x:0,y:0};for(var r=e.length-1,n=null,i=yK(e);r>=0&&(n=e[r],!(i.timestamp-n.timestamp>km(t)));)r--;if(!n)return{x:0,y:0};var o=(i.timestamp-n.timestamp)/1e3;if(o===0)return{x:0,y:0};var s={x:(i.x-n.x)/o,y:(i.y-n.y)/o};return s.x===1/0&&(s.x=0),s.y===1/0&&(s.y=0),s; +}function $o(e){ + return e.max-e.min; +}function bK(e,t,r){ + return t===void 0&&(t=0),r===void 0&&(r=.01),hy(e,t)i&&(e=r?Dt(i,e,r.max):Math.min(e,i)),e; +}function TK(e,t,r){ + return{min:t!==void 0?e.min+t:void 0,max:r!==void 0?e.max+r-(e.max-e.min):void 0}; +}function NK(e,t){ + var r=t.top,n=t.left,i=t.bottom,o=t.right;return{x:TK(e.x,n,o),y:TK(e.y,r,i)}; +}function CK(e,t){ + var r,n=t.min-e.min,i=t.max-e.max;return t.max-t.minn?r=Cl(t.min,t.max-n,e.min):n>i&&(r=Cl(e.min,e.max-i,t.min)),Hu(0,1,r); +}function PK(e,t){ + var r={};return t.min!==void 0&&(r.min=t.min-e.min),t.max!==void 0&&(r.max=t.max-e.min),r; +}var aE=.35;function RK(e){ + return e===void 0&&(e=aE),e===!1?e=0:e===!0&&(e=aE),{x:SK(e,'left','right'),y:SK(e,'top','bottom')}; +}function SK(e,t,r){ + return{min:kK(e,t),max:kK(e,r)}; +}function kK(e,t){ + var r;return typeof e=='number'?e:(r=e[t])!==null&&r!==void 0?r:0; +}var MK=function(){ + return{translate:0,scale:1,origin:0,originPoint:0}; + },Im=function(){ + return{x:MK(),y:MK()}; + },IK=function(){ + return{min:0,max:0}; + },Fn=function(){ + return{x:IK(),y:IK()}; + };function ea(e){ + return[e('x'),e('y')]; +}function sE(e){ + var t=e.top,r=e.left,n=e.right,i=e.bottom;return{x:{min:r,max:n},y:{min:t,max:i}}; +}function FK(e){ + var t=e.x,r=e.y;return{top:r.min,right:t.max,bottom:r.max,left:t.min}; +}function qK(e,t){ + if(!t)return e;var r=t({x:e.left,y:e.top}),n=t({x:e.right,y:e.bottom});return{top:r.y,left:r.x,bottom:n.y,right:n.x}; +}function XR(e){ + return e===void 0||e===1; +}function ZR(e){ + var t=e.scale,r=e.scaleX,n=e.scaleY;return!XR(t)||!XR(r)||!XR(n); +}function Rs(e){ + return ZR(e)||jK(e.x)||jK(e.y)||e.z||e.rotate||e.rotateX||e.rotateY; +}function jK(e){ + return e&&e!=='0%'; +}function by(e,t,r){ + var n=e-r,i=t*n;return r+i; +}function VK(e,t,r,n,i){ + return i!==void 0&&(e=by(e,i,n)),by(e,r,n)+t; +}function JR(e,t,r,n,i){ + t===void 0&&(t=0),r===void 0&&(r=1),e.min=VK(e.min,t,r,n,i),e.max=VK(e.max,t,r,n,i); +}function _R(e,t){ + var r=t.x,n=t.y;JR(e.x,r.translate,r.scale,r.originPoint),JR(e.y,n.translate,n.scale,n.originPoint); +}function BK(e,t,r,n){ + var i,o;n===void 0&&(n=!1);var s=r.length;if(s){ + t.x=t.y=1;for(var l,c,f=0;ft?r='y':Math.abs(e.x)>t&&(r='x'),r; +}function HK(e){ + var t=e.dragControls,r=e.visualElement,n=gi(function(){ + return new zK(r); + });(0,eM.useEffect)(function(){ + return t&&t.subscribe(n); + },[n,t]),(0,eM.useEffect)(function(){ + return n.addListeners(); + },[n]); +}var Fm=fe(Ee(),1);function QK(e){ + var t=e.onPan,r=e.onPanStart,n=e.onPanEnd,i=e.onPanSessionStart,o=e.visualElement,s=t||r||n||i,l=(0,Fm.useRef)(null),c=(0,Fm.useContext)(Vu).transformPagePoint,f={onSessionStart:i,onStart:r,onMove:t,onEnd:function(v,g){ + l.current=null,n&&n(v,g); + }};(0,Fm.useEffect)(function(){ + l.current!==null&&l.current.updateHandlers(f); + });function m(v){ + l.current=new oE(v,f,{transformPagePoint:c}); + }Ff(o,'pointerdown',s&&m),Uw(function(){ + return l.current&&l.current.end(); + }); +}var WK={pan:ja(QK),drag:ja(HK)};var uE=['LayoutMeasure','BeforeLayoutMeasure','LayoutUpdate','ViewportBoxUpdate','Update','Render','AnimationComplete','LayoutAnimationComplete','AnimationStart','LayoutAnimationStart','SetAxisTarget','Unmount'];function YK(){ + var e=uE.map(function(){ + return new Qu; + }),t={},r={clearAllListeners:function(){ + return e.forEach(function(n){ + return n.clear(); + }); + },updatePropListeners:function(n){ + uE.forEach(function(i){ + var o,s='on'+i,l=n[s];(o=t[i])===null||o===void 0||o.call(t),l&&(t[i]=r[s](l)); + }); + }};return e.forEach(function(n,i){ + r['on'+uE[i]]=function(o){ + return n.add(o); + },r['notify'+uE[i]]=function(){ + for(var o=[],s=0;s=0?window.pageYOffset:null,f=NAe(t,e,l);return o.length&&o.forEach(function(m){ + var v=ht(m,2),g=v[0],y=v[1];e.getValue(g).set(y); + }),e.syncRender(),c!==null&&window.scrollTo({top:c}),{target:f,transitionEnd:n}; + }else return{target:t,transitionEnd:n}; + };function nX(e,t,r,n){ + return CAe(t)?DAe(e,t,r,n):{target:t,transitionEnd:n}; +}var iX=function(e,t,r,n){ + var i=ZK(e,t,n);return t=i.target,n=i.transitionEnd,nX(e,t,r,n); +};function LAe(e){ + return window.getComputedStyle(e); +}var iM={treeType:'dom',readValueFromInstance:function(e,t){ + if(Ds(t)){ + var r=Om(t);return r&&r.default||0; + }else{ + var n=LAe(e);return(ww(t)?n.getPropertyValue(t):n[t])||0; + } + },sortNodePosition:function(e,t){ + return e.compareDocumentPosition(t)&2?1:-1; + },getBaseTarget:function(e,t){ + var r;return(r=e.style)===null||r===void 0?void 0:r[t]; + },measureViewportBox:function(e,t){ + var r=t.transformPagePoint;return $R(e,r); + },resetTransform:function(e,t,r){ + var n=r.transformTemplate;t.style.transform=n?n({},''):'none',e.scheduleRender(); + },restoreTransform:function(e,t){ + e.style.transform=t.style.transform; + },removeValueFromRenderState:function(e,t){ + var r=t.vars,n=t.style;delete r[e],delete n[e]; + },makeTargetAnimatable:function(e,t,r,n){ + var i=r.transformValues;n===void 0&&(n=!0);var o=t.transition,s=t.transitionEnd,l=Fr(t,['transition','transitionEnd']),c=dK(l,o||{},e);if(i&&(s&&(s=i(s)),l&&(l=i(l)),c&&(c=i(c))),n){ + fK(e,l,c);var f=iX(e,l,c,s);s=f.transitionEnd,l=f.target; + }return ve({transition:o,transitionEnd:s},l); + },scrapeMotionValuesFromProps:xm,build:function(e,t,r,n,i){ + e.isVisible!==void 0&&(t.style.visibility=e.isVisible?'visible':'hidden'),ym(t,r,n,i.transformTemplate); + },render:Lw},oX=cE(iM);var aX=cE(ve(ve({},iM),{getBaseTarget:function(e,t){ + return e[t]; +},readValueFromInstance:function(e,t){ + var r;return Ds(t)?((r=Om(t))===null||r===void 0?void 0:r.default)||0:(t=Pw.has(t)?t:Dw(t),e.getAttribute(t)); +},scrapeMotionValuesFromProps:Mw,build:function(e,t,r,n,i){ + Am(t,r,n,i.transformTemplate); +},render:Rw}));var sX=function(e,t){ + return fm(e)?aX(t,{enableHardwareAcceleration:!1}):oX(t,{enableHardwareAcceleration:!0}); +};var jm=fe(Ee(),1);function lX(e,t){ + return t.max===t.min?0:e/(t.max-t.min)*100; +}var qm={correct:function(e,t){ + if(!t.target)return e;if(typeof e=='string')if(et.test(e))e=parseFloat(e);else return e;var r=lX(e,t.target.x),n=lX(e,t.target.y);return''.concat(r,'% ').concat(n,'%'); +}};var uX='_$css',cX={correct:function(e,t){ + var r=t.treeScale,n=t.projectionDelta,i=e,o=e.includes('var('),s=[];o&&(e=e.replace(nM,function(T){ + return s.push(T),uX; + }));var l=_n.parse(e);if(l.length>5)return i;var c=_n.createTransformer(e),f=typeof l[0]!='number'?1:0,m=n.x.scale*r.x,v=n.y.scale*r.y;l[0+f]/=m,l[1+f]/=v;var g=Dt(m,v,.5);typeof l[2+f]=='number'&&(l[2+f]/=g),typeof l[3+f]=='number'&&(l[3+f]/=g);var y=c(l);if(o){ + var w=0;y=y.replace(uX,function(){ + var T=s[w];return w++,T; + }); + }return y; +}};var PAe=function(e){ + uw(t,e);function t(){ + return e!==null&&e.apply(this,arguments)||this; + }return t.prototype.componentDidMount=function(){ + var r=this,n=this.props,i=n.visualElement,o=n.layoutGroup,s=n.switchLayoutGroup,l=n.layoutId,c=i.projection;MW(RAe),c&&(o?.group&&o.group.add(c),s?.register&&l&&s.register(c),c.root.didUpdate(),c.addEventListener('animationComplete',function(){ + r.safeToRemove(); + }),c.setOptions(ve(ve({},c.options),{onExitComplete:function(){ + return r.safeToRemove(); + }}))),Bu.hasEverUpdated=!0; + },t.prototype.getSnapshotBeforeUpdate=function(r){ + var n=this,i=this.props,o=i.layoutDependency,s=i.visualElement,l=i.drag,c=i.isPresent,f=s.projection;return f&&(f.isPresent=c,l||r.layoutDependency!==o||o===void 0?f.willUpdate():this.safeToRemove(),r.isPresent!==c&&(c?f.promote():f.relegate()||In.postRender(function(){ + var m;!((m=f.getStack())===null||m===void 0)&&m.members.length||n.safeToRemove(); + }))),null; + },t.prototype.componentDidUpdate=function(){ + var r=this.props.visualElement.projection;r&&(r.root.didUpdate(),!r.currentAnimation&&r.isLead()&&this.safeToRemove()); + },t.prototype.componentWillUnmount=function(){ + var r=this.props,n=r.visualElement,i=r.layoutGroup,o=r.switchLayoutGroup,s=n.projection;s&&(s.scheduleCheckAfterUnmount(),i?.group&&i.group.remove(s),o?.deregister&&o.deregister(s)); + },t.prototype.safeToRemove=function(){ + var r=this.props.safeToRemove;r?.(); + },t.prototype.render=function(){ + return null; + },t; +}(jm.default.Component);function fX(e){ + var t=ht(eE(),2),r=t[0],n=t[1],i=(0,jm.useContext)(gw);return jm.default.createElement(PAe,ve({},e,{layoutGroup:i,switchLayoutGroup:(0,jm.useContext)(yw),isPresent:r,safeToRemove:n})); +}var RAe={borderRadius:ve(ve({},qm),{applyTo:['borderTopLeftRadius','borderTopRightRadius','borderBottomLeftRadius','borderBottomRightRadius']}),borderTopLeftRadius:qm,borderTopRightRadius:qm,borderBottomLeftRadius:qm,borderBottomRightRadius:qm,boxShadow:cX};var dX={measureLayout:fX};function pX(e,t,r){ + r===void 0&&(r={});var n=Mn(e)?e:_o(e);return Nm('',n,t,r),{stop:function(){ + return n.stop(); + },isAnimating:function(){ + return n.isAnimating(); + }}; +}var gX=['TopLeft','TopRight','BottomLeft','BottomRight'],MAe=gX.length,mX=function(e){ + return typeof e=='string'?parseFloat(e):e; + },hX=function(e){ + return typeof e=='number'||et.test(e); + };function yX(e,t,r,n,i,o){ + var s,l,c,f;i?(e.opacity=Dt(0,(s=r.opacity)!==null&&s!==void 0?s:1,IAe(n)),e.opacityExit=Dt((l=t.opacity)!==null&&l!==void 0?l:1,0,FAe(n))):o&&(e.opacity=Dt((c=t.opacity)!==null&&c!==void 0?c:1,(f=r.opacity)!==null&&f!==void 0?f:1,n));for(var m=0;mt?1:r(Cl(e,t,n)); + }; +}function AX(e,t){ + e.min=t.min,e.max=t.max; +}function ta(e,t){ + AX(e.x,t.x),AX(e.y,t.y); +}function xX(e,t,r,n,i){ + return e-=t,e=by(e,1/r,n),i!==void 0&&(e=by(e,1/i,n)),e; +}function qAe(e,t,r,n,i,o,s){ + if(t===void 0&&(t=0),r===void 0&&(r=1),n===void 0&&(n=.5),o===void 0&&(o=e),s===void 0&&(s=e),yi.test(t)){ + t=parseFloat(t);var l=Dt(s.min,s.max,t/100);t=l-s.min; + }if(typeof t=='number'){ + var c=Dt(o.min,o.max,n);e===o&&(c-=t),e.min=xX(e.min,t,r,c,i),e.max=xX(e.max,t,r,c,i); + } +}function wX(e,t,r,n,i){ + var o=ht(r,3),s=o[0],l=o[1],c=o[2];qAe(e,t[s],t[l],t[c],t.scale,n,i); +}var jAe=['x','scaleX','originX'],VAe=['y','scaleY','originY'];function oM(e,t,r,n){ + wX(e.x,t,jAe,r?.x,n?.x),wX(e.y,t,VAe,r?.y,n?.y); +}function EX(e){ + return e.translate===0&&e.scale===1; +}function aM(e){ + return EX(e.x)&&EX(e.y); +}function sM(e,t){ + return e.x.min===t.x.min&&e.x.max===t.x.max&&e.y.min===t.y.min&&e.y.max===t.y.max; +}var TX=function(){ + function e(){ + this.members=[]; + }return e.prototype.add=function(t){ + Dm(this.members,t),t.scheduleRender(); + },e.prototype.remove=function(t){ + if(Lm(this.members,t),t===this.prevLead&&(this.prevLead=void 0),t===this.lead){ + var r=this.members[this.members.length-1];r&&this.promote(r); + } + },e.prototype.relegate=function(t){ + var r=this.members.findIndex(function(s){ + return t===s; + });if(r===0)return!1;for(var n,i=r;i>=0;i--){ + var o=this.members[i];if(o.isPresent!==!1){ + n=o;break; + } + }return n?(this.promote(n),!0):!1; + },e.prototype.promote=function(t,r){ + var n,i=this.lead;if(t!==i&&(this.prevLead=i,this.lead=t,t.show(),i)){ + i.instance&&i.scheduleRender(),t.scheduleRender(),t.resumeFrom=i,r&&(t.resumeFrom.preserveOpacity=!0),i.snapshot&&(t.snapshot=i.snapshot,t.snapshot.latestValues=i.animationValues||i.latestValues,t.snapshot.isShared=!0),!((n=t.root)===null||n===void 0)&&n.isUpdating&&(t.isLayoutDirty=!0);var o=t.options.crossfade;o===!1&&i.hide(); + } + },e.prototype.exitAnimationComplete=function(){ + this.members.forEach(function(t){ + var r,n,i,o,s;(n=(r=t.options).onExitComplete)===null||n===void 0||n.call(r),(s=(i=t.resumingFrom)===null||i===void 0?void 0:(o=i.options).onExitComplete)===null||s===void 0||s.call(o); + }); + },e.prototype.scheduleRender=function(){ + this.members.forEach(function(t){ + t.instance&&t.scheduleRender(!1); + }); + },e.prototype.removeLeadSnapshot=function(){ + this.lead&&this.lead.snapshot&&(this.lead.snapshot=void 0); + },e; +}();var UAe='translate3d(0px, 0px, 0) scale(1, 1) scale(1, 1)';function lM(e,t,r){ + var n=e.x.translate/t.x,i=e.y.translate/t.y,o='translate3d('.concat(n,'px, ').concat(i,'px, 0) ');if(o+='scale('.concat(1/t.x,', ').concat(1/t.y,') '),r){ + var s=r.rotate,l=r.rotateX,c=r.rotateY;s&&(o+='rotate('.concat(s,'deg) ')),l&&(o+='rotateX('.concat(l,'deg) ')),c&&(o+='rotateY('.concat(c,'deg) ')); + }var f=e.x.scale*t.x,m=e.y.scale*t.y;return o+='scale('.concat(f,', ').concat(m,')'),o===UAe?'none':o; +}var CX=function(e,t){ + return e.depth-t.depth; +};var SX=function(){ + function e(){ + this.children=[],this.isDirty=!1; + }return e.prototype.add=function(t){ + Dm(this.children,t),this.isDirty=!0; + },e.prototype.remove=function(t){ + Lm(this.children,t),this.isDirty=!0; + },e.prototype.forEach=function(t){ + this.isDirty&&this.children.sort(CX),this.isDirty=!1,this.children.forEach(t); + },e; +}();var kX=1e3;function dE(e){ + var t=e.attachResizeListener,r=e.defaultParent,n=e.measureScroll,i=e.checkIsScrollRoot,o=e.resetTransform;return function(){ + function s(l,c,f){ + var m=this;c===void 0&&(c={}),f===void 0&&(f=r?.()),this.children=new Set,this.options={},this.isTreeAnimating=!1,this.isAnimationBlocked=!1,this.isLayoutDirty=!1,this.updateManuallyBlocked=!1,this.updateBlockedByResize=!1,this.isUpdating=!1,this.isSVG=!1,this.needsReset=!1,this.shouldResetTransform=!1,this.treeScale={x:1,y:1},this.eventHandlers=new Map,this.potentialNodes=new Map,this.checkUpdateFailed=function(){ + m.isUpdating&&(m.isUpdating=!1,m.clearAllSnapshots()); + },this.updateProjection=function(){ + m.nodes.forEach(WAe),m.nodes.forEach(YAe); + },this.hasProjected=!1,this.isVisible=!0,this.animationProgress=0,this.sharedNodes=new Map,this.id=l,this.latestValues=c,this.root=f?f.root||f:this,this.path=f?Jn(Jn([],ht(f.path),!1),[f],!1):[],this.parent=f,this.depth=f?f.depth+1:0,l&&this.root.registerPotentialNode(l,this);for(var v=0;v=0;n--)if(e.path[n].instance){ + r=e.path[n];break; + }var i=r&&r!==e.root?r.instance:document,o=i.querySelector('[data-projection-id="'.concat(t,'"]'));o&&e.mount(o,!0); +}function LX(e){ + e.min=Math.round(e.min),e.max=Math.round(e.max); +}function PX(e){ + LX(e.x),LX(e.y); +}var RX=dE({attachResizeListener:function(e,t){ + return If(e,'resize',t); +},measureScroll:function(){ + return{x:document.documentElement.scrollLeft||document.body.scrollLeft,y:document.documentElement.scrollTop||document.body.scrollTop}; +},checkIsScrollRoot:function(){ + return!0; +}});var uM={current:void 0},MX=dE({measureScroll:function(e){ + return{x:e.scrollLeft,y:e.scrollTop}; +},defaultParent:function(){ + if(!uM.current){ + var e=new RX(0,{});e.mount(window),e.setOptions({layoutScroll:!0}),uM.current=e; + }return uM.current; +},resetTransform:function(e,t){ + e.style.transform=t??'none'; +},checkIsScrollRoot:function(e){ + return window.getComputedStyle(e).position==='fixed'; +}});var e1e=ve(ve(ve(ve({},vK),XY),WK),dX),pE=PW(function(e,t){ + return lY(e,t,e1e,sX,MX); +});var cM=fe(Ee(),1),Vm=fe(Ee(),1);var IX=fe(Ee(),1),mE=(0,IX.createContext)(null);function FX(e,t,r,n){ + if(!n)return e;var i=e.findIndex(function(m){ + return m.value===t; + });if(i===-1)return e;var o=n>0?1:-1,s=e[i+o];if(!s)return e;var l=e[i],c=s.layout,f=Dt(c.min,c.max,.5);return o===1&&l.layout.max+r>f||o===-1&&l.layout.min+r{ + let{__scopeTooltip:t,delayDuration:r=l1e,skipDelayDuration:n=300,disableHoverableContent:i=!1,children:o}=e,[s,l]=(0,_e.useState)(!0),c=(0,_e.useRef)(!1),f=(0,_e.useRef)(0);return(0,_e.useEffect)(()=>{ + let m=f.current;return()=>window.clearTimeout(m); + },[]),(0,_e.createElement)(u1e,{scope:t,isOpenDelayed:s,delayDuration:r,onOpen:(0,_e.useCallback)(()=>{ + window.clearTimeout(f.current),l(!1); + },[]),onClose:(0,_e.useCallback)(()=>{ + window.clearTimeout(f.current),f.current=window.setTimeout(()=>l(!0),n); + },[n]),isPointerInTransitRef:c,onPointerInTransitChange:(0,_e.useCallback)(m=>{ + c.current=m; + },[]),disableHoverableContent:i},o); + },mM='Tooltip',[f1e,xy]=gE(mM),d1e=e=>{ + let{__scopeTooltip:t,children:r,open:n,defaultOpen:i=!1,onOpenChange:o,disableHoverableContent:s,delayDuration:l}=e,c=pM(mM,e.__scopeTooltip),f=dM(t),[m,v]=(0,_e.useState)(null),g=Ea(),y=(0,_e.useRef)(0),w=s??c.disableHoverableContent,T=l??c.delayDuration,S=(0,_e.useRef)(!1),[A=!1,b]=hu({prop:n,defaultProp:i,onChange:D=>{ + D?(c.onOpen(),document.dispatchEvent(new CustomEvent(fM))):c.onClose(),o?.(D); + }}),C=(0,_e.useMemo)(()=>A?S.current?'delayed-open':'instant-open':'closed',[A]),x=(0,_e.useCallback)(()=>{ + window.clearTimeout(y.current),S.current=!1,b(!0); + },[b]),k=(0,_e.useCallback)(()=>{ + window.clearTimeout(y.current),b(!1); + },[b]),P=(0,_e.useCallback)(()=>{ + window.clearTimeout(y.current),y.current=window.setTimeout(()=>{ + S.current=!0,b(!0); + },T); + },[T,b]);return(0,_e.useEffect)(()=>()=>window.clearTimeout(y.current),[]),(0,_e.createElement)(Qx,f,(0,_e.createElement)(f1e,{scope:t,contentId:g,open:A,stateAttribute:C,trigger:m,onTriggerChange:v,onTriggerEnter:(0,_e.useCallback)(()=>{ + c.isOpenDelayed?P():x(); + },[c.isOpenDelayed,P,x]),onTriggerLeave:(0,_e.useCallback)(()=>{ + w?k():window.clearTimeout(y.current); + },[k,w]),onOpen:x,onClose:k,disableHoverableContent:w},r)); + },WX='TooltipTrigger',p1e=(0,_e.forwardRef)((e,t)=>{ + let{__scopeTooltip:r,...n}=e,i=xy(WX,r),o=pM(WX,r),s=dM(r),l=(0,_e.useRef)(null),c=sr(t,l,i.onTriggerChange),f=(0,_e.useRef)(!1),m=(0,_e.useRef)(!1),v=(0,_e.useCallback)(()=>f.current=!1,[]);return(0,_e.useEffect)(()=>()=>document.removeEventListener('pointerup',v),[v]),(0,_e.createElement)(Wx,Ze({asChild:!0},s),(0,_e.createElement)(cr.button,Ze({'aria-describedby':i.open?i.contentId:void 0,'data-state':i.stateAttribute},n,{ref:c,onPointerMove:xt(e.onPointerMove,g=>{ + g.pointerType!=='touch'&&!m.current&&!o.isPointerInTransitRef.current&&(i.onTriggerEnter(),m.current=!0); + }),onPointerLeave:xt(e.onPointerLeave,()=>{ + i.onTriggerLeave(),m.current=!1; + }),onPointerDown:xt(e.onPointerDown,()=>{ + f.current=!0,document.addEventListener('pointerup',v,{once:!0}); + }),onFocus:xt(e.onFocus,()=>{ + f.current||i.onOpen(); + }),onBlur:xt(e.onBlur,i.onClose),onClick:xt(e.onClick,i.onClose)}))); + }),YX='TooltipPortal',[m1e,h1e]=gE(YX,{forceMount:void 0}),v1e=e=>{ + let{__scopeTooltip:t,forceMount:r,children:n,container:i}=e,o=xy(YX,t);return(0,_e.createElement)(m1e,{scope:t,forceMount:r},(0,_e.createElement)(Pa,{present:r||o.open},(0,_e.createElement)($p,{asChild:!0,container:i},n))); + },Ay='TooltipContent',g1e=(0,_e.forwardRef)((e,t)=>{ + let r=h1e(Ay,e.__scopeTooltip),{forceMount:n=r.forceMount,side:i='top',...o}=e,s=xy(Ay,e.__scopeTooltip);return(0,_e.createElement)(Pa,{present:n||s.open},s.disableHoverableContent?(0,_e.createElement)(KX,Ze({side:i},o,{ref:t})):(0,_e.createElement)(y1e,Ze({side:i},o,{ref:t}))); + }),y1e=(0,_e.forwardRef)((e,t)=>{ + let r=xy(Ay,e.__scopeTooltip),n=pM(Ay,e.__scopeTooltip),i=(0,_e.useRef)(null),o=sr(t,i),[s,l]=(0,_e.useState)(null),{trigger:c,onClose:f}=r,m=i.current,{onPointerInTransitChange:v}=n,g=(0,_e.useCallback)(()=>{ + l(null),v(!1); + },[v]),y=(0,_e.useCallback)((w,T)=>{ + let S=w.currentTarget,A={x:w.clientX,y:w.clientY},b=A1e(A,S.getBoundingClientRect()),C=x1e(A,b),x=w1e(T.getBoundingClientRect()),k=T1e([...C,...x]);l(k),v(!0); + },[v]);return(0,_e.useEffect)(()=>()=>g(),[g]),(0,_e.useEffect)(()=>{ + if(c&&m){ + let w=S=>y(S,m),T=S=>y(S,c);return c.addEventListener('pointerleave',w),m.addEventListener('pointerleave',T),()=>{ + c.removeEventListener('pointerleave',w),m.removeEventListener('pointerleave',T); + }; + } + },[c,m,y,g]),(0,_e.useEffect)(()=>{ + if(s){ + let w=T=>{ + let S=T.target,A={x:T.clientX,y:T.clientY},b=c?.contains(S)||m?.contains(S),C=!E1e(A,s);b?g():C&&(g(),f()); + };return document.addEventListener('pointermove',w),()=>document.removeEventListener('pointermove',w); + } + },[c,m,s,f,g]),(0,_e.createElement)(KX,Ze({},e,{ref:o})); + }),[b1e,iVe]=gE(mM,{isInside:!1}),KX=(0,_e.forwardRef)((e,t)=>{ + let{__scopeTooltip:r,children:n,'aria-label':i,onEscapeKeyDown:o,onPointerDownOutside:s,...l}=e,c=xy(Ay,r),f=dM(r),{onClose:m}=c;return(0,_e.useEffect)(()=>(document.addEventListener(fM,m),()=>document.removeEventListener(fM,m)),[m]),(0,_e.useEffect)(()=>{ + if(c.trigger){ + let v=g=>{ + let y=g.target;y!=null&&y.contains(c.trigger)&&m(); + };return window.addEventListener('scroll',v,{capture:!0}),()=>window.removeEventListener('scroll',v,{capture:!0}); + } + },[c.trigger,m]),(0,_e.createElement)(_p,{asChild:!0,disableOutsidePointerEvents:!1,onEscapeKeyDown:o,onPointerDownOutside:s,onFocusOutside:v=>v.preventDefault(),onDismiss:m},(0,_e.createElement)(Yx,Ze({'data-state':c.stateAttribute},f,l,{ref:t,style:{...l.style,'--radix-tooltip-content-transform-origin':'var(--radix-popper-transform-origin)','--radix-tooltip-content-available-width':'var(--radix-popper-available-width)','--radix-tooltip-content-available-height':'var(--radix-popper-available-height)','--radix-tooltip-trigger-width':'var(--radix-popper-anchor-width)','--radix-tooltip-trigger-height':'var(--radix-popper-anchor-height)'}}),(0,_e.createElement)(XL,null,n),(0,_e.createElement)(b1e,{scope:r,isInside:!0},(0,_e.createElement)(Cx,{id:c.contentId,role:'tooltip'},i||n)))); + });function A1e(e,t){ + let r=Math.abs(t.top-e.y),n=Math.abs(t.bottom-e.y),i=Math.abs(t.right-e.x),o=Math.abs(t.left-e.x);switch(Math.min(r,n,i,o)){ + case o:return'left';case i:return'right';case r:return'top';case n:return'bottom';default:throw new Error('unreachable'); + } +}function x1e(e,t,r=5){ + let n=[];switch(t){ + case'top':n.push({x:e.x-r,y:e.y+r},{x:e.x+r,y:e.y+r});break;case'bottom':n.push({x:e.x-r,y:e.y-r},{x:e.x+r,y:e.y-r});break;case'left':n.push({x:e.x+r,y:e.y-r},{x:e.x+r,y:e.y+r});break;case'right':n.push({x:e.x-r,y:e.y-r},{x:e.x-r,y:e.y+r});break; + }return n; +}function w1e(e){ + let{top:t,right:r,bottom:n,left:i}=e;return[{x:i,y:t},{x:r,y:t},{x:r,y:n},{x:i,y:n}]; +}function E1e(e,t){ + let{x:r,y:n}=e,i=!1;for(let o=0,s=t.length-1;on!=m>n&&r<(f-l)*(n-c)/(m-c)+l&&(i=!i); + }return i; +}function T1e(e){ + let t=e.slice();return t.sort((r,n)=>r.xn.x?1:r.yn.y?1:0),C1e(t); +}function C1e(e){ + if(e.length<=1)return e.slice();let t=[];for(let n=0;n=2;){ + let o=t[t.length-1],s=t[t.length-2];if((o.x-s.x)*(i.y-s.y)>=(o.y-s.y)*(i.x-s.x))t.pop();else break; + }t.push(i); + }t.pop();let r=[];for(let n=e.length-1;n>=0;n--){ + let i=e[n];for(;r.length>=2;){ + let o=r[r.length-1],s=r[r.length-2];if((o.x-s.x)*(i.y-s.y)>=(o.y-s.y)*(i.x-s.x))r.pop();else break; + }r.push(i); + }return r.pop(),t.length===1&&r.length===1&&t[0].x===r[0].x&&t[0].y===r[0].y?t:t.concat(r); +}var XX=c1e,ZX=d1e,JX=p1e,_X=v1e,$X=g1e;var yt=fe(Ee(),1);var tZ=fe(Ee(),1);var yE=fe(Ee(),1);var k1e=Object.defineProperty,O1e=(e,t,r)=>t in e?k1e(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,hM=(e,t,r)=>(O1e(e,typeof t!='symbol'?t+'':t,r),r),vM=class{ + constructor(){ + hM(this,'current',this.detect()),hM(this,'handoffState','pending'),hM(this,'currentId',0); + }set(t){ + this.current!==t&&(this.handoffState='pending',this.currentId=0,this.current=t); + }reset(){ + this.set(this.detect()); + }nextId(){ + return++this.currentId; + }get isServer(){ + return this.current==='server'; + }get isClient(){ + return this.current==='client'; + }detect(){ + return typeof window>'u'||typeof document>'u'?'server':'client'; + }handoff(){ + this.handoffState==='pending'&&(this.handoffState='complete'); + }get isHandoffComplete(){ + return this.handoffState==='complete'; + } + },Va=new vM;var Tn=(e,t)=>{ + Va.isServer?(0,yE.useEffect)(e,t):(0,yE.useLayoutEffect)(e,t); +};var eZ=fe(Ee(),1);function Is(e){ + let t=(0,eZ.useRef)(e);return Tn(()=>{ + t.current=e; + },[e]),t; +}function bE(e,t){ + let[r,n]=(0,tZ.useState)(e),i=Is(e);return Tn(()=>n(i.current),[i,n,...t]),r; +}var AE=fe(Ee(),1);function rZ(e){ + typeof queueMicrotask=='function'?queueMicrotask(e):Promise.resolve().then(e).catch(t=>setTimeout(()=>{ + throw t; + })); +}function Bm(){ + let e=[],t={addEventListener(r,n,i,o){ + return r.addEventListener(n,i,o),t.add(()=>r.removeEventListener(n,i,o)); + },requestAnimationFrame(...r){ + let n=requestAnimationFrame(...r);return t.add(()=>cancelAnimationFrame(n)); + },nextFrame(...r){ + return t.requestAnimationFrame(()=>t.requestAnimationFrame(...r)); + },setTimeout(...r){ + let n=setTimeout(...r);return t.add(()=>clearTimeout(n)); + },microTask(...r){ + let n={current:!0};return rZ(()=>{ + n.current&&r[0](); + }),t.add(()=>{ + n.current=!1; + }); + },style(r,n,i){ + let o=r.style.getPropertyValue(n);return Object.assign(r.style,{[n]:i}),this.add(()=>{ + Object.assign(r.style,{[n]:o}); + }); + },group(r){ + let n=Bm();return r(n),this.add(()=>n.dispose()); + },add(r){ + return e.push(r),()=>{ + let n=e.indexOf(r);if(n>=0)for(let i of e.splice(n,1))i(); + }; + },dispose(){ + for(let r of e.splice(0))r(); + }};return t; +}function xE(){ + let[e]=(0,AE.useState)(Bm);return(0,AE.useEffect)(()=>()=>e.dispose(),[e]),e; +}var nZ=fe(Ee(),1);var Qt=function(e){ + let t=Is(e);return nZ.default.useCallback((...r)=>t.current(...r),[t]); +};var gM=fe(Ee(),1);var zf=fe(Ee(),1);function N1e(){ + let e=typeof document>'u';return'useSyncExternalStore'in zf?(t=>t.useSyncExternalStore)(zf)(()=>()=>{},()=>!1,()=>!e):!1; +}function iZ(){ + let e=N1e(),[t,r]=zf.useState(Va.isHandoffComplete);return t&&Va.isHandoffComplete===!1&&r(!1),zf.useEffect(()=>{ + t!==!0&&r(!0); + },[t]),zf.useEffect(()=>Va.handoff(),[]),e?!1:t; +}var oZ,Gm=(oZ=gM.default.useId)!=null?oZ:function(){ + let e=iZ(),[t,r]=gM.default.useState(e?()=>Va.nextId():null);return Tn(()=>{ + t===null&&r(Va.nextId()); + },[t]),t!=null?''+t:void 0; +};var Ey=fe(Ee(),1);function ra(e,t,...r){ + if(e in t){ + let i=t[e];return typeof i=='function'?i(...r):i; + }let n=new Error(`Tried to handle "${e}" but there is no handler defined. Only defined handlers are: ${Object.keys(t).map(i=>`"${i}"`).join(', ')}.`);throw Error.captureStackTrace&&Error.captureStackTrace(n,ra),n; +}function zm(e){ + return Va.isServer?null:e instanceof Node?e.ownerDocument:e!=null&&e.hasOwnProperty('current')&&e.current instanceof Node?e.current.ownerDocument:document; +}var aZ=['[contentEditable=true]','[tabindex]','a[href]','area[href]','button:not([disabled])','iframe','input:not([disabled])','select:not([disabled])','textarea:not([disabled])'].map(e=>`${e}:not([tabindex='-1'])`).join(','),D1e=(e=>(e[e.First=1]='First',e[e.Previous=2]='Previous',e[e.Next=4]='Next',e[e.Last=8]='Last',e[e.WrapAround=16]='WrapAround',e[e.NoScroll=32]='NoScroll',e))(D1e||{}),L1e=(e=>(e[e.Error=0]='Error',e[e.Overflow=1]='Overflow',e[e.Success=2]='Success',e[e.Underflow=3]='Underflow',e))(L1e||{}),P1e=(e=>(e[e.Previous=-1]='Previous',e[e.Next=1]='Next',e))(P1e||{});var yM=(e=>(e[e.Strict=0]='Strict',e[e.Loose=1]='Loose',e))(yM||{});function sZ(e,t=0){ + var r;return e===((r=zm(e))==null?void 0:r.body)?!1:ra(t,{0(){ + return e.matches(aZ); + },1(){ + let n=e;for(;n!==null;){ + if(n.matches(aZ))return!0;n=n.parentElement; + }return!1; + }}); +}var R1e=(e=>(e[e.Keyboard=0]='Keyboard',e[e.Mouse=1]='Mouse',e))(R1e||{});typeof window<'u'&&typeof document<'u'&&(document.addEventListener('keydown',e=>{ + e.metaKey||e.altKey||e.ctrlKey||(document.documentElement.dataset.headlessuiFocusVisible=''); +},!0),document.addEventListener('click',e=>{ + e.detail===1?delete document.documentElement.dataset.headlessuiFocusVisible:e.detail===0&&(document.documentElement.dataset.headlessuiFocusVisible=''); +},!0));var LVe=['textarea','input'].join(',');function lZ(e,t=r=>r){ + return e.slice().sort((r,n)=>{ + let i=t(r),o=t(n);if(i===null||o===null)return 0;let s=i.compareDocumentPosition(o);return s&Node.DOCUMENT_POSITION_FOLLOWING?-1:s&Node.DOCUMENT_POSITION_PRECEDING?1:0; + }); +}var uZ=fe(Ee(),1);function wy(e,t,r){ + let n=Is(t);(0,uZ.useEffect)(()=>{ + function i(o){ + n.current(o); + }return document.addEventListener(e,i,r),()=>document.removeEventListener(e,i,r); + },[e,r]); +}var cZ=fe(Ee(),1);function fZ(e,t,r){ + let n=Is(t);(0,cZ.useEffect)(()=>{ + function i(o){ + n.current(o); + }return window.addEventListener(e,i,r),()=>window.removeEventListener(e,i,r); + },[e,r]); +}function dZ(e,t,r=!0){ + let n=(0,Ey.useRef)(!1);(0,Ey.useEffect)(()=>{ + requestAnimationFrame(()=>{ + n.current=r; + }); + },[r]);function i(s,l){ + if(!n.current||s.defaultPrevented)return;let c=l(s);if(c===null||!c.getRootNode().contains(c)||!c.isConnected)return;let f=function m(v){ + return typeof v=='function'?m(v()):Array.isArray(v)||v instanceof Set?v:[v]; + }(e);for(let m of f){ + if(m===null)continue;let v=m instanceof HTMLElement?m:m.current;if(v!=null&&v.contains(c)||s.composed&&s.composedPath().includes(v))return; + }return!sZ(c,yM.Loose)&&c.tabIndex!==-1&&s.preventDefault(),t(s,c); + }let o=(0,Ey.useRef)(null);wy('pointerdown',s=>{ + var l,c;n.current&&(o.current=((c=(l=s.composedPath)==null?void 0:l.call(s))==null?void 0:c[0])||s.target); + },!0),wy('mousedown',s=>{ + var l,c;n.current&&(o.current=((c=(l=s.composedPath)==null?void 0:l.call(s))==null?void 0:c[0])||s.target); + },!0),wy('click',s=>{ + o.current&&(i(s,()=>o.current),o.current=null); + },!0),wy('touchend',s=>i(s,()=>s.target instanceof HTMLElement?s.target:null),!0),fZ('blur',s=>i(s,()=>window.document.activeElement instanceof HTMLIFrameElement?window.document.activeElement:null),!0); +}var mZ=fe(Ee(),1);function pZ(e){ + var t;if(e.type)return e.type;let r=(t=e.as)!=null?t:'button';if(typeof r=='string'&&r.toLowerCase()==='button')return'button'; +}function hZ(e,t){ + let[r,n]=(0,mZ.useState)(()=>pZ(e));return Tn(()=>{ + n(pZ(e)); + },[e.type,e.as]),Tn(()=>{ + r||t.current&&t.current instanceof HTMLButtonElement&&!t.current.hasAttribute('type')&&n('button'); + },[r,t]),r; +}var wE=fe(Ee(),1);var M1e=Symbol();function Hm(...e){ + let t=(0,wE.useRef)(e);(0,wE.useEffect)(()=>{ + t.current=e; + },[e]);let r=Qt(n=>{ + for(let i of t.current)i!=null&&(typeof i=='function'?i(n):i.current=n); + });return e.every(n=>n==null||n?.[M1e])?void 0:r; +}var Ty=fe(Ee(),1);function vZ({container:e,accept:t,walk:r,enabled:n=!0}){ + let i=(0,Ty.useRef)(t),o=(0,Ty.useRef)(r);(0,Ty.useEffect)(()=>{ + i.current=t,o.current=r; + },[t,r]),Tn(()=>{ + if(!e||!n)return;let s=zm(e);if(!s)return;let l=i.current,c=o.current,f=Object.assign(v=>l(v),{acceptNode:l}),m=s.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,f,!1);for(;m.nextNode();)c(m.currentNode); + },[e,n,i,o]); +}function I1e(e){ + throw new Error('Unexpected object: '+e); +}var qn=(e=>(e[e.First=0]='First',e[e.Previous=1]='Previous',e[e.Next=2]='Next',e[e.Last=3]='Last',e[e.Specific=4]='Specific',e[e.Nothing=5]='Nothing',e))(qn||{});function gZ(e,t){ + let r=t.resolveItems();if(r.length<=0)return null;let n=t.resolveActiveIndex(),i=n??-1,o=(()=>{ + switch(e.focus){ + case 0:return r.findIndex(s=>!t.resolveDisabled(s));case 1:{let s=r.slice().reverse().findIndex((l,c,f)=>i!==-1&&f.length-c-1>=i?!1:!t.resolveDisabled(l));return s===-1?s:r.length-1-s;}case 2:return r.findIndex((s,l)=>l<=i?!1:!t.resolveDisabled(s));case 3:{let s=r.slice().reverse().findIndex(l=>!t.resolveDisabled(l));return s===-1?s:r.length-1-s;}case 4:return r.findIndex(s=>t.resolveId(s)===e.id);case 5:return null;default:I1e(e); + } + })();return o===-1?n:o; +}var na=fe(Ee(),1);function bM(...e){ + return Array.from(new Set(e.flatMap(t=>typeof t=='string'?t.split(' '):[]))).filter(Boolean).join(' '); +}var CE=(e=>(e[e.None=0]='None',e[e.RenderStrategy=1]='RenderStrategy',e[e.Static=2]='Static',e))(CE||{}),F1e=(e=>(e[e.Unmount=0]='Unmount',e[e.Hidden=1]='Hidden',e))(F1e||{});function kl({ourProps:e,theirProps:t,slot:r,defaultTag:n,features:i,visible:o=!0,name:s}){ + let l=yZ(t,e);if(o)return EE(l,r,n,s);let c=i??0;if(c&2){ + let{static:f=!1,...m}=l;if(f)return EE(m,r,n,s); + }if(c&1){ + let{unmount:f=!0,...m}=l;return ra(f?0:1,{0(){ + return null; + },1(){ + return EE({...m,hidden:!0,style:{display:'none'}},r,n,s); + }}); + }return EE(l,r,n,s); +}function EE(e,t={},r,n){ + let{as:i=r,children:o,refName:s='ref',...l}=AM(e,['unmount','static']),c=e.ref!==void 0?{[s]:e.ref}:{},f=typeof o=='function'?o(t):o;'className'in l&&l.className&&typeof l.className=='function'&&(l.className=l.className(t));let m={};if(t){ + let v=!1,g=[];for(let[y,w]of Object.entries(t))typeof w=='boolean'&&(v=!0),w===!0&&g.push(y);v&&(m['data-headlessui-state']=g.join(' ')); + }if(i===na.Fragment&&Object.keys(TE(l)).length>0){ + if(!(0,na.isValidElement)(f)||Array.isArray(f)&&f.length>1)throw new Error(['Passing props on "Fragment"!','',`The current component <${n} /> is rendering a "Fragment".`,'However we need to passthrough the following props:',Object.keys(l).map(w=>` - ${w}`).join(` +`),'','You can apply a few solutions:',['Add an `as="..."` prop, to ensure that we render an actual element instead of a "Fragment".','Render a single element as the child so that we can forward the props onto that element.'].map(w=>` - ${w}`).join(` `)].join(` -`));let v=f.props,g=typeof v?.className=="function"?(...w)=>bM(v?.className(...w),l.className):bM(v?.className,l.className),y=g?{className:g}:{};return(0,na.cloneElement)(f,Object.assign({},yZ(f.props,TE(AM(l,["ref"]))),m,c,q1e(f.ref,c.ref),y))}return(0,na.createElement)(i,Object.assign({},AM(l,["ref"]),i!==na.Fragment&&c,i!==na.Fragment&&m),f)}function q1e(...e){return{ref:e.every(t=>t==null)?void 0:t=>{for(let r of e)r!=null&&(typeof r=="function"?r(t):r.current=t)}}}function yZ(...e){var t;if(e.length===0)return{};if(e.length===1)return e[0];let r={},n={};for(let i of e)for(let o in i)o.startsWith("on")&&typeof i[o]=="function"?((t=n[o])!=null||(n[o]=[]),n[o].push(i[o])):r[o]=i[o];if(r.disabled||r["aria-disabled"])return Object.assign(r,Object.fromEntries(Object.keys(n).map(i=>[i,void 0])));for(let i in n)Object.assign(r,{[i](o,...s){let l=n[i];for(let c of l){if((o instanceof Event||o?.nativeEvent instanceof Event)&&o.defaultPrevented)return;c(o,...s)}}});return r}function Ol(e){var t;return Object.assign((0,na.forwardRef)(e),{displayName:(t=e.displayName)!=null?t:e.name})}function TE(e){let t=Object.assign({},e);for(let r in t)t[r]===void 0&&delete t[r];return t}function AM(e,t=[]){let r=Object.assign({},e);for(let n of t)n in r&&delete r[n];return r}function bZ(e){let t=e.parentElement,r=null;for(;t&&!(t instanceof HTMLFieldSetElement);)t instanceof HTMLLegendElement&&(r=t),t=t.parentElement;let n=t?.getAttribute("disabled")==="";return n&&j1e(r)?!1:n}function j1e(e){if(!e)return!1;let t=e.previousElementSibling;for(;t!==null;){if(t instanceof HTMLLegendElement)return!1;t=t.previousElementSibling}return!0}function xM(e={},t=null,r=[]){for(let[n,i]of Object.entries(e))xZ(r,AZ(t,n),i);return r}function AZ(e,t){return e?e+"["+t+"]":t}function xZ(e,t,r){if(Array.isArray(r))for(let[n,i]of r.entries())xZ(e,AZ(t,n.toString()),i);else r instanceof Date?e.push([t,r.toISOString()]):typeof r=="boolean"?e.push([t,r?"1":"0"]):typeof r=="string"?e.push([t,r]):typeof r=="number"?e.push([t,`${r}`]):r==null?e.push([t,""]):xM(r,t,e)}var V1e="div",wM=(e=>(e[e.None=1]="None",e[e.Focusable=2]="Focusable",e[e.Hidden=4]="Hidden",e))(wM||{});function U1e(e,t){let{features:r=1,...n}=e,i={ref:t,"aria-hidden":(r&2)===2?!0:void 0,style:{position:"fixed",top:1,left:1,width:1,height:0,padding:0,margin:-1,overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",borderWidth:"0",...(r&4)===4&&(r&2)!==2&&{display:"none"}}};return kl({ourProps:i,theirProps:n,slot:{},defaultTag:V1e,name:"Hidden"})}var wZ=Ol(U1e);var Qm=fe(Ee(),1),EM=(0,Qm.createContext)(null);EM.displayName="OpenClosedContext";var Wm=(e=>(e[e.Open=1]="Open",e[e.Closed=2]="Closed",e[e.Closing=4]="Closing",e[e.Opening=8]="Opening",e))(Wm||{});function EZ(){return(0,Qm.useContext)(EM)}function TZ({value:e,children:t}){return Qm.default.createElement(EM.Provider,{value:e},t)}var $i=(e=>(e.Space=" ",e.Enter="Enter",e.Escape="Escape",e.Backspace="Backspace",e.Delete="Delete",e.ArrowLeft="ArrowLeft",e.ArrowUp="ArrowUp",e.ArrowRight="ArrowRight",e.ArrowDown="ArrowDown",e.Home="Home",e.End="End",e.PageUp="PageUp",e.PageDown="PageDown",e.Tab="Tab",e))($i||{});var Ym=fe(Ee(),1);function CZ(e,t,r){let[n,i]=(0,Ym.useState)(r),o=e!==void 0,s=(0,Ym.useRef)(o),l=(0,Ym.useRef)(!1),c=(0,Ym.useRef)(!1);return o&&!s.current&&!l.current?(l.current=!0,s.current=o,console.error("A component is changing from uncontrolled to controlled. This may be caused by the value changing from undefined to a defined value, which should not happen.")):!o&&s.current&&!c.current&&(c.current=!0,s.current=o,console.error("A component is changing from controlled to uncontrolled. This may be caused by the value changing from a defined value to undefined, which should not happen.")),[o?e:n,Qt(f=>(o||i(f),t?.(f)))]}var SE=fe(Ee(),1);function TM(e,t){let r=(0,SE.useRef)([]),n=Qt(e);(0,SE.useEffect)(()=>{let i=[...r.current];for(let[o,s]of t.entries())if(r.current[o]!==s){let l=n(t,i);return r.current=t,l}},[n,...t])}var kZ=fe(Ee(),1);function SZ(e){return[e.screenX,e.screenY]}function OZ(){let e=(0,kZ.useRef)([-1,-1]);return{wasMoved(t){let r=SZ(t);return e.current[0]===r[0]&&e.current[1]===r[1]?!1:(e.current=r,!0)},update(t){e.current=SZ(t)}}}function B1e(){return/iPhone/gi.test(window.navigator.platform)||/Mac/gi.test(window.navigator.platform)&&window.navigator.maxTouchPoints>0}function G1e(){return/Android/gi.test(window.navigator.userAgent)}function NZ(){return B1e()||G1e()}var DZ=fe(Ee(),1);function LZ(...e){return(0,DZ.useMemo)(()=>zm(...e),[...e])}var z1e=(e=>(e[e.Open=0]="Open",e[e.Closed=1]="Closed",e))(z1e||{}),H1e=(e=>(e[e.Single=0]="Single",e[e.Multi=1]="Multi",e))(H1e||{}),Q1e=(e=>(e[e.Pointer=0]="Pointer",e[e.Other=1]="Other",e))(Q1e||{}),W1e=(e=>(e[e.OpenCombobox=0]="OpenCombobox",e[e.CloseCombobox=1]="CloseCombobox",e[e.GoToOption=2]="GoToOption",e[e.RegisterOption=3]="RegisterOption",e[e.UnregisterOption=4]="UnregisterOption",e[e.RegisterLabel=5]="RegisterLabel",e))(W1e||{});function CM(e,t=r=>r){let r=e.activeOptionIndex!==null?e.options[e.activeOptionIndex]:null,n=lZ(t(e.options.slice()),o=>o.dataRef.current.domRef.current),i=r?n.indexOf(r):null;return i===-1&&(i=null),{options:n,activeOptionIndex:i}}var Y1e={1(e){var t;return(t=e.dataRef.current)!=null&&t.disabled||e.comboboxState===1?e:{...e,activeOptionIndex:null,comboboxState:1}},0(e){var t;if((t=e.dataRef.current)!=null&&t.disabled||e.comboboxState===0)return e;let r=e.activeOptionIndex;if(e.dataRef.current){let{isSelected:n}=e.dataRef.current,i=e.options.findIndex(o=>n(o.dataRef.current.value));i!==-1&&(r=i)}return{...e,comboboxState:0,activeOptionIndex:r}},2(e,t){var r,n,i,o;if((r=e.dataRef.current)!=null&&r.disabled||(n=e.dataRef.current)!=null&&n.optionsRef.current&&!((i=e.dataRef.current)!=null&&i.optionsPropsRef.current.static)&&e.comboboxState===1)return e;let s=CM(e);if(s.activeOptionIndex===null){let c=s.options.findIndex(f=>!f.dataRef.current.disabled);c!==-1&&(s.activeOptionIndex=c)}let l=gZ(t,{resolveItems:()=>s.options,resolveActiveIndex:()=>s.activeOptionIndex,resolveId:c=>c.id,resolveDisabled:c=>c.dataRef.current.disabled});return{...e,...s,activeOptionIndex:l,activationTrigger:(o=t.trigger)!=null?o:1}},3:(e,t)=>{var r,n;let i={id:t.id,dataRef:t.dataRef},o=CM(e,l=>[...l,i]);e.activeOptionIndex===null&&(r=e.dataRef.current)!=null&&r.isSelected(t.dataRef.current.value)&&(o.activeOptionIndex=o.options.indexOf(i));let s={...e,...o,activationTrigger:1};return(n=e.dataRef.current)!=null&&n.__demoMode&&e.dataRef.current.value===void 0&&(s.activeOptionIndex=0),s},4:(e,t)=>{let r=CM(e,n=>{let i=n.findIndex(o=>o.id===t.id);return i!==-1&&n.splice(i,1),n});return{...e,...r,activationTrigger:1}},5:(e,t)=>({...e,labelId:t.id})},SM=(0,yt.createContext)(null);SM.displayName="ComboboxActionsContext";function Cy(e){let t=(0,yt.useContext)(SM);if(t===null){let r=new Error(`<${e} /> is missing a parent component.`);throw Error.captureStackTrace&&Error.captureStackTrace(r,Cy),r}return t}var kM=(0,yt.createContext)(null);kM.displayName="ComboboxDataContext";function Km(e){let t=(0,yt.useContext)(kM);if(t===null){let r=new Error(`<${e} /> is missing a parent component.`);throw Error.captureStackTrace&&Error.captureStackTrace(r,Km),r}return t}function K1e(e,t){return ra(t.type,Y1e,e,t)}var X1e=yt.Fragment;function Z1e(e,t){let{value:r,defaultValue:n,onChange:i,form:o,name:s,by:l=(ie,ye)=>ie===ye,disabled:c=!1,__demoMode:f=!1,nullable:m=!1,multiple:v=!1,...g}=e,[y=v?[]:void 0,w]=CZ(r,i,n),[T,S]=(0,yt.useReducer)(K1e,{dataRef:(0,yt.createRef)(),comboboxState:f?0:1,options:[],activeOptionIndex:null,activationTrigger:1,labelId:null}),A=(0,yt.useRef)(!1),b=(0,yt.useRef)({static:!1,hold:!1}),C=(0,yt.useRef)(null),x=(0,yt.useRef)(null),k=(0,yt.useRef)(null),P=(0,yt.useRef)(null),D=Qt(typeof l=="string"?(ie,ye)=>{let me=l;return ie?.[me]===ye?.[me]}:l),N=(0,yt.useCallback)(ie=>ra(I.mode,{1:()=>y.some(ye=>D(ye,ie)),0:()=>D(y,ie)}),[y]),I=(0,yt.useMemo)(()=>({...T,optionsPropsRef:b,labelRef:C,inputRef:x,buttonRef:k,optionsRef:P,value:y,defaultValue:n,disabled:c,mode:v?1:0,get activeOptionIndex(){if(A.current&&T.activeOptionIndex===null&&T.options.length>0){let ie=T.options.findIndex(ye=>!ye.dataRef.current.disabled);if(ie!==-1)return ie}return T.activeOptionIndex},compare:D,isSelected:N,nullable:m,__demoMode:f}),[y,n,c,v,m,f,T]),V=(0,yt.useRef)(I.activeOptionIndex!==null?I.options[I.activeOptionIndex]:null);(0,yt.useEffect)(()=>{let ie=I.activeOptionIndex!==null?I.options[I.activeOptionIndex]:null;V.current!==ie&&(V.current=ie)}),Tn(()=>{T.dataRef.current=I},[I]),dZ([I.buttonRef,I.inputRef,I.optionsRef],()=>se.closeCombobox(),I.comboboxState===0);let G=(0,yt.useMemo)(()=>({open:I.comboboxState===0,disabled:c,activeIndex:I.activeOptionIndex,activeOption:I.activeOptionIndex===null?null:I.options[I.activeOptionIndex].dataRef.current.value,value:y}),[I,c,y]),B=Qt(ie=>{let ye=I.options.find(me=>me.id===ie);ye&&re(ye.dataRef.current.value)}),U=Qt(()=>{if(I.activeOptionIndex!==null){let{dataRef:ie,id:ye}=I.options[I.activeOptionIndex];re(ie.current.value),se.goToOption(qn.Specific,ye)}}),z=Qt(()=>{S({type:0}),A.current=!0}),j=Qt(()=>{S({type:1}),A.current=!1}),J=Qt((ie,ye,me)=>(A.current=!1,ie===qn.Specific?S({type:2,focus:qn.Specific,id:ye,trigger:me}):S({type:2,focus:ie,trigger:me}))),K=Qt((ie,ye)=>(S({type:3,id:ie,dataRef:ye}),()=>{var me;((me=V.current)==null?void 0:me.id)===ie&&(A.current=!0),S({type:4,id:ie})})),ee=Qt(ie=>(S({type:5,id:ie}),()=>S({type:5,id:null}))),re=Qt(ie=>ra(I.mode,{0(){return w?.(ie)},1(){let ye=I.value.slice(),me=ye.findIndex(Oe=>D(Oe,ie));return me===-1?ye.push(ie):ye.splice(me,1),w?.(ye)}})),se=(0,yt.useMemo)(()=>({onChange:re,registerOption:K,registerLabel:ee,goToOption:J,closeCombobox:j,openCombobox:z,selectActiveOption:U,selectOption:B}),[]),xe=t===null?{}:{ref:t},Re=(0,yt.useRef)(null),Se=xE();return(0,yt.useEffect)(()=>{Re.current&&n!==void 0&&Se.addEventListener(Re.current,"reset",()=>{w?.(n)})},[Re,w]),yt.default.createElement(SM.Provider,{value:se},yt.default.createElement(kM.Provider,{value:I},yt.default.createElement(TZ,{value:ra(I.comboboxState,{0:Wm.Open,1:Wm.Closed})},s!=null&&y!=null&&xM({[s]:y}).map(([ie,ye],me)=>yt.default.createElement(wZ,{features:wM.Hidden,ref:me===0?Oe=>{var Ge;Re.current=(Ge=Oe?.closest("form"))!=null?Ge:null}:void 0,...TE({key:ie,as:"input",type:"hidden",hidden:!0,readOnly:!0,form:o,name:ie,value:ye})})),kl({ourProps:xe,theirProps:g,slot:G,defaultTag:X1e,name:"Combobox"}))))}var J1e="input";function _1e(e,t){var r,n,i,o;let s=Gm(),{id:l=`headlessui-combobox-input-${s}`,onChange:c,displayValue:f,type:m="text",...v}=e,g=Km("Combobox.Input"),y=Cy("Combobox.Input"),w=Hm(g.inputRef,t),T=LZ(g.inputRef),S=(0,yt.useRef)(!1),A=xE(),b=Qt(()=>{y.onChange(null),g.optionsRef.current&&(g.optionsRef.current.scrollTop=0),y.goToOption(qn.Nothing)}),C=function(){var U;return typeof f=="function"&&g.value!==void 0?(U=f(g.value))!=null?U:"":typeof g.value=="string"?g.value:""}();TM(([U,z],[j,J])=>{if(S.current)return;let K=g.inputRef.current;K&&((J===0&&z===1||U!==j)&&(K.value=U),requestAnimationFrame(()=>{if(S.current||!K||T?.activeElement!==K)return;let{selectionStart:ee,selectionEnd:re}=K;Math.abs((re??0)-(ee??0))===0&&ee===0&&K.setSelectionRange(K.value.length,K.value.length)}))},[C,g.comboboxState,T]),TM(([U],[z])=>{if(U===0&&z===1){if(S.current)return;let j=g.inputRef.current;if(!j)return;let J=j.value,{selectionStart:K,selectionEnd:ee,selectionDirection:re}=j;j.value="",j.value=J,re!==null?j.setSelectionRange(K,ee,re):j.setSelectionRange(K,ee)}},[g.comboboxState]);let x=(0,yt.useRef)(!1),k=Qt(()=>{x.current=!0}),P=Qt(()=>{A.nextFrame(()=>{x.current=!1})}),D=Qt(U=>{switch(S.current=!0,U.key){case $i.Enter:if(S.current=!1,g.comboboxState!==0||x.current)return;if(U.preventDefault(),U.stopPropagation(),g.activeOptionIndex===null){y.closeCombobox();return}y.selectActiveOption(),g.mode===0&&y.closeCombobox();break;case $i.ArrowDown:return S.current=!1,U.preventDefault(),U.stopPropagation(),ra(g.comboboxState,{0:()=>{y.goToOption(qn.Next)},1:()=>{y.openCombobox()}});case $i.ArrowUp:return S.current=!1,U.preventDefault(),U.stopPropagation(),ra(g.comboboxState,{0:()=>{y.goToOption(qn.Previous)},1:()=>{y.openCombobox(),A.nextFrame(()=>{g.value||y.goToOption(qn.Last)})}});case $i.Home:if(U.shiftKey)break;return S.current=!1,U.preventDefault(),U.stopPropagation(),y.goToOption(qn.First);case $i.PageUp:return S.current=!1,U.preventDefault(),U.stopPropagation(),y.goToOption(qn.First);case $i.End:if(U.shiftKey)break;return S.current=!1,U.preventDefault(),U.stopPropagation(),y.goToOption(qn.Last);case $i.PageDown:return S.current=!1,U.preventDefault(),U.stopPropagation(),y.goToOption(qn.Last);case $i.Escape:return S.current=!1,g.comboboxState!==0?void 0:(U.preventDefault(),g.optionsRef.current&&!g.optionsPropsRef.current.static&&U.stopPropagation(),g.nullable&&g.mode===0&&g.value===null&&b(),y.closeCombobox());case $i.Tab:if(S.current=!1,g.comboboxState!==0)return;g.mode===0&&y.selectActiveOption(),y.closeCombobox();break}}),N=Qt(U=>{c?.(U),g.nullable&&g.mode===0&&U.target.value===""&&b(),y.openCombobox()}),I=Qt(()=>{S.current=!1}),V=bE(()=>{if(g.labelId)return[g.labelId].join(" ")},[g.labelId]),G=(0,yt.useMemo)(()=>({open:g.comboboxState===0,disabled:g.disabled}),[g]),B={ref:w,id:l,role:"combobox",type:m,"aria-controls":(r=g.optionsRef.current)==null?void 0:r.id,"aria-expanded":g.comboboxState===0,"aria-activedescendant":g.activeOptionIndex===null||(n=g.options[g.activeOptionIndex])==null?void 0:n.id,"aria-labelledby":V,"aria-autocomplete":"list",defaultValue:(o=(i=e.defaultValue)!=null?i:g.defaultValue!==void 0?f?.(g.defaultValue):null)!=null?o:g.defaultValue,disabled:g.disabled,onCompositionStart:k,onCompositionEnd:P,onKeyDown:D,onChange:N,onBlur:I};return kl({ourProps:B,theirProps:v,slot:G,defaultTag:J1e,name:"Combobox.Input"})}var $1e="button";function exe(e,t){var r;let n=Km("Combobox.Button"),i=Cy("Combobox.Button"),o=Hm(n.buttonRef,t),s=Gm(),{id:l=`headlessui-combobox-button-${s}`,...c}=e,f=xE(),m=Qt(T=>{switch(T.key){case $i.ArrowDown:return T.preventDefault(),T.stopPropagation(),n.comboboxState===1&&i.openCombobox(),f.nextFrame(()=>{var S;return(S=n.inputRef.current)==null?void 0:S.focus({preventScroll:!0})});case $i.ArrowUp:return T.preventDefault(),T.stopPropagation(),n.comboboxState===1&&(i.openCombobox(),f.nextFrame(()=>{n.value||i.goToOption(qn.Last)})),f.nextFrame(()=>{var S;return(S=n.inputRef.current)==null?void 0:S.focus({preventScroll:!0})});case $i.Escape:return n.comboboxState!==0?void 0:(T.preventDefault(),n.optionsRef.current&&!n.optionsPropsRef.current.static&&T.stopPropagation(),i.closeCombobox(),f.nextFrame(()=>{var S;return(S=n.inputRef.current)==null?void 0:S.focus({preventScroll:!0})}));default:return}}),v=Qt(T=>{if(bZ(T.currentTarget))return T.preventDefault();n.comboboxState===0?i.closeCombobox():(T.preventDefault(),i.openCombobox()),f.nextFrame(()=>{var S;return(S=n.inputRef.current)==null?void 0:S.focus({preventScroll:!0})})}),g=bE(()=>{if(n.labelId)return[n.labelId,l].join(" ")},[n.labelId,l]),y=(0,yt.useMemo)(()=>({open:n.comboboxState===0,disabled:n.disabled,value:n.value}),[n]),w={ref:o,id:l,type:hZ(e,n.buttonRef),tabIndex:-1,"aria-haspopup":"listbox","aria-controls":(r=n.optionsRef.current)==null?void 0:r.id,"aria-expanded":n.comboboxState===0,"aria-labelledby":g,disabled:n.disabled,onClick:v,onKeyDown:m};return kl({ourProps:w,theirProps:c,slot:y,defaultTag:$1e,name:"Combobox.Button"})}var txe="label";function rxe(e,t){let r=Gm(),{id:n=`headlessui-combobox-label-${r}`,...i}=e,o=Km("Combobox.Label"),s=Cy("Combobox.Label"),l=Hm(o.labelRef,t);Tn(()=>s.registerLabel(n),[n]);let c=Qt(()=>{var m;return(m=o.inputRef.current)==null?void 0:m.focus({preventScroll:!0})}),f=(0,yt.useMemo)(()=>({open:o.comboboxState===0,disabled:o.disabled}),[o]);return kl({ourProps:{ref:l,id:n,onClick:c},theirProps:i,slot:f,defaultTag:txe,name:"Combobox.Label"})}var nxe="ul",ixe=CE.RenderStrategy|CE.Static;function oxe(e,t){let r=Gm(),{id:n=`headlessui-combobox-options-${r}`,hold:i=!1,...o}=e,s=Km("Combobox.Options"),l=Hm(s.optionsRef,t),c=EZ(),f=(()=>c!==null?(c&Wm.Open)===Wm.Open:s.comboboxState===0)();Tn(()=>{var y;s.optionsPropsRef.current.static=(y=e.static)!=null?y:!1},[s.optionsPropsRef,e.static]),Tn(()=>{s.optionsPropsRef.current.hold=i},[s.optionsPropsRef,i]),vZ({container:s.optionsRef.current,enabled:s.comboboxState===0,accept(y){return y.getAttribute("role")==="option"?NodeFilter.FILTER_REJECT:y.hasAttribute("role")?NodeFilter.FILTER_SKIP:NodeFilter.FILTER_ACCEPT},walk(y){y.setAttribute("role","none")}});let m=bE(()=>{var y,w;return(w=s.labelId)!=null?w:(y=s.buttonRef.current)==null?void 0:y.id},[s.labelId,s.buttonRef.current]),v=(0,yt.useMemo)(()=>({open:s.comboboxState===0}),[s]),g={"aria-labelledby":m,role:"listbox","aria-multiselectable":s.mode===1?!0:void 0,id:n,ref:l};return kl({ourProps:g,theirProps:o,slot:v,defaultTag:nxe,features:ixe,visible:f,name:"Combobox.Options"})}var axe="li";function sxe(e,t){var r,n;let i=Gm(),{id:o=`headlessui-combobox-option-${i}`,disabled:s=!1,value:l,...c}=e,f=Km("Combobox.Option"),m=Cy("Combobox.Option"),v=f.activeOptionIndex!==null?f.options[f.activeOptionIndex].id===o:!1,g=f.isSelected(l),y=(0,yt.useRef)(null),w=Is({disabled:s,value:l,domRef:y,textValue:(n=(r=y.current)==null?void 0:r.textContent)==null?void 0:n.toLowerCase()}),T=Hm(t,y),S=Qt(()=>m.selectOption(o));Tn(()=>m.registerOption(o,w),[w,o]);let A=(0,yt.useRef)(!f.__demoMode);Tn(()=>{if(!f.__demoMode)return;let I=Bm();return I.requestAnimationFrame(()=>{A.current=!0}),I.dispose},[]),Tn(()=>{if(f.comboboxState!==0||!v||!A.current||f.activationTrigger===0)return;let I=Bm();return I.requestAnimationFrame(()=>{var V,G;(G=(V=y.current)==null?void 0:V.scrollIntoView)==null||G.call(V,{block:"nearest"})}),I.dispose},[y,v,f.comboboxState,f.activationTrigger,f.activeOptionIndex]);let b=Qt(I=>{if(s)return I.preventDefault();S(),f.mode===0&&m.closeCombobox(),NZ()||requestAnimationFrame(()=>{var V;return(V=f.inputRef.current)==null?void 0:V.focus()})}),C=Qt(()=>{if(s)return m.goToOption(qn.Nothing);m.goToOption(qn.Specific,o)}),x=OZ(),k=Qt(I=>x.update(I)),P=Qt(I=>{x.wasMoved(I)&&(s||v||m.goToOption(qn.Specific,o,0))}),D=Qt(I=>{x.wasMoved(I)&&(s||v&&(f.optionsPropsRef.current.hold||m.goToOption(qn.Nothing)))}),N=(0,yt.useMemo)(()=>({active:v,selected:g,disabled:s}),[v,g,s]);return kl({ourProps:{id:o,ref:T,role:"option",tabIndex:s===!0?void 0:-1,"aria-disabled":s===!0?!0:void 0,"aria-selected":g,disabled:void 0,onClick:b,onFocus:C,onPointerEnter:k,onMouseEnter:k,onPointerMove:P,onMouseMove:P,onPointerLeave:D,onMouseLeave:D},theirProps:c,slot:N,defaultTag:axe,name:"Combobox.Option"})}var lxe=Ol(Z1e),uxe=Ol(exe),cxe=Ol(_1e),fxe=Ol(rxe),dxe=Ol(oxe),pxe=Ol(sxe),Hf=Object.assign(lxe,{Input:cxe,Button:uxe,Label:fxe,Options:dxe,Option:pxe});var iI=fe(mf(),1),$we=Object.defineProperty,oe=(e,t)=>$we(e,"name",{value:t,configurable:!0});function _u(e){let t=(0,te.createContext)(null);return t.displayName=e,t}oe(_u,"createNullableContext");function $u(e){function t(r){var n;let i=(0,te.useContext)(e);if(i===null&&r!=null&&r.nonNull)throw new Error(`Tried to use \`${((n=r.caller)==null?void 0:n.name)||t.caller.name}\` without the necessary context. Make sure to render the \`${e.displayName}Provider\` component higher up the tree.`);return i}return oe(t,"useGivenContext"),Object.defineProperty(t,"name",{value:`use${e.displayName}`}),t}oe($u,"createContextHook");var d_=_u("StorageContext");function p_(e){let t=(0,te.useRef)(!0),[r,n]=(0,te.useState)(new dp(e.storage));return(0,te.useEffect)(()=>{t.current?t.current=!1:n(new dp(e.storage))},[e.storage]),(0,Y.jsx)(d_.Provider,{value:r,children:e.children})}oe(p_,"StorageContextProvider");var Pl=$u(d_),eEe=oe(({title:e,titleId:t,...r})=>ue.createElement("svg",{height:"1em",viewBox:"0 0 14 14",fill:"none",xmlns:"http://www.w3.org/2000/svg","aria-labelledby":t,...r},e?ue.createElement("title",{id:t},e):null,ue.createElement("path",{d:"M5.0484 1.40838C6.12624 0.33054 7.87376 0.330541 8.9516 1.40838L12.5916 5.0484C13.6695 6.12624 13.6695 7.87376 12.5916 8.9516L8.9516 12.5916C7.87376 13.6695 6.12624 13.6695 5.0484 12.5916L1.40838 8.9516C0.33054 7.87376 0.330541 6.12624 1.40838 5.0484L5.0484 1.40838Z",stroke:"currentColor",strokeWidth:1.2}),ue.createElement("rect",{x:6,y:6,width:2,height:2,rx:1,fill:"currentColor"})),"SvgArgument"),tEe=oe(({title:e,titleId:t,...r})=>ue.createElement("svg",{height:"1em",viewBox:"0 0 14 9",fill:"none",xmlns:"http://www.w3.org/2000/svg","aria-labelledby":t,...r},e?ue.createElement("title",{id:t},e):null,ue.createElement("path",{d:"M1 1L7 7L13 1",stroke:"currentColor",strokeWidth:1.5})),"SvgChevronDown"),rEe=oe(({title:e,titleId:t,...r})=>ue.createElement("svg",{height:"1em",viewBox:"0 0 7 10",fill:"none",xmlns:"http://www.w3.org/2000/svg","aria-labelledby":t,...r},e?ue.createElement("title",{id:t},e):null,ue.createElement("path",{d:"M6 1.04819L2 5.04819L6 9.04819",stroke:"currentColor",strokeWidth:1.75})),"SvgChevronLeft"),nEe=oe(({title:e,titleId:t,...r})=>ue.createElement("svg",{height:"1em",viewBox:"0 0 14 9",fill:"none",xmlns:"http://www.w3.org/2000/svg","aria-labelledby":t,...r},e?ue.createElement("title",{id:t},e):null,ue.createElement("path",{d:"M13 8L7 2L1 8",stroke:"currentColor",strokeWidth:1.5})),"SvgChevronUp"),iEe=oe(({title:e,titleId:t,...r})=>ue.createElement("svg",{height:"1em",viewBox:"0 0 14 14",fill:"none",xmlns:"http://www.w3.org/2000/svg","aria-labelledby":t,...r},e?ue.createElement("title",{id:t},e):null,ue.createElement("path",{d:"M1 1L12.9998 12.9997",stroke:"currentColor",strokeWidth:1.5}),ue.createElement("path",{d:"M13 1L1.00079 13.0003",stroke:"currentColor",strokeWidth:1.5})),"SvgClose"),oEe=oe(({title:e,titleId:t,...r})=>ue.createElement("svg",{height:"1em",viewBox:"-2 -2 22 22",fill:"none",xmlns:"http://www.w3.org/2000/svg","aria-labelledby":t,...r},e?ue.createElement("title",{id:t},e):null,ue.createElement("path",{d:"M11.25 14.2105V15.235C11.25 16.3479 10.3479 17.25 9.23501 17.25H2.76499C1.65214 17.25 0.75 16.3479 0.75 15.235L0.75 8.76499C0.75 7.65214 1.65214 6.75 2.76499 6.75L3.78947 6.75",stroke:"currentColor",strokeWidth:1.5}),ue.createElement("rect",{x:6.75,y:.75,width:10.5,height:10.5,rx:2.2069,stroke:"currentColor",strokeWidth:1.5})),"SvgCopy"),aEe=oe(({title:e,titleId:t,...r})=>ue.createElement("svg",{height:"1em",viewBox:"0 0 14 14",fill:"none",xmlns:"http://www.w3.org/2000/svg","aria-labelledby":t,...r},e?ue.createElement("title",{id:t},e):null,ue.createElement("path",{d:"M5.0484 1.40838C6.12624 0.33054 7.87376 0.330541 8.9516 1.40838L12.5916 5.0484C13.6695 6.12624 13.6695 7.87376 12.5916 8.9516L8.9516 12.5916C7.87376 13.6695 6.12624 13.6695 5.0484 12.5916L1.40838 8.9516C0.33054 7.87376 0.330541 6.12624 1.40838 5.0484L5.0484 1.40838Z",stroke:"currentColor",strokeWidth:1.2}),ue.createElement("path",{d:"M5 9L9 5",stroke:"currentColor",strokeWidth:1.2}),ue.createElement("path",{d:"M5 5L9 9",stroke:"currentColor",strokeWidth:1.2})),"SvgDeprecatedArgument"),sEe=oe(({title:e,titleId:t,...r})=>ue.createElement("svg",{height:"1em",viewBox:"0 0 12 12",fill:"none",xmlns:"http://www.w3.org/2000/svg","aria-labelledby":t,...r},e?ue.createElement("title",{id:t},e):null,ue.createElement("path",{d:"M4 8L8 4",stroke:"currentColor",strokeWidth:1.2}),ue.createElement("path",{d:"M4 4L8 8",stroke:"currentColor",strokeWidth:1.2}),ue.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M8.5 1.2H9C9.99411 1.2 10.8 2.00589 10.8 3V9C10.8 9.99411 9.99411 10.8 9 10.8H8.5V12H9C10.6569 12 12 10.6569 12 9V3C12 1.34315 10.6569 0 9 0H8.5V1.2ZM3.5 1.2V0H3C1.34315 0 0 1.34315 0 3V9C0 10.6569 1.34315 12 3 12H3.5V10.8H3C2.00589 10.8 1.2 9.99411 1.2 9V3C1.2 2.00589 2.00589 1.2 3 1.2H3.5Z",fill:"currentColor"})),"SvgDeprecatedEnumValue"),lEe=oe(({title:e,titleId:t,...r})=>ue.createElement("svg",{height:"1em",viewBox:"0 0 12 12",fill:"none",xmlns:"http://www.w3.org/2000/svg","aria-labelledby":t,...r},e?ue.createElement("title",{id:t},e):null,ue.createElement("rect",{x:.6,y:.6,width:10.8,height:10.8,rx:3.4,stroke:"currentColor",strokeWidth:1.2}),ue.createElement("path",{d:"M4 8L8 4",stroke:"currentColor",strokeWidth:1.2}),ue.createElement("path",{d:"M4 4L8 8",stroke:"currentColor",strokeWidth:1.2})),"SvgDeprecatedField"),uEe=oe(({title:e,titleId:t,...r})=>ue.createElement("svg",{height:"1em",viewBox:"0 0.5 12 12",xmlns:"http://www.w3.org/2000/svg","aria-labelledby":t,...r},e?ue.createElement("title",{id:t},e):null,ue.createElement("rect",{x:7,y:5.5,width:2,height:2,rx:1,transform:"rotate(90 7 5.5)",fill:"currentColor"}),ue.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M10.8 9L10.8 9.5C10.8 10.4941 9.99411 11.3 9 11.3L3 11.3C2.00589 11.3 1.2 10.4941 1.2 9.5L1.2 9L-3.71547e-07 9L-3.93402e-07 9.5C-4.65826e-07 11.1569 1.34314 12.5 3 12.5L9 12.5C10.6569 12.5 12 11.1569 12 9.5L12 9L10.8 9ZM10.8 4L12 4L12 3.5C12 1.84315 10.6569 0.5 9 0.5L3 0.5C1.34315 0.5 -5.87117e-08 1.84315 -1.31135e-07 3.5L-1.5299e-07 4L1.2 4L1.2 3.5C1.2 2.50589 2.00589 1.7 3 1.7L9 1.7C9.99411 1.7 10.8 2.50589 10.8 3.5L10.8 4Z",fill:"currentColor"})),"SvgDirective"),cEe=oe(({title:e,titleId:t,...r})=>ue.createElement("svg",{height:"1em",viewBox:"0 0 20 24",fill:"none",xmlns:"http://www.w3.org/2000/svg","aria-labelledby":t,...r},e?ue.createElement("title",{id:t},e):null,ue.createElement("path",{d:"M0.75 3C0.75 1.75736 1.75736 0.75 3 0.75H17.25C17.8023 0.75 18.25 1.19772 18.25 1.75V5.25",stroke:"currentColor",strokeWidth:1.5}),ue.createElement("path",{d:"M0.75 3C0.75 4.24264 1.75736 5.25 3 5.25H18.25C18.8023 5.25 19.25 5.69771 19.25 6.25V22.25C19.25 22.8023 18.8023 23.25 18.25 23.25H3C1.75736 23.25 0.75 22.2426 0.75 21V3Z",stroke:"currentColor",strokeWidth:1.5}),ue.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M3 5.25C1.75736 5.25 0.75 4.24264 0.75 3V21C0.75 22.2426 1.75736 23.25 3 23.25H18.25C18.8023 23.25 19.25 22.8023 19.25 22.25V6.25C19.25 5.69771 18.8023 5.25 18.25 5.25H3ZM13 11L6 11V12.5L13 12.5V11Z",fill:"currentColor"})),"SvgDocsFilled"),fEe=oe(({title:e,titleId:t,...r})=>ue.createElement("svg",{height:"1em",viewBox:"0 0 20 24",fill:"none",xmlns:"http://www.w3.org/2000/svg","aria-labelledby":t,...r},e?ue.createElement("title",{id:t},e):null,ue.createElement("path",{d:"M0.75 3C0.75 4.24264 1.75736 5.25 3 5.25H17.25M0.75 3C0.75 1.75736 1.75736 0.75 3 0.75H16.25C16.8023 0.75 17.25 1.19772 17.25 1.75V5.25M0.75 3V21C0.75 22.2426 1.75736 23.25 3 23.25H18.25C18.8023 23.25 19.25 22.8023 19.25 22.25V6.25C19.25 5.69771 18.8023 5.25 18.25 5.25H17.25",stroke:"currentColor",strokeWidth:1.5}),ue.createElement("line",{x1:13,y1:11.75,x2:6,y2:11.75,stroke:"currentColor",strokeWidth:1.5})),"SvgDocs"),dEe=oe(({title:e,titleId:t,...r})=>ue.createElement("svg",{height:"1em",viewBox:"0 0 12 12",fill:"none",xmlns:"http://www.w3.org/2000/svg","aria-labelledby":t,...r},e?ue.createElement("title",{id:t},e):null,ue.createElement("rect",{x:5,y:5,width:2,height:2,rx:1,fill:"currentColor"}),ue.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M8.5 1.2H9C9.99411 1.2 10.8 2.00589 10.8 3V9C10.8 9.99411 9.99411 10.8 9 10.8H8.5V12H9C10.6569 12 12 10.6569 12 9V3C12 1.34315 10.6569 0 9 0H8.5V1.2ZM3.5 1.2V0H3C1.34315 0 0 1.34315 0 3V9C0 10.6569 1.34315 12 3 12H3.5V10.8H3C2.00589 10.8 1.2 9.99411 1.2 9V3C1.2 2.00589 2.00589 1.2 3 1.2H3.5Z",fill:"currentColor"})),"SvgEnumValue"),pEe=oe(({title:e,titleId:t,...r})=>ue.createElement("svg",{height:"1em",viewBox:"0 0 12 13",fill:"none",xmlns:"http://www.w3.org/2000/svg","aria-labelledby":t,...r},e?ue.createElement("title",{id:t},e):null,ue.createElement("rect",{x:.6,y:1.1,width:10.8,height:10.8,rx:2.4,stroke:"currentColor",strokeWidth:1.2}),ue.createElement("rect",{x:5,y:5.5,width:2,height:2,rx:1,fill:"currentColor"})),"SvgField"),mEe=oe(({title:e,titleId:t,...r})=>ue.createElement("svg",{height:"1em",viewBox:"0 0 24 20",fill:"none",xmlns:"http://www.w3.org/2000/svg","aria-labelledby":t,...r},e?ue.createElement("title",{id:t},e):null,ue.createElement("path",{d:"M1.59375 9.52344L4.87259 12.9944L8.07872 9.41249",stroke:"currentColor",strokeWidth:1.5,strokeLinecap:"square"}),ue.createElement("path",{d:"M13.75 5.25V10.75H18.75",stroke:"currentColor",strokeWidth:1.5,strokeLinecap:"square"}),ue.createElement("path",{d:"M4.95427 11.9332C4.55457 10.0629 4.74441 8.11477 5.49765 6.35686C6.25089 4.59894 7.5305 3.11772 9.16034 2.11709C10.7902 1.11647 12.6901 0.645626 14.5986 0.769388C16.5071 0.893151 18.3303 1.60543 19.8172 2.80818C21.3042 4.01093 22.3818 5.64501 22.9017 7.48548C23.4216 9.32595 23.3582 11.2823 22.7203 13.0853C22.0824 14.8883 20.9013 16.4492 19.3396 17.5532C17.778 18.6572 15.9125 19.25 14 19.25",stroke:"currentColor",strokeWidth:1.5})),"SvgHistory"),hEe=oe(({title:e,titleId:t,...r})=>ue.createElement("svg",{height:"1em",viewBox:"0 0 12 12",fill:"none",xmlns:"http://www.w3.org/2000/svg","aria-labelledby":t,...r},e?ue.createElement("title",{id:t},e):null,ue.createElement("circle",{cx:6,cy:6,r:5.4,stroke:"currentColor",strokeWidth:1.2,strokeDasharray:"4.241025 4.241025",transform:"rotate(22.5)","transform-origin":"center"}),ue.createElement("circle",{cx:6,cy:6,r:1,fill:"currentColor"})),"SvgImplements"),vEe=oe(({title:e,titleId:t,...r})=>ue.createElement("svg",{height:"1em",viewBox:"0 0 19 18",fill:"none",xmlns:"http://www.w3.org/2000/svg","aria-labelledby":t,...r},e?ue.createElement("title",{id:t},e):null,ue.createElement("path",{d:"M1.5 14.5653C1.5 15.211 1.75652 15.8303 2.21314 16.2869C2.66975 16.7435 3.28905 17 3.9348 17C4.58054 17 5.19984 16.7435 5.65646 16.2869C6.11307 15.8303 6.36959 15.211 6.36959 14.5653V12.1305H3.9348C3.28905 12.1305 2.66975 12.387 2.21314 12.8437C1.75652 13.3003 1.5 13.9195 1.5 14.5653Z",stroke:"currentColor",strokeWidth:1.125,strokeLinecap:"round",strokeLinejoin:"round"}),ue.createElement("path",{d:"M3.9348 1.00063C3.28905 1.00063 2.66975 1.25715 2.21314 1.71375C1.75652 2.17035 1.5 2.78964 1.5 3.43537C1.5 4.0811 1.75652 4.70038 2.21314 5.15698C2.66975 5.61358 3.28905 5.8701 3.9348 5.8701H6.36959V3.43537C6.36959 2.78964 6.11307 2.17035 5.65646 1.71375C5.19984 1.25715 4.58054 1.00063 3.9348 1.00063Z",stroke:"currentColor",strokeWidth:1.125,strokeLinecap:"round",strokeLinejoin:"round"}),ue.createElement("path",{d:"M15.0652 12.1305H12.6304V14.5653C12.6304 15.0468 12.7732 15.5175 13.0407 15.9179C13.3083 16.3183 13.6885 16.6304 14.1334 16.8147C14.5783 16.9989 15.0679 17.0472 15.5402 16.9532C16.0125 16.8593 16.4464 16.6274 16.7869 16.2869C17.1274 15.9464 17.3593 15.5126 17.4532 15.0403C17.5472 14.568 17.4989 14.0784 17.3147 13.6335C17.1304 13.1886 16.8183 12.8084 16.4179 12.5409C16.0175 12.2733 15.5468 12.1305 15.0652 12.1305Z",stroke:"currentColor",strokeWidth:1.125,strokeLinecap:"round",strokeLinejoin:"round"}),ue.createElement("path",{d:"M12.6318 5.86775H6.36955V12.1285H12.6318V5.86775Z",stroke:"currentColor",strokeWidth:1.125,strokeLinecap:"round",strokeLinejoin:"round"}),ue.createElement("path",{d:"M17.5 3.43473C17.5 2.789 17.2435 2.16972 16.7869 1.71312C16.3303 1.25652 15.711 1 15.0652 1C14.4195 1 13.8002 1.25652 13.3435 1.71312C12.8869 2.16972 12.6304 2.789 12.6304 3.43473V5.86946H15.0652C15.711 5.86946 16.3303 5.61295 16.7869 5.15635C17.2435 4.69975 17.5 4.08046 17.5 3.43473Z",stroke:"currentColor",strokeWidth:1.125,strokeLinecap:"round",strokeLinejoin:"round"})),"SvgKeyboardShortcut"),gEe=oe(({title:e,titleId:t,...r})=>ue.createElement("svg",{height:"1em",viewBox:"0 0 13 13",fill:"none",xmlns:"http://www.w3.org/2000/svg","aria-labelledby":t,...r},e?ue.createElement("title",{id:t},e):null,ue.createElement("circle",{cx:5,cy:5,r:4.35,stroke:"currentColor",strokeWidth:1.3}),ue.createElement("line",{x1:8.45962,y1:8.54038,x2:11.7525,y2:11.8333,stroke:"currentColor",strokeWidth:1.3})),"SvgMagnifyingGlass"),yEe=oe(({title:e,titleId:t,...r})=>ue.createElement("svg",{height:"1em",viewBox:"-2 -2 22 22",fill:"none",xmlns:"http://www.w3.org/2000/svg","aria-labelledby":t,...r},e?ue.createElement("title",{id:t},e):null,ue.createElement("path",{d:"M17.2492 6V2.9569C17.2492 1.73806 16.2611 0.75 15.0423 0.75L2.9569 0.75C1.73806 0.75 0.75 1.73806 0.75 2.9569L0.75 6",stroke:"currentColor",strokeWidth:1.5}),ue.createElement("path",{d:"M0.749873 12V15.0431C0.749873 16.2619 1.73794 17.25 2.95677 17.25H15.0421C16.261 17.25 17.249 16.2619 17.249 15.0431V12",stroke:"currentColor",strokeWidth:1.5}),ue.createElement("path",{d:"M6 4.5L9 7.5L12 4.5",stroke:"currentColor",strokeWidth:1.5}),ue.createElement("path",{d:"M12 13.5L9 10.5L6 13.5",stroke:"currentColor",strokeWidth:1.5})),"SvgMerge"),bEe=oe(({title:e,titleId:t,...r})=>ue.createElement("svg",{height:"1em",viewBox:"0 0 14 14",fill:"none",xmlns:"http://www.w3.org/2000/svg","aria-labelledby":t,...r},e?ue.createElement("title",{id:t},e):null,ue.createElement("path",{d:"M0.75 13.25L0.0554307 12.967C-0.0593528 13.2488 0.00743073 13.5719 0.224488 13.7851C0.441545 13.9983 0.765869 14.0592 1.04549 13.9393L0.75 13.25ZM12.8214 1.83253L12.2911 2.36286L12.2911 2.36286L12.8214 1.83253ZM12.8214 3.90194L13.3517 4.43227L12.8214 3.90194ZM10.0981 1.17859L9.56773 0.648259L10.0981 1.17859ZM12.1675 1.17859L12.6978 0.648258L12.6978 0.648257L12.1675 1.17859ZM2.58049 8.75697L3.27506 9.03994L2.58049 8.75697ZM2.70066 8.57599L3.23099 9.10632L2.70066 8.57599ZM5.2479 11.4195L4.95355 10.7297L5.2479 11.4195ZM5.42036 11.303L4.89003 10.7727L5.42036 11.303ZM4.95355 10.7297C4.08882 11.0987 3.41842 11.362 2.73535 11.6308C2.05146 11.9 1.35588 12.1743 0.454511 12.5607L1.04549 13.9393C1.92476 13.5624 2.60256 13.2951 3.28469 13.0266C3.96762 12.7578 4.65585 12.4876 5.54225 12.1093L4.95355 10.7297ZM1.44457 13.533L3.27506 9.03994L1.88592 8.474L0.0554307 12.967L1.44457 13.533ZM3.23099 9.10632L10.6284 1.70892L9.56773 0.648259L2.17033 8.04566L3.23099 9.10632ZM11.6371 1.70892L12.2911 2.36286L13.3517 1.3022L12.6978 0.648258L11.6371 1.70892ZM12.2911 3.37161L4.89003 10.7727L5.95069 11.8333L13.3517 4.43227L12.2911 3.37161ZM12.2911 2.36286C12.5696 2.64142 12.5696 3.09305 12.2911 3.37161L13.3517 4.43227C14.2161 3.56792 14.2161 2.16654 13.3517 1.3022L12.2911 2.36286ZM10.6284 1.70892C10.9069 1.43036 11.3586 1.43036 11.6371 1.70892L12.6978 0.648257C11.8335 -0.216088 10.4321 -0.216084 9.56773 0.648259L10.6284 1.70892ZM3.27506 9.03994C3.26494 9.06479 3.24996 9.08735 3.23099 9.10632L2.17033 8.04566C2.04793 8.16806 1.95123 8.31369 1.88592 8.474L3.27506 9.03994ZM5.54225 12.1093C5.69431 12.0444 5.83339 11.9506 5.95069 11.8333L4.89003 10.7727C4.90863 10.7541 4.92988 10.7398 4.95355 10.7297L5.54225 12.1093Z",fill:"currentColor"}),ue.createElement("path",{d:"M11.5 4.5L9.5 2.5",stroke:"currentColor",strokeWidth:1.4026,strokeLinecap:"round",strokeLinejoin:"round"}),ue.createElement("path",{d:"M5.5 10.5L3.5 8.5",stroke:"currentColor",strokeWidth:1.4026,strokeLinecap:"round",strokeLinejoin:"round"})),"SvgPen"),AEe=oe(({title:e,titleId:t,...r})=>ue.createElement("svg",{height:"1em",viewBox:"0 0 16 18",fill:"none",xmlns:"http://www.w3.org/2000/svg","aria-labelledby":t,...r},e?ue.createElement("title",{id:t},e):null,ue.createElement("path",{d:"M1.32226e-07 1.6609C7.22332e-08 0.907329 0.801887 0.424528 1.46789 0.777117L15.3306 8.11621C16.0401 8.49182 16.0401 9.50818 15.3306 9.88379L1.46789 17.2229C0.801886 17.5755 1.36076e-06 17.0927 1.30077e-06 16.3391L1.32226e-07 1.6609Z",fill:"currentColor"})),"SvgPlay"),xEe=oe(({title:e,titleId:t,...r})=>ue.createElement("svg",{height:"1em",viewBox:"0 0 10 16",fill:"none",xmlns:"http://www.w3.org/2000/svg","aria-labelledby":t,...r},e?ue.createElement("title",{id:t},e):null,ue.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M4.25 9.25V13.5H5.75V9.25L10 9.25V7.75L5.75 7.75V3.5H4.25V7.75L0 7.75V9.25L4.25 9.25Z",fill:"currentColor"})),"SvgPlus"),wEe=oe(({title:e,titleId:t,...r})=>ue.createElement("svg",{width:25,height:25,viewBox:"0 0 25 25",fill:"none",xmlns:"http://www.w3.org/2000/svg","aria-labelledby":t,...r},e?ue.createElement("title",{id:t},e):null,ue.createElement("path",{d:"M10.2852 24.0745L13.7139 18.0742",stroke:"currentColor",strokeWidth:1.5625}),ue.createElement("path",{d:"M14.5742 24.0749L17.1457 19.7891",stroke:"currentColor",strokeWidth:1.5625}),ue.createElement("path",{d:"M19.4868 24.0735L20.7229 21.7523C21.3259 20.6143 21.5457 19.3122 21.3496 18.0394C21.1535 16.7666 20.5519 15.591 19.6342 14.6874L23.7984 6.87853C24.0123 6.47728 24.0581 6.00748 23.9256 5.57249C23.7932 5.1375 23.4933 4.77294 23.0921 4.55901C22.6908 4.34509 22.221 4.29932 21.7861 4.43178C21.3511 4.56424 20.9865 4.86408 20.7726 5.26533L16.6084 13.0742C15.3474 12.8142 14.0362 12.9683 12.8699 13.5135C11.7035 14.0586 10.7443 14.9658 10.135 16.1L6 24.0735",stroke:"currentColor",strokeWidth:1.5625}),ue.createElement("path",{d:"M4 15L5 13L7 12L5 11L4 9L3 11L1 12L3 13L4 15Z",stroke:"currentColor",strokeWidth:1.5625,strokeLinejoin:"round"}),ue.createElement("path",{d:"M11.5 8L12.6662 5.6662L15 4.5L12.6662 3.3338L11.5 1L10.3338 3.3338L8 4.5L10.3338 5.6662L11.5 8Z",stroke:"currentColor",strokeWidth:1.5625,strokeLinejoin:"round"})),"SvgPrettify"),EEe=oe(({title:e,titleId:t,...r})=>ue.createElement("svg",{height:"1em",viewBox:"0 0 16 16",fill:"none",xmlns:"http://www.w3.org/2000/svg","aria-labelledby":t,...r},e?ue.createElement("title",{id:t},e):null,ue.createElement("path",{d:"M4.75 9.25H1.25V12.75",stroke:"currentColor",strokeWidth:1,strokeLinecap:"square"}),ue.createElement("path",{d:"M11.25 6.75H14.75V3.25",stroke:"currentColor",strokeWidth:1,strokeLinecap:"square"}),ue.createElement("path",{d:"M14.1036 6.65539C13.8 5.27698 13.0387 4.04193 11.9437 3.15131C10.8487 2.26069 9.48447 1.76694 8.0731 1.75043C6.66173 1.73392 5.28633 2.19563 4.17079 3.0604C3.05526 3.92516 2.26529 5.14206 1.92947 6.513",stroke:"currentColor",strokeWidth:1}),ue.createElement("path",{d:"M1.89635 9.34461C2.20001 10.723 2.96131 11.9581 4.05631 12.8487C5.15131 13.7393 6.51553 14.2331 7.9269 14.2496C9.33827 14.2661 10.7137 13.8044 11.8292 12.9396C12.9447 12.0748 13.7347 10.8579 14.0705 9.487",stroke:"currentColor",strokeWidth:1})),"SvgReload"),TEe=oe(({title:e,titleId:t,...r})=>ue.createElement("svg",{height:"1em",viewBox:"0 0 13 13",fill:"none",xmlns:"http://www.w3.org/2000/svg","aria-labelledby":t,...r},e?ue.createElement("title",{id:t},e):null,ue.createElement("rect",{x:.6,y:.6,width:11.8,height:11.8,rx:5.9,stroke:"currentColor",strokeWidth:1.2}),ue.createElement("path",{d:"M4.25 7.5C4.25 6 5.75 5 6.5 6.5C7.25 8 8.75 7 8.75 5.5",stroke:"currentColor",strokeWidth:1.2})),"SvgRootType"),CEe=oe(({title:e,titleId:t,...r})=>ue.createElement("svg",{height:"1em",viewBox:"0 0 21 20",fill:"none",xmlns:"http://www.w3.org/2000/svg","aria-labelledby":t,...r},e?ue.createElement("title",{id:t},e):null,ue.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M9.29186 1.92702C9.06924 1.82745 8.87014 1.68202 8.70757 1.50024L7.86631 0.574931C7.62496 0.309957 7.30773 0.12592 6.95791 0.0479385C6.60809 -0.0300431 6.24274 0.00182978 5.91171 0.139208C5.58068 0.276585 5.3001 0.512774 5.10828 0.815537C4.91645 1.1183 4.82272 1.47288 4.83989 1.83089L4.90388 3.08019C4.91612 3.32348 4.87721 3.56662 4.78968 3.79394C4.70215 4.02126 4.56794 4.2277 4.39571 4.39994C4.22347 4.57219 4.01704 4.7064 3.78974 4.79394C3.56243 4.88147 3.3193 4.92038 3.07603 4.90814L1.8308 4.84414C1.47162 4.82563 1.11553 4.91881 0.811445 5.11086C0.507359 5.30292 0.270203 5.58443 0.132561 5.91671C-0.00508149 6.249 -0.0364554 6.61576 0.0427496 6.9666C0.121955 7.31744 0.307852 7.63514 0.5749 7.87606L1.50016 8.71204C1.68193 8.87461 1.82735 9.07373 1.92692 9.29636C2.02648 9.51898 2.07794 9.76012 2.07794 10.004C2.07794 10.2479 2.02648 10.489 1.92692 10.7116C1.82735 10.9343 1.68193 11.1334 1.50016 11.296L0.5749 12.1319C0.309856 12.3729 0.125575 12.6898 0.0471809 13.0393C-0.0312128 13.3888 9.64098e-05 13.754 0.13684 14.0851C0.273583 14.4162 0.509106 14.6971 0.811296 14.8894C1.11349 15.0817 1.46764 15.1762 1.82546 15.1599L3.0707 15.0959C3.31397 15.0836 3.5571 15.1225 3.7844 15.2101C4.01171 15.2976 4.21814 15.4318 4.39037 15.6041C4.56261 15.7763 4.69682 15.9827 4.78435 16.2101C4.87188 16.4374 4.91078 16.6805 4.89855 16.9238L4.83455 18.1691C4.81605 18.5283 4.90921 18.8844 5.10126 19.1885C5.2933 19.4926 5.5748 19.7298 5.90707 19.8674C6.23934 20.0051 6.60608 20.0365 6.9569 19.9572C7.30772 19.878 7.6254 19.6921 7.86631 19.4251L8.7129 18.4998C8.87547 18.318 9.07458 18.1725 9.29719 18.073C9.51981 17.9734 9.76093 17.9219 10.0048 17.9219C10.2487 17.9219 10.4898 17.9734 10.7124 18.073C10.935 18.1725 11.1341 18.318 11.2967 18.4998L12.1326 19.4251C12.3735 19.6921 12.6912 19.878 13.042 19.9572C13.3929 20.0365 13.7596 20.0051 14.0919 19.8674C14.4241 19.7298 14.7056 19.4926 14.8977 19.1885C15.0897 18.8844 15.1829 18.5283 15.1644 18.1691L15.1004 16.9238C15.0882 16.6805 15.1271 16.4374 15.2146 16.2101C15.3021 15.9827 15.4363 15.7763 15.6086 15.6041C15.7808 15.4318 15.9872 15.2976 16.2145 15.2101C16.4418 15.1225 16.685 15.0836 16.9282 15.0959L18.1735 15.1599C18.5326 15.1784 18.8887 15.0852 19.1928 14.8931C19.4969 14.7011 19.7341 14.4196 19.8717 14.0873C20.0093 13.755 20.0407 13.3882 19.9615 13.0374C19.8823 12.6866 19.6964 12.3689 19.4294 12.1279L18.5041 11.292C18.3223 11.1294 18.1769 10.9303 18.0774 10.7076C17.9778 10.485 17.9263 10.2439 17.9263 10C17.9263 9.75612 17.9778 9.51499 18.0774 9.29236C18.1769 9.06973 18.3223 8.87062 18.5041 8.70804L19.4294 7.87206C19.6964 7.63114 19.8823 7.31344 19.9615 6.9626C20.0407 6.61176 20.0093 6.245 19.8717 5.91271C19.7341 5.58043 19.4969 5.29892 19.1928 5.10686C18.8887 4.91481 18.5326 4.82163 18.1735 4.84014L16.9282 4.90414C16.685 4.91638 16.4418 4.87747 16.2145 4.78994C15.9872 4.7024 15.7808 4.56818 15.6086 4.39594C15.4363 4.2237 15.3021 4.01726 15.2146 3.78994C15.1271 3.56262 15.0882 3.31948 15.1004 3.07619L15.1644 1.83089C15.1829 1.4717 15.0897 1.11559 14.8977 0.811487C14.7056 0.507385 14.4241 0.270217 14.0919 0.132568C13.7596 -0.00508182 13.3929 -0.0364573 13.042 0.0427519C12.6912 0.121961 12.3735 0.307869 12.1326 0.574931L11.2914 1.50024C11.1288 1.68202 10.9297 1.82745 10.7071 1.92702C10.4845 2.02659 10.2433 2.07805 9.99947 2.07805C9.7556 2.07805 9.51448 2.02659 9.29186 1.92702ZM14.3745 10C14.3745 12.4162 12.4159 14.375 9.99977 14.375C7.58365 14.375 5.625 12.4162 5.625 10C5.625 7.58375 7.58365 5.625 9.99977 5.625C12.4159 5.625 14.3745 7.58375 14.3745 10Z",fill:"currentColor"})),"SvgSettings"),SEe=oe(({title:e,titleId:t,...r})=>ue.createElement("svg",{height:"1em",viewBox:"0 0 14 14",fill:"none",xmlns:"http://www.w3.org/2000/svg","aria-labelledby":t,...r},e?ue.createElement("title",{id:t},e):null,ue.createElement("path",{d:"M6.5782 1.07092C6.71096 0.643026 7.28904 0.643027 7.4218 1.07092L8.59318 4.84622C8.65255 5.03758 8.82284 5.16714 9.01498 5.16714L12.8056 5.16714C13.2353 5.16714 13.4139 5.74287 13.0663 6.00732L9.99962 8.34058C9.84418 8.45885 9.77913 8.66848 9.83851 8.85984L11.0099 12.6351C11.1426 13.063 10.675 13.4189 10.3274 13.1544L7.26069 10.8211C7.10524 10.7029 6.89476 10.7029 6.73931 10.8211L3.6726 13.1544C3.32502 13.4189 2.85735 13.063 2.99012 12.6351L4.16149 8.85984C4.22087 8.66848 4.15582 8.45885 4.00038 8.34058L0.933671 6.00732C0.586087 5.74287 0.764722 5.16714 1.19436 5.16714L4.98502 5.16714C5.17716 5.16714 5.34745 5.03758 5.40682 4.84622L6.5782 1.07092Z",fill:"currentColor",stroke:"currentColor"})),"SvgStarFilled"),kEe=oe(({title:e,titleId:t,...r})=>ue.createElement("svg",{height:"1em",viewBox:"0 0 14 14",fill:"none",xmlns:"http://www.w3.org/2000/svg","aria-labelledby":t,...r},e?ue.createElement("title",{id:t},e):null,ue.createElement("path",{d:"M6.5782 1.07092C6.71096 0.643026 7.28904 0.643027 7.4218 1.07092L8.59318 4.84622C8.65255 5.03758 8.82284 5.16714 9.01498 5.16714L12.8056 5.16714C13.2353 5.16714 13.4139 5.74287 13.0663 6.00732L9.99962 8.34058C9.84418 8.45885 9.77913 8.66848 9.83851 8.85984L11.0099 12.6351C11.1426 13.063 10.675 13.4189 10.3274 13.1544L7.26069 10.8211C7.10524 10.7029 6.89476 10.7029 6.73931 10.8211L3.6726 13.1544C3.32502 13.4189 2.85735 13.063 2.99012 12.6351L4.16149 8.85984C4.22087 8.66848 4.15582 8.45885 4.00038 8.34058L0.933671 6.00732C0.586087 5.74287 0.764722 5.16714 1.19436 5.16714L4.98502 5.16714C5.17716 5.16714 5.34745 5.03758 5.40682 4.84622L6.5782 1.07092Z",stroke:"currentColor",strokeWidth:1.5})),"SvgStar"),OEe=oe(({title:e,titleId:t,...r})=>ue.createElement("svg",{height:"1em",viewBox:"0 0 16 16",fill:"none",xmlns:"http://www.w3.org/2000/svg","aria-labelledby":t,...r},e?ue.createElement("title",{id:t},e):null,ue.createElement("rect",{width:16,height:16,rx:2,fill:"currentColor"})),"SvgStop"),NEe=oe(({title:e,titleId:t,...r})=>ue.createElement("svg",{width:"1em",height:"5em",xmlns:"http://www.w3.org/2000/svg",fillRule:"evenodd","aria-hidden":"true",viewBox:"0 0 23 23",style:{height:"1.5em"},clipRule:"evenodd","aria-labelledby":t,...r},e===void 0?ue.createElement("title",{id:t},"trash icon"):e?ue.createElement("title",{id:t},e):null,ue.createElement("path",{d:"M19 24h-14c-1.104 0-2-.896-2-2v-17h-1v-2h6v-1.5c0-.827.673-1.5 1.5-1.5h5c.825 0 1.5.671 1.5 1.5v1.5h6v2h-1v17c0 1.104-.896 2-2 2zm0-19h-14v16.5c0 .276.224.5.5.5h13c.276 0 .5-.224.5-.5v-16.5zm-7 7.586l3.293-3.293 1.414 1.414-3.293 3.293 3.293 3.293-1.414 1.414-3.293-3.293-3.293 3.293-1.414-1.414 3.293-3.293-3.293-3.293 1.414-1.414 3.293 3.293zm2-10.586h-4v1h4v-1z",fill:"currentColor",strokeWidth:.25,stroke:"currentColor"})),"SvgTrash"),DEe=oe(({title:e,titleId:t,...r})=>ue.createElement("svg",{height:"1em",viewBox:"0 0 13 13",fill:"none",xmlns:"http://www.w3.org/2000/svg","aria-labelledby":t,...r},e?ue.createElement("title",{id:t},e):null,ue.createElement("rect",{x:.6,y:.6,width:11.8,height:11.8,rx:5.9,stroke:"currentColor",strokeWidth:1.2}),ue.createElement("rect",{x:5.5,y:5.5,width:2,height:2,rx:1,fill:"currentColor"})),"SvgType"),LEe=zt(eEe),m_=zt(tEe),PEe=zt(rEe),h_=zt(nEe),cI=zt(iEe),v_=zt(oEe),REe=zt(aEe),MEe=zt(sEe),IEe=zt(lEe),FEe=zt(uEe),qEe=zt(cEe,"filled docs icon"),jEe=zt(fEe),VEe=zt(dEe),UEe=zt(pEe),BEe=zt(mEe),GEe=zt(hEe),g_=zt(vEe),zEe=zt(gEe),y_=zt(yEe),HEe=zt(bEe),QEe=zt(AEe),b_=zt(xEe),A_=zt(wEe),x_=zt(EEe),WEe=zt(TEe),w_=zt(CEe),YEe=zt(SEe,"filled star icon"),KEe=zt(kEe),XEe=zt(OEe),ZEe=zt(NEe,"trash icon"),IE=zt(DEe);function zt(e,t=e.name.replace("Svg","").replaceAll(/([A-Z])/g," $1").trimStart().toLowerCase()+" icon"){return e.defaultProps={title:t},e}oe(zt,"generateIcon");var pn=(0,te.forwardRef)((e,t)=>(0,Y.jsx)("button",{...e,ref:t,className:gn("graphiql-un-styled",e.className)}));pn.displayName="UnStyledButton";var aa=(0,te.forwardRef)((e,t)=>(0,Y.jsx)("button",{...e,ref:t,className:gn("graphiql-button",{success:"graphiql-button-success",error:"graphiql-button-error"}[e.state],e.className)}));aa.displayName="Button";var XE=(0,te.forwardRef)((e,t)=>(0,Y.jsx)("div",{...e,ref:t,className:gn("graphiql-button-group",e.className)}));XE.displayName="ButtonGroup";var Zy=oe((e,t)=>Object.entries(t).reduce((r,[n,i])=>(r[n]=i,r),e),"createComponentGroup"),E_=(0,te.forwardRef)((e,t)=>(0,Y.jsx)(eG,{asChild:!0,children:(0,Y.jsxs)(pn,{...e,ref:t,type:"button",className:gn("graphiql-dialog-close",e.className),children:[(0,Y.jsx)(Cx,{children:"Close dialog"}),(0,Y.jsx)(cI,{})]})}));E_.displayName="Dialog.Close";function T_({children:e,...t}){return(0,Y.jsx)(YB,{...t,children:(0,Y.jsxs)(XB,{children:[(0,Y.jsx)(ZB,{className:"graphiql-dialog-overlay"}),(0,Y.jsx)(JB,{className:"graphiql-dialog",children:e})]})})}oe(T_,"DialogRoot");var $f=Zy(T_,{Close:E_,Title:_B,Trigger:KB,Description:$B}),C_=(0,te.forwardRef)((e,t)=>(0,Y.jsx)($G,{asChild:!0,children:(0,Y.jsx)("button",{...e,ref:t,className:gn("graphiql-un-styled",e.className)})}));C_.displayName="DropdownMenuButton";function S_({children:e,align:t="start",sideOffset:r=5,className:n,...i}){return(0,Y.jsx)(ez,{children:(0,Y.jsx)(tz,{align:t,sideOffset:r,className:gn("graphiql-dropdown-content",n),...i,children:e})})}oe(S_,"Content");var JEe=oe(({className:e,children:t,...r})=>(0,Y.jsx)(rz,{className:gn("graphiql-dropdown-item",e),...r,children:t}),"Item"),Zu=Zy(_G,{Button:C_,Item:JEe,Content:S_}),BE=new f_.default({breaks:!0,linkify:!0}),js=(0,te.forwardRef)(({children:e,onlyShowFirstChild:t,type:r,...n},i)=>(0,Y.jsx)("div",{...n,ref:i,className:gn(`graphiql-markdown-${r}`,t&&"graphiql-markdown-preview",n.className),dangerouslySetInnerHTML:{__html:BE.render(e)}}));js.displayName="MarkdownContent";var ZE=(0,te.forwardRef)((e,t)=>(0,Y.jsx)("div",{...e,ref:t,className:gn("graphiql-spinner",e.className)}));ZE.displayName="Spinner";function k_({children:e,align:t="start",side:r="bottom",sideOffset:n=5,label:i}){return(0,Y.jsxs)(ZX,{children:[(0,Y.jsx)(JX,{asChild:!0,children:e}),(0,Y.jsx)(_X,{children:(0,Y.jsx)($X,{className:"graphiql-tooltip",align:t,side:r,sideOffset:n,children:i})})]})}oe(k_,"TooltipRoot");var ti=Zy(k_,{Provider:XX}),O_=(0,te.forwardRef)(({isActive:e,value:t,children:r,className:n,...i},o)=>(0,Y.jsx)(vE.Item,{...i,ref:o,value:t,"aria-selected":e?"true":void 0,role:"tab",className:gn("graphiql-tab",e&&"graphiql-tab-active",n),children:r}));O_.displayName="Tab";var N_=(0,te.forwardRef)((e,t)=>(0,Y.jsx)(pn,{...e,ref:t,type:"button",className:gn("graphiql-tab-button",e.className),children:e.children}));N_.displayName="Tab.Button";var D_=(0,te.forwardRef)((e,t)=>(0,Y.jsx)(ti,{label:"Close Tab",children:(0,Y.jsx)(pn,{"aria-label":"Close Tab",...e,ref:t,type:"button",className:gn("graphiql-tab-close",e.className),children:(0,Y.jsx)(cI,{})})}));D_.displayName="Tab.Close";var JE=Zy(O_,{Button:N_,Close:D_}),fI=(0,te.forwardRef)(({values:e,onReorder:t,children:r,className:n,...i},o)=>(0,Y.jsx)(vE.Group,{...i,ref:o,values:e,onReorder:t,axis:"x",role:"tablist",className:gn("graphiql-tabs",n),children:r}));fI.displayName="Tabs";var L_=_u("HistoryContext");function P_(e){var t;let r=Pl(),n=(0,te.useRef)(new OA(r||new dp(null),e.maxHistoryLength||_Ee)),[i,o]=(0,te.useState)(((t=n.current)==null?void 0:t.queries)||[]),s=(0,te.useCallback)(g=>{var y;(y=n.current)==null||y.updateHistory(g),o(n.current.queries)},[]),l=(0,te.useCallback)((g,y)=>{n.current.editLabel(g,y),o(n.current.queries)},[]),c=(0,te.useCallback)(g=>{n.current.toggleFavorite(g),o(n.current.queries)},[]),f=(0,te.useCallback)(g=>g,[]),m=(0,te.useCallback)((g,y=!1)=>{n.current.deleteHistory(g,y),o(n.current.queries)},[]),v=(0,te.useMemo)(()=>({addToHistory:s,editLabel:l,items:i,toggleFavorite:c,setActive:f,deleteFromHistory:m}),[s,l,i,c,f,m]);return(0,Y.jsx)(L_.Provider,{value:v,children:e.children})}oe(P_,"HistoryContextProvider");var _E=$u(L_),_Ee=20;function R_(){let{items:e,deleteFromHistory:t}=_E({nonNull:!0}),r=e.slice().map((l,c)=>({...l,index:c})).reverse(),n=r.filter(l=>l.favorite);n.length&&(r=r.filter(l=>!l.favorite));let[i,o]=(0,te.useState)(null);(0,te.useEffect)(()=>{i&&setTimeout(()=>{o(null)},2e3)},[i]);let s=(0,te.useCallback)(()=>{try{for(let l of r)t(l,!0);o("success")}catch{o("error")}},[t,r]);return(0,Y.jsxs)("section",{"aria-label":"History",className:"graphiql-history",children:[(0,Y.jsxs)("div",{className:"graphiql-history-header",children:["History",(i||r.length>0)&&(0,Y.jsx)(aa,{type:"button",state:i||void 0,disabled:!r.length,onClick:s,children:{success:"Cleared",error:"Failed to Clear"}[i]||"Clear"})]}),!!n.length&&(0,Y.jsx)("ul",{className:"graphiql-history-items",children:n.map(l=>(0,Y.jsx)(By,{item:l},l.index))}),!!n.length&&!!r.length&&(0,Y.jsx)("div",{className:"graphiql-history-item-spacer"}),!!r.length&&(0,Y.jsx)("ul",{className:"graphiql-history-items",children:r.map(l=>(0,Y.jsx)(By,{item:l},l.index))})]})}oe(R_,"History");function By(e){let{editLabel:t,toggleFavorite:r,deleteFromHistory:n,setActive:i}=_E({nonNull:!0,caller:By}),{headerEditor:o,queryEditor:s,variableEditor:l}=$r({nonNull:!0,caller:By}),c=(0,te.useRef)(null),f=(0,te.useRef)(null),[m,v]=(0,te.useState)(!1);(0,te.useEffect)(()=>{var C;m&&((C=c.current)==null||C.focus())},[m]);let g=e.item.label||e.item.operationName||M_(e.item.query),y=(0,te.useCallback)(()=>{var C;v(!1);let{index:x,...k}=e.item;t({...k,label:(C=c.current)==null?void 0:C.value},x)},[t,e.item]),w=(0,te.useCallback)(()=>{v(!1)},[]),T=(0,te.useCallback)(C=>{C.stopPropagation(),v(!0)},[]),S=(0,te.useCallback)(()=>{let{query:C,variables:x,headers:k}=e.item;s?.setValue(C??""),l?.setValue(x??""),o?.setValue(k??""),i(e.item)},[o,e.item,s,i,l]),A=(0,te.useCallback)(C=>{C.stopPropagation(),n(e.item)},[e.item,n]),b=(0,te.useCallback)(C=>{C.stopPropagation(),r(e.item)},[e.item,r]);return(0,Y.jsx)("li",{className:gn("graphiql-history-item",m&&"editable"),children:m?(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)("input",{type:"text",defaultValue:e.item.label,ref:c,onKeyDown:C=>{C.key==="Esc"?v(!1):C.key==="Enter"&&(v(!1),t({...e.item,label:C.currentTarget.value}))},placeholder:"Type a label"}),(0,Y.jsx)(pn,{type:"button",ref:f,onClick:y,children:"Save"}),(0,Y.jsx)(pn,{type:"button",ref:f,onClick:w,children:(0,Y.jsx)(cI,{})})]}):(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(ti,{label:"Set active",children:(0,Y.jsx)(pn,{type:"button",className:"graphiql-history-item-label",onClick:S,"aria-label":"Set active",children:g})}),(0,Y.jsx)(ti,{label:"Edit label",children:(0,Y.jsx)(pn,{type:"button",className:"graphiql-history-item-action",onClick:T,"aria-label":"Edit label",children:(0,Y.jsx)(HEe,{"aria-hidden":"true"})})}),(0,Y.jsx)(ti,{label:e.item.favorite?"Remove favorite":"Add favorite",children:(0,Y.jsx)(pn,{type:"button",className:"graphiql-history-item-action",onClick:b,"aria-label":e.item.favorite?"Remove favorite":"Add favorite",children:e.item.favorite?(0,Y.jsx)(YEe,{"aria-hidden":"true"}):(0,Y.jsx)(KEe,{"aria-hidden":"true"})})}),(0,Y.jsx)(ti,{label:"Delete from history",children:(0,Y.jsx)(pn,{type:"button",className:"graphiql-history-item-action",onClick:A,"aria-label":"Delete from history",children:(0,Y.jsx)(ZEe,{"aria-hidden":"true"})})})]})})}oe(By,"HistoryItem");function M_(e){return e?.split(` -`).map(t=>t.replace(/#(.*)/,"")).join(" ").replaceAll("{"," { ").replaceAll("}"," } ").replaceAll(/[\s]{2,}/g," ")}oe(M_,"formatQuery");var I_=_u("ExecutionContext");function GE({fetcher:e,getDefaultFieldNames:t,children:r,operationName:n}){if(!e)throw new TypeError("The `ExecutionContextProvider` component requires a `fetcher` function to be passed as prop.");let{externalFragments:i,headerEditor:o,queryEditor:s,responseEditor:l,variableEditor:c,updateActiveTabValues:f}=$r({nonNull:!0,caller:GE}),m=_E(),v=WE({getDefaultFieldNames:t,caller:GE}),[g,y]=(0,te.useState)(!1),[w,T]=(0,te.useState)(null),S=(0,te.useRef)(0),A=(0,te.useCallback)(()=>{w?.unsubscribe(),y(!1),T(null)},[w]),b=(0,te.useCallback)(async()=>{if(!s||!l)return;if(w){A();return}let k=oe(U=>{l.setValue(U),f({response:U})},"setResponse");S.current+=1;let P=S.current,D=v()||s.getValue(),N=c?.getValue(),I;try{I=oI({json:N,errorMessageParse:"Variables are invalid JSON",errorMessageType:"Variables are not a JSON object."})}catch(U){k(U instanceof Error?U.message:`${U}`);return}let V=o?.getValue(),G;try{G=oI({json:V,errorMessageParse:"Headers are invalid JSON",errorMessageType:"Headers are not a JSON object."})}catch(U){k(U instanceof Error?U.message:`${U}`);return}if(i){let U=s.documentAST?UA(s.documentAST,i):[];U.length>0&&(D+=` +`));let v=f.props,g=typeof v?.className=='function'?(...w)=>bM(v?.className(...w),l.className):bM(v?.className,l.className),y=g?{className:g}:{};return(0,na.cloneElement)(f,Object.assign({},yZ(f.props,TE(AM(l,['ref']))),m,c,q1e(f.ref,c.ref),y)); + }return(0,na.createElement)(i,Object.assign({},AM(l,['ref']),i!==na.Fragment&&c,i!==na.Fragment&&m),f); +}function q1e(...e){ + return{ref:e.every(t=>t==null)?void 0:t=>{ + for(let r of e)r!=null&&(typeof r=='function'?r(t):r.current=t); + }}; +}function yZ(...e){ + var t;if(e.length===0)return{};if(e.length===1)return e[0];let r={},n={};for(let i of e)for(let o in i)o.startsWith('on')&&typeof i[o]=='function'?((t=n[o])!=null||(n[o]=[]),n[o].push(i[o])):r[o]=i[o];if(r.disabled||r['aria-disabled'])return Object.assign(r,Object.fromEntries(Object.keys(n).map(i=>[i,void 0])));for(let i in n)Object.assign(r,{[i](o,...s){ + let l=n[i];for(let c of l){ + if((o instanceof Event||o?.nativeEvent instanceof Event)&&o.defaultPrevented)return;c(o,...s); + } + }});return r; +}function Ol(e){ + var t;return Object.assign((0,na.forwardRef)(e),{displayName:(t=e.displayName)!=null?t:e.name}); +}function TE(e){ + let t=Object.assign({},e);for(let r in t)t[r]===void 0&&delete t[r];return t; +}function AM(e,t=[]){ + let r=Object.assign({},e);for(let n of t)n in r&&delete r[n];return r; +}function bZ(e){ + let t=e.parentElement,r=null;for(;t&&!(t instanceof HTMLFieldSetElement);)t instanceof HTMLLegendElement&&(r=t),t=t.parentElement;let n=t?.getAttribute('disabled')==='';return n&&j1e(r)?!1:n; +}function j1e(e){ + if(!e)return!1;let t=e.previousElementSibling;for(;t!==null;){ + if(t instanceof HTMLLegendElement)return!1;t=t.previousElementSibling; + }return!0; +}function xM(e={},t=null,r=[]){ + for(let[n,i]of Object.entries(e))xZ(r,AZ(t,n),i);return r; +}function AZ(e,t){ + return e?e+'['+t+']':t; +}function xZ(e,t,r){ + if(Array.isArray(r))for(let[n,i]of r.entries())xZ(e,AZ(t,n.toString()),i);else r instanceof Date?e.push([t,r.toISOString()]):typeof r=='boolean'?e.push([t,r?'1':'0']):typeof r=='string'?e.push([t,r]):typeof r=='number'?e.push([t,`${r}`]):r==null?e.push([t,'']):xM(r,t,e); +}var V1e='div',wM=(e=>(e[e.None=1]='None',e[e.Focusable=2]='Focusable',e[e.Hidden=4]='Hidden',e))(wM||{});function U1e(e,t){ + let{features:r=1,...n}=e,i={ref:t,'aria-hidden':(r&2)===2?!0:void 0,style:{position:'fixed',top:1,left:1,width:1,height:0,padding:0,margin:-1,overflow:'hidden',clip:'rect(0, 0, 0, 0)',whiteSpace:'nowrap',borderWidth:'0',...(r&4)===4&&(r&2)!==2&&{display:'none'}}};return kl({ourProps:i,theirProps:n,slot:{},defaultTag:V1e,name:'Hidden'}); +}var wZ=Ol(U1e);var Qm=fe(Ee(),1),EM=(0,Qm.createContext)(null);EM.displayName='OpenClosedContext';var Wm=(e=>(e[e.Open=1]='Open',e[e.Closed=2]='Closed',e[e.Closing=4]='Closing',e[e.Opening=8]='Opening',e))(Wm||{});function EZ(){ + return(0,Qm.useContext)(EM); +}function TZ({value:e,children:t}){ + return Qm.default.createElement(EM.Provider,{value:e},t); +}var $i=(e=>(e.Space=' ',e.Enter='Enter',e.Escape='Escape',e.Backspace='Backspace',e.Delete='Delete',e.ArrowLeft='ArrowLeft',e.ArrowUp='ArrowUp',e.ArrowRight='ArrowRight',e.ArrowDown='ArrowDown',e.Home='Home',e.End='End',e.PageUp='PageUp',e.PageDown='PageDown',e.Tab='Tab',e))($i||{});var Ym=fe(Ee(),1);function CZ(e,t,r){ + let[n,i]=(0,Ym.useState)(r),o=e!==void 0,s=(0,Ym.useRef)(o),l=(0,Ym.useRef)(!1),c=(0,Ym.useRef)(!1);return o&&!s.current&&!l.current?(l.current=!0,s.current=o,console.error('A component is changing from uncontrolled to controlled. This may be caused by the value changing from undefined to a defined value, which should not happen.')):!o&&s.current&&!c.current&&(c.current=!0,s.current=o,console.error('A component is changing from controlled to uncontrolled. This may be caused by the value changing from a defined value to undefined, which should not happen.')),[o?e:n,Qt(f=>(o||i(f),t?.(f)))]; +}var SE=fe(Ee(),1);function TM(e,t){ + let r=(0,SE.useRef)([]),n=Qt(e);(0,SE.useEffect)(()=>{ + let i=[...r.current];for(let[o,s]of t.entries())if(r.current[o]!==s){ + let l=n(t,i);return r.current=t,l; + } + },[n,...t]); +}var kZ=fe(Ee(),1);function SZ(e){ + return[e.screenX,e.screenY]; +}function OZ(){ + let e=(0,kZ.useRef)([-1,-1]);return{wasMoved(t){ + let r=SZ(t);return e.current[0]===r[0]&&e.current[1]===r[1]?!1:(e.current=r,!0); + },update(t){ + e.current=SZ(t); + }}; +}function B1e(){ + return/iPhone/gi.test(window.navigator.platform)||/Mac/gi.test(window.navigator.platform)&&window.navigator.maxTouchPoints>0; +}function G1e(){ + return/Android/gi.test(window.navigator.userAgent); +}function NZ(){ + return B1e()||G1e(); +}var DZ=fe(Ee(),1);function LZ(...e){ + return(0,DZ.useMemo)(()=>zm(...e),[...e]); +}var z1e=(e=>(e[e.Open=0]='Open',e[e.Closed=1]='Closed',e))(z1e||{}),H1e=(e=>(e[e.Single=0]='Single',e[e.Multi=1]='Multi',e))(H1e||{}),Q1e=(e=>(e[e.Pointer=0]='Pointer',e[e.Other=1]='Other',e))(Q1e||{}),W1e=(e=>(e[e.OpenCombobox=0]='OpenCombobox',e[e.CloseCombobox=1]='CloseCombobox',e[e.GoToOption=2]='GoToOption',e[e.RegisterOption=3]='RegisterOption',e[e.UnregisterOption=4]='UnregisterOption',e[e.RegisterLabel=5]='RegisterLabel',e))(W1e||{});function CM(e,t=r=>r){ + let r=e.activeOptionIndex!==null?e.options[e.activeOptionIndex]:null,n=lZ(t(e.options.slice()),o=>o.dataRef.current.domRef.current),i=r?n.indexOf(r):null;return i===-1&&(i=null),{options:n,activeOptionIndex:i}; +}var Y1e={1(e){ + var t;return(t=e.dataRef.current)!=null&&t.disabled||e.comboboxState===1?e:{...e,activeOptionIndex:null,comboboxState:1}; + },0(e){ + var t;if((t=e.dataRef.current)!=null&&t.disabled||e.comboboxState===0)return e;let r=e.activeOptionIndex;if(e.dataRef.current){ + let{isSelected:n}=e.dataRef.current,i=e.options.findIndex(o=>n(o.dataRef.current.value));i!==-1&&(r=i); + }return{...e,comboboxState:0,activeOptionIndex:r}; + },2(e,t){ + var r,n,i,o;if((r=e.dataRef.current)!=null&&r.disabled||(n=e.dataRef.current)!=null&&n.optionsRef.current&&!((i=e.dataRef.current)!=null&&i.optionsPropsRef.current.static)&&e.comboboxState===1)return e;let s=CM(e);if(s.activeOptionIndex===null){ + let c=s.options.findIndex(f=>!f.dataRef.current.disabled);c!==-1&&(s.activeOptionIndex=c); + }let l=gZ(t,{resolveItems:()=>s.options,resolveActiveIndex:()=>s.activeOptionIndex,resolveId:c=>c.id,resolveDisabled:c=>c.dataRef.current.disabled});return{...e,...s,activeOptionIndex:l,activationTrigger:(o=t.trigger)!=null?o:1}; + },3:(e,t)=>{ + var r,n;let i={id:t.id,dataRef:t.dataRef},o=CM(e,l=>[...l,i]);e.activeOptionIndex===null&&(r=e.dataRef.current)!=null&&r.isSelected(t.dataRef.current.value)&&(o.activeOptionIndex=o.options.indexOf(i));let s={...e,...o,activationTrigger:1};return(n=e.dataRef.current)!=null&&n.__demoMode&&e.dataRef.current.value===void 0&&(s.activeOptionIndex=0),s; + },4:(e,t)=>{ + let r=CM(e,n=>{ + let i=n.findIndex(o=>o.id===t.id);return i!==-1&&n.splice(i,1),n; + });return{...e,...r,activationTrigger:1}; + },5:(e,t)=>({...e,labelId:t.id})},SM=(0,yt.createContext)(null);SM.displayName='ComboboxActionsContext';function Cy(e){ + let t=(0,yt.useContext)(SM);if(t===null){ + let r=new Error(`<${e} /> is missing a parent component.`);throw Error.captureStackTrace&&Error.captureStackTrace(r,Cy),r; + }return t; +}var kM=(0,yt.createContext)(null);kM.displayName='ComboboxDataContext';function Km(e){ + let t=(0,yt.useContext)(kM);if(t===null){ + let r=new Error(`<${e} /> is missing a parent component.`);throw Error.captureStackTrace&&Error.captureStackTrace(r,Km),r; + }return t; +}function K1e(e,t){ + return ra(t.type,Y1e,e,t); +}var X1e=yt.Fragment;function Z1e(e,t){ + let{value:r,defaultValue:n,onChange:i,form:o,name:s,by:l=(ie,ye)=>ie===ye,disabled:c=!1,__demoMode:f=!1,nullable:m=!1,multiple:v=!1,...g}=e,[y=v?[]:void 0,w]=CZ(r,i,n),[T,S]=(0,yt.useReducer)(K1e,{dataRef:(0,yt.createRef)(),comboboxState:f?0:1,options:[],activeOptionIndex:null,activationTrigger:1,labelId:null}),A=(0,yt.useRef)(!1),b=(0,yt.useRef)({static:!1,hold:!1}),C=(0,yt.useRef)(null),x=(0,yt.useRef)(null),k=(0,yt.useRef)(null),P=(0,yt.useRef)(null),D=Qt(typeof l=='string'?(ie,ye)=>{ + let me=l;return ie?.[me]===ye?.[me]; + }:l),N=(0,yt.useCallback)(ie=>ra(I.mode,{1:()=>y.some(ye=>D(ye,ie)),0:()=>D(y,ie)}),[y]),I=(0,yt.useMemo)(()=>({...T,optionsPropsRef:b,labelRef:C,inputRef:x,buttonRef:k,optionsRef:P,value:y,defaultValue:n,disabled:c,mode:v?1:0,get activeOptionIndex(){ + if(A.current&&T.activeOptionIndex===null&&T.options.length>0){ + let ie=T.options.findIndex(ye=>!ye.dataRef.current.disabled);if(ie!==-1)return ie; + }return T.activeOptionIndex; + },compare:D,isSelected:N,nullable:m,__demoMode:f}),[y,n,c,v,m,f,T]),V=(0,yt.useRef)(I.activeOptionIndex!==null?I.options[I.activeOptionIndex]:null);(0,yt.useEffect)(()=>{ + let ie=I.activeOptionIndex!==null?I.options[I.activeOptionIndex]:null;V.current!==ie&&(V.current=ie); + }),Tn(()=>{ + T.dataRef.current=I; + },[I]),dZ([I.buttonRef,I.inputRef,I.optionsRef],()=>se.closeCombobox(),I.comboboxState===0);let G=(0,yt.useMemo)(()=>({open:I.comboboxState===0,disabled:c,activeIndex:I.activeOptionIndex,activeOption:I.activeOptionIndex===null?null:I.options[I.activeOptionIndex].dataRef.current.value,value:y}),[I,c,y]),B=Qt(ie=>{ + let ye=I.options.find(me=>me.id===ie);ye&&re(ye.dataRef.current.value); + }),U=Qt(()=>{ + if(I.activeOptionIndex!==null){ + let{dataRef:ie,id:ye}=I.options[I.activeOptionIndex];re(ie.current.value),se.goToOption(qn.Specific,ye); + } + }),z=Qt(()=>{ + S({type:0}),A.current=!0; + }),j=Qt(()=>{ + S({type:1}),A.current=!1; + }),J=Qt((ie,ye,me)=>(A.current=!1,ie===qn.Specific?S({type:2,focus:qn.Specific,id:ye,trigger:me}):S({type:2,focus:ie,trigger:me}))),K=Qt((ie,ye)=>(S({type:3,id:ie,dataRef:ye}),()=>{ + var me;((me=V.current)==null?void 0:me.id)===ie&&(A.current=!0),S({type:4,id:ie}); + })),ee=Qt(ie=>(S({type:5,id:ie}),()=>S({type:5,id:null}))),re=Qt(ie=>ra(I.mode,{0(){ + return w?.(ie); + },1(){ + let ye=I.value.slice(),me=ye.findIndex(Oe=>D(Oe,ie));return me===-1?ye.push(ie):ye.splice(me,1),w?.(ye); + }})),se=(0,yt.useMemo)(()=>({onChange:re,registerOption:K,registerLabel:ee,goToOption:J,closeCombobox:j,openCombobox:z,selectActiveOption:U,selectOption:B}),[]),xe=t===null?{}:{ref:t},Re=(0,yt.useRef)(null),Se=xE();return(0,yt.useEffect)(()=>{ + Re.current&&n!==void 0&&Se.addEventListener(Re.current,'reset',()=>{ + w?.(n); + }); + },[Re,w]),yt.default.createElement(SM.Provider,{value:se},yt.default.createElement(kM.Provider,{value:I},yt.default.createElement(TZ,{value:ra(I.comboboxState,{0:Wm.Open,1:Wm.Closed})},s!=null&&y!=null&&xM({[s]:y}).map(([ie,ye],me)=>yt.default.createElement(wZ,{features:wM.Hidden,ref:me===0?Oe=>{ + var Ge;Re.current=(Ge=Oe?.closest('form'))!=null?Ge:null; + }:void 0,...TE({key:ie,as:'input',type:'hidden',hidden:!0,readOnly:!0,form:o,name:ie,value:ye})})),kl({ourProps:xe,theirProps:g,slot:G,defaultTag:X1e,name:'Combobox'})))); +}var J1e='input';function _1e(e,t){ + var r,n,i,o;let s=Gm(),{id:l=`headlessui-combobox-input-${s}`,onChange:c,displayValue:f,type:m='text',...v}=e,g=Km('Combobox.Input'),y=Cy('Combobox.Input'),w=Hm(g.inputRef,t),T=LZ(g.inputRef),S=(0,yt.useRef)(!1),A=xE(),b=Qt(()=>{ + y.onChange(null),g.optionsRef.current&&(g.optionsRef.current.scrollTop=0),y.goToOption(qn.Nothing); + }),C=function(){ + var U;return typeof f=='function'&&g.value!==void 0?(U=f(g.value))!=null?U:'':typeof g.value=='string'?g.value:''; + }();TM(([U,z],[j,J])=>{ + if(S.current)return;let K=g.inputRef.current;K&&((J===0&&z===1||U!==j)&&(K.value=U),requestAnimationFrame(()=>{ + if(S.current||!K||T?.activeElement!==K)return;let{selectionStart:ee,selectionEnd:re}=K;Math.abs((re??0)-(ee??0))===0&&ee===0&&K.setSelectionRange(K.value.length,K.value.length); + })); + },[C,g.comboboxState,T]),TM(([U],[z])=>{ + if(U===0&&z===1){ + if(S.current)return;let j=g.inputRef.current;if(!j)return;let J=j.value,{selectionStart:K,selectionEnd:ee,selectionDirection:re}=j;j.value='',j.value=J,re!==null?j.setSelectionRange(K,ee,re):j.setSelectionRange(K,ee); + } + },[g.comboboxState]);let x=(0,yt.useRef)(!1),k=Qt(()=>{ + x.current=!0; + }),P=Qt(()=>{ + A.nextFrame(()=>{ + x.current=!1; + }); + }),D=Qt(U=>{ + switch(S.current=!0,U.key){ + case $i.Enter:if(S.current=!1,g.comboboxState!==0||x.current)return;if(U.preventDefault(),U.stopPropagation(),g.activeOptionIndex===null){ + y.closeCombobox();return; + }y.selectActiveOption(),g.mode===0&&y.closeCombobox();break;case $i.ArrowDown:return S.current=!1,U.preventDefault(),U.stopPropagation(),ra(g.comboboxState,{0:()=>{ + y.goToOption(qn.Next); + },1:()=>{ + y.openCombobox(); + }});case $i.ArrowUp:return S.current=!1,U.preventDefault(),U.stopPropagation(),ra(g.comboboxState,{0:()=>{ + y.goToOption(qn.Previous); + },1:()=>{ + y.openCombobox(),A.nextFrame(()=>{ + g.value||y.goToOption(qn.Last); + }); + }});case $i.Home:if(U.shiftKey)break;return S.current=!1,U.preventDefault(),U.stopPropagation(),y.goToOption(qn.First);case $i.PageUp:return S.current=!1,U.preventDefault(),U.stopPropagation(),y.goToOption(qn.First);case $i.End:if(U.shiftKey)break;return S.current=!1,U.preventDefault(),U.stopPropagation(),y.goToOption(qn.Last);case $i.PageDown:return S.current=!1,U.preventDefault(),U.stopPropagation(),y.goToOption(qn.Last);case $i.Escape:return S.current=!1,g.comboboxState!==0?void 0:(U.preventDefault(),g.optionsRef.current&&!g.optionsPropsRef.current.static&&U.stopPropagation(),g.nullable&&g.mode===0&&g.value===null&&b(),y.closeCombobox());case $i.Tab:if(S.current=!1,g.comboboxState!==0)return;g.mode===0&&y.selectActiveOption(),y.closeCombobox();break; + } + }),N=Qt(U=>{ + c?.(U),g.nullable&&g.mode===0&&U.target.value===''&&b(),y.openCombobox(); + }),I=Qt(()=>{ + S.current=!1; + }),V=bE(()=>{ + if(g.labelId)return[g.labelId].join(' '); + },[g.labelId]),G=(0,yt.useMemo)(()=>({open:g.comboboxState===0,disabled:g.disabled}),[g]),B={ref:w,id:l,role:'combobox',type:m,'aria-controls':(r=g.optionsRef.current)==null?void 0:r.id,'aria-expanded':g.comboboxState===0,'aria-activedescendant':g.activeOptionIndex===null||(n=g.options[g.activeOptionIndex])==null?void 0:n.id,'aria-labelledby':V,'aria-autocomplete':'list',defaultValue:(o=(i=e.defaultValue)!=null?i:g.defaultValue!==void 0?f?.(g.defaultValue):null)!=null?o:g.defaultValue,disabled:g.disabled,onCompositionStart:k,onCompositionEnd:P,onKeyDown:D,onChange:N,onBlur:I};return kl({ourProps:B,theirProps:v,slot:G,defaultTag:J1e,name:'Combobox.Input'}); +}var $1e='button';function exe(e,t){ + var r;let n=Km('Combobox.Button'),i=Cy('Combobox.Button'),o=Hm(n.buttonRef,t),s=Gm(),{id:l=`headlessui-combobox-button-${s}`,...c}=e,f=xE(),m=Qt(T=>{ + switch(T.key){ + case $i.ArrowDown:return T.preventDefault(),T.stopPropagation(),n.comboboxState===1&&i.openCombobox(),f.nextFrame(()=>{ + var S;return(S=n.inputRef.current)==null?void 0:S.focus({preventScroll:!0}); + });case $i.ArrowUp:return T.preventDefault(),T.stopPropagation(),n.comboboxState===1&&(i.openCombobox(),f.nextFrame(()=>{ + n.value||i.goToOption(qn.Last); + })),f.nextFrame(()=>{ + var S;return(S=n.inputRef.current)==null?void 0:S.focus({preventScroll:!0}); + });case $i.Escape:return n.comboboxState!==0?void 0:(T.preventDefault(),n.optionsRef.current&&!n.optionsPropsRef.current.static&&T.stopPropagation(),i.closeCombobox(),f.nextFrame(()=>{ + var S;return(S=n.inputRef.current)==null?void 0:S.focus({preventScroll:!0}); + }));default:return; + } + }),v=Qt(T=>{ + if(bZ(T.currentTarget))return T.preventDefault();n.comboboxState===0?i.closeCombobox():(T.preventDefault(),i.openCombobox()),f.nextFrame(()=>{ + var S;return(S=n.inputRef.current)==null?void 0:S.focus({preventScroll:!0}); + }); + }),g=bE(()=>{ + if(n.labelId)return[n.labelId,l].join(' '); + },[n.labelId,l]),y=(0,yt.useMemo)(()=>({open:n.comboboxState===0,disabled:n.disabled,value:n.value}),[n]),w={ref:o,id:l,type:hZ(e,n.buttonRef),tabIndex:-1,'aria-haspopup':'listbox','aria-controls':(r=n.optionsRef.current)==null?void 0:r.id,'aria-expanded':n.comboboxState===0,'aria-labelledby':g,disabled:n.disabled,onClick:v,onKeyDown:m};return kl({ourProps:w,theirProps:c,slot:y,defaultTag:$1e,name:'Combobox.Button'}); +}var txe='label';function rxe(e,t){ + let r=Gm(),{id:n=`headlessui-combobox-label-${r}`,...i}=e,o=Km('Combobox.Label'),s=Cy('Combobox.Label'),l=Hm(o.labelRef,t);Tn(()=>s.registerLabel(n),[n]);let c=Qt(()=>{ + var m;return(m=o.inputRef.current)==null?void 0:m.focus({preventScroll:!0}); + }),f=(0,yt.useMemo)(()=>({open:o.comboboxState===0,disabled:o.disabled}),[o]);return kl({ourProps:{ref:l,id:n,onClick:c},theirProps:i,slot:f,defaultTag:txe,name:'Combobox.Label'}); +}var nxe='ul',ixe=CE.RenderStrategy|CE.Static;function oxe(e,t){ + let r=Gm(),{id:n=`headlessui-combobox-options-${r}`,hold:i=!1,...o}=e,s=Km('Combobox.Options'),l=Hm(s.optionsRef,t),c=EZ(),f=(()=>c!==null?(c&Wm.Open)===Wm.Open:s.comboboxState===0)();Tn(()=>{ + var y;s.optionsPropsRef.current.static=(y=e.static)!=null?y:!1; + },[s.optionsPropsRef,e.static]),Tn(()=>{ + s.optionsPropsRef.current.hold=i; + },[s.optionsPropsRef,i]),vZ({container:s.optionsRef.current,enabled:s.comboboxState===0,accept(y){ + return y.getAttribute('role')==='option'?NodeFilter.FILTER_REJECT:y.hasAttribute('role')?NodeFilter.FILTER_SKIP:NodeFilter.FILTER_ACCEPT; + },walk(y){ + y.setAttribute('role','none'); + }});let m=bE(()=>{ + var y,w;return(w=s.labelId)!=null?w:(y=s.buttonRef.current)==null?void 0:y.id; + },[s.labelId,s.buttonRef.current]),v=(0,yt.useMemo)(()=>({open:s.comboboxState===0}),[s]),g={'aria-labelledby':m,role:'listbox','aria-multiselectable':s.mode===1?!0:void 0,id:n,ref:l};return kl({ourProps:g,theirProps:o,slot:v,defaultTag:nxe,features:ixe,visible:f,name:'Combobox.Options'}); +}var axe='li';function sxe(e,t){ + var r,n;let i=Gm(),{id:o=`headlessui-combobox-option-${i}`,disabled:s=!1,value:l,...c}=e,f=Km('Combobox.Option'),m=Cy('Combobox.Option'),v=f.activeOptionIndex!==null?f.options[f.activeOptionIndex].id===o:!1,g=f.isSelected(l),y=(0,yt.useRef)(null),w=Is({disabled:s,value:l,domRef:y,textValue:(n=(r=y.current)==null?void 0:r.textContent)==null?void 0:n.toLowerCase()}),T=Hm(t,y),S=Qt(()=>m.selectOption(o));Tn(()=>m.registerOption(o,w),[w,o]);let A=(0,yt.useRef)(!f.__demoMode);Tn(()=>{ + if(!f.__demoMode)return;let I=Bm();return I.requestAnimationFrame(()=>{ + A.current=!0; + }),I.dispose; + },[]),Tn(()=>{ + if(f.comboboxState!==0||!v||!A.current||f.activationTrigger===0)return;let I=Bm();return I.requestAnimationFrame(()=>{ + var V,G;(G=(V=y.current)==null?void 0:V.scrollIntoView)==null||G.call(V,{block:'nearest'}); + }),I.dispose; + },[y,v,f.comboboxState,f.activationTrigger,f.activeOptionIndex]);let b=Qt(I=>{ + if(s)return I.preventDefault();S(),f.mode===0&&m.closeCombobox(),NZ()||requestAnimationFrame(()=>{ + var V;return(V=f.inputRef.current)==null?void 0:V.focus(); + }); + }),C=Qt(()=>{ + if(s)return m.goToOption(qn.Nothing);m.goToOption(qn.Specific,o); + }),x=OZ(),k=Qt(I=>x.update(I)),P=Qt(I=>{ + x.wasMoved(I)&&(s||v||m.goToOption(qn.Specific,o,0)); + }),D=Qt(I=>{ + x.wasMoved(I)&&(s||v&&(f.optionsPropsRef.current.hold||m.goToOption(qn.Nothing))); + }),N=(0,yt.useMemo)(()=>({active:v,selected:g,disabled:s}),[v,g,s]);return kl({ourProps:{id:o,ref:T,role:'option',tabIndex:s===!0?void 0:-1,'aria-disabled':s===!0?!0:void 0,'aria-selected':g,disabled:void 0,onClick:b,onFocus:C,onPointerEnter:k,onMouseEnter:k,onPointerMove:P,onMouseMove:P,onPointerLeave:D,onMouseLeave:D},theirProps:c,slot:N,defaultTag:axe,name:'Combobox.Option'}); +}var lxe=Ol(Z1e),uxe=Ol(exe),cxe=Ol(_1e),fxe=Ol(rxe),dxe=Ol(oxe),pxe=Ol(sxe),Hf=Object.assign(lxe,{Input:cxe,Button:uxe,Label:fxe,Options:dxe,Option:pxe});var iI=fe(mf(),1),$we=Object.defineProperty,oe=(e,t)=>$we(e,'name',{value:t,configurable:!0});function _u(e){ + let t=(0,te.createContext)(null);return t.displayName=e,t; +}oe(_u,'createNullableContext');function $u(e){ + function t(r){ + var n;let i=(0,te.useContext)(e);if(i===null&&r!=null&&r.nonNull)throw new Error(`Tried to use \`${((n=r.caller)==null?void 0:n.name)||t.caller.name}\` without the necessary context. Make sure to render the \`${e.displayName}Provider\` component higher up the tree.`);return i; + }return oe(t,'useGivenContext'),Object.defineProperty(t,'name',{value:`use${e.displayName}`}),t; +}oe($u,'createContextHook');var d_=_u('StorageContext');function p_(e){ + let t=(0,te.useRef)(!0),[r,n]=(0,te.useState)(new dp(e.storage));return(0,te.useEffect)(()=>{ + t.current?t.current=!1:n(new dp(e.storage)); + },[e.storage]),(0,Y.jsx)(d_.Provider,{value:r,children:e.children}); +}oe(p_,'StorageContextProvider');var Pl=$u(d_),eEe=oe(({title:e,titleId:t,...r})=>ue.createElement('svg',{height:'1em',viewBox:'0 0 14 14',fill:'none',xmlns:'http://www.w3.org/2000/svg','aria-labelledby':t,...r},e?ue.createElement('title',{id:t},e):null,ue.createElement('path',{d:'M5.0484 1.40838C6.12624 0.33054 7.87376 0.330541 8.9516 1.40838L12.5916 5.0484C13.6695 6.12624 13.6695 7.87376 12.5916 8.9516L8.9516 12.5916C7.87376 13.6695 6.12624 13.6695 5.0484 12.5916L1.40838 8.9516C0.33054 7.87376 0.330541 6.12624 1.40838 5.0484L5.0484 1.40838Z',stroke:'currentColor',strokeWidth:1.2}),ue.createElement('rect',{x:6,y:6,width:2,height:2,rx:1,fill:'currentColor'})),'SvgArgument'),tEe=oe(({title:e,titleId:t,...r})=>ue.createElement('svg',{height:'1em',viewBox:'0 0 14 9',fill:'none',xmlns:'http://www.w3.org/2000/svg','aria-labelledby':t,...r},e?ue.createElement('title',{id:t},e):null,ue.createElement('path',{d:'M1 1L7 7L13 1',stroke:'currentColor',strokeWidth:1.5})),'SvgChevronDown'),rEe=oe(({title:e,titleId:t,...r})=>ue.createElement('svg',{height:'1em',viewBox:'0 0 7 10',fill:'none',xmlns:'http://www.w3.org/2000/svg','aria-labelledby':t,...r},e?ue.createElement('title',{id:t},e):null,ue.createElement('path',{d:'M6 1.04819L2 5.04819L6 9.04819',stroke:'currentColor',strokeWidth:1.75})),'SvgChevronLeft'),nEe=oe(({title:e,titleId:t,...r})=>ue.createElement('svg',{height:'1em',viewBox:'0 0 14 9',fill:'none',xmlns:'http://www.w3.org/2000/svg','aria-labelledby':t,...r},e?ue.createElement('title',{id:t},e):null,ue.createElement('path',{d:'M13 8L7 2L1 8',stroke:'currentColor',strokeWidth:1.5})),'SvgChevronUp'),iEe=oe(({title:e,titleId:t,...r})=>ue.createElement('svg',{height:'1em',viewBox:'0 0 14 14',fill:'none',xmlns:'http://www.w3.org/2000/svg','aria-labelledby':t,...r},e?ue.createElement('title',{id:t},e):null,ue.createElement('path',{d:'M1 1L12.9998 12.9997',stroke:'currentColor',strokeWidth:1.5}),ue.createElement('path',{d:'M13 1L1.00079 13.0003',stroke:'currentColor',strokeWidth:1.5})),'SvgClose'),oEe=oe(({title:e,titleId:t,...r})=>ue.createElement('svg',{height:'1em',viewBox:'-2 -2 22 22',fill:'none',xmlns:'http://www.w3.org/2000/svg','aria-labelledby':t,...r},e?ue.createElement('title',{id:t},e):null,ue.createElement('path',{d:'M11.25 14.2105V15.235C11.25 16.3479 10.3479 17.25 9.23501 17.25H2.76499C1.65214 17.25 0.75 16.3479 0.75 15.235L0.75 8.76499C0.75 7.65214 1.65214 6.75 2.76499 6.75L3.78947 6.75',stroke:'currentColor',strokeWidth:1.5}),ue.createElement('rect',{x:6.75,y:.75,width:10.5,height:10.5,rx:2.2069,stroke:'currentColor',strokeWidth:1.5})),'SvgCopy'),aEe=oe(({title:e,titleId:t,...r})=>ue.createElement('svg',{height:'1em',viewBox:'0 0 14 14',fill:'none',xmlns:'http://www.w3.org/2000/svg','aria-labelledby':t,...r},e?ue.createElement('title',{id:t},e):null,ue.createElement('path',{d:'M5.0484 1.40838C6.12624 0.33054 7.87376 0.330541 8.9516 1.40838L12.5916 5.0484C13.6695 6.12624 13.6695 7.87376 12.5916 8.9516L8.9516 12.5916C7.87376 13.6695 6.12624 13.6695 5.0484 12.5916L1.40838 8.9516C0.33054 7.87376 0.330541 6.12624 1.40838 5.0484L5.0484 1.40838Z',stroke:'currentColor',strokeWidth:1.2}),ue.createElement('path',{d:'M5 9L9 5',stroke:'currentColor',strokeWidth:1.2}),ue.createElement('path',{d:'M5 5L9 9',stroke:'currentColor',strokeWidth:1.2})),'SvgDeprecatedArgument'),sEe=oe(({title:e,titleId:t,...r})=>ue.createElement('svg',{height:'1em',viewBox:'0 0 12 12',fill:'none',xmlns:'http://www.w3.org/2000/svg','aria-labelledby':t,...r},e?ue.createElement('title',{id:t},e):null,ue.createElement('path',{d:'M4 8L8 4',stroke:'currentColor',strokeWidth:1.2}),ue.createElement('path',{d:'M4 4L8 8',stroke:'currentColor',strokeWidth:1.2}),ue.createElement('path',{fillRule:'evenodd',clipRule:'evenodd',d:'M8.5 1.2H9C9.99411 1.2 10.8 2.00589 10.8 3V9C10.8 9.99411 9.99411 10.8 9 10.8H8.5V12H9C10.6569 12 12 10.6569 12 9V3C12 1.34315 10.6569 0 9 0H8.5V1.2ZM3.5 1.2V0H3C1.34315 0 0 1.34315 0 3V9C0 10.6569 1.34315 12 3 12H3.5V10.8H3C2.00589 10.8 1.2 9.99411 1.2 9V3C1.2 2.00589 2.00589 1.2 3 1.2H3.5Z',fill:'currentColor'})),'SvgDeprecatedEnumValue'),lEe=oe(({title:e,titleId:t,...r})=>ue.createElement('svg',{height:'1em',viewBox:'0 0 12 12',fill:'none',xmlns:'http://www.w3.org/2000/svg','aria-labelledby':t,...r},e?ue.createElement('title',{id:t},e):null,ue.createElement('rect',{x:.6,y:.6,width:10.8,height:10.8,rx:3.4,stroke:'currentColor',strokeWidth:1.2}),ue.createElement('path',{d:'M4 8L8 4',stroke:'currentColor',strokeWidth:1.2}),ue.createElement('path',{d:'M4 4L8 8',stroke:'currentColor',strokeWidth:1.2})),'SvgDeprecatedField'),uEe=oe(({title:e,titleId:t,...r})=>ue.createElement('svg',{height:'1em',viewBox:'0 0.5 12 12',xmlns:'http://www.w3.org/2000/svg','aria-labelledby':t,...r},e?ue.createElement('title',{id:t},e):null,ue.createElement('rect',{x:7,y:5.5,width:2,height:2,rx:1,transform:'rotate(90 7 5.5)',fill:'currentColor'}),ue.createElement('path',{fillRule:'evenodd',clipRule:'evenodd',d:'M10.8 9L10.8 9.5C10.8 10.4941 9.99411 11.3 9 11.3L3 11.3C2.00589 11.3 1.2 10.4941 1.2 9.5L1.2 9L-3.71547e-07 9L-3.93402e-07 9.5C-4.65826e-07 11.1569 1.34314 12.5 3 12.5L9 12.5C10.6569 12.5 12 11.1569 12 9.5L12 9L10.8 9ZM10.8 4L12 4L12 3.5C12 1.84315 10.6569 0.5 9 0.5L3 0.5C1.34315 0.5 -5.87117e-08 1.84315 -1.31135e-07 3.5L-1.5299e-07 4L1.2 4L1.2 3.5C1.2 2.50589 2.00589 1.7 3 1.7L9 1.7C9.99411 1.7 10.8 2.50589 10.8 3.5L10.8 4Z',fill:'currentColor'})),'SvgDirective'),cEe=oe(({title:e,titleId:t,...r})=>ue.createElement('svg',{height:'1em',viewBox:'0 0 20 24',fill:'none',xmlns:'http://www.w3.org/2000/svg','aria-labelledby':t,...r},e?ue.createElement('title',{id:t},e):null,ue.createElement('path',{d:'M0.75 3C0.75 1.75736 1.75736 0.75 3 0.75H17.25C17.8023 0.75 18.25 1.19772 18.25 1.75V5.25',stroke:'currentColor',strokeWidth:1.5}),ue.createElement('path',{d:'M0.75 3C0.75 4.24264 1.75736 5.25 3 5.25H18.25C18.8023 5.25 19.25 5.69771 19.25 6.25V22.25C19.25 22.8023 18.8023 23.25 18.25 23.25H3C1.75736 23.25 0.75 22.2426 0.75 21V3Z',stroke:'currentColor',strokeWidth:1.5}),ue.createElement('path',{fillRule:'evenodd',clipRule:'evenodd',d:'M3 5.25C1.75736 5.25 0.75 4.24264 0.75 3V21C0.75 22.2426 1.75736 23.25 3 23.25H18.25C18.8023 23.25 19.25 22.8023 19.25 22.25V6.25C19.25 5.69771 18.8023 5.25 18.25 5.25H3ZM13 11L6 11V12.5L13 12.5V11Z',fill:'currentColor'})),'SvgDocsFilled'),fEe=oe(({title:e,titleId:t,...r})=>ue.createElement('svg',{height:'1em',viewBox:'0 0 20 24',fill:'none',xmlns:'http://www.w3.org/2000/svg','aria-labelledby':t,...r},e?ue.createElement('title',{id:t},e):null,ue.createElement('path',{d:'M0.75 3C0.75 4.24264 1.75736 5.25 3 5.25H17.25M0.75 3C0.75 1.75736 1.75736 0.75 3 0.75H16.25C16.8023 0.75 17.25 1.19772 17.25 1.75V5.25M0.75 3V21C0.75 22.2426 1.75736 23.25 3 23.25H18.25C18.8023 23.25 19.25 22.8023 19.25 22.25V6.25C19.25 5.69771 18.8023 5.25 18.25 5.25H17.25',stroke:'currentColor',strokeWidth:1.5}),ue.createElement('line',{x1:13,y1:11.75,x2:6,y2:11.75,stroke:'currentColor',strokeWidth:1.5})),'SvgDocs'),dEe=oe(({title:e,titleId:t,...r})=>ue.createElement('svg',{height:'1em',viewBox:'0 0 12 12',fill:'none',xmlns:'http://www.w3.org/2000/svg','aria-labelledby':t,...r},e?ue.createElement('title',{id:t},e):null,ue.createElement('rect',{x:5,y:5,width:2,height:2,rx:1,fill:'currentColor'}),ue.createElement('path',{fillRule:'evenodd',clipRule:'evenodd',d:'M8.5 1.2H9C9.99411 1.2 10.8 2.00589 10.8 3V9C10.8 9.99411 9.99411 10.8 9 10.8H8.5V12H9C10.6569 12 12 10.6569 12 9V3C12 1.34315 10.6569 0 9 0H8.5V1.2ZM3.5 1.2V0H3C1.34315 0 0 1.34315 0 3V9C0 10.6569 1.34315 12 3 12H3.5V10.8H3C2.00589 10.8 1.2 9.99411 1.2 9V3C1.2 2.00589 2.00589 1.2 3 1.2H3.5Z',fill:'currentColor'})),'SvgEnumValue'),pEe=oe(({title:e,titleId:t,...r})=>ue.createElement('svg',{height:'1em',viewBox:'0 0 12 13',fill:'none',xmlns:'http://www.w3.org/2000/svg','aria-labelledby':t,...r},e?ue.createElement('title',{id:t},e):null,ue.createElement('rect',{x:.6,y:1.1,width:10.8,height:10.8,rx:2.4,stroke:'currentColor',strokeWidth:1.2}),ue.createElement('rect',{x:5,y:5.5,width:2,height:2,rx:1,fill:'currentColor'})),'SvgField'),mEe=oe(({title:e,titleId:t,...r})=>ue.createElement('svg',{height:'1em',viewBox:'0 0 24 20',fill:'none',xmlns:'http://www.w3.org/2000/svg','aria-labelledby':t,...r},e?ue.createElement('title',{id:t},e):null,ue.createElement('path',{d:'M1.59375 9.52344L4.87259 12.9944L8.07872 9.41249',stroke:'currentColor',strokeWidth:1.5,strokeLinecap:'square'}),ue.createElement('path',{d:'M13.75 5.25V10.75H18.75',stroke:'currentColor',strokeWidth:1.5,strokeLinecap:'square'}),ue.createElement('path',{d:'M4.95427 11.9332C4.55457 10.0629 4.74441 8.11477 5.49765 6.35686C6.25089 4.59894 7.5305 3.11772 9.16034 2.11709C10.7902 1.11647 12.6901 0.645626 14.5986 0.769388C16.5071 0.893151 18.3303 1.60543 19.8172 2.80818C21.3042 4.01093 22.3818 5.64501 22.9017 7.48548C23.4216 9.32595 23.3582 11.2823 22.7203 13.0853C22.0824 14.8883 20.9013 16.4492 19.3396 17.5532C17.778 18.6572 15.9125 19.25 14 19.25',stroke:'currentColor',strokeWidth:1.5})),'SvgHistory'),hEe=oe(({title:e,titleId:t,...r})=>ue.createElement('svg',{height:'1em',viewBox:'0 0 12 12',fill:'none',xmlns:'http://www.w3.org/2000/svg','aria-labelledby':t,...r},e?ue.createElement('title',{id:t},e):null,ue.createElement('circle',{cx:6,cy:6,r:5.4,stroke:'currentColor',strokeWidth:1.2,strokeDasharray:'4.241025 4.241025',transform:'rotate(22.5)','transform-origin':'center'}),ue.createElement('circle',{cx:6,cy:6,r:1,fill:'currentColor'})),'SvgImplements'),vEe=oe(({title:e,titleId:t,...r})=>ue.createElement('svg',{height:'1em',viewBox:'0 0 19 18',fill:'none',xmlns:'http://www.w3.org/2000/svg','aria-labelledby':t,...r},e?ue.createElement('title',{id:t},e):null,ue.createElement('path',{d:'M1.5 14.5653C1.5 15.211 1.75652 15.8303 2.21314 16.2869C2.66975 16.7435 3.28905 17 3.9348 17C4.58054 17 5.19984 16.7435 5.65646 16.2869C6.11307 15.8303 6.36959 15.211 6.36959 14.5653V12.1305H3.9348C3.28905 12.1305 2.66975 12.387 2.21314 12.8437C1.75652 13.3003 1.5 13.9195 1.5 14.5653Z',stroke:'currentColor',strokeWidth:1.125,strokeLinecap:'round',strokeLinejoin:'round'}),ue.createElement('path',{d:'M3.9348 1.00063C3.28905 1.00063 2.66975 1.25715 2.21314 1.71375C1.75652 2.17035 1.5 2.78964 1.5 3.43537C1.5 4.0811 1.75652 4.70038 2.21314 5.15698C2.66975 5.61358 3.28905 5.8701 3.9348 5.8701H6.36959V3.43537C6.36959 2.78964 6.11307 2.17035 5.65646 1.71375C5.19984 1.25715 4.58054 1.00063 3.9348 1.00063Z',stroke:'currentColor',strokeWidth:1.125,strokeLinecap:'round',strokeLinejoin:'round'}),ue.createElement('path',{d:'M15.0652 12.1305H12.6304V14.5653C12.6304 15.0468 12.7732 15.5175 13.0407 15.9179C13.3083 16.3183 13.6885 16.6304 14.1334 16.8147C14.5783 16.9989 15.0679 17.0472 15.5402 16.9532C16.0125 16.8593 16.4464 16.6274 16.7869 16.2869C17.1274 15.9464 17.3593 15.5126 17.4532 15.0403C17.5472 14.568 17.4989 14.0784 17.3147 13.6335C17.1304 13.1886 16.8183 12.8084 16.4179 12.5409C16.0175 12.2733 15.5468 12.1305 15.0652 12.1305Z',stroke:'currentColor',strokeWidth:1.125,strokeLinecap:'round',strokeLinejoin:'round'}),ue.createElement('path',{d:'M12.6318 5.86775H6.36955V12.1285H12.6318V5.86775Z',stroke:'currentColor',strokeWidth:1.125,strokeLinecap:'round',strokeLinejoin:'round'}),ue.createElement('path',{d:'M17.5 3.43473C17.5 2.789 17.2435 2.16972 16.7869 1.71312C16.3303 1.25652 15.711 1 15.0652 1C14.4195 1 13.8002 1.25652 13.3435 1.71312C12.8869 2.16972 12.6304 2.789 12.6304 3.43473V5.86946H15.0652C15.711 5.86946 16.3303 5.61295 16.7869 5.15635C17.2435 4.69975 17.5 4.08046 17.5 3.43473Z',stroke:'currentColor',strokeWidth:1.125,strokeLinecap:'round',strokeLinejoin:'round'})),'SvgKeyboardShortcut'),gEe=oe(({title:e,titleId:t,...r})=>ue.createElement('svg',{height:'1em',viewBox:'0 0 13 13',fill:'none',xmlns:'http://www.w3.org/2000/svg','aria-labelledby':t,...r},e?ue.createElement('title',{id:t},e):null,ue.createElement('circle',{cx:5,cy:5,r:4.35,stroke:'currentColor',strokeWidth:1.3}),ue.createElement('line',{x1:8.45962,y1:8.54038,x2:11.7525,y2:11.8333,stroke:'currentColor',strokeWidth:1.3})),'SvgMagnifyingGlass'),yEe=oe(({title:e,titleId:t,...r})=>ue.createElement('svg',{height:'1em',viewBox:'-2 -2 22 22',fill:'none',xmlns:'http://www.w3.org/2000/svg','aria-labelledby':t,...r},e?ue.createElement('title',{id:t},e):null,ue.createElement('path',{d:'M17.2492 6V2.9569C17.2492 1.73806 16.2611 0.75 15.0423 0.75L2.9569 0.75C1.73806 0.75 0.75 1.73806 0.75 2.9569L0.75 6',stroke:'currentColor',strokeWidth:1.5}),ue.createElement('path',{d:'M0.749873 12V15.0431C0.749873 16.2619 1.73794 17.25 2.95677 17.25H15.0421C16.261 17.25 17.249 16.2619 17.249 15.0431V12',stroke:'currentColor',strokeWidth:1.5}),ue.createElement('path',{d:'M6 4.5L9 7.5L12 4.5',stroke:'currentColor',strokeWidth:1.5}),ue.createElement('path',{d:'M12 13.5L9 10.5L6 13.5',stroke:'currentColor',strokeWidth:1.5})),'SvgMerge'),bEe=oe(({title:e,titleId:t,...r})=>ue.createElement('svg',{height:'1em',viewBox:'0 0 14 14',fill:'none',xmlns:'http://www.w3.org/2000/svg','aria-labelledby':t,...r},e?ue.createElement('title',{id:t},e):null,ue.createElement('path',{d:'M0.75 13.25L0.0554307 12.967C-0.0593528 13.2488 0.00743073 13.5719 0.224488 13.7851C0.441545 13.9983 0.765869 14.0592 1.04549 13.9393L0.75 13.25ZM12.8214 1.83253L12.2911 2.36286L12.2911 2.36286L12.8214 1.83253ZM12.8214 3.90194L13.3517 4.43227L12.8214 3.90194ZM10.0981 1.17859L9.56773 0.648259L10.0981 1.17859ZM12.1675 1.17859L12.6978 0.648258L12.6978 0.648257L12.1675 1.17859ZM2.58049 8.75697L3.27506 9.03994L2.58049 8.75697ZM2.70066 8.57599L3.23099 9.10632L2.70066 8.57599ZM5.2479 11.4195L4.95355 10.7297L5.2479 11.4195ZM5.42036 11.303L4.89003 10.7727L5.42036 11.303ZM4.95355 10.7297C4.08882 11.0987 3.41842 11.362 2.73535 11.6308C2.05146 11.9 1.35588 12.1743 0.454511 12.5607L1.04549 13.9393C1.92476 13.5624 2.60256 13.2951 3.28469 13.0266C3.96762 12.7578 4.65585 12.4876 5.54225 12.1093L4.95355 10.7297ZM1.44457 13.533L3.27506 9.03994L1.88592 8.474L0.0554307 12.967L1.44457 13.533ZM3.23099 9.10632L10.6284 1.70892L9.56773 0.648259L2.17033 8.04566L3.23099 9.10632ZM11.6371 1.70892L12.2911 2.36286L13.3517 1.3022L12.6978 0.648258L11.6371 1.70892ZM12.2911 3.37161L4.89003 10.7727L5.95069 11.8333L13.3517 4.43227L12.2911 3.37161ZM12.2911 2.36286C12.5696 2.64142 12.5696 3.09305 12.2911 3.37161L13.3517 4.43227C14.2161 3.56792 14.2161 2.16654 13.3517 1.3022L12.2911 2.36286ZM10.6284 1.70892C10.9069 1.43036 11.3586 1.43036 11.6371 1.70892L12.6978 0.648257C11.8335 -0.216088 10.4321 -0.216084 9.56773 0.648259L10.6284 1.70892ZM3.27506 9.03994C3.26494 9.06479 3.24996 9.08735 3.23099 9.10632L2.17033 8.04566C2.04793 8.16806 1.95123 8.31369 1.88592 8.474L3.27506 9.03994ZM5.54225 12.1093C5.69431 12.0444 5.83339 11.9506 5.95069 11.8333L4.89003 10.7727C4.90863 10.7541 4.92988 10.7398 4.95355 10.7297L5.54225 12.1093Z',fill:'currentColor'}),ue.createElement('path',{d:'M11.5 4.5L9.5 2.5',stroke:'currentColor',strokeWidth:1.4026,strokeLinecap:'round',strokeLinejoin:'round'}),ue.createElement('path',{d:'M5.5 10.5L3.5 8.5',stroke:'currentColor',strokeWidth:1.4026,strokeLinecap:'round',strokeLinejoin:'round'})),'SvgPen'),AEe=oe(({title:e,titleId:t,...r})=>ue.createElement('svg',{height:'1em',viewBox:'0 0 16 18',fill:'none',xmlns:'http://www.w3.org/2000/svg','aria-labelledby':t,...r},e?ue.createElement('title',{id:t},e):null,ue.createElement('path',{d:'M1.32226e-07 1.6609C7.22332e-08 0.907329 0.801887 0.424528 1.46789 0.777117L15.3306 8.11621C16.0401 8.49182 16.0401 9.50818 15.3306 9.88379L1.46789 17.2229C0.801886 17.5755 1.36076e-06 17.0927 1.30077e-06 16.3391L1.32226e-07 1.6609Z',fill:'currentColor'})),'SvgPlay'),xEe=oe(({title:e,titleId:t,...r})=>ue.createElement('svg',{height:'1em',viewBox:'0 0 10 16',fill:'none',xmlns:'http://www.w3.org/2000/svg','aria-labelledby':t,...r},e?ue.createElement('title',{id:t},e):null,ue.createElement('path',{fillRule:'evenodd',clipRule:'evenodd',d:'M4.25 9.25V13.5H5.75V9.25L10 9.25V7.75L5.75 7.75V3.5H4.25V7.75L0 7.75V9.25L4.25 9.25Z',fill:'currentColor'})),'SvgPlus'),wEe=oe(({title:e,titleId:t,...r})=>ue.createElement('svg',{width:25,height:25,viewBox:'0 0 25 25',fill:'none',xmlns:'http://www.w3.org/2000/svg','aria-labelledby':t,...r},e?ue.createElement('title',{id:t},e):null,ue.createElement('path',{d:'M10.2852 24.0745L13.7139 18.0742',stroke:'currentColor',strokeWidth:1.5625}),ue.createElement('path',{d:'M14.5742 24.0749L17.1457 19.7891',stroke:'currentColor',strokeWidth:1.5625}),ue.createElement('path',{d:'M19.4868 24.0735L20.7229 21.7523C21.3259 20.6143 21.5457 19.3122 21.3496 18.0394C21.1535 16.7666 20.5519 15.591 19.6342 14.6874L23.7984 6.87853C24.0123 6.47728 24.0581 6.00748 23.9256 5.57249C23.7932 5.1375 23.4933 4.77294 23.0921 4.55901C22.6908 4.34509 22.221 4.29932 21.7861 4.43178C21.3511 4.56424 20.9865 4.86408 20.7726 5.26533L16.6084 13.0742C15.3474 12.8142 14.0362 12.9683 12.8699 13.5135C11.7035 14.0586 10.7443 14.9658 10.135 16.1L6 24.0735',stroke:'currentColor',strokeWidth:1.5625}),ue.createElement('path',{d:'M4 15L5 13L7 12L5 11L4 9L3 11L1 12L3 13L4 15Z',stroke:'currentColor',strokeWidth:1.5625,strokeLinejoin:'round'}),ue.createElement('path',{d:'M11.5 8L12.6662 5.6662L15 4.5L12.6662 3.3338L11.5 1L10.3338 3.3338L8 4.5L10.3338 5.6662L11.5 8Z',stroke:'currentColor',strokeWidth:1.5625,strokeLinejoin:'round'})),'SvgPrettify'),EEe=oe(({title:e,titleId:t,...r})=>ue.createElement('svg',{height:'1em',viewBox:'0 0 16 16',fill:'none',xmlns:'http://www.w3.org/2000/svg','aria-labelledby':t,...r},e?ue.createElement('title',{id:t},e):null,ue.createElement('path',{d:'M4.75 9.25H1.25V12.75',stroke:'currentColor',strokeWidth:1,strokeLinecap:'square'}),ue.createElement('path',{d:'M11.25 6.75H14.75V3.25',stroke:'currentColor',strokeWidth:1,strokeLinecap:'square'}),ue.createElement('path',{d:'M14.1036 6.65539C13.8 5.27698 13.0387 4.04193 11.9437 3.15131C10.8487 2.26069 9.48447 1.76694 8.0731 1.75043C6.66173 1.73392 5.28633 2.19563 4.17079 3.0604C3.05526 3.92516 2.26529 5.14206 1.92947 6.513',stroke:'currentColor',strokeWidth:1}),ue.createElement('path',{d:'M1.89635 9.34461C2.20001 10.723 2.96131 11.9581 4.05631 12.8487C5.15131 13.7393 6.51553 14.2331 7.9269 14.2496C9.33827 14.2661 10.7137 13.8044 11.8292 12.9396C12.9447 12.0748 13.7347 10.8579 14.0705 9.487',stroke:'currentColor',strokeWidth:1})),'SvgReload'),TEe=oe(({title:e,titleId:t,...r})=>ue.createElement('svg',{height:'1em',viewBox:'0 0 13 13',fill:'none',xmlns:'http://www.w3.org/2000/svg','aria-labelledby':t,...r},e?ue.createElement('title',{id:t},e):null,ue.createElement('rect',{x:.6,y:.6,width:11.8,height:11.8,rx:5.9,stroke:'currentColor',strokeWidth:1.2}),ue.createElement('path',{d:'M4.25 7.5C4.25 6 5.75 5 6.5 6.5C7.25 8 8.75 7 8.75 5.5',stroke:'currentColor',strokeWidth:1.2})),'SvgRootType'),CEe=oe(({title:e,titleId:t,...r})=>ue.createElement('svg',{height:'1em',viewBox:'0 0 21 20',fill:'none',xmlns:'http://www.w3.org/2000/svg','aria-labelledby':t,...r},e?ue.createElement('title',{id:t},e):null,ue.createElement('path',{fillRule:'evenodd',clipRule:'evenodd',d:'M9.29186 1.92702C9.06924 1.82745 8.87014 1.68202 8.70757 1.50024L7.86631 0.574931C7.62496 0.309957 7.30773 0.12592 6.95791 0.0479385C6.60809 -0.0300431 6.24274 0.00182978 5.91171 0.139208C5.58068 0.276585 5.3001 0.512774 5.10828 0.815537C4.91645 1.1183 4.82272 1.47288 4.83989 1.83089L4.90388 3.08019C4.91612 3.32348 4.87721 3.56662 4.78968 3.79394C4.70215 4.02126 4.56794 4.2277 4.39571 4.39994C4.22347 4.57219 4.01704 4.7064 3.78974 4.79394C3.56243 4.88147 3.3193 4.92038 3.07603 4.90814L1.8308 4.84414C1.47162 4.82563 1.11553 4.91881 0.811445 5.11086C0.507359 5.30292 0.270203 5.58443 0.132561 5.91671C-0.00508149 6.249 -0.0364554 6.61576 0.0427496 6.9666C0.121955 7.31744 0.307852 7.63514 0.5749 7.87606L1.50016 8.71204C1.68193 8.87461 1.82735 9.07373 1.92692 9.29636C2.02648 9.51898 2.07794 9.76012 2.07794 10.004C2.07794 10.2479 2.02648 10.489 1.92692 10.7116C1.82735 10.9343 1.68193 11.1334 1.50016 11.296L0.5749 12.1319C0.309856 12.3729 0.125575 12.6898 0.0471809 13.0393C-0.0312128 13.3888 9.64098e-05 13.754 0.13684 14.0851C0.273583 14.4162 0.509106 14.6971 0.811296 14.8894C1.11349 15.0817 1.46764 15.1762 1.82546 15.1599L3.0707 15.0959C3.31397 15.0836 3.5571 15.1225 3.7844 15.2101C4.01171 15.2976 4.21814 15.4318 4.39037 15.6041C4.56261 15.7763 4.69682 15.9827 4.78435 16.2101C4.87188 16.4374 4.91078 16.6805 4.89855 16.9238L4.83455 18.1691C4.81605 18.5283 4.90921 18.8844 5.10126 19.1885C5.2933 19.4926 5.5748 19.7298 5.90707 19.8674C6.23934 20.0051 6.60608 20.0365 6.9569 19.9572C7.30772 19.878 7.6254 19.6921 7.86631 19.4251L8.7129 18.4998C8.87547 18.318 9.07458 18.1725 9.29719 18.073C9.51981 17.9734 9.76093 17.9219 10.0048 17.9219C10.2487 17.9219 10.4898 17.9734 10.7124 18.073C10.935 18.1725 11.1341 18.318 11.2967 18.4998L12.1326 19.4251C12.3735 19.6921 12.6912 19.878 13.042 19.9572C13.3929 20.0365 13.7596 20.0051 14.0919 19.8674C14.4241 19.7298 14.7056 19.4926 14.8977 19.1885C15.0897 18.8844 15.1829 18.5283 15.1644 18.1691L15.1004 16.9238C15.0882 16.6805 15.1271 16.4374 15.2146 16.2101C15.3021 15.9827 15.4363 15.7763 15.6086 15.6041C15.7808 15.4318 15.9872 15.2976 16.2145 15.2101C16.4418 15.1225 16.685 15.0836 16.9282 15.0959L18.1735 15.1599C18.5326 15.1784 18.8887 15.0852 19.1928 14.8931C19.4969 14.7011 19.7341 14.4196 19.8717 14.0873C20.0093 13.755 20.0407 13.3882 19.9615 13.0374C19.8823 12.6866 19.6964 12.3689 19.4294 12.1279L18.5041 11.292C18.3223 11.1294 18.1769 10.9303 18.0774 10.7076C17.9778 10.485 17.9263 10.2439 17.9263 10C17.9263 9.75612 17.9778 9.51499 18.0774 9.29236C18.1769 9.06973 18.3223 8.87062 18.5041 8.70804L19.4294 7.87206C19.6964 7.63114 19.8823 7.31344 19.9615 6.9626C20.0407 6.61176 20.0093 6.245 19.8717 5.91271C19.7341 5.58043 19.4969 5.29892 19.1928 5.10686C18.8887 4.91481 18.5326 4.82163 18.1735 4.84014L16.9282 4.90414C16.685 4.91638 16.4418 4.87747 16.2145 4.78994C15.9872 4.7024 15.7808 4.56818 15.6086 4.39594C15.4363 4.2237 15.3021 4.01726 15.2146 3.78994C15.1271 3.56262 15.0882 3.31948 15.1004 3.07619L15.1644 1.83089C15.1829 1.4717 15.0897 1.11559 14.8977 0.811487C14.7056 0.507385 14.4241 0.270217 14.0919 0.132568C13.7596 -0.00508182 13.3929 -0.0364573 13.042 0.0427519C12.6912 0.121961 12.3735 0.307869 12.1326 0.574931L11.2914 1.50024C11.1288 1.68202 10.9297 1.82745 10.7071 1.92702C10.4845 2.02659 10.2433 2.07805 9.99947 2.07805C9.7556 2.07805 9.51448 2.02659 9.29186 1.92702ZM14.3745 10C14.3745 12.4162 12.4159 14.375 9.99977 14.375C7.58365 14.375 5.625 12.4162 5.625 10C5.625 7.58375 7.58365 5.625 9.99977 5.625C12.4159 5.625 14.3745 7.58375 14.3745 10Z',fill:'currentColor'})),'SvgSettings'),SEe=oe(({title:e,titleId:t,...r})=>ue.createElement('svg',{height:'1em',viewBox:'0 0 14 14',fill:'none',xmlns:'http://www.w3.org/2000/svg','aria-labelledby':t,...r},e?ue.createElement('title',{id:t},e):null,ue.createElement('path',{d:'M6.5782 1.07092C6.71096 0.643026 7.28904 0.643027 7.4218 1.07092L8.59318 4.84622C8.65255 5.03758 8.82284 5.16714 9.01498 5.16714L12.8056 5.16714C13.2353 5.16714 13.4139 5.74287 13.0663 6.00732L9.99962 8.34058C9.84418 8.45885 9.77913 8.66848 9.83851 8.85984L11.0099 12.6351C11.1426 13.063 10.675 13.4189 10.3274 13.1544L7.26069 10.8211C7.10524 10.7029 6.89476 10.7029 6.73931 10.8211L3.6726 13.1544C3.32502 13.4189 2.85735 13.063 2.99012 12.6351L4.16149 8.85984C4.22087 8.66848 4.15582 8.45885 4.00038 8.34058L0.933671 6.00732C0.586087 5.74287 0.764722 5.16714 1.19436 5.16714L4.98502 5.16714C5.17716 5.16714 5.34745 5.03758 5.40682 4.84622L6.5782 1.07092Z',fill:'currentColor',stroke:'currentColor'})),'SvgStarFilled'),kEe=oe(({title:e,titleId:t,...r})=>ue.createElement('svg',{height:'1em',viewBox:'0 0 14 14',fill:'none',xmlns:'http://www.w3.org/2000/svg','aria-labelledby':t,...r},e?ue.createElement('title',{id:t},e):null,ue.createElement('path',{d:'M6.5782 1.07092C6.71096 0.643026 7.28904 0.643027 7.4218 1.07092L8.59318 4.84622C8.65255 5.03758 8.82284 5.16714 9.01498 5.16714L12.8056 5.16714C13.2353 5.16714 13.4139 5.74287 13.0663 6.00732L9.99962 8.34058C9.84418 8.45885 9.77913 8.66848 9.83851 8.85984L11.0099 12.6351C11.1426 13.063 10.675 13.4189 10.3274 13.1544L7.26069 10.8211C7.10524 10.7029 6.89476 10.7029 6.73931 10.8211L3.6726 13.1544C3.32502 13.4189 2.85735 13.063 2.99012 12.6351L4.16149 8.85984C4.22087 8.66848 4.15582 8.45885 4.00038 8.34058L0.933671 6.00732C0.586087 5.74287 0.764722 5.16714 1.19436 5.16714L4.98502 5.16714C5.17716 5.16714 5.34745 5.03758 5.40682 4.84622L6.5782 1.07092Z',stroke:'currentColor',strokeWidth:1.5})),'SvgStar'),OEe=oe(({title:e,titleId:t,...r})=>ue.createElement('svg',{height:'1em',viewBox:'0 0 16 16',fill:'none',xmlns:'http://www.w3.org/2000/svg','aria-labelledby':t,...r},e?ue.createElement('title',{id:t},e):null,ue.createElement('rect',{width:16,height:16,rx:2,fill:'currentColor'})),'SvgStop'),NEe=oe(({title:e,titleId:t,...r})=>ue.createElement('svg',{width:'1em',height:'5em',xmlns:'http://www.w3.org/2000/svg',fillRule:'evenodd','aria-hidden':'true',viewBox:'0 0 23 23',style:{height:'1.5em'},clipRule:'evenodd','aria-labelledby':t,...r},e===void 0?ue.createElement('title',{id:t},'trash icon'):e?ue.createElement('title',{id:t},e):null,ue.createElement('path',{d:'M19 24h-14c-1.104 0-2-.896-2-2v-17h-1v-2h6v-1.5c0-.827.673-1.5 1.5-1.5h5c.825 0 1.5.671 1.5 1.5v1.5h6v2h-1v17c0 1.104-.896 2-2 2zm0-19h-14v16.5c0 .276.224.5.5.5h13c.276 0 .5-.224.5-.5v-16.5zm-7 7.586l3.293-3.293 1.414 1.414-3.293 3.293 3.293 3.293-1.414 1.414-3.293-3.293-3.293 3.293-1.414-1.414 3.293-3.293-3.293-3.293 1.414-1.414 3.293 3.293zm2-10.586h-4v1h4v-1z',fill:'currentColor',strokeWidth:.25,stroke:'currentColor'})),'SvgTrash'),DEe=oe(({title:e,titleId:t,...r})=>ue.createElement('svg',{height:'1em',viewBox:'0 0 13 13',fill:'none',xmlns:'http://www.w3.org/2000/svg','aria-labelledby':t,...r},e?ue.createElement('title',{id:t},e):null,ue.createElement('rect',{x:.6,y:.6,width:11.8,height:11.8,rx:5.9,stroke:'currentColor',strokeWidth:1.2}),ue.createElement('rect',{x:5.5,y:5.5,width:2,height:2,rx:1,fill:'currentColor'})),'SvgType'),LEe=zt(eEe),m_=zt(tEe),PEe=zt(rEe),h_=zt(nEe),cI=zt(iEe),v_=zt(oEe),REe=zt(aEe),MEe=zt(sEe),IEe=zt(lEe),FEe=zt(uEe),qEe=zt(cEe,'filled docs icon'),jEe=zt(fEe),VEe=zt(dEe),UEe=zt(pEe),BEe=zt(mEe),GEe=zt(hEe),g_=zt(vEe),zEe=zt(gEe),y_=zt(yEe),HEe=zt(bEe),QEe=zt(AEe),b_=zt(xEe),A_=zt(wEe),x_=zt(EEe),WEe=zt(TEe),w_=zt(CEe),YEe=zt(SEe,'filled star icon'),KEe=zt(kEe),XEe=zt(OEe),ZEe=zt(NEe,'trash icon'),IE=zt(DEe);function zt(e,t=e.name.replace('Svg','').replaceAll(/([A-Z])/g,' $1').trimStart().toLowerCase()+' icon'){ + return e.defaultProps={title:t},e; +}oe(zt,'generateIcon');var pn=(0,te.forwardRef)((e,t)=>(0,Y.jsx)('button',{...e,ref:t,className:gn('graphiql-un-styled',e.className)}));pn.displayName='UnStyledButton';var aa=(0,te.forwardRef)((e,t)=>(0,Y.jsx)('button',{...e,ref:t,className:gn('graphiql-button',{success:'graphiql-button-success',error:'graphiql-button-error'}[e.state],e.className)}));aa.displayName='Button';var XE=(0,te.forwardRef)((e,t)=>(0,Y.jsx)('div',{...e,ref:t,className:gn('graphiql-button-group',e.className)}));XE.displayName='ButtonGroup';var Zy=oe((e,t)=>Object.entries(t).reduce((r,[n,i])=>(r[n]=i,r),e),'createComponentGroup'),E_=(0,te.forwardRef)((e,t)=>(0,Y.jsx)(eG,{asChild:!0,children:(0,Y.jsxs)(pn,{...e,ref:t,type:'button',className:gn('graphiql-dialog-close',e.className),children:[(0,Y.jsx)(Cx,{children:'Close dialog'}),(0,Y.jsx)(cI,{})]})}));E_.displayName='Dialog.Close';function T_({children:e,...t}){ + return(0,Y.jsx)(YB,{...t,children:(0,Y.jsxs)(XB,{children:[(0,Y.jsx)(ZB,{className:'graphiql-dialog-overlay'}),(0,Y.jsx)(JB,{className:'graphiql-dialog',children:e})]})}); +}oe(T_,'DialogRoot');var $f=Zy(T_,{Close:E_,Title:_B,Trigger:KB,Description:$B}),C_=(0,te.forwardRef)((e,t)=>(0,Y.jsx)($G,{asChild:!0,children:(0,Y.jsx)('button',{...e,ref:t,className:gn('graphiql-un-styled',e.className)})}));C_.displayName='DropdownMenuButton';function S_({children:e,align:t='start',sideOffset:r=5,className:n,...i}){ + return(0,Y.jsx)(ez,{children:(0,Y.jsx)(tz,{align:t,sideOffset:r,className:gn('graphiql-dropdown-content',n),...i,children:e})}); +}oe(S_,'Content');var JEe=oe(({className:e,children:t,...r})=>(0,Y.jsx)(rz,{className:gn('graphiql-dropdown-item',e),...r,children:t}),'Item'),Zu=Zy(_G,{Button:C_,Item:JEe,Content:S_}),BE=new f_.default({breaks:!0,linkify:!0}),js=(0,te.forwardRef)(({children:e,onlyShowFirstChild:t,type:r,...n},i)=>(0,Y.jsx)('div',{...n,ref:i,className:gn(`graphiql-markdown-${r}`,t&&'graphiql-markdown-preview',n.className),dangerouslySetInnerHTML:{__html:BE.render(e)}}));js.displayName='MarkdownContent';var ZE=(0,te.forwardRef)((e,t)=>(0,Y.jsx)('div',{...e,ref:t,className:gn('graphiql-spinner',e.className)}));ZE.displayName='Spinner';function k_({children:e,align:t='start',side:r='bottom',sideOffset:n=5,label:i}){ + return(0,Y.jsxs)(ZX,{children:[(0,Y.jsx)(JX,{asChild:!0,children:e}),(0,Y.jsx)(_X,{children:(0,Y.jsx)($X,{className:'graphiql-tooltip',align:t,side:r,sideOffset:n,children:i})})]}); +}oe(k_,'TooltipRoot');var ti=Zy(k_,{Provider:XX}),O_=(0,te.forwardRef)(({isActive:e,value:t,children:r,className:n,...i},o)=>(0,Y.jsx)(vE.Item,{...i,ref:o,value:t,'aria-selected':e?'true':void 0,role:'tab',className:gn('graphiql-tab',e&&'graphiql-tab-active',n),children:r}));O_.displayName='Tab';var N_=(0,te.forwardRef)((e,t)=>(0,Y.jsx)(pn,{...e,ref:t,type:'button',className:gn('graphiql-tab-button',e.className),children:e.children}));N_.displayName='Tab.Button';var D_=(0,te.forwardRef)((e,t)=>(0,Y.jsx)(ti,{label:'Close Tab',children:(0,Y.jsx)(pn,{'aria-label':'Close Tab',...e,ref:t,type:'button',className:gn('graphiql-tab-close',e.className),children:(0,Y.jsx)(cI,{})})}));D_.displayName='Tab.Close';var JE=Zy(O_,{Button:N_,Close:D_}),fI=(0,te.forwardRef)(({values:e,onReorder:t,children:r,className:n,...i},o)=>(0,Y.jsx)(vE.Group,{...i,ref:o,values:e,onReorder:t,axis:'x',role:'tablist',className:gn('graphiql-tabs',n),children:r}));fI.displayName='Tabs';var L_=_u('HistoryContext');function P_(e){ + var t;let r=Pl(),n=(0,te.useRef)(new OA(r||new dp(null),e.maxHistoryLength||_Ee)),[i,o]=(0,te.useState)(((t=n.current)==null?void 0:t.queries)||[]),s=(0,te.useCallback)(g=>{ + var y;(y=n.current)==null||y.updateHistory(g),o(n.current.queries); + },[]),l=(0,te.useCallback)((g,y)=>{ + n.current.editLabel(g,y),o(n.current.queries); + },[]),c=(0,te.useCallback)(g=>{ + n.current.toggleFavorite(g),o(n.current.queries); + },[]),f=(0,te.useCallback)(g=>g,[]),m=(0,te.useCallback)((g,y=!1)=>{ + n.current.deleteHistory(g,y),o(n.current.queries); + },[]),v=(0,te.useMemo)(()=>({addToHistory:s,editLabel:l,items:i,toggleFavorite:c,setActive:f,deleteFromHistory:m}),[s,l,i,c,f,m]);return(0,Y.jsx)(L_.Provider,{value:v,children:e.children}); +}oe(P_,'HistoryContextProvider');var _E=$u(L_),_Ee=20;function R_(){ + let{items:e,deleteFromHistory:t}=_E({nonNull:!0}),r=e.slice().map((l,c)=>({...l,index:c})).reverse(),n=r.filter(l=>l.favorite);n.length&&(r=r.filter(l=>!l.favorite));let[i,o]=(0,te.useState)(null);(0,te.useEffect)(()=>{ + i&&setTimeout(()=>{ + o(null); + },2e3); + },[i]);let s=(0,te.useCallback)(()=>{ + try{ + for(let l of r)t(l,!0);o('success'); + }catch{ + o('error'); + } + },[t,r]);return(0,Y.jsxs)('section',{'aria-label':'History',className:'graphiql-history',children:[(0,Y.jsxs)('div',{className:'graphiql-history-header',children:['History',(i||r.length>0)&&(0,Y.jsx)(aa,{type:'button',state:i||void 0,disabled:!r.length,onClick:s,children:{success:'Cleared',error:'Failed to Clear'}[i]||'Clear'})]}),!!n.length&&(0,Y.jsx)('ul',{className:'graphiql-history-items',children:n.map(l=>(0,Y.jsx)(By,{item:l},l.index))}),!!n.length&&!!r.length&&(0,Y.jsx)('div',{className:'graphiql-history-item-spacer'}),!!r.length&&(0,Y.jsx)('ul',{className:'graphiql-history-items',children:r.map(l=>(0,Y.jsx)(By,{item:l},l.index))})]}); +}oe(R_,'History');function By(e){ + let{editLabel:t,toggleFavorite:r,deleteFromHistory:n,setActive:i}=_E({nonNull:!0,caller:By}),{headerEditor:o,queryEditor:s,variableEditor:l}=$r({nonNull:!0,caller:By}),c=(0,te.useRef)(null),f=(0,te.useRef)(null),[m,v]=(0,te.useState)(!1);(0,te.useEffect)(()=>{ + var C;m&&((C=c.current)==null||C.focus()); + },[m]);let g=e.item.label||e.item.operationName||M_(e.item.query),y=(0,te.useCallback)(()=>{ + var C;v(!1);let{index:x,...k}=e.item;t({...k,label:(C=c.current)==null?void 0:C.value},x); + },[t,e.item]),w=(0,te.useCallback)(()=>{ + v(!1); + },[]),T=(0,te.useCallback)(C=>{ + C.stopPropagation(),v(!0); + },[]),S=(0,te.useCallback)(()=>{ + let{query:C,variables:x,headers:k}=e.item;s?.setValue(C??''),l?.setValue(x??''),o?.setValue(k??''),i(e.item); + },[o,e.item,s,i,l]),A=(0,te.useCallback)(C=>{ + C.stopPropagation(),n(e.item); + },[e.item,n]),b=(0,te.useCallback)(C=>{ + C.stopPropagation(),r(e.item); + },[e.item,r]);return(0,Y.jsx)('li',{className:gn('graphiql-history-item',m&&'editable'),children:m?(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)('input',{type:'text',defaultValue:e.item.label,ref:c,onKeyDown:C=>{ + C.key==='Esc'?v(!1):C.key==='Enter'&&(v(!1),t({...e.item,label:C.currentTarget.value})); + },placeholder:'Type a label'}),(0,Y.jsx)(pn,{type:'button',ref:f,onClick:y,children:'Save'}),(0,Y.jsx)(pn,{type:'button',ref:f,onClick:w,children:(0,Y.jsx)(cI,{})})]}):(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(ti,{label:'Set active',children:(0,Y.jsx)(pn,{type:'button',className:'graphiql-history-item-label',onClick:S,'aria-label':'Set active',children:g})}),(0,Y.jsx)(ti,{label:'Edit label',children:(0,Y.jsx)(pn,{type:'button',className:'graphiql-history-item-action',onClick:T,'aria-label':'Edit label',children:(0,Y.jsx)(HEe,{'aria-hidden':'true'})})}),(0,Y.jsx)(ti,{label:e.item.favorite?'Remove favorite':'Add favorite',children:(0,Y.jsx)(pn,{type:'button',className:'graphiql-history-item-action',onClick:b,'aria-label':e.item.favorite?'Remove favorite':'Add favorite',children:e.item.favorite?(0,Y.jsx)(YEe,{'aria-hidden':'true'}):(0,Y.jsx)(KEe,{'aria-hidden':'true'})})}),(0,Y.jsx)(ti,{label:'Delete from history',children:(0,Y.jsx)(pn,{type:'button',className:'graphiql-history-item-action',onClick:A,'aria-label':'Delete from history',children:(0,Y.jsx)(ZEe,{'aria-hidden':'true'})})})]})}); +}oe(By,'HistoryItem');function M_(e){ + return e?.split(` +`).map(t=>t.replace(/#(.*)/,'')).join(' ').replaceAll('{',' { ').replaceAll('}',' } ').replaceAll(/[\s]{2,}/g,' '); +}oe(M_,'formatQuery');var I_=_u('ExecutionContext');function GE({fetcher:e,getDefaultFieldNames:t,children:r,operationName:n}){ + if(!e)throw new TypeError('The `ExecutionContextProvider` component requires a `fetcher` function to be passed as prop.');let{externalFragments:i,headerEditor:o,queryEditor:s,responseEditor:l,variableEditor:c,updateActiveTabValues:f}=$r({nonNull:!0,caller:GE}),m=_E(),v=WE({getDefaultFieldNames:t,caller:GE}),[g,y]=(0,te.useState)(!1),[w,T]=(0,te.useState)(null),S=(0,te.useRef)(0),A=(0,te.useCallback)(()=>{ + w?.unsubscribe(),y(!1),T(null); + },[w]),b=(0,te.useCallback)(async()=>{ + if(!s||!l)return;if(w){ + A();return; + }let k=oe(U=>{ + l.setValue(U),f({response:U}); + },'setResponse');S.current+=1;let P=S.current,D=v()||s.getValue(),N=c?.getValue(),I;try{ + I=oI({json:N,errorMessageParse:'Variables are invalid JSON',errorMessageType:'Variables are not a JSON object.'}); + }catch(U){ + k(U instanceof Error?U.message:`${U}`);return; + }let V=o?.getValue(),G;try{ + G=oI({json:V,errorMessageParse:'Headers are invalid JSON',errorMessageType:'Headers are not a JSON object.'}); + }catch(U){ + k(U instanceof Error?U.message:`${U}`);return; + }if(i){ + let U=s.documentAST?UA(s.documentAST,i):[];U.length>0&&(D+=` `+U.map(z=>(0,$e.print)(z)).join(` -`))}k(""),y(!0);let B=n??s.operationName??void 0;m?.addToHistory({query:D,variables:N,headers:V,operationName:B});try{let U={data:{}},z=oe(K=>{if(P!==S.current)return;let ee=Array.isArray(K)?K:!1;if(!ee&&typeof K=="object"&&K!==null&&"hasNext"in K&&(ee=[K]),ee){let re={data:U.data},se=[...U?.errors||[],...ee.flatMap(xe=>xe.errors).filter(Boolean)];se.length&&(re.errors=se);for(let xe of ee){let{path:Re,data:Se,errors:ie,...ye}=xe;if(Re){if(!Se)throw new Error(`Expected part to contain a data property, but got ${xe}`);(0,u_.default)(re.data,Re,Se,{merge:!0})}else Se&&(re.data=Se);U={...re,...ye}}y(!1),k(SA(U))}else{let re=SA(K);y(!1),k(re)}},"handleResponse"),j=e({query:D,variables:I,operationName:B},{headers:G??void 0,documentAST:s.documentAST??void 0}),J=await Promise.resolve(j);if(YN(J))T(J.subscribe({next(K){z(K)},error(K){y(!1),K&&k(fp(K)),T(null)},complete(){y(!1),T(null)}}));else if(KN(J)){T({unsubscribe:()=>{var K,ee;return(ee=(K=J[Symbol.asyncIterator]()).return)==null?void 0:ee.call(K)}});for await(let K of J)z(K);y(!1),T(null)}else z(J)}catch(U){y(!1),k(fp(U)),T(null)}},[v,i,e,o,m,n,s,l,A,w,f,c]),C=!!w,x=(0,te.useMemo)(()=>({isFetching:g,isSubscribed:C,operationName:n??null,run:b,stop:A}),[g,C,n,b,A]);return(0,Y.jsx)(I_.Provider,{value:x,children:r})}oe(GE,"ExecutionContextProvider");var ec=$u(I_);function oI({json:e,errorMessageParse:t,errorMessageType:r}){let n;try{n=e&&e.trim()!==""?JSON.parse(e):void 0}catch(o){throw new Error(`${t}: ${o instanceof Error?o.message:o}.`)}let i=typeof n=="object"&&n!==null&&!Array.isArray(n);if(n!==void 0&&!i)throw new Error(r);return n}oe(oI,"tryParseJsonObject");var $E="graphiql",eT="sublime",F_=!1;typeof window=="object"&&(F_=window.navigator.platform.toLowerCase().indexOf("mac")===0);var tT={[F_?"Cmd-F":"Ctrl-F"]:"findPersistent","Cmd-G":"findPersistent","Ctrl-G":"findPersistent","Ctrl-Left":"goSubwordLeft","Ctrl-Right":"goSubwordRight","Alt-Left":"goGroupLeft","Alt-Right":"goGroupRight"};async function nh(e,t){let r=await Promise.resolve().then(()=>(ia(),FZ)).then(n=>n.c).then(n=>typeof n=="function"?n:n.default);return await Promise.all(t?.useCommonAddons===!1?e:[Promise.resolve().then(()=>(OM(),VZ)).then(n=>n.s),Promise.resolve().then(()=>(HZ(),zZ)).then(n=>n.m),Promise.resolve().then(()=>(KZ(),YZ)).then(n=>n.c),Promise.resolve().then(()=>(LM(),DM)).then(n=>n.b),Promise.resolve().then(()=>(RM(),PM)).then(n=>n.f),Promise.resolve().then(()=>(iJ(),nJ)).then(n=>n.l),Promise.resolve().then(()=>(IM(),MM)).then(n=>n.s),Promise.resolve().then(()=>(jM(),qM)).then(n=>n.j),Promise.resolve().then(()=>(ky(),FM)).then(n=>n.d),Promise.resolve().then(()=>(UM(),VM)).then(n=>n.s),...e]),r}oe(nh,"importCodeMirror");var $Ee=oe(e=>e?(0,$e.print)(e):"","printDefault");function dI({field:e}){if(!("defaultValue"in e)||e.defaultValue===void 0)return null;let t=(0,$e.astFromValue)(e.defaultValue,e.type);return t?(0,Y.jsxs)(Y.Fragment,{children:[" = ",(0,Y.jsx)("span",{className:"graphiql-doc-explorer-default-value",children:$Ee(t)})]}):null}oe(dI,"DefaultValue");var q_=_u("SchemaContext");function pI(e){if(!e.fetcher)throw new TypeError("The `SchemaContextProvider` component requires a `fetcher` function to be passed as prop.");let{initialHeaders:t,headerEditor:r}=$r({nonNull:!0,caller:pI}),[n,i]=(0,te.useState)(),[o,s]=(0,te.useState)(!1),[l,c]=(0,te.useState)(null),f=(0,te.useRef)(0);(0,te.useEffect)(()=>{i((0,$e.isSchema)(e.schema)||e.schema===null||e.schema===void 0?e.schema:void 0),f.current++},[e.schema]);let m=(0,te.useRef)(t);(0,te.useEffect)(()=>{r&&(m.current=r.getValue())});let{introspectionQuery:v,introspectionQueryName:g,introspectionQuerySansSubscriptions:y}=j_({inputValueDeprecation:e.inputValueDeprecation,introspectionQueryName:e.introspectionQueryName,schemaDescription:e.schemaDescription}),{fetcher:w,onSchemaChange:T,dangerouslyAssumeSchemaIsValid:S,children:A}=e,b=(0,te.useCallback)(()=>{if((0,$e.isSchema)(e.schema)||e.schema===null)return;let k=++f.current,P=e.schema;async function D(){if(P)return P;let N=V_(m.current);if(!N.isValidJSON){c("Introspection failed as headers are invalid.");return}let I=N.headers?{headers:N.headers}:{},V=XN(w({query:v,operationName:g},I));if(!WN(V)){c("Fetcher did not return a Promise for introspection.");return}s(!0),c(null);let G=await V;if(typeof G!="object"||G===null||!("data"in G)){let U=XN(w({query:y,operationName:g},I));if(!WN(U))throw new Error("Fetcher did not return a Promise for introspection.");G=await U}if(s(!1),G!=null&&G.data&&"__schema"in G.data)return G.data;let B=typeof G=="string"?G:SA(G);c(B)}oe(D,"fetchIntrospectionData"),D().then(N=>{if(!(k!==f.current||!N))try{let I=(0,$e.buildClientSchema)(N);i(I),T?.(I)}catch(I){c(fp(I))}}).catch(N=>{k===f.current&&(c(fp(N)),s(!1))})},[w,g,v,y,T,e.schema]);(0,te.useEffect)(()=>{b()},[b]),(0,te.useEffect)(()=>{function k(P){P.ctrlKey&&P.key==="R"&&b()}return oe(k,"triggerIntrospection"),window.addEventListener("keydown",k),()=>window.removeEventListener("keydown",k)});let C=(0,te.useMemo)(()=>!n||S?[]:(0,$e.validateSchema)(n),[n,S]),x=(0,te.useMemo)(()=>({fetchError:l,introspect:b,isFetching:o,schema:n,validationErrors:C}),[l,b,o,n,C]);return(0,Y.jsx)(q_.Provider,{value:x,children:A})}oe(pI,"SchemaContextProvider");var So=$u(q_);function j_({inputValueDeprecation:e,introspectionQueryName:t,schemaDescription:r}){return(0,te.useMemo)(()=>{let n=t||"IntrospectionQuery",i=(0,$e.getIntrospectionQuery)({inputValueDeprecation:e,schemaDescription:r});t&&(i=i.replace("query IntrospectionQuery",`query ${n}`));let o=i.replace("subscriptionType { name }","");return{introspectionQueryName:n,introspectionQuery:i,introspectionQuerySansSubscriptions:o}},[e,t,r])}oe(j_,"useIntrospectionQuery");function V_(e){let t=null,r=!0;try{e&&(t=JSON.parse(e))}catch{r=!1}return{headers:t,isValidJSON:r}}oe(V_,"parseHeaderString");var FE={name:"Docs"},U_=_u("ExplorerContext");function mI(e){let{schema:t,validationErrors:r}=So({nonNull:!0,caller:mI}),[n,i]=(0,te.useState)([FE]),o=(0,te.useCallback)(f=>{i(m=>m.at(-1).def===f.def?m:[...m,f])},[]),s=(0,te.useCallback)(()=>{i(f=>f.length>1?f.slice(0,-1):f)},[]),l=(0,te.useCallback)(()=>{i(f=>f.length===1?f:[FE])},[]);(0,te.useEffect)(()=>{t==null||r.length>0?l():i(f=>{if(f.length===1)return f;let m=[FE],v=null;for(let g of f)if(g!==FE)if(g.def)if((0,$e.isNamedType)(g.def)){let y=t.getType(g.def.name);if(y)m.push({name:g.name,def:y}),v=y;else break}else{if(v===null)break;if((0,$e.isObjectType)(v)||(0,$e.isInputObjectType)(v)){let y=v.getFields()[g.name];if(y)m.push({name:g.name,def:y});else break}else{if((0,$e.isScalarType)(v)||(0,$e.isEnumType)(v)||(0,$e.isInterfaceType)(v)||(0,$e.isUnionType)(v))break;{let y=v;if(y.args.find(w=>w.name===g.name))m.push({name:g.name,def:y});else break}}}else v=null,m.push(g);return m})},[l,t,r]);let c=(0,te.useMemo)(()=>({explorerNavStack:n,push:o,pop:s,reset:l}),[n,o,s,l]);return(0,Y.jsx)(U_.Provider,{value:c,children:e.children})}oe(mI,"ExplorerContextProvider");var tc=$u(U_);function Gy(e,t){return(0,$e.isNonNullType)(e)?(0,Y.jsxs)(Y.Fragment,{children:[Gy(e.ofType,t),"!"]}):(0,$e.isListType)(e)?(0,Y.jsxs)(Y.Fragment,{children:["[",Gy(e.ofType,t),"]"]}):t(e)}oe(Gy,"renderType");function Ga(e){let{push:t}=tc({nonNull:!0,caller:Ga});return e.type?Gy(e.type,r=>(0,Y.jsx)("a",{className:"graphiql-doc-explorer-type-name",onClick:n=>{n.preventDefault(),t({name:r.name,def:r})},href:"#",children:r.name})):null}oe(Ga,"TypeLink");function zy({arg:e,showDefaultValue:t,inline:r}){let n=(0,Y.jsxs)("span",{children:[(0,Y.jsx)("span",{className:"graphiql-doc-explorer-argument-name",children:e.name}),": ",(0,Y.jsx)(Ga,{type:e.type}),t!==!1&&(0,Y.jsx)(dI,{field:e})]});return r?n:(0,Y.jsxs)("div",{className:"graphiql-doc-explorer-argument",children:[n,e.description?(0,Y.jsx)(js,{type:"description",children:e.description}):null,e.deprecationReason?(0,Y.jsxs)("div",{className:"graphiql-doc-explorer-argument-deprecation",children:[(0,Y.jsx)("div",{className:"graphiql-doc-explorer-argument-deprecation-label",children:"Deprecated"}),(0,Y.jsx)(js,{type:"deprecation",children:e.deprecationReason})]}):null]})}oe(zy,"Argument");function hI(e){return e.children?(0,Y.jsxs)("div",{className:"graphiql-doc-explorer-deprecation",children:[(0,Y.jsx)("div",{className:"graphiql-doc-explorer-deprecation-label",children:"Deprecated"}),(0,Y.jsx)(js,{type:"deprecation",onlyShowFirstChild:e.preview??!0,children:e.children})]}):null}oe(hI,"DeprecationReason");function B_({directive:e}){return(0,Y.jsxs)("span",{className:"graphiql-doc-explorer-directive",children:["@",e.name.value]})}oe(B_,"Directive");function Co(e){let t=eTe[e.title];return(0,Y.jsxs)("div",{children:[(0,Y.jsxs)("div",{className:"graphiql-doc-explorer-section-title",children:[(0,Y.jsx)(t,{}),e.title]}),(0,Y.jsx)("div",{className:"graphiql-doc-explorer-section-content",children:e.children})]})}oe(Co,"ExplorerSection");var eTe={Arguments:LEe,"Deprecated Arguments":REe,"Deprecated Enum Values":MEe,"Deprecated Fields":IEe,Directives:FEe,"Enum Values":VEe,Fields:UEe,Implements:GEe,Implementations:IE,"Possible Types":IE,"Root Types":WEe,Type:IE,"All Schema Types":IE};function G_(e){return(0,Y.jsxs)(Y.Fragment,{children:[e.field.description?(0,Y.jsx)(js,{type:"description",children:e.field.description}):null,(0,Y.jsx)(hI,{preview:!1,children:e.field.deprecationReason}),(0,Y.jsx)(Co,{title:"Type",children:(0,Y.jsx)(Ga,{type:e.field.type})}),(0,Y.jsx)(z_,{field:e.field}),(0,Y.jsx)(H_,{field:e.field})]})}oe(G_,"FieldDocumentation");function z_({field:e}){let[t,r]=(0,te.useState)(!1),n=(0,te.useCallback)(()=>{r(!0)},[]);if(!("args"in e))return null;let i=[],o=[];for(let s of e.args)s.deprecationReason?o.push(s):i.push(s);return(0,Y.jsxs)(Y.Fragment,{children:[i.length>0?(0,Y.jsx)(Co,{title:"Arguments",children:i.map(s=>(0,Y.jsx)(zy,{arg:s},s.name))}):null,o.length>0?t||i.length===0?(0,Y.jsx)(Co,{title:"Deprecated Arguments",children:o.map(s=>(0,Y.jsx)(zy,{arg:s},s.name))}):(0,Y.jsx)(aa,{type:"button",onClick:n,children:"Show Deprecated Arguments"}):null]})}oe(z_,"Arguments");function H_({field:e}){var t;let r=((t=e.astNode)==null?void 0:t.directives)||[];return!r||r.length===0?null:(0,Y.jsx)(Co,{title:"Directives",children:r.map(n=>(0,Y.jsx)("div",{children:(0,Y.jsx)(B_,{directive:n})},n.name.value))})}oe(H_,"Directives");function Q_(e){var t,r,n,i;let o=e.schema.getQueryType(),s=(r=(t=e.schema).getMutationType)==null?void 0:r.call(t),l=(i=(n=e.schema).getSubscriptionType)==null?void 0:i.call(n),c=e.schema.getTypeMap(),f=[o?.name,s?.name,l?.name];return(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(js,{type:"description",children:e.schema.description||"A GraphQL schema provides a root type for each kind of operation."}),(0,Y.jsxs)(Co,{title:"Root Types",children:[o?(0,Y.jsxs)("div",{children:[(0,Y.jsx)("span",{className:"graphiql-doc-explorer-root-type",children:"query"}),": ",(0,Y.jsx)(Ga,{type:o})]}):null,s&&(0,Y.jsxs)("div",{children:[(0,Y.jsx)("span",{className:"graphiql-doc-explorer-root-type",children:"mutation"}),": ",(0,Y.jsx)(Ga,{type:s})]}),l&&(0,Y.jsxs)("div",{children:[(0,Y.jsx)("span",{className:"graphiql-doc-explorer-root-type",children:"subscription"}),": ",(0,Y.jsx)(Ga,{type:l})]})]}),(0,Y.jsx)(Co,{title:"All Schema Types",children:c&&(0,Y.jsx)("div",{children:Object.values(c).map(m=>f.includes(m.name)||m.name.startsWith("__")?null:(0,Y.jsx)("div",{children:(0,Y.jsx)(Ga,{type:m})},m.name))})})]})}oe(Q_,"SchemaDocumentation");function _f(e,t){let r;return function(...n){r&&window.clearTimeout(r),r=window.setTimeout(()=>{r=null,t(...n)},e)}}oe(_f,"debounce");function vI(){let{explorerNavStack:e,push:t}=tc({nonNull:!0,caller:vI}),r=(0,te.useRef)(null),n=zE(),[i,o]=(0,te.useState)(""),[s,l]=(0,te.useState)(n(i)),c=(0,te.useMemo)(()=>_f(200,y=>{l(n(y))}),[n]);(0,te.useEffect)(()=>{c(i)},[c,i]),(0,te.useEffect)(()=>{function y(w){var T;w.metaKey&&w.key==="k"&&((T=r.current)==null||T.focus())}return oe(y,"handleKeyDown"),window.addEventListener("keydown",y),()=>window.removeEventListener("keydown",y)},[]);let f=e.at(-1),m=(0,te.useCallback)(y=>{t("field"in y?{name:y.field.name,def:y.field}:{name:y.type.name,def:y.type})},[t]),v=(0,te.useRef)(!1),g=(0,te.useCallback)(y=>{v.current=y.type==="focus"},[]);return e.length===1||(0,$e.isObjectType)(f.def)||(0,$e.isInterfaceType)(f.def)||(0,$e.isInputObjectType)(f.def)?(0,Y.jsxs)(Hf,{as:"div",className:"graphiql-doc-explorer-search",onChange:m,"data-state":v?void 0:"idle","aria-label":`Search ${f.name}...`,children:[(0,Y.jsxs)("div",{className:"graphiql-doc-explorer-search-input",onClick:()=>{var y;(y=r.current)==null||y.focus()},children:[(0,Y.jsx)(zEe,{}),(0,Y.jsx)(Hf.Input,{autoComplete:"off",onFocus:g,onBlur:g,onChange:y=>o(y.target.value),placeholder:"\u2318 K",ref:r,value:i,"data-cy":"doc-explorer-input"})]}),v.current&&(0,Y.jsxs)(Hf.Options,{"data-cy":"doc-explorer-list",children:[s.within.length+s.types.length+s.fields.length===0?(0,Y.jsx)("li",{className:"graphiql-doc-explorer-search-empty",children:"No results found"}):s.within.map((y,w)=>(0,Y.jsx)(Hf.Option,{value:y,"data-cy":"doc-explorer-option",children:(0,Y.jsx)(aI,{field:y.field,argument:y.argument})},`within-${w}`)),s.within.length>0&&s.types.length+s.fields.length>0?(0,Y.jsx)("div",{className:"graphiql-doc-explorer-search-divider",children:"Other results"}):null,s.types.map((y,w)=>(0,Y.jsx)(Hf.Option,{value:y,"data-cy":"doc-explorer-option",children:(0,Y.jsx)(HE,{type:y.type})},`type-${w}`)),s.fields.map((y,w)=>(0,Y.jsxs)(Hf.Option,{value:y,"data-cy":"doc-explorer-option",children:[(0,Y.jsx)(HE,{type:y.type}),".",(0,Y.jsx)(aI,{field:y.field,argument:y.argument})]},`field-${w}`))]})]}):null}oe(vI,"Search");function zE(e){let{explorerNavStack:t}=tc({nonNull:!0,caller:e||zE}),{schema:r}=So({nonNull:!0,caller:e||zE}),n=t.at(-1);return(0,te.useCallback)(i=>{let o={within:[],types:[],fields:[]};if(!r)return o;let s=n.def,l=r.getTypeMap(),c=Object.keys(l);s&&(c=c.filter(f=>f!==s.name),c.unshift(s.name));for(let f of c){if(o.within.length+o.types.length+o.fields.length>=100)break;let m=l[f];if(s!==m&&VE(f,i)&&o.types.push({type:m}),!(0,$e.isObjectType)(m)&&!(0,$e.isInterfaceType)(m)&&!(0,$e.isInputObjectType)(m))continue;let v=m.getFields();for(let g in v){let y=v[g],w;if(!VE(g,i))if("args"in y){if(w=y.args.filter(T=>VE(T.name,i)),w.length===0)continue}else continue;o[s===m?"within":"fields"].push(...w?w.map(T=>({type:m,field:y,argument:T})):[{type:m,field:y}])}}return o},[n.def,r])}oe(zE,"useSearchResults");function VE(e,t){try{let r=t.replaceAll(/[^_0-9A-Za-z]/g,n=>"\\"+n);return e.search(new RegExp(r,"i"))!==-1}catch{return e.toLowerCase().includes(t.toLowerCase())}}oe(VE,"isMatch");function HE(e){return(0,Y.jsx)("span",{className:"graphiql-doc-explorer-search-type",children:e.type.name})}oe(HE,"Type");function aI({field:e,argument:t}){return(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)("span",{className:"graphiql-doc-explorer-search-field",children:e.name}),t?(0,Y.jsxs)(Y.Fragment,{children:["(",(0,Y.jsx)("span",{className:"graphiql-doc-explorer-search-argument",children:t.name}),":"," ",Gy(t.type,r=>(0,Y.jsx)(HE,{type:r})),")"]}):null]})}oe(aI,"Field$1");function W_(e){let{push:t}=tc({nonNull:!0});return(0,Y.jsx)("a",{className:"graphiql-doc-explorer-field-name",onClick:r=>{r.preventDefault(),t({name:e.field.name,def:e.field})},href:"#",children:e.field.name})}oe(W_,"FieldLink");function Y_(e){return(0,$e.isNamedType)(e.type)?(0,Y.jsxs)(Y.Fragment,{children:[e.type.description?(0,Y.jsx)(js,{type:"description",children:e.type.description}):null,(0,Y.jsx)(K_,{type:e.type}),(0,Y.jsx)(X_,{type:e.type}),(0,Y.jsx)(Z_,{type:e.type}),(0,Y.jsx)(J_,{type:e.type})]}):null}oe(Y_,"TypeDocumentation");function K_({type:e}){return(0,$e.isObjectType)(e)&&e.getInterfaces().length>0?(0,Y.jsx)(Co,{title:"Implements",children:e.getInterfaces().map(t=>(0,Y.jsx)("div",{children:(0,Y.jsx)(Ga,{type:t})},t.name))}):null}oe(K_,"ImplementsInterfaces");function X_({type:e}){let[t,r]=(0,te.useState)(!1),n=(0,te.useCallback)(()=>{r(!0)},[]);if(!(0,$e.isObjectType)(e)&&!(0,$e.isInterfaceType)(e)&&!(0,$e.isInputObjectType)(e))return null;let i=e.getFields(),o=[],s=[];for(let l of Object.keys(i).map(c=>i[c]))l.deprecationReason?s.push(l):o.push(l);return(0,Y.jsxs)(Y.Fragment,{children:[o.length>0?(0,Y.jsx)(Co,{title:"Fields",children:o.map(l=>(0,Y.jsx)(sI,{field:l},l.name))}):null,s.length>0?t||o.length===0?(0,Y.jsx)(Co,{title:"Deprecated Fields",children:s.map(l=>(0,Y.jsx)(sI,{field:l},l.name))}):(0,Y.jsx)(aa,{type:"button",onClick:n,children:"Show Deprecated Fields"}):null]})}oe(X_,"Fields");function sI({field:e}){let t="args"in e?e.args.filter(r=>!r.deprecationReason):[];return(0,Y.jsxs)("div",{className:"graphiql-doc-explorer-item",children:[(0,Y.jsxs)("div",{children:[(0,Y.jsx)(W_,{field:e}),t.length>0?(0,Y.jsxs)(Y.Fragment,{children:["(",(0,Y.jsx)("span",{children:t.map(r=>t.length===1?(0,Y.jsx)(zy,{arg:r,inline:!0},r.name):(0,Y.jsx)("div",{className:"graphiql-doc-explorer-argument-multiple",children:(0,Y.jsx)(zy,{arg:r,inline:!0})},r.name))}),")"]}):null,": ",(0,Y.jsx)(Ga,{type:e.type}),(0,Y.jsx)(dI,{field:e})]}),e.description?(0,Y.jsx)(js,{type:"description",onlyShowFirstChild:!0,children:e.description}):null,(0,Y.jsx)(hI,{children:e.deprecationReason})]})}oe(sI,"Field");function Z_({type:e}){let[t,r]=(0,te.useState)(!1),n=(0,te.useCallback)(()=>{r(!0)},[]);if(!(0,$e.isEnumType)(e))return null;let i=[],o=[];for(let s of e.getValues())s.deprecationReason?o.push(s):i.push(s);return(0,Y.jsxs)(Y.Fragment,{children:[i.length>0?(0,Y.jsx)(Co,{title:"Enum Values",children:i.map(s=>(0,Y.jsx)(lI,{value:s},s.name))}):null,o.length>0?t||i.length===0?(0,Y.jsx)(Co,{title:"Deprecated Enum Values",children:o.map(s=>(0,Y.jsx)(lI,{value:s},s.name))}):(0,Y.jsx)(aa,{type:"button",onClick:n,children:"Show Deprecated Values"}):null]})}oe(Z_,"EnumValues");function lI({value:e}){return(0,Y.jsxs)("div",{className:"graphiql-doc-explorer-item",children:[(0,Y.jsx)("div",{className:"graphiql-doc-explorer-enum-value",children:e.name}),e.description?(0,Y.jsx)(js,{type:"description",children:e.description}):null,e.deprecationReason?(0,Y.jsx)(js,{type:"deprecation",children:e.deprecationReason}):null]})}oe(lI,"EnumValue");function J_({type:e}){let{schema:t}=So({nonNull:!0});return!t||!(0,$e.isAbstractType)(e)?null:(0,Y.jsx)(Co,{title:(0,$e.isInterfaceType)(e)?"Implementations":"Possible Types",children:t.getPossibleTypes(e).map(r=>(0,Y.jsx)("div",{children:(0,Y.jsx)(Ga,{type:r})},r.name))})}oe(J_,"PossibleTypes");function QE(){let{fetchError:e,isFetching:t,schema:r,validationErrors:n}=So({nonNull:!0,caller:QE}),{explorerNavStack:i,pop:o}=tc({nonNull:!0,caller:QE}),s=i.at(-1),l=null;e?l=(0,Y.jsx)("div",{className:"graphiql-doc-explorer-error",children:"Error fetching schema"}):n.length>0?l=(0,Y.jsxs)("div",{className:"graphiql-doc-explorer-error",children:["Schema is invalid: ",n[0].message]}):t?l=(0,Y.jsx)(ZE,{}):r?i.length===1?l=(0,Y.jsx)(Q_,{schema:r}):(0,$e.isType)(s.def)?l=(0,Y.jsx)(Y_,{type:s.def}):s.def&&(l=(0,Y.jsx)(G_,{field:s.def})):l=(0,Y.jsx)("div",{className:"graphiql-doc-explorer-error",children:"No GraphQL schema available"});let c;return i.length>1&&(c=i.at(-2).name),(0,Y.jsxs)("section",{className:"graphiql-doc-explorer","aria-label":"Documentation Explorer",children:[(0,Y.jsxs)("div",{className:"graphiql-doc-explorer-header",children:[(0,Y.jsxs)("div",{className:"graphiql-doc-explorer-header-content",children:[c&&(0,Y.jsxs)("a",{href:"#",className:"graphiql-doc-explorer-back",onClick:f=>{f.preventDefault(),o()},"aria-label":`Go back to ${c}`,children:[(0,Y.jsx)(PEe,{}),c]}),(0,Y.jsx)("div",{className:"graphiql-doc-explorer-title",children:s.name})]}),(0,Y.jsx)(vI,{},s.name)]}),(0,Y.jsx)("div",{className:"graphiql-doc-explorer-content",children:l})]})}oe(QE,"DocExplorer");var Hy={title:"Documentation Explorer",icon:oe(function(){let e=Jy();return e?.visiblePlugin===Hy?(0,Y.jsx)(qEe,{}):(0,Y.jsx)(jEe,{})},"Icon"),content:QE},s_={title:"History",icon:BEe,content:R_},__=_u("PluginContext");function $_(e){let t=Pl(),r=tc(),n=_E(),i=!!r,o=!!n,s=(0,te.useMemo)(()=>{let y=[],w={};i&&(y.push(Hy),w[Hy.title]=!0),o&&(y.push(s_),w[s_.title]=!0);for(let T of e.plugins||[]){if(typeof T.title!="string"||!T.title)throw new Error("All GraphiQL plugins must have a unique title");if(w[T.title])throw new Error(`All GraphiQL plugins must have a unique title, found two plugins with the title '${T.title}'`);y.push(T),w[T.title]=!0}return y},[i,o,e.plugins]),[l,c]=(0,te.useState)(()=>{let y=t?.get(l_);return s.find(T=>T.title===y)||(y&&t?.set(l_,""),e.visiblePlugin&&s.find(T=>(typeof e.visiblePlugin=="string"?T.title:T)===e.visiblePlugin)||null)}),{onTogglePluginVisibility:f,children:m}=e,v=(0,te.useCallback)(y=>{let w=y&&s.find(T=>(typeof y=="string"?T.title:T)===y)||null;c(T=>w===T?T:(f?.(w),w))},[f,s]);(0,te.useEffect)(()=>{e.visiblePlugin&&v(e.visiblePlugin)},[s,e.visiblePlugin,v]);let g=(0,te.useMemo)(()=>({plugins:s,setVisiblePlugin:v,visiblePlugin:l}),[s,v,l]);return(0,Y.jsx)(__.Provider,{value:g,children:m})}oe($_,"PluginContextProvider");var Jy=$u(__),l_="visiblePlugin";function e$(e,t,r,n,i,o){nh([],{useCommonAddons:!1}).then(l=>{let c,f,m,v,g,y,w,T,S;l.on(t,"select",(A,b)=>{if(!c){let C=b.parentNode;c=document.createElement("div"),c.className="CodeMirror-hint-information",C.append(c);let x=document.createElement("header");x.className="CodeMirror-hint-information-header",c.append(x),f=document.createElement("span"),f.className="CodeMirror-hint-information-field-name",x.append(f),m=document.createElement("span"),m.className="CodeMirror-hint-information-type-name-pill",x.append(m),v=document.createElement("span"),m.append(v),g=document.createElement("a"),g.className="CodeMirror-hint-information-type-name",g.href="javascript:void 0",g.addEventListener("click",s),m.append(g),y=document.createElement("span"),m.append(y),w=document.createElement("div"),w.className="CodeMirror-hint-information-description",c.append(w),T=document.createElement("div"),T.className="CodeMirror-hint-information-deprecation",c.append(T);let k=document.createElement("span");k.className="CodeMirror-hint-information-deprecation-label",k.textContent="Deprecated",T.append(k),S=document.createElement("div"),S.className="CodeMirror-hint-information-deprecation-reason",T.append(S);let P=parseInt(window.getComputedStyle(c).paddingBottom.replace(/px$/,""),10)||0,D=parseInt(window.getComputedStyle(c).maxHeight.replace(/px$/,""),10)||0,N=oe(()=>{c&&(c.style.paddingTop=C.scrollTop+P+"px",c.style.maxHeight=C.scrollTop+D+"px")},"handleScroll");C.addEventListener("scroll",N);let I;C.addEventListener("DOMNodeRemoved",I=oe(V=>{V.target===C&&(C.removeEventListener("scroll",N),C.removeEventListener("DOMNodeRemoved",I),c&&c.removeEventListener("click",s),c=null,f=null,m=null,v=null,g=null,y=null,w=null,T=null,S=null,I=null)},"onRemoveFn"))}if(f&&(f.textContent=A.text),m&&v&&g&&y)if(A.type){m.style.display="inline";let C=oe(x=>{(0,$e.isNonNullType)(x)?(y.textContent="!"+y.textContent,C(x.ofType)):(0,$e.isListType)(x)?(v.textContent+="[",y.textContent="]"+y.textContent,C(x.ofType)):g.textContent=x.name},"renderType");v.textContent="",y.textContent="",C(A.type)}else v.textContent="",g.textContent="",y.textContent="",m.style.display="none";w&&(A.description?(w.style.display="block",w.innerHTML=BE.render(A.description)):(w.style.display="none",w.innerHTML="")),T&&S&&(A.deprecationReason?(T.style.display="block",S.innerHTML=BE.render(A.deprecationReason)):(T.style.display="none",S.innerHTML=""))})});function s(l){if(!r||!n||!i||!(l.currentTarget instanceof HTMLElement))return;let c=l.currentTarget.textContent||"",f=r.getType(c);f&&(i.setVisiblePlugin(Hy),n.push({name:f.name,def:f}),o?.(f))}oe(s,"onClickHintInformation")}oe(e$,"onHasCompletion");function Uy(e,t){(0,te.useEffect)(()=>{e&&typeof t=="string"&&t!==e.getValue()&&e.setValue(t)},[e,t])}oe(Uy,"useSynchronizeValue");function _y(e,t,r){(0,te.useEffect)(()=>{e&&e.setOption(t,r)},[e,t,r])}oe(_y,"useSynchronizeOption");function gI(e,t,r,n,i){let{updateActiveTabValues:o}=$r({nonNull:!0,caller:i}),s=Pl();(0,te.useEffect)(()=>{if(!e)return;let l=_f(500,m=>{!s||r===null||s.set(r,m)}),c=_f(100,m=>{o({[n]:m})}),f=oe((m,v)=>{if(!v)return;let g=m.getValue();l(g),c(g),t?.(g)},"handleChange");return e.on("change",f),()=>e.off("change",f)},[t,e,s,r,n,o])}oe(gI,"useChangeHandler");function yI(e,t,r){let{schema:n}=So({nonNull:!0,caller:r}),i=tc(),o=Jy();(0,te.useEffect)(()=>{if(!e)return;let s=oe((l,c)=>{e$(l,c,n,i,o,f=>{t?.({kind:"Type",type:f,schema:n||void 0})})},"handleCompletion");return e.on("hasCompletion",s),()=>e.off("hasCompletion",s)},[t,e,i,o,n])}oe(yI,"useCompletion");function za(e,t,r){(0,te.useEffect)(()=>{if(e){for(let n of t)e.removeKeyMap(n);if(r){let n={};for(let i of t)n[i]=()=>r();e.addKeyMap(n)}}},[e,t,r])}oe(za,"useKeyMap");function $y({caller:e,onCopyQuery:t}={}){let{queryEditor:r}=$r({nonNull:!0,caller:e||$y});return(0,te.useCallback)(()=>{if(!r)return;let n=r.getValue();(0,c_.default)(n),t?.(n)},[r,t])}oe($y,"useCopyQuery");function Ju({caller:e}={}){let{queryEditor:t}=$r({nonNull:!0,caller:e||Ju}),{schema:r}=So({nonNull:!0,caller:Ju});return(0,te.useCallback)(()=>{let n=t?.documentAST,i=t?.getValue();!n||!i||t.setValue((0,$e.print)(G4(n,r)))},[t,r])}oe(Ju,"useMergeQuery");function ed({caller:e}={}){let{queryEditor:t,headerEditor:r,variableEditor:n}=$r({nonNull:!0,caller:e||ed});return(0,te.useCallback)(()=>{if(n){let i=n.getValue();try{let o=JSON.stringify(JSON.parse(i),null,2);o!==i&&n.setValue(o)}catch{}}if(r){let i=r.getValue();try{let o=JSON.stringify(JSON.parse(i),null,2);o!==i&&r.setValue(o)}catch{}}if(t){let i=t.getValue(),o=(0,$e.print)((0,$e.parse)(i));o!==i&&t.setValue(o)}},[t,n,r])}oe(ed,"usePrettifyEditors");function WE({getDefaultFieldNames:e,caller:t}={}){let{schema:r}=So({nonNull:!0,caller:t||WE}),{queryEditor:n}=$r({nonNull:!0,caller:t||WE});return(0,te.useCallback)(()=>{if(!n)return;let i=n.getValue(),{insertions:o,result:s}=V4(r,i,e);return o&&o.length>0&&n.operation(()=>{let l=n.getCursor(),c=n.indexFromPos(l);n.setValue(s||"");let f=0,m=o.map(({index:g,string:y})=>n.markText(n.posFromIndex(g+f),n.posFromIndex(g+(f+=y.length)),{className:"auto-inserted-leaf",clearOnEnter:!0,title:"Automatically added leaf fields"}));setTimeout(()=>{for(let g of m)g.clear()},7e3);let v=c;for(let{index:g,string:y}of o)ge?.setValue(n),[e]);return(0,te.useMemo)(()=>[t,r],[t,r])}oe(bI,"useOperationsEditorState");function tTe(){let{variableEditor:e}=$r({nonNull:!0}),t=e?.getValue()??"",r=(0,te.useCallback)(n=>e?.setValue(n),[e]);return(0,te.useMemo)(()=>[t,r],[t,r])}oe(tTe,"useVariablesEditorState");function rh({editorTheme:e=$E,keyMap:t=eT,onEdit:r,readOnly:n=!1}={},i){let{initialHeaders:o,headerEditor:s,setHeaderEditor:l,shouldPersistHeaders:c}=$r({nonNull:!0,caller:i||rh}),f=ec(),m=Ju({caller:i||rh}),v=ed({caller:i||rh}),g=(0,te.useRef)(null);return(0,te.useEffect)(()=>{let y=!0;return nh([Promise.resolve().then(()=>(vJ(),hJ)).then(w=>w.j)]).then(w=>{if(!y)return;let T=g.current;if(!T)return;let S=w(T,{value:o,lineNumbers:!0,tabSize:2,mode:{name:"javascript",json:!0},theme:e,autoCloseBrackets:!0,matchBrackets:!0,showCursorWhenSelecting:!0,readOnly:n?"nocursor":!1,foldGutter:!0,gutters:["CodeMirror-linenumbers","CodeMirror-foldgutter"],extraKeys:tT});S.addKeyMap({"Cmd-Space"(){S.showHint({completeSingle:!1,container:T})},"Ctrl-Space"(){S.showHint({completeSingle:!1,container:T})},"Alt-Space"(){S.showHint({completeSingle:!1,container:T})},"Shift-Space"(){S.showHint({completeSingle:!1,container:T})}}),S.on("keyup",(A,b)=>{let{code:C,key:x,shiftKey:k}=b,P=C.startsWith("Key"),D=!k&&C.startsWith("Digit");(P||D||x==="_"||x==='"')&&A.execCommand("autocomplete")}),l(S)}),()=>{y=!1}},[e,o,n,l]),_y(s,"keyMap",t),gI(s,r,c?UE:null,"headers",rh),za(s,["Cmd-Enter","Ctrl-Enter"],f?.run),za(s,["Shift-Ctrl-P"],v),za(s,["Shift-Ctrl-M"],m),g}oe(rh,"useHeaderEditor");var UE="headers",rTe=Array.from({length:11},(e,t)=>String.fromCharCode(8192+t)).concat(["\u2028","\u2029","\u202F","\xA0"]),nTe=new RegExp("["+rTe.join("")+"]","g");function t$(e){return e.replace(nTe," ")}oe(t$,"normalizeWhitespace");function Xu({editorTheme:e=$E,keyMap:t=eT,onClickReference:r,onCopyQuery:n,onEdit:i,readOnly:o=!1}={},s){let{schema:l}=So({nonNull:!0,caller:s||Xu}),{externalFragments:c,initialQuery:f,queryEditor:m,setOperationName:v,setQueryEditor:g,validationRules:y,variableEditor:w,updateActiveTabValues:T}=$r({nonNull:!0,caller:s||Xu}),S=ec(),A=Pl(),b=tc(),C=Jy(),x=$y({caller:s||Xu,onCopyQuery:n}),k=Ju({caller:s||Xu}),P=ed({caller:s||Xu}),D=(0,te.useRef)(null),N=(0,te.useRef)(),I=(0,te.useRef)(()=>{});(0,te.useEffect)(()=>{I.current=B=>{if(!(!b||!C)){switch(C.setVisiblePlugin(Hy),B.kind){case"Type":{b.push({name:B.type.name,def:B.type});break}case"Field":{b.push({name:B.field.name,def:B.field});break}case"Argument":{B.field&&b.push({name:B.field.name,def:B.field});break}case"EnumValue":{B.type&&b.push({name:B.type.name,def:B.type});break}}r?.(B)}}},[b,r,C]),(0,te.useEffect)(()=>{let B=!0;return nh([Promise.resolve().then(()=>(AJ(),bJ)).then(U=>U.c),Promise.resolve().then(()=>(GM(),BM)).then(U=>U.s),Promise.resolve().then(()=>(EJ(),wwe)),Promise.resolve().then(()=>(CJ(),Twe)),Promise.resolve().then(()=>(jJ(),Lwe)),Promise.resolve().then(()=>(zJ(),Mwe)),Promise.resolve().then(()=>(HJ(),Uwe))]).then(U=>{if(!B)return;N.current=U;let z=D.current;if(!z)return;let j=U(z,{value:f,lineNumbers:!0,tabSize:2,foldGutter:!0,mode:"graphql",theme:e,autoCloseBrackets:!0,matchBrackets:!0,showCursorWhenSelecting:!0,readOnly:o?"nocursor":!1,lint:{schema:void 0,validationRules:null,externalFragments:void 0},hintOptions:{schema:void 0,closeOnUnfocus:!1,completeSingle:!1,container:z,externalFragments:void 0},info:{schema:void 0,renderDescription:K=>BE.render(K),onClick(K){I.current(K)}},jump:{schema:void 0,onClick(K){I.current(K)}},gutters:["CodeMirror-linenumbers","CodeMirror-foldgutter"],extraKeys:{...tT,"Cmd-S"(){},"Ctrl-S"(){}}});j.addKeyMap({"Cmd-Space"(){j.showHint({completeSingle:!0,container:z})},"Ctrl-Space"(){j.showHint({completeSingle:!0,container:z})},"Alt-Space"(){j.showHint({completeSingle:!0,container:z})},"Shift-Space"(){j.showHint({completeSingle:!0,container:z})},"Shift-Alt-Space"(){j.showHint({completeSingle:!0,container:z})}}),j.on("keyup",(K,ee)=>{iTe.test(ee.key)&&K.execCommand("autocomplete")});let J=!1;j.on("startCompletion",()=>{J=!0}),j.on("endCompletion",()=>{J=!1}),j.on("keydown",(K,ee)=>{ee.key==="Escape"&&J&&ee.stopPropagation()}),j.on("beforeChange",(K,ee)=>{var re;if(ee.origin==="paste"){let se=ee.text.map(t$);(re=ee.update)==null||re.call(ee,ee.from,ee.to,se)}}),j.documentAST=null,j.operationName=null,j.operations=null,j.variableToType=null,g(j)}),()=>{B=!1}},[e,f,o,g]),_y(m,"keyMap",t),(0,te.useEffect)(()=>{if(!m)return;function B(z){var j;let J=Gv(l,z.getValue()),K=z4(z.operations??void 0,z.operationName??void 0,J?.operations);return z.documentAST=J?.documentAST??null,z.operationName=K??null,z.operations=J?.operations??null,w&&(w.state.lint.linterOptions.variableToType=J?.variableToType,w.options.lint.variableToType=J?.variableToType,w.options.hintOptions.variableToType=J?.variableToType,(j=N.current)==null||j.signal(w,"change",w)),J?{...J,operationName:K}:null}oe(B,"getAndUpdateOperationFacts");let U=_f(100,z=>{let j=z.getValue();A?.set(o$,j);let J=z.operationName,K=B(z);K?.operationName!==void 0&&A?.set(oTe,K.operationName),i?.(j,K?.documentAST),K!=null&&K.operationName&&J!==K.operationName&&v(K.operationName),T({query:j,operationName:K?.operationName??null})});return B(m),m.on("change",U),()=>m.off("change",U)},[i,m,l,v,A,w,T]),r$(m,l??null,N),n$(m,y??null,N),i$(m,c,N),yI(m,r||null,Xu);let V=S?.run,G=(0,te.useCallback)(()=>{var B;if(!V||!m||!m.operations||!m.hasFocus()){V?.();return}let U=m.indexFromPos(m.getCursor()),z;for(let j of m.operations)j.loc&&j.loc.start<=U&&j.loc.end>=U&&(z=(B=j.name)==null?void 0:B.value);z&&z!==m.operationName&&v(z),V()},[m,V,v]);return za(m,["Cmd-Enter","Ctrl-Enter"],G),za(m,["Shift-Ctrl-C"],x),za(m,["Shift-Ctrl-P","Shift-Ctrl-F"],P),za(m,["Shift-Ctrl-M"],k),D}oe(Xu,"useQueryEditor");function r$(e,t,r){(0,te.useEffect)(()=>{if(!e)return;let n=e.options.lint.schema!==t;e.state.lint.linterOptions.schema=t,e.options.lint.schema=t,e.options.hintOptions.schema=t,e.options.info.schema=t,e.options.jump.schema=t,n&&r.current&&r.current.signal(e,"change",e)},[e,t,r])}oe(r$,"useSynchronizeSchema");function n$(e,t,r){(0,te.useEffect)(()=>{if(!e)return;let n=e.options.lint.validationRules!==t;e.state.lint.linterOptions.validationRules=t,e.options.lint.validationRules=t,n&&r.current&&r.current.signal(e,"change",e)},[e,t,r])}oe(n$,"useSynchronizeValidationRules");function i$(e,t,r){let n=(0,te.useMemo)(()=>[...t.values()],[t]);(0,te.useEffect)(()=>{if(!e)return;let i=e.options.lint.externalFragments!==n;e.state.lint.linterOptions.externalFragments=n,e.options.lint.externalFragments=n,e.options.hintOptions.externalFragments=n,i&&r.current&&r.current.signal(e,"change",e)},[e,n,r])}oe(i$,"useSynchronizeExternalFragments");var iTe=/^[a-zA-Z0-9_@(]$/,o$="query",oTe="operationName";function a$({defaultQuery:e,defaultHeaders:t,headers:r,defaultTabs:n,query:i,variables:o,storage:s,shouldPersistHeaders:l}){let c=s?.get(Wy);try{if(!c)throw new Error("Storage for tabs is empty");let f=JSON.parse(c),m=l?r:void 0;if(s$(f)){let v=Qy({query:i,variables:o,headers:m}),g=-1;for(let y=0;y=0)f.activeTabIndex=g;else{let y=i?rT(i):null;f.tabs.push({id:EI(),hash:v,title:y||TI,query:i,variables:o,headers:r,operationName:y,response:null}),f.activeTabIndex=f.tabs.length-1}return f}throw new Error("Storage for tabs is invalid")}catch{return{activeTabIndex:0,tabs:(n||[{query:i??e,variables:o,headers:r??t}]).map(xI)}}}oe(a$,"getDefaultTabState");function s$(e){return e&&typeof e=="object"&&!Array.isArray(e)&&u$(e,"activeTabIndex")&&"tabs"in e&&Array.isArray(e.tabs)&&e.tabs.every(l$)}oe(s$,"isTabsState");function l$(e){return e&&typeof e=="object"&&!Array.isArray(e)&&uI(e,"id")&&uI(e,"title")&&th(e,"query")&&th(e,"variables")&&th(e,"headers")&&th(e,"operationName")&&th(e,"response")}oe(l$,"isTabState");function u$(e,t){return t in e&&typeof e[t]=="number"}oe(u$,"hasNumberKey");function uI(e,t){return t in e&&typeof e[t]=="string"}oe(uI,"hasStringKey");function th(e,t){return t in e&&(typeof e[t]=="string"||e[t]===null)}oe(th,"hasStringOrNullKey");function c$({queryEditor:e,variableEditor:t,headerEditor:r,responseEditor:n}){return(0,te.useCallback)(i=>{let o=e?.getValue()??null,s=t?.getValue()??null,l=r?.getValue()??null,c=e?.operationName??null,f=n?.getValue()??null;return wI(i,{query:o,variables:s,headers:l,response:f,operationName:c})},[e,t,r,n])}oe(c$,"useSynchronizeActiveTabValues");function AI(e,t=!1){return JSON.stringify(e,(r,n)=>r==="hash"||r==="response"||!t&&r==="headers"?null:n)}oe(AI,"serializeTabState");function f$({storage:e,shouldPersistHeaders:t}){let r=(0,te.useMemo)(()=>_f(500,n=>{e?.set(Wy,n)}),[e]);return(0,te.useCallback)(n=>{r(AI(n,t))},[t,r])}oe(f$,"useStoreTabs");function d$({queryEditor:e,variableEditor:t,headerEditor:r,responseEditor:n}){return(0,te.useCallback)(({query:i,variables:o,headers:s,response:l})=>{e?.setValue(i??""),t?.setValue(o??""),r?.setValue(s??""),n?.setValue(l??"")},[r,e,n,t])}oe(d$,"useSetEditorValues");function xI({query:e=null,variables:t=null,headers:r=null}={}){return{id:EI(),hash:Qy({query:e,variables:t,headers:r}),title:e&&rT(e)||TI,query:e,variables:t,headers:r,operationName:null,response:null}}oe(xI,"createTab");function wI(e,t){return{...e,tabs:e.tabs.map((r,n)=>{if(n!==e.activeTabIndex)return r;let i={...r,...t};return{...i,hash:Qy(i),title:i.operationName||(i.query?rT(i.query):void 0)||TI}})}}oe(wI,"setPropertiesInActiveTab");function EI(){let e=oe(()=>Math.floor((1+Math.random())*65536).toString(16).slice(1),"s4");return`${e()}${e()}-${e()}-${e()}-${e()}-${e()}${e()}${e()}`}oe(EI,"guid");function Qy(e){return[e.query??"",e.variables??"",e.headers??""].join("|")}oe(Qy,"hashFromTabContents");function rT(e){let t=/^(?!#).*(query|subscription|mutation)\s+([a-zA-Z0-9_]+)/m.exec(e);return t?.[2]??null}oe(rT,"fuzzyExtractOperationName");function p$(e){let t=e?.get(Wy);if(t){let r=JSON.parse(t);e?.set(Wy,JSON.stringify(r,(n,i)=>n==="headers"?null:i))}}oe(p$,"clearHeadersFromTabs");var TI="",Wy="tabState";function Jf({editorTheme:e=$E,keyMap:t=eT,onClickReference:r,onEdit:n,readOnly:i=!1}={},o){let{initialVariables:s,variableEditor:l,setVariableEditor:c}=$r({nonNull:!0,caller:o||Jf}),f=ec(),m=Ju({caller:o||Jf}),v=ed({caller:o||Jf}),g=(0,te.useRef)(null),y=(0,te.useRef)();return(0,te.useEffect)(()=>{let w=!0;return nh([Promise.resolve().then(()=>(ZJ(),Gwe)),Promise.resolve().then(()=>(i_(),Hwe)),Promise.resolve().then(()=>(o_(),Xwe))]).then(T=>{if(!w)return;y.current=T;let S=g.current;if(!S)return;let A=T(S,{value:s,lineNumbers:!0,tabSize:2,mode:"graphql-variables",theme:e,autoCloseBrackets:!0,matchBrackets:!0,showCursorWhenSelecting:!0,readOnly:i?"nocursor":!1,foldGutter:!0,lint:{variableToType:void 0},hintOptions:{closeOnUnfocus:!1,completeSingle:!1,container:S,variableToType:void 0},gutters:["CodeMirror-linenumbers","CodeMirror-foldgutter"],extraKeys:tT});A.addKeyMap({"Cmd-Space"(){A.showHint({completeSingle:!1,container:S})},"Ctrl-Space"(){A.showHint({completeSingle:!1,container:S})},"Alt-Space"(){A.showHint({completeSingle:!1,container:S})},"Shift-Space"(){A.showHint({completeSingle:!1,container:S})}}),A.on("keyup",(b,C)=>{let{code:x,key:k,shiftKey:P}=C,D=x.startsWith("Key"),N=!P&&x.startsWith("Digit");(D||N||k==="_"||k==='"')&&b.execCommand("autocomplete")}),c(A)}),()=>{w=!1}},[e,s,i,c]),_y(l,"keyMap",t),gI(l,n,m$,"variables",Jf),yI(l,r||null,Jf),za(l,["Cmd-Enter","Ctrl-Enter"],f?.run),za(l,["Shift-Ctrl-P"],v),za(l,["Shift-Ctrl-M"],m),g}oe(Jf,"useVariableEditor");var m$="variables",h$=_u("EditorContext");function v$(e){let t=Pl(),[r,n]=(0,te.useState)(null),[i,o]=(0,te.useState)(null),[s,l]=(0,te.useState)(null),[c,f]=(0,te.useState)(null),[m,v]=(0,te.useState)(()=>{let K=t?.get(rI)!==null;return e.shouldPersistHeaders!==!1&&K?t?.get(rI)==="true":!!e.shouldPersistHeaders});Uy(r,e.headers),Uy(i,e.query),Uy(s,e.response),Uy(c,e.variables);let g=f$({storage:t,shouldPersistHeaders:m}),[y]=(0,te.useState)(()=>{let K=e.query??t?.get(o$)??null,ee=e.variables??t?.get(m$)??null,re=e.headers??t?.get(UE)??null,se=e.response??"",xe=a$({query:K,variables:ee,headers:re,defaultTabs:e.defaultTabs,defaultQuery:e.defaultQuery||aTe,defaultHeaders:e.defaultHeaders,storage:t,shouldPersistHeaders:m});return g(xe),{query:K??(xe.activeTabIndex===0?xe.tabs[0].query:null)??"",variables:ee??"",headers:re??e.defaultHeaders??"",response:se,tabState:xe}}),[w,T]=(0,te.useState)(y.tabState),S=(0,te.useCallback)(K=>{if(K){t?.set(UE,r?.getValue()??"");let ee=AI(w,!0);t?.set(Wy,ee)}else t?.set(UE,""),p$(t);v(K),t?.set(rI,K.toString())},[t,w,r]),A=(0,te.useRef)();(0,te.useEffect)(()=>{let K=!!e.shouldPersistHeaders;A.current!==K&&(S(K),A.current=K)},[e.shouldPersistHeaders,S]);let b=c$({queryEditor:i,variableEditor:c,headerEditor:r,responseEditor:s}),C=d$({queryEditor:i,variableEditor:c,headerEditor:r,responseEditor:s}),{onTabChange:x,defaultHeaders:k,children:P}=e,D=(0,te.useCallback)(()=>{T(K=>{let ee=b(K),re={tabs:[...ee.tabs,xI({headers:k})],activeTabIndex:ee.tabs.length};return g(re),C(re.tabs[re.activeTabIndex]),x?.(re),re})},[k,x,C,g,b]),N=(0,te.useCallback)(K=>{T(ee=>{let re={...ee,activeTabIndex:K};return g(re),C(re.tabs[re.activeTabIndex]),x?.(re),re})},[x,C,g]),I=(0,te.useCallback)(K=>{T(ee=>{let re=ee.tabs[ee.activeTabIndex],se={tabs:K,activeTabIndex:K.indexOf(re)};return g(se),C(se.tabs[se.activeTabIndex]),x?.(se),se})},[x,C,g]),V=(0,te.useCallback)(K=>{T(ee=>{let re={tabs:ee.tabs.filter((se,xe)=>K!==xe),activeTabIndex:Math.max(ee.activeTabIndex-1,0)};return g(re),C(re.tabs[re.activeTabIndex]),x?.(re),re})},[x,C,g]),G=(0,te.useCallback)(K=>{T(ee=>{let re=wI(ee,K);return g(re),x?.(re),re})},[x,g]),{onEditOperationName:B}=e,U=(0,te.useCallback)(K=>{i&&(i.operationName=K,G({operationName:K}),B?.(K))},[B,i,G]),z=(0,te.useMemo)(()=>{let K=new Map;if(Array.isArray(e.externalFragments))for(let ee of e.externalFragments)K.set(ee.name.value,ee);else if(typeof e.externalFragments=="string")(0,$e.visit)((0,$e.parse)(e.externalFragments,{}),{FragmentDefinition(ee){K.set(ee.name.value,ee)}});else if(e.externalFragments)throw new Error("The `externalFragments` prop must either be a string that contains the fragment definitions in SDL or a list of FragmentDefinitionNode objects.");return K},[e.externalFragments]),j=(0,te.useMemo)(()=>e.validationRules||[],[e.validationRules]),J=(0,te.useMemo)(()=>({...w,addTab:D,changeTab:N,moveTab:I,closeTab:V,updateActiveTabValues:G,headerEditor:r,queryEditor:i,responseEditor:s,variableEditor:c,setHeaderEditor:n,setQueryEditor:o,setResponseEditor:l,setVariableEditor:f,setOperationName:U,initialQuery:y.query,initialVariables:y.variables,initialHeaders:y.headers,initialResponse:y.response,externalFragments:z,validationRules:j,shouldPersistHeaders:m,setShouldPersistHeaders:S}),[w,D,N,I,V,G,r,i,s,c,U,y,z,j,m,S]);return(0,Y.jsx)(h$.Provider,{value:J,children:P})}oe(v$,"EditorContextProvider");var $r=$u(h$),rI="shouldPersistHeaders",aTe=`# Welcome to GraphiQL +`)); + }k(''),y(!0);let B=n??s.operationName??void 0;m?.addToHistory({query:D,variables:N,headers:V,operationName:B});try{ + let U={data:{}},z=oe(K=>{ + if(P!==S.current)return;let ee=Array.isArray(K)?K:!1;if(!ee&&typeof K=='object'&&K!==null&&'hasNext'in K&&(ee=[K]),ee){ + let re={data:U.data},se=[...U?.errors||[],...ee.flatMap(xe=>xe.errors).filter(Boolean)];se.length&&(re.errors=se);for(let xe of ee){ + let{path:Re,data:Se,errors:ie,...ye}=xe;if(Re){ + if(!Se)throw new Error(`Expected part to contain a data property, but got ${xe}`);(0,u_.default)(re.data,Re,Se,{merge:!0}); + }else Se&&(re.data=Se);U={...re,...ye}; + }y(!1),k(SA(U)); + }else{ + let re=SA(K);y(!1),k(re); + } + },'handleResponse'),j=e({query:D,variables:I,operationName:B},{headers:G??void 0,documentAST:s.documentAST??void 0}),J=await Promise.resolve(j);if(YN(J))T(J.subscribe({next(K){ + z(K); + },error(K){ + y(!1),K&&k(fp(K)),T(null); + },complete(){ + y(!1),T(null); + }}));else if(KN(J)){ + T({unsubscribe:()=>{ + var K,ee;return(ee=(K=J[Symbol.asyncIterator]()).return)==null?void 0:ee.call(K); + }});for await(let K of J)z(K);y(!1),T(null); + }else z(J); + }catch(U){ + y(!1),k(fp(U)),T(null); + } + },[v,i,e,o,m,n,s,l,A,w,f,c]),C=!!w,x=(0,te.useMemo)(()=>({isFetching:g,isSubscribed:C,operationName:n??null,run:b,stop:A}),[g,C,n,b,A]);return(0,Y.jsx)(I_.Provider,{value:x,children:r}); +}oe(GE,'ExecutionContextProvider');var ec=$u(I_);function oI({json:e,errorMessageParse:t,errorMessageType:r}){ + let n;try{ + n=e&&e.trim()!==''?JSON.parse(e):void 0; + }catch(o){ + throw new Error(`${t}: ${o instanceof Error?o.message:o}.`); + }let i=typeof n=='object'&&n!==null&&!Array.isArray(n);if(n!==void 0&&!i)throw new Error(r);return n; +}oe(oI,'tryParseJsonObject');var $E='graphiql',eT='sublime',F_=!1;typeof window=='object'&&(F_=window.navigator.platform.toLowerCase().indexOf('mac')===0);var tT={[F_?'Cmd-F':'Ctrl-F']:'findPersistent','Cmd-G':'findPersistent','Ctrl-G':'findPersistent','Ctrl-Left':'goSubwordLeft','Ctrl-Right':'goSubwordRight','Alt-Left':'goGroupLeft','Alt-Right':'goGroupRight'};async function nh(e,t){ + let r=await Promise.resolve().then(()=>(ia(),FZ)).then(n=>n.c).then(n=>typeof n=='function'?n:n.default);return await Promise.all(t?.useCommonAddons===!1?e:[Promise.resolve().then(()=>(OM(),VZ)).then(n=>n.s),Promise.resolve().then(()=>(HZ(),zZ)).then(n=>n.m),Promise.resolve().then(()=>(KZ(),YZ)).then(n=>n.c),Promise.resolve().then(()=>(LM(),DM)).then(n=>n.b),Promise.resolve().then(()=>(RM(),PM)).then(n=>n.f),Promise.resolve().then(()=>(iJ(),nJ)).then(n=>n.l),Promise.resolve().then(()=>(IM(),MM)).then(n=>n.s),Promise.resolve().then(()=>(jM(),qM)).then(n=>n.j),Promise.resolve().then(()=>(ky(),FM)).then(n=>n.d),Promise.resolve().then(()=>(UM(),VM)).then(n=>n.s),...e]),r; +}oe(nh,'importCodeMirror');var $Ee=oe(e=>e?(0,$e.print)(e):'','printDefault');function dI({field:e}){ + if(!('defaultValue'in e)||e.defaultValue===void 0)return null;let t=(0,$e.astFromValue)(e.defaultValue,e.type);return t?(0,Y.jsxs)(Y.Fragment,{children:[' = ',(0,Y.jsx)('span',{className:'graphiql-doc-explorer-default-value',children:$Ee(t)})]}):null; +}oe(dI,'DefaultValue');var q_=_u('SchemaContext');function pI(e){ + if(!e.fetcher)throw new TypeError('The `SchemaContextProvider` component requires a `fetcher` function to be passed as prop.');let{initialHeaders:t,headerEditor:r}=$r({nonNull:!0,caller:pI}),[n,i]=(0,te.useState)(),[o,s]=(0,te.useState)(!1),[l,c]=(0,te.useState)(null),f=(0,te.useRef)(0);(0,te.useEffect)(()=>{ + i((0,$e.isSchema)(e.schema)||e.schema===null||e.schema===void 0?e.schema:void 0),f.current++; + },[e.schema]);let m=(0,te.useRef)(t);(0,te.useEffect)(()=>{ + r&&(m.current=r.getValue()); + });let{introspectionQuery:v,introspectionQueryName:g,introspectionQuerySansSubscriptions:y}=j_({inputValueDeprecation:e.inputValueDeprecation,introspectionQueryName:e.introspectionQueryName,schemaDescription:e.schemaDescription}),{fetcher:w,onSchemaChange:T,dangerouslyAssumeSchemaIsValid:S,children:A}=e,b=(0,te.useCallback)(()=>{ + if((0,$e.isSchema)(e.schema)||e.schema===null)return;let k=++f.current,P=e.schema;async function D(){ + if(P)return P;let N=V_(m.current);if(!N.isValidJSON){ + c('Introspection failed as headers are invalid.');return; + }let I=N.headers?{headers:N.headers}:{},V=XN(w({query:v,operationName:g},I));if(!WN(V)){ + c('Fetcher did not return a Promise for introspection.');return; + }s(!0),c(null);let G=await V;if(typeof G!='object'||G===null||!('data'in G)){ + let U=XN(w({query:y,operationName:g},I));if(!WN(U))throw new Error('Fetcher did not return a Promise for introspection.');G=await U; + }if(s(!1),G!=null&&G.data&&'__schema'in G.data)return G.data;let B=typeof G=='string'?G:SA(G);c(B); + }oe(D,'fetchIntrospectionData'),D().then(N=>{ + if(!(k!==f.current||!N))try{ + let I=(0,$e.buildClientSchema)(N);i(I),T?.(I); + }catch(I){ + c(fp(I)); + } + }).catch(N=>{ + k===f.current&&(c(fp(N)),s(!1)); + }); + },[w,g,v,y,T,e.schema]);(0,te.useEffect)(()=>{ + b(); + },[b]),(0,te.useEffect)(()=>{ + function k(P){ + P.ctrlKey&&P.key==='R'&&b(); + }return oe(k,'triggerIntrospection'),window.addEventListener('keydown',k),()=>window.removeEventListener('keydown',k); + });let C=(0,te.useMemo)(()=>!n||S?[]:(0,$e.validateSchema)(n),[n,S]),x=(0,te.useMemo)(()=>({fetchError:l,introspect:b,isFetching:o,schema:n,validationErrors:C}),[l,b,o,n,C]);return(0,Y.jsx)(q_.Provider,{value:x,children:A}); +}oe(pI,'SchemaContextProvider');var So=$u(q_);function j_({inputValueDeprecation:e,introspectionQueryName:t,schemaDescription:r}){ + return(0,te.useMemo)(()=>{ + let n=t||'IntrospectionQuery',i=(0,$e.getIntrospectionQuery)({inputValueDeprecation:e,schemaDescription:r});t&&(i=i.replace('query IntrospectionQuery',`query ${n}`));let o=i.replace('subscriptionType { name }','');return{introspectionQueryName:n,introspectionQuery:i,introspectionQuerySansSubscriptions:o}; + },[e,t,r]); +}oe(j_,'useIntrospectionQuery');function V_(e){ + let t=null,r=!0;try{ + e&&(t=JSON.parse(e)); + }catch{ + r=!1; + }return{headers:t,isValidJSON:r}; +}oe(V_,'parseHeaderString');var FE={name:'Docs'},U_=_u('ExplorerContext');function mI(e){ + let{schema:t,validationErrors:r}=So({nonNull:!0,caller:mI}),[n,i]=(0,te.useState)([FE]),o=(0,te.useCallback)(f=>{ + i(m=>m.at(-1).def===f.def?m:[...m,f]); + },[]),s=(0,te.useCallback)(()=>{ + i(f=>f.length>1?f.slice(0,-1):f); + },[]),l=(0,te.useCallback)(()=>{ + i(f=>f.length===1?f:[FE]); + },[]);(0,te.useEffect)(()=>{ + t==null||r.length>0?l():i(f=>{ + if(f.length===1)return f;let m=[FE],v=null;for(let g of f)if(g!==FE)if(g.def)if((0,$e.isNamedType)(g.def)){ + let y=t.getType(g.def.name);if(y)m.push({name:g.name,def:y}),v=y;else break; + }else{ + if(v===null)break;if((0,$e.isObjectType)(v)||(0,$e.isInputObjectType)(v)){ + let y=v.getFields()[g.name];if(y)m.push({name:g.name,def:y});else break; + }else{ + if((0,$e.isScalarType)(v)||(0,$e.isEnumType)(v)||(0,$e.isInterfaceType)(v)||(0,$e.isUnionType)(v))break;{let y=v;if(y.args.find(w=>w.name===g.name))m.push({name:g.name,def:y});else break;} + } + }else v=null,m.push(g);return m; + }); + },[l,t,r]);let c=(0,te.useMemo)(()=>({explorerNavStack:n,push:o,pop:s,reset:l}),[n,o,s,l]);return(0,Y.jsx)(U_.Provider,{value:c,children:e.children}); +}oe(mI,'ExplorerContextProvider');var tc=$u(U_);function Gy(e,t){ + return(0,$e.isNonNullType)(e)?(0,Y.jsxs)(Y.Fragment,{children:[Gy(e.ofType,t),'!']}):(0,$e.isListType)(e)?(0,Y.jsxs)(Y.Fragment,{children:['[',Gy(e.ofType,t),']']}):t(e); +}oe(Gy,'renderType');function Ga(e){ + let{push:t}=tc({nonNull:!0,caller:Ga});return e.type?Gy(e.type,r=>(0,Y.jsx)('a',{className:'graphiql-doc-explorer-type-name',onClick:n=>{ + n.preventDefault(),t({name:r.name,def:r}); + },href:'#',children:r.name})):null; +}oe(Ga,'TypeLink');function zy({arg:e,showDefaultValue:t,inline:r}){ + let n=(0,Y.jsxs)('span',{children:[(0,Y.jsx)('span',{className:'graphiql-doc-explorer-argument-name',children:e.name}),': ',(0,Y.jsx)(Ga,{type:e.type}),t!==!1&&(0,Y.jsx)(dI,{field:e})]});return r?n:(0,Y.jsxs)('div',{className:'graphiql-doc-explorer-argument',children:[n,e.description?(0,Y.jsx)(js,{type:'description',children:e.description}):null,e.deprecationReason?(0,Y.jsxs)('div',{className:'graphiql-doc-explorer-argument-deprecation',children:[(0,Y.jsx)('div',{className:'graphiql-doc-explorer-argument-deprecation-label',children:'Deprecated'}),(0,Y.jsx)(js,{type:'deprecation',children:e.deprecationReason})]}):null]}); +}oe(zy,'Argument');function hI(e){ + return e.children?(0,Y.jsxs)('div',{className:'graphiql-doc-explorer-deprecation',children:[(0,Y.jsx)('div',{className:'graphiql-doc-explorer-deprecation-label',children:'Deprecated'}),(0,Y.jsx)(js,{type:'deprecation',onlyShowFirstChild:e.preview??!0,children:e.children})]}):null; +}oe(hI,'DeprecationReason');function B_({directive:e}){ + return(0,Y.jsxs)('span',{className:'graphiql-doc-explorer-directive',children:['@',e.name.value]}); +}oe(B_,'Directive');function Co(e){ + let t=eTe[e.title];return(0,Y.jsxs)('div',{children:[(0,Y.jsxs)('div',{className:'graphiql-doc-explorer-section-title',children:[(0,Y.jsx)(t,{}),e.title]}),(0,Y.jsx)('div',{className:'graphiql-doc-explorer-section-content',children:e.children})]}); +}oe(Co,'ExplorerSection');var eTe={Arguments:LEe,'Deprecated Arguments':REe,'Deprecated Enum Values':MEe,'Deprecated Fields':IEe,Directives:FEe,'Enum Values':VEe,Fields:UEe,Implements:GEe,Implementations:IE,'Possible Types':IE,'Root Types':WEe,Type:IE,'All Schema Types':IE};function G_(e){ + return(0,Y.jsxs)(Y.Fragment,{children:[e.field.description?(0,Y.jsx)(js,{type:'description',children:e.field.description}):null,(0,Y.jsx)(hI,{preview:!1,children:e.field.deprecationReason}),(0,Y.jsx)(Co,{title:'Type',children:(0,Y.jsx)(Ga,{type:e.field.type})}),(0,Y.jsx)(z_,{field:e.field}),(0,Y.jsx)(H_,{field:e.field})]}); +}oe(G_,'FieldDocumentation');function z_({field:e}){ + let[t,r]=(0,te.useState)(!1),n=(0,te.useCallback)(()=>{ + r(!0); + },[]);if(!('args'in e))return null;let i=[],o=[];for(let s of e.args)s.deprecationReason?o.push(s):i.push(s);return(0,Y.jsxs)(Y.Fragment,{children:[i.length>0?(0,Y.jsx)(Co,{title:'Arguments',children:i.map(s=>(0,Y.jsx)(zy,{arg:s},s.name))}):null,o.length>0?t||i.length===0?(0,Y.jsx)(Co,{title:'Deprecated Arguments',children:o.map(s=>(0,Y.jsx)(zy,{arg:s},s.name))}):(0,Y.jsx)(aa,{type:'button',onClick:n,children:'Show Deprecated Arguments'}):null]}); +}oe(z_,'Arguments');function H_({field:e}){ + var t;let r=((t=e.astNode)==null?void 0:t.directives)||[];return!r||r.length===0?null:(0,Y.jsx)(Co,{title:'Directives',children:r.map(n=>(0,Y.jsx)('div',{children:(0,Y.jsx)(B_,{directive:n})},n.name.value))}); +}oe(H_,'Directives');function Q_(e){ + var t,r,n,i;let o=e.schema.getQueryType(),s=(r=(t=e.schema).getMutationType)==null?void 0:r.call(t),l=(i=(n=e.schema).getSubscriptionType)==null?void 0:i.call(n),c=e.schema.getTypeMap(),f=[o?.name,s?.name,l?.name];return(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(js,{type:'description',children:e.schema.description||'A GraphQL schema provides a root type for each kind of operation.'}),(0,Y.jsxs)(Co,{title:'Root Types',children:[o?(0,Y.jsxs)('div',{children:[(0,Y.jsx)('span',{className:'graphiql-doc-explorer-root-type',children:'query'}),': ',(0,Y.jsx)(Ga,{type:o})]}):null,s&&(0,Y.jsxs)('div',{children:[(0,Y.jsx)('span',{className:'graphiql-doc-explorer-root-type',children:'mutation'}),': ',(0,Y.jsx)(Ga,{type:s})]}),l&&(0,Y.jsxs)('div',{children:[(0,Y.jsx)('span',{className:'graphiql-doc-explorer-root-type',children:'subscription'}),': ',(0,Y.jsx)(Ga,{type:l})]})]}),(0,Y.jsx)(Co,{title:'All Schema Types',children:c&&(0,Y.jsx)('div',{children:Object.values(c).map(m=>f.includes(m.name)||m.name.startsWith('__')?null:(0,Y.jsx)('div',{children:(0,Y.jsx)(Ga,{type:m})},m.name))})})]}); +}oe(Q_,'SchemaDocumentation');function _f(e,t){ + let r;return function(...n){ + r&&window.clearTimeout(r),r=window.setTimeout(()=>{ + r=null,t(...n); + },e); + }; +}oe(_f,'debounce');function vI(){ + let{explorerNavStack:e,push:t}=tc({nonNull:!0,caller:vI}),r=(0,te.useRef)(null),n=zE(),[i,o]=(0,te.useState)(''),[s,l]=(0,te.useState)(n(i)),c=(0,te.useMemo)(()=>_f(200,y=>{ + l(n(y)); + }),[n]);(0,te.useEffect)(()=>{ + c(i); + },[c,i]),(0,te.useEffect)(()=>{ + function y(w){ + var T;w.metaKey&&w.key==='k'&&((T=r.current)==null||T.focus()); + }return oe(y,'handleKeyDown'),window.addEventListener('keydown',y),()=>window.removeEventListener('keydown',y); + },[]);let f=e.at(-1),m=(0,te.useCallback)(y=>{ + t('field'in y?{name:y.field.name,def:y.field}:{name:y.type.name,def:y.type}); + },[t]),v=(0,te.useRef)(!1),g=(0,te.useCallback)(y=>{ + v.current=y.type==='focus'; + },[]);return e.length===1||(0,$e.isObjectType)(f.def)||(0,$e.isInterfaceType)(f.def)||(0,$e.isInputObjectType)(f.def)?(0,Y.jsxs)(Hf,{as:'div',className:'graphiql-doc-explorer-search',onChange:m,'data-state':v?void 0:'idle','aria-label':`Search ${f.name}...`,children:[(0,Y.jsxs)('div',{className:'graphiql-doc-explorer-search-input',onClick:()=>{ + var y;(y=r.current)==null||y.focus(); + },children:[(0,Y.jsx)(zEe,{}),(0,Y.jsx)(Hf.Input,{autoComplete:'off',onFocus:g,onBlur:g,onChange:y=>o(y.target.value),placeholder:'\u2318 K',ref:r,value:i,'data-cy':'doc-explorer-input'})]}),v.current&&(0,Y.jsxs)(Hf.Options,{'data-cy':'doc-explorer-list',children:[s.within.length+s.types.length+s.fields.length===0?(0,Y.jsx)('li',{className:'graphiql-doc-explorer-search-empty',children:'No results found'}):s.within.map((y,w)=>(0,Y.jsx)(Hf.Option,{value:y,'data-cy':'doc-explorer-option',children:(0,Y.jsx)(aI,{field:y.field,argument:y.argument})},`within-${w}`)),s.within.length>0&&s.types.length+s.fields.length>0?(0,Y.jsx)('div',{className:'graphiql-doc-explorer-search-divider',children:'Other results'}):null,s.types.map((y,w)=>(0,Y.jsx)(Hf.Option,{value:y,'data-cy':'doc-explorer-option',children:(0,Y.jsx)(HE,{type:y.type})},`type-${w}`)),s.fields.map((y,w)=>(0,Y.jsxs)(Hf.Option,{value:y,'data-cy':'doc-explorer-option',children:[(0,Y.jsx)(HE,{type:y.type}),'.',(0,Y.jsx)(aI,{field:y.field,argument:y.argument})]},`field-${w}`))]})]}):null; +}oe(vI,'Search');function zE(e){ + let{explorerNavStack:t}=tc({nonNull:!0,caller:e||zE}),{schema:r}=So({nonNull:!0,caller:e||zE}),n=t.at(-1);return(0,te.useCallback)(i=>{ + let o={within:[],types:[],fields:[]};if(!r)return o;let s=n.def,l=r.getTypeMap(),c=Object.keys(l);s&&(c=c.filter(f=>f!==s.name),c.unshift(s.name));for(let f of c){ + if(o.within.length+o.types.length+o.fields.length>=100)break;let m=l[f];if(s!==m&&VE(f,i)&&o.types.push({type:m}),!(0,$e.isObjectType)(m)&&!(0,$e.isInterfaceType)(m)&&!(0,$e.isInputObjectType)(m))continue;let v=m.getFields();for(let g in v){ + let y=v[g],w;if(!VE(g,i))if('args'in y){ + if(w=y.args.filter(T=>VE(T.name,i)),w.length===0)continue; + }else continue;o[s===m?'within':'fields'].push(...w?w.map(T=>({type:m,field:y,argument:T})):[{type:m,field:y}]); + } + }return o; + },[n.def,r]); +}oe(zE,'useSearchResults');function VE(e,t){ + try{ + let r=t.replaceAll(/[^_0-9A-Za-z]/g,n=>'\\'+n);return e.search(new RegExp(r,'i'))!==-1; + }catch{ + return e.toLowerCase().includes(t.toLowerCase()); + } +}oe(VE,'isMatch');function HE(e){ + return(0,Y.jsx)('span',{className:'graphiql-doc-explorer-search-type',children:e.type.name}); +}oe(HE,'Type');function aI({field:e,argument:t}){ + return(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)('span',{className:'graphiql-doc-explorer-search-field',children:e.name}),t?(0,Y.jsxs)(Y.Fragment,{children:['(',(0,Y.jsx)('span',{className:'graphiql-doc-explorer-search-argument',children:t.name}),':',' ',Gy(t.type,r=>(0,Y.jsx)(HE,{type:r})),')']}):null]}); +}oe(aI,'Field$1');function W_(e){ + let{push:t}=tc({nonNull:!0});return(0,Y.jsx)('a',{className:'graphiql-doc-explorer-field-name',onClick:r=>{ + r.preventDefault(),t({name:e.field.name,def:e.field}); + },href:'#',children:e.field.name}); +}oe(W_,'FieldLink');function Y_(e){ + return(0,$e.isNamedType)(e.type)?(0,Y.jsxs)(Y.Fragment,{children:[e.type.description?(0,Y.jsx)(js,{type:'description',children:e.type.description}):null,(0,Y.jsx)(K_,{type:e.type}),(0,Y.jsx)(X_,{type:e.type}),(0,Y.jsx)(Z_,{type:e.type}),(0,Y.jsx)(J_,{type:e.type})]}):null; +}oe(Y_,'TypeDocumentation');function K_({type:e}){ + return(0,$e.isObjectType)(e)&&e.getInterfaces().length>0?(0,Y.jsx)(Co,{title:'Implements',children:e.getInterfaces().map(t=>(0,Y.jsx)('div',{children:(0,Y.jsx)(Ga,{type:t})},t.name))}):null; +}oe(K_,'ImplementsInterfaces');function X_({type:e}){ + let[t,r]=(0,te.useState)(!1),n=(0,te.useCallback)(()=>{ + r(!0); + },[]);if(!(0,$e.isObjectType)(e)&&!(0,$e.isInterfaceType)(e)&&!(0,$e.isInputObjectType)(e))return null;let i=e.getFields(),o=[],s=[];for(let l of Object.keys(i).map(c=>i[c]))l.deprecationReason?s.push(l):o.push(l);return(0,Y.jsxs)(Y.Fragment,{children:[o.length>0?(0,Y.jsx)(Co,{title:'Fields',children:o.map(l=>(0,Y.jsx)(sI,{field:l},l.name))}):null,s.length>0?t||o.length===0?(0,Y.jsx)(Co,{title:'Deprecated Fields',children:s.map(l=>(0,Y.jsx)(sI,{field:l},l.name))}):(0,Y.jsx)(aa,{type:'button',onClick:n,children:'Show Deprecated Fields'}):null]}); +}oe(X_,'Fields');function sI({field:e}){ + let t='args'in e?e.args.filter(r=>!r.deprecationReason):[];return(0,Y.jsxs)('div',{className:'graphiql-doc-explorer-item',children:[(0,Y.jsxs)('div',{children:[(0,Y.jsx)(W_,{field:e}),t.length>0?(0,Y.jsxs)(Y.Fragment,{children:['(',(0,Y.jsx)('span',{children:t.map(r=>t.length===1?(0,Y.jsx)(zy,{arg:r,inline:!0},r.name):(0,Y.jsx)('div',{className:'graphiql-doc-explorer-argument-multiple',children:(0,Y.jsx)(zy,{arg:r,inline:!0})},r.name))}),')']}):null,': ',(0,Y.jsx)(Ga,{type:e.type}),(0,Y.jsx)(dI,{field:e})]}),e.description?(0,Y.jsx)(js,{type:'description',onlyShowFirstChild:!0,children:e.description}):null,(0,Y.jsx)(hI,{children:e.deprecationReason})]}); +}oe(sI,'Field');function Z_({type:e}){ + let[t,r]=(0,te.useState)(!1),n=(0,te.useCallback)(()=>{ + r(!0); + },[]);if(!(0,$e.isEnumType)(e))return null;let i=[],o=[];for(let s of e.getValues())s.deprecationReason?o.push(s):i.push(s);return(0,Y.jsxs)(Y.Fragment,{children:[i.length>0?(0,Y.jsx)(Co,{title:'Enum Values',children:i.map(s=>(0,Y.jsx)(lI,{value:s},s.name))}):null,o.length>0?t||i.length===0?(0,Y.jsx)(Co,{title:'Deprecated Enum Values',children:o.map(s=>(0,Y.jsx)(lI,{value:s},s.name))}):(0,Y.jsx)(aa,{type:'button',onClick:n,children:'Show Deprecated Values'}):null]}); +}oe(Z_,'EnumValues');function lI({value:e}){ + return(0,Y.jsxs)('div',{className:'graphiql-doc-explorer-item',children:[(0,Y.jsx)('div',{className:'graphiql-doc-explorer-enum-value',children:e.name}),e.description?(0,Y.jsx)(js,{type:'description',children:e.description}):null,e.deprecationReason?(0,Y.jsx)(js,{type:'deprecation',children:e.deprecationReason}):null]}); +}oe(lI,'EnumValue');function J_({type:e}){ + let{schema:t}=So({nonNull:!0});return!t||!(0,$e.isAbstractType)(e)?null:(0,Y.jsx)(Co,{title:(0,$e.isInterfaceType)(e)?'Implementations':'Possible Types',children:t.getPossibleTypes(e).map(r=>(0,Y.jsx)('div',{children:(0,Y.jsx)(Ga,{type:r})},r.name))}); +}oe(J_,'PossibleTypes');function QE(){ + let{fetchError:e,isFetching:t,schema:r,validationErrors:n}=So({nonNull:!0,caller:QE}),{explorerNavStack:i,pop:o}=tc({nonNull:!0,caller:QE}),s=i.at(-1),l=null;e?l=(0,Y.jsx)('div',{className:'graphiql-doc-explorer-error',children:'Error fetching schema'}):n.length>0?l=(0,Y.jsxs)('div',{className:'graphiql-doc-explorer-error',children:['Schema is invalid: ',n[0].message]}):t?l=(0,Y.jsx)(ZE,{}):r?i.length===1?l=(0,Y.jsx)(Q_,{schema:r}):(0,$e.isType)(s.def)?l=(0,Y.jsx)(Y_,{type:s.def}):s.def&&(l=(0,Y.jsx)(G_,{field:s.def})):l=(0,Y.jsx)('div',{className:'graphiql-doc-explorer-error',children:'No GraphQL schema available'});let c;return i.length>1&&(c=i.at(-2).name),(0,Y.jsxs)('section',{className:'graphiql-doc-explorer','aria-label':'Documentation Explorer',children:[(0,Y.jsxs)('div',{className:'graphiql-doc-explorer-header',children:[(0,Y.jsxs)('div',{className:'graphiql-doc-explorer-header-content',children:[c&&(0,Y.jsxs)('a',{href:'#',className:'graphiql-doc-explorer-back',onClick:f=>{ + f.preventDefault(),o(); + },'aria-label':`Go back to ${c}`,children:[(0,Y.jsx)(PEe,{}),c]}),(0,Y.jsx)('div',{className:'graphiql-doc-explorer-title',children:s.name})]}),(0,Y.jsx)(vI,{},s.name)]}),(0,Y.jsx)('div',{className:'graphiql-doc-explorer-content',children:l})]}); +}oe(QE,'DocExplorer');var Hy={title:'Documentation Explorer',icon:oe(function(){ + let e=Jy();return e?.visiblePlugin===Hy?(0,Y.jsx)(qEe,{}):(0,Y.jsx)(jEe,{}); + },'Icon'),content:QE},s_={title:'History',icon:BEe,content:R_},__=_u('PluginContext');function $_(e){ + let t=Pl(),r=tc(),n=_E(),i=!!r,o=!!n,s=(0,te.useMemo)(()=>{ + let y=[],w={};i&&(y.push(Hy),w[Hy.title]=!0),o&&(y.push(s_),w[s_.title]=!0);for(let T of e.plugins||[]){ + if(typeof T.title!='string'||!T.title)throw new Error('All GraphiQL plugins must have a unique title');if(w[T.title])throw new Error(`All GraphiQL plugins must have a unique title, found two plugins with the title '${T.title}'`);y.push(T),w[T.title]=!0; + }return y; + },[i,o,e.plugins]),[l,c]=(0,te.useState)(()=>{ + let y=t?.get(l_);return s.find(T=>T.title===y)||(y&&t?.set(l_,''),e.visiblePlugin&&s.find(T=>(typeof e.visiblePlugin=='string'?T.title:T)===e.visiblePlugin)||null); + }),{onTogglePluginVisibility:f,children:m}=e,v=(0,te.useCallback)(y=>{ + let w=y&&s.find(T=>(typeof y=='string'?T.title:T)===y)||null;c(T=>w===T?T:(f?.(w),w)); + },[f,s]);(0,te.useEffect)(()=>{ + e.visiblePlugin&&v(e.visiblePlugin); + },[s,e.visiblePlugin,v]);let g=(0,te.useMemo)(()=>({plugins:s,setVisiblePlugin:v,visiblePlugin:l}),[s,v,l]);return(0,Y.jsx)(__.Provider,{value:g,children:m}); +}oe($_,'PluginContextProvider');var Jy=$u(__),l_='visiblePlugin';function e$(e,t,r,n,i,o){ + nh([],{useCommonAddons:!1}).then(l=>{ + let c,f,m,v,g,y,w,T,S;l.on(t,'select',(A,b)=>{ + if(!c){ + let C=b.parentNode;c=document.createElement('div'),c.className='CodeMirror-hint-information',C.append(c);let x=document.createElement('header');x.className='CodeMirror-hint-information-header',c.append(x),f=document.createElement('span'),f.className='CodeMirror-hint-information-field-name',x.append(f),m=document.createElement('span'),m.className='CodeMirror-hint-information-type-name-pill',x.append(m),v=document.createElement('span'),m.append(v),g=document.createElement('a'),g.className='CodeMirror-hint-information-type-name',g.href='javascript:void 0',g.addEventListener('click',s),m.append(g),y=document.createElement('span'),m.append(y),w=document.createElement('div'),w.className='CodeMirror-hint-information-description',c.append(w),T=document.createElement('div'),T.className='CodeMirror-hint-information-deprecation',c.append(T);let k=document.createElement('span');k.className='CodeMirror-hint-information-deprecation-label',k.textContent='Deprecated',T.append(k),S=document.createElement('div'),S.className='CodeMirror-hint-information-deprecation-reason',T.append(S);let P=parseInt(window.getComputedStyle(c).paddingBottom.replace(/px$/,''),10)||0,D=parseInt(window.getComputedStyle(c).maxHeight.replace(/px$/,''),10)||0,N=oe(()=>{ + c&&(c.style.paddingTop=C.scrollTop+P+'px',c.style.maxHeight=C.scrollTop+D+'px'); + },'handleScroll');C.addEventListener('scroll',N);let I;C.addEventListener('DOMNodeRemoved',I=oe(V=>{ + V.target===C&&(C.removeEventListener('scroll',N),C.removeEventListener('DOMNodeRemoved',I),c&&c.removeEventListener('click',s),c=null,f=null,m=null,v=null,g=null,y=null,w=null,T=null,S=null,I=null); + },'onRemoveFn')); + }if(f&&(f.textContent=A.text),m&&v&&g&&y)if(A.type){ + m.style.display='inline';let C=oe(x=>{ + (0,$e.isNonNullType)(x)?(y.textContent='!'+y.textContent,C(x.ofType)):(0,$e.isListType)(x)?(v.textContent+='[',y.textContent=']'+y.textContent,C(x.ofType)):g.textContent=x.name; + },'renderType');v.textContent='',y.textContent='',C(A.type); + }else v.textContent='',g.textContent='',y.textContent='',m.style.display='none';w&&(A.description?(w.style.display='block',w.innerHTML=BE.render(A.description)):(w.style.display='none',w.innerHTML='')),T&&S&&(A.deprecationReason?(T.style.display='block',S.innerHTML=BE.render(A.deprecationReason)):(T.style.display='none',S.innerHTML='')); + }); + });function s(l){ + if(!r||!n||!i||!(l.currentTarget instanceof HTMLElement))return;let c=l.currentTarget.textContent||'',f=r.getType(c);f&&(i.setVisiblePlugin(Hy),n.push({name:f.name,def:f}),o?.(f)); + }oe(s,'onClickHintInformation'); +}oe(e$,'onHasCompletion');function Uy(e,t){ + (0,te.useEffect)(()=>{ + e&&typeof t=='string'&&t!==e.getValue()&&e.setValue(t); + },[e,t]); +}oe(Uy,'useSynchronizeValue');function _y(e,t,r){ + (0,te.useEffect)(()=>{ + e&&e.setOption(t,r); + },[e,t,r]); +}oe(_y,'useSynchronizeOption');function gI(e,t,r,n,i){ + let{updateActiveTabValues:o}=$r({nonNull:!0,caller:i}),s=Pl();(0,te.useEffect)(()=>{ + if(!e)return;let l=_f(500,m=>{ + !s||r===null||s.set(r,m); + }),c=_f(100,m=>{ + o({[n]:m}); + }),f=oe((m,v)=>{ + if(!v)return;let g=m.getValue();l(g),c(g),t?.(g); + },'handleChange');return e.on('change',f),()=>e.off('change',f); + },[t,e,s,r,n,o]); +}oe(gI,'useChangeHandler');function yI(e,t,r){ + let{schema:n}=So({nonNull:!0,caller:r}),i=tc(),o=Jy();(0,te.useEffect)(()=>{ + if(!e)return;let s=oe((l,c)=>{ + e$(l,c,n,i,o,f=>{ + t?.({kind:'Type',type:f,schema:n||void 0}); + }); + },'handleCompletion');return e.on('hasCompletion',s),()=>e.off('hasCompletion',s); + },[t,e,i,o,n]); +}oe(yI,'useCompletion');function za(e,t,r){ + (0,te.useEffect)(()=>{ + if(e){ + for(let n of t)e.removeKeyMap(n);if(r){ + let n={};for(let i of t)n[i]=()=>r();e.addKeyMap(n); + } + } + },[e,t,r]); +}oe(za,'useKeyMap');function $y({caller:e,onCopyQuery:t}={}){ + let{queryEditor:r}=$r({nonNull:!0,caller:e||$y});return(0,te.useCallback)(()=>{ + if(!r)return;let n=r.getValue();(0,c_.default)(n),t?.(n); + },[r,t]); +}oe($y,'useCopyQuery');function Ju({caller:e}={}){ + let{queryEditor:t}=$r({nonNull:!0,caller:e||Ju}),{schema:r}=So({nonNull:!0,caller:Ju});return(0,te.useCallback)(()=>{ + let n=t?.documentAST,i=t?.getValue();!n||!i||t.setValue((0,$e.print)(G4(n,r))); + },[t,r]); +}oe(Ju,'useMergeQuery');function ed({caller:e}={}){ + let{queryEditor:t,headerEditor:r,variableEditor:n}=$r({nonNull:!0,caller:e||ed});return(0,te.useCallback)(()=>{ + if(n){ + let i=n.getValue();try{ + let o=JSON.stringify(JSON.parse(i),null,2);o!==i&&n.setValue(o); + }catch{} + }if(r){ + let i=r.getValue();try{ + let o=JSON.stringify(JSON.parse(i),null,2);o!==i&&r.setValue(o); + }catch{} + }if(t){ + let i=t.getValue(),o=(0,$e.print)((0,$e.parse)(i));o!==i&&t.setValue(o); + } + },[t,n,r]); +}oe(ed,'usePrettifyEditors');function WE({getDefaultFieldNames:e,caller:t}={}){ + let{schema:r}=So({nonNull:!0,caller:t||WE}),{queryEditor:n}=$r({nonNull:!0,caller:t||WE});return(0,te.useCallback)(()=>{ + if(!n)return;let i=n.getValue(),{insertions:o,result:s}=V4(r,i,e);return o&&o.length>0&&n.operation(()=>{ + let l=n.getCursor(),c=n.indexFromPos(l);n.setValue(s||'');let f=0,m=o.map(({index:g,string:y})=>n.markText(n.posFromIndex(g+f),n.posFromIndex(g+(f+=y.length)),{className:'auto-inserted-leaf',clearOnEnter:!0,title:'Automatically added leaf fields'}));setTimeout(()=>{ + for(let g of m)g.clear(); + },7e3);let v=c;for(let{index:g,string:y}of o)ge?.setValue(n),[e]);return(0,te.useMemo)(()=>[t,r],[t,r]); +}oe(bI,'useOperationsEditorState');function tTe(){ + let{variableEditor:e}=$r({nonNull:!0}),t=e?.getValue()??'',r=(0,te.useCallback)(n=>e?.setValue(n),[e]);return(0,te.useMemo)(()=>[t,r],[t,r]); +}oe(tTe,'useVariablesEditorState');function rh({editorTheme:e=$E,keyMap:t=eT,onEdit:r,readOnly:n=!1}={},i){ + let{initialHeaders:o,headerEditor:s,setHeaderEditor:l,shouldPersistHeaders:c}=$r({nonNull:!0,caller:i||rh}),f=ec(),m=Ju({caller:i||rh}),v=ed({caller:i||rh}),g=(0,te.useRef)(null);return(0,te.useEffect)(()=>{ + let y=!0;return nh([Promise.resolve().then(()=>(vJ(),hJ)).then(w=>w.j)]).then(w=>{ + if(!y)return;let T=g.current;if(!T)return;let S=w(T,{value:o,lineNumbers:!0,tabSize:2,mode:{name:'javascript',json:!0},theme:e,autoCloseBrackets:!0,matchBrackets:!0,showCursorWhenSelecting:!0,readOnly:n?'nocursor':!1,foldGutter:!0,gutters:['CodeMirror-linenumbers','CodeMirror-foldgutter'],extraKeys:tT});S.addKeyMap({'Cmd-Space'(){ + S.showHint({completeSingle:!1,container:T}); + },'Ctrl-Space'(){ + S.showHint({completeSingle:!1,container:T}); + },'Alt-Space'(){ + S.showHint({completeSingle:!1,container:T}); + },'Shift-Space'(){ + S.showHint({completeSingle:!1,container:T}); + }}),S.on('keyup',(A,b)=>{ + let{code:C,key:x,shiftKey:k}=b,P=C.startsWith('Key'),D=!k&&C.startsWith('Digit');(P||D||x==='_'||x==='"')&&A.execCommand('autocomplete'); + }),l(S); + }),()=>{ + y=!1; + }; + },[e,o,n,l]),_y(s,'keyMap',t),gI(s,r,c?UE:null,'headers',rh),za(s,['Cmd-Enter','Ctrl-Enter'],f?.run),za(s,['Shift-Ctrl-P'],v),za(s,['Shift-Ctrl-M'],m),g; +}oe(rh,'useHeaderEditor');var UE='headers',rTe=Array.from({length:11},(e,t)=>String.fromCharCode(8192+t)).concat(['\u2028','\u2029','\u202F','\xA0']),nTe=new RegExp('['+rTe.join('')+']','g');function t$(e){ + return e.replace(nTe,' '); +}oe(t$,'normalizeWhitespace');function Xu({editorTheme:e=$E,keyMap:t=eT,onClickReference:r,onCopyQuery:n,onEdit:i,readOnly:o=!1}={},s){ + let{schema:l}=So({nonNull:!0,caller:s||Xu}),{externalFragments:c,initialQuery:f,queryEditor:m,setOperationName:v,setQueryEditor:g,validationRules:y,variableEditor:w,updateActiveTabValues:T}=$r({nonNull:!0,caller:s||Xu}),S=ec(),A=Pl(),b=tc(),C=Jy(),x=$y({caller:s||Xu,onCopyQuery:n}),k=Ju({caller:s||Xu}),P=ed({caller:s||Xu}),D=(0,te.useRef)(null),N=(0,te.useRef)(),I=(0,te.useRef)(()=>{});(0,te.useEffect)(()=>{ + I.current=B=>{ + if(!(!b||!C)){ + switch(C.setVisiblePlugin(Hy),B.kind){ + case'Type':{b.push({name:B.type.name,def:B.type});break;}case'Field':{b.push({name:B.field.name,def:B.field});break;}case'Argument':{B.field&&b.push({name:B.field.name,def:B.field});break;}case'EnumValue':{B.type&&b.push({name:B.type.name,def:B.type});break;} + }r?.(B); + } + }; + },[b,r,C]),(0,te.useEffect)(()=>{ + let B=!0;return nh([Promise.resolve().then(()=>(AJ(),bJ)).then(U=>U.c),Promise.resolve().then(()=>(GM(),BM)).then(U=>U.s),Promise.resolve().then(()=>(EJ(),wwe)),Promise.resolve().then(()=>(CJ(),Twe)),Promise.resolve().then(()=>(jJ(),Lwe)),Promise.resolve().then(()=>(zJ(),Mwe)),Promise.resolve().then(()=>(HJ(),Uwe))]).then(U=>{ + if(!B)return;N.current=U;let z=D.current;if(!z)return;let j=U(z,{value:f,lineNumbers:!0,tabSize:2,foldGutter:!0,mode:'graphql',theme:e,autoCloseBrackets:!0,matchBrackets:!0,showCursorWhenSelecting:!0,readOnly:o?'nocursor':!1,lint:{schema:void 0,validationRules:null,externalFragments:void 0},hintOptions:{schema:void 0,closeOnUnfocus:!1,completeSingle:!1,container:z,externalFragments:void 0},info:{schema:void 0,renderDescription:K=>BE.render(K),onClick(K){ + I.current(K); + }},jump:{schema:void 0,onClick(K){ + I.current(K); + }},gutters:['CodeMirror-linenumbers','CodeMirror-foldgutter'],extraKeys:{...tT,'Cmd-S'(){},'Ctrl-S'(){}}});j.addKeyMap({'Cmd-Space'(){ + j.showHint({completeSingle:!0,container:z}); + },'Ctrl-Space'(){ + j.showHint({completeSingle:!0,container:z}); + },'Alt-Space'(){ + j.showHint({completeSingle:!0,container:z}); + },'Shift-Space'(){ + j.showHint({completeSingle:!0,container:z}); + },'Shift-Alt-Space'(){ + j.showHint({completeSingle:!0,container:z}); + }}),j.on('keyup',(K,ee)=>{ + iTe.test(ee.key)&&K.execCommand('autocomplete'); + });let J=!1;j.on('startCompletion',()=>{ + J=!0; + }),j.on('endCompletion',()=>{ + J=!1; + }),j.on('keydown',(K,ee)=>{ + ee.key==='Escape'&&J&&ee.stopPropagation(); + }),j.on('beforeChange',(K,ee)=>{ + var re;if(ee.origin==='paste'){ + let se=ee.text.map(t$);(re=ee.update)==null||re.call(ee,ee.from,ee.to,se); + } + }),j.documentAST=null,j.operationName=null,j.operations=null,j.variableToType=null,g(j); + }),()=>{ + B=!1; + }; + },[e,f,o,g]),_y(m,'keyMap',t),(0,te.useEffect)(()=>{ + if(!m)return;function B(z){ + var j;let J=Gv(l,z.getValue()),K=z4(z.operations??void 0,z.operationName??void 0,J?.operations);return z.documentAST=J?.documentAST??null,z.operationName=K??null,z.operations=J?.operations??null,w&&(w.state.lint.linterOptions.variableToType=J?.variableToType,w.options.lint.variableToType=J?.variableToType,w.options.hintOptions.variableToType=J?.variableToType,(j=N.current)==null||j.signal(w,'change',w)),J?{...J,operationName:K}:null; + }oe(B,'getAndUpdateOperationFacts');let U=_f(100,z=>{ + let j=z.getValue();A?.set(o$,j);let J=z.operationName,K=B(z);K?.operationName!==void 0&&A?.set(oTe,K.operationName),i?.(j,K?.documentAST),K!=null&&K.operationName&&J!==K.operationName&&v(K.operationName),T({query:j,operationName:K?.operationName??null}); + });return B(m),m.on('change',U),()=>m.off('change',U); + },[i,m,l,v,A,w,T]),r$(m,l??null,N),n$(m,y??null,N),i$(m,c,N),yI(m,r||null,Xu);let V=S?.run,G=(0,te.useCallback)(()=>{ + var B;if(!V||!m||!m.operations||!m.hasFocus()){ + V?.();return; + }let U=m.indexFromPos(m.getCursor()),z;for(let j of m.operations)j.loc&&j.loc.start<=U&&j.loc.end>=U&&(z=(B=j.name)==null?void 0:B.value);z&&z!==m.operationName&&v(z),V(); + },[m,V,v]);return za(m,['Cmd-Enter','Ctrl-Enter'],G),za(m,['Shift-Ctrl-C'],x),za(m,['Shift-Ctrl-P','Shift-Ctrl-F'],P),za(m,['Shift-Ctrl-M'],k),D; +}oe(Xu,'useQueryEditor');function r$(e,t,r){ + (0,te.useEffect)(()=>{ + if(!e)return;let n=e.options.lint.schema!==t;e.state.lint.linterOptions.schema=t,e.options.lint.schema=t,e.options.hintOptions.schema=t,e.options.info.schema=t,e.options.jump.schema=t,n&&r.current&&r.current.signal(e,'change',e); + },[e,t,r]); +}oe(r$,'useSynchronizeSchema');function n$(e,t,r){ + (0,te.useEffect)(()=>{ + if(!e)return;let n=e.options.lint.validationRules!==t;e.state.lint.linterOptions.validationRules=t,e.options.lint.validationRules=t,n&&r.current&&r.current.signal(e,'change',e); + },[e,t,r]); +}oe(n$,'useSynchronizeValidationRules');function i$(e,t,r){ + let n=(0,te.useMemo)(()=>[...t.values()],[t]);(0,te.useEffect)(()=>{ + if(!e)return;let i=e.options.lint.externalFragments!==n;e.state.lint.linterOptions.externalFragments=n,e.options.lint.externalFragments=n,e.options.hintOptions.externalFragments=n,i&&r.current&&r.current.signal(e,'change',e); + },[e,n,r]); +}oe(i$,'useSynchronizeExternalFragments');var iTe=/^[a-zA-Z0-9_@(]$/,o$='query',oTe='operationName';function a$({defaultQuery:e,defaultHeaders:t,headers:r,defaultTabs:n,query:i,variables:o,storage:s,shouldPersistHeaders:l}){ + let c=s?.get(Wy);try{ + if(!c)throw new Error('Storage for tabs is empty');let f=JSON.parse(c),m=l?r:void 0;if(s$(f)){ + let v=Qy({query:i,variables:o,headers:m}),g=-1;for(let y=0;y=0)f.activeTabIndex=g;else{ + let y=i?rT(i):null;f.tabs.push({id:EI(),hash:v,title:y||TI,query:i,variables:o,headers:r,operationName:y,response:null}),f.activeTabIndex=f.tabs.length-1; + }return f; + }throw new Error('Storage for tabs is invalid'); + }catch{ + return{activeTabIndex:0,tabs:(n||[{query:i??e,variables:o,headers:r??t}]).map(xI)}; + } +}oe(a$,'getDefaultTabState');function s$(e){ + return e&&typeof e=='object'&&!Array.isArray(e)&&u$(e,'activeTabIndex')&&'tabs'in e&&Array.isArray(e.tabs)&&e.tabs.every(l$); +}oe(s$,'isTabsState');function l$(e){ + return e&&typeof e=='object'&&!Array.isArray(e)&&uI(e,'id')&&uI(e,'title')&&th(e,'query')&&th(e,'variables')&&th(e,'headers')&&th(e,'operationName')&&th(e,'response'); +}oe(l$,'isTabState');function u$(e,t){ + return t in e&&typeof e[t]=='number'; +}oe(u$,'hasNumberKey');function uI(e,t){ + return t in e&&typeof e[t]=='string'; +}oe(uI,'hasStringKey');function th(e,t){ + return t in e&&(typeof e[t]=='string'||e[t]===null); +}oe(th,'hasStringOrNullKey');function c$({queryEditor:e,variableEditor:t,headerEditor:r,responseEditor:n}){ + return(0,te.useCallback)(i=>{ + let o=e?.getValue()??null,s=t?.getValue()??null,l=r?.getValue()??null,c=e?.operationName??null,f=n?.getValue()??null;return wI(i,{query:o,variables:s,headers:l,response:f,operationName:c}); + },[e,t,r,n]); +}oe(c$,'useSynchronizeActiveTabValues');function AI(e,t=!1){ + return JSON.stringify(e,(r,n)=>r==='hash'||r==='response'||!t&&r==='headers'?null:n); +}oe(AI,'serializeTabState');function f$({storage:e,shouldPersistHeaders:t}){ + let r=(0,te.useMemo)(()=>_f(500,n=>{ + e?.set(Wy,n); + }),[e]);return(0,te.useCallback)(n=>{ + r(AI(n,t)); + },[t,r]); +}oe(f$,'useStoreTabs');function d$({queryEditor:e,variableEditor:t,headerEditor:r,responseEditor:n}){ + return(0,te.useCallback)(({query:i,variables:o,headers:s,response:l})=>{ + e?.setValue(i??''),t?.setValue(o??''),r?.setValue(s??''),n?.setValue(l??''); + },[r,e,n,t]); +}oe(d$,'useSetEditorValues');function xI({query:e=null,variables:t=null,headers:r=null}={}){ + return{id:EI(),hash:Qy({query:e,variables:t,headers:r}),title:e&&rT(e)||TI,query:e,variables:t,headers:r,operationName:null,response:null}; +}oe(xI,'createTab');function wI(e,t){ + return{...e,tabs:e.tabs.map((r,n)=>{ + if(n!==e.activeTabIndex)return r;let i={...r,...t};return{...i,hash:Qy(i),title:i.operationName||(i.query?rT(i.query):void 0)||TI}; + })}; +}oe(wI,'setPropertiesInActiveTab');function EI(){ + let e=oe(()=>Math.floor((1+Math.random())*65536).toString(16).slice(1),'s4');return`${e()}${e()}-${e()}-${e()}-${e()}-${e()}${e()}${e()}`; +}oe(EI,'guid');function Qy(e){ + return[e.query??'',e.variables??'',e.headers??''].join('|'); +}oe(Qy,'hashFromTabContents');function rT(e){ + let t=/^(?!#).*(query|subscription|mutation)\s+([a-zA-Z0-9_]+)/m.exec(e);return t?.[2]??null; +}oe(rT,'fuzzyExtractOperationName');function p$(e){ + let t=e?.get(Wy);if(t){ + let r=JSON.parse(t);e?.set(Wy,JSON.stringify(r,(n,i)=>n==='headers'?null:i)); + } +}oe(p$,'clearHeadersFromTabs');var TI='',Wy='tabState';function Jf({editorTheme:e=$E,keyMap:t=eT,onClickReference:r,onEdit:n,readOnly:i=!1}={},o){ + let{initialVariables:s,variableEditor:l,setVariableEditor:c}=$r({nonNull:!0,caller:o||Jf}),f=ec(),m=Ju({caller:o||Jf}),v=ed({caller:o||Jf}),g=(0,te.useRef)(null),y=(0,te.useRef)();return(0,te.useEffect)(()=>{ + let w=!0;return nh([Promise.resolve().then(()=>(ZJ(),Gwe)),Promise.resolve().then(()=>(i_(),Hwe)),Promise.resolve().then(()=>(o_(),Xwe))]).then(T=>{ + if(!w)return;y.current=T;let S=g.current;if(!S)return;let A=T(S,{value:s,lineNumbers:!0,tabSize:2,mode:'graphql-variables',theme:e,autoCloseBrackets:!0,matchBrackets:!0,showCursorWhenSelecting:!0,readOnly:i?'nocursor':!1,foldGutter:!0,lint:{variableToType:void 0},hintOptions:{closeOnUnfocus:!1,completeSingle:!1,container:S,variableToType:void 0},gutters:['CodeMirror-linenumbers','CodeMirror-foldgutter'],extraKeys:tT});A.addKeyMap({'Cmd-Space'(){ + A.showHint({completeSingle:!1,container:S}); + },'Ctrl-Space'(){ + A.showHint({completeSingle:!1,container:S}); + },'Alt-Space'(){ + A.showHint({completeSingle:!1,container:S}); + },'Shift-Space'(){ + A.showHint({completeSingle:!1,container:S}); + }}),A.on('keyup',(b,C)=>{ + let{code:x,key:k,shiftKey:P}=C,D=x.startsWith('Key'),N=!P&&x.startsWith('Digit');(D||N||k==='_'||k==='"')&&b.execCommand('autocomplete'); + }),c(A); + }),()=>{ + w=!1; + }; + },[e,s,i,c]),_y(l,'keyMap',t),gI(l,n,m$,'variables',Jf),yI(l,r||null,Jf),za(l,['Cmd-Enter','Ctrl-Enter'],f?.run),za(l,['Shift-Ctrl-P'],v),za(l,['Shift-Ctrl-M'],m),g; +}oe(Jf,'useVariableEditor');var m$='variables',h$=_u('EditorContext');function v$(e){ + let t=Pl(),[r,n]=(0,te.useState)(null),[i,o]=(0,te.useState)(null),[s,l]=(0,te.useState)(null),[c,f]=(0,te.useState)(null),[m,v]=(0,te.useState)(()=>{ + let K=t?.get(rI)!==null;return e.shouldPersistHeaders!==!1&&K?t?.get(rI)==='true':!!e.shouldPersistHeaders; + });Uy(r,e.headers),Uy(i,e.query),Uy(s,e.response),Uy(c,e.variables);let g=f$({storage:t,shouldPersistHeaders:m}),[y]=(0,te.useState)(()=>{ + let K=e.query??t?.get(o$)??null,ee=e.variables??t?.get(m$)??null,re=e.headers??t?.get(UE)??null,se=e.response??'',xe=a$({query:K,variables:ee,headers:re,defaultTabs:e.defaultTabs,defaultQuery:e.defaultQuery||aTe,defaultHeaders:e.defaultHeaders,storage:t,shouldPersistHeaders:m});return g(xe),{query:K??(xe.activeTabIndex===0?xe.tabs[0].query:null)??'',variables:ee??'',headers:re??e.defaultHeaders??'',response:se,tabState:xe}; + }),[w,T]=(0,te.useState)(y.tabState),S=(0,te.useCallback)(K=>{ + if(K){ + t?.set(UE,r?.getValue()??'');let ee=AI(w,!0);t?.set(Wy,ee); + }else t?.set(UE,''),p$(t);v(K),t?.set(rI,K.toString()); + },[t,w,r]),A=(0,te.useRef)();(0,te.useEffect)(()=>{ + let K=!!e.shouldPersistHeaders;A.current!==K&&(S(K),A.current=K); + },[e.shouldPersistHeaders,S]);let b=c$({queryEditor:i,variableEditor:c,headerEditor:r,responseEditor:s}),C=d$({queryEditor:i,variableEditor:c,headerEditor:r,responseEditor:s}),{onTabChange:x,defaultHeaders:k,children:P}=e,D=(0,te.useCallback)(()=>{ + T(K=>{ + let ee=b(K),re={tabs:[...ee.tabs,xI({headers:k})],activeTabIndex:ee.tabs.length};return g(re),C(re.tabs[re.activeTabIndex]),x?.(re),re; + }); + },[k,x,C,g,b]),N=(0,te.useCallback)(K=>{ + T(ee=>{ + let re={...ee,activeTabIndex:K};return g(re),C(re.tabs[re.activeTabIndex]),x?.(re),re; + }); + },[x,C,g]),I=(0,te.useCallback)(K=>{ + T(ee=>{ + let re=ee.tabs[ee.activeTabIndex],se={tabs:K,activeTabIndex:K.indexOf(re)};return g(se),C(se.tabs[se.activeTabIndex]),x?.(se),se; + }); + },[x,C,g]),V=(0,te.useCallback)(K=>{ + T(ee=>{ + let re={tabs:ee.tabs.filter((se,xe)=>K!==xe),activeTabIndex:Math.max(ee.activeTabIndex-1,0)};return g(re),C(re.tabs[re.activeTabIndex]),x?.(re),re; + }); + },[x,C,g]),G=(0,te.useCallback)(K=>{ + T(ee=>{ + let re=wI(ee,K);return g(re),x?.(re),re; + }); + },[x,g]),{onEditOperationName:B}=e,U=(0,te.useCallback)(K=>{ + i&&(i.operationName=K,G({operationName:K}),B?.(K)); + },[B,i,G]),z=(0,te.useMemo)(()=>{ + let K=new Map;if(Array.isArray(e.externalFragments))for(let ee of e.externalFragments)K.set(ee.name.value,ee);else if(typeof e.externalFragments=='string')(0,$e.visit)((0,$e.parse)(e.externalFragments,{}),{FragmentDefinition(ee){ + K.set(ee.name.value,ee); + }});else if(e.externalFragments)throw new Error('The `externalFragments` prop must either be a string that contains the fragment definitions in SDL or a list of FragmentDefinitionNode objects.');return K; + },[e.externalFragments]),j=(0,te.useMemo)(()=>e.validationRules||[],[e.validationRules]),J=(0,te.useMemo)(()=>({...w,addTab:D,changeTab:N,moveTab:I,closeTab:V,updateActiveTabValues:G,headerEditor:r,queryEditor:i,responseEditor:s,variableEditor:c,setHeaderEditor:n,setQueryEditor:o,setResponseEditor:l,setVariableEditor:f,setOperationName:U,initialQuery:y.query,initialVariables:y.variables,initialHeaders:y.headers,initialResponse:y.response,externalFragments:z,validationRules:j,shouldPersistHeaders:m,setShouldPersistHeaders:S}),[w,D,N,I,V,G,r,i,s,c,U,y,z,j,m,S]);return(0,Y.jsx)(h$.Provider,{value:J,children:P}); +}oe(v$,'EditorContextProvider');var $r=$u(h$),rI='shouldPersistHeaders',aTe=`# Welcome to GraphiQL # # GraphiQL is an in-browser tool for writing, validating, and # testing GraphQL queries. @@ -306,8 +17594,218 @@ b`.split(/\n/).length!=3?function(a){for(var u=0,p=[],d=a.length;u<=d;){var h=a. # Auto Complete: Ctrl-Space (or just start typing) # -`;function Yy({isHidden:e,...t}){let{headerEditor:r}=$r({nonNull:!0,caller:Yy}),n=rh(t,Yy);return(0,te.useEffect)(()=>{e||r==null||r.refresh()},[r,e]),(0,Y.jsx)("div",{className:gn("graphiql-editor",e&&"hidden"),ref:n})}oe(Yy,"HeaderEditor");function YE(e){var t;let[r,n]=(0,te.useState)({width:null,height:null}),[i,o]=(0,te.useState)(null),s=(0,te.useRef)(null),l=(t=CI(e.token))==null?void 0:t.href;(0,te.useEffect)(()=>{if(s.current){if(!l){n({width:null,height:null}),o(null);return}fetch(l,{method:"HEAD"}).then(f=>{o(f.headers.get("Content-Type"))}).catch(()=>{o(null)})}},[l]);let c=r.width!==null&&r.height!==null?(0,Y.jsxs)("div",{children:[r.width,"x",r.height,i===null?null:" "+i]}):null;return(0,Y.jsxs)("div",{children:[(0,Y.jsx)("img",{onLoad:()=>{var f,m;n({width:((f=s.current)==null?void 0:f.naturalWidth)??null,height:((m=s.current)==null?void 0:m.naturalHeight)??null})},ref:s,src:l}),c]})}oe(YE,"ImagePreview");YE.shouldRender=oe(function(e){let t=CI(e);return t?g$(t):!1},"shouldRender");function CI(e){if(e.type!=="string")return;let t=e.string.slice(1).slice(0,-1).trim();try{let{location:r}=window;return new URL(t,r.protocol+"//"+r.host)}catch{return}}oe(CI,"tokenToURL");function g$(e){return/(bmp|gif|jpeg|jpg|png|svg)$/.test(e.pathname)}oe(g$,"isImageURL");function nT(e){let t=Xu(e,nT);return(0,Y.jsx)("div",{className:"graphiql-editor",ref:t})}oe(nT,"QueryEditor");function KE({responseTooltip:e,editorTheme:t=$E,keyMap:r=eT}={},n){let{fetchError:i,validationErrors:o}=So({nonNull:!0,caller:n||KE}),{initialResponse:s,responseEditor:l,setResponseEditor:c}=$r({nonNull:!0,caller:n||KE}),f=(0,te.useRef)(null),m=(0,te.useRef)(e);return(0,te.useEffect)(()=>{m.current=e},[e]),(0,te.useEffect)(()=>{let v=!0;return nh([Promise.resolve().then(()=>(RM(),PM)).then(g=>g.f),Promise.resolve().then(()=>(LM(),DM)).then(g=>g.b),Promise.resolve().then(()=>(ky(),FM)).then(g=>g.d),Promise.resolve().then(()=>(GM(),BM)).then(g=>g.s),Promise.resolve().then(()=>(IM(),MM)).then(g=>g.s),Promise.resolve().then(()=>(jM(),qM)).then(g=>g.j),Promise.resolve().then(()=>(UM(),VM)).then(g=>g.s),Promise.resolve().then(()=>(a_(),_we)),Promise.resolve().then(()=>(WM(),Nwe))],{useCommonAddons:!1}).then(g=>{if(!v)return;let y=document.createElement("div");g.registerHelper("info","graphql-results",(S,A,b,C)=>{let x=[],k=m.current;return k&&x.push((0,Y.jsx)(k,{pos:C,token:S})),YE.shouldRender(S)&&x.push((0,Y.jsx)(YE,{token:S},"image-preview")),x.length?(iI.default.render(x,y),y):(iI.default.unmountComponentAtNode(y),null)});let w=f.current;if(!w)return;let T=g(w,{value:s,lineWrapping:!0,readOnly:!0,theme:t,mode:"graphql-results",foldGutter:!0,gutters:["CodeMirror-foldgutter"],info:!0,extraKeys:tT});c(T)}),()=>{v=!1}},[t,s,c]),_y(l,"keyMap",r),(0,te.useEffect)(()=>{i&&l?.setValue(i),o.length>0&&l?.setValue(fp(o))},[l,i,o]),f}oe(KE,"useResponseEditor");function iT(e){let t=KE(e,iT);return(0,Y.jsx)("section",{className:"result-window","aria-label":"Result Window","aria-live":"polite","aria-atomic":"true",ref:t})}oe(iT,"ResponseEditor");function Ky({isHidden:e,...t}){let{variableEditor:r}=$r({nonNull:!0,caller:Ky}),n=Jf(t,Ky);return(0,te.useEffect)(()=>{r&&!e&&r.refresh()},[r,e]),(0,Y.jsx)("div",{className:gn("graphiql-editor",e&&"hidden"),ref:n})}oe(Ky,"VariableEditor");function oT({children:e,dangerouslyAssumeSchemaIsValid:t,defaultQuery:r,defaultHeaders:n,defaultTabs:i,externalFragments:o,fetcher:s,getDefaultFieldNames:l,headers:c,inputValueDeprecation:f,introspectionQueryName:m,maxHistoryLength:v,onEditOperationName:g,onSchemaChange:y,onTabChange:w,onTogglePluginVisibility:T,operationName:S,plugins:A,query:b,response:C,schema:x,schemaDescription:k,shouldPersistHeaders:P,storage:D,validationRules:N,variables:I,visiblePlugin:V}){return(0,Y.jsx)(p_,{storage:D,children:(0,Y.jsx)(P_,{maxHistoryLength:v,children:(0,Y.jsx)(v$,{defaultQuery:r,defaultHeaders:n,defaultTabs:i,externalFragments:o,headers:c,onEditOperationName:g,onTabChange:w,query:b,response:C,shouldPersistHeaders:P,validationRules:N,variables:I,children:(0,Y.jsx)(pI,{dangerouslyAssumeSchemaIsValid:t,fetcher:s,inputValueDeprecation:f,introspectionQueryName:m,onSchemaChange:y,schema:x,schemaDescription:k,children:(0,Y.jsx)(GE,{getDefaultFieldNames:l,fetcher:s,operationName:S,children:(0,Y.jsx)(mI,{children:(0,Y.jsx)($_,{onTogglePluginVisibility:T,plugins:A,visiblePlugin:V,children:e})})})})})})})}oe(oT,"GraphiQLProvider");function SI(){let e=Pl(),[t,r]=(0,te.useState)(()=>{if(!e)return null;let i=e.get(nI);switch(i){case"light":return"light";case"dark":return"dark";default:return typeof i=="string"&&e.set(nI,""),null}});(0,te.useLayoutEffect)(()=>{typeof window>"u"||(document.body.classList.remove("graphiql-light","graphiql-dark"),t&&document.body.classList.add(`graphiql-${t}`))},[t]);let n=(0,te.useCallback)(i=>{e?.set(nI,i||""),r(i)},[e]);return(0,te.useMemo)(()=>({theme:t,setTheme:n}),[t,n])}oe(SI,"useTheme");var nI="theme";function e0({defaultSizeRelation:e=sTe,direction:t,initiallyHidden:r,onHiddenElementChange:n,sizeThresholdFirst:i=100,sizeThresholdSecond:o=100,storageKey:s}){let l=Pl(),c=(0,te.useMemo)(()=>_f(500,b=>{s&&l?.set(s,b)}),[l,s]),[f,m]=(0,te.useState)(()=>{let b=s&&l?.get(s);return b===qE||r==="first"?"first":b===jE||r==="second"?"second":null}),v=(0,te.useCallback)(b=>{b!==f&&(m(b),n?.(b))},[f,n]),g=(0,te.useRef)(null),y=(0,te.useRef)(null),w=(0,te.useRef)(null),T=(0,te.useRef)(`${e}`);(0,te.useLayoutEffect)(()=>{let b=s&&l?.get(s)||T.current;g.current&&(g.current.style.display="flex",g.current.style.flex=b===qE||b===jE?T.current:b),w.current&&(w.current.style.display="flex",w.current.style.flex="1"),y.current&&(y.current.style.display="flex")},[t,l,s]);let S=(0,te.useCallback)(b=>{let C=b==="first"?g.current:w.current;if(C&&(C.style.left="-1000px",C.style.position="absolute",C.style.opacity="0",C.style.height="500px",C.style.width="500px",g.current)){let x=parseFloat(g.current.style.flex);(!Number.isFinite(x)||x<1)&&(g.current.style.flex="1")}},[]),A=(0,te.useCallback)(b=>{let C=b==="first"?g.current:w.current;if(C&&(C.style.width="",C.style.height="",C.style.opacity="",C.style.position="",C.style.left="",l&&s)){let x=l.get(s);g.current&&x!==qE&&x!==jE&&(g.current.style.flex=x||T.current)}},[l,s]);return(0,te.useLayoutEffect)(()=>{f==="first"?S("first"):A("first"),f==="second"?S("second"):A("second")},[f,S,A]),(0,te.useEffect)(()=>{if(!y.current||!g.current||!w.current)return;let b=y.current,C=g.current,x=C.parentElement,k=t==="horizontal"?"clientX":"clientY",P=t==="horizontal"?"left":"top",D=t==="horizontal"?"right":"bottom",N=t==="horizontal"?"clientWidth":"clientHeight";function I(G){G.preventDefault();let B=G[k]-b.getBoundingClientRect()[P];function U(j){if(j.buttons===0)return z();let J=j[k]-x.getBoundingClientRect()[P]-B,K=x.getBoundingClientRect()[D]-j[k]+B-b[N];if(J{b.removeEventListener("mousedown",I),b.removeEventListener("dblclick",V)}},[t,v,i,o,c]),(0,te.useMemo)(()=>({dragBarRef:y,hiddenElement:f,firstRef:g,setHiddenElement:m,secondRef:w}),[f,m])}oe(e0,"useDragResize");var sTe=1,qE="hide-first",jE="hide-second",t0=(0,te.forwardRef)(({label:e,onClick:t,...r},n)=>{let[i,o]=(0,te.useState)(null),s=(0,te.useCallback)(l=>{try{t?.(l),o(null)}catch(c){o(c instanceof Error?c:new Error(`Toolbar button click failed: ${c}`))}},[t]);return(0,Y.jsx)(ti,{label:e,children:(0,Y.jsx)(pn,{...r,ref:n,type:"button",className:gn("graphiql-toolbar-button",i&&"error",r.className),onClick:s,"aria-label":i?i.message:e,"aria-invalid":i?"true":r["aria-invalid"]})})});t0.displayName="ToolbarButton";function Xy(){let{queryEditor:e,setOperationName:t}=$r({nonNull:!0,caller:Xy}),{isFetching:r,isSubscribed:n,operationName:i,run:o,stop:s}=ec({nonNull:!0,caller:Xy}),l=e?.operations||[],c=l.length>1&&typeof i!="string",f=r||n,m=`${f?"Stop":"Execute"} query (Ctrl-Enter)`,v={type:"button",className:"graphiql-execute-button",children:f?(0,Y.jsx)(XEe,{}):(0,Y.jsx)(QEe,{}),"aria-label":m};return c&&!f?(0,Y.jsxs)(Zu,{children:[(0,Y.jsx)(ti,{label:m,children:(0,Y.jsx)(Zu.Button,{...v})}),(0,Y.jsx)(Zu.Content,{children:l.map((g,y)=>{let w=g.name?g.name.value:``;return(0,Y.jsx)(Zu.Item,{onSelect:()=>{var T;let S=(T=g.name)==null?void 0:T.value;e&&S&&S!==e.operationName&&t(S),o()},children:w},`${w}-${y}`)})})]}):(0,Y.jsx)(ti,{label:m,children:(0,Y.jsx)("button",{...v,onClick:()=>{f?s():o()}})})}oe(Xy,"ExecuteButton");var lTe=oe(({button:e,children:t,label:r,...n})=>(0,Y.jsxs)(Zu,{...n,children:[(0,Y.jsx)(ti,{label:r,children:(0,Y.jsx)(Zu.Button,{className:gn("graphiql-un-styled graphiql-toolbar-menu",n.className),"aria-label":r,children:e})}),(0,Y.jsx)(Zu.Content,{children:t})]}),"ToolbarMenuRoot"),nGe=Zy(lTe,{Item:Zu.Item});var P$=fe(L$(),1),jn=fe(Ee(),1),RTe={keyword:"hsl(var(--color-primary))",def:"hsl(var(--color-tertiary))",property:"hsl(var(--color-info))",qualifier:"hsl(var(--color-secondary))",attribute:"hsl(var(--color-tertiary))",number:"hsl(var(--color-success))",string:"hsl(var(--color-warning))",builtin:"hsl(var(--color-success))",string2:"hsl(var(--color-secondary))",variable:"hsl(var(--color-secondary))",atom:"hsl(var(--color-tertiary))"},MTe=jn.default.createElement("svg",{viewBox:"0 -4 13 15",style:{color:"hsla(var(--color-neutral), var(--alpha-tertiary, 0.4))",marginRight:"var(--px-4)",height:"var(--px-16)",width:"var(--px-16)"}},jn.default.createElement("path",{d:"M3.35355 6.85355L6.14645 9.64645C6.34171 9.84171 6.65829 9.84171 6.85355 9.64645L9.64645 6.85355C9.96143 6.53857 9.73835 6 9.29289 6L3.70711 6C3.26165 6 3.03857 6.53857 3.35355 6.85355Z",fill:"currentColor"})),ITe=jn.default.createElement("svg",{viewBox:"0 -2 13 15",style:{color:"hsla(var(--color-neutral), var(--alpha-tertiary, 0.4))",marginRight:"var(--px-4)",height:"var(--px-16)",width:"var(--px-16)"}},jn.default.createElement("path",{d:"M6.35355 11.1464L9.14645 8.35355C9.34171 8.15829 9.34171 7.84171 9.14645 7.64645L6.35355 4.85355C6.03857 4.53857 5.5 4.76165 5.5 5.20711V10.7929C5.5 11.2383 6.03857 11.4614 6.35355 11.1464Z",fill:"currentColor"})),FTe=jn.default.createElement("svg",{viewBox:"0 0 15 15",style:{color:"hsla(var(--color-neutral), var(--alpha-tertiary, 0.4))",marginRight:"var(--px-4)",height:"var(--px-16)",width:"var(--px-16)"}},jn.default.createElement("circle",{cx:"7.5",cy:"7.5",r:"6",stroke:"currentColor",fill:"none"})),qTe=jn.default.createElement("svg",{viewBox:"0 0 15 15",style:{color:"hsl(var(--color-info))",marginRight:"var(--px-4)",height:"var(--px-16)",width:"var(--px-16)"}},jn.default.createElement("circle",{cx:"7.5",cy:"7.5",r:"7.5",fill:"currentColor"}),jn.default.createElement("path",{d:"M4.64641 7.00106L6.8801 9.23256L10.5017 5.61325",fill:"none",stroke:"white",strokeWidth:"1.5"})),jTe={buttonStyle:{backgroundColor:"transparent",border:"none",color:"hsla(var(--color-neutral), var(--alpha-secondary, 0.6))",cursor:"pointer",fontSize:"1em"},explorerActionsStyle:{padding:"var(--px-8) var(--px-4)"},actionButtonStyle:{backgroundColor:"transparent",border:"none",color:"hsla(var(--color-neutral), var(--alpha-secondary, 0.6))",cursor:"pointer",fontSize:"1em"}};function VTe(e){let{setOperationName:t}=$r({nonNull:!0}),{schema:r}=So({nonNull:!0}),{run:n}=ec({nonNull:!0}),i=(0,jn.useCallback)(l=>{l&&t(l),n()},[n,t]),[o,s]=bI();return jn.default.createElement(P$.Explorer,{schema:r,onRunOperation:i,explorerIsOpen:!0,colors:RTe,arrowOpen:MTe,arrowClosed:ITe,checkboxUnchecked:FTe,checkboxChecked:qTe,styles:jTe,query:o,onEdit:s,...e})}function R$(e){return{title:"GraphiQL Explorer",icon:()=>jn.default.createElement("svg",{height:"1em",strokeWidth:"1.5",viewBox:"0 0 24 24",fill:"none"},jn.default.createElement("path",{d:"M18 6H20M22 6H20M20 6V4M20 6V8",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round"}),jn.default.createElement("path",{d:"M21.4 20H2.6C2.26863 20 2 19.7314 2 19.4V11H21.4C21.7314 11 22 11.2686 22 11.6V19.4C22 19.7314 21.7314 20 21.4 20Z",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round"}),jn.default.createElement("path",{d:"M2 11V4.6C2 4.26863 2.26863 4 2.6 4H8.77805C8.92127 4 9.05977 4.05124 9.16852 4.14445L12.3315 6.85555C12.4402 6.94876 12.5787 7 12.722 7H14",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round"})),content:()=>jn.default.createElement(VTe,{...e})}}var ae=fe(Ee());var PI=function(){return PI=Object.assign||function(e){for(var t,r=1,n=arguments.length;r0)&&!(i=n.next()).done;)o.push(i.value)}catch(l){s={error:l}}finally{try{i&&!i.done&&(r=n.return)&&r.call(n)}finally{if(s)throw s.error}}return o},BTe=parseInt(ae.default.version.slice(0,2),10);if(BTe<16)throw new Error(["GraphiQL 0.18.0 and after is not compatible with React 15 or below.","If you are using a CDN source (jsdelivr, unpkg, etc), follow this example:","https://github.com/graphql/graphiql/blob/master/examples/graphiql-cdn/index.html#L49"].join(` -`));function la(e){var t=e.dangerouslyAssumeSchemaIsValid,r=e.defaultQuery,n=e.defaultTabs,i=e.externalFragments,o=e.fetcher,s=e.getDefaultFieldNames,l=e.headers,c=e.inputValueDeprecation,f=e.introspectionQueryName,m=e.maxHistoryLength,v=e.onEditOperationName,g=e.onSchemaChange,y=e.onTabChange,w=e.onTogglePluginVisibility,T=e.operationName,S=e.plugins,A=e.query,b=e.response,C=e.schema,x=e.schemaDescription,k=e.shouldPersistHeaders,P=e.storage,D=e.validationRules,N=e.variables,I=e.visiblePlugin,V=e.defaultHeaders,G=UTe(e,["dangerouslyAssumeSchemaIsValid","defaultQuery","defaultTabs","externalFragments","fetcher","getDefaultFieldNames","headers","inputValueDeprecation","introspectionQueryName","maxHistoryLength","onEditOperationName","onSchemaChange","onTabChange","onTogglePluginVisibility","operationName","plugins","query","response","schema","schemaDescription","shouldPersistHeaders","storage","validationRules","variables","visiblePlugin","defaultHeaders"]);if(typeof o!="function")throw new TypeError("The `GraphiQL` component requires a `fetcher` function to be passed as prop.");return ae.default.createElement(oT,{getDefaultFieldNames:s,dangerouslyAssumeSchemaIsValid:t,defaultQuery:r,defaultHeaders:V,defaultTabs:n,externalFragments:i,fetcher:o,headers:l,inputValueDeprecation:c,introspectionQueryName:f,maxHistoryLength:m,onEditOperationName:v,onSchemaChange:g,onTabChange:y,onTogglePluginVisibility:w,plugins:S,visiblePlugin:I,operationName:T,query:A,response:b,schema:C,schemaDescription:x,shouldPersistHeaders:k,storage:P,validationRules:D,variables:N},ae.default.createElement(M$,PI({showPersistHeadersSettings:k!==!1},G)))}la.Logo=I$;la.Toolbar=F$;la.Footer=q$;function M$(e){var t,r,n,i=(t=e.isHeadersEditorEnabled)!==null&&t!==void 0?t:!0,o=$r({nonNull:!0}),s=ec({nonNull:!0}),l=So({nonNull:!0}),c=Pl(),f=Jy(),m=$y({onCopyQuery:e.onCopyQuery}),v=Ju(),g=ed(),y=SI(),w=y.theme,T=y.setTheme,S=(r=f?.visiblePlugin)===null||r===void 0?void 0:r.content,A=e0({defaultSizeRelation:1/3,direction:"horizontal",initiallyHidden:f?.visiblePlugin?void 0:"first",onHiddenElementChange:function(Ue){Ue==="first"&&f?.setVisiblePlugin(null)},sizeThresholdSecond:200,storageKey:"docExplorerFlex"}),b=e0({direction:"horizontal",storageKey:"editorFlex"}),C=e0({defaultSizeRelation:3,direction:"vertical",initiallyHidden:function(){if(!(e.defaultEditorToolsVisibility==="variables"||e.defaultEditorToolsVisibility==="headers"))return typeof e.defaultEditorToolsVisibility=="boolean"?e.defaultEditorToolsVisibility?void 0:"second":o.initialVariables||o.initialHeaders?void 0:"second"}(),sizeThresholdSecond:60,storageKey:"secondaryEditorFlex"}),x=cT((0,ae.useState)(function(){return e.defaultEditorToolsVisibility==="variables"||e.defaultEditorToolsVisibility==="headers"?e.defaultEditorToolsVisibility:!o.initialVariables&&o.initialHeaders&&i?"headers":"variables"}),2),k=x[0],P=x[1],D=cT((0,ae.useState)(null),2),N=D[0],I=D[1],V=cT((0,ae.useState)(null),2),G=V[0],B=V[1],U=ae.default.Children.toArray(e.children),z=U.find(function(Ue){return LI(Ue,la.Logo)})||ae.default.createElement(la.Logo,null),j=U.find(function(Ue){return LI(Ue,la.Toolbar)})||ae.default.createElement(ae.default.Fragment,null,ae.default.createElement(t0,{onClick:g,label:"Prettify query (Shift-Ctrl-P)"},ae.default.createElement(A_,{className:"graphiql-toolbar-icon","aria-hidden":"true"})),ae.default.createElement(t0,{onClick:v,label:"Merge fragments into query (Shift-Ctrl-M)"},ae.default.createElement(y_,{className:"graphiql-toolbar-icon","aria-hidden":"true"})),ae.default.createElement(t0,{onClick:m,label:"Copy query (Shift-Ctrl-C)"},ae.default.createElement(v_,{className:"graphiql-toolbar-icon","aria-hidden":"true"})),(n=e.toolbar)===null||n===void 0?void 0:n.additionalContent),J=U.find(function(Ue){return LI(Ue,la.Footer)}),K=(0,ae.useCallback)(function(){A.hiddenElement==="first"&&A.setHiddenElement(null)},[A]),ee=(0,ae.useCallback)(function(){try{c?.clear(),B("success")}catch{B("error")}},[c]),re=(0,ae.useCallback)(function(Ue){o.setShouldPersistHeaders(Ue.currentTarget.dataset.value==="true")},[o]),se=(0,ae.useCallback)(function(Ue){var bt=Ue.currentTarget.dataset.theme;T(bt||null)},[T]),xe=o.addTab,Re=l.introspect,Se=o.moveTab,ie=(0,ae.useCallback)(function(Ue){I(Ue.currentTarget.dataset.value)},[]),ye=(0,ae.useCallback)(function(Ue){var bt=f,he=Number(Ue.currentTarget.dataset.index),Fe=bt.plugins.find(function(Me,st){return he===st}),pe=Fe===bt.visiblePlugin;pe?(bt.setVisiblePlugin(null),A.setHiddenElement("first")):(bt.setVisiblePlugin(Fe),A.setHiddenElement(null))},[f,A]),me=(0,ae.useCallback)(function(Ue){C.hiddenElement==="second"&&C.setHiddenElement(null),P(Ue.currentTarget.dataset.name)},[C]),Oe=(0,ae.useCallback)(function(){C.setHiddenElement(C.hiddenElement==="second"?null:"second")},[C]),Ge=(0,ae.useCallback)(function(Ue){Ue||I(null)},[]),He=(0,ae.useCallback)(function(Ue){Ue||(I(null),B(null))},[]),dr=ae.default.createElement(ti,{label:"Add tab"},ae.default.createElement(pn,{type:"button",className:"graphiql-tab-add",onClick:xe,"aria-label":"Add tab"},ae.default.createElement(b_,{"aria-hidden":"true"})));return ae.default.createElement(ti.Provider,null,ae.default.createElement("div",{"data-testid":"graphiql-container",className:"graphiql-container"},ae.default.createElement("div",{className:"graphiql-sidebar"},ae.default.createElement("div",{className:"graphiql-sidebar-section"},f?.plugins.map(function(Ue,bt){var he=Ue===f.visiblePlugin,Fe="".concat(he?"Hide":"Show"," ").concat(Ue.title),pe=Ue.icon;return ae.default.createElement(ti,{key:Ue.title,label:Fe},ae.default.createElement(pn,{type:"button",className:he?"active":"",onClick:ye,"data-index":bt,"aria-label":Fe},ae.default.createElement(pe,{"aria-hidden":"true"})))})),ae.default.createElement("div",{className:"graphiql-sidebar-section"},ae.default.createElement(ti,{label:"Re-fetch GraphQL schema"},ae.default.createElement(pn,{type:"button",disabled:l.isFetching,onClick:Re,"aria-label":"Re-fetch GraphQL schema"},ae.default.createElement(x_,{className:l.isFetching?"graphiql-spin":"","aria-hidden":"true"}))),ae.default.createElement(ti,{label:"Open short keys dialog"},ae.default.createElement(pn,{type:"button","data-value":"short-keys",onClick:ie,"aria-label":"Open short keys dialog"},ae.default.createElement(g_,{"aria-hidden":"true"}))),ae.default.createElement(ti,{label:"Open settings dialog"},ae.default.createElement(pn,{type:"button","data-value":"settings",onClick:ie,"aria-label":"Open settings dialog"},ae.default.createElement(w_,{"aria-hidden":"true"}))))),ae.default.createElement("div",{className:"graphiql-main"},ae.default.createElement("div",{ref:A.firstRef,style:{minWidth:"200px"}},ae.default.createElement("div",{className:"graphiql-plugin"},S?ae.default.createElement(S,null):null)),f?.visiblePlugin&&ae.default.createElement("div",{className:"graphiql-horizontal-drag-bar",ref:A.dragBarRef}),ae.default.createElement("div",{ref:A.secondRef,className:"graphiql-sessions"},ae.default.createElement("div",{className:"graphiql-session-header"},ae.default.createElement(fI,{values:o.tabs,onReorder:Se,"aria-label":"Select active operation"},o.tabs.length>1&&ae.default.createElement(ae.default.Fragment,null,o.tabs.map(function(Ue,bt){return ae.default.createElement(JE,{key:Ue.id,value:Ue,isActive:bt===o.activeTabIndex},ae.default.createElement(JE.Button,{"aria-controls":"graphiql-session",id:"graphiql-session-tab-".concat(bt),onClick:function(){s.stop(),o.changeTab(bt)}},Ue.title),ae.default.createElement(JE.Close,{onClick:function(){o.activeTabIndex===bt&&s.stop(),o.closeTab(bt)}}))}),dr)),ae.default.createElement("div",{className:"graphiql-session-header-right"},o.tabs.length===1&&dr,z)),ae.default.createElement("div",{role:"tabpanel",id:"graphiql-session",className:"graphiql-session","aria-labelledby":"graphiql-session-tab-".concat(o.activeTabIndex)},ae.default.createElement("div",{ref:b.firstRef},ae.default.createElement("div",{className:"graphiql-editors".concat(o.tabs.length===1?" full-height":"")},ae.default.createElement("div",{ref:C.firstRef},ae.default.createElement("section",{className:"graphiql-query-editor","aria-label":"Query Editor"},ae.default.createElement(nT,{editorTheme:e.editorTheme,keyMap:e.keyMap,onClickReference:K,onCopyQuery:e.onCopyQuery,onEdit:e.onEditQuery,readOnly:e.readOnly}),ae.default.createElement("div",{className:"graphiql-toolbar",role:"toolbar","aria-label":"Editor Commands"},ae.default.createElement(Xy,null),j))),ae.default.createElement("div",{ref:C.dragBarRef},ae.default.createElement("div",{className:"graphiql-editor-tools"},ae.default.createElement(pn,{type:"button",className:k==="variables"&&C.hiddenElement!=="second"?"active":"",onClick:me,"data-name":"variables"},"Variables"),i&&ae.default.createElement(pn,{type:"button",className:k==="headers"&&C.hiddenElement!=="second"?"active":"",onClick:me,"data-name":"headers"},"Headers"),ae.default.createElement(ti,{label:C.hiddenElement==="second"?"Show editor tools":"Hide editor tools"},ae.default.createElement(pn,{type:"button",onClick:Oe,"aria-label":C.hiddenElement==="second"?"Show editor tools":"Hide editor tools",className:"graphiql-toggle-editor-tools"},C.hiddenElement==="second"?ae.default.createElement(h_,{className:"graphiql-chevron-icon","aria-hidden":"true"}):ae.default.createElement(m_,{className:"graphiql-chevron-icon","aria-hidden":"true"}))))),ae.default.createElement("div",{ref:C.secondRef},ae.default.createElement("section",{className:"graphiql-editor-tool","aria-label":k==="variables"?"Variables":"Headers"},ae.default.createElement(Ky,{editorTheme:e.editorTheme,isHidden:k!=="variables",keyMap:e.keyMap,onEdit:e.onEditVariables,onClickReference:K,readOnly:e.readOnly}),i&&ae.default.createElement(Yy,{editorTheme:e.editorTheme,isHidden:k!=="headers",keyMap:e.keyMap,onEdit:e.onEditHeaders,readOnly:e.readOnly}))))),ae.default.createElement("div",{className:"graphiql-horizontal-drag-bar",ref:b.dragBarRef}),ae.default.createElement("div",{ref:b.secondRef},ae.default.createElement("div",{className:"graphiql-response"},s.isFetching?ae.default.createElement(ZE,null):null,ae.default.createElement(iT,{editorTheme:e.editorTheme,responseTooltip:e.responseTooltip,keyMap:e.keyMap}),J))))),ae.default.createElement($f,{open:N==="short-keys",onOpenChange:Ge},ae.default.createElement("div",{className:"graphiql-dialog-header"},ae.default.createElement($f.Title,{className:"graphiql-dialog-title"},"Short Keys"),ae.default.createElement($f.Close,null)),ae.default.createElement("div",{className:"graphiql-dialog-section"},ae.default.createElement(zTe,{keyMap:e.keyMap||"sublime"}))),ae.default.createElement($f,{open:N==="settings",onOpenChange:He},ae.default.createElement("div",{className:"graphiql-dialog-header"},ae.default.createElement($f.Title,{className:"graphiql-dialog-title"},"Settings"),ae.default.createElement($f.Close,null)),e.showPersistHeadersSettings?ae.default.createElement("div",{className:"graphiql-dialog-section"},ae.default.createElement("div",null,ae.default.createElement("div",{className:"graphiql-dialog-section-title"},"Persist headers"),ae.default.createElement("div",{className:"graphiql-dialog-section-caption"},"Save headers upon reloading."," ",ae.default.createElement("span",{className:"graphiql-warning-text"},"Only enable if you trust this device."))),ae.default.createElement(XE,null,ae.default.createElement(aa,{type:"button",id:"enable-persist-headers",className:o.shouldPersistHeaders?"active":"","data-value":"true",onClick:re},"On"),ae.default.createElement(aa,{type:"button",id:"disable-persist-headers",className:o.shouldPersistHeaders?"":"active",onClick:re},"Off"))):null,ae.default.createElement("div",{className:"graphiql-dialog-section"},ae.default.createElement("div",null,ae.default.createElement("div",{className:"graphiql-dialog-section-title"},"Theme"),ae.default.createElement("div",{className:"graphiql-dialog-section-caption"},"Adjust how the interface looks like.")),ae.default.createElement(XE,null,ae.default.createElement(aa,{type:"button",className:w===null?"active":"",onClick:se},"System"),ae.default.createElement(aa,{type:"button",className:w==="light"?"active":"","data-theme":"light",onClick:se},"Light"),ae.default.createElement(aa,{type:"button",className:w==="dark"?"active":"","data-theme":"dark",onClick:se},"Dark"))),c?ae.default.createElement("div",{className:"graphiql-dialog-section"},ae.default.createElement("div",null,ae.default.createElement("div",{className:"graphiql-dialog-section-title"},"Clear storage"),ae.default.createElement("div",{className:"graphiql-dialog-section-caption"},"Remove all locally stored data and start fresh.")),ae.default.createElement(aa,{type:"button",state:G||void 0,disabled:G==="success",onClick:ee},{success:"Cleared data",error:"Failed"}[G]||"Clear data")):null)))}var DI=typeof window<"u"&&window.navigator.platform.toLowerCase().indexOf("mac")===0?"Cmd":"Ctrl",GTe=Object.entries({"Search in editor":[DI,"F"],"Search in documentation":[DI,"K"],"Execute query":[DI,"Enter"],"Prettify editors":["Ctrl","Shift","P"],"Merge fragments definitions into operation definition":["Ctrl","Shift","M"],"Copy query":["Ctrl","Shift","C"],"Re-fetch schema using introspection":["Ctrl","Shift","R"]});function zTe(e){var t=e.keyMap;return ae.default.createElement("div",null,ae.default.createElement("table",{className:"graphiql-table"},ae.default.createElement("thead",null,ae.default.createElement("tr",null,ae.default.createElement("th",null,"Short Key"),ae.default.createElement("th",null,"Function"))),ae.default.createElement("tbody",null,GTe.map(function(r){var n=cT(r,2),i=n[0],o=n[1];return ae.default.createElement("tr",{key:i},ae.default.createElement("td",null,o.map(function(s,l,c){return ae.default.createElement(ae.Fragment,{key:s},ae.default.createElement("code",{className:"graphiql-key"},s),l!==c.length-1&&" + ")})),ae.default.createElement("td",null,i))}))),ae.default.createElement("p",null,"The editors use"," ",ae.default.createElement("a",{href:"https://codemirror.net/5/doc/manual.html#keymaps",target:"_blank",rel:"noopener noreferrer"},"CodeMirror Key Maps")," ","that add more short keys. This instance of Graph",ae.default.createElement("em",null,"i"),"QL uses"," ",ae.default.createElement("code",null,t),"."))}function I$(e){return ae.default.createElement("div",{className:"graphiql-logo"},e.children||ae.default.createElement("a",{className:"graphiql-logo-link",href:"https://github.com/graphql/graphiql",target:"_blank",rel:"noreferrer"},"Graph",ae.default.createElement("em",null,"i"),"QL"))}I$.displayName="GraphiQLLogo";function F$(e){return ae.default.createElement(ae.default.Fragment,null,e.children)}F$.displayName="GraphiQLToolbar";function q$(e){return ae.default.createElement("div",{className:"graphiql-footer"},e.children)}q$.displayName="GraphiQLFooter";function LI(e,t){var r;return!((r=e?.type)===null||r===void 0)&&r.displayName&&e.type.displayName===t.displayName?!0:e.type===t}var fT=fe(Ur()),n0=fe(Ee()),i0=fe(Ee()),B$=fe(V$());var HTe=e=>{document.querySelector("#status-bar").textContent=`platformOS - ${e.MPKIT_URL}`},U$=e=>fetch("/graphql",{method:"POST",headers:{Accept:"application/json","Content-Type":"application/json"},credentials:"same-origin",body:JSON.stringify(e)}).then(t=>t.text()).then(t=>{try{return JSON.parse(t)}catch{return t}}),QTe=` +`;function Yy({isHidden:e,...t}){ + let{headerEditor:r}=$r({nonNull:!0,caller:Yy}),n=rh(t,Yy);return(0,te.useEffect)(()=>{ + e||r==null||r.refresh(); + },[r,e]),(0,Y.jsx)('div',{className:gn('graphiql-editor',e&&'hidden'),ref:n}); +}oe(Yy,'HeaderEditor');function YE(e){ + var t;let[r,n]=(0,te.useState)({width:null,height:null}),[i,o]=(0,te.useState)(null),s=(0,te.useRef)(null),l=(t=CI(e.token))==null?void 0:t.href;(0,te.useEffect)(()=>{ + if(s.current){ + if(!l){ + n({width:null,height:null}),o(null);return; + }fetch(l,{method:'HEAD'}).then(f=>{ + o(f.headers.get('Content-Type')); + }).catch(()=>{ + o(null); + }); + } + },[l]);let c=r.width!==null&&r.height!==null?(0,Y.jsxs)('div',{children:[r.width,'x',r.height,i===null?null:' '+i]}):null;return(0,Y.jsxs)('div',{children:[(0,Y.jsx)('img',{onLoad:()=>{ + var f,m;n({width:((f=s.current)==null?void 0:f.naturalWidth)??null,height:((m=s.current)==null?void 0:m.naturalHeight)??null}); + },ref:s,src:l}),c]}); +}oe(YE,'ImagePreview');YE.shouldRender=oe(function(e){ + let t=CI(e);return t?g$(t):!1; +},'shouldRender');function CI(e){ + if(e.type!=='string')return;let t=e.string.slice(1).slice(0,-1).trim();try{ + let{location:r}=window;return new URL(t,r.protocol+'//'+r.host); + }catch{ + return; + } +}oe(CI,'tokenToURL');function g$(e){ + return/(bmp|gif|jpeg|jpg|png|svg)$/.test(e.pathname); +}oe(g$,'isImageURL');function nT(e){ + let t=Xu(e,nT);return(0,Y.jsx)('div',{className:'graphiql-editor',ref:t}); +}oe(nT,'QueryEditor');function KE({responseTooltip:e,editorTheme:t=$E,keyMap:r=eT}={},n){ + let{fetchError:i,validationErrors:o}=So({nonNull:!0,caller:n||KE}),{initialResponse:s,responseEditor:l,setResponseEditor:c}=$r({nonNull:!0,caller:n||KE}),f=(0,te.useRef)(null),m=(0,te.useRef)(e);return(0,te.useEffect)(()=>{ + m.current=e; + },[e]),(0,te.useEffect)(()=>{ + let v=!0;return nh([Promise.resolve().then(()=>(RM(),PM)).then(g=>g.f),Promise.resolve().then(()=>(LM(),DM)).then(g=>g.b),Promise.resolve().then(()=>(ky(),FM)).then(g=>g.d),Promise.resolve().then(()=>(GM(),BM)).then(g=>g.s),Promise.resolve().then(()=>(IM(),MM)).then(g=>g.s),Promise.resolve().then(()=>(jM(),qM)).then(g=>g.j),Promise.resolve().then(()=>(UM(),VM)).then(g=>g.s),Promise.resolve().then(()=>(a_(),_we)),Promise.resolve().then(()=>(WM(),Nwe))],{useCommonAddons:!1}).then(g=>{ + if(!v)return;let y=document.createElement('div');g.registerHelper('info','graphql-results',(S,A,b,C)=>{ + let x=[],k=m.current;return k&&x.push((0,Y.jsx)(k,{pos:C,token:S})),YE.shouldRender(S)&&x.push((0,Y.jsx)(YE,{token:S},'image-preview')),x.length?(iI.default.render(x,y),y):(iI.default.unmountComponentAtNode(y),null); + });let w=f.current;if(!w)return;let T=g(w,{value:s,lineWrapping:!0,readOnly:!0,theme:t,mode:'graphql-results',foldGutter:!0,gutters:['CodeMirror-foldgutter'],info:!0,extraKeys:tT});c(T); + }),()=>{ + v=!1; + }; + },[t,s,c]),_y(l,'keyMap',r),(0,te.useEffect)(()=>{ + i&&l?.setValue(i),o.length>0&&l?.setValue(fp(o)); + },[l,i,o]),f; +}oe(KE,'useResponseEditor');function iT(e){ + let t=KE(e,iT);return(0,Y.jsx)('section',{className:'result-window','aria-label':'Result Window','aria-live':'polite','aria-atomic':'true',ref:t}); +}oe(iT,'ResponseEditor');function Ky({isHidden:e,...t}){ + let{variableEditor:r}=$r({nonNull:!0,caller:Ky}),n=Jf(t,Ky);return(0,te.useEffect)(()=>{ + r&&!e&&r.refresh(); + },[r,e]),(0,Y.jsx)('div',{className:gn('graphiql-editor',e&&'hidden'),ref:n}); +}oe(Ky,'VariableEditor');function oT({children:e,dangerouslyAssumeSchemaIsValid:t,defaultQuery:r,defaultHeaders:n,defaultTabs:i,externalFragments:o,fetcher:s,getDefaultFieldNames:l,headers:c,inputValueDeprecation:f,introspectionQueryName:m,maxHistoryLength:v,onEditOperationName:g,onSchemaChange:y,onTabChange:w,onTogglePluginVisibility:T,operationName:S,plugins:A,query:b,response:C,schema:x,schemaDescription:k,shouldPersistHeaders:P,storage:D,validationRules:N,variables:I,visiblePlugin:V}){ + return(0,Y.jsx)(p_,{storage:D,children:(0,Y.jsx)(P_,{maxHistoryLength:v,children:(0,Y.jsx)(v$,{defaultQuery:r,defaultHeaders:n,defaultTabs:i,externalFragments:o,headers:c,onEditOperationName:g,onTabChange:w,query:b,response:C,shouldPersistHeaders:P,validationRules:N,variables:I,children:(0,Y.jsx)(pI,{dangerouslyAssumeSchemaIsValid:t,fetcher:s,inputValueDeprecation:f,introspectionQueryName:m,onSchemaChange:y,schema:x,schemaDescription:k,children:(0,Y.jsx)(GE,{getDefaultFieldNames:l,fetcher:s,operationName:S,children:(0,Y.jsx)(mI,{children:(0,Y.jsx)($_,{onTogglePluginVisibility:T,plugins:A,visiblePlugin:V,children:e})})})})})})}); +}oe(oT,'GraphiQLProvider');function SI(){ + let e=Pl(),[t,r]=(0,te.useState)(()=>{ + if(!e)return null;let i=e.get(nI);switch(i){ + case'light':return'light';case'dark':return'dark';default:return typeof i=='string'&&e.set(nI,''),null; + } + });(0,te.useLayoutEffect)(()=>{ + typeof window>'u'||(document.body.classList.remove('graphiql-light','graphiql-dark'),t&&document.body.classList.add(`graphiql-${t}`)); + },[t]);let n=(0,te.useCallback)(i=>{ + e?.set(nI,i||''),r(i); + },[e]);return(0,te.useMemo)(()=>({theme:t,setTheme:n}),[t,n]); +}oe(SI,'useTheme');var nI='theme';function e0({defaultSizeRelation:e=sTe,direction:t,initiallyHidden:r,onHiddenElementChange:n,sizeThresholdFirst:i=100,sizeThresholdSecond:o=100,storageKey:s}){ + let l=Pl(),c=(0,te.useMemo)(()=>_f(500,b=>{ + s&&l?.set(s,b); + }),[l,s]),[f,m]=(0,te.useState)(()=>{ + let b=s&&l?.get(s);return b===qE||r==='first'?'first':b===jE||r==='second'?'second':null; + }),v=(0,te.useCallback)(b=>{ + b!==f&&(m(b),n?.(b)); + },[f,n]),g=(0,te.useRef)(null),y=(0,te.useRef)(null),w=(0,te.useRef)(null),T=(0,te.useRef)(`${e}`);(0,te.useLayoutEffect)(()=>{ + let b=s&&l?.get(s)||T.current;g.current&&(g.current.style.display='flex',g.current.style.flex=b===qE||b===jE?T.current:b),w.current&&(w.current.style.display='flex',w.current.style.flex='1'),y.current&&(y.current.style.display='flex'); + },[t,l,s]);let S=(0,te.useCallback)(b=>{ + let C=b==='first'?g.current:w.current;if(C&&(C.style.left='-1000px',C.style.position='absolute',C.style.opacity='0',C.style.height='500px',C.style.width='500px',g.current)){ + let x=parseFloat(g.current.style.flex);(!Number.isFinite(x)||x<1)&&(g.current.style.flex='1'); + } + },[]),A=(0,te.useCallback)(b=>{ + let C=b==='first'?g.current:w.current;if(C&&(C.style.width='',C.style.height='',C.style.opacity='',C.style.position='',C.style.left='',l&&s)){ + let x=l.get(s);g.current&&x!==qE&&x!==jE&&(g.current.style.flex=x||T.current); + } + },[l,s]);return(0,te.useLayoutEffect)(()=>{ + f==='first'?S('first'):A('first'),f==='second'?S('second'):A('second'); + },[f,S,A]),(0,te.useEffect)(()=>{ + if(!y.current||!g.current||!w.current)return;let b=y.current,C=g.current,x=C.parentElement,k=t==='horizontal'?'clientX':'clientY',P=t==='horizontal'?'left':'top',D=t==='horizontal'?'right':'bottom',N=t==='horizontal'?'clientWidth':'clientHeight';function I(G){ + G.preventDefault();let B=G[k]-b.getBoundingClientRect()[P];function U(j){ + if(j.buttons===0)return z();let J=j[k]-x.getBoundingClientRect()[P]-B,K=x.getBoundingClientRect()[D]-j[k]+B-b[N];if(J{ + b.removeEventListener('mousedown',I),b.removeEventListener('dblclick',V); + }; + },[t,v,i,o,c]),(0,te.useMemo)(()=>({dragBarRef:y,hiddenElement:f,firstRef:g,setHiddenElement:m,secondRef:w}),[f,m]); +}oe(e0,'useDragResize');var sTe=1,qE='hide-first',jE='hide-second',t0=(0,te.forwardRef)(({label:e,onClick:t,...r},n)=>{ + let[i,o]=(0,te.useState)(null),s=(0,te.useCallback)(l=>{ + try{ + t?.(l),o(null); + }catch(c){ + o(c instanceof Error?c:new Error(`Toolbar button click failed: ${c}`)); + } + },[t]);return(0,Y.jsx)(ti,{label:e,children:(0,Y.jsx)(pn,{...r,ref:n,type:'button',className:gn('graphiql-toolbar-button',i&&'error',r.className),onClick:s,'aria-label':i?i.message:e,'aria-invalid':i?'true':r['aria-invalid']})}); +});t0.displayName='ToolbarButton';function Xy(){ + let{queryEditor:e,setOperationName:t}=$r({nonNull:!0,caller:Xy}),{isFetching:r,isSubscribed:n,operationName:i,run:o,stop:s}=ec({nonNull:!0,caller:Xy}),l=e?.operations||[],c=l.length>1&&typeof i!='string',f=r||n,m=`${f?'Stop':'Execute'} query (Ctrl-Enter)`,v={type:'button',className:'graphiql-execute-button',children:f?(0,Y.jsx)(XEe,{}):(0,Y.jsx)(QEe,{}),'aria-label':m};return c&&!f?(0,Y.jsxs)(Zu,{children:[(0,Y.jsx)(ti,{label:m,children:(0,Y.jsx)(Zu.Button,{...v})}),(0,Y.jsx)(Zu.Content,{children:l.map((g,y)=>{ + let w=g.name?g.name.value:``;return(0,Y.jsx)(Zu.Item,{onSelect:()=>{ + var T;let S=(T=g.name)==null?void 0:T.value;e&&S&&S!==e.operationName&&t(S),o(); + },children:w},`${w}-${y}`); + })})]}):(0,Y.jsx)(ti,{label:m,children:(0,Y.jsx)('button',{...v,onClick:()=>{ + f?s():o(); + }})}); +}oe(Xy,'ExecuteButton');var lTe=oe(({button:e,children:t,label:r,...n})=>(0,Y.jsxs)(Zu,{...n,children:[(0,Y.jsx)(ti,{label:r,children:(0,Y.jsx)(Zu.Button,{className:gn('graphiql-un-styled graphiql-toolbar-menu',n.className),'aria-label':r,children:e})}),(0,Y.jsx)(Zu.Content,{children:t})]}),'ToolbarMenuRoot'),nGe=Zy(lTe,{Item:Zu.Item});var P$=fe(L$(),1),jn=fe(Ee(),1),RTe={keyword:'hsl(var(--color-primary))',def:'hsl(var(--color-tertiary))',property:'hsl(var(--color-info))',qualifier:'hsl(var(--color-secondary))',attribute:'hsl(var(--color-tertiary))',number:'hsl(var(--color-success))',string:'hsl(var(--color-warning))',builtin:'hsl(var(--color-success))',string2:'hsl(var(--color-secondary))',variable:'hsl(var(--color-secondary))',atom:'hsl(var(--color-tertiary))'},MTe=jn.default.createElement('svg',{viewBox:'0 -4 13 15',style:{color:'hsla(var(--color-neutral), var(--alpha-tertiary, 0.4))',marginRight:'var(--px-4)',height:'var(--px-16)',width:'var(--px-16)'}},jn.default.createElement('path',{d:'M3.35355 6.85355L6.14645 9.64645C6.34171 9.84171 6.65829 9.84171 6.85355 9.64645L9.64645 6.85355C9.96143 6.53857 9.73835 6 9.29289 6L3.70711 6C3.26165 6 3.03857 6.53857 3.35355 6.85355Z',fill:'currentColor'})),ITe=jn.default.createElement('svg',{viewBox:'0 -2 13 15',style:{color:'hsla(var(--color-neutral), var(--alpha-tertiary, 0.4))',marginRight:'var(--px-4)',height:'var(--px-16)',width:'var(--px-16)'}},jn.default.createElement('path',{d:'M6.35355 11.1464L9.14645 8.35355C9.34171 8.15829 9.34171 7.84171 9.14645 7.64645L6.35355 4.85355C6.03857 4.53857 5.5 4.76165 5.5 5.20711V10.7929C5.5 11.2383 6.03857 11.4614 6.35355 11.1464Z',fill:'currentColor'})),FTe=jn.default.createElement('svg',{viewBox:'0 0 15 15',style:{color:'hsla(var(--color-neutral), var(--alpha-tertiary, 0.4))',marginRight:'var(--px-4)',height:'var(--px-16)',width:'var(--px-16)'}},jn.default.createElement('circle',{cx:'7.5',cy:'7.5',r:'6',stroke:'currentColor',fill:'none'})),qTe=jn.default.createElement('svg',{viewBox:'0 0 15 15',style:{color:'hsl(var(--color-info))',marginRight:'var(--px-4)',height:'var(--px-16)',width:'var(--px-16)'}},jn.default.createElement('circle',{cx:'7.5',cy:'7.5',r:'7.5',fill:'currentColor'}),jn.default.createElement('path',{d:'M4.64641 7.00106L6.8801 9.23256L10.5017 5.61325',fill:'none',stroke:'white',strokeWidth:'1.5'})),jTe={buttonStyle:{backgroundColor:'transparent',border:'none',color:'hsla(var(--color-neutral), var(--alpha-secondary, 0.6))',cursor:'pointer',fontSize:'1em'},explorerActionsStyle:{padding:'var(--px-8) var(--px-4)'},actionButtonStyle:{backgroundColor:'transparent',border:'none',color:'hsla(var(--color-neutral), var(--alpha-secondary, 0.6))',cursor:'pointer',fontSize:'1em'}};function VTe(e){ + let{setOperationName:t}=$r({nonNull:!0}),{schema:r}=So({nonNull:!0}),{run:n}=ec({nonNull:!0}),i=(0,jn.useCallback)(l=>{ + l&&t(l),n(); + },[n,t]),[o,s]=bI();return jn.default.createElement(P$.Explorer,{schema:r,onRunOperation:i,explorerIsOpen:!0,colors:RTe,arrowOpen:MTe,arrowClosed:ITe,checkboxUnchecked:FTe,checkboxChecked:qTe,styles:jTe,query:o,onEdit:s,...e}); +}function R$(e){ + return{title:'GraphiQL Explorer',icon:()=>jn.default.createElement('svg',{height:'1em',strokeWidth:'1.5',viewBox:'0 0 24 24',fill:'none'},jn.default.createElement('path',{d:'M18 6H20M22 6H20M20 6V4M20 6V8',stroke:'currentColor',strokeLinecap:'round',strokeLinejoin:'round'}),jn.default.createElement('path',{d:'M21.4 20H2.6C2.26863 20 2 19.7314 2 19.4V11H21.4C21.7314 11 22 11.2686 22 11.6V19.4C22 19.7314 21.7314 20 21.4 20Z',stroke:'currentColor',strokeLinecap:'round',strokeLinejoin:'round'}),jn.default.createElement('path',{d:'M2 11V4.6C2 4.26863 2.26863 4 2.6 4H8.77805C8.92127 4 9.05977 4.05124 9.16852 4.14445L12.3315 6.85555C12.4402 6.94876 12.5787 7 12.722 7H14',stroke:'currentColor',strokeLinecap:'round',strokeLinejoin:'round'})),content:()=>jn.default.createElement(VTe,{...e})}; +}var ae=fe(Ee());var PI=function(){ + return PI=Object.assign||function(e){ + for(var t,r=1,n=arguments.length;r0)&&!(i=n.next()).done;)o.push(i.value); + }catch(l){ + s={error:l}; + }finally{ + try{ + i&&!i.done&&(r=n.return)&&r.call(n); + }finally{ + if(s)throw s.error; + } + }return o; + },BTe=parseInt(ae.default.version.slice(0,2),10);if(BTe<16)throw new Error(['GraphiQL 0.18.0 and after is not compatible with React 15 or below.','If you are using a CDN source (jsdelivr, unpkg, etc), follow this example:','https://github.com/graphql/graphiql/blob/master/examples/graphiql-cdn/index.html#L49'].join(` +`));function la(e){ + var t=e.dangerouslyAssumeSchemaIsValid,r=e.defaultQuery,n=e.defaultTabs,i=e.externalFragments,o=e.fetcher,s=e.getDefaultFieldNames,l=e.headers,c=e.inputValueDeprecation,f=e.introspectionQueryName,m=e.maxHistoryLength,v=e.onEditOperationName,g=e.onSchemaChange,y=e.onTabChange,w=e.onTogglePluginVisibility,T=e.operationName,S=e.plugins,A=e.query,b=e.response,C=e.schema,x=e.schemaDescription,k=e.shouldPersistHeaders,P=e.storage,D=e.validationRules,N=e.variables,I=e.visiblePlugin,V=e.defaultHeaders,G=UTe(e,['dangerouslyAssumeSchemaIsValid','defaultQuery','defaultTabs','externalFragments','fetcher','getDefaultFieldNames','headers','inputValueDeprecation','introspectionQueryName','maxHistoryLength','onEditOperationName','onSchemaChange','onTabChange','onTogglePluginVisibility','operationName','plugins','query','response','schema','schemaDescription','shouldPersistHeaders','storage','validationRules','variables','visiblePlugin','defaultHeaders']);if(typeof o!='function')throw new TypeError('The `GraphiQL` component requires a `fetcher` function to be passed as prop.');return ae.default.createElement(oT,{getDefaultFieldNames:s,dangerouslyAssumeSchemaIsValid:t,defaultQuery:r,defaultHeaders:V,defaultTabs:n,externalFragments:i,fetcher:o,headers:l,inputValueDeprecation:c,introspectionQueryName:f,maxHistoryLength:m,onEditOperationName:v,onSchemaChange:g,onTabChange:y,onTogglePluginVisibility:w,plugins:S,visiblePlugin:I,operationName:T,query:A,response:b,schema:C,schemaDescription:x,shouldPersistHeaders:k,storage:P,validationRules:D,variables:N},ae.default.createElement(M$,PI({showPersistHeadersSettings:k!==!1},G))); +}la.Logo=I$;la.Toolbar=F$;la.Footer=q$;function M$(e){ + var t,r,n,i=(t=e.isHeadersEditorEnabled)!==null&&t!==void 0?t:!0,o=$r({nonNull:!0}),s=ec({nonNull:!0}),l=So({nonNull:!0}),c=Pl(),f=Jy(),m=$y({onCopyQuery:e.onCopyQuery}),v=Ju(),g=ed(),y=SI(),w=y.theme,T=y.setTheme,S=(r=f?.visiblePlugin)===null||r===void 0?void 0:r.content,A=e0({defaultSizeRelation:1/3,direction:'horizontal',initiallyHidden:f?.visiblePlugin?void 0:'first',onHiddenElementChange:function(Ue){ + Ue==='first'&&f?.setVisiblePlugin(null); + },sizeThresholdSecond:200,storageKey:'docExplorerFlex'}),b=e0({direction:'horizontal',storageKey:'editorFlex'}),C=e0({defaultSizeRelation:3,direction:'vertical',initiallyHidden:function(){ + if(!(e.defaultEditorToolsVisibility==='variables'||e.defaultEditorToolsVisibility==='headers'))return typeof e.defaultEditorToolsVisibility=='boolean'?e.defaultEditorToolsVisibility?void 0:'second':o.initialVariables||o.initialHeaders?void 0:'second'; + }(),sizeThresholdSecond:60,storageKey:'secondaryEditorFlex'}),x=cT((0,ae.useState)(function(){ + return e.defaultEditorToolsVisibility==='variables'||e.defaultEditorToolsVisibility==='headers'?e.defaultEditorToolsVisibility:!o.initialVariables&&o.initialHeaders&&i?'headers':'variables'; + }),2),k=x[0],P=x[1],D=cT((0,ae.useState)(null),2),N=D[0],I=D[1],V=cT((0,ae.useState)(null),2),G=V[0],B=V[1],U=ae.default.Children.toArray(e.children),z=U.find(function(Ue){ + return LI(Ue,la.Logo); + })||ae.default.createElement(la.Logo,null),j=U.find(function(Ue){ + return LI(Ue,la.Toolbar); + })||ae.default.createElement(ae.default.Fragment,null,ae.default.createElement(t0,{onClick:g,label:'Prettify query (Shift-Ctrl-P)'},ae.default.createElement(A_,{className:'graphiql-toolbar-icon','aria-hidden':'true'})),ae.default.createElement(t0,{onClick:v,label:'Merge fragments into query (Shift-Ctrl-M)'},ae.default.createElement(y_,{className:'graphiql-toolbar-icon','aria-hidden':'true'})),ae.default.createElement(t0,{onClick:m,label:'Copy query (Shift-Ctrl-C)'},ae.default.createElement(v_,{className:'graphiql-toolbar-icon','aria-hidden':'true'})),(n=e.toolbar)===null||n===void 0?void 0:n.additionalContent),J=U.find(function(Ue){ + return LI(Ue,la.Footer); + }),K=(0,ae.useCallback)(function(){ + A.hiddenElement==='first'&&A.setHiddenElement(null); + },[A]),ee=(0,ae.useCallback)(function(){ + try{ + c?.clear(),B('success'); + }catch{ + B('error'); + } + },[c]),re=(0,ae.useCallback)(function(Ue){ + o.setShouldPersistHeaders(Ue.currentTarget.dataset.value==='true'); + },[o]),se=(0,ae.useCallback)(function(Ue){ + var bt=Ue.currentTarget.dataset.theme;T(bt||null); + },[T]),xe=o.addTab,Re=l.introspect,Se=o.moveTab,ie=(0,ae.useCallback)(function(Ue){ + I(Ue.currentTarget.dataset.value); + },[]),ye=(0,ae.useCallback)(function(Ue){ + var bt=f,he=Number(Ue.currentTarget.dataset.index),Fe=bt.plugins.find(function(Me,st){ + return he===st; + }),pe=Fe===bt.visiblePlugin;pe?(bt.setVisiblePlugin(null),A.setHiddenElement('first')):(bt.setVisiblePlugin(Fe),A.setHiddenElement(null)); + },[f,A]),me=(0,ae.useCallback)(function(Ue){ + C.hiddenElement==='second'&&C.setHiddenElement(null),P(Ue.currentTarget.dataset.name); + },[C]),Oe=(0,ae.useCallback)(function(){ + C.setHiddenElement(C.hiddenElement==='second'?null:'second'); + },[C]),Ge=(0,ae.useCallback)(function(Ue){ + Ue||I(null); + },[]),He=(0,ae.useCallback)(function(Ue){ + Ue||(I(null),B(null)); + },[]),dr=ae.default.createElement(ti,{label:'Add tab'},ae.default.createElement(pn,{type:'button',className:'graphiql-tab-add',onClick:xe,'aria-label':'Add tab'},ae.default.createElement(b_,{'aria-hidden':'true'})));return ae.default.createElement(ti.Provider,null,ae.default.createElement('div',{'data-testid':'graphiql-container',className:'graphiql-container'},ae.default.createElement('div',{className:'graphiql-sidebar'},ae.default.createElement('div',{className:'graphiql-sidebar-section'},f?.plugins.map(function(Ue,bt){ + var he=Ue===f.visiblePlugin,Fe=''.concat(he?'Hide':'Show',' ').concat(Ue.title),pe=Ue.icon;return ae.default.createElement(ti,{key:Ue.title,label:Fe},ae.default.createElement(pn,{type:'button',className:he?'active':'',onClick:ye,'data-index':bt,'aria-label':Fe},ae.default.createElement(pe,{'aria-hidden':'true'}))); + })),ae.default.createElement('div',{className:'graphiql-sidebar-section'},ae.default.createElement(ti,{label:'Re-fetch GraphQL schema'},ae.default.createElement(pn,{type:'button',disabled:l.isFetching,onClick:Re,'aria-label':'Re-fetch GraphQL schema'},ae.default.createElement(x_,{className:l.isFetching?'graphiql-spin':'','aria-hidden':'true'}))),ae.default.createElement(ti,{label:'Open short keys dialog'},ae.default.createElement(pn,{type:'button','data-value':'short-keys',onClick:ie,'aria-label':'Open short keys dialog'},ae.default.createElement(g_,{'aria-hidden':'true'}))),ae.default.createElement(ti,{label:'Open settings dialog'},ae.default.createElement(pn,{type:'button','data-value':'settings',onClick:ie,'aria-label':'Open settings dialog'},ae.default.createElement(w_,{'aria-hidden':'true'}))))),ae.default.createElement('div',{className:'graphiql-main'},ae.default.createElement('div',{ref:A.firstRef,style:{minWidth:'200px'}},ae.default.createElement('div',{className:'graphiql-plugin'},S?ae.default.createElement(S,null):null)),f?.visiblePlugin&&ae.default.createElement('div',{className:'graphiql-horizontal-drag-bar',ref:A.dragBarRef}),ae.default.createElement('div',{ref:A.secondRef,className:'graphiql-sessions'},ae.default.createElement('div',{className:'graphiql-session-header'},ae.default.createElement(fI,{values:o.tabs,onReorder:Se,'aria-label':'Select active operation'},o.tabs.length>1&&ae.default.createElement(ae.default.Fragment,null,o.tabs.map(function(Ue,bt){ + return ae.default.createElement(JE,{key:Ue.id,value:Ue,isActive:bt===o.activeTabIndex},ae.default.createElement(JE.Button,{'aria-controls':'graphiql-session',id:'graphiql-session-tab-'.concat(bt),onClick:function(){ + s.stop(),o.changeTab(bt); + }},Ue.title),ae.default.createElement(JE.Close,{onClick:function(){ + o.activeTabIndex===bt&&s.stop(),o.closeTab(bt); + }})); + }),dr)),ae.default.createElement('div',{className:'graphiql-session-header-right'},o.tabs.length===1&&dr,z)),ae.default.createElement('div',{role:'tabpanel',id:'graphiql-session',className:'graphiql-session','aria-labelledby':'graphiql-session-tab-'.concat(o.activeTabIndex)},ae.default.createElement('div',{ref:b.firstRef},ae.default.createElement('div',{className:'graphiql-editors'.concat(o.tabs.length===1?' full-height':'')},ae.default.createElement('div',{ref:C.firstRef},ae.default.createElement('section',{className:'graphiql-query-editor','aria-label':'Query Editor'},ae.default.createElement(nT,{editorTheme:e.editorTheme,keyMap:e.keyMap,onClickReference:K,onCopyQuery:e.onCopyQuery,onEdit:e.onEditQuery,readOnly:e.readOnly}),ae.default.createElement('div',{className:'graphiql-toolbar',role:'toolbar','aria-label':'Editor Commands'},ae.default.createElement(Xy,null),j))),ae.default.createElement('div',{ref:C.dragBarRef},ae.default.createElement('div',{className:'graphiql-editor-tools'},ae.default.createElement(pn,{type:'button',className:k==='variables'&&C.hiddenElement!=='second'?'active':'',onClick:me,'data-name':'variables'},'Variables'),i&&ae.default.createElement(pn,{type:'button',className:k==='headers'&&C.hiddenElement!=='second'?'active':'',onClick:me,'data-name':'headers'},'Headers'),ae.default.createElement(ti,{label:C.hiddenElement==='second'?'Show editor tools':'Hide editor tools'},ae.default.createElement(pn,{type:'button',onClick:Oe,'aria-label':C.hiddenElement==='second'?'Show editor tools':'Hide editor tools',className:'graphiql-toggle-editor-tools'},C.hiddenElement==='second'?ae.default.createElement(h_,{className:'graphiql-chevron-icon','aria-hidden':'true'}):ae.default.createElement(m_,{className:'graphiql-chevron-icon','aria-hidden':'true'}))))),ae.default.createElement('div',{ref:C.secondRef},ae.default.createElement('section',{className:'graphiql-editor-tool','aria-label':k==='variables'?'Variables':'Headers'},ae.default.createElement(Ky,{editorTheme:e.editorTheme,isHidden:k!=='variables',keyMap:e.keyMap,onEdit:e.onEditVariables,onClickReference:K,readOnly:e.readOnly}),i&&ae.default.createElement(Yy,{editorTheme:e.editorTheme,isHidden:k!=='headers',keyMap:e.keyMap,onEdit:e.onEditHeaders,readOnly:e.readOnly}))))),ae.default.createElement('div',{className:'graphiql-horizontal-drag-bar',ref:b.dragBarRef}),ae.default.createElement('div',{ref:b.secondRef},ae.default.createElement('div',{className:'graphiql-response'},s.isFetching?ae.default.createElement(ZE,null):null,ae.default.createElement(iT,{editorTheme:e.editorTheme,responseTooltip:e.responseTooltip,keyMap:e.keyMap}),J))))),ae.default.createElement($f,{open:N==='short-keys',onOpenChange:Ge},ae.default.createElement('div',{className:'graphiql-dialog-header'},ae.default.createElement($f.Title,{className:'graphiql-dialog-title'},'Short Keys'),ae.default.createElement($f.Close,null)),ae.default.createElement('div',{className:'graphiql-dialog-section'},ae.default.createElement(zTe,{keyMap:e.keyMap||'sublime'}))),ae.default.createElement($f,{open:N==='settings',onOpenChange:He},ae.default.createElement('div',{className:'graphiql-dialog-header'},ae.default.createElement($f.Title,{className:'graphiql-dialog-title'},'Settings'),ae.default.createElement($f.Close,null)),e.showPersistHeadersSettings?ae.default.createElement('div',{className:'graphiql-dialog-section'},ae.default.createElement('div',null,ae.default.createElement('div',{className:'graphiql-dialog-section-title'},'Persist headers'),ae.default.createElement('div',{className:'graphiql-dialog-section-caption'},'Save headers upon reloading.',' ',ae.default.createElement('span',{className:'graphiql-warning-text'},'Only enable if you trust this device.'))),ae.default.createElement(XE,null,ae.default.createElement(aa,{type:'button',id:'enable-persist-headers',className:o.shouldPersistHeaders?'active':'','data-value':'true',onClick:re},'On'),ae.default.createElement(aa,{type:'button',id:'disable-persist-headers',className:o.shouldPersistHeaders?'':'active',onClick:re},'Off'))):null,ae.default.createElement('div',{className:'graphiql-dialog-section'},ae.default.createElement('div',null,ae.default.createElement('div',{className:'graphiql-dialog-section-title'},'Theme'),ae.default.createElement('div',{className:'graphiql-dialog-section-caption'},'Adjust how the interface looks like.')),ae.default.createElement(XE,null,ae.default.createElement(aa,{type:'button',className:w===null?'active':'',onClick:se},'System'),ae.default.createElement(aa,{type:'button',className:w==='light'?'active':'','data-theme':'light',onClick:se},'Light'),ae.default.createElement(aa,{type:'button',className:w==='dark'?'active':'','data-theme':'dark',onClick:se},'Dark'))),c?ae.default.createElement('div',{className:'graphiql-dialog-section'},ae.default.createElement('div',null,ae.default.createElement('div',{className:'graphiql-dialog-section-title'},'Clear storage'),ae.default.createElement('div',{className:'graphiql-dialog-section-caption'},'Remove all locally stored data and start fresh.')),ae.default.createElement(aa,{type:'button',state:G||void 0,disabled:G==='success',onClick:ee},{success:'Cleared data',error:'Failed'}[G]||'Clear data')):null))); +}var DI=typeof window<'u'&&window.navigator.platform.toLowerCase().indexOf('mac')===0?'Cmd':'Ctrl',GTe=Object.entries({'Search in editor':[DI,'F'],'Search in documentation':[DI,'K'],'Execute query':[DI,'Enter'],'Prettify editors':['Ctrl','Shift','P'],'Merge fragments definitions into operation definition':['Ctrl','Shift','M'],'Copy query':['Ctrl','Shift','C'],'Re-fetch schema using introspection':['Ctrl','Shift','R']});function zTe(e){ + var t=e.keyMap;return ae.default.createElement('div',null,ae.default.createElement('table',{className:'graphiql-table'},ae.default.createElement('thead',null,ae.default.createElement('tr',null,ae.default.createElement('th',null,'Short Key'),ae.default.createElement('th',null,'Function'))),ae.default.createElement('tbody',null,GTe.map(function(r){ + var n=cT(r,2),i=n[0],o=n[1];return ae.default.createElement('tr',{key:i},ae.default.createElement('td',null,o.map(function(s,l,c){ + return ae.default.createElement(ae.Fragment,{key:s},ae.default.createElement('code',{className:'graphiql-key'},s),l!==c.length-1&&' + '); + })),ae.default.createElement('td',null,i)); + }))),ae.default.createElement('p',null,'The editors use',' ',ae.default.createElement('a',{href:'https://codemirror.net/5/doc/manual.html#keymaps',target:'_blank',rel:'noopener noreferrer'},'CodeMirror Key Maps'),' ','that add more short keys. This instance of Graph',ae.default.createElement('em',null,'i'),'QL uses',' ',ae.default.createElement('code',null,t),'.')); +}function I$(e){ + return ae.default.createElement('div',{className:'graphiql-logo'},e.children||ae.default.createElement('a',{className:'graphiql-logo-link',href:'https://github.com/graphql/graphiql',target:'_blank',rel:'noreferrer'},'Graph',ae.default.createElement('em',null,'i'),'QL')); +}I$.displayName='GraphiQLLogo';function F$(e){ + return ae.default.createElement(ae.default.Fragment,null,e.children); +}F$.displayName='GraphiQLToolbar';function q$(e){ + return ae.default.createElement('div',{className:'graphiql-footer'},e.children); +}q$.displayName='GraphiQLFooter';function LI(e,t){ + var r;return!((r=e?.type)===null||r===void 0)&&r.displayName&&e.type.displayName===t.displayName?!0:e.type===t; +}var fT=fe(Ur()),n0=fe(Ee()),i0=fe(Ee()),B$=fe(V$());var HTe=e=>{ + document.querySelector('#status-bar').textContent=`platformOS - ${e.MPKIT_URL}`; + },U$=e=>fetch('/graphql',{method:'POST',headers:{Accept:'application/json','Content-Type':'application/json'},credentials:'same-origin',body:JSON.stringify(e)}).then(t=>t.text()).then(t=>{ + try{ + return JSON.parse(t); + }catch{ + return t; + } + }),QTe=` query search { records(per_page: 10) { results { @@ -325,8 +17823,18 @@ mutation create { id } } -`,WTe=e=>{let t=e.__schema.types.map(r=>((r.name==="RootQuery"||r.name==="RootMutation")&&r.fields&&r.fields.length>0&&(r.fields=r.fields.filter(n=>!n.isDeprecated)),r));return e.__schema.types=t,e};function YTe(){let e=()=>localStorage.getItem("query")||QTe,t=c=>{o(c),localStorage.setItem("query",c)};(0,i0.useEffect)(()=>{U$({query:(0,fT.getIntrospectionQuery)()}).then(c=>{n((0,fT.buildClientSchema)(WTe(c.data)))})},[]);let[r,n]=(0,i0.useState)(null),[i,o]=(0,i0.useState)(e()),s=()=>n0.default.createElement("span",null);la.Logo=s;let l=R$();return n0.default.createElement("div",{className:"graphiql-container"},n0.default.createElement(la,{fetcher:U$,plugins:[l],schema:r,query:i,onEditQuery:t}))}fetch("/info").then(e=>e.json()).then(HTe).catch(console.error);var KTe=(0,B$.createRoot)(document.getElementById("graphiql"));KTe.render(n0.default.createElement(YTe,null)); -/*! Bundled license information: +`,WTe=e=>{ + let t=e.__schema.types.map(r=>((r.name==='RootQuery'||r.name==='RootMutation')&&r.fields&&r.fields.length>0&&(r.fields=r.fields.filter(n=>!n.isDeprecated)),r));return e.__schema.types=t,e; + };function YTe(){ + let e=()=>localStorage.getItem('query')||QTe,t=c=>{ + o(c),localStorage.setItem('query',c); + };(0,i0.useEffect)(()=>{ + U$({query:(0,fT.getIntrospectionQuery)()}).then(c=>{ + n((0,fT.buildClientSchema)(WTe(c.data))); + }); + },[]);let[r,n]=(0,i0.useState)(null),[i,o]=(0,i0.useState)(e()),s=()=>n0.default.createElement('span',null);la.Logo=s;let l=R$();return n0.default.createElement('div',{className:'graphiql-container'},n0.default.createElement(la,{fetcher:U$,plugins:[l],schema:r,query:i,onEditQuery:t})); +}fetch('/info').then(e=>e.json()).then(HTe).catch(console.error);var KTe=(0,B$.createRoot)(document.getElementById('graphiql'));KTe.render(n0.default.createElement(YTe,null)); +/* ! Bundled license information: react/cjs/react.production.min.js: (** diff --git a/gui/next/playwright.config.js b/gui/next/playwright.config.js index b4491662..87cd44b2 100644 --- a/gui/next/playwright.config.js +++ b/gui/next/playwright.config.js @@ -34,8 +34,8 @@ export default defineConfig({ projects: [ { name: 'chromium', - use: { ...devices['Desktop Chrome'] }, - }, + use: { ...devices['Desktop Chrome'] } + } // { // name: 'firefox', @@ -66,7 +66,7 @@ export default defineConfig({ // name: 'Google Chrome', // use: { ...devices['Desktop Chrome'], channel: 'chrome' }, // }, - ], + ] /* Run your local dev server before starting the tests */ // webServer: { diff --git a/gui/next/playwright/database.spec.js b/gui/next/playwright/database.spec.js index a716aeb8..17cc845a 100644 --- a/gui/next/playwright/database.spec.js +++ b/gui/next/playwright/database.spec.js @@ -165,7 +165,8 @@ test('filtering record array by not_value_array', async ({ page }) => { }); -// MISSING: Filtering array by 'not_value_in'. It works, but it also filters out the empty arrays even when there is no empty element in the filter +// MISSING: Filtering array by 'not_value_in'. It works, but it also filters out the empty arrays +// even when there is no empty element in the filter test('filtering record int by value_int', async ({ page }) => { diff --git a/gui/next/playwright/helpers/posInstance.js b/gui/next/playwright/helpers/posInstance.js index ae2d43e4..9589fce3 100644 --- a/gui/next/playwright/helpers/posInstance.js +++ b/gui/next/playwright/helpers/posInstance.js @@ -1,10 +1,10 @@ const posInstance = { - MPKIT_URL: '' + MPKIT_URL: '' }; fetch('http://localhost:3333/info').then(data => data.json()).then(info => { - posInstance.MPKIT_URL = info.MPKIT_URL; -}) + posInstance.MPKIT_URL = info.MPKIT_URL; +}); export { posInstance }; \ No newline at end of file diff --git a/gui/next/playwright/logs.spec.js b/gui/next/playwright/logs.spec.js index 78fbea5b..091ef229 100644 --- a/gui/next/playwright/logs.spec.js +++ b/gui/next/playwright/logs.spec.js @@ -29,7 +29,7 @@ test('viewing logs', async ({ page }) => { test('pinning a log message and managing pinned logs', async ({ page }) => { await page.goto(url); - const pinButton = page.getByRole('button', { name: 'Pin this log' }).first() + const pinButton = page.getByRole('button', { name: 'Pin this log' }).first(); // pin log await pinButton.click(); diff --git a/gui/next/playwright/users.spec.js b/gui/next/playwright/users.spec.js index 8d66732b..3db2ce1b 100644 --- a/gui/next/playwright/users.spec.js +++ b/gui/next/playwright/users.spec.js @@ -91,7 +91,7 @@ test('deleting an existing user', async ({ page }) => { const user = page.getByRole('cell', { name: 'testdelete@test.test' }); await expect(user).toBeVisible(); - const userRow = user.locator(".."); + const userRow = user.locator('..'); await userRow.getByRole('button', { name: 'More options' }).first().click(); await userRow.getByRole('button', { name: 'Delete user' }).click(); diff --git a/gui/next/src/lib/api/constant.js b/gui/next/src/lib/api/constant.js index d5477b11..13b730dc 100644 --- a/gui/next/src/lib/api/constant.js +++ b/gui/next/src/lib/api/constant.js @@ -65,4 +65,4 @@ const constant = { // exports // ------------------------------------------------------------------------ -export { constant } +export { constant }; diff --git a/gui/next/src/lib/api/graphql.js b/gui/next/src/lib/api/graphql.js index f381fc8b..921d05a6 100644 --- a/gui/next/src/lib/api/graphql.js +++ b/gui/next/src/lib/api/graphql.js @@ -15,24 +15,24 @@ const graphql = (body) => { return fetch(url, { headers: { 'Content-Type': 'application/json' }, method: 'POST', - body: JSON.stringify(body), + body: JSON.stringify(body) }) - .then((res) => res.json()) - .then((res) => { - if(res.errors) { - res.errors.forEach(error => { - console.log(body.query); - console.info(error); - }); - return res; - } - - return res && res.data; - }); + .then((res) => res.json()) + .then((res) => { + if(res.errors) { + res.errors.forEach(error => { + console.log(body.query); + console.info(error); + }); + return res; + } + + return res && res.data; + }); }; // exports // ------------------------------------------------------------------------ -export { graphql } +export { graphql }; diff --git a/gui/next/src/lib/api/logsv2.js b/gui/next/src/lib/api/logsv2.js index 4bce8248..1c828ca9 100644 --- a/gui/next/src/lib/api/logsv2.js +++ b/gui/next/src/lib/api/logsv2.js @@ -16,8 +16,8 @@ const logs = { filters.page = filters.page ? parseInt(filters.page) - 1 : 0; filters.size = filters.size ?? 20; - filters.from = filters.page * filters.size ?? 0; - filters.stream_name = filters.stream_name ?? 'logs' + filters.from = filters.page * filters.size; + filters.stream_name = filters.stream_name ?? 'logs'; // parse the dates from YYYY-MM-DD if(filters.start_time){ @@ -42,14 +42,14 @@ const logs = { end_time: filters.end_time || 0, track_total_hits: true } - } + }; return fetch(`${url}`, { method: 'POST', body: JSON.stringify(request), headers: { - "Content-Type": "application/json" - }, + 'Content-Type': 'application/json' + } }) .then(response => { if(response.ok){ diff --git a/gui/next/src/lib/api/network.js b/gui/next/src/lib/api/network.js index cf320af7..9331c7c8 100644 --- a/gui/next/src/lib/api/network.js +++ b/gui/next/src/lib/api/network.js @@ -14,9 +14,9 @@ const network = { // the URL to use to connect to the API, in development or preview mode we are using the default pos-cli gui serve port const url = (typeof window !== 'undefined' && window.location.port !== '4173' && window.location.port !== '5173') ? `http://localhost:${parseInt(window.location.port)}/api/logsv2` : 'http://localhost:3333/api/logsv2'; - filters.stream_name = filters.stream_name ?? 'requests' + filters.stream_name = filters.stream_name ?? 'requests'; if(filters.aggregate === 'http_request_path'){ - filters.aggregate = ' GROUP BY http_request_path, http_request_method' + filters.aggregate = ' GROUP BY http_request_path, http_request_method'; } // parse the dates from YYYY-MM-DD @@ -48,7 +48,7 @@ const network = { // request the filters aggregations if(!filters.sql){ - aggregations.filters = `SELECT lb_status_code, count(lb_status_code) as count FROM query GROUP BY lb_status_code ORDER BY count DESC` + aggregations.filters = 'SELECT lb_status_code, count(lb_status_code) as count FROM query GROUP BY lb_status_code ORDER BY count DESC'; } // request the aggregated results @@ -72,14 +72,14 @@ const network = { start_time: filters.start_time || 0, end_time: filters.end_time || 0 } - } + }; return fetch(`${url}`, { method: 'POST', body: JSON.stringify(request), headers: { - "Content-Type": "application/json" - }, + 'Content-Type': 'application/json' + } }) .then(response => { if(response.ok){ diff --git a/gui/next/src/lib/api/record.js b/gui/next/src/lib/api/record.js index 36c79378..09c9aaae 100644 --- a/gui/next/src/lib/api/record.js +++ b/gui/next/src/lib/api/record.js @@ -15,7 +15,8 @@ import { buildMutationIngredients, columnTypeToVariableType } from '$lib/helpers // attribute_type, property, operation, value // returns: GraphQL variables definitions, e.g. '($variable_name: String. $another_variable: Int)' (string) // variables with their values to pass with the query, e.g. { variable_name: 'Variable value', another_variable: 5 } (object) -// filters used to filter properties in GraphQL requests, e.g. 'properties: [name: "variable_name", contains: $variable_value]' (string) +// filters used to filter properties in GraphQL requests, +// e.g. 'properties: [name: "variable_name", contains: $variable_value]' (string) // ------------------------------------------------------------------------ const buildQueryIngredients = (filters = []) => { // graphql variables definition for the query (string) @@ -50,26 +51,21 @@ const buildQueryIngredients = (filters = []) => { if(operationsForType.int.includes(filter.operation)){ filterType = 'integer'; parsedFilterValue = parseInt(filter.value); - } - else if (operationsForType.float.includes(filter.operation)){ + } else if (operationsForType.float.includes(filter.operation)){ filterType = 'float'; parsedFilterValue = parseFloat(filter.value); - } - else if (operationsForType.bool.includes(filter.operation)){ + } else if (operationsForType.bool.includes(filter.operation)){ filterType = 'boolean'; parsedFilterValue = filter.value === 'true' ? true : false; - } - else if(operationsForType.range.includes(filter.operation)){ + } else if(operationsForType.range.includes(filter.operation)){ filterType = 'range'; parsedFilterValue = {}; parsedFilterValue[filter.minFilter] = filter.minFilterValue; parsedFilterValue[filter.maxFilter] = filter.maxFilterValue; - } - else if(operationsForType.array.includes(filter.operation)){ + } else if(operationsForType.array.includes(filter.operation)){ filterType = 'array'; parsedFilterValue = JSON.parse(filter.value); - } - else { + } else { filterType = 'string'; parsedFilterValue = filter.value; } @@ -141,10 +137,10 @@ const record = { sort = `properties: { name: "${params.sort.by}", order: ${params.sort.order} }`; } } else { - sort = `created_at: { order: DESC }`; + sort = 'created_at: { order: DESC }'; } - const deletedFilter = params.deleted === 'true' ? `deleted_at: { exists: true }` : ''; + const deletedFilter = params.deleted === 'true' ? 'deleted_at: { exists: true }' : ''; const propertiesFilterData = buildQueryIngredients(params.filters?.attributes); @@ -173,7 +169,9 @@ const record = { } }`; - return graphql({ query, variables: propertiesFilterData.variables }).then(data => { state.data('records', data.records) }); + return graphql({ query, variables: propertiesFilterData.variables }).then(data => { + state.data('records', data.records); + }); }, @@ -285,4 +283,4 @@ const record = { // exports // ------------------------------------------------------------------------ -export { record } +export { record }; diff --git a/gui/next/src/lib/api/table.js b/gui/next/src/lib/api/table.js index 64251c67..5114ab8f 100644 --- a/gui/next/src/lib/api/table.js +++ b/gui/next/src/lib/api/table.js @@ -37,7 +37,7 @@ const table = { } }`; - const variables = { per_page: 100, id: id } + const variables = { per_page: 100, id: id }; return graphql({ query, variables }).then(data => data.admin_tables.results); } @@ -47,4 +47,4 @@ const table = { // exports // ------------------------------------------------------------------------ -export { table } +export { table }; diff --git a/gui/next/src/lib/api/user.js b/gui/next/src/lib/api/user.js index f2647a57..cc9f5469 100644 --- a/gui/next/src/lib/api/user.js +++ b/gui/next/src/lib/api/user.js @@ -82,7 +82,7 @@ const user = { } `; - return graphql({ query }, false) + return graphql({ query }, false); }, // purpose: creates a new user @@ -147,4 +147,4 @@ const user = { // exports // ------------------------------------------------------------------------ -export { user } +export { user }; diff --git a/gui/next/src/lib/helpers/buildMutationIngredients.js b/gui/next/src/lib/helpers/buildMutationIngredients.js index 9c2e5262..365a0789 100644 --- a/gui/next/src/lib/helpers/buildMutationIngredients.js +++ b/gui/next/src/lib/helpers/buildMutationIngredients.js @@ -109,6 +109,6 @@ export const buildMutationIngredients = (formData) => { variablesDefinition = `(${variablesDefinition})`; // add brackets to definition string } - return { variablesDefinition, variables, properties } + return { variablesDefinition, variables, properties }; }; \ No newline at end of file diff --git a/gui/next/src/lib/helpers/clickOutside.js b/gui/next/src/lib/helpers/clickOutside.js index 1a3d7ca2..16998f34 100644 --- a/gui/next/src/lib/helpers/clickOutside.js +++ b/gui/next/src/lib/helpers/clickOutside.js @@ -11,7 +11,7 @@ const clickOutside = (node, callback) => { if (!path.includes(node)) { callback(event); } - } + }; document.addEventListener('mousedown', handleClick); @@ -19,7 +19,7 @@ const clickOutside = (node, callback) => { destroy() { document.removeEventListener('mousedown', handleClick); } - } + }; }; diff --git a/gui/next/src/lib/helpers/httpStatusCodes.js b/gui/next/src/lib/helpers/httpStatusCodes.js index 4e0fa13b..7c125e09 100644 --- a/gui/next/src/lib/helpers/httpStatusCodes.js +++ b/gui/next/src/lib/helpers/httpStatusCodes.js @@ -70,10 +70,10 @@ const httpStatusCodes = { 507: 'Insufficient Storage', 508: 'Loop Detected', 510: 'Not Extended', - 511: 'Network Authentication Required', + 511: 'Network Authentication Required' }; // exports // ------------------------------------------------------------------------ -export { httpStatusCodes } +export { httpStatusCodes }; diff --git a/gui/next/src/lib/state.js b/gui/next/src/lib/state.js index d817a211..cb99bee6 100644 --- a/gui/next/src/lib/state.js +++ b/gui/next/src/lib/state.js @@ -24,57 +24,57 @@ function createStore(){ // store properties // ------------------------------------------------------------------------ const state = {}; - // list of items pinned to the header navigation (array of strings) - state.header = browser && localStorage.header ? JSON.parse(localStorage.header) : ['database', 'users', 'logs']; - // if the app is connected to the instance (object or false) - state.online = undefined; - // logs data (object) - state.logs = {}; - // new logs data (object) - state.logsv2 = {}; - // currently active log (object) - state.logv2 = {}; - // network logs data (object) - state.networks = {}; - // currently active network log (object) - state.network = {}; - // tables for current instance (array) - state.tables = []; - // currently active table (object) - state.table = {}; - // type of view for the records ('table' or 'tiles') - state.view = { - database: view?.database ? view.database : 'table', - tableStyle: view?.tableStyle ? view.tableStyle : 'collapsed' - }; - // currently viewed records list (object) - state.records = {}; - // currently viewed/edited record (object) - state.record = null; - // currently highlighted ids (object) - state.highlighted = { - record: null, - constant: null - }; - // filters for the records (object) - state.filters = { - page: 1, - attributes: [ - { attribute_type: 'id', name: 'id', operation: 'value', value: '' } - ], - deleted: 'false' - }; - // sort order for the records (object) - state.sort = { - by: 'created_at', - order: 'DESC' - }; - // list of notifications (array of objects) - state.notifications = []; - // width of the aside panel in css units (string) - state.asideWidth = browser && localStorage.asideWidth ? localStorage.asideWidth : false; - // list of users - state.users = [] + // list of items pinned to the header navigation (array of strings) + state.header = browser && localStorage.header ? JSON.parse(localStorage.header) : ['database', 'users', 'logs']; + // if the app is connected to the instance (object or false) + state.online = undefined; + // logs data (object) + state.logs = {}; + // new logs data (object) + state.logsv2 = {}; + // currently active log (object) + state.logv2 = {}; + // network logs data (object) + state.networks = {}; + // currently active network log (object) + state.network = {}; + // tables for current instance (array) + state.tables = []; + // currently active table (object) + state.table = {}; + // type of view for the records ('table' or 'tiles') + state.view = { + database: view?.database ? view.database : 'table', + tableStyle: view?.tableStyle ? view.tableStyle : 'collapsed' + }; + // currently viewed records list (object) + state.records = {}; + // currently viewed/edited record (object) + state.record = null; + // currently highlighted ids (object) + state.highlighted = { + record: null, + constant: null + }; + // filters for the records (object) + state.filters = { + page: 1, + attributes: [ + { attribute_type: 'id', name: 'id', operation: 'value', value: '' } + ], + deleted: 'false' + }; + // sort order for the records (object) + state.sort = { + by: 'created_at', + order: 'DESC' + }; + // list of notifications (array of objects) + state.notifications = []; + // width of the aside panel in css units (string) + state.asideWidth = browser && localStorage.asideWidth ? localStorage.asideWidth : false; + // list of users + state.users = []; // purpose: creates the store with data provided in state object // ------------------------------------------------------------------------ @@ -131,7 +131,9 @@ function createStore(){ }); clearTimeout(highlightTimeout); - highlightTimeout = setTimeout(() => { highlight('record', null); highlight('constant', null) }, 7000); + highlightTimeout = setTimeout(() => { + highlight('record', null); highlight('constant', null); + }, 7000); }; @@ -160,7 +162,7 @@ function createStore(){ return state; }); - }, + } }; @@ -170,7 +172,7 @@ function createStore(){ // ------------------------------------------------------------------------ const setView = (newView) => { update(state => { - state.view = {...state.view, ...newView} + state.view = {...state.view, ...newView}; if(browser){ localStorage.view = JSON.stringify(state.view); @@ -190,7 +192,7 @@ function createStore(){ highlight, notification, setView - } + }; }; @@ -198,4 +200,4 @@ function createStore(){ // exports // ------------------------------------------------------------------------ -export { state } +export { state }; diff --git a/gui/next/src/lib/tryParseJSON.js b/gui/next/src/lib/tryParseJSON.js index 5f95d45d..1eb4ce9c 100644 --- a/gui/next/src/lib/tryParseJSON.js +++ b/gui/next/src/lib/tryParseJSON.js @@ -16,9 +16,9 @@ const tryParseJSON = (argument) => { if(o && typeof o === 'object'){ return o; } + } catch { + // catch the error from parsing JSON but do nothing } - // catch the error from parsing JSON but do nothing - catch(e){}; // if everything failed we can assumen the argument is not parsable JSON return false; @@ -29,4 +29,4 @@ const tryParseJSON = (argument) => { // exports // ------------------------------------------------------------------------ -export { tryParseJSON } +export { tryParseJSON }; diff --git a/gui/next/static/prism.js b/gui/next/static/prism.js index ea520171..382c1e25 100644 --- a/gui/next/static/prism.js +++ b/gui/next/static/prism.js @@ -1,8 +1,254 @@ /* PrismJS 1.29.0 https://prismjs.com/download.html#themes=prism-tomorrow&languages=markup+liquid+markup-templating&plugins=line-numbers+normalize-whitespace */ -var _self="undefined"!=typeof window?window:"undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope?self:{},Prism=function(e){var n=/(?:^|\s)lang(?:uage)?-([\w-]+)(?=\s|$)/i,t=0,r={},a={manual:e.Prism&&e.Prism.manual,disableWorkerMessageHandler:e.Prism&&e.Prism.disableWorkerMessageHandler,util:{encode:function e(n){return n instanceof i?new i(n.type,e(n.content),n.alias):Array.isArray(n)?n.map(e):n.replace(/&/g,"&").replace(/=g.reach);A+=w.value.length,w=w.next){var E=w.value;if(n.length>e.length)return;if(!(E instanceof i)){var P,L=1;if(y){if(!(P=l(b,A,e,m))||P.index>=e.length)break;var S=P.index,O=P.index+P[0].length,j=A;for(j+=w.value.length;S>=j;)j+=(w=w.next).value.length;if(A=j-=w.value.length,w.value instanceof i)continue;for(var C=w;C!==n.tail&&(jg.reach&&(g.reach=W);var z=w.prev;if(_&&(z=u(n,z,_),A+=_.length),c(n,z,L),w=u(n,z,new i(f,p?a.tokenize(N,p):N,k,N)),M&&u(n,w,M),L>1){var I={cause:f+","+d,reach:W};o(e,n,t,w.prev,A,I),g&&I.reach>g.reach&&(g.reach=I.reach)}}}}}}function s(){var e={value:null,prev:null,next:null},n={value:null,prev:e,next:null};e.next=n,this.head=e,this.tail=n,this.length=0}function u(e,n,t){var r=n.next,a={value:t,prev:n,next:r};return n.next=a,r.prev=a,e.length++,a}function c(e,n,t){for(var r=n.next,a=0;a"+i.content+""},!e.document)return e.addEventListener?(a.disableWorkerMessageHandler||e.addEventListener("message",(function(n){var t=JSON.parse(n.data),r=t.language,i=t.code,l=t.immediateClose;e.postMessage(a.highlight(i,a.languages[r],r)),l&&e.close()}),!1),a):a;var g=a.util.currentScript();function f(){a.manual||a.highlightAll()}if(g&&(a.filename=g.src,g.hasAttribute("data-manual")&&(a.manual=!0)),!a.manual){var h=document.readyState;"loading"===h||"interactive"===h&&g&&g.defer?document.addEventListener("DOMContentLoaded",f):window.requestAnimationFrame?window.requestAnimationFrame(f):window.setTimeout(f,16)}return a}(_self);"undefined"!=typeof module&&module.exports&&(module.exports=Prism),"undefined"!=typeof global&&(global.Prism=Prism); -Prism.languages.markup={comment:{pattern://,greedy:!0},prolog:{pattern:/<\?[\s\S]+?\?>/,greedy:!0},doctype:{pattern:/"'[\]]|"[^"]*"|'[^']*')+(?:\[(?:[^<"'\]]|"[^"]*"|'[^']*'|<(?!!--)|)*\]\s*)?>/i,greedy:!0,inside:{"internal-subset":{pattern:/(^[^\[]*\[)[\s\S]+(?=\]>$)/,lookbehind:!0,greedy:!0,inside:null},string:{pattern:/"[^"]*"|'[^']*'/,greedy:!0},punctuation:/^$|[[\]]/,"doctype-tag":/^DOCTYPE/i,name:/[^\s<>'"]+/}},cdata:{pattern://i,greedy:!0},tag:{pattern:/<\/?(?!\d)[^\s>\/=$<%]+(?:\s(?:\s*[^\s>\/=]+(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))|(?=[\s/>])))+)?\s*\/?>/,greedy:!0,inside:{tag:{pattern:/^<\/?[^\s>\/]+/,inside:{punctuation:/^<\/?/,namespace:/^[^\s>\/:]+:/}},"special-attr":[],"attr-value":{pattern:/=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+)/,inside:{punctuation:[{pattern:/^=/,alias:"attr-equals"},{pattern:/^(\s*)["']|["']$/,lookbehind:!0}]}},punctuation:/\/?>/,"attr-name":{pattern:/[^\s>\/]+/,inside:{namespace:/^[^\s>\/:]+:/}}}},entity:[{pattern:/&[\da-z]{1,8};/i,alias:"named-entity"},/&#x?[\da-f]{1,8};/i]},Prism.languages.markup.tag.inside["attr-value"].inside.entity=Prism.languages.markup.entity,Prism.languages.markup.doctype.inside["internal-subset"].inside=Prism.languages.markup,Prism.hooks.add("wrap",(function(a){"entity"===a.type&&(a.attributes.title=a.content.replace(/&/,"&"))})),Object.defineProperty(Prism.languages.markup.tag,"addInlined",{value:function(a,e){var s={};s["language-"+e]={pattern:/(^$)/i,lookbehind:!0,inside:Prism.languages[e]},s.cdata=/^$/i;var t={"included-cdata":{pattern://i,inside:s}};t["language-"+e]={pattern:/[\s\S]+/,inside:Prism.languages[e]};var n={};n[a]={pattern:RegExp("(<__[^>]*>)(?:))*\\]\\]>|(?!)".replace(/__/g,(function(){return a})),"i"),lookbehind:!0,greedy:!0,inside:t},Prism.languages.insertBefore("markup","cdata",n)}}),Object.defineProperty(Prism.languages.markup.tag,"addAttribute",{value:function(a,e){Prism.languages.markup.tag.inside["special-attr"].push({pattern:RegExp("(^|[\"'\\s])(?:"+a+")\\s*=\\s*(?:\"[^\"]*\"|'[^']*'|[^\\s'\">=]+(?=[\\s>]))","i"),lookbehind:!0,inside:{"attr-name":/^[^\s=]+/,"attr-value":{pattern:/=[\s\S]+/,inside:{value:{pattern:/(^=\s*(["']|(?!["'])))\S[\s\S]*(?=\2$)/,lookbehind:!0,alias:[e,"language-"+e],inside:Prism.languages[e]},punctuation:[{pattern:/^=/,alias:"attr-equals"},/"|'/]}}}})}}),Prism.languages.html=Prism.languages.markup,Prism.languages.mathml=Prism.languages.markup,Prism.languages.svg=Prism.languages.markup,Prism.languages.xml=Prism.languages.extend("markup",{}),Prism.languages.ssml=Prism.languages.xml,Prism.languages.atom=Prism.languages.xml,Prism.languages.rss=Prism.languages.xml; -!function(e){function n(e,n){return"___"+e.toUpperCase()+n+"___"}Object.defineProperties(e.languages["markup-templating"]={},{buildPlaceholders:{value:function(t,a,r,o){if(t.language===a){var c=t.tokenStack=[];t.code=t.code.replace(r,(function(e){if("function"==typeof o&&!o(e))return e;for(var r,i=c.length;-1!==t.code.indexOf(r=n(a,i));)++i;return c[i]=e,r})),t.grammar=e.languages.markup}}},tokenizePlaceholders:{value:function(t,a){if(t.language===a&&t.tokenStack){t.grammar=e.languages[a];var r=0,o=Object.keys(t.tokenStack);!function c(i){for(var u=0;u=o.length);u++){var g=i[u];if("string"==typeof g||g.content&&"string"==typeof g.content){var l=o[r],s=t.tokenStack[l],f="string"==typeof g?g:g.content,p=n(a,l),k=f.indexOf(p);if(k>-1){++r;var m=f.substring(0,k),d=new e.Token(a,e.tokenize(s,t.grammar),"language-"+a,s),h=f.substring(k+p.length),v=[];m&&v.push.apply(v,c([m])),v.push(d),h&&v.push.apply(v,c([h])),"string"==typeof g?i.splice.apply(i,[u,1].concat(v)):g.content=v}}else g.content&&c(g.content)}return i}(t.tokens)}}}})}(Prism); -Prism.languages.liquid={comment:{pattern:/(^\{%\s*comment\s*%\})[\s\S]+(?=\{%\s*endcomment\s*%\}$)/,lookbehind:!0},delimiter:{pattern:/^\{(?:\{\{|[%\{])-?|-?(?:\}\}|[%\}])\}$/,alias:"punctuation"},string:{pattern:/"[^"]*"|'[^']*'/,greedy:!0},keyword:/\b(?:as|assign|break|(?:end)?(?:capture|case|comment|for|form|if|paginate|raw|style|tablerow|unless)|continue|cycle|decrement|echo|else|elsif|in|include|increment|limit|liquid|offset|range|render|reversed|section|when|with)\b/,object:/\b(?:address|all_country_option_tags|article|block|blog|cart|checkout|collection|color|country|country_option_tags|currency|current_page|current_tags|customer|customer_address|date|discount_allocation|discount_application|external_video|filter|filter_value|font|forloop|fulfillment|generic_file|gift_card|group|handle|image|line_item|link|linklist|localization|location|measurement|media|metafield|model|model_source|order|page|page_description|page_image|page_title|part|policy|product|product_option|recommendations|request|robots|routes|rule|script|search|selling_plan|selling_plan_allocation|selling_plan_group|shipping_method|shop|shop_locale|sitemap|store_availability|tax_line|template|theme|transaction|unit_price_measurement|user_agent|variant|video|video_source)\b/,function:[{pattern:/(\|\s*)\w+/,lookbehind:!0,alias:"filter"},{pattern:/(\.\s*)(?:first|last|size)/,lookbehind:!0}],boolean:/\b(?:false|nil|true)\b/,range:{pattern:/\.\./,alias:"operator"},number:/\b\d+(?:\.\d+)?\b/,operator:/[!=]=|<>|[<>]=?|[|?:=-]|\b(?:and|contains(?=\s)|or)\b/,punctuation:/[.,\[\]()]/,empty:{pattern:/\bempty\b/,alias:"keyword"}},Prism.hooks.add("before-tokenize",(function(e){var t=!1;Prism.languages["markup-templating"].buildPlaceholders(e,"liquid",/\{%\s*comment\s*%\}[\s\S]*?\{%\s*endcomment\s*%\}|\{(?:%[\s\S]*?%|\{\{[\s\S]*?\}\}|\{[\s\S]*?\})\}/g,(function(e){var n=/^\{%-?\s*(\w+)/.exec(e);if(n){var i=n[1];if("raw"===i&&!t)return t=!0,!0;if("endraw"===i)return t=!1,!0}return!t}))})),Prism.hooks.add("after-tokenize",(function(e){Prism.languages["markup-templating"].tokenizePlaceholders(e,"liquid")})); -!function(){if("undefined"!=typeof Prism&&"undefined"!=typeof document){var e="line-numbers",n=/\n(?!$)/g,t=Prism.plugins.lineNumbers={getLine:function(n,t){if("PRE"===n.tagName&&n.classList.contains(e)){var i=n.querySelector(".line-numbers-rows");if(i){var r=parseInt(n.getAttribute("data-start"),10)||1,s=r+(i.children.length-1);ts&&(t=s);var l=t-r;return i.children[l]}}},resize:function(e){r([e])},assumeViewportIndependence:!0},i=void 0;window.addEventListener("resize",(function(){t.assumeViewportIndependence&&i===window.innerWidth||(i=window.innerWidth,r(Array.prototype.slice.call(document.querySelectorAll("pre.line-numbers"))))})),Prism.hooks.add("complete",(function(t){if(t.code){var i=t.element,s=i.parentNode;if(s&&/pre/i.test(s.nodeName)&&!i.querySelector(".line-numbers-rows")&&Prism.util.isActive(i,e)){i.classList.remove(e),s.classList.add(e);var l,o=t.code.match(n),a=o?o.length+1:1,u=new Array(a+1).join("");(l=document.createElement("span")).setAttribute("aria-hidden","true"),l.className="line-numbers-rows",l.innerHTML=u,s.hasAttribute("data-start")&&(s.style.counterReset="linenumber "+(parseInt(s.getAttribute("data-start"),10)-1)),t.element.appendChild(l),r([s]),Prism.hooks.run("line-numbers",t)}}})),Prism.hooks.add("line-numbers",(function(e){e.plugins=e.plugins||{},e.plugins.lineNumbers=!0}))}function r(e){if(0!=(e=e.filter((function(e){var n,t=(n=e,n?window.getComputedStyle?getComputedStyle(n):n.currentStyle||null:null)["white-space"];return"pre-wrap"===t||"pre-line"===t}))).length){var t=e.map((function(e){var t=e.querySelector("code"),i=e.querySelector(".line-numbers-rows");if(t&&i){var r=e.querySelector(".line-numbers-sizer"),s=t.textContent.split(n);r||((r=document.createElement("span")).className="line-numbers-sizer",t.appendChild(r)),r.innerHTML="0",r.style.display="block";var l=r.getBoundingClientRect().height;return r.innerHTML="",{element:e,lines:s,lineHeights:[],oneLinerHeight:l,sizer:r}}})).filter(Boolean);t.forEach((function(e){var n=e.sizer,t=e.lines,i=e.lineHeights,r=e.oneLinerHeight;i[t.length-1]=void 0,t.forEach((function(e,t){if(e&&e.length>1){var s=n.appendChild(document.createElement("span"));s.style.display="block",s.textContent=e}else i[t]=r}))})),t.forEach((function(e){for(var n=e.sizer,t=e.lineHeights,i=0,r=0;rt&&(o[l]="\n"+o[l],a=s)}n[i]=o.join("")}return n.join("\n")}},"undefined"!=typeof module&&module.exports&&(module.exports=n),Prism.plugins.NormalizeWhitespace=new n({"remove-trailing":!0,"remove-indent":!0,"left-trim":!0,"right-trim":!0}),Prism.hooks.add("before-sanity-check",(function(e){var n=Prism.plugins.NormalizeWhitespace;if((!e.settings||!1!==e.settings["whitespace-normalization"])&&Prism.util.isActive(e.element,"whitespace-normalization",!0))if(e.element&&e.element.parentNode||!e.code){var r=e.element.parentNode;if(e.code&&r&&"pre"===r.nodeName.toLowerCase()){for(var i in null==e.settings&&(e.settings={}),t)if(Object.hasOwnProperty.call(t,i)){var o=t[i];if(r.hasAttribute("data-"+i))try{var a=JSON.parse(r.getAttribute("data-"+i)||"true");typeof a===o&&(e.settings[i]=a)}catch(e){}}for(var l=r.childNodes,s="",c="",u=!1,m=0;m=g.reach);A+=w.value.length,w=w.next){ + var E=w.value;if(n.length>e.length)return;if(!(E instanceof i)){ + var P,L=1;if(y){ + if(!(P=l(b,A,e,m))||P.index>=e.length)break;var S=P.index,O=P.index+P[0].length,j=A;for(j+=w.value.length;S>=j;)j+=(w=w.next).value.length;if(A=j-=w.value.length,w.value instanceof i)continue;for(var C=w;C!==n.tail&&(jg.reach&&(g.reach=W);var z=w.prev;if(_&&(z=u(n,z,_),A+=_.length),c(n,z,L),w=u(n,z,new i(f,p?a.tokenize(N,p):N,k,N)),M&&u(n,w,M),L>1){ + var I={cause:f+','+d,reach:W};o(e,n,t,w.prev,A,I),g&&I.reach>g.reach&&(g.reach=I.reach); + } + } + } + } + } + }function s(){ + var e={value:null,prev:null,next:null},n={value:null,prev:e,next:null};e.next=n,this.head=e,this.tail=n,this.length=0; + }function u(e,n,t){ + var r=n.next,a={value:t,prev:n,next:r};return n.next=a,r.prev=a,e.length++,a; + }function c(e,n,t){ + for(var r=n.next,a=0;a'+i.content+''; + },!e.document)return e.addEventListener?(a.disableWorkerMessageHandler||e.addEventListener('message',(function(n){ + var t=JSON.parse(n.data),r=t.language,i=t.code,l=t.immediateClose;e.postMessage(a.highlight(i,a.languages[r],r)),l&&e.close(); + }),!1),a):a;var g=a.util.currentScript();function f(){ + a.manual||a.highlightAll(); + }if(g&&(a.filename=g.src,g.hasAttribute('data-manual')&&(a.manual=!0)),!a.manual){ + var h=document.readyState;'loading'===h||'interactive'===h&&g&&g.defer?document.addEventListener('DOMContentLoaded',f):window.requestAnimationFrame?window.requestAnimationFrame(f):window.setTimeout(f,16); + }return a; +}(_self);'undefined'!=typeof module&&module.exports&&(module.exports=Prism),'undefined'!=typeof global&&(global.Prism=Prism); +Prism.languages.markup={comment:{pattern://,greedy:!0},prolog:{pattern:/<\?[\s\S]+?\?>/,greedy:!0},doctype:{pattern:/"'[\]]|"[^"]*"|'[^']*')+(?:\[(?:[^<"'\]]|"[^"]*"|'[^']*'|<(?!!--)|)*\]\s*)?>/i,greedy:!0,inside:{'internal-subset':{pattern:/(^[^\[]*\[)[\s\S]+(?=\]>$)/,lookbehind:!0,greedy:!0,inside:null},string:{pattern:/"[^"]*"|'[^']*'/,greedy:!0},punctuation:/^$|[[\]]/,'doctype-tag':/^DOCTYPE/i,name:/[^\s<>'"]+/}},cdata:{pattern://i,greedy:!0},tag:{pattern:/<\/?(?!\d)[^\s>\/=$<%]+(?:\s(?:\s*[^\s>\/=]+(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))|(?=[\s/>])))+)?\s*\/?>/,greedy:!0,inside:{tag:{pattern:/^<\/?[^\s>\/]+/,inside:{punctuation:/^<\/?/,namespace:/^[^\s>\/:]+:/}},'special-attr':[],'attr-value':{pattern:/=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+)/,inside:{punctuation:[{pattern:/^=/,alias:'attr-equals'},{pattern:/^(\s*)["']|["']$/,lookbehind:!0}]}},punctuation:/\/?>/,'attr-name':{pattern:/[^\s>\/]+/,inside:{namespace:/^[^\s>\/:]+:/}}}},entity:[{pattern:/&[\da-z]{1,8};/i,alias:'named-entity'},/&#x?[\da-f]{1,8};/i]},Prism.languages.markup.tag.inside['attr-value'].inside.entity=Prism.languages.markup.entity,Prism.languages.markup.doctype.inside['internal-subset'].inside=Prism.languages.markup,Prism.hooks.add('wrap',(function(a){ + 'entity'===a.type&&(a.attributes.title=a.content.replace(/&/,'&')); +})),Object.defineProperty(Prism.languages.markup.tag,'addInlined',{value:function(a,e){ + var s={};s['language-'+e]={pattern:/(^$)/i,lookbehind:!0,inside:Prism.languages[e]},s.cdata=/^$/i;var t={'included-cdata':{pattern://i,inside:s}};t['language-'+e]={pattern:/[\s\S]+/,inside:Prism.languages[e]};var n={};n[a]={pattern:RegExp('(<__[^>]*>)(?:))*\\]\\]>|(?!)'.replace(/__/g,(function(){ + return a; + })),'i'),lookbehind:!0,greedy:!0,inside:t},Prism.languages.insertBefore('markup','cdata',n); +}}),Object.defineProperty(Prism.languages.markup.tag,'addAttribute',{value:function(a,e){ + Prism.languages.markup.tag.inside['special-attr'].push({pattern:RegExp("(^|[\"'\\s])(?:"+a+")\\s*=\\s*(?:\"[^\"]*\"|'[^']*'|[^\\s'\">=]+(?=[\\s>]))",'i'),lookbehind:!0,inside:{'attr-name':/^[^\s=]+/,'attr-value':{pattern:/=[\s\S]+/,inside:{value:{pattern:/(^=\s*(["']|(?!["'])))\S[\s\S]*(?=\2$)/,lookbehind:!0,alias:[e,'language-'+e],inside:Prism.languages[e]},punctuation:[{pattern:/^=/,alias:'attr-equals'},/"|'/]}}}}); +}}),Prism.languages.html=Prism.languages.markup,Prism.languages.mathml=Prism.languages.markup,Prism.languages.svg=Prism.languages.markup,Prism.languages.xml=Prism.languages.extend('markup',{}),Prism.languages.ssml=Prism.languages.xml,Prism.languages.atom=Prism.languages.xml,Prism.languages.rss=Prism.languages.xml; +!function(e){ + function n(e,n){ + return'___'+e.toUpperCase()+n+'___'; + }Object.defineProperties(e.languages['markup-templating']={},{buildPlaceholders:{value:function(t,a,r,o){ + if(t.language===a){ + var c=t.tokenStack=[];t.code=t.code.replace(r,(function(e){ + if('function'==typeof o&&!o(e))return e;for(var r,i=c.length;-1!==t.code.indexOf(r=n(a,i));)++i;return c[i]=e,r; + })),t.grammar=e.languages.markup; + } + }},tokenizePlaceholders:{value:function(t,a){ + if(t.language===a&&t.tokenStack){ + t.grammar=e.languages[a];var r=0,o=Object.keys(t.tokenStack);!function c(i){ + for(var u=0;u=o.length);u++){ + var g=i[u];if('string'==typeof g||g.content&&'string'==typeof g.content){ + var l=o[r],s=t.tokenStack[l],f='string'==typeof g?g:g.content,p=n(a,l),k=f.indexOf(p);if(k>-1){ + ++r;var m=f.substring(0,k),d=new e.Token(a,e.tokenize(s,t.grammar),'language-'+a,s),h=f.substring(k+p.length),v=[];m&&v.push.apply(v,c([m])),v.push(d),h&&v.push.apply(v,c([h])),'string'==typeof g?i.splice.apply(i,[u,1].concat(v)):g.content=v; + } + }else g.content&&c(g.content); + }return i; + }(t.tokens); + } + }}}); +}(Prism); +Prism.languages.liquid={comment:{pattern:/(^\{%\s*comment\s*%\})[\s\S]+(?=\{%\s*endcomment\s*%\}$)/,lookbehind:!0},delimiter:{pattern:/^\{(?:\{\{|[%\{])-?|-?(?:\}\}|[%\}])\}$/,alias:'punctuation'},string:{pattern:/"[^"]*"|'[^']*'/,greedy:!0},keyword:/\b(?:as|assign|break|(?:end)?(?:capture|case|comment|for|form|if|paginate|raw|style|tablerow|unless)|continue|cycle|decrement|echo|else|elsif|in|include|increment|limit|liquid|offset|range|render|reversed|section|when|with)\b/,object:/\b(?:address|all_country_option_tags|article|block|blog|cart|checkout|collection|color|country|country_option_tags|currency|current_page|current_tags|customer|customer_address|date|discount_allocation|discount_application|external_video|filter|filter_value|font|forloop|fulfillment|generic_file|gift_card|group|handle|image|line_item|link|linklist|localization|location|measurement|media|metafield|model|model_source|order|page|page_description|page_image|page_title|part|policy|product|product_option|recommendations|request|robots|routes|rule|script|search|selling_plan|selling_plan_allocation|selling_plan_group|shipping_method|shop|shop_locale|sitemap|store_availability|tax_line|template|theme|transaction|unit_price_measurement|user_agent|variant|video|video_source)\b/,function:[{pattern:/(\|\s*)\w+/,lookbehind:!0,alias:'filter'},{pattern:/(\.\s*)(?:first|last|size)/,lookbehind:!0}],boolean:/\b(?:false|nil|true)\b/,range:{pattern:/\.\./,alias:'operator'},number:/\b\d+(?:\.\d+)?\b/,operator:/[!=]=|<>|[<>]=?|[|?:=-]|\b(?:and|contains(?=\s)|or)\b/,punctuation:/[.,\[\]()]/,empty:{pattern:/\bempty\b/,alias:'keyword'}},Prism.hooks.add('before-tokenize',(function(e){ + var t=!1;Prism.languages['markup-templating'].buildPlaceholders(e,'liquid',/\{%\s*comment\s*%\}[\s\S]*?\{%\s*endcomment\s*%\}|\{(?:%[\s\S]*?%|\{\{[\s\S]*?\}\}|\{[\s\S]*?\})\}/g,(function(e){ + var n=/^\{%-?\s*(\w+)/.exec(e);if(n){ + var i=n[1];if('raw'===i&&!t)return t=!0,!0;if('endraw'===i)return t=!1,!0; + }return!t; + })); +})),Prism.hooks.add('after-tokenize',(function(e){ + Prism.languages['markup-templating'].tokenizePlaceholders(e,'liquid'); +})); +!function(){ + if('undefined'!=typeof Prism&&'undefined'!=typeof document){ + var e='line-numbers',n=/\n(?!$)/g,t=Prism.plugins.lineNumbers={getLine:function(n,t){ + if('PRE'===n.tagName&&n.classList.contains(e)){ + var i=n.querySelector('.line-numbers-rows');if(i){ + var r=parseInt(n.getAttribute('data-start'),10)||1,s=r+(i.children.length-1);ts&&(t=s);var l=t-r;return i.children[l]; + } + } + },resize:function(e){ + r([e]); + },assumeViewportIndependence:!0},i=void 0;window.addEventListener('resize',(function(){ + t.assumeViewportIndependence&&i===window.innerWidth||(i=window.innerWidth,r(Array.prototype.slice.call(document.querySelectorAll('pre.line-numbers')))); + })),Prism.hooks.add('complete',(function(t){ + if(t.code){ + var i=t.element,s=i.parentNode;if(s&&/pre/i.test(s.nodeName)&&!i.querySelector('.line-numbers-rows')&&Prism.util.isActive(i,e)){ + i.classList.remove(e),s.classList.add(e);var l,o=t.code.match(n),a=o?o.length+1:1,u=new Array(a+1).join('');(l=document.createElement('span')).setAttribute('aria-hidden','true'),l.className='line-numbers-rows',l.innerHTML=u,s.hasAttribute('data-start')&&(s.style.counterReset='linenumber '+(parseInt(s.getAttribute('data-start'),10)-1)),t.element.appendChild(l),r([s]),Prism.hooks.run('line-numbers',t); + } + } + })),Prism.hooks.add('line-numbers',(function(e){ + e.plugins=e.plugins||{},e.plugins.lineNumbers=!0; + })); + }function r(e){ + if(0!=(e=e.filter((function(e){ + var n,t=(n=e,n?window.getComputedStyle?getComputedStyle(n):n.currentStyle||null:null)['white-space'];return'pre-wrap'===t||'pre-line'===t; + }))).length){ + var t=e.map((function(e){ + var t=e.querySelector('code'),i=e.querySelector('.line-numbers-rows');if(t&&i){ + var r=e.querySelector('.line-numbers-sizer'),s=t.textContent.split(n);r||((r=document.createElement('span')).className='line-numbers-sizer',t.appendChild(r)),r.innerHTML='0',r.style.display='block';var l=r.getBoundingClientRect().height;return r.innerHTML='',{element:e,lines:s,lineHeights:[],oneLinerHeight:l,sizer:r}; + } + })).filter(Boolean);t.forEach((function(e){ + var n=e.sizer,t=e.lines,i=e.lineHeights,r=e.oneLinerHeight;i[t.length-1]=void 0,t.forEach((function(e,t){ + if(e&&e.length>1){ + var s=n.appendChild(document.createElement('span'));s.style.display='block',s.textContent=e; + }else i[t]=r; + })); + })),t.forEach((function(e){ + for(var n=e.sizer,t=e.lineHeights,i=0,r=0;rt&&(o[l]='\n'+o[l],a=s); + }n[i]=o.join(''); + }return n.join('\n'); + }},'undefined'!=typeof module&&module.exports&&(module.exports=n),Prism.plugins.NormalizeWhitespace=new n({'remove-trailing':!0,'remove-indent':!0,'left-trim':!0,'right-trim':!0}),Prism.hooks.add('before-sanity-check',(function(e){ + var n=Prism.plugins.NormalizeWhitespace;if((!e.settings||!1!==e.settings['whitespace-normalization'])&&Prism.util.isActive(e.element,'whitespace-normalization',!0))if(e.element&&e.element.parentNode||!e.code){ + var r=e.element.parentNode;if(e.code&&r&&'pre'===r.nodeName.toLowerCase()){ + for(var i in null==e.settings&&(e.settings={}),t)if(Object.hasOwnProperty.call(t,i)){ + var o=t[i];if(r.hasAttribute('data-'+i))try{ + var a=JSON.parse(r.getAttribute('data-'+i)||'true');typeof a===o&&(e.settings[i]=a); + }catch(e){} + }for(var l=r.childNodes,s='',c='',u=!1,m=0;m { const ServerError = { isNetworkError(e) { - return (e.name === 'StatusCodeError') || (e.name === 'RequestError') + return (e.name === 'StatusCodeError') || (e.name === 'RequestError'); }, handler(e) { if (e.name === 'StatusCodeError') - ServerError.responseHandler(e) + ServerError.responseHandler(e); else if (e.name === 'RequestError') - ServerError.requestHandler(e) + ServerError.requestHandler(e); }, requestHandler: (reason) => { switch (reason.cause.code) { - case 'ENOTFOUND': - ServerError.addressNotFound(reason); - break; - - case 'ENETDOWN': - ServerError.netDown(reason); - logger.Error(`${reason.cause}`, { exit: true }); - break; - - default: - logger.Error('Request to the server failed.', { exit: false }); - logger.Error(`${reason.cause}`, { exit: false }); + case 'ENOTFOUND': + ServerError.addressNotFound(reason); + break; + + case 'ENETDOWN': + ServerError.netDown(reason); + logger.Error(`${reason.cause}`, { exit: true }); + break; + + default: + logger.Error('Request to the server failed.', { exit: false }); + logger.Error(`${reason.cause}`, { exit: false }); } }, responseHandler: (request) => { switch (request.statusCode) { - case 504: - ServerError.gatewayTimeout(request); - break; - case 502: - ServerError.badGateway(request); - break; - case 500: - ServerError.internal(request); - break; - case 413: - ServerError.entityTooLarge(request); - break; - case 422: - ServerError.unprocessableEntity(request); - break; - case 404: - ServerError.notFound(request); - break; - case 401: - ServerError.unauthorized(request); - break; - default: - ServerError.default(request); + case 504: + ServerError.gatewayTimeout(request); + break; + case 502: + ServerError.badGateway(request); + break; + case 500: + ServerError.internal(request); + break; + case 413: + ServerError.entityTooLarge(request); + break; + case 422: + ServerError.unprocessableEntity(request); + break; + case 404: + ServerError.notFound(request); + break; + case 401: + ServerError.unauthorized(request); + break; + default: + ServerError.default(request); } }, @@ -136,7 +136,7 @@ const ServerError = { logger.Debug(`Default error: ${JSON.stringify(request.response, null, 2)}`); const err = JSON.stringify(request.response, null, 2).replace(/Token [a-f0-9]{40}/, 'Token: '); logger.Error(err, { hideTimestamp: true }); - }, + } }; export default ServerError; diff --git a/lib/apiRequest.js b/lib/apiRequest.js index 682e517e..e0a6bd3e 100644 --- a/lib/apiRequest.js +++ b/lib/apiRequest.js @@ -64,7 +64,8 @@ const apiRequest = async ({ method = 'GET', uri, body, headers = {}, formData, j }; try { error.response.body = JSON.parse(errorBody); - } catch (e) { + } catch { + // JSON parse failed, keep original body } throw error; } @@ -74,7 +75,7 @@ const apiRequest = async ({ method = 'GET', uri, body, headers = {}, formData, j if (!text) return {}; try { return JSON.parse(text); - } catch (e) { + } catch { return text; } } diff --git a/lib/archive.js b/lib/archive.js index 446d75d9..c34ee9d5 100644 --- a/lib/archive.js +++ b/lib/archive.js @@ -19,7 +19,7 @@ const addModulesToArchive = async (archive, withoutAssets) => { }; const addModuleToArchive = (module, archive, withoutAssets, pattern = '**/{private,public}/**') => { - return new Promise((resolve, reject) => { + return new Promise((resolve, _reject) => { glob(pattern, { cwd: `${dir.MODULES}/${module}`, filesOnly: true @@ -34,7 +34,7 @@ const addModuleToArchive = (module, archive, withoutAssets, pattern = '**/{priva }) .map(f => { const path = `${dir.MODULES}/${module}/${f}`; - return new Promise((resolve, reject) => { + return new Promise((resolve, _reject) => { fs.lstat(path, (err, stat) => { if (!stat.isDirectory()) { const filledTemplate = fillInTemplateValues(path, moduleTemplateData); @@ -91,11 +91,14 @@ const makeArchive = async (env, { withoutAssets }) => { ignore: withoutAssets ? ['assets/**'] : [] }; - return new Promise(async (resolve, reject) => { - const releaseArchive = prepareArchive(path, resolve, !withoutAssets); - releaseArchive.glob('**/!(*.zip)*', options, { prefix: directory }); - await addModulesToArchive(releaseArchive, withoutAssets); - await releaseArchive.finalize(); + return new Promise((resolve, _reject) => { + const runArchive = async () => { + const releaseArchive = prepareArchive(path, resolve, !withoutAssets); + releaseArchive.glob('**/!(*.zip)*', options, { prefix: directory }); + await addModulesToArchive(releaseArchive, withoutAssets); + await releaseArchive.finalize(); + }; + runArchive(); }); }; diff --git a/lib/assets.js b/lib/assets.js index b217fb54..110aff3f 100644 --- a/lib/assets.js +++ b/lib/assets.js @@ -37,7 +37,7 @@ const deployAssets = async gateway => { await packAssets(assetsArchiveName); const data = await presignUrl(remoteAssetsArchiveName, assetsArchiveName); logger.Debug(data); - logger.Debug(assetsArchiveName) + logger.Debug(assetsArchiveName); await uploadFile(assetsArchiveName, data.uploadUrl); logger.Debug('Assets uploaded to S3.'); await waitForUnpack(data.accessUrl); diff --git a/lib/assets/manifest.js b/lib/assets/manifest.js index d3fbed2a..5f31c62d 100644 --- a/lib/assets/manifest.js +++ b/lib/assets/manifest.js @@ -26,6 +26,6 @@ const manifestGenerateForAssets = (assets) => { } return manifest; -} +}; export { manifestGenerate, manifestGenerateForAssets }; diff --git a/lib/data/fetchFiles.js b/lib/data/fetchFiles.js index d45b522f..bba2e0d0 100644 --- a/lib/data/fetchFiles.js +++ b/lib/data/fetchFiles.js @@ -1,6 +1,4 @@ import fs from 'fs'; -import { Writable } from 'stream'; -import url from 'url'; import path from 'path'; import shell from 'shelljs'; import flatten from 'lodash.flatten'; @@ -30,7 +28,7 @@ const download = async (uri, filename) => { }; const filenameForUrl = uri => { - return path.basename(url.parse(uri).pathname); + return path.basename(new URL(uri).pathname); }; const updateItem = (item, newUrl) => { @@ -75,10 +73,10 @@ async function fetchFiles(model) { const fields = ['attachments', 'images']; const filesForDownload = flatten( fields.map(field => { - return filterItemsFromModel(model, field) - .map(item => { - return { url: item.url, id: item.id, field: field }; - }); + return filterItemsFromModel(model, field) + .map(item => { + return { url: item.url, id: item.id, field: field }; + }); }) ); downloadFiles(filesForDownload); diff --git a/lib/data/isValidJSON.js b/lib/data/isValidJSON.js index a512e011..a0900894 100644 --- a/lib/data/isValidJSON.js +++ b/lib/data/isValidJSON.js @@ -2,7 +2,7 @@ const isValidJSON = data => { try { JSON.parse(data); return true; - } catch (e) { + } catch { return false; } }; diff --git a/lib/data/uploadFiles.js b/lib/data/uploadFiles.js index 9dea7b4b..ca026fcc 100644 --- a/lib/data/uploadFiles.js +++ b/lib/data/uploadFiles.js @@ -56,7 +56,7 @@ const processUser = async(user) => { const CONCURRENCY = 4; const processFilesFor = (collection) => { let i = 0; - return new Promise((resolve, reject) => { + return new Promise((resolve, _reject) => { async.mapLimit(collection, CONCURRENCY, async (item) => { i++; logger.Debug(i); diff --git a/lib/data/waitForStatus.js b/lib/data/waitForStatus.js index fa4ae0cc..a185cd39 100644 --- a/lib/data/waitForStatus.js +++ b/lib/data/waitForStatus.js @@ -11,13 +11,14 @@ const waitForStatus = (statusCheck, pendingStatus, successStatus, interval = 500 if (pendingStatus.includes(status)) setTimeout(getStatus, interval); else if (status === successStatus) - resolve(response) + resolve(response); else if (status === 'failed') reject(response); else setTimeout(getStatus, interval); + } catch(e) { + reject(e); } - catch(e) { reject(e) } }) .catch((error) => { logger.Debug('[ERR] waitForStatus did not receive `status` in response object', error); diff --git a/lib/deploy/defaultStrategy.js b/lib/deploy/defaultStrategy.js index b0965326..958973b7 100644 --- a/lib/deploy/defaultStrategy.js +++ b/lib/deploy/defaultStrategy.js @@ -11,7 +11,7 @@ const initializeEsmModules = async () => { } return true; -} +}; const createArchive = async (env) => { const numberOfFiles = await makeArchive(env, { withoutAssets: false }); @@ -25,7 +25,7 @@ const uploadArchive = async (env) => { return res; }; -const strategy = async ({ env, authData, params }) => { +const strategy = async ({ env, _authData, _params }) => { try { process.env.FORCE_COLOR = true; const url = env.MARKETPLACE_URL; diff --git a/lib/deploy/directAssetsUploadStrategy.js b/lib/deploy/directAssetsUploadStrategy.js index fc80cf7b..a04186cc 100644 --- a/lib/deploy/directAssetsUploadStrategy.js +++ b/lib/deploy/directAssetsUploadStrategy.js @@ -15,7 +15,7 @@ const initializeEsmModules = async () => { } return true; -} +}; const createArchive = (env) => makeArchive(env, { withoutAssets: true }); const uploadArchive = (env) => push(env); @@ -29,7 +29,7 @@ const deployAndUploadAssets = async (authData) => { await deployAssets(new Gateway(authData)); }; -const strategy = async ({ env, authData, params }) => { +const strategy = async ({ env, authData, _params }) => { try { process.env.FORCE_COLOR = true; const url = env.MARKETPLACE_URL; diff --git a/lib/deploy/strategy.js b/lib/deploy/strategy.js index df342096..9a8a0b52 100644 --- a/lib/deploy/strategy.js +++ b/lib/deploy/strategy.js @@ -3,7 +3,7 @@ import directAssetsUploadStrategy from './directAssetsUploadStrategy.js'; const strategies = { default: defaultStrategy, - directAssetsUpload: directAssetsUploadStrategy, + directAssetsUpload: directAssetsUploadStrategy }; const run = ({ strategy, opts }) => strategies[strategy](opts); diff --git a/lib/environments.js b/lib/environments.js index b496fd01..17e5a9ce 100644 --- a/lib/environments.js +++ b/lib/environments.js @@ -6,13 +6,13 @@ import waitForStatus from '../lib/data/waitForStatus.js'; let open; const initializeEsmModules = async () => { - if (process.env['CI']) open = console.log + if (process.env['CI']) open = console.log; if(!open) { await import('open').then(imported => open = imported.default); } return true; -} +}; const storeEnvironment = settings => { logger.Debug(`[storeEnvironment] ${JSON.stringify(settings, null, 2)}`); @@ -46,16 +46,16 @@ const waitForAccessToken = async (deviceCode, interval) => { return Promise.resolve(token); }) - .catch(request => { - switch (request.statusCode) { - case 400: - token = { status: request.response.body.error } - return Promise.resolve(token); - break; - default: - throw request - } - }); + .catch(request => { + switch (request.statusCode) { + case 400: { + const token = { status: request.response.body.error }; + return Promise.resolve(token); + } + default: + throw request; + } + }); }, 'authorization_pending', 'success', interval ); @@ -69,7 +69,7 @@ const deviceAuthorizationFlow = async (instanceUrl) => { const deviceAuthorization = deviceAuthorizationResponse; const verificationUrl = deviceAuthorization['verification_uri_complete']; - const deviceCode = deviceAuthorization['device_code'] + const deviceCode = deviceAuthorization['device_code']; const interval = (deviceAuthorization['interval'] || 5) * 1000; await initializeEsmModules(); @@ -91,4 +91,4 @@ const deviceAuthorizationFlow = async (instanceUrl) => { export { deviceAuthorizationFlow, storeEnvironment -} +}; diff --git a/lib/envs/add.js b/lib/envs/add.js index cc09c8de..21599911 100644 --- a/lib/envs/add.js +++ b/lib/envs/add.js @@ -2,7 +2,6 @@ import Portal from '../portal.js'; import logger from '../logger.js'; import * as validate from '../validators/index.js'; import { storeEnvironment, deviceAuthorizationFlow } from '../environments.js'; -import waitForStatus from '../data/waitForStatus.js'; import { readPassword } from '../utils/password.js'; const checkParams = (env, params) => { @@ -23,13 +22,13 @@ const login = async (email, password, url) => { return Portal.login(email, password, url) .then(response => { if (response) return Promise.resolve(response[0].token); - }) -} + }); +}; const addEnv = async (environment, params) => { checkParams(environment, params); if (params.partnerPortalUrl) { - process.env['PARTNER_PORTAL_HOST'] ||= params.partnerPortalUrl + process.env['PARTNER_PORTAL_HOST'] ||= params.partnerPortalUrl; } const settings = { @@ -57,6 +56,6 @@ const addEnv = async (environment, params) => { } if (token) saveToken(settings, token); -} +}; export default addEnv; diff --git a/lib/files.js b/lib/files.js index d331ef0e..1f66720c 100644 --- a/lib/files.js +++ b/lib/files.js @@ -8,7 +8,7 @@ import dir from './directories.js'; const config = { CONFIG: '.pos', LEGACY_CONFIG: '.marketplace-kit', - IGNORE_LIST: '.posignore', + IGNORE_LIST: '.posignore' }; const _paths = customConfig => [customConfig, config.CONFIG, config.LEGACY_CONFIG]; @@ -71,7 +71,7 @@ const _getAssets = async () => { const appAssets = fs.existsSync(`${dir.currentApp()}/assets`) ? await glob(`${dir.currentApp()}/assets/**`) : []; const modulesAssets = fs.existsSync(dir.MODULES) ? await glob('modules/*/{private,public}/assets/**') : []; - return [...appAssets, ...modulesAssets] || []; + return [...appAssets, ...modulesAssets]; }; const methods = { diff --git a/lib/graph/queries.js b/lib/graph/queries.js index 690afa29..7890978b 100644 --- a/lib/graph/queries.js +++ b/lib/graph/queries.js @@ -20,6 +20,6 @@ const unsetConstant = (name) => { name } }`; -} +}; export { getConstants, setConstant, unsetConstant }; diff --git a/lib/logger.js b/lib/logger.js index dcd2099a..c50c29f0 100644 --- a/lib/logger.js +++ b/lib/logger.js @@ -28,7 +28,7 @@ const loadLogger = async () => { loadLogger().catch(() => {}); const showNotification = (message) => { - if (!!process.env.CI) { + if (process.env.CI) { return; } const icon = path.resolve(importMetaDirname, '../lib/pos-logo.png'); @@ -40,8 +40,7 @@ const formatter = (msg, opts = { hideTimestamp: false }) => { if (msg instanceof Error) { message = JSON.stringify(msg.message, null, 2); - } - else if(typeof msg != 'string') { + } else if(typeof msg != 'string') { message = JSON.stringify(msg, null, 2); } @@ -72,7 +71,9 @@ const logger = { if (msg && options.notify) { try { showNotification(msg.slice(0, 100)); - } catch(e) { console.error(e) } + } catch(e) { + console.error(e); + } } if (options.exit) { @@ -81,7 +82,7 @@ const logger = { return false; } }, - Log: (message, opts = {}) => callInstance('Log', [message]), + Log: (message, _opts = {}) => callInstance('Log', [message]), Success: (message, opts = {}) => callInstance('Success', [formatter(message, opts)]), Quiet: (message, opts = {}) => callInstance('Quiet', [formatter(message, opts)]), Info: (message, opts = {}) => callInstance('Info', [formatter(message, opts)]), @@ -93,7 +94,9 @@ const logger = { callInstance('Warn', [formatter(message, opts)]); } }, - programHelp: () => { program.outputHelp({error: true}); process.exit(1);}, + programHelp: () => { + program.outputHelp({error: true}); process.exit(1); + } }; export default logger; diff --git a/lib/logger/report.js b/lib/logger/report.js index cb4911a0..7acea6b8 100644 --- a/lib/logger/report.js +++ b/lib/logger/report.js @@ -1,9 +1,7 @@ import crypto from 'crypto'; import { execSync } from 'child_process'; -import { readFileSync } from 'fs'; -import pkg from '../../package.json' with { type: "json" }; +import pkg from '../../package.json' with { type: 'json' }; const version = pkg.version; -import files from '../../lib/files.js'; const getStdout = (cmd) => { const stdout = execSync(cmd); @@ -18,26 +16,12 @@ const getUser = () => { platform: os === 'win32' ? getStdout('systeminfo | findstr /B /C:"OS Name" /C:"OS Version"') : getStdout('uname -a'), node: process.version, - shell: process.env.shell, + shell: process.env.shell }); return { identifier }; }; -const envs = () => { - if (process.env.MPKIT_URL) { - return [process.env.MPKIT_URL] - }; - - const settings = Object(files.getConfig()); - const envs = []; - for (const env in settings) { - envs.push(settings[env].url); - } - - return envs; -}; - import { apiRequest } from '../apiRequest.js'; const report = async (message) => { @@ -54,18 +38,18 @@ const report = async (message) => { const buildBody = (message,user,version) => { return { - "details": { - "version": version, - "client": user, - "error": { - "className": "pos-cli-logger", - "message": message + 'details': { + 'version': version, + 'client': user, + 'error': { + 'className': 'pos-cli-logger', + 'message': message }, - "user": user, - "breadcrumbs": [{ + 'user': user, + 'breadcrumbs': [{ }] } - } -} + }; +}; export default report; diff --git a/lib/modules.js b/lib/modules.js index 279edd48..9adc1085 100644 --- a/lib/modules.js +++ b/lib/modules.js @@ -1,5 +1,4 @@ import fs from 'fs'; -import rl from 'readline'; import glob from 'fast-glob'; import files from './files.js'; @@ -22,27 +21,27 @@ const moduleConfig = async (moduleName) => { if(!fs.existsSync(filePath)) { const moduleConfigPath = await moduleConfigFilePath(moduleName); if(moduleConfigPath) { - filePath = moduleConfigPath + filePath = moduleConfigPath; } else if(moduleName) { - filePath = `modules/${moduleName}/${moduleConfigFileName}` + filePath = `modules/${moduleName}/${moduleConfigFileName}`; } } return files.readJSON(filePath, { throwDoesNotExistError: true, exit: true }); }; -const moduleConfigFilePath = async (moduleName="*") => { +const moduleConfigFilePath = async (moduleName='*') => { const configFiles = await glob([`modules/${moduleName}/${moduleConfigFileName}`, moduleConfigFileName]); if(configFiles.length > 1) { - throw new Error(`There is more than one modules/*/template-values.json, please use --name parameter or create template-values.json in the root of the project.`); + throw new Error('There is more than one modules/*/template-values.json, please use --name parameter or create template-values.json in the root of the project.'); } return configFiles[0]; -} +}; const createArchive = async (moduleName) => { - try { - return new Promise(async (resolve, reject) => { + return new Promise((resolve, reject) => { + const runArchive = async () => { const releaseArchive = prepareArchive(archivePath, resolve, true); - if (fs.existsSync(moduleConfigFileName) && !fs.existsSync(`modules/`)){ + if (fs.existsSync(moduleConfigFileName) && !fs.existsSync('modules/')){ logger.Warn(`Cannot find modules/${moduleName}, creating archive with the current directory.`); releaseArchive.glob(['**/**', moduleConfigFileName], { ignore: ['**/node_modules/**', '**/tmp/**', 'app/'] }, { prefix: moduleName }); } else if(fs.existsSync(`modules/${moduleName}/`)) { @@ -50,14 +49,13 @@ const createArchive = async (moduleName) => { releaseArchive.glob(['**/**', moduleConfigFileName], { ignore: ['**/node_modules/**', '**/tmp/**'], cwd: `${process.cwd()}/modules/${moduleName}` }, { prefix: moduleName }); releaseArchive.file(filePath, { name: moduleConfigFileName, prefix: moduleName }); } else { - reject(new Error(`There is no directory modules/${moduleName} - please double check the machine_name property in ${filePath}`)) + reject(new Error(`There is no directory modules/${moduleName} - please double check the machine_name property in ${filePath}`)); } await releaseArchive.finalize(); - }); - } catch(e) { - throw e; - } -} + }; + runArchive(); + }); +}; const uploadArchive = async (token) => { const data = await presignUrlForPortal(token, moduleId, archiveFileName); @@ -68,7 +66,7 @@ const uploadArchive = async (token) => { }; const createVersion = async (token, accessUrl, moduleVersionName) => { - const version = await Portal.createVersion(token, accessUrl, moduleVersionName, moduleId) + const version = await Portal.createVersion(token, accessUrl, moduleVersionName, moduleId); return version.id; }; @@ -76,7 +74,7 @@ const waitForPublishing = async (token, moduleVersionId) => { try { await waitForStatus(() => Portal.moduleVersionStatus(token, moduleId, moduleVersionId), 'pending', 'accepted'); logger.Success('Module uploaded.'); - } catch(e) { + } catch { throw new Error('Module not uploaded. Check email for errors.'); } }; @@ -101,15 +99,15 @@ const getToken = async (params) => { logger.Info(`Asking ${Portal.url()} for access token...`); const token = await portalAuthToken(params.email, password); return token; -} +}; const portalAuthToken = async (email, password) => { try { - const token = await Portal.jwtToken(email, password) + const token = await Portal.jwtToken(email, password); return token.auth_token; } catch (e) { if (ServerError.isNetworkError(e)) - ServerError.handler(e) + ServerError.handler(e); else process.exit(1); } @@ -135,7 +133,7 @@ const publishVersion = async (params) => { return true; } catch (e) { if (ServerError.isNetworkError(e)) - ServerError.handler(e) + ServerError.handler(e); else if (e.message){ logger.Error(e.message); } else { diff --git a/lib/modules/configFiles.js b/lib/modules/configFiles.js index 2b47411f..a680e97e 100644 --- a/lib/modules/configFiles.js +++ b/lib/modules/configFiles.js @@ -16,13 +16,13 @@ const writePosModules = (modules) => { path.join(process.cwd(), posModulesFilePath), JSON.stringify({ modules: modules }, null, 2) ); -} +}; const writePosModulesLock = (modules) => { fs.writeFileSync( path.join(process.cwd(), posModulesLockFilePath), JSON.stringify({ modules: modules }, null, 2) ); -} +}; export { posModulesFilePath, posModulesLockFilePath, readLocalModules, writePosModules, writePosModulesLock, posConfigDirectory }; diff --git a/lib/modules/dependencies.js b/lib/modules/dependencies.js index 438abec7..4a803712 100644 --- a/lib/modules/dependencies.js +++ b/lib/modules/dependencies.js @@ -29,7 +29,7 @@ const resolveBestVersion = async (dependencyList, getVersions, topLevelModulesRe const resolveDependencies = async (modules, getVersions, rootModules) => { if(!rootModules) rootModules = modules; - if(Object.keys(modules).length === 0) return {} + if(Object.keys(modules).length === 0) return {}; const deps = Object.assign({}, modules); const modulesNames = Object.keys(modules); @@ -51,7 +51,7 @@ const resolveDependencies = async (modules, getVersions, rootModules) => { const dependenciesDependencies = await resolveDependencies(dependenciesVersions, getVersions, rootModules); return {...{...deps, ...dependenciesVersions}, ...dependenciesDependencies}; -} +}; const findModuleVersion = async (moduleName, moduleVersion, getVersions) => { const modules = await getVersions([moduleName]); @@ -71,6 +71,6 @@ const findModuleVersion = async (moduleName, moduleVersion, getVersions) => { } else { return null; } -} +}; export { resolveDependencies, findModuleVersion }; diff --git a/lib/overwrites.js b/lib/overwrites.js index aecde798..1dc2ce43 100644 --- a/lib/overwrites.js +++ b/lib/overwrites.js @@ -26,12 +26,12 @@ const Overwrites = { list: (moduleName) => { let moduleOverwritesPath = overwritesPath; if(moduleName) { - logger.Info(moduleName) - moduleOverwritesPath = path.join(overwritesPath, moduleName); + logger.Info(moduleName); + moduleOverwritesPath = path.join(overwritesPath, moduleName); } return getOverwrites(moduleOverwritesPath, prefixToRemove); } -} +}; export default Overwrites; diff --git a/lib/portal.js b/lib/portal.js index bc260865..d9e35b25 100644 --- a/lib/portal.js +++ b/lib/portal.js @@ -2,33 +2,35 @@ import { apiRequest } from './apiRequest.js'; import logger from './logger.js'; const Portal = { - url: () => { return process.env.PARTNER_PORTAL_HOST || 'https://partners.platformos.com' }, + url: () => { + return process.env.PARTNER_PORTAL_HOST || 'https://partners.platformos.com'; + }, login: (email, password, url) => { logger.Debug('Portal.login ' + email + ' to ' + Portal.url()); return apiRequest({ uri: `${Portal.url()}/api/user_tokens`, - headers: { UserAuthorization: `${email}:${password}`, InstanceDomain: url }, + headers: { UserAuthorization: `${email}:${password}`, InstanceDomain: url } }); }, jwtToken: (email, password) => { return apiRequest({ method: 'POST', uri: `${Portal.url()}/api/authenticate`, - formData: { email: email, password: password }, + formData: { email: email, password: password } }); }, findModules: (token, name) => { return apiRequest({ method: 'GET', uri: `${Portal.url()}/api/pos_modules/?modules=${name}`, - headers: { Authorization: `Bearer ${token}` }, + headers: { Authorization: `Bearer ${token}` } }); }, moduleVersions(modules) { return apiRequest({ - uri: `${Portal.url()}/api/pos_modules?modules=${modules.join(',')}`, + uri: `${Portal.url()}/api/pos_modules?modules=${modules.join(',')}` }); }, createVersion: (token, url, name, posModuleId) => { @@ -36,14 +38,14 @@ const Portal = { method: 'POST', uri: `${Portal.url()}/api/pos_modules/${posModuleId}/pos_module_versions`, body: { pos_module_version: { archive: url, name: name } }, - headers: { Authorization: `Bearer ${token}` }, + headers: { Authorization: `Bearer ${token}` } }); }, moduleVersionStatus: (token, posModuleId, moduleVersionId) => { return apiRequest({ method: 'GET', uri: `${Portal.url()}/api/pos_modules/${posModuleId}/pos_module_versions/${moduleVersionId}`, - headers: { Authorization: `Bearer ${token}` }, + headers: { Authorization: `Bearer ${token}` } }); }, moduleVersionsSearch: (moduleVersionName) => { diff --git a/lib/presignUrl.js b/lib/presignUrl.js index ceda10bf..91a022f5 100644 --- a/lib/presignUrl.js +++ b/lib/presignUrl.js @@ -1,10 +1,9 @@ import fs from 'fs'; -import url from 'url'; import mime from 'mime'; import logger from './logger.js'; import Portal from './portal.js'; -const deployServiceUrl = () => process.env.DEPLOY_SERVICE_URL || url.resolve(process.env.MARKETPLACE_URL, '/api/private/urls'); +const deployServiceUrl = () => process.env.DEPLOY_SERVICE_URL || new URL('/api/private/urls', process.env.MARKETPLACE_URL).href; const presignUrl = async (s3FileName, fileName) => { const serviceUrl = `${deployServiceUrl()}/presign-url`; @@ -18,7 +17,7 @@ const presignUrl = async (s3FileName, fileName) => { method: 'GET', headers: { token: process.env.MARKETPLACE_TOKEN, - marketplace_domain: url.parse(process.env.MARKETPLACE_URL).hostname + marketplace_domain: new URL(process.env.MARKETPLACE_URL).hostname } }); @@ -29,7 +28,7 @@ const presignUrl = async (s3FileName, fileName) => { } const body = await response.json(); - return { uploadUrl: body.url, accessUrl: url.parse(body.accessUrl).href }; + return { uploadUrl: body.url, accessUrl: new URL(body.accessUrl).href }; }; const presignDirectory = async (path) => { @@ -40,7 +39,7 @@ const presignDirectory = async (path) => { method: 'GET', headers: { token: process.env.MARKETPLACE_TOKEN, - marketplace_domain: url.parse(process.env.MARKETPLACE_URL).hostname + marketplace_domain: new URL(process.env.MARKETPLACE_URL).hostname } }); @@ -53,7 +52,7 @@ const presignDirectory = async (path) => { return response.json(); }; -const presignUrlForPortal = async (token, moduleName, filename) => { +const presignUrlForPortal = async (token, moduleName, _filename) => { const serviceUrl = `${Portal.url()}/api/pos_modules/${moduleName}/presign_url`; logger.Debug(token); diff --git a/lib/productionEnvironment.js b/lib/productionEnvironment.js index 16796d64..ca9cfd38 100644 --- a/lib/productionEnvironment.js +++ b/lib/productionEnvironment.js @@ -6,7 +6,7 @@ const isProductionEnvironment = (environment) => { return false; } const lowerEnv = environment.toLowerCase(); - return lowerEnv.includes('prod') + return lowerEnv.includes('prod'); }; const confirmProductionExecution = async (environment) => { diff --git a/lib/proxy.js b/lib/proxy.js index 22f2a871..8cd14363 100644 --- a/lib/proxy.js +++ b/lib/proxy.js @@ -1,6 +1,6 @@ import { apiRequest } from './apiRequest.js'; import logger from './logger.js'; -import pkg from '../package.json' with { type: "json" }; +import pkg from '../package.json' with { type: 'json' }; const version = pkg.version; class Gateway { @@ -75,7 +75,13 @@ class Gateway { } dataClean(confirmation, include_schema) { - return apiRequest({ method: 'POST', uri: `${this.api_url}/data_clean`, json: { confirmation, include_schema }, headers: this.defaultHeaders }); + const uri = `${this.api_url}/data_clean`; + return apiRequest({ + method: 'POST', + uri, + json: { confirmation, include_schema }, + headers: this.defaultHeaders + }); } dataCleanStatus(id) { @@ -91,13 +97,11 @@ class Gateway { } logsv2(params) { - if(params.query){ + if(params.query) { return this.client.searchSQLByQuery(params); - } - else if(params.key){ + } else if(params.key) { return this.client.searchAround(params); - } - else { + } else { return this.client.searchSQL(params); } } diff --git a/lib/push.js b/lib/push.js index cb96e81e..7dda7185 100644 --- a/lib/push.js +++ b/lib/push.js @@ -26,7 +26,7 @@ const getDeploymentStatus = ({ id }) => { resolve(response); } }) - .catch(error => { + .catch(_error => { report('getStatus'); reject(false); }); @@ -58,7 +58,7 @@ const push = async env => { } const t1 = performance.now(); return duration(t0, t1); - }) + }); }; export { push }; diff --git a/lib/server.js b/lib/server.js index 657ad1e1..b9be9ae2 100644 --- a/lib/server.js +++ b/lib/server.js @@ -3,7 +3,7 @@ import express from 'express'; import bodyParser from 'body-parser'; import multer from 'multer'; import { fileURLToPath } from 'url'; -import pkg from '../package.json' with { type: "json" }; +import pkg from '../package.json' with { type: 'json' }; const __filename = fileURLToPath(import.meta.url); const __dirname = path.dirname(__filename); @@ -23,7 +23,7 @@ const start = (env, client) => { const gateway = new Gateway({ url: env.MARKETPLACE_URL, token: env.MARKETPLACE_TOKEN, - email: env.MARKETPLACE_EMAIL, + email: env.MARKETPLACE_EMAIL }, client); const graphqlRouting = (req, res) => { @@ -42,14 +42,14 @@ const start = (env, client) => { app.use(bodyParser.json()); app.use((req, res, next) => { - res.header("Access-Control-Allow-Origin", "*"); - res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept"); + res.header('Access-Control-Allow-Origin', '*'); + res.header('Access-Control-Allow-Headers', 'Origin, X-Requested-With, Content-Type, Accept'); next(); }); legacy.use((req, res, next) => { - res.header("Access-Control-Allow-Origin", "*"); - res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept"); + res.header('Access-Control-Allow-Origin', '*'); + res.header('Access-Control-Allow-Headers', 'Origin, X-Requested-With, Content-Type, Accept'); next(); }); @@ -79,15 +79,23 @@ const start = (env, client) => { app.get('/api/logsv2', (req, res) => { gateway .logsv2({ ...req.query }) - .then(body => { res.send(body) }) - .catch(error => { logger.Debug(error); res.send(error) }); + .then(body => { + res.send(body); + }) + .catch(error => { + logger.Debug(error); res.send(error); + }); }); app.post('/api/logsv2', (req, res) => { gateway .logsv2(req.body) - .then(body => { res.send(body) }) - .catch(error => { logger.Debug(error); res.send(error) }); + .then(body => { + res.send(body); + }) + .catch(error => { + logger.Debug(error); res.send(error); + }); }); app.get('/*splat', (req, res) => { @@ -119,7 +127,7 @@ const start = (env, client) => { logger.Debug(`Server is listening on ${port}`); logger.Success(`Connected to ${env.MARKETPLACE_URL}`); logger.Success(`Admin: http://localhost:${port}`); - logger.Success(`---`); + logger.Success('---'); logger.Success(`GraphiQL IDE: http://localhost:${port}/gui/graphql`); logger.Success(`Liquid evaluator: http://localhost:${port}/gui/liquid`); logger.Success(`Instance Logs: http://localhost:${port}/logs`); @@ -137,7 +145,7 @@ const start = (env, client) => { legacy .listen(parseInt(port)+1, function(){}) - .on('error', err => { + .on('error', _err => { logger.Error(`Could not run the legacy admin panel at http://localhost:${parseInt(port)+1}`); }); }; diff --git a/lib/shouldBeSynced.js b/lib/shouldBeSynced.js index b0aea977..8139b487 100644 --- a/lib/shouldBeSynced.js +++ b/lib/shouldBeSynced.js @@ -3,7 +3,6 @@ import path from 'path'; import ignore from 'ignore'; import watchFilesExtensions from './watch-files-extensions.js'; -import files from './files.js'; import logger from './logger.js'; import isValidFilePath from './utils/valid-file-path.js'; import { moduleConfigFileName } from './modules.js'; diff --git a/lib/swagger-client.js b/lib/swagger-client.js index 723ace67..57ec2ce7 100644 --- a/lib/swagger-client.js +++ b/lib/swagger-client.js @@ -3,10 +3,8 @@ import path from 'path'; import { fileURLToPath } from 'url'; import Gateway from '../lib/proxy.js'; import logger from '../lib/logger.js'; -import { apiRequest } from './apiRequest.js'; import api from './logsv2/http.js'; import fs from 'fs'; -import colors from 'colors'; const __filename = fileURLToPath(import.meta.url); const __dirname = path.dirname(__filename); @@ -70,8 +68,8 @@ class Search { }); } - async SearchAround({org_id, stream_name, key, size, sql}, {requestBody, securities}) { - if (sql == undefined) sql = ""; + async SearchAround({org_id, stream_name, key, size, sql}, {_requestBody, securities}) { + if (sql == undefined) sql = ''; return await api.get(this.ctx.url + `/api/${org_id}/${stream_name}/_around`, { securities: securities, params: { key, size, sql } @@ -90,142 +88,141 @@ class LogClient { class SwaggerProxy { static async client(environment) { try { - const LOGS_PROXY_URL = process.env.LOGS_PROXY_URL || 'https://openobserve-proxy.platformos.dev' + const LOGS_PROXY_URL = process.env.LOGS_PROXY_URL || 'https://openobserve-proxy.platformos.dev'; const client = new LogClient({url: LOGS_PROXY_URL}); const authData = fetchSettings(environment); - const securities = { authorized: { Authorization: authData.token }} - const instance = await new Gateway(authData).getInstance() - instance.url = authData.url + const securities = { authorized: { Authorization: authData.token }}; + const instance = await new Gateway(authData).getInstance(); + instance.url = authData.url; - logger.Debug({instance, authData, securities}) + logger.Debug({instance, authData, securities}); return new SwaggerProxy(client, instance, securities); - } - catch(e) { + } catch(e) { if (e.statusCode == 401) logger.Error(`[Unauthorized] Please ensure your token is correct.\nTo refresh your token, execute the following command:\npos-cli env refresh-token ${ environment }`); else - logger.Error(e) + logger.Error(e); } } constructor(client, instance, securities) { - this.client = client - this.instance = instance - this.securities = securities + this.client = client; + this.instance = instance; + this.securities = securities; } async searchAround(program){ return this.client.apis.Search .SearchAround( {org_id: this.instance.uuid, stream_name: program.stream_name, key: program.key, size: program.size, sql: program.sql}, - {securities: this.securities}) + {securities: this.securities}); } async searchSQLByQuery(query){ return this.client.apis.Search .SearchSQL( {org_id: this.instance.uuid}, - {requestBody: query, securities: this.securities}) + {requestBody: query, securities: this.securities}); } async searchSQL(program){ - return this.searchSQLByQuery(search.buildQuery(program)) + return this.searchSQLByQuery(search.buildQuery(program)); } - async alerts(program){ + async alerts(_program){ return this.client.apis.Alerts - .ListAlerts({org_id: this.instance.uuid}, {securities: this.securities}) + .ListAlerts({org_id: this.instance.uuid}, {securities: this.securities}); } async triggerAlert(program){ return this.client.apis.Alerts .TriggerAlert( {org_id: this.instance.uuid, stream_name: 'logs', alert_name: program.name}, - {securities: this.securities}) + {securities: this.securities}); } async createAlert(program){ - const alert = alerts.buildAlert(program) + const alert = alerts.buildAlert(program); - const template = await this.createTemplate(program) - logger.Debug(template.body) - const destination = await this.createDestination(program) - logger.Debug(destination.body) + const template = await this.createTemplate(program); + logger.Debug(template.body); + const destination = await this.createDestination(program); + logger.Debug(destination.body); return this.client.apis.Alerts .SaveAlert( {org_id: this.instance.uuid, stream_name: 'logs', alert_name: program.name}, - {requestBody: alert, securities: this.securities}) + {requestBody: alert, securities: this.securities}); } async createDestination(program){ - const destination = alerts.buildDestination(program) - logger.Debug(destination) + const destination = alerts.buildDestination(program); + logger.Debug(destination); return this.client.apis.Alerts .CreateDestination( {org_id: this.instance.uuid, destination_name: program.name}, - {requestBody: destination, securities: this.securities}) + {requestBody: destination, securities: this.securities}); } async createTemplate(program){ - program.instance = this.instance - const template = { name: program.name, body: alerts.templates.slack(program), isDefault: true } - logger.Debug(template) + program.instance = this.instance; + const template = { name: program.name, body: alerts.templates.slack(program), isDefault: true }; + logger.Debug(template); return this.client.apis.Alerts .CreateTemplate( {org_id: this.instance.uuid, template_name: program.name}, - {requestBody: template, securities: this.securities}) + {requestBody: template, securities: this.securities}); } } const alerts = { templates: { - slack({name, operator, keyword, column, channel, instance}) { + slack({_name, operator, keyword, column, channel, instance}) { const template = JSON.parse(fs.readFileSync(path.join(__dirname, './openobserve/alerts/slack.json'))); - template.channel = channel + template.channel = channel; - const description = `*Alert details:*\n *${column}* column ${operator} *${keyword}* keyword` - template.text = description - template.blocks.push({type: 'section', text: {text: description, type: "mrkdwn"}}) + const description = `*Alert details:*\n *${column}* column ${operator} *${keyword}* keyword`; + template.text = description; + template.blocks.push({type: 'section', text: {text: description, type: 'mrkdwn'}}); - const instanceInfo = `*Instance*:\n ${instance.url}` - template.blocks.push({type: 'section', text: {text: instanceInfo, type: "mrkdwn"}}) + const instanceInfo = `*Instance*:\n ${instance.url}`; + template.blocks.push({type: 'section', text: {text: instanceInfo, type: 'mrkdwn'}}); - return template + return template; } }, buildDestination({url, name}){ return { - "headers": { + 'headers': { }, - "method": "post", - "name": name, - "skip_tls_verify": false, - "template": name, - "url": url - } + 'method': 'post', + 'name': name, + 'skip_tls_verify': false, + 'template': name, + 'url': url + }; }, - buildAlert({from, name, keyword, sql, column, operator}){ + buildAlert({_from, name, keyword, _sql, _column, operator}){ return { - "condition": { - "column": "message", - "ignoreCase": true, - "isNumeric": true, - "operator": operator, - "value": keyword + 'condition': { + 'column': 'message', + 'ignoreCase': true, + 'isNumeric': true, + 'operator': operator, + 'value': keyword }, - "destination": name, - "duration": 0, - "frequency": 0, - "is_real_time": true, - "name": name, - "time_between_alerts": 0 - } + 'destination': name, + 'duration': 0, + 'frequency': 0, + 'is_real_time': true, + 'name': name, + 'time_between_alerts': 0 + }; } -} +}; const search = { buildQuery({from, size, start_time, end_time, sql}) { @@ -235,11 +232,11 @@ const search = { size: parseInt(size), sql: (sql || 'select * from logs') } - } - if (start_time) query.query['start_time'] = parseInt(start_time) - if (end_time) query.query['end_time'] = parseInt(end_time) + }; + if (start_time) query.query['start_time'] = parseInt(start_time); + if (end_time) query.query['end_time'] = parseInt(end_time); - return query + return query; }, printJSON: logger.Info, @@ -250,31 +247,35 @@ const search = { item[1].highlight = item[1]._timestamp.toString() == key; return item; }) - .forEach(search.printLog) + .forEach(search.printLog); }, - printLog(hit) { console.log(search.formatHit(hit)) }, - formatHit([id, hit]) { - const row = `[${search.toDate(hit._timestamp)}] ${hit._timestamp} ${hit.type} | ${hit.message}` + printLog(hit) { + console.log(search.formatHit(hit)); + }, + formatHit([_id, hit]) { + const row = `[${search.toDate(hit._timestamp)}] ${hit._timestamp} ${hit.type} | ${hit.message}`; if (hit.highlight) { - return row.blue + return row.blue; } else { - return row + return row; } }, printReport(response, report) { - console.log(report.meta.title) + console.log(report.meta.title); if (response.aggs) console.table( - Object.entries(response.aggs.histogram).map((r) => { return r[1] }), + Object.entries(response.aggs.histogram).map((r) => { + return r[1]; + }), report.meta.columns - ) + ); }, toDate(timestamp) { if (timestamp) - return new Date(timestamp / 1000).toLocaleString() + return new Date(timestamp / 1000).toLocaleString(); else - "---" - }, -} + '---'; + } +}; export { SwaggerProxy, search }; diff --git a/lib/test-runner/index.js b/lib/test-runner/index.js index c67dd518..309b0fdf 100644 --- a/lib/test-runner/index.js +++ b/lib/test-runner/index.js @@ -41,7 +41,8 @@ const runSingleTest = async (gateway, name) => { const transformedResults = transformTestResponse(response); return printTestResults(transformedResults, transformedResults.duration); } - } catch (parseError) { + } catch { + // JSON parse failed, continue with regular error handling } } diff --git a/lib/test-runner/logStream.js b/lib/test-runner/logStream.js index 0ad222a3..971c369e 100644 --- a/lib/test-runner/logStream.js +++ b/lib/test-runner/logStream.js @@ -31,7 +31,7 @@ class TestLogStream extends EventEmitter { const hasDurationField = typeof obj.duration_ms === 'number' || typeof obj.duration === 'number'; return hasTestsArray && hasSuccessField && (hasTotalField || hasDurationField); - } catch (e) { + } catch { return false; } } diff --git a/lib/unzip.js b/lib/unzip.js index a484e090..a1f1e55b 100644 --- a/lib/unzip.js +++ b/lib/unzip.js @@ -1,4 +1,3 @@ -import fs from 'fs'; import unzipper from 'unzipper'; async function unzip(filePath, outputFilePath) { diff --git a/lib/utils/create-directory.js b/lib/utils/create-directory.js index f3f9e298..3bd00042 100644 --- a/lib/utils/create-directory.js +++ b/lib/utils/create-directory.js @@ -1,6 +1,5 @@ import fs from 'fs'; import rl from 'readline'; -import logger from '../logger.js'; const createDirectory = (directory) => { return new Promise((resolve, reject) => { @@ -16,7 +15,7 @@ const createDirectory = (directory) => { resolve(true); } else { reader.close(); - reject(false) + reject(false); } }); } diff --git a/lib/utils/password.js b/lib/utils/password.js index e83602a6..438486c9 100644 --- a/lib/utils/password.js +++ b/lib/utils/password.js @@ -2,7 +2,7 @@ import rl from 'readline'; import logger from '../logger.js'; const readPassword = () => { - return new Promise((resolve, reject) => { + return new Promise((resolve, _reject) => { const reader = rl.createInterface({ input: process.stdin, output: process.stdout }); reader.stdoutMuted = true; reader.question('Password: ', password => { diff --git a/lib/validators/url.js b/lib/validators/url.js index 129b1b7a..5b0acfac 100644 --- a/lib/validators/url.js +++ b/lib/validators/url.js @@ -5,7 +5,7 @@ const validateUrl = string => { try { new URL(string); return true; - } catch (error) { + } catch { logger.Error('Please provide valid URL', { hideTimestamp: true }); return false; } diff --git a/lib/watch.js b/lib/watch.js index ee7fd6cf..6fdbe209 100644 --- a/lib/watch.js +++ b/lib/watch.js @@ -148,7 +148,7 @@ const start = async (env, directAssetsUpload, liveReload) => { liveReloadServer.watch(path.join(process.cwd(), '{app,modules}')); - logger.Info(`[LiveReload] Server started`); + logger.Info('[LiveReload] Server started'); } const reload = () => liveReload && liveReloadServer.refresh(program.url); diff --git a/package.json b/package.json index 65c40c61..3ffc4300 100644 --- a/package.json +++ b/package.json @@ -6,6 +6,8 @@ "scripts": { "test": "vitest run", "test:watch": "vitest", + "lint": "eslint . --ext .js --max-warnings 0", + "lint:fix": "eslint . --ext .js --fix", "postinstall": "node ./scripts/check-node-version.js" }, "files": [ @@ -87,7 +89,12 @@ }, "homepage": "https://github.com/Platform-OS/pos-cli/issues#readme", "devDependencies": { + "@eslint/js": "^9.17.0", "dotenv": "^16.6.1", + "eslint": "^9.17.0", + "eslint-plugin-n": "^17.15.1", + "eslint-plugin-import": "^2.31.0", + "eslint-plugin-promise": "^7.2.1", "vitest": "^4.0.0" }, "bundleDependencies": [ diff --git a/scripts/check-node-version.js b/scripts/check-node-version.js index 0db51d32..c95aa98c 100644 --- a/scripts/check-node-version.js +++ b/scripts/check-node-version.js @@ -1,7 +1,7 @@ #!/usr/bin/env node import semver from 'semver'; -import pkg from '../package.json' with { type: "json" }; +import pkg from '../package.json' with { type: 'json' }; import logger from '../lib/logger.js'; const { engines } = pkg; diff --git a/test/dependencies.test.js b/test/dependencies.test.js index e756edf3..bbbc1a72 100644 --- a/test/dependencies.test.js +++ b/test/dependencies.test.js @@ -2,116 +2,116 @@ import { resolveDependencies, findModuleVersion } from '../lib/modules/dependenc import { isDeepStrictEqual } from 'node:util'; test('resolveDependencies ok', async () => { - const core = {"module":"core","versions":{"1.0.0":{"dependencies":{}}, "1.5.0":{"dependencies":{}}, "1.6.0":{"dependencies":{}}, "1.8.0":{"dependencies":{}}}}; + const core = {'module':'core','versions':{'1.0.0':{'dependencies':{}}, '1.5.0':{'dependencies':{}}, '1.6.0':{'dependencies':{}}, '1.8.0':{'dependencies':{}}}}; const modulesVersions = async (modulesNames) => { if(isDeepStrictEqual(modulesNames, ['payments_stripe', 'tests', 'a'])) { return [ - {"module":"payments_stripe","versions":{"1.0.6":{"dependencies":{"payments":"^1.0.0", "core":"^1.0.0"}}}}, - {"module":"tests","versions":{"1.0.7":{"dependencies":{"core":"^1.5.0"}}}}, - {"module":"a","versions":{"1.0.0":{"dependencies":{"b":"1.0.0"}}}} + {'module':'payments_stripe','versions':{'1.0.6':{'dependencies':{'payments':'^1.0.0', 'core':'^1.0.0'}}}}, + {'module':'tests','versions':{'1.0.7':{'dependencies':{'core':'^1.5.0'}}}}, + {'module':'a','versions':{'1.0.0':{'dependencies':{'b':'1.0.0'}}}} ]; } else if(isDeepStrictEqual(modulesNames, ['payments', 'core', 'b'])){ return [ - {"module":"payments","versions":{"1.0.0":{"dependencies":{"core":"1.6.0"}}}}, - {"module":"b","versions":{"1.0.0":{"dependencies":{"c":"1.0.0"}}}} + {'module':'payments','versions':{'1.0.0':{'dependencies':{'core':'1.6.0'}}}}, + {'module':'b','versions':{'1.0.0':{'dependencies':{'c':'1.0.0'}}}} ].concat(core); } else if(isDeepStrictEqual(modulesNames, ['core', 'c'])){ return [ - {"module":"c","versions":{"1.0.0":{"dependencies":{}}}} + {'module':'c','versions':{'1.0.0':{'dependencies':{}}}} ].concat(core); } throw new Error(`Unexpected modulesNames: ${JSON.stringify(modulesNames)}`); }; const rootModules = { - "payments_stripe": "1.0.6", - "tests": "1.0.7", - "a": "1.0.0" + 'payments_stripe': '1.0.6', + 'tests': '1.0.7', + 'a': '1.0.0' }; const data = await resolveDependencies(rootModules, modulesVersions); expect(data).toEqual( { - "payments_stripe": "1.0.6", - "tests": "1.0.7", - "payments": "1.0.0", - "core": "1.6.0", - "a": "1.0.0", - "b": "1.0.0", - "c": "1.0.0", + 'payments_stripe': '1.0.6', + 'tests': '1.0.7', + 'payments': '1.0.0', + 'core': '1.6.0', + 'a': '1.0.0', + 'b': '1.0.0', + 'c': '1.0.0' } ); }); test('resolveDependencies do not use newest available version but the one defined in root', async () => { - const core = {"module":"core","versions":{"1.6.0":{"dependencies":{}}, "1.6.1":{"dependencies":{}}, "1.8.0":{"dependencies":{}}}}; - const tests = {"module":"tests","versions":{"1.0.7":{"dependencies":{"core":"^1.6.0"}}}} + const core = {'module':'core','versions':{'1.6.0':{'dependencies':{}}, '1.6.1':{'dependencies':{}}, '1.8.0':{'dependencies':{}}}}; + const tests = {'module':'tests','versions':{'1.0.7':{'dependencies':{'core':'^1.6.0'}}}}; const modulesVersions = async (modulesNames) => { if(isDeepStrictEqual(modulesNames, ['tests', 'core'])) { return [tests, core]; } else if(isDeepStrictEqual(modulesNames, ['tests'])) { return [tests]; } else if(isDeepStrictEqual(modulesNames, ['core'])) { - return [core] + return [core]; } throw new Error(`Unexpected modulesNames: ${JSON.stringify(modulesNames)}`); }; const rootModules = { - "tests": "1.0.7", - "core": "1.6.1" + 'tests': '1.0.7', + 'core': '1.6.1' }; const data = await resolveDependencies(rootModules, modulesVersions, rootModules); expect(data).toEqual( { - "tests": "1.0.7", - "core": "1.6.1" + 'tests': '1.0.7', + 'core': '1.6.1' } ); }); test('find module with newest version', async () => { - const modulesVersions = async (modulesNames) => { - return [{"module":"core","versions":{"1.0.0":{"dependencies":{}}, "1.5.0":{"dependencies":{}}}}]; + const modulesVersions = async (_modulesNames) => { + return [{'module':'core','versions':{'1.0.0':{'dependencies':{}}, '1.5.0':{'dependencies':{}}}}]; }; - const data = await findModuleVersion("core", null, modulesVersions); + const data = await findModuleVersion('core', null, modulesVersions); - expect(data).toEqual({ "core": "1.5.0" }); + expect(data).toEqual({ 'core': '1.5.0' }); }); test('find module with newest stable version', async () => { - const modulesVersions = async (modulesNames) => { - return [{"module":"core","versions":{"1.0.0":{"dependencies":{}}, "1.5.0":{"dependencies":{}}, "1.5.1-beta.1":{"dependencies":{}}}}]; + const modulesVersions = async (_modulesNames) => { + return [{'module':'core','versions':{'1.0.0':{'dependencies':{}}, '1.5.0':{'dependencies':{}}, '1.5.1-beta.1':{'dependencies':{}}}}]; }; - const data = await findModuleVersion("core", null, modulesVersions); + const data = await findModuleVersion('core', null, modulesVersions); - expect(data).toEqual({ "core": "1.5.0" }); + expect(data).toEqual({ 'core': '1.5.0' }); }); test('find module with requested version', async () => { - const modulesVersions = async (modulesNames) => [{"module":"core","versions":{"1.0.0":{"dependencies":{}}, "1.5.0":{"dependencies":{}}}}]; + const modulesVersions = async (_modulesNames) => [{'module':'core','versions':{'1.0.0':{'dependencies':{}}, '1.5.0':{'dependencies':{}}}}]; - const data = await findModuleVersion("core", "1.0.0", modulesVersions); + const data = await findModuleVersion('core', '1.0.0', modulesVersions); - expect(data).toEqual({ "core": "1.0.0" }); + expect(data).toEqual({ 'core': '1.0.0' }); }); test('find module with requested version even if it is beta', async () => { - const modulesVersions = async (modulesNames) => [{"module":"core","versions":{"1.0.0-beta.1":{"dependencies":{}}, "1.5.0":{"dependencies":{}}}}]; + const modulesVersions = async (_modulesNames) => [{'module':'core','versions':{'1.0.0-beta.1':{'dependencies':{}}, '1.5.0':{'dependencies':{}}}}]; - const data = await findModuleVersion("core", "1.0.0-beta.1", modulesVersions); + const data = await findModuleVersion('core', '1.0.0-beta.1', modulesVersions); - expect(data).toEqual({ "core": "1.0.0-beta.1" }); + expect(data).toEqual({ 'core': '1.0.0-beta.1' }); }); test('can not find module with requested version', async () => { - const modulesVersions = async (modulesNames) => [{"module":"core","versions":{"1.0.0":{"dependencies":{}}, "1.5.0":{"dependencies":{}}}}]; + const modulesVersions = async (_modulesNames) => [{'module':'core','versions':{'1.0.0':{'dependencies':{}}, '1.5.0':{'dependencies':{}}}}]; - const data = await findModuleVersion("core", "1.0.1", modulesVersions); + const data = await findModuleVersion('core', '1.0.1', modulesVersions); expect(data).toEqual(null); }); diff --git a/test/deploy.test.js b/test/deploy.test.js index f78041f5..22b218af 100644 --- a/test/deploy.test.js +++ b/test/deploy.test.js @@ -1,11 +1,11 @@ import 'dotenv/config'; -import { describe, test, expect, vi, beforeAll, afterAll } from 'vitest'; +import { describe, test, expect, vi, beforeAll } from 'vitest'; import exec from './utils/exec'; import cliPath from './utils/cliPath'; import unzip from 'unzipper'; import fs from 'fs'; import path from 'path'; -import { hasRealCredentials, requireRealCredentials } from './utils/credentials'; +import { requireRealCredentials } from './utils/credentials'; import shell from 'shelljs'; vi.setConfig({ testTimeout: 40000 }); @@ -34,10 +34,10 @@ const extract = async (inputPath, outputPath) => { describe('Happy path', () => { test('App directory + modules', async () => { requireRealCredentials(); - await sleep(2000); // it's needed to run tests in parallel mode + await sleep(3000); // it's needed to run tests in parallel mode - const { stderr, stdout } = await run('correct'); + const { stdout } = await run('correct'); expect(stdout).toMatch(process.env.MPKIT_URL); expect(stdout).toMatch('Deploy succeeded'); @@ -76,7 +76,7 @@ describe('Happy path', () => { test('correct with assets with direct upload', async () => { requireRealCredentials(); - const { stdout, stderr } = await run('correct_with_assets', '-d'); + const { stdout } = await run('correct_with_assets', '-d'); expect(stdout).toMatch(process.env.MPKIT_URL); expect(stdout).toMatch('Deploy succeeded'); @@ -113,7 +113,7 @@ describe('Happy path', () => { describe('Server errors', () => { test('Nothing to deploy', async () => { - const { stderr, stdout } = await run('empty'); + const { stderr } = await run('empty'); expect(stderr).toMatch('Could not find any directory to deploy. Looked for app, marketplace_builder and modules'); }); @@ -144,11 +144,11 @@ describe('Server errors', () => { const originalEmail = process.env.MPKIT_EMAIL; try { - process.env.MPKIT_URL = 'https://incorrecturl123xyz.com' - process.env.MPKIT_TOKEN = 'test-token' - process.env.MPKIT_EMAIL = 'test@example.com' + process.env.MPKIT_URL = 'https://incorrecturl123xyz.com'; + process.env.MPKIT_TOKEN = 'test-token'; + process.env.MPKIT_EMAIL = 'test@example.com'; - const { stderr, stdout, code } = await run('correct'); + const { stderr, code } = await run('correct'); expect(code).toEqual(1); expect(stderr).toMatch( diff --git a/test/env-add-unit.test.js b/test/env-add-unit.test.js index 974c927a..913eb96e 100644 --- a/test/env-add-unit.test.js +++ b/test/env-add-unit.test.js @@ -1,17 +1,15 @@ -import { vi, describe, test, expect, beforeEach, afterAll, beforeAll } from 'vitest'; +import { vi, describe, test, expect, afterEach, beforeAll } from 'vitest'; import fs from 'fs'; -import path from 'path'; import { settingsFromDotPos } from '../lib/settings.js'; vi.mock('open', () => ({ default: vi.fn(() => Promise.resolve()) })); -let addEnv; -let storeEnvironment; +let mockAccessToken = 'mock-token-12345'; vi.mock('../lib/data/waitForStatus.js', () => ({ - default: () => Promise.resolve({ access_token: '12345', status: 'success' }) + default: () => Promise.resolve({ access_token: mockAccessToken, status: 'success' }) })); vi.mock('../lib/portal.js', async () => { @@ -19,8 +17,14 @@ vi.mock('../lib/portal.js', async () => { return { default: { ...original, - requestDeviceAuthorization: () => Promise.resolve({verification_uri_complete: "http://example.com/xxxx", device_code: "device_code"}), - fetchDeviceAccessToken: () => Promise.resolve({access_token: "12345"}) + url: () => 'https://partners.platformos.com', + requestDeviceAuthorization: () => Promise.resolve({ + verification_uri_complete: 'http://example.com/xxxx', + device_code: 'device_code', + interval: 1 + }), + fetchDeviceAccessToken: () => Promise.resolve({ access_token: mockAccessToken }), + login: () => Promise.resolve([{ token: mockAccessToken }]) } }; }); @@ -46,10 +50,9 @@ vi.mock('../lib/validators/index.js', () => ({ directoryEmpty: () => true })); +let addEnv; + beforeAll(async () => { - const envMod = await import('../lib/environments.js'); - storeEnvironment = envMod.storeEnvironment; - const addMod = await import('../lib/envs/add.js'); addEnv = addMod.default; }); @@ -57,20 +60,131 @@ beforeAll(async () => { afterEach(() => { try { fs.unlinkSync('.pos'); - } catch (e) {} + } catch { + // File might not exist, ignore + } + mockAccessToken = 'mock-token-12345'; }); describe('env add with mocked portal', () => { - test('with --partner_portal_url', async () => { + test('creates .pos file with token from device authorization flow', async () => { + const environment = 'staging'; + const params = { + url: 'https://staging.example.com' + }; + + await addEnv(environment, params); + + expect(fs.existsSync('.pos')).toBe(true); + const settings = settingsFromDotPos(environment); + expect(settings['token']).toBe('mock-token-12345'); + expect(settings['url']).toBe('https://staging.example.com/'); + }); + + test('creates .pos file with token from --token option', async () => { + const environment = 'production'; + const params = { + url: 'https://production.example.com', + token: 'direct-token-67890' + }; + + await addEnv(environment, params); + + expect(fs.existsSync('.pos')).toBe(true); + const settings = settingsFromDotPos(environment); + expect(settings['token']).toBe('direct-token-67890'); + expect(settings['url']).toBe('https://production.example.com/'); + }); + + test('stores partner_portal_url when provided', async () => { const environment = 'e1'; const params = { - partnerPortalUrl: "http://portal.example.com", - url: "http://instance.example.com" + partnerPortalUrl: 'http://portal.example.com', + url: 'http://instance.example.com' }; await addEnv(environment, params); + + const settings = settingsFromDotPos(environment); + expect(settings['token']).toBe('mock-token-12345'); + expect(settings['partner_portal_url']).toBe('http://portal.example.com'); + }); + + test('overwrites existing environment token with new value', async () => { + const environment = 'staging'; + const params = { + url: 'https://staging.example.com', + token: 'old-token-111' + }; + + await addEnv(environment, params); + let settings = settingsFromDotPos(environment); + expect(settings['token']).toBe('old-token-111'); + + const newParams = { + url: 'https://staging.example.com', + token: 'new-token-222' + }; + + await addEnv(environment, newParams); + settings = settingsFromDotPos(environment); + expect(settings['token']).toBe('new-token-222'); + }); + + test('adding new environment preserves existing environments in .pos', async () => { + const env1 = 'staging'; + const params1 = { + url: 'https://staging.example.com', + token: 'staging-token' + }; + + await addEnv(env1, params1); + + const env2 = 'production'; + const params2 = { + url: 'https://production.example.com', + token: 'production-token' + }; + + await addEnv(env2, params2); + + const stagingSettings = settingsFromDotPos(env1); + expect(stagingSettings['token']).toBe('staging-token'); + expect(stagingSettings['url']).toBe('https://staging.example.com/'); + + const productionSettings = settingsFromDotPos(env2); + expect(productionSettings['token']).toBe('production-token'); + expect(productionSettings['url']).toBe('https://production.example.com/'); + + const posFile = JSON.parse(fs.readFileSync('.pos', 'utf8')); + expect(Object.keys(posFile)).toContain('staging'); + expect(Object.keys(posFile)).toContain('production'); + }); + + test('adding third environment preserves all existing environments', async () => { + await addEnv('env1', { url: 'https://env1.example.com', token: 'token1' }); + await addEnv('env2', { url: 'https://env2.example.com', token: 'token2' }); + await addEnv('env3', { url: 'https://env3.example.com', token: 'token3' }); + + const posFile = JSON.parse(fs.readFileSync('.pos', 'utf8')); + + expect(Object.keys(posFile).sort()).toEqual(['env1', 'env2', 'env3']); + expect(posFile['env1']['token']).toBe('token1'); + expect(posFile['env2']['token']).toBe('token2'); + expect(posFile['env3']['token']).toBe('token3'); + }); + + test('stores email when provided', async () => { + const environment = 'staging'; + const params = { + url: 'https://staging.example.com', + email: 'user@example.com', + token: 'some-token' + }; + + await addEnv(environment, params); + const settings = settingsFromDotPos(environment); - expect(settings['token']).toMatch('12345'); - expect(settings['partner_portal_url']).toMatch('http://portal.example.com'); + expect(settings['email']).toBe('user@example.com'); }); }); diff --git a/test/env-add.test.js b/test/env-add.test.js index 6010b34c..f402eb5d 100644 --- a/test/env-add.test.js +++ b/test/env-add.test.js @@ -4,28 +4,28 @@ import exec from './utils/exec'; import cliPath from './utils/cliPath'; import { settingsFromDotPos } from '../lib/settings.js'; -process.env['CI'] = 'true' +process.env['CI'] = 'true'; const run = (options) => exec(`${cliPath} env add ${options}`); describe('commander env add', () => { - afterEach(() => exec(`rm -f .pos`)); + afterEach(() => exec('rm -f .pos')); test('adding with email and token', async () => { - const { stdout, stderr } = await run('--url https://example.com --email pos-cli-ci@platformos.com --token 12345 e1'); + const { stdout } = await run('--url https://example.com --email pos-cli-ci@platformos.com --token 12345 e1'); expect(stdout).toMatch('Environment https://example.com/ as e1 has been added successfuly'); - const settings = settingsFromDotPos('e1') + const settings = settingsFromDotPos('e1'); expect(settings['token']).toMatch('12345'); }); test('adding with email and token and partner_portal_url', async () => { - const { stdout, stderr } = await run('--url https://example.com --email pos-cli-ci@platformos.com --token 12345 e2 --partner-portal-url http://portal.example.com'); + const { stdout } = await run('--url https://example.com --email pos-cli-ci@platformos.com --token 12345 e2 --partner-portal-url http://portal.example.com'); expect(stdout).toMatch('Environment https://example.com/ as e2 has been added successfuly'); - const settings = settingsFromDotPos('e2') + const settings = settingsFromDotPos('e2'); expect(settings['token']).toMatch('12345'); expect(settings['partner_portal_url']).toMatch('http://portal.example.com'); }); diff --git a/test/fixtures/deploy/correct_with_assets/app/assets/bar.js b/test/fixtures/deploy/correct_with_assets/app/assets/bar.js index c3b54d4f..c59e7c54 100644 --- a/test/fixtures/deploy/correct_with_assets/app/assets/bar.js +++ b/test/fixtures/deploy/correct_with_assets/app/assets/bar.js @@ -1,104 +1,104 @@ // Test asset file -x -x -x -x -x -x -x -x -x -x -x -x -x -x -x -x -x -x -x -x -x -x -x -x -x -x -x -x -x -x -x -x -x -x -x -x -x -x -x -x -x -x -x -x -x -x -x -x -x -x -x -x -x -x -x -x -x -x -x -x -x -x -x -x -x -x -x -x -x -x -x -x -x -x -x -x -x -x -x -x -x -x -x -x -x -x -x -x -x -x -x -x -x -x -x -x -x -x -x -x -x -x -x +x; +x; +x; +x; +x; +x; +x; +x; +x; +x; +x; +x; +x; +x; +x; +x; +x; +x; +x; +x; +x; +x; +x; +x; +x; +x; +x; +x; +x; +x; +x; +x; +x; +x; +x; +x; +x; +x; +x; +x; +x; +x; +x; +x; +x; +x; +x; +x; +x; +x; +x; +x; +x; +x; +x; +x; +x; +x; +x; +x; +x; +x; +x; +x; +x; +x; +x; +x; +x; +x; +x; +x; +x; +x; +x; +x; +x; +x; +x; +x; +x; +x; +x; +x; +x; +x; +x; +x; +x; +x; +x; +x; +x; +x; +x; +x; +x; +x; +x; +x; +x; +x; +x; diff --git a/test/fixtures/yeoman/modules/core/generators/command/index.js b/test/fixtures/yeoman/modules/core/generators/command/index.js index 5323939a..93582e45 100644 --- a/test/fixtures/yeoman/modules/core/generators/command/index.js +++ b/test/fixtures/yeoman/modules/core/generators/command/index.js @@ -1,5 +1,4 @@ import Generator from 'yeoman-generator'; -import path from 'path'; export default class extends Generator { constructor(args, opts) { diff --git a/test/fixtures/yeoman/modules/core/generators/crud/index.js b/test/fixtures/yeoman/modules/core/generators/crud/index.js index fd0f478f..b50af7da 100644 --- a/test/fixtures/yeoman/modules/core/generators/crud/index.js +++ b/test/fixtures/yeoman/modules/core/generators/crud/index.js @@ -24,34 +24,34 @@ export default class extends Generator { modelNamePlural: pluralize(this.options.modelName), attributes: attributes, graphqlArgumentMap: { - string: "String", - text: "String", - integer: "Int", - boolean: "Boolean", - float: "Float", - date: "String", - datetime: "String", - array: "[String]" + string: 'String', + text: 'String', + integer: 'Int', + boolean: 'Boolean', + float: 'Float', + date: 'String', + datetime: 'String', + array: '[String]' }, graphqlArgumentValueMap: { - string: "value", - text: "value", - integer: "value_int", - boolean: "value_boolean", - float: "value_float", - date: "value", - datetime: "value", - array: "value_array" + string: 'value', + text: 'value', + integer: 'value_int', + boolean: 'value_boolean', + float: 'value_float', + date: 'value', + datetime: 'value', + array: 'value_array' }, graphqlPropertyMap: { - string: "property", - text: "property", - integer: "property_int", - boolean: "property_boolean", - float: "property_float", - date: "property", - datetime: "property", - array: "property_array" + string: 'property', + text: 'property', + integer: 'property_int', + boolean: 'property_boolean', + float: 'property_float', + date: 'property', + datetime: 'property', + array: 'property_array' } }; } @@ -85,7 +85,7 @@ export default class extends Generator { ); this.fs.copyTpl( this.templatePath('./config.yml'), - this.destinationPath(`app/config.yml`), + this.destinationPath('app/config.yml'), this.props ); if(this.options.includeViews) { @@ -101,7 +101,7 @@ export default class extends Generator { ); this.fs.copyTpl( this.templatePath('./views/partials/theme/simple/field_error.liquid'), - this.destinationPath(`app/views/partials/theme/simple/field_error.liquid`), + this.destinationPath('app/views/partials/theme/simple/field_error.liquid'), this.props ); } diff --git a/test/generators.test.js b/test/generators.test.js index d9929400..254272ff 100644 --- a/test/generators.test.js +++ b/test/generators.test.js @@ -41,7 +41,7 @@ const setupTestProject = async () => { const testDir = path.join(__dirname, 'fixtures', 'temp-generator-test'); try { await fs.rm(testDir, { recursive: true, force: true }); - } catch (e) { + } catch { // Ignore if directory doesn't exist } await fs.mkdir(testDir, { recursive: true }); @@ -52,7 +52,7 @@ const setupTestProject = async () => { const cleanupTestProject = async (testDir) => { try { await fs.rm(testDir, { recursive: true, force: true }); - } catch (e) { + } catch { // Ignore if cleanup fails } }; @@ -61,7 +61,7 @@ const fileExists = async (filePath) => { try { await fs.access(filePath); return true; - } catch (e) { + } catch { return false; } }; @@ -69,7 +69,7 @@ const fileExists = async (filePath) => { const readFile = async (filePath) => { try { return await fs.readFile(filePath, 'utf8'); - } catch (e) { + } catch { return null; } }; @@ -89,7 +89,7 @@ describe('pos-cli generate command', () => { }); test('requires modelName argument', async () => { - const { stderr, code } = await run( + const { stderr } = await run( 'test/fixtures/yeoman/modules/core/generators/crud', { cwd: testDir, timeout: 5000 } ); @@ -313,7 +313,7 @@ describe('pos-cli generate command', () => { }); test('requires commandName argument', async () => { - const { stderr, code } = await run( + const { stderr } = await run( 'test/fixtures/yeoman/modules/core/generators/command', { cwd: testDir, timeout: 5000 } ); diff --git a/test/gui-serve.test.js b/test/gui-serve.test.js index 01697421..9549879d 100644 --- a/test/gui-serve.test.js +++ b/test/gui-serve.test.js @@ -25,7 +25,9 @@ const waitForServer = async (server, port, maxWait = 5000, waitForSync = false) } return true; } - } catch (e) { } + } catch { + // JSON parse failed, ignore + } } const serverHasError = server.getStderr().includes('Error') || @@ -50,8 +52,12 @@ const startServer = (args, env = process.env, cwd = process.cwd()) => { let stdout = ''; let stderr = ''; - child.stdout.on('data', data => { stdout += data.toString(); }); - child.stderr.on('data', data => { stderr += data.toString(); }); + child.stdout.on('data', data => { + stdout += data.toString(); + }); + child.stderr.on('data', data => { + stderr += data.toString(); + }); return { process: child, diff --git a/test/lib/commands.test.js b/test/lib/commands.test.js index 34bb3100..b140f22d 100644 --- a/test/lib/commands.test.js +++ b/test/lib/commands.test.js @@ -53,8 +53,8 @@ test('should run env list', async () => { }); test('should run help on env add', async () => { - const { stdout, code, stderr } = await run('env add'); - expect(stderr).toMatch('Usage: pos-cli env add [options] ') + const { code, stderr } = await run('env add'); + expect(stderr).toMatch('Usage: pos-cli env add [options] '); expect(code).toEqual(1); }); @@ -72,25 +72,25 @@ test('should run help on logs', async () => { test('should run help on migrations run', async () => { const { stderr, code } = await run('migrations run'); - expect(stderr).toMatch("error: missing required argument 'timestamp'") + expect(stderr).toMatch("error: missing required argument 'timestamp'"); expect(code).toEqual(1); }); test('should run help on migrations run with timestamp', async () => { const { stderr, code } = await run('migrations run 900000000'); - expect(stderr).toMatch('No environment specified, please pass environment for a command `pos-cli [environment]') + expect(stderr).toMatch('No environment specified, please pass environment for a command `pos-cli [environment]'); expect(code).toEqual(1); }); test('should run help on migrations list', async () => { const { stderr, code } = await run('migrations list'); - expect(stderr).toMatch('No environment specified, please pass environment for a command `pos-cli [environment]') + expect(stderr).toMatch('No environment specified, please pass environment for a command `pos-cli [environment]'); expect(code).toEqual(1); }); test('should run help on modules list', async () => { const { stderr, code } = await run('modules list'); - expect(stderr).toMatch('No environment specified, please pass environment for a command `pos-cli [environment]') + expect(stderr).toMatch('No environment specified, please pass environment for a command `pos-cli [environment]'); expect(code).toEqual(1); }); @@ -108,7 +108,7 @@ test('should run help on modules push', async () => { test('should run help on sync', async () => { const { stderr, code } = await run('sync'); - expect(stderr).toMatch('No environment specified, please pass environment for a command `pos-cli [environment]') + expect(stderr).toMatch('No environment specified, please pass environment for a command `pos-cli [environment]'); expect(code).toEqual(1); }); diff --git a/test/logs.test.js b/test/logs.test.js index 1863324e..6cba3c9b 100644 --- a/test/logs.test.js +++ b/test/logs.test.js @@ -1,10 +1,10 @@ import 'dotenv/config'; -import { describe, test, expect, beforeAll, afterAll, vi } from 'vitest'; +import { describe, test, expect, beforeAll, vi } from 'vitest'; import { spawn } from 'child_process'; import path from 'path'; import Gateway from '../lib/proxy.js'; import { fetchSettings } from '../lib/settings.js'; -import { hasRealCredentials, requireRealCredentials } from './utils/credentials'; +import { requireRealCredentials } from './utils/credentials'; vi.setConfig({ testTimeout: 20000 }); diff --git a/test/manifest.test.js b/test/manifest.test.js index 09a4d2ad..7f79df7f 100644 --- a/test/manifest.test.js +++ b/test/manifest.test.js @@ -15,15 +15,15 @@ test('manifest for files on linux', () => { ]; const manifestFile = manifestGenerateForAssets(assets); - Object.entries(manifestFile).forEach(([key, value]) => delete value['updated_at']); + Object.entries(manifestFile).forEach(([_key, value]) => delete value['updated_at']); expect(manifestFile).toEqual({ - "app/assets/foo.js": { - "file_size": 20, - "physical_file_path": "app/assets/foo.js" + 'app/assets/foo.js': { + 'file_size': 20, + 'physical_file_path': 'app/assets/foo.js' }, - "modules/testModule/bar.js": { - "file_size": 20, - "physical_file_path": "modules/testModule/public/assets/bar.js", + 'modules/testModule/bar.js': { + 'file_size': 20, + 'physical_file_path': 'modules/testModule/public/assets/bar.js' } }); }); @@ -35,15 +35,15 @@ test('manifest for files on windows', () => { ]; const manifestFile = manifestGenerateForAssets(assets); - Object.entries(manifestFile).forEach(([key, value]) => delete value['updated_at']); + Object.entries(manifestFile).forEach(([_key, value]) => delete value['updated_at']); expect(manifestFile).toEqual({ - "app/assets/foo.js": { - "file_size": 20, - "physical_file_path": "app/assets/foo.js" + 'app/assets/foo.js': { + 'file_size': 20, + 'physical_file_path': 'app/assets/foo.js' }, - "modules/testModule/bar.js": { - "file_size": 20, - "physical_file_path": "modules/testModule/public/assets/bar.js" + 'modules/testModule/bar.js': { + 'file_size': 20, + 'physical_file_path': 'modules/testModule/public/assets/bar.js' } }); }); diff --git a/test/modules-download.test.js b/test/modules-download.test.js index f72d896d..fa9c0238 100644 --- a/test/modules-download.test.js +++ b/test/modules-download.test.js @@ -4,7 +4,7 @@ import exec from './utils/exec'; import cliPath from './utils/cliPath'; import fs from 'fs'; import path from 'path'; -import { hasRealCredentials, requireRealCredentials } from './utils/credentials'; +import { requireRealCredentials } from './utils/credentials'; const cwd = name => path.join(process.cwd(), 'test', 'fixtures', name); diff --git a/test/modules-push.test.js b/test/modules-push.test.js index c422a84f..5e4cb82c 100644 --- a/test/modules-push.test.js +++ b/test/modules-push.test.js @@ -2,9 +2,8 @@ import 'dotenv/config'; import { describe, test, expect } from 'vitest'; import exec from './utils/exec'; import cliPath from './utils/cliPath'; -import fs from 'fs'; import path from 'path'; -import { hasRealCredentials, requireRealCredentials } from './utils/credentials'; +import { requireRealCredentials } from './utils/credentials'; Object.assign(process.env, { DEBUG: true @@ -17,36 +16,36 @@ const run = (fixtureName, options) => exec(`${cliPath} modules push ${options}`, describe('Server errors', () => { test('Empty directory', async () => { requireRealCredentials(); - const { stdout, stderr } = await run('empty', '--email pos-cli-ci@platformos.com'); + const { stderr } = await run('empty', '--email pos-cli-ci@platformos.com'); expect(stderr).toMatch("File doesn't exist: template-values.json"); }); test('Multiple modules with template-values.json', async () => { requireRealCredentials(); - const { stdout, stderr } = await run('multiple_modules', '--email pos-cli-ci@platformos.com'); - expect(stderr).toMatch("There is more than one modules/*/template-values.json, please use --name parameter or create template-values.json in the root of the project."); + const { stderr } = await run('multiple_modules', '--email pos-cli-ci@platformos.com'); + expect(stderr).toMatch('There is more than one modules/*/template-values.json, please use --name parameter or create template-values.json in the root of the project.'); }); test('Multiple modules with template-values.json and invalid name', async () => { requireRealCredentials(); - const { stdout, stderr } = await run('multiple_modules', '--email pos-cli-ci@platformos.com --name missing'); + const { stderr } = await run('multiple_modules', '--email pos-cli-ci@platformos.com --name missing'); expect(stderr).toMatch("File doesn't exist: modules/missing/template-values.json"); }); test('Error in root template-values.json', async () => { requireRealCredentials(); - const { stdout, stderr } = await run('template_values_in_root_first', '--email pos-cli-ci@platformos.com --name foo'); - expect(stderr).toMatch("There is no directory modules/bar"); + const { stderr } = await run('template_values_in_root_first', '--email pos-cli-ci@platformos.com --name foo'); + expect(stderr).toMatch('There is no directory modules/bar'); }); test.skip('now we include template-values.json in release', async () => { - const { stdout, stderr } = await run('no_files', '--email pos-cli-ci@platformos.com'); - expect(stderr).toMatch("There are no files in module release"); + const { stderr } = await run('no_files', '--email pos-cli-ci@platformos.com'); + expect(stderr).toMatch('There are no files in module release'); }); test('Wrong email', async () => { requireRealCredentials(); - const { stdout, stderr } = await run('good', '--email foo@example.com'); + const { stderr } = await run('good', '--email foo@example.com'); expect(stderr).toMatch('Cannot find modules/pos_cli_ci_test, creating archive with the current directory'); expect(stderr).toMatch('You are unauthorized to do this operation. Check if your Token/URL or email/password are correct.'); }); @@ -54,8 +53,8 @@ describe('Server errors', () => { test('Wrong version', async () => { requireRealCredentials(); const { stdout, stderr } = await run('good', '--email pos-cli-ci@platformos.com'); - expect(stdout).toMatch("for access token"); - expect(stdout).toMatch("Release Uploaded"); + expect(stdout).toMatch('for access token'); + expect(stdout).toMatch('Release Uploaded'); expect(stderr).toMatch('Name has already been taken'); }); }); diff --git a/test/modules-update.test.js b/test/modules-update.test.js index 7bdcb10b..11fd5928 100644 --- a/test/modules-update.test.js +++ b/test/modules-update.test.js @@ -4,7 +4,7 @@ import exec from './utils/exec'; import cliPath from './utils/cliPath'; import fs from 'fs'; import path from 'path'; -import { hasRealCredentials, requireRealCredentials, noCredentials, applyCredentials } from './utils/credentials'; +import { requireRealCredentials, noCredentials, applyCredentials } from './utils/credentials'; const cwd = name => path.join(process.cwd(), 'test', 'fixtures', name); const run = async (fixtureName, options) => await exec(`${cliPath} modules update ${options}`, { cwd: cwd(fixtureName), env: process.env }); @@ -14,7 +14,7 @@ describe('Successful update', () => { requireRealCredentials(); const pathToLockFile = `${cwd('deploy/modules_update')}/app/pos-modules.lock.json`; - const { stdout, stderr } = await run('deploy/modules_update', 'core'); + const { stdout } = await run('deploy/modules_update', 'core'); expect(stdout).toMatch('Updating module'); const fileContent = fs.readFileSync(pathToLockFile, { encoding: 'utf8' }); const lockFile = JSON.parse(fileContent); @@ -28,7 +28,7 @@ describe('Failed download', () => { const savedPortalHost = process.env.PARTNER_PORTAL_HOST; delete process.env.PARTNER_PORTAL_HOST; try { - const { stdout, stderr } = await run('deploy/modules_update', 'moduleNotFound'); + const { stderr } = await run('deploy/modules_update', 'moduleNotFound'); expect(stderr).toMatch("Can't find module moduleNotFound"); } finally { applyCredentials(savedCreds); @@ -42,7 +42,7 @@ describe('Failed download', () => { const savedPortalHost = process.env.PARTNER_PORTAL_HOST; delete process.env.PARTNER_PORTAL_HOST; try { - const { stdout, stderr } = await run('deploy/modules_update', ''); + const { stderr } = await run('deploy/modules_update', ''); expect(stderr).toMatch("error: missing required argument 'module-name'"); } finally { applyCredentials(savedCreds); diff --git a/test/sync.test.js b/test/sync.test.js index 6a69c93c..3b6ecc7a 100644 --- a/test/sync.test.js +++ b/test/sync.test.js @@ -23,8 +23,8 @@ const sleep = ms => new Promise(resolve => setTimeout(resolve, ms)); const kill = p => { p.stdout.destroy(); p.stderr.destroy(); - p.kill() -} + p.kill(); +}; const barJsPath = path.join(cwd('correct_with_assets'), 'app/assets/bar.js'); const originalBarJsContent = fs.readFileSync(barJsPath, 'utf8'); @@ -43,9 +43,9 @@ describe('Happy path', () => { exec('echo "x" >> app/assets/bar.js', { cwd: cwd('correct_with_assets') }); await sleep(stepTimeout); kill(child); - } + }; - const { stdout, stderr } = await run('correct_with_assets', null, steps); + const { stdout } = await run('correct_with_assets', null, steps); expect(stdout).toMatch(process.env.MPKIT_URL); expect(stdout).toMatch('[Sync] Synced asset: app/assets/bar.js'); @@ -57,8 +57,8 @@ describe('Happy path', () => { exec('echo "x" >> app/assets/bar.js', { cwd: cwd('correct_with_assets') }); await sleep(stepTimeout); kill(child); - } - const { stdout, stderr } = await run('correct_with_assets', '-d', steps); + }; + const { stdout } = await run('correct_with_assets', '-d', steps); expect(stdout).toMatch(process.env.MPKIT_URL); expect(stdout).toMatch('[Sync] Synced asset: app/assets/bar.js'); @@ -81,8 +81,8 @@ properties: await exec(`rm app/${fileName}`, { cwd: cwd('correct_with_assets') }); await sleep(stepTimeout); kill(child); - } - const { stderr, stdout } = await run('correct_with_assets', null, steps); + }; + const { stdout } = await run('correct_with_assets', null, steps); expect(stdout).toMatch(process.env.MPKIT_URL); expect(stdout).toMatch(`[Sync] Synced: ${fileName}`); diff --git a/test/templates.test.js b/test/templates.test.js index ee476b7b..ed77a518 100644 --- a/test/templates.test.js +++ b/test/templates.test.js @@ -9,14 +9,14 @@ test('ignores file if template values are empty', () => { }); test('returns oryginal file body if it runs into error', () => { - expect(fillInTemplateValues(missformatedTemplatePath, Object({ "aKey": 1}))).toEqual(fs.readFileSync(missformatedTemplatePath, 'utf8')); + expect(fillInTemplateValues(missformatedTemplatePath, Object({ 'aKey': 1}))).toEqual(fs.readFileSync(missformatedTemplatePath, 'utf8')); }); test('fills template with values ', () => { const templateValues = Object({ - "aKey": "aStringValue", - "otherKey": 1 - }) + 'aKey': 'aStringValue', + 'otherKey': 1 + }); expect(fillInTemplateValues(fileWithTemplatePath, templateValues)).toEqual(`--- slug: aStringValue --- @@ -27,8 +27,8 @@ Page number: 1 test('render nothing for non existing keys ', () => { const templateValues = Object({ - "otherKey": 1 - }) + 'otherKey': 1 + }); expect(fillInTemplateValues(fileWithTemplatePath, templateValues)).toEqual(`--- slug: --- diff --git a/test/test-run.test.js b/test/test-run.test.js index fb6c6d6c..d7fff736 100644 --- a/test/test-run.test.js +++ b/test/test-run.test.js @@ -1,9 +1,8 @@ import 'dotenv/config'; -import { describe, test, expect, beforeEach, vi } from 'vitest'; +import { describe, test, expect, vi } from 'vitest'; import { spawn } from 'child_process'; import path from 'path'; import { requireRealCredentials } from './utils/credentials'; -import Gateway from '../lib/proxy.js'; import { TestLogStream } from '../lib/test-runner/logStream.js'; import { formatDuration, formatTestLog, transformTestResponse } from '../lib/test-runner/formatters.js'; @@ -20,8 +19,12 @@ const startCommand = (args, env = process.env) => { let stdout = ''; let stderr = ''; - child.stdout.on('data', data => { stdout += data.toString(); }); - child.stderr.on('data', data => { stderr += data.toString(); }); + child.stdout.on('data', data => { + stdout += data.toString(); + }); + child.stderr.on('data', data => { + stderr += data.toString(); + }); return { process: child, @@ -45,8 +48,12 @@ const exec = (command, options = {}) => { let stdout = ''; let stderr = ''; - child.stdout.on('data', data => { stdout += data.toString(); }); - child.stderr.on('data', data => { stderr += data.toString(); }); + child.stdout.on('data', data => { + stdout += data.toString(); + }); + child.stderr.on('data', data => { + stderr += data.toString(); + }); child.on('close', code => { resolve({ stdout, stderr, code }); @@ -186,11 +193,11 @@ describe('pos-cli test-run command', () => { total_errors: 0, duration_ms: 26, tests: [ - { name: "test/array_test", success: true, assertions: 2, errors: {} }, - { name: "test/examples/assertions_test", success: true, assertions: 4, errors: {} }, - { name: "test/example_test", success: true, assertions: 5, errors: {} }, - { name: "test/object_test", success: true, assertions: 3, errors: {} }, - { name: "test/string_test", success: true, assertions: 2, errors: {} } + { name: 'test/array_test', success: true, assertions: 2, errors: {} }, + { name: 'test/examples/assertions_test', success: true, assertions: 4, errors: {} }, + { name: 'test/example_test', success: true, assertions: 5, errors: {} }, + { name: 'test/object_test', success: true, assertions: 3, errors: {} }, + { name: 'test/string_test', success: true, assertions: 2, errors: {} } ] }; @@ -202,11 +209,11 @@ describe('pos-cli test-run command', () => { failed: 0, assertions: 16, tests: [ - { name: "test/array_test", status: "passed", passed: true, assertions: 2 }, - { name: "test/examples/assertions_test", status: "passed", passed: true, assertions: 4 }, - { name: "test/example_test", status: "passed", passed: true, assertions: 5 }, - { name: "test/object_test", status: "passed", passed: true, assertions: 3 }, - { name: "test/string_test", status: "passed", passed: true, assertions: 2 } + { name: 'test/array_test', status: 'passed', passed: true, assertions: 2 }, + { name: 'test/examples/assertions_test', status: 'passed', passed: true, assertions: 4 }, + { name: 'test/example_test', status: 'passed', passed: true, assertions: 5 }, + { name: 'test/object_test', status: 'passed', passed: true, assertions: 3 }, + { name: 'test/string_test', status: 'passed', passed: true, assertions: 2 } ], duration: 26 }); @@ -220,9 +227,9 @@ describe('pos-cli test-run command', () => { total_errors: 1, duration_ms: 45, tests: [ - { name: "test/passing_test", success: true, assertions: 3, errors: {} }, - { name: "test/failing_test", success: false, assertions: 2, errors: { expected: "field to be 2", actual: "field is 1" } }, - { name: "test/another_passing_test", success: true, assertions: 5, errors: {} } + { name: 'test/passing_test', success: true, assertions: 3, errors: {} }, + { name: 'test/failing_test', success: false, assertions: 2, errors: { expected: 'field to be 2', actual: 'field is 1' } }, + { name: 'test/another_passing_test', success: true, assertions: 5, errors: {} } ] }; @@ -234,9 +241,9 @@ describe('pos-cli test-run command', () => { failed: 1, assertions: 10, tests: [ - { name: "test/passing_test", status: "passed", passed: true, assertions: 3 }, - { name: "test/failing_test", status: "failed", passed: false, assertions: 2, error: "{\"expected\":\"field to be 2\",\"actual\":\"field is 1\"}" }, - { name: "test/another_passing_test", status: "passed", passed: true, assertions: 5 } + { name: 'test/passing_test', status: 'passed', passed: true, assertions: 3 }, + { name: 'test/failing_test', status: 'failed', passed: false, assertions: 2, error: '{"expected":"field to be 2","actual":"field is 1"}' }, + { name: 'test/another_passing_test', status: 'passed', passed: true, assertions: 5 } ], duration: 45 }); @@ -249,10 +256,10 @@ describe('pos-cli test-run command', () => { assertions: 8, duration: 30, tests: [ - { name: "test1", success: true, assertions: 2, errors: {} }, - { name: "test2", success: true, assertions: 2, errors: {} }, - { name: "test3", success: true, assertions: 2, errors: {} }, - { name: "test4", success: true, assertions: 2, errors: {} } + { name: 'test1', success: true, assertions: 2, errors: {} }, + { name: 'test2', success: true, assertions: 2, errors: {} }, + { name: 'test3', success: true, assertions: 2, errors: {} }, + { name: 'test4', success: true, assertions: 2, errors: {} } ] }; @@ -264,10 +271,10 @@ describe('pos-cli test-run command', () => { failed: 0, assertions: 8, tests: [ - { name: "test1", status: "passed", passed: true, assertions: 2 }, - { name: "test2", status: "passed", passed: true, assertions: 2 }, - { name: "test3", status: "passed", passed: true, assertions: 2 }, - { name: "test4", status: "passed", passed: true, assertions: 2 } + { name: 'test1', status: 'passed', passed: true, assertions: 2 }, + { name: 'test2', status: 'passed', passed: true, assertions: 2 }, + { name: 'test3', status: 'passed', passed: true, assertions: 2 }, + { name: 'test4', status: 'passed', passed: true, assertions: 2 } ], duration: 30 }); @@ -301,7 +308,7 @@ describe('pos-cli test-run command', () => { total_assertions: 0, duration_ms: 10, tests: [ - { name: "test/empty_test", success: true, assertions: 0, errors: {} } + { name: 'test/empty_test', success: true, assertions: 0, errors: {} } ] }; @@ -319,17 +326,17 @@ describe('pos-cli test-run command', () => { duration_ms: 15, tests: [ { - name: "test/multi_error_test", + name: 'test/multi_error_test', success: false, assertions: 3, - errors: ["Error 1", "Error 2", "Error 3"] + errors: ['Error 1', 'Error 2', 'Error 3'] } ] }; const result = transformTestResponse(response); - expect(result.tests[0].errors).toEqual(["Error 1", "Error 2", "Error 3"]); + expect(result.tests[0].errors).toEqual(['Error 1', 'Error 2', 'Error 3']); }); test('handles missing test name gracefully', () => { @@ -392,7 +399,7 @@ describe('pos-cli test-run command', () => { const stream = new TestLogStream({}); const invalidMessage = JSON.stringify({ - path: "test/array_test" + path: 'test/array_test' }); expect(stream.isValidTestSummaryJson(invalidMessage)).toBe(false); @@ -411,11 +418,11 @@ describe('pos-cli test-run command', () => { total_assertions: 16, duration_ms: 26, tests: [ - { name: "test/array_test", success: true, assertions: 2, errors: {} }, - { name: "test/examples/assertions_test", success: true, assertions: 4, errors: {} }, - { name: "test/example_test", success: true, assertions: 5, errors: {} }, - { name: "test/object_test", success: true, assertions: 3, errors: {} }, - { name: "test/string_test", success: true, assertions: 2, errors: {} } + { name: 'test/array_test', success: true, assertions: 2, errors: {} }, + { name: 'test/examples/assertions_test', success: true, assertions: 4, errors: {} }, + { name: 'test/example_test', success: true, assertions: 5, errors: {} }, + { name: 'test/object_test', success: true, assertions: 3, errors: {} }, + { name: 'test/string_test', success: true, assertions: 2, errors: {} } ] }); @@ -489,8 +496,8 @@ describe('pos-cli test-run command', () => { success: true, total_tests: 2, tests: [ - { name: "test1", success: true, assertions: 1, errors: {} }, - { name: "test2", success: true, assertions: 1, errors: {} } + { name: 'test1', success: true, assertions: 1, errors: {} }, + { name: 'test2', success: true, assertions: 1, errors: {} } ] }); @@ -516,8 +523,8 @@ describe('pos-cli test-run command', () => { success: true, total_tests: 2, tests: [ - { name: "test1", success: true, assertions: 1, errors: {} }, - { name: "test2", success: true, assertions: 1, errors: {} } + { name: 'test1', success: true, assertions: 1, errors: {} }, + { name: 'test2', success: true, assertions: 1, errors: {} } ] }); @@ -651,13 +658,13 @@ describe('pos-cli test-run command', () => { test('accepts test name argument', async () => { const { stderr } = await exec(`${cliPath} test run staging my_test_name`, { env, timeout: CLI_TIMEOUT }); - expect(stderr).not.toMatch("error: missing required argument"); + expect(stderr).not.toMatch('error: missing required argument'); }); test('accepts test name with path', async () => { const { stderr } = await exec(`${cliPath} test run staging test/examples/assertions_test`, { env, timeout: CLI_TIMEOUT }); - expect(stderr).not.toMatch("error: missing required argument"); + expect(stderr).not.toMatch('error: missing required argument'); }); test('handles connection refused error', async () => { @@ -732,7 +739,7 @@ describe('pos-cli test-run command', () => { }, 100); }); - const hasModuleNotFoundError = proc.getStderr().includes('Tests module not found') + const hasModuleNotFoundError = proc.getStderr().includes('Tests module not found'); expect(hasModuleNotFoundError).toBe(true); expect(proc.getStderr()).not.toContain('Cannot read properties of undefined'); diff --git a/test/utils/credentials.js b/test/utils/credentials.js index ff4eaa08..2dc35094 100644 --- a/test/utils/credentials.js +++ b/test/utils/credentials.js @@ -52,4 +52,7 @@ const restoreCredentials = (saved) => { applyCredentials(saved); }; -export { exampleCredentials, noCredentials, applyCredentials, hasRealCredentials, requireRealCredentials, saveCredentials, restoreCredentials }; +export { + exampleCredentials, noCredentials, applyCredentials, + hasRealCredentials, requireRealCredentials, saveCredentials, restoreCredentials +}; diff --git a/test/utils/exec.js b/test/utils/exec.js index 3c415ac2..4aaacfc9 100644 --- a/test/utils/exec.js +++ b/test/utils/exec.js @@ -1,7 +1,7 @@ import { exec } from 'child_process'; const execCommand = (cmd, opts, callback) => - new Promise((resolve, reject) => { + new Promise((resolve, _reject) => { const child = exec(cmd, opts, (err, stdout, stderr) => { let code = err ? err.code : 0; return resolve({ stdout, stderr, code, child });