~repos /edge-city

#react#js#ssr

git clone https://pyrossh.dev/repos/edge-city.git

edge-city is a next level meta-framework for react that runs only on edge runtimes


4d1436ea pyrossh

2 years ago
improve cli
cli.js CHANGED
@@ -1,5 +1,6 @@
1
1
  #!/usr/bin/env node
2
- import meow from 'meow';
2
+ import yargs from 'yargs'
3
+ import { hideBin } from 'yargs/helpers'
3
4
  import esbuild from 'esbuild';
4
5
  import resolve from 'esbuild-plugin-resolve';
5
6
  import fs from "fs";
@@ -13,46 +14,9 @@ import bytes from 'bytes';
13
14
  import pc from 'picocolors';
14
15
  import ms from 'ms';
15
16
 
16
- const __dirname = path.dirname(import.meta.url.replace("file://", ""));
17
- const appName = "edge-city";
18
- const version = JSON.parse(fs.readFileSync(path.join(__dirname, "package.json"))).version;
19
- const cli = meow(`
20
- ${appName} v${version}
21
-
22
- Usage
23
- $ ${appName} build cloudflare
24
- $ ${appName} build vercel
25
- `, {
26
- importMeta: import.meta,
27
- autoVersion: true,
28
- });
29
- if (cli.input.length != 2) {
30
- cli.showHelp();
31
- process.exit(0);
32
- }
33
- console.log(`${appName} v${version}`)
34
- console.log(`running with NODE_ENV=${process.env.NODE_ENV}`);
35
-
36
- const ensureDir = (d) => {
37
- if (!fs.existsSync(d)) {
38
- fs.mkdirSync(d, { recursive: true });
39
- }
40
- }
41
-
42
- const cleanDir = (d) => {
43
- if (fs.existsSync(d)) {
44
- fs.rmSync(d, { recursive: true });
45
- }
46
- }
47
-
48
17
  const isProd = process.env.NODE_ENV === "production";
49
18
  const buildDir = path.join(process.cwd(), "build");
50
19
  const staticDir = path.join(buildDir, "static");
51
- const createDirs = () => {
52
- cleanDir(buildDir);
53
- ensureDir(buildDir);
54
- ensureDir(staticDir);
55
- }
56
20
 
57
21
  const recordSize = (buildStart, dest) => {
58
22
  const outLength = fs.statSync(dest).size;
@@ -93,29 +57,6 @@ const bundleJs = async ({ entryPoints, outfile, ...options }, plg) => {
93
57
  return result;
94
58
  }
95
59
 
96
- // const bundleBun = async (r, type) => {
97
- // const buildStart = Date.now();
98
- // const shortName = r.replace(process.cwd(), "").replace("/page.jsx", "");
99
- // const result = await Bun.build({
100
- // entrypoints: [r],
101
- // outdir: `${process.cwd()}/bb/functions/${shortName}`,
102
- // });
103
- // if (!result.success) {
104
- // console.error("Build failed");
105
- // for (const message of result.logs) {
106
- // // Bun will pretty print the message object
107
- // console.error(message);
108
- // }
109
- // }
110
- // for (const o of result.outputs) {
111
- // const outLength = (await o.arrayBuffer()).byteLength;
112
- // const builtTime = ms(Date.now() - buildStart);
113
- // console.log(
114
- // `✓ Bundled ${o.kind} ${o.path.replace(process.cwd() + "/bb", "")} ${pc.cyan(`(${bytes(outLength)})`)} ${pc.gray(`[${builtTime}]`)}`
115
- // );
116
- // }
117
- // }
118
-
119
60
  const buildRouteMap = (routes) => {
120
61
  const buildStart = new Date();
121
62
  const routemap = routes.reduce((acc, r) => {
@@ -277,14 +218,55 @@ const bundleCss = async () => {
277
218
  fs.writeFileSync(`${process.cwd()}/build/static/css/app.css`, result.toString());
278
219
  }
279
220
 
221
+ const ensureDir = (d) => {
222
+ if (!fs.existsSync(d)) {
223
+ fs.mkdirSync(d, { recursive: true });
224
+ }
225
+ }
226
+
227
+ const cleanDir = (d) => {
228
+ if (fs.existsSync(d)) {
229
+ fs.rmSync(d, { recursive: true });
230
+ }
231
+ }
232
+ const createDirs = () => {
233
+ cleanDir(buildDir);
234
+ ensureDir(buildDir);
235
+ ensureDir(staticDir);
236
+ }
237
+
280
- const main = async () => {
238
+ const build = async () => {
281
239
  createDirs();
282
240
  await bundlePages();
283
241
  // await bundleServices();
284
242
  await bundleCss();
285
243
  }
286
244
 
245
+ yargs(hideBin(process.argv))
246
+ .scriptName("edge-city")
247
+ .usage('$0 <cmd> [args]')
248
+ .command('build', 'build the project', (y) => {
249
+ y.option('platform', {
250
+ alias: 'p',
251
+ description: 'The edge platform',
252
+ choices: ['cloudflare', 'vercel'],
253
+ })
254
+ .demandOption("p")
255
+ }, ({ platform }) => {
256
+ build(platform);
257
+ })
258
+ .command('dev', 'run the dev server', (y) => {
259
+ y.option('platform', {
260
+ alias: 'p',
261
+ type: 'string',
262
+ description: 'cloudflare or vercel',
263
+ choices: ['cloudflare', 'vercel']
264
+ })
265
+ }, ({ platform }) => {
266
+ build(platform);
267
+ })
268
+ .demandCommand(1)
287
- main();
269
+ .parse()
288
270
 
289
271
  // const renderJs = async (srcFile) => {
290
272
  // try {
example/package.json CHANGED
@@ -2,10 +2,9 @@
2
2
  "name": "edge-city-example",
3
3
  "type": "module",
4
4
  "scripts": {
5
- "dev": "edge-city build cloudflare",
5
+ "dev": "edge-city dev -p cloudflare",
6
- "dev-server": "wrangler pages dev static --local --live-reload",
7
- "build": "NODE_ENV=production edge-city build cloudflare",
6
+ "build:prod": " edge-city build -p cloudflare",
8
- "test": "bun test",
7
+ "test": "jest",
9
8
  "test-e2e": "playwright test"
10
9
  },
11
10
  "dependencies": {
example/services/todos.service.js CHANGED
@@ -11,7 +11,7 @@ const todos = pgTable('todos', {
11
11
  updatedAt: date('updatedAt'),
12
12
  });
13
13
 
14
- const createSchema = z.object({
14
+ export const createSchema = z.object({
15
15
  text: z.string().nonempty("please enter some text"),
16
16
  completed: z.boolean(),
17
17
  });
example/services/todos.service.test.js CHANGED
@@ -1,4 +1,3 @@
1
- import { test, expect } from "bun:test";
2
1
  import { createSchema } from "./todos.service";
3
2
 
4
3
  test("validate createSchema", () => {
index.test.js ADDED
@@ -0,0 +1,15 @@
1
+ describe('A thing', () => {
2
+ it('should work', () => {
3
+ expect(1).toEqual(1);
4
+ });
5
+
6
+ it('should be ok', () => {
7
+ expect(1).toEqual(1);
8
+ });
9
+
10
+ describe('a nested thing', () => {
11
+ it('should work', () => {
12
+ expect(1).toEqual(1);
13
+ });
14
+ });
15
+ });
package.json CHANGED
@@ -4,7 +4,10 @@
4
4
  "type": "module",
5
5
  "main": "index.js",
6
6
  "engines": {
7
- "node": ">= v20"
7
+ "node": ">= 20"
8
+ },
9
+ "scripts": {
10
+ "test": "NODE_OPTIONS=--experimental-vm-modules jest index.test.js"
8
11
  },
9
12
  "dependencies": {
10
13
  "history": "^5.3.0",
@@ -15,7 +18,7 @@
15
18
  "autoprefixer": "^10.4.14",
16
19
  "bytes": "3.1.2",
17
20
  "esbuild": "0.17.19",
18
- "meow": "12.0.1",
21
+ "yargs": "17.7.2",
19
22
  "mime-types": "2.1.35",
20
23
  "ms": "2.1.3",
21
24
  "picocolors": "1.0.0",
@@ -23,7 +26,8 @@
23
26
  "postcss-custom-media": "^9.1.2",
24
27
  "postcss-nesting": "^11.2.1",
25
28
  "walkdir": "0.4.1",
26
- "esbuild-plugin-resolve": "2.0.0"
29
+ "esbuild-plugin-resolve": "2.0.0",
30
+ "jest": "29.5.0"
27
31
  },
28
32
  "peerDependencies": {
29
33
  "react": "*",
@@ -34,5 +38,8 @@
34
38
  },
35
39
  "bin": {
36
40
  "edge-city": "cli.js"
41
+ },
42
+ "jest": {
43
+ "verbose": true
37
44
  }
38
45
  }
pnpm-lock.yaml CHANGED
@@ -41,9 +41,9 @@ importers:
41
41
  esbuild-plugin-resolve:
42
42
  specifier: 2.0.0
43
43
  version: 2.0.0
44
- meow:
44
+ jest:
45
- specifier: 12.0.1
45
+ specifier: 29.5.0
46
- version: 12.0.1
46
+ version: 29.5.0
47
47
  mime-types:
48
48
  specifier: 2.1.35
49
49
  version: 2.1.35
@@ -65,6 +65,9 @@ importers:
65
65
  walkdir:
66
66
  specifier: 0.4.1
67
67
  version: 0.4.1
68
+ yargs:
69
+ specifier: 17.7.2
70
+ version: 17.7.2
68
71
 
69
72
  example:
70
73
  dependencies:
@@ -119,7 +122,7 @@ importers:
119
122
  version: 8.35.0
120
123
  eslint-config-react-app:
121
124
  specifier: ^7.0.1
122
- version: 7.0.1(@babel/plugin-syntax-flow@7.21.4)(@babel/plugin-transform-react-jsx@7.21.5)(eslint@8.35.0)(typescript@5.0.4)
125
+ version: 7.0.1(@babel/plugin-syntax-flow@7.21.4)(@babel/plugin-transform-react-jsx@7.21.5)(eslint@8.35.0)(jest@29.5.0)(typescript@5.0.4)
123
126
 
124
127
  packages:
125
128
 
@@ -664,6 +667,15 @@ packages:
664
667
  '@babel/helper-plugin-utils': 7.21.5
665
668
  dev: true
666
669
 
670
+ /@babel/plugin-syntax-bigint@7.8.3(@babel/core@7.21.8):
671
+ resolution: {integrity: sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==}
672
+ peerDependencies:
673
+ '@babel/core': ^7.0.0-0
674
+ dependencies:
675
+ '@babel/core': 7.21.8
676
+ '@babel/helper-plugin-utils': 7.21.5
677
+ dev: true
678
+
667
679
  /@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.21.8):
668
680
  resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==}
669
681
  peerDependencies:
@@ -1469,6 +1481,10 @@ packages:
1469
1481
  to-fast-properties: 2.0.0
1470
1482
  dev: true
1471
1483
 
1484
+ /@bcoe/v8-coverage@0.2.3:
1485
+ resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==}
1486
+ dev: true
1487
+
1472
1488
  /@csstools/cascade-layer-name-parser@1.0.2(@csstools/css-parser-algorithms@2.1.1)(@csstools/css-tokenizer@2.1.1):
1473
1489
  resolution: {integrity: sha512-xm7Mgwej/wBfLoK0K5LfntmPJzoULayl1XZY9JYgQgT29JiqNw++sLnx95u5y9zCihblzkyaRYJrsRMhIBzRdg==}
1474
1490
  engines: {node: ^14 || ^16 || >=18}
@@ -1828,6 +1844,235 @@ packages:
1828
1844
  '@swc/helpers': 0.4.14
1829
1845
  dev: false
1830
1846
 
1847
+ /@istanbuljs/load-nyc-config@1.1.0:
1848
+ resolution: {integrity: sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==}
1849
+ engines: {node: '>=8'}
1850
+ dependencies:
1851
+ camelcase: 5.3.1
1852
+ find-up: 4.1.0
1853
+ get-package-type: 0.1.0
1854
+ js-yaml: 3.14.1
1855
+ resolve-from: 5.0.0
1856
+ dev: true
1857
+
1858
+ /@istanbuljs/schema@0.1.3:
1859
+ resolution: {integrity: sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==}
1860
+ engines: {node: '>=8'}
1861
+ dev: true
1862
+
1863
+ /@jest/console@29.5.0:
1864
+ resolution: {integrity: sha512-NEpkObxPwyw/XxZVLPmAGKE89IQRp4puc6IQRPru6JKd1M3fW9v1xM1AnzIJE65hbCkzQAdnL8P47e9hzhiYLQ==}
1865
+ engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
1866
+ dependencies:
1867
+ '@jest/types': 29.5.0
1868
+ '@types/node': 20.2.1
1869
+ chalk: 4.1.2
1870
+ jest-message-util: 29.5.0
1871
+ jest-util: 29.5.0
1872
+ slash: 3.0.0
1873
+ dev: true
1874
+
1875
+ /@jest/core@29.5.0:
1876
+ resolution: {integrity: sha512-28UzQc7ulUrOQw1IsN/kv1QES3q2kkbl/wGslyhAclqZ/8cMdB5M68BffkIdSJgKBUt50d3hbwJ92XESlE7LiQ==}
1877
+ engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
1878
+ peerDependencies:
1879
+ node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0
1880
+ peerDependenciesMeta:
1881
+ node-notifier:
1882
+ optional: true
1883
+ dependencies:
1884
+ '@jest/console': 29.5.0
1885
+ '@jest/reporters': 29.5.0
1886
+ '@jest/test-result': 29.5.0
1887
+ '@jest/transform': 29.5.0
1888
+ '@jest/types': 29.5.0
1889
+ '@types/node': 20.2.1
1890
+ ansi-escapes: 4.3.2
1891
+ chalk: 4.1.2
1892
+ ci-info: 3.8.0
1893
+ exit: 0.1.2
1894
+ graceful-fs: 4.2.11
1895
+ jest-changed-files: 29.5.0
1896
+ jest-config: 29.5.0(@types/node@20.2.1)
1897
+ jest-haste-map: 29.5.0
1898
+ jest-message-util: 29.5.0
1899
+ jest-regex-util: 29.4.3
1900
+ jest-resolve: 29.5.0
1901
+ jest-resolve-dependencies: 29.5.0
1902
+ jest-runner: 29.5.0
1903
+ jest-runtime: 29.5.0
1904
+ jest-snapshot: 29.5.0
1905
+ jest-util: 29.5.0
1906
+ jest-validate: 29.5.0
1907
+ jest-watcher: 29.5.0
1908
+ micromatch: 4.0.5
1909
+ pretty-format: 29.5.0
1910
+ slash: 3.0.0
1911
+ strip-ansi: 6.0.1
1912
+ transitivePeerDependencies:
1913
+ - supports-color
1914
+ - ts-node
1915
+ dev: true
1916
+
1917
+ /@jest/environment@29.5.0:
1918
+ resolution: {integrity: sha512-5FXw2+wD29YU1d4I2htpRX7jYnAyTRjP2CsXQdo9SAM8g3ifxWPSV0HnClSn71xwctr0U3oZIIH+dtbfmnbXVQ==}
1919
+ engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
1920
+ dependencies:
1921
+ '@jest/fake-timers': 29.5.0
1922
+ '@jest/types': 29.5.0
1923
+ '@types/node': 20.2.1
1924
+ jest-mock: 29.5.0
1925
+ dev: true
1926
+
1927
+ /@jest/expect-utils@29.5.0:
1928
+ resolution: {integrity: sha512-fmKzsidoXQT2KwnrwE0SQq3uj8Z763vzR8LnLBwC2qYWEFpjX8daRsk6rHUM1QvNlEW/UJXNXm59ztmJJWs2Mg==}
1929
+ engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
1930
+ dependencies:
1931
+ jest-get-type: 29.4.3
1932
+ dev: true
1933
+
1934
+ /@jest/expect@29.5.0:
1935
+ resolution: {integrity: sha512-PueDR2HGihN3ciUNGr4uelropW7rqUfTiOn+8u0leg/42UhblPxHkfoh0Ruu3I9Y1962P3u2DY4+h7GVTSVU6g==}
1936
+ engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
1937
+ dependencies:
1938
+ expect: 29.5.0
1939
+ jest-snapshot: 29.5.0
1940
+ transitivePeerDependencies:
1941
+ - supports-color
1942
+ dev: true
1943
+
1944
+ /@jest/fake-timers@29.5.0:
1945
+ resolution: {integrity: sha512-9ARvuAAQcBwDAqOnglWq2zwNIRUDtk/SCkp/ToGEhFv5r86K21l+VEs0qNTaXtyiY0lEePl3kylijSYJQqdbDg==}
1946
+ engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
1947
+ dependencies:
1948
+ '@jest/types': 29.5.0
1949
+ '@sinonjs/fake-timers': 10.2.0
1950
+ '@types/node': 20.2.1
1951
+ jest-message-util: 29.5.0
1952
+ jest-mock: 29.5.0
1953
+ jest-util: 29.5.0
1954
+ dev: true
1955
+
1956
+ /@jest/globals@29.5.0:
1957
+ resolution: {integrity: sha512-S02y0qMWGihdzNbUiqSAiKSpSozSuHX5UYc7QbnHP+D9Lyw8DgGGCinrN9uSuHPeKgSSzvPom2q1nAtBvUsvPQ==}
1958
+ engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
1959
+ dependencies:
1960
+ '@jest/environment': 29.5.0
1961
+ '@jest/expect': 29.5.0
1962
+ '@jest/types': 29.5.0
1963
+ jest-mock: 29.5.0
1964
+ transitivePeerDependencies:
1965
+ - supports-color
1966
+ dev: true
1967
+
1968
+ /@jest/reporters@29.5.0:
1969
+ resolution: {integrity: sha512-D05STXqj/M8bP9hQNSICtPqz97u7ffGzZu+9XLucXhkOFBqKcXe04JLZOgIekOxdb73MAoBUFnqvf7MCpKk5OA==}
1970
+ engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
1971
+ peerDependencies:
1972
+ node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0
1973
+ peerDependenciesMeta:
1974
+ node-notifier:
1975
+ optional: true
1976
+ dependencies:
1977
+ '@bcoe/v8-coverage': 0.2.3
1978
+ '@jest/console': 29.5.0
1979
+ '@jest/test-result': 29.5.0
1980
+ '@jest/transform': 29.5.0
1981
+ '@jest/types': 29.5.0
1982
+ '@jridgewell/trace-mapping': 0.3.18
1983
+ '@types/node': 20.2.1
1984
+ chalk: 4.1.2
1985
+ collect-v8-coverage: 1.0.1
1986
+ exit: 0.1.2
1987
+ glob: 7.2.3
1988
+ graceful-fs: 4.2.11
1989
+ istanbul-lib-coverage: 3.2.0
1990
+ istanbul-lib-instrument: 5.2.1
1991
+ istanbul-lib-report: 3.0.0
1992
+ istanbul-lib-source-maps: 4.0.1
1993
+ istanbul-reports: 3.1.5
1994
+ jest-message-util: 29.5.0
1995
+ jest-util: 29.5.0
1996
+ jest-worker: 29.5.0
1997
+ slash: 3.0.0
1998
+ string-length: 4.0.2
1999
+ strip-ansi: 6.0.1
2000
+ v8-to-istanbul: 9.1.0
2001
+ transitivePeerDependencies:
2002
+ - supports-color
2003
+ dev: true
2004
+
2005
+ /@jest/schemas@29.4.3:
2006
+ resolution: {integrity: sha512-VLYKXQmtmuEz6IxJsrZwzG9NvtkQsWNnWMsKxqWNu3+CnfzJQhp0WDDKWLVV9hLKr0l3SLLFRqcYHjhtyuDVxg==}
2007
+ engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
2008
+ dependencies:
2009
+ '@sinclair/typebox': 0.25.24
2010
+ dev: true
2011
+
2012
+ /@jest/source-map@29.4.3:
2013
+ resolution: {integrity: sha512-qyt/mb6rLyd9j1jUts4EQncvS6Yy3PM9HghnNv86QBlV+zdL2inCdK1tuVlL+J+lpiw2BI67qXOrX3UurBqQ1w==}
2014
+ engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
2015
+ dependencies:
2016
+ '@jridgewell/trace-mapping': 0.3.18
2017
+ callsites: 3.1.0
2018
+ graceful-fs: 4.2.11
2019
+ dev: true
2020
+
2021
+ /@jest/test-result@29.5.0:
2022
+ resolution: {integrity: sha512-fGl4rfitnbfLsrfx1uUpDEESS7zM8JdgZgOCQuxQvL1Sn/I6ijeAVQWGfXI9zb1i9Mzo495cIpVZhA0yr60PkQ==}
2023
+ engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
2024
+ dependencies:
2025
+ '@jest/console': 29.5.0
2026
+ '@jest/types': 29.5.0
2027
+ '@types/istanbul-lib-coverage': 2.0.4
2028
+ collect-v8-coverage: 1.0.1
2029
+ dev: true
2030
+
2031
+ /@jest/test-sequencer@29.5.0:
2032
+ resolution: {integrity: sha512-yPafQEcKjkSfDXyvtgiV4pevSeyuA6MQr6ZIdVkWJly9vkqjnFfcfhRQqpD5whjoU8EORki752xQmjaqoFjzMQ==}
2033
+ engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
2034
+ dependencies:
2035
+ '@jest/test-result': 29.5.0
2036
+ graceful-fs: 4.2.11
2037
+ jest-haste-map: 29.5.0
2038
+ slash: 3.0.0
2039
+ dev: true
2040
+
2041
+ /@jest/transform@29.5.0:
2042
+ resolution: {integrity: sha512-8vbeZWqLJOvHaDfeMuoHITGKSz5qWc9u04lnWrQE3VyuSw604PzQM824ZeX9XSjUCeDiE3GuxZe5UKa8J61NQw==}
2043
+ engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
2044
+ dependencies:
2045
+ '@babel/core': 7.21.8
2046
+ '@jest/types': 29.5.0
2047
+ '@jridgewell/trace-mapping': 0.3.18
2048
+ babel-plugin-istanbul: 6.1.1
2049
+ chalk: 4.1.2
2050
+ convert-source-map: 2.0.0
2051
+ fast-json-stable-stringify: 2.1.0
2052
+ graceful-fs: 4.2.11
2053
+ jest-haste-map: 29.5.0
2054
+ jest-regex-util: 29.4.3
2055
+ jest-util: 29.5.0
2056
+ micromatch: 4.0.5
2057
+ pirates: 4.0.5
2058
+ slash: 3.0.0
2059
+ write-file-atomic: 4.0.2
2060
+ transitivePeerDependencies:
2061
+ - supports-color
2062
+ dev: true
2063
+
2064
+ /@jest/types@29.5.0:
2065
+ resolution: {integrity: sha512-qbu7kN6czmVRc3xWFQcAN03RAUamgppVUdXrvl1Wr3jlNF93o9mJbGcDWrwGB6ht44u7efB1qCFgVQmca24Uog==}
2066
+ engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
2067
+ dependencies:
2068
+ '@jest/schemas': 29.4.3
2069
+ '@types/istanbul-lib-coverage': 2.0.4
2070
+ '@types/istanbul-reports': 3.0.1
2071
+ '@types/node': 20.2.1
2072
+ '@types/yargs': 17.0.24
2073
+ chalk: 4.1.2
2074
+ dev: true
2075
+
1831
2076
  /@jridgewell/gen-mapping@0.3.3:
1832
2077
  resolution: {integrity: sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==}
1833
2078
  engines: {node: '>=6.0.0'}
@@ -3108,12 +3353,79 @@ packages:
3108
3353
  resolution: {integrity: sha512-sXo/qW2/pAcmT43VoRKOJbDOfV3cYpq3szSVfIThQXNt+E4DfKj361vaAt3c88U5tPUxzEswam7GW48PJqtKAg==}
3109
3354
  dev: true
3110
3355
 
3356
+ /@sinclair/typebox@0.25.24:
3357
+ resolution: {integrity: sha512-XJfwUVUKDHF5ugKwIcxEgc9k8b7HbznCp6eUfWgu710hMPNIO4aw4/zB5RogDQz8nd6gyCDpU9O/m6qYEWY6yQ==}
3358
+ dev: true
3359
+
3360
+ /@sinonjs/commons@3.0.0:
3361
+ resolution: {integrity: sha512-jXBtWAF4vmdNmZgD5FoKsVLv3rPgDnLgPbU84LIJ3otV44vJlDRokVng5v8NFJdCf/da9legHcKaRuZs4L7faA==}
3362
+ dependencies:
3363
+ type-detect: 4.0.8
3364
+ dev: true
3365
+
3366
+ /@sinonjs/fake-timers@10.2.0:
3367
+ resolution: {integrity: sha512-OPwQlEdg40HAj5KNF8WW6q2KG4Z+cBCZb3m4ninfTZKaBmbIJodviQsDBoYMPHkOyJJMHnOJo5j2+LKDOhOACg==}
3368
+ dependencies:
3369
+ '@sinonjs/commons': 3.0.0
3370
+ dev: true
3371
+
3111
3372
  /@swc/helpers@0.4.14:
3112
3373
  resolution: {integrity: sha512-4C7nX/dvpzB7za4Ql9K81xK3HPxCpHMgwTZVyf+9JQ6VUbn9jjZVN7/Nkdz/Ugzs2CSjqnL/UPXroiVBVHUWUw==}
3113
3374
  dependencies:
3114
3375
  tslib: 2.5.2
3115
3376
  dev: false
3116
3377
 
3378
+ /@types/babel__core@7.20.0:
3379
+ resolution: {integrity: sha512-+n8dL/9GWblDO0iU6eZAwEIJVr5DWigtle+Q6HLOrh/pdbXOhOtqzq8VPPE2zvNJzSKY4vH/z3iT3tn0A3ypiQ==}
3380
+ dependencies:
3381
+ '@babel/parser': 7.21.8
3382
+ '@babel/types': 7.21.5
3383
+ '@types/babel__generator': 7.6.4
3384
+ '@types/babel__template': 7.4.1
3385
+ '@types/babel__traverse': 7.18.5
3386
+ dev: true
3387
+
3388
+ /@types/babel__generator@7.6.4:
3389
+ resolution: {integrity: sha512-tFkciB9j2K755yrTALxD44McOrk+gfpIpvC3sxHjRawj6PfnQxrse4Clq5y/Rq+G3mrBurMax/lG8Qn2t9mSsg==}
3390
+ dependencies:
3391
+ '@babel/types': 7.21.5
3392
+ dev: true
3393
+
3394
+ /@types/babel__template@7.4.1:
3395
+ resolution: {integrity: sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g==}
3396
+ dependencies:
3397
+ '@babel/parser': 7.21.8
3398
+ '@babel/types': 7.21.5
3399
+ dev: true
3400
+
3401
+ /@types/babel__traverse@7.18.5:
3402
+ resolution: {integrity: sha512-enCvTL8m/EHS/zIvJno9nE+ndYPh1/oNFzRYRmtUqJICG2VnCSBzMLW5VN2KCQU91f23tsNKR8v7VJJQMatl7Q==}
3403
+ dependencies:
3404
+ '@babel/types': 7.21.5
3405
+ dev: true
3406
+
3407
+ /@types/graceful-fs@4.1.6:
3408
+ resolution: {integrity: sha512-Sig0SNORX9fdW+bQuTEovKj3uHcUL6LQKbCrrqb1X7J6/ReAbhCXRAhc+SMejhLELFj2QcyuxmUooZ4bt5ReSw==}
3409
+ dependencies:
3410
+ '@types/node': 20.2.1
3411
+ dev: true
3412
+
3413
+ /@types/istanbul-lib-coverage@2.0.4:
3414
+ resolution: {integrity: sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==}
3415
+ dev: true
3416
+
3417
+ /@types/istanbul-lib-report@3.0.0:
3418
+ resolution: {integrity: sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==}
3419
+ dependencies:
3420
+ '@types/istanbul-lib-coverage': 2.0.4
3421
+ dev: true
3422
+
3423
+ /@types/istanbul-reports@3.0.1:
3424
+ resolution: {integrity: sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==}
3425
+ dependencies:
3426
+ '@types/istanbul-lib-report': 3.0.0
3427
+ dev: true
3428
+
3117
3429
  /@types/json-schema@7.0.11:
3118
3430
  resolution: {integrity: sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==}
3119
3431
  dev: true
@@ -3122,26 +3434,36 @@ packages:
3122
3434
  resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==}
3123
3435
  dev: true
3124
3436
 
3125
- /@types/minimist@1.2.2:
3126
- resolution: {integrity: sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ==}
3127
- dev: true
3128
-
3129
3437
  /@types/node@20.2.1:
3130
3438
  resolution: {integrity: sha512-DqJociPbZP1lbZ5SQPk4oag6W7AyaGMO6gSfRwq3PWl4PXTwJpRQJhDq4W0kzrg3w6tJ1SwlvGZ5uKFHY13LIg==}
3131
3439
  dev: true
3132
3440
 
3133
- /@types/normalize-package-data@2.4.1:
3134
- resolution: {integrity: sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==}
3135
- dev: true
3136
-
3137
3441
  /@types/parse-json@4.0.0:
3138
3442
  resolution: {integrity: sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==}
3139
3443
  dev: true
3140
3444
 
3445
+ /@types/prettier@2.7.2:
3446
+ resolution: {integrity: sha512-KufADq8uQqo1pYKVIYzfKbJfBAc0sOeXqGbFaSpv8MRmC/zXgowNZmFcbngndGk922QDmOASEXUZCaY48gs4cg==}
3447
+ dev: true
3448
+
3141
3449
  /@types/semver@7.5.0:
3142
3450
  resolution: {integrity: sha512-G8hZ6XJiHnuhQKR7ZmysCeJWE08o8T0AXtk5darsCaTVsYZhhgUrq53jizaR2FvsoeCwJhlmwTjkXBY5Pn/ZHw==}
3143
3451
  dev: true
3144
3452
 
3453
+ /@types/stack-utils@2.0.1:
3454
+ resolution: {integrity: sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==}
3455
+ dev: true
3456
+
3457
+ /@types/yargs-parser@21.0.0:
3458
+ resolution: {integrity: sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==}
3459
+ dev: true
3460
+
3461
+ /@types/yargs@17.0.24:
3462
+ resolution: {integrity: sha512-6i0aC7jV6QzQB8ne1joVZ0eSFIstHsCrobmOtghM11yGlH0j43FKL2UhWdELkyps0zuf7qVTUVCCR+tgSlyLLw==}
3463
+ dependencies:
3464
+ '@types/yargs-parser': 21.0.0
3465
+ dev: true
3466
+
3145
3467
  /@typescript-eslint/eslint-plugin@5.59.6(@typescript-eslint/parser@5.59.6)(eslint@8.35.0)(typescript@5.0.4):
3146
3468
  resolution: {integrity: sha512-sXtOgJNEuRU5RLwPUb1jxtToZbgvq3M6FPpY4QENxoOggK+UpTxUBpj6tD8+Qh2g46Pi9We87E+eHnUw8YcGsw==}
3147
3469
  engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
@@ -3308,6 +3630,13 @@ packages:
3308
3630
  uri-js: 4.4.1
3309
3631
  dev: true
3310
3632
 
3633
+ /ansi-escapes@4.3.2:
3634
+ resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==}
3635
+ engines: {node: '>=8'}
3636
+ dependencies:
3637
+ type-fest: 0.21.3
3638
+ dev: true
3639
+
3311
3640
  /ansi-regex@5.0.1:
3312
3641
  resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==}
3313
3642
  engines: {node: '>=8'}
@@ -3327,6 +3656,25 @@ packages:
3327
3656
  color-convert: 2.0.1
3328
3657
  dev: true
3329
3658
 
3659
+ /ansi-styles@5.2.0:
3660
+ resolution: {integrity: sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==}
3661
+ engines: {node: '>=10'}
3662
+ dev: true
3663
+
3664
+ /anymatch@3.1.3:
3665
+ resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==}
3666
+ engines: {node: '>= 8'}
3667
+ dependencies:
3668
+ normalize-path: 3.0.0
3669
+ picomatch: 2.3.1
3670
+ dev: true
3671
+
3672
+ /argparse@1.0.10:
3673
+ resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==}
3674
+ dependencies:
3675
+ sprintf-js: 1.0.3
3676
+ dev: true
3677
+
3330
3678
  /argparse@2.0.1:
3331
3679
  resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==}
3332
3680
  dev: true
@@ -3390,11 +3738,6 @@ packages:
3390
3738
  get-intrinsic: 1.2.1
3391
3739
  dev: true
3392
3740
 
3393
- /arrify@1.0.1:
3394
- resolution: {integrity: sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==}
3395
- engines: {node: '>=0.10.0'}
3396
- dev: true
3397
-
3398
3741
  /ast-types-flow@0.0.7:
3399
3742
  resolution: {integrity: sha512-eBvWn1lvIApYMhzQMsu9ciLfkBY499mFZlNqG+/9WR7PVlroQw0vG30cOQQbaKz3sCEc44TAOu2ykzqXSNnwag==}
3400
3743
  dev: true
@@ -3431,6 +3774,47 @@ packages:
3431
3774
  deep-equal: 2.2.1
3432
3775
  dev: true
3433
3776
 
3777
+ /babel-jest@29.5.0(@babel/core@7.21.8):
3778
+ resolution: {integrity: sha512-mA4eCDh5mSo2EcA9xQjVTpmbbNk32Zb3Q3QFQsNhaK56Q+yoXowzFodLux30HRgyOho5rsQ6B0P9QpMkvvnJ0Q==}
3779
+ engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
3780
+ peerDependencies:
3781
+ '@babel/core': ^7.8.0
3782
+ dependencies:
3783
+ '@babel/core': 7.21.8
3784
+ '@jest/transform': 29.5.0
3785
+ '@types/babel__core': 7.20.0
3786
+ babel-plugin-istanbul: 6.1.1
3787
+ babel-preset-jest: 29.5.0(@babel/core@7.21.8)
3788
+ chalk: 4.1.2
3789
+ graceful-fs: 4.2.11
3790
+ slash: 3.0.0
3791
+ transitivePeerDependencies:
3792
+ - supports-color
3793
+ dev: true
3794
+
3795
+ /babel-plugin-istanbul@6.1.1:
3796
+ resolution: {integrity: sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==}
3797
+ engines: {node: '>=8'}
3798
+ dependencies:
3799
+ '@babel/helper-plugin-utils': 7.21.5
3800
+ '@istanbuljs/load-nyc-config': 1.1.0
3801
+ '@istanbuljs/schema': 0.1.3
3802
+ istanbul-lib-instrument: 5.2.1
3803
+ test-exclude: 6.0.0
3804
+ transitivePeerDependencies:
3805
+ - supports-color
3806
+ dev: true
3807
+
3808
+ /babel-plugin-jest-hoist@29.5.0:
3809
+ resolution: {integrity: sha512-zSuuuAlTMT4mzLj2nPnUm6fsE6270vdOfnpbJ+RmruU75UhLFvL0N2NgI7xpeS7NaB6hGqmd5pVpGTDYvi4Q3w==}
3810
+ engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
3811
+ dependencies:
3812
+ '@babel/template': 7.20.7
3813
+ '@babel/types': 7.21.5
3814
+ '@types/babel__core': 7.20.0
3815
+ '@types/babel__traverse': 7.18.5
3816
+ dev: true
3817
+
3434
3818
  /babel-plugin-macros@3.1.0:
3435
3819
  resolution: {integrity: sha512-Cg7TFGpIr01vOQNODXOOaGz2NpCU5gl8x1qJFbb6hbZxR7XrcE2vtbAsTAbJ7/xwJtUuJEw8K8Zr/AE0LHlesg==}
3436
3820
  engines: {node: '>=10', npm: '>=6'}
@@ -3480,6 +3864,37 @@ packages:
3480
3864
  resolution: {integrity: sha512-eqj0hVcJUR57/Ug2zE1Yswsw4LhuqqHhD+8v120T1cl3kjg76QwtyBrdIk4WVwK+lAhBJVYCd/v+4nc4y+8JsA==}
3481
3865
  dev: true
3482
3866
 
3867
+ /babel-preset-current-node-syntax@1.0.1(@babel/core@7.21.8):
3868
+ resolution: {integrity: sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==}
3869
+ peerDependencies:
3870
+ '@babel/core': ^7.0.0
3871
+ dependencies:
3872
+ '@babel/core': 7.21.8
3873
+ '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.21.8)
3874
+ '@babel/plugin-syntax-bigint': 7.8.3(@babel/core@7.21.8)
3875
+ '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.21.8)
3876
+ '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.21.8)
3877
+ '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.21.8)
3878
+ '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.21.8)
3879
+ '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.21.8)
3880
+ '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.21.8)
3881
+ '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.21.8)
3882
+ '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.21.8)
3883
+ '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.21.8)
3884
+ '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.21.8)
3885
+ dev: true
3886
+
3887
+ /babel-preset-jest@29.5.0(@babel/core@7.21.8):
3888
+ resolution: {integrity: sha512-JOMloxOqdiBSxMAzjRaH023/vvcaSaec49zvg+2LmNsktC7ei39LTJGw02J+9uUtTZUq6xbLyJ4dxe9sSmIuAg==}
3889
+ engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
3890
+ peerDependencies:
3891
+ '@babel/core': ^7.0.0
3892
+ dependencies:
3893
+ '@babel/core': 7.21.8
3894
+ babel-plugin-jest-hoist: 29.5.0
3895
+ babel-preset-current-node-syntax: 1.0.1(@babel/core@7.21.8)
3896
+ dev: true
3897
+
3483
3898
  /babel-preset-react-app@10.0.1:
3484
3899
  resolution: {integrity: sha512-b0D9IZ1WhhCWkrTXyFuIIgqGzSkRIH5D5AmB0bXbzYAB1OBAwHcUeyWW2LorutLWF5btNo/N7r/cIdmvvKJlYg==}
3485
3900
  dependencies:
@@ -3533,6 +3948,16 @@ packages:
3533
3948
  update-browserslist-db: 1.0.11(browserslist@4.21.5)
3534
3949
  dev: true
3535
3950
 
3951
+ /bser@2.1.1:
3952
+ resolution: {integrity: sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==}
3953
+ dependencies:
3954
+ node-int64: 0.4.0
3955
+ dev: true
3956
+
3957
+ /buffer-from@1.1.2:
3958
+ resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==}
3959
+ dev: true
3960
+
3536
3961
  /bytes@3.1.2:
3537
3962
  resolution: {integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==}
3538
3963
  engines: {node: '>= 0.8'}
@@ -3550,19 +3975,14 @@ packages:
3550
3975
  engines: {node: '>=6'}
3551
3976
  dev: true
3552
3977
 
3553
- /camelcase-keys@8.0.2:
3978
+ /camelcase@5.3.1:
3554
- resolution: {integrity: sha512-qMKdlOfsjlezMqxkUGGMaWWs17i2HoL15tM+wtx8ld4nLrUwU58TFdvyGOz/piNP842KeO8yXvggVQSdQ828NA==}
3979
+ resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==}
3555
- engines: {node: '>=14.16'}
3980
+ engines: {node: '>=6'}
3556
- dependencies:
3557
- camelcase: 7.0.1
3558
- map-obj: 4.3.0
3559
- quick-lru: 6.1.1
3560
- type-fest: 2.19.0
3561
3981
  dev: true
3562
3982
 
3563
- /camelcase@7.0.1:
3983
+ /camelcase@6.3.0:
3564
- resolution: {integrity: sha512-xlx1yCK2Oc1APsPXDL2LdlNP6+uu8OCDdhOBSVT279M/S+y75O30C2VuD8T2ogdePBBl7PfPF4504tnLgX3zfw==}
3984
+ resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==}
3565
- engines: {node: '>=14.16'}
3985
+ engines: {node: '>=10'}
3566
3986
  dev: true
3567
3987
 
3568
3988
  /caniuse-lite@1.0.30001488:
@@ -3586,11 +4006,43 @@ packages:
3586
4006
  supports-color: 7.2.0
3587
4007
  dev: true
3588
4008
 
4009
+ /char-regex@1.0.2:
4010
+ resolution: {integrity: sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==}
4011
+ engines: {node: '>=10'}
4012
+ dev: true
4013
+
4014
+ /ci-info@3.8.0:
4015
+ resolution: {integrity: sha512-eXTggHWSooYhq49F2opQhuHWgzucfF2YgODK4e1566GQs5BIfP30B0oenwBJHfWxAs2fyPB1s7Mg949zLf61Yw==}
4016
+ engines: {node: '>=8'}
4017
+ dev: true
4018
+
4019
+ /cjs-module-lexer@1.2.2:
4020
+ resolution: {integrity: sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA==}
4021
+ dev: true
4022
+
4023
+ /cliui@8.0.1:
4024
+ resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==}
4025
+ engines: {node: '>=12'}
4026
+ dependencies:
4027
+ string-width: 4.2.3
4028
+ strip-ansi: 6.0.1
4029
+ wrap-ansi: 7.0.0
4030
+ dev: true
4031
+
3589
4032
  /clsx@1.2.1:
3590
4033
  resolution: {integrity: sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg==}
3591
4034
  engines: {node: '>=6'}
3592
4035
  dev: false
3593
4036
 
4037
+ /co@4.6.0:
4038
+ resolution: {integrity: sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==}
4039
+ engines: {iojs: '>= 1.0.0', node: '>= 0.12.0'}
4040
+ dev: true
4041
+
4042
+ /collect-v8-coverage@1.0.1:
4043
+ resolution: {integrity: sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg==}
4044
+ dev: true
4045
+
3594
4046
  /color-convert@1.9.3:
3595
4047
  resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==}
3596
4048
  dependencies:
@@ -3624,6 +4076,10 @@ packages:
3624
4076
  resolution: {integrity: sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==}
3625
4077
  dev: true
3626
4078
 
4079
+ /convert-source-map@2.0.0:
4080
+ resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==}
4081
+ dev: true
4082
+
3627
4083
  /core-js-compat@3.30.2:
3628
4084
  resolution: {integrity: sha512-nriW1nuJjUgvkEjIot1Spwakz52V9YkYHZAQG6A1eCgC8AA1p0zngrQEP9R0+V6hji5XilWKG1Bd0YRppmGimA==}
3629
4085
  dependencies:
@@ -3683,19 +4139,8 @@ packages:
3683
4139
  ms: 2.1.2
3684
4140
  dev: true
3685
4141
 
3686
- /decamelize-keys@2.0.1:
3687
- resolution: {integrity: sha512-nrNeSCtU2gV3Apcmn/EZ+aR20zKDuNDStV67jPiupokD3sOAFeMzslLMCFdKv1sPqzwoe5ZUhsSW9IAVgKSL/Q==}
3688
- engines: {node: '>=14.16'}
3689
- dependencies:
3690
- decamelize: 6.0.0
3691
- map-obj: 4.3.0
3692
- quick-lru: 6.1.1
3693
- type-fest: 3.11.0
3694
- dev: true
3695
-
3696
- /decamelize@6.0.0:
4142
+ /dedent@0.7.0:
3697
- resolution: {integrity: sha512-Fv96DCsdOgB6mdGl67MT5JaTNKRzrzill5OH5s8bjYJXVlcXyPYGyPsUkWyGV5p1TXI5esYIYMMeDJL0hEIwaA==}
4143
+ resolution: {integrity: sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==}
3698
- engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
3699
4144
  dev: true
3700
4145
 
3701
4146
  /deep-equal@2.2.1:
@@ -3725,6 +4170,11 @@ packages:
3725
4170
  resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==}
3726
4171
  dev: true
3727
4172
 
4173
+ /deepmerge@4.3.1:
4174
+ resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==}
4175
+ engines: {node: '>=0.10.0'}
4176
+ dev: true
4177
+
3728
4178
  /define-properties@1.2.0:
3729
4179
  resolution: {integrity: sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA==}
3730
4180
  engines: {node: '>= 0.4'}
@@ -3733,6 +4183,16 @@ packages:
3733
4183
  object-keys: 1.1.1
3734
4184
  dev: true
3735
4185
 
4186
+ /detect-newline@3.1.0:
4187
+ resolution: {integrity: sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==}
4188
+ engines: {node: '>=8'}
4189
+ dev: true
4190
+
4191
+ /diff-sequences@29.4.3:
4192
+ resolution: {integrity: sha512-ofrBgwpPhCD85kMKtE9RYFFq6OC1A89oW2vvgWZNCwxrUpRUILopY7lsYyMDSjc8g6U6aiO0Qubg6r4Wgt5ZnA==}
4193
+ engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
4194
+ dev: true
4195
+
3736
4196
  /dir-glob@3.0.1:
3737
4197
  resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==}
3738
4198
  engines: {node: '>=8'}
@@ -3820,8 +4280,17 @@ packages:
3820
4280
  resolution: {integrity: sha512-gWYvJSkohOiBE6ecVYXkrDgNaUjo47QEKK0kQzmWyhkH+yoYiG44bwuicTGNSIQRG3WDMsWVZJLRnJnLNkbWvA==}
3821
4281
  dev: true
3822
4282
 
4283
+ /emittery@0.13.1:
4284
+ resolution: {integrity: sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==}
4285
+ engines: {node: '>=12'}
4286
+ dev: true
4287
+
4288
+ /emoji-regex@8.0.0:
4289
+ resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==}
4290
+ dev: true
4291
+
3823
- /emoji-regex@9.2.2:
4292
+ /emoji-regex@9.2.2:
3824
- resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==}
4293
+ resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==}
3825
4294
  dev: true
3826
4295
 
3827
4296
  /error-ex@1.3.2:
@@ -3952,12 +4421,17 @@ packages:
3952
4421
  engines: {node: '>=0.8.0'}
3953
4422
  dev: true
3954
4423
 
4424
+ /escape-string-regexp@2.0.0:
4425
+ resolution: {integrity: sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==}
4426
+ engines: {node: '>=8'}
4427
+ dev: true
4428
+
3955
4429
  /escape-string-regexp@4.0.0:
3956
4430
  resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==}
3957
4431
  engines: {node: '>=10'}
3958
4432
  dev: true
3959
4433
 
3960
- /eslint-config-react-app@7.0.1(@babel/plugin-syntax-flow@7.21.4)(@babel/plugin-transform-react-jsx@7.21.5)(eslint@8.35.0)(typescript@5.0.4):
4434
+ /eslint-config-react-app@7.0.1(@babel/plugin-syntax-flow@7.21.4)(@babel/plugin-transform-react-jsx@7.21.5)(eslint@8.35.0)(jest@29.5.0)(typescript@5.0.4):
3961
4435
  resolution: {integrity: sha512-K6rNzvkIeHaTd8m/QEh1Zko0KI7BACWkkneSs6s9cKZC/J27X3eZR6Upt1jkmZ/4FK+XUOPPxMEN7+lbUXfSlA==}
3962
4436
  engines: {node: '>=14.0.0'}
3963
4437
  peerDependencies:
@@ -3977,7 +4451,7 @@ packages:
3977
4451
  eslint: 8.35.0
3978
4452
  eslint-plugin-flowtype: 8.0.3(@babel/plugin-syntax-flow@7.21.4)(@babel/plugin-transform-react-jsx@7.21.5)(eslint@8.35.0)
3979
4453
  eslint-plugin-import: 2.27.5(@typescript-eslint/parser@5.59.6)(eslint@8.35.0)
3980
- eslint-plugin-jest: 25.7.0(@typescript-eslint/eslint-plugin@5.59.6)(eslint@8.35.0)(typescript@5.0.4)
4454
+ eslint-plugin-jest: 25.7.0(@typescript-eslint/eslint-plugin@5.59.6)(eslint@8.35.0)(jest@29.5.0)(typescript@5.0.4)
3981
4455
  eslint-plugin-jsx-a11y: 6.7.1(eslint@8.35.0)
3982
4456
  eslint-plugin-react: 7.32.2(eslint@8.35.0)
3983
4457
  eslint-plugin-react-hooks: 4.6.0(eslint@8.35.0)
@@ -4079,7 +4553,7 @@ packages:
4079
4553
  - supports-color
4080
4554
  dev: true
4081
4555
 
4082
- /eslint-plugin-jest@25.7.0(@typescript-eslint/eslint-plugin@5.59.6)(eslint@8.35.0)(typescript@5.0.4):
4556
+ /eslint-plugin-jest@25.7.0(@typescript-eslint/eslint-plugin@5.59.6)(eslint@8.35.0)(jest@29.5.0)(typescript@5.0.4):
4083
4557
  resolution: {integrity: sha512-PWLUEXeeF7C9QGKqvdSbzLOiLTx+bno7/HC9eefePfEb257QFHg7ye3dh80AZVkaa/RQsBB1Q/ORQvg2X7F0NQ==}
4084
4558
  engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
4085
4559
  peerDependencies:
@@ -4095,6 +4569,7 @@ packages:
4095
4569
  '@typescript-eslint/eslint-plugin': 5.59.6(@typescript-eslint/parser@5.59.6)(eslint@8.35.0)(typescript@5.0.4)
4096
4570
  '@typescript-eslint/experimental-utils': 5.59.6(eslint@8.35.0)(typescript@5.0.4)
4097
4571
  eslint: 8.35.0
4572
+ jest: 29.5.0
4098
4573
  transitivePeerDependencies:
4099
4574
  - supports-color
4100
4575
  - typescript
@@ -4265,6 +4740,12 @@ packages:
4265
4740
  eslint-visitor-keys: 3.4.1
4266
4741
  dev: true
4267
4742
 
4743
+ /esprima@4.0.1:
4744
+ resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==}
4745
+ engines: {node: '>=4'}
4746
+ hasBin: true
4747
+ dev: true
4748
+
4268
4749
  /esquery@1.5.0:
4269
4750
  resolution: {integrity: sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==}
4270
4751
  engines: {node: '>=0.10'}
@@ -4294,6 +4775,37 @@ packages:
4294
4775
  engines: {node: '>=0.10.0'}
4295
4776
  dev: true
4296
4777
 
4778
+ /execa@5.1.1:
4779
+ resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==}
4780
+ engines: {node: '>=10'}
4781
+ dependencies:
4782
+ cross-spawn: 7.0.3
4783
+ get-stream: 6.0.1
4784
+ human-signals: 2.1.0
4785
+ is-stream: 2.0.1
4786
+ merge-stream: 2.0.0
4787
+ npm-run-path: 4.0.1
4788
+ onetime: 5.1.2
4789
+ signal-exit: 3.0.7
4790
+ strip-final-newline: 2.0.0
4791
+ dev: true
4792
+
4793
+ /exit@0.1.2:
4794
+ resolution: {integrity: sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==}
4795
+ engines: {node: '>= 0.8.0'}
4796
+ dev: true
4797
+
4798
+ /expect@29.5.0:
4799
+ resolution: {integrity: sha512-yM7xqUrCO2JdpFo4XpM82t+PJBFybdqoQuJLDGeDX2ij8NZzqRHyu3Hp188/JX7SWqud+7t4MUdvcgGBICMHZg==}
4800
+ engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
4801
+ dependencies:
4802
+ '@jest/expect-utils': 29.5.0
4803
+ jest-get-type: 29.4.3
4804
+ jest-matcher-utils: 29.5.0
4805
+ jest-message-util: 29.5.0
4806
+ jest-util: 29.5.0
4807
+ dev: true
4808
+
4297
4809
  /fast-deep-equal@3.1.3:
4298
4810
  resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==}
4299
4811
  dev: true
@@ -4323,6 +4835,12 @@ packages:
4323
4835
  reusify: 1.0.4
4324
4836
  dev: true
4325
4837
 
4838
+ /fb-watchman@2.0.2:
4839
+ resolution: {integrity: sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==}
4840
+ dependencies:
4841
+ bser: 2.1.1
4842
+ dev: true
4843
+
4326
4844
  /file-entry-cache@6.0.1:
4327
4845
  resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==}
4328
4846
  engines: {node: ^10.12.0 || >=12.0.0}
@@ -4337,6 +4855,14 @@ packages:
4337
4855
  to-regex-range: 5.0.1
4338
4856
  dev: true
4339
4857
 
4858
+ /find-up@4.1.0:
4859
+ resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==}
4860
+ engines: {node: '>=8'}
4861
+ dependencies:
4862
+ locate-path: 5.0.0
4863
+ path-exists: 4.0.0
4864
+ dev: true
4865
+
4340
4866
  /find-up@5.0.0:
4341
4867
  resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==}
4342
4868
  engines: {node: '>=10'}
@@ -4345,14 +4871,6 @@ packages:
4345
4871
  path-exists: 4.0.0
4346
4872
  dev: true
4347
4873
 
4348
- /find-up@6.3.0:
4349
- resolution: {integrity: sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==}
4350
- engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
4351
- dependencies:
4352
- locate-path: 7.2.0
4353
- path-exists: 5.0.0
4354
- dev: true
4355
-
4356
4874
  /flat-cache@3.0.4:
4357
4875
  resolution: {integrity: sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==}
4358
4876
  engines: {node: ^10.12.0 || >=12.0.0}
@@ -4410,6 +4928,11 @@ packages:
4410
4928
  engines: {node: '>=6.9.0'}
4411
4929
  dev: true
4412
4930
 
4931
+ /get-caller-file@2.0.5:
4932
+ resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==}
4933
+ engines: {node: 6.* || 8.* || >= 10.*}
4934
+ dev: true
4935
+
4413
4936
  /get-intrinsic@1.2.1:
4414
4937
  resolution: {integrity: sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==}
4415
4938
  dependencies:
@@ -4419,6 +4942,16 @@ packages:
4419
4942
  has-symbols: 1.0.3
4420
4943
  dev: true
4421
4944
 
4945
+ /get-package-type@0.1.0:
4946
+ resolution: {integrity: sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==}
4947
+ engines: {node: '>=8.0.0'}
4948
+ dev: true
4949
+
4950
+ /get-stream@6.0.1:
4951
+ resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==}
4952
+ engines: {node: '>=10'}
4953
+ dev: true
4954
+
4422
4955
  /get-symbol-description@1.0.0:
4423
4956
  resolution: {integrity: sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==}
4424
4957
  engines: {node: '>= 0.4'}
@@ -4489,13 +5022,12 @@ packages:
4489
5022
  get-intrinsic: 1.2.1
4490
5023
  dev: true
4491
5024
 
4492
- /grapheme-splitter@1.0.4:
5025
+ /graceful-fs@4.2.11:
4493
- resolution: {integrity: sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==}
5026
+ resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==}
4494
5027
  dev: true
4495
5028
 
4496
- /hard-rejection@2.1.0:
5029
+ /grapheme-splitter@1.0.4:
4497
- resolution: {integrity: sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==}
5030
+ resolution: {integrity: sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==}
4498
- engines: {node: '>=6'}
4499
5031
  dev: true
4500
5032
 
4501
5033
  /has-bigints@1.0.2:
@@ -4548,18 +5080,13 @@ packages:
4548
5080
  '@babel/runtime': 7.21.5
4549
5081
  dev: false
4550
5082
 
4551
- /hosted-git-info@4.1.0:
5083
+ /html-escaper@2.0.2:
4552
- resolution: {integrity: sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==}
5084
+ resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==}
4553
- engines: {node: '>=10'}
4554
- dependencies:
4555
- lru-cache: 6.0.0
4556
5085
  dev: true
4557
5086
 
4558
- /hosted-git-info@6.1.1:
5087
+ /human-signals@2.1.0:
4559
- resolution: {integrity: sha512-r0EI+HBMcXadMrugk0GCQ+6BQV39PiWAZVfq7oIckeGiN7sjRGyQxPdft3nQekFTCQbYxLBH+/axZMeH8UX6+w==}
5088
+ resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==}
4560
- engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
5089
+ engines: {node: '>=10.17.0'}
4561
- dependencies:
4562
- lru-cache: 7.18.3
4563
5090
  dev: true
4564
5091
 
4565
5092
  /ignore@5.2.4:
@@ -4575,16 +5102,20 @@ packages:
4575
5102
  resolve-from: 4.0.0
4576
5103
  dev: true
4577
5104
 
5105
+ /import-local@3.1.0:
5106
+ resolution: {integrity: sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==}
5107
+ engines: {node: '>=8'}
5108
+ hasBin: true
5109
+ dependencies:
5110
+ pkg-dir: 4.2.0
5111
+ resolve-cwd: 3.0.0
5112
+ dev: true
5113
+
4578
5114
  /imurmurhash@0.1.4:
4579
5115
  resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==}
4580
5116
  engines: {node: '>=0.8.19'}
4581
5117
  dev: true
4582
5118
 
4583
- /indent-string@5.0.0:
4584
- resolution: {integrity: sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==}
4585
- engines: {node: '>=12'}
4586
- dev: true
4587
-
4588
5119
  /inflight@1.0.6:
4589
5120
  resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==}
4590
5121
  dependencies:
@@ -4677,6 +5208,16 @@ packages:
4677
5208
  engines: {node: '>=0.10.0'}
4678
5209
  dev: true
4679
5210
 
5211
+ /is-fullwidth-code-point@3.0.0:
5212
+ resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==}
5213
+ engines: {node: '>=8'}
5214
+ dev: true
5215
+
5216
+ /is-generator-fn@2.1.0:
5217
+ resolution: {integrity: sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==}
5218
+ engines: {node: '>=6'}
5219
+ dev: true
5220
+
4680
5221
  /is-glob@4.0.3:
4681
5222
  resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==}
4682
5223
  engines: {node: '>=0.10.0'}
@@ -4710,11 +5251,6 @@ packages:
4710
5251
  engines: {node: '>=8'}
4711
5252
  dev: true
4712
5253
 
4713
- /is-plain-obj@1.1.0:
4714
- resolution: {integrity: sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==}
4715
- engines: {node: '>=0.10.0'}
4716
- dev: true
4717
-
4718
5254
  /is-regex@1.1.4:
4719
5255
  resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==}
4720
5256
  engines: {node: '>= 0.4'}
@@ -4733,6 +5269,11 @@ packages:
4733
5269
  call-bind: 1.0.2
4734
5270
  dev: true
4735
5271
 
5272
+ /is-stream@2.0.1:
5273
+ resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==}
5274
+ engines: {node: '>=8'}
5275
+ dev: true
5276
+
4736
5277
  /is-string@1.0.7:
4737
5278
  resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==}
4738
5279
  engines: {node: '>= 0.4'}
@@ -4788,6 +5329,461 @@ packages:
4788
5329
  resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==}
4789
5330
  dev: true
4790
5331
 
5332
+ /istanbul-lib-coverage@3.2.0:
5333
+ resolution: {integrity: sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==}
5334
+ engines: {node: '>=8'}
5335
+ dev: true
5336
+
5337
+ /istanbul-lib-instrument@5.2.1:
5338
+ resolution: {integrity: sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==}
5339
+ engines: {node: '>=8'}
5340
+ dependencies:
5341
+ '@babel/core': 7.21.8
5342
+ '@babel/parser': 7.21.8
5343
+ '@istanbuljs/schema': 0.1.3
5344
+ istanbul-lib-coverage: 3.2.0
5345
+ semver: 6.3.0
5346
+ transitivePeerDependencies:
5347
+ - supports-color
5348
+ dev: true
5349
+
5350
+ /istanbul-lib-report@3.0.0:
5351
+ resolution: {integrity: sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==}
5352
+ engines: {node: '>=8'}
5353
+ dependencies:
5354
+ istanbul-lib-coverage: 3.2.0
5355
+ make-dir: 3.1.0
5356
+ supports-color: 7.2.0
5357
+ dev: true
5358
+
5359
+ /istanbul-lib-source-maps@4.0.1:
5360
+ resolution: {integrity: sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==}
5361
+ engines: {node: '>=10'}
5362
+ dependencies:
5363
+ debug: 4.3.4
5364
+ istanbul-lib-coverage: 3.2.0
5365
+ source-map: 0.6.1
5366
+ transitivePeerDependencies:
5367
+ - supports-color
5368
+ dev: true
5369
+
5370
+ /istanbul-reports@3.1.5:
5371
+ resolution: {integrity: sha512-nUsEMa9pBt/NOHqbcbeJEgqIlY/K7rVWUX6Lql2orY5e9roQOthbR3vtY4zzf2orPELg80fnxxk9zUyPlgwD1w==}
5372
+ engines: {node: '>=8'}
5373
+ dependencies:
5374
+ html-escaper: 2.0.2
5375
+ istanbul-lib-report: 3.0.0
5376
+ dev: true
5377
+
5378
+ /jest-changed-files@29.5.0:
5379
+ resolution: {integrity: sha512-IFG34IUMUaNBIxjQXF/iu7g6EcdMrGRRxaUSw92I/2g2YC6vCdTltl4nHvt7Ci5nSJwXIkCu8Ka1DKF+X7Z1Ag==}
5380
+ engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
5381
+ dependencies:
5382
+ execa: 5.1.1
5383
+ p-limit: 3.1.0
5384
+ dev: true
5385
+
5386
+ /jest-circus@29.5.0:
5387
+ resolution: {integrity: sha512-gq/ongqeQKAplVxqJmbeUOJJKkW3dDNPY8PjhJ5G0lBRvu0e3EWGxGy5cI4LAGA7gV2UHCtWBI4EMXK8c9nQKA==}
5388
+ engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
5389
+ dependencies:
5390
+ '@jest/environment': 29.5.0
5391
+ '@jest/expect': 29.5.0
5392
+ '@jest/test-result': 29.5.0
5393
+ '@jest/types': 29.5.0
5394
+ '@types/node': 20.2.1
5395
+ chalk: 4.1.2
5396
+ co: 4.6.0
5397
+ dedent: 0.7.0
5398
+ is-generator-fn: 2.1.0
5399
+ jest-each: 29.5.0
5400
+ jest-matcher-utils: 29.5.0
5401
+ jest-message-util: 29.5.0
5402
+ jest-runtime: 29.5.0
5403
+ jest-snapshot: 29.5.0
5404
+ jest-util: 29.5.0
5405
+ p-limit: 3.1.0
5406
+ pretty-format: 29.5.0
5407
+ pure-rand: 6.0.2
5408
+ slash: 3.0.0
5409
+ stack-utils: 2.0.6
5410
+ transitivePeerDependencies:
5411
+ - supports-color
5412
+ dev: true
5413
+
5414
+ /jest-cli@29.5.0:
5415
+ resolution: {integrity: sha512-L1KcP1l4HtfwdxXNFCL5bmUbLQiKrakMUriBEcc1Vfz6gx31ORKdreuWvmQVBit+1ss9NNR3yxjwfwzZNdQXJw==}
5416
+ engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
5417
+ hasBin: true
5418
+ peerDependencies:
5419
+ node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0
5420
+ peerDependenciesMeta:
5421
+ node-notifier:
5422
+ optional: true
5423
+ dependencies:
5424
+ '@jest/core': 29.5.0
5425
+ '@jest/test-result': 29.5.0
5426
+ '@jest/types': 29.5.0
5427
+ chalk: 4.1.2
5428
+ exit: 0.1.2
5429
+ graceful-fs: 4.2.11
5430
+ import-local: 3.1.0
5431
+ jest-config: 29.5.0(@types/node@20.2.1)
5432
+ jest-util: 29.5.0
5433
+ jest-validate: 29.5.0
5434
+ prompts: 2.4.2
5435
+ yargs: 17.7.2
5436
+ transitivePeerDependencies:
5437
+ - '@types/node'
5438
+ - supports-color
5439
+ - ts-node
5440
+ dev: true
5441
+
5442
+ /jest-config@29.5.0(@types/node@20.2.1):
5443
+ resolution: {integrity: sha512-kvDUKBnNJPNBmFFOhDbm59iu1Fii1Q6SxyhXfvylq3UTHbg6o7j/g8k2dZyXWLvfdKB1vAPxNZnMgtKJcmu3kA==}
5444
+ engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
5445
+ peerDependencies:
5446
+ '@types/node': '*'
5447
+ ts-node: '>=9.0.0'
5448
+ peerDependenciesMeta:
5449
+ '@types/node':
5450
+ optional: true
5451
+ ts-node:
5452
+ optional: true
5453
+ dependencies:
5454
+ '@babel/core': 7.21.8
5455
+ '@jest/test-sequencer': 29.5.0
5456
+ '@jest/types': 29.5.0
5457
+ '@types/node': 20.2.1
5458
+ babel-jest: 29.5.0(@babel/core@7.21.8)
5459
+ chalk: 4.1.2
5460
+ ci-info: 3.8.0
5461
+ deepmerge: 4.3.1
5462
+ glob: 7.2.3
5463
+ graceful-fs: 4.2.11
5464
+ jest-circus: 29.5.0
5465
+ jest-environment-node: 29.5.0
5466
+ jest-get-type: 29.4.3
5467
+ jest-regex-util: 29.4.3
5468
+ jest-resolve: 29.5.0
5469
+ jest-runner: 29.5.0
5470
+ jest-util: 29.5.0
5471
+ jest-validate: 29.5.0
5472
+ micromatch: 4.0.5
5473
+ parse-json: 5.2.0
5474
+ pretty-format: 29.5.0
5475
+ slash: 3.0.0
5476
+ strip-json-comments: 3.1.1
5477
+ transitivePeerDependencies:
5478
+ - supports-color
5479
+ dev: true
5480
+
5481
+ /jest-diff@29.5.0:
5482
+ resolution: {integrity: sha512-LtxijLLZBduXnHSniy0WMdaHjmQnt3g5sa16W4p0HqukYTTsyTW3GD1q41TyGl5YFXj/5B2U6dlh5FM1LIMgxw==}
5483
+ engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
5484
+ dependencies:
5485
+ chalk: 4.1.2
5486
+ diff-sequences: 29.4.3
5487
+ jest-get-type: 29.4.3
5488
+ pretty-format: 29.5.0
5489
+ dev: true
5490
+
5491
+ /jest-docblock@29.4.3:
5492
+ resolution: {integrity: sha512-fzdTftThczeSD9nZ3fzA/4KkHtnmllawWrXO69vtI+L9WjEIuXWs4AmyME7lN5hU7dB0sHhuPfcKofRsUb/2Fg==}
5493
+ engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
5494
+ dependencies:
5495
+ detect-newline: 3.1.0
5496
+ dev: true
5497
+
5498
+ /jest-each@29.5.0:
5499
+ resolution: {integrity: sha512-HM5kIJ1BTnVt+DQZ2ALp3rzXEl+g726csObrW/jpEGl+CDSSQpOJJX2KE/vEg8cxcMXdyEPu6U4QX5eruQv5hA==}
5500
+ engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
5501
+ dependencies:
5502
+ '@jest/types': 29.5.0
5503
+ chalk: 4.1.2
5504
+ jest-get-type: 29.4.3
5505
+ jest-util: 29.5.0
5506
+ pretty-format: 29.5.0
5507
+ dev: true
5508
+
5509
+ /jest-environment-node@29.5.0:
5510
+ resolution: {integrity: sha512-ExxuIK/+yQ+6PRGaHkKewYtg6hto2uGCgvKdb2nfJfKXgZ17DfXjvbZ+jA1Qt9A8EQSfPnt5FKIfnOO3u1h9qw==}
5511
+ engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
5512
+ dependencies:
5513
+ '@jest/environment': 29.5.0
5514
+ '@jest/fake-timers': 29.5.0
5515
+ '@jest/types': 29.5.0
5516
+ '@types/node': 20.2.1
5517
+ jest-mock: 29.5.0
5518
+ jest-util: 29.5.0
5519
+ dev: true
5520
+
5521
+ /jest-get-type@29.4.3:
5522
+ resolution: {integrity: sha512-J5Xez4nRRMjk8emnTpWrlkyb9pfRQQanDrvWHhsR1+VUfbwxi30eVcZFlcdGInRibU4G5LwHXpI7IRHU0CY+gg==}
5523
+ engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
5524
+ dev: true
5525
+
5526
+ /jest-haste-map@29.5.0:
5527
+ resolution: {integrity: sha512-IspOPnnBro8YfVYSw6yDRKh/TiCdRngjxeacCps1cQ9cgVN6+10JUcuJ1EabrgYLOATsIAigxA0rLR9x/YlrSA==}
5528
+ engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
5529
+ dependencies:
5530
+ '@jest/types': 29.5.0
5531
+ '@types/graceful-fs': 4.1.6
5532
+ '@types/node': 20.2.1
5533
+ anymatch: 3.1.3
5534
+ fb-watchman: 2.0.2
5535
+ graceful-fs: 4.2.11
5536
+ jest-regex-util: 29.4.3
5537
+ jest-util: 29.5.0
5538
+ jest-worker: 29.5.0
5539
+ micromatch: 4.0.5
5540
+ walker: 1.0.8
5541
+ optionalDependencies:
5542
+ fsevents: 2.3.2
5543
+ dev: true
5544
+
5545
+ /jest-leak-detector@29.5.0:
5546
+ resolution: {integrity: sha512-u9YdeeVnghBUtpN5mVxjID7KbkKE1QU4f6uUwuxiY0vYRi9BUCLKlPEZfDGR67ofdFmDz9oPAy2G92Ujrntmow==}
5547
+ engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
5548
+ dependencies:
5549
+ jest-get-type: 29.4.3
5550
+ pretty-format: 29.5.0
5551
+ dev: true
5552
+
5553
+ /jest-matcher-utils@29.5.0:
5554
+ resolution: {integrity: sha512-lecRtgm/rjIK0CQ7LPQwzCs2VwW6WAahA55YBuI+xqmhm7LAaxokSB8C97yJeYyT+HvQkH741StzpU41wohhWw==}
5555
+ engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
5556
+ dependencies:
5557
+ chalk: 4.1.2
5558
+ jest-diff: 29.5.0
5559
+ jest-get-type: 29.4.3
5560
+ pretty-format: 29.5.0
5561
+ dev: true
5562
+
5563
+ /jest-message-util@29.5.0:
5564
+ resolution: {integrity: sha512-Kijeg9Dag6CKtIDA7O21zNTACqD5MD/8HfIV8pdD94vFyFuer52SigdC3IQMhab3vACxXMiFk+yMHNdbqtyTGA==}
5565
+ engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
5566
+ dependencies:
5567
+ '@babel/code-frame': 7.21.4
5568
+ '@jest/types': 29.5.0
5569
+ '@types/stack-utils': 2.0.1
5570
+ chalk: 4.1.2
5571
+ graceful-fs: 4.2.11
5572
+ micromatch: 4.0.5
5573
+ pretty-format: 29.5.0
5574
+ slash: 3.0.0
5575
+ stack-utils: 2.0.6
5576
+ dev: true
5577
+
5578
+ /jest-mock@29.5.0:
5579
+ resolution: {integrity: sha512-GqOzvdWDE4fAV2bWQLQCkujxYWL7RxjCnj71b5VhDAGOevB3qj3Ovg26A5NI84ZpODxyzaozXLOh2NCgkbvyaw==}
5580
+ engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
5581
+ dependencies:
5582
+ '@jest/types': 29.5.0
5583
+ '@types/node': 20.2.1
5584
+ jest-util: 29.5.0
5585
+ dev: true
5586
+
5587
+ /jest-pnp-resolver@1.2.3(jest-resolve@29.5.0):
5588
+ resolution: {integrity: sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==}
5589
+ engines: {node: '>=6'}
5590
+ peerDependencies:
5591
+ jest-resolve: '*'
5592
+ peerDependenciesMeta:
5593
+ jest-resolve:
5594
+ optional: true
5595
+ dependencies:
5596
+ jest-resolve: 29.5.0
5597
+ dev: true
5598
+
5599
+ /jest-regex-util@29.4.3:
5600
+ resolution: {integrity: sha512-O4FglZaMmWXbGHSQInfXewIsd1LMn9p3ZXB/6r4FOkyhX2/iP/soMG98jGvk/A3HAN78+5VWcBGO0BJAPRh4kg==}
5601
+ engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
5602
+ dev: true
5603
+
5604
+ /jest-resolve-dependencies@29.5.0:
5605
+ resolution: {integrity: sha512-sjV3GFr0hDJMBpYeUuGduP+YeCRbd7S/ck6IvL3kQ9cpySYKqcqhdLLC2rFwrcL7tz5vYibomBrsFYWkIGGjOg==}
5606
+ engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
5607
+ dependencies:
5608
+ jest-regex-util: 29.4.3
5609
+ jest-snapshot: 29.5.0
5610
+ transitivePeerDependencies:
5611
+ - supports-color
5612
+ dev: true
5613
+
5614
+ /jest-resolve@29.5.0:
5615
+ resolution: {integrity: sha512-1TzxJ37FQq7J10jPtQjcc+MkCkE3GBpBecsSUWJ0qZNJpmg6m0D9/7II03yJulm3H/fvVjgqLh/k2eYg+ui52w==}
5616
+ engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
5617
+ dependencies:
5618
+ chalk: 4.1.2
5619
+ graceful-fs: 4.2.11
5620
+ jest-haste-map: 29.5.0
5621
+ jest-pnp-resolver: 1.2.3(jest-resolve@29.5.0)
5622
+ jest-util: 29.5.0
5623
+ jest-validate: 29.5.0
5624
+ resolve: 1.22.2
5625
+ resolve.exports: 2.0.2
5626
+ slash: 3.0.0
5627
+ dev: true
5628
+
5629
+ /jest-runner@29.5.0:
5630
+ resolution: {integrity: sha512-m7b6ypERhFghJsslMLhydaXBiLf7+jXy8FwGRHO3BGV1mcQpPbwiqiKUR2zU2NJuNeMenJmlFZCsIqzJCTeGLQ==}
5631
+ engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
5632
+ dependencies:
5633
+ '@jest/console': 29.5.0
5634
+ '@jest/environment': 29.5.0
5635
+ '@jest/test-result': 29.5.0
5636
+ '@jest/transform': 29.5.0
5637
+ '@jest/types': 29.5.0
5638
+ '@types/node': 20.2.1
5639
+ chalk: 4.1.2
5640
+ emittery: 0.13.1
5641
+ graceful-fs: 4.2.11
5642
+ jest-docblock: 29.4.3
5643
+ jest-environment-node: 29.5.0
5644
+ jest-haste-map: 29.5.0
5645
+ jest-leak-detector: 29.5.0
5646
+ jest-message-util: 29.5.0
5647
+ jest-resolve: 29.5.0
5648
+ jest-runtime: 29.5.0
5649
+ jest-util: 29.5.0
5650
+ jest-watcher: 29.5.0
5651
+ jest-worker: 29.5.0
5652
+ p-limit: 3.1.0
5653
+ source-map-support: 0.5.13
5654
+ transitivePeerDependencies:
5655
+ - supports-color
5656
+ dev: true
5657
+
5658
+ /jest-runtime@29.5.0:
5659
+ resolution: {integrity: sha512-1Hr6Hh7bAgXQP+pln3homOiEZtCDZFqwmle7Ew2j8OlbkIu6uE3Y/etJQG8MLQs3Zy90xrp2C0BRrtPHG4zryw==}
5660
+ engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
5661
+ dependencies:
5662
+ '@jest/environment': 29.5.0
5663
+ '@jest/fake-timers': 29.5.0
5664
+ '@jest/globals': 29.5.0
5665
+ '@jest/source-map': 29.4.3
5666
+ '@jest/test-result': 29.5.0
5667
+ '@jest/transform': 29.5.0
5668
+ '@jest/types': 29.5.0
5669
+ '@types/node': 20.2.1
5670
+ chalk: 4.1.2
5671
+ cjs-module-lexer: 1.2.2
5672
+ collect-v8-coverage: 1.0.1
5673
+ glob: 7.2.3
5674
+ graceful-fs: 4.2.11
5675
+ jest-haste-map: 29.5.0
5676
+ jest-message-util: 29.5.0
5677
+ jest-mock: 29.5.0
5678
+ jest-regex-util: 29.4.3
5679
+ jest-resolve: 29.5.0
5680
+ jest-snapshot: 29.5.0
5681
+ jest-util: 29.5.0
5682
+ slash: 3.0.0
5683
+ strip-bom: 4.0.0
5684
+ transitivePeerDependencies:
5685
+ - supports-color
5686
+ dev: true
5687
+
5688
+ /jest-snapshot@29.5.0:
5689
+ resolution: {integrity: sha512-x7Wolra5V0tt3wRs3/ts3S6ciSQVypgGQlJpz2rsdQYoUKxMxPNaoHMGJN6qAuPJqS+2iQ1ZUn5kl7HCyls84g==}
5690
+ engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
5691
+ dependencies:
5692
+ '@babel/core': 7.21.8
5693
+ '@babel/generator': 7.21.5
5694
+ '@babel/plugin-syntax-jsx': 7.21.4(@babel/core@7.21.8)
5695
+ '@babel/plugin-syntax-typescript': 7.21.4(@babel/core@7.21.8)
5696
+ '@babel/traverse': 7.21.5
5697
+ '@babel/types': 7.21.5
5698
+ '@jest/expect-utils': 29.5.0
5699
+ '@jest/transform': 29.5.0
5700
+ '@jest/types': 29.5.0
5701
+ '@types/babel__traverse': 7.18.5
5702
+ '@types/prettier': 2.7.2
5703
+ babel-preset-current-node-syntax: 1.0.1(@babel/core@7.21.8)
5704
+ chalk: 4.1.2
5705
+ expect: 29.5.0
5706
+ graceful-fs: 4.2.11
5707
+ jest-diff: 29.5.0
5708
+ jest-get-type: 29.4.3
5709
+ jest-matcher-utils: 29.5.0
5710
+ jest-message-util: 29.5.0
5711
+ jest-util: 29.5.0
5712
+ natural-compare: 1.4.0
5713
+ pretty-format: 29.5.0
5714
+ semver: 7.5.1
5715
+ transitivePeerDependencies:
5716
+ - supports-color
5717
+ dev: true
5718
+
5719
+ /jest-util@29.5.0:
5720
+ resolution: {integrity: sha512-RYMgG/MTadOr5t8KdhejfvUU82MxsCu5MF6KuDUHl+NuwzUt+Sm6jJWxTJVrDR1j5M/gJVCPKQEpWXY+yIQ6lQ==}
5721
+ engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
5722
+ dependencies:
5723
+ '@jest/types': 29.5.0
5724
+ '@types/node': 20.2.1
5725
+ chalk: 4.1.2
5726
+ ci-info: 3.8.0
5727
+ graceful-fs: 4.2.11
5728
+ picomatch: 2.3.1
5729
+ dev: true
5730
+
5731
+ /jest-validate@29.5.0:
5732
+ resolution: {integrity: sha512-pC26etNIi+y3HV8A+tUGr/lph9B18GnzSRAkPaaZJIE1eFdiYm6/CewuiJQ8/RlfHd1u/8Ioi8/sJ+CmbA+zAQ==}
5733
+ engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
5734
+ dependencies:
5735
+ '@jest/types': 29.5.0
5736
+ camelcase: 6.3.0
5737
+ chalk: 4.1.2
5738
+ jest-get-type: 29.4.3
5739
+ leven: 3.1.0
5740
+ pretty-format: 29.5.0
5741
+ dev: true
5742
+
5743
+ /jest-watcher@29.5.0:
5744
+ resolution: {integrity: sha512-KmTojKcapuqYrKDpRwfqcQ3zjMlwu27SYext9pt4GlF5FUgB+7XE1mcCnSm6a4uUpFyQIkb6ZhzZvHl+jiBCiA==}
5745
+ engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
5746
+ dependencies:
5747
+ '@jest/test-result': 29.5.0
5748
+ '@jest/types': 29.5.0
5749
+ '@types/node': 20.2.1
5750
+ ansi-escapes: 4.3.2
5751
+ chalk: 4.1.2
5752
+ emittery: 0.13.1
5753
+ jest-util: 29.5.0
5754
+ string-length: 4.0.2
5755
+ dev: true
5756
+
5757
+ /jest-worker@29.5.0:
5758
+ resolution: {integrity: sha512-NcrQnevGoSp4b5kg+akIpthoAFHxPBcb5P6mYPY0fUNT+sSvmtu6jlkEle3anczUKIKEbMxFimk9oTP/tpIPgA==}
5759
+ engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
5760
+ dependencies:
5761
+ '@types/node': 20.2.1
5762
+ jest-util: 29.5.0
5763
+ merge-stream: 2.0.0
5764
+ supports-color: 8.1.1
5765
+ dev: true
5766
+
5767
+ /jest@29.5.0:
5768
+ resolution: {integrity: sha512-juMg3he2uru1QoXX078zTa7pO85QyB9xajZc6bU+d9yEGwrKX6+vGmJQ3UdVZsvTEUARIdObzH68QItim6OSSQ==}
5769
+ engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
5770
+ hasBin: true
5771
+ peerDependencies:
5772
+ node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0
5773
+ peerDependenciesMeta:
5774
+ node-notifier:
5775
+ optional: true
5776
+ dependencies:
5777
+ '@jest/core': 29.5.0
5778
+ '@jest/types': 29.5.0
5779
+ import-local: 3.1.0
5780
+ jest-cli: 29.5.0
5781
+ transitivePeerDependencies:
5782
+ - '@types/node'
5783
+ - supports-color
5784
+ - ts-node
5785
+ dev: true
5786
+
4791
5787
  /js-sdsl@4.4.0:
4792
5788
  resolution: {integrity: sha512-FfVSdx6pJ41Oa+CF7RDaFmTnCaFhua+SNYQX74riGOpl96x+2jQCqEfQ2bnXu/5DPCqlRuiqyvTJM0Qjz26IVg==}
4793
5789
  dev: true
@@ -4795,6 +5791,14 @@ packages:
4795
5791
  /js-tokens@4.0.0:
4796
5792
  resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==}
4797
5793
 
5794
+ /js-yaml@3.14.1:
5795
+ resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==}
5796
+ hasBin: true
5797
+ dependencies:
5798
+ argparse: 1.0.10
5799
+ esprima: 4.0.1
5800
+ dev: true
5801
+
4798
5802
  /js-yaml@4.1.0:
4799
5803
  resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==}
4800
5804
  hasBin: true
@@ -4846,9 +5850,9 @@ packages:
4846
5850
  object.assign: 4.1.4
4847
5851
  dev: true
4848
5852
 
4849
- /kind-of@6.0.3:
5853
+ /kleur@3.0.3:
4850
- resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==}
5854
+ resolution: {integrity: sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==}
4851
- engines: {node: '>=0.10.0'}
5855
+ engines: {node: '>=6'}
4852
5856
  dev: true
4853
5857
 
4854
5858
  /language-subtag-registry@0.3.22:
@@ -4861,6 +5865,11 @@ packages:
4861
5865
  language-subtag-registry: 0.3.22
4862
5866
  dev: true
4863
5867
 
5868
+ /leven@3.1.0:
5869
+ resolution: {integrity: sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==}
5870
+ engines: {node: '>=6'}
5871
+ dev: true
5872
+
4864
5873
  /levn@0.4.1:
4865
5874
  resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==}
4866
5875
  engines: {node: '>= 0.8.0'}
@@ -4873,6 +5882,13 @@ packages:
4873
5882
  resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==}
4874
5883
  dev: true
4875
5884
 
5885
+ /locate-path@5.0.0:
5886
+ resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==}
5887
+ engines: {node: '>=8'}
5888
+ dependencies:
5889
+ p-locate: 4.1.0
5890
+ dev: true
5891
+
4876
5892
  /locate-path@6.0.0:
4877
5893
  resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==}
4878
5894
  engines: {node: '>=10'}
@@ -4880,13 +5896,6 @@ packages:
4880
5896
  p-locate: 5.0.0
4881
5897
  dev: true
4882
5898
 
4883
- /locate-path@7.2.0:
4884
- resolution: {integrity: sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==}
4885
- engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
4886
- dependencies:
4887
- p-locate: 6.0.0
4888
- dev: true
4889
-
4890
5899
  /lodash.debounce@4.0.8:
4891
5900
  resolution: {integrity: sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==}
4892
5901
  dev: true
@@ -4918,32 +5927,21 @@ packages:
4918
5927
  yallist: 4.0.0
4919
5928
  dev: true
4920
5929
 
4921
- /lru-cache@7.18.3:
5930
+ /make-dir@3.1.0:
4922
- resolution: {integrity: sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==}
5931
+ resolution: {integrity: sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==}
4923
- engines: {node: '>=12'}
5932
+ engines: {node: '>=8'}
5933
+ dependencies:
5934
+ semver: 6.3.0
4924
5935
  dev: true
4925
5936
 
4926
- /map-obj@4.3.0:
5937
+ /makeerror@1.0.12:
4927
- resolution: {integrity: sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==}
5938
+ resolution: {integrity: sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==}
4928
- engines: {node: '>=8'}
5939
+ dependencies:
5940
+ tmpl: 1.0.5
4929
5941
  dev: true
4930
5942
 
4931
- /meow@12.0.1:
5943
+ /merge-stream@2.0.0:
4932
- resolution: {integrity: sha512-/QOqMALNoKQcJAOOdIXjNLtfcCdLXbMFyB1fOOPdm6RzfBTlsuodOCTBDjVbeUSmgDQb8UI2oONqYGtq1PKKKA==}
5944
+ resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==}
4933
- engines: {node: '>=16.10'}
4934
- dependencies:
4935
- '@types/minimist': 1.2.2
4936
- camelcase-keys: 8.0.2
4937
- decamelize: 6.0.0
4938
- decamelize-keys: 2.0.1
4939
- hard-rejection: 2.1.0
4940
- minimist-options: 4.1.0
4941
- normalize-package-data: 5.0.0
4942
- read-pkg-up: 9.1.0
4943
- redent: 4.0.0
4944
- trim-newlines: 5.0.0
4945
- type-fest: 3.11.0
4946
- yargs-parser: 21.1.1
4947
5945
  dev: true
4948
5946
 
4949
5947
  /merge2@1.4.1:
@@ -4971,9 +5969,9 @@ packages:
4971
5969
  mime-db: 1.52.0
4972
5970
  dev: true
4973
5971
 
4974
- /min-indent@1.0.1:
5972
+ /mimic-fn@2.1.0:
4975
- resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==}
5973
+ resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==}
4976
- engines: {node: '>=4'}
5974
+ engines: {node: '>=6'}
4977
5975
  dev: true
4978
5976
 
4979
5977
  /minimatch@3.1.2:
@@ -4982,15 +5980,6 @@ packages:
4982
5980
  brace-expansion: 1.1.11
4983
5981
  dev: true
4984
5982
 
4985
- /minimist-options@4.1.0:
4986
- resolution: {integrity: sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==}
4987
- engines: {node: '>= 6'}
4988
- dependencies:
4989
- arrify: 1.0.1
4990
- is-plain-obj: 1.1.0
4991
- kind-of: 6.0.3
4992
- dev: true
4993
-
4994
5983
  /minimist@1.2.8:
4995
5984
  resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==}
4996
5985
  dev: true
@@ -5022,28 +6011,17 @@ packages:
5022
6011
  resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==}
5023
6012
  dev: true
5024
6013
 
5025
- /node-releases@2.0.10:
6014
+ /node-int64@0.4.0:
5026
- resolution: {integrity: sha512-5GFldHPXVG/YZmFzJvKK2zDSzPKhEp0+ZR5SVaoSag9fsL5YgHbUHDfnG5494ISANDcK4KwPXAx2xqVEydmd7w==}
6015
+ resolution: {integrity: sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==}
5027
6016
  dev: true
5028
6017
 
5029
- /normalize-package-data@3.0.3:
6018
+ /node-releases@2.0.10:
5030
- resolution: {integrity: sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==}
6019
+ resolution: {integrity: sha512-5GFldHPXVG/YZmFzJvKK2zDSzPKhEp0+ZR5SVaoSag9fsL5YgHbUHDfnG5494ISANDcK4KwPXAx2xqVEydmd7w==}
5031
- engines: {node: '>=10'}
5032
- dependencies:
5033
- hosted-git-info: 4.1.0
5034
- is-core-module: 2.12.1
5035
- semver: 7.5.1
5036
- validate-npm-package-license: 3.0.4
5037
6020
  dev: true
5038
6021
 
5039
- /normalize-package-data@5.0.0:
6022
+ /normalize-path@3.0.0:
5040
- resolution: {integrity: sha512-h9iPVIfrVZ9wVYQnxFgtw1ugSvGEMOlyPWWtm8BMJhnwyEL/FLbYbTY3V3PpjI/BUK67n9PEWDu6eHzu1fB15Q==}
6023
+ resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==}
5041
- engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
6024
+ engines: {node: '>=0.10.0'}
5042
- dependencies:
5043
- hosted-git-info: 6.1.1
5044
- is-core-module: 2.12.1
5045
- semver: 7.5.1
5046
- validate-npm-package-license: 3.0.4
5047
6025
  dev: true
5048
6026
 
5049
6027
  /normalize-range@0.1.2:
@@ -5055,6 +6033,13 @@ packages:
5055
6033
  resolution: {integrity: sha512-qizSNPO93t1YUuUhP22btGOo3chcvDFqFaj2TRybP0DMxkHOCTYwp3n34fel4a31ORXy4m1Xq0Gyqpb5m33qIg==}
5056
6034
  dev: false
5057
6035
 
6036
+ /npm-run-path@4.0.1:
6037
+ resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==}
6038
+ engines: {node: '>=8'}
6039
+ dependencies:
6040
+ path-key: 3.1.1
6041
+ dev: true
6042
+
5058
6043
  /nprogress@0.2.0:
5059
6044
  resolution: {integrity: sha512-I19aIingLgR1fmhftnbWWO3dXc0hSxqHQHQb3H8m+K3TnEn/iSeTZZOyvKXWqQESMwuUVnatlCnZdLBZZt2VSA==}
5060
6045
  dev: false
@@ -5130,6 +6115,13 @@ packages:
5130
6115
  wrappy: 1.0.2
5131
6116
  dev: true
5132
6117
 
6118
+ /onetime@5.1.2:
6119
+ resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==}
6120
+ engines: {node: '>=6'}
6121
+ dependencies:
6122
+ mimic-fn: 2.1.0
6123
+ dev: true
6124
+
5133
6125
  /optionator@0.9.1:
5134
6126
  resolution: {integrity: sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==}
5135
6127
  engines: {node: '>= 0.8.0'}
@@ -5142,6 +6134,13 @@ packages:
5142
6134
  word-wrap: 1.2.3
5143
6135
  dev: true
5144
6136
 
6137
+ /p-limit@2.3.0:
6138
+ resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==}
6139
+ engines: {node: '>=6'}
6140
+ dependencies:
6141
+ p-try: 2.2.0
6142
+ dev: true
6143
+
5145
6144
  /p-limit@3.1.0:
5146
6145
  resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==}
5147
6146
  engines: {node: '>=10'}
@@ -5149,11 +6148,11 @@ packages:
5149
6148
  yocto-queue: 0.1.0
5150
6149
  dev: true
5151
6150
 
5152
- /p-limit@4.0.0:
6151
+ /p-locate@4.1.0:
5153
- resolution: {integrity: sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==}
6152
+ resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==}
5154
- engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
6153
+ engines: {node: '>=8'}
5155
6154
  dependencies:
5156
- yocto-queue: 1.0.0
6155
+ p-limit: 2.3.0
5157
6156
  dev: true
5158
6157
 
5159
6158
  /p-locate@5.0.0:
@@ -5163,11 +6162,9 @@ packages:
5163
6162
  p-limit: 3.1.0
5164
6163
  dev: true
5165
6164
 
5166
- /p-locate@6.0.0:
6165
+ /p-try@2.2.0:
5167
- resolution: {integrity: sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==}
6166
+ resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==}
5168
- engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
6167
+ engines: {node: '>=6'}
5169
- dependencies:
5170
- p-limit: 4.0.0
5171
6168
  dev: true
5172
6169
 
5173
6170
  /parent-module@1.0.1:
@@ -5192,11 +6189,6 @@ packages:
5192
6189
  engines: {node: '>=8'}
5193
6190
  dev: true
5194
6191
 
5195
- /path-exists@5.0.0:
5196
- resolution: {integrity: sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==}
5197
- engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
5198
- dev: true
5199
-
5200
6192
  /path-is-absolute@1.0.1:
5201
6193
  resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==}
5202
6194
  engines: {node: '>=0.10.0'}
@@ -5225,6 +6217,18 @@ packages:
5225
6217
  engines: {node: '>=8.6'}
5226
6218
  dev: true
5227
6219
 
6220
+ /pirates@4.0.5:
6221
+ resolution: {integrity: sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ==}
6222
+ engines: {node: '>= 6'}
6223
+ dev: true
6224
+
6225
+ /pkg-dir@4.2.0:
6226
+ resolution: {integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==}
6227
+ engines: {node: '>=8'}
6228
+ dependencies:
6229
+ find-up: 4.1.0
6230
+ dev: true
6231
+
5228
6232
  /playwright-core@1.31.2:
5229
6233
  resolution: {integrity: sha512-a1dFgCNQw4vCsG7bnojZjDnPewZcw7tZUNFN0ZkcLYKj+mPmXvg4MpaaKZ5SgqPsOmqIf2YsVRkgqiRDxD+fDQ==}
5230
6234
  engines: {node: '>=14'}
@@ -5281,6 +6285,23 @@ packages:
5281
6285
  engines: {node: '>= 0.8.0'}
5282
6286
  dev: true
5283
6287
 
6288
+ /pretty-format@29.5.0:
6289
+ resolution: {integrity: sha512-V2mGkI31qdttvTFX7Mt4efOqHXqJWMu4/r66Xh3Z3BwZaPfPJgp6/gbwoujRpPUtfEF6AUUWx3Jim3GCw5g/Qw==}
6290
+ engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
6291
+ dependencies:
6292
+ '@jest/schemas': 29.4.3
6293
+ ansi-styles: 5.2.0
6294
+ react-is: 18.2.0
6295
+ dev: true
6296
+
6297
+ /prompts@2.4.2:
6298
+ resolution: {integrity: sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==}
6299
+ engines: {node: '>= 6'}
6300
+ dependencies:
6301
+ kleur: 3.0.3
6302
+ sisteransi: 1.0.5
6303
+ dev: true
6304
+
5284
6305
  /prop-types@15.8.1:
5285
6306
  resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==}
5286
6307
  dependencies:
@@ -5293,13 +6314,12 @@ packages:
5293
6314
  engines: {node: '>=6'}
5294
6315
  dev: true
5295
6316
 
5296
- /queue-microtask@1.2.3:
6317
+ /pure-rand@6.0.2:
5297
- resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==}
6318
+ resolution: {integrity: sha512-6Yg0ekpKICSjPswYOuC5sku/TSWaRYlA0qsXqJgM/d/4pLPHPuTxK7Nbf7jFKzAeedUhR8C7K9Uv63FBsSo8xQ==}
5298
6319
  dev: true
5299
6320
 
5300
- /quick-lru@6.1.1:
6321
+ /queue-microtask@1.2.3:
5301
- resolution: {integrity: sha512-S27GBT+F0NTRiehtbrgaSE1idUAJ5bX8dPAQTdylEyNlrdcH5X4Lz7Edz3DYzecbsCluD5zO8ZNEe04z3D3u6Q==}
6322
+ resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==}
5302
- engines: {node: '>=12'}
5303
6323
  dev: true
5304
6324
 
5305
6325
  /radix3@1.0.0:
@@ -5422,6 +6442,10 @@ packages:
5422
6442
  /react-is@16.13.1:
5423
6443
  resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==}
5424
6444
 
6445
+ /react-is@18.2.0:
6446
+ resolution: {integrity: sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==}
6447
+ dev: true
6448
+
5425
6449
  /react-stately@3.22.0(react@18.2.0):
5426
6450
  resolution: {integrity: sha512-w5itlPtjfUpxy+195LxRbaCNaGN1NVfPHelhYXuoPoKNgUvmy54uKXvP1Ek1ETZ9e55BaXuMs83yXv94wIMdpQ==}
5427
6451
  peerDependencies:
@@ -5459,33 +6483,6 @@ packages:
5459
6483
  loose-envify: 1.4.0
5460
6484
  dev: false
5461
6485
 
5462
- /read-pkg-up@9.1.0:
5463
- resolution: {integrity: sha512-vaMRR1AC1nrd5CQM0PhlRsO5oc2AAigqr7cCrZ/MW/Rsaflz4RlgzkpL4qoU/z1F6wrbd85iFv1OQj/y5RdGvg==}
5464
- engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
5465
- dependencies:
5466
- find-up: 6.3.0
5467
- read-pkg: 7.1.0
5468
- type-fest: 2.19.0
5469
- dev: true
5470
-
5471
- /read-pkg@7.1.0:
5472
- resolution: {integrity: sha512-5iOehe+WF75IccPc30bWTbpdDQLOCc3Uu8bi3Dte3Eueij81yx1Mrufk8qBx/YAbR4uL1FdUr+7BKXDwEtisXg==}
5473
- engines: {node: '>=12.20'}
5474
- dependencies:
5475
- '@types/normalize-package-data': 2.4.1
5476
- normalize-package-data: 3.0.3
5477
- parse-json: 5.2.0
5478
- type-fest: 2.19.0
5479
- dev: true
5480
-
5481
- /redent@4.0.0:
5482
- resolution: {integrity: sha512-tYkDkVVtYkSVhuQ4zBgfvciymHaeuel+zFKXShfDnFP5SyVEP7qo70Rf1jTOTCx3vGNAbnEi/xFkcfQVMIBWag==}
5483
- engines: {node: '>=12'}
5484
- dependencies:
5485
- indent-string: 5.0.0
5486
- strip-indent: 4.0.0
5487
- dev: true
5488
-
5489
6486
  /regenerate-unicode-properties@10.1.0:
5490
6487
  resolution: {integrity: sha512-d1VudCLoIGitcU/hEg2QqvyGZQmdC0Lf8BqdOMXGFSvJP4bNV1+XqbPQeHHLD51Jh4QJJ225dlIFvY4Ly6MXmQ==}
5491
6488
  engines: {node: '>=4'}
@@ -5539,11 +6536,33 @@ packages:
5539
6536
  jsesc: 0.5.0
5540
6537
  dev: true
5541
6538
 
6539
+ /require-directory@2.1.1:
6540
+ resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==}
6541
+ engines: {node: '>=0.10.0'}
6542
+ dev: true
6543
+
6544
+ /resolve-cwd@3.0.0:
6545
+ resolution: {integrity: sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==}
6546
+ engines: {node: '>=8'}
6547
+ dependencies:
6548
+ resolve-from: 5.0.0
6549
+ dev: true
6550
+
5542
6551
  /resolve-from@4.0.0:
5543
6552
  resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==}
5544
6553
  engines: {node: '>=4'}
5545
6554
  dev: true
5546
6555
 
6556
+ /resolve-from@5.0.0:
6557
+ resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==}
6558
+ engines: {node: '>=8'}
6559
+ dev: true
6560
+
6561
+ /resolve.exports@2.0.2:
6562
+ resolution: {integrity: sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg==}
6563
+ engines: {node: '>=10'}
6564
+ dev: true
6565
+
5547
6566
  /resolve@1.22.2:
5548
6567
  resolution: {integrity: sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==}
5549
6568
  hasBin: true
@@ -5631,6 +6650,14 @@ packages:
5631
6650
  object-inspect: 1.12.3
5632
6651
  dev: true
5633
6652
 
6653
+ /signal-exit@3.0.7:
6654
+ resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==}
6655
+ dev: true
6656
+
6657
+ /sisteransi@1.0.5:
6658
+ resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==}
6659
+ dev: true
6660
+
5634
6661
  /slash@3.0.0:
5635
6662
  resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==}
5636
6663
  engines: {node: '>=8'}
@@ -5641,26 +6668,20 @@ packages:
5641
6668
  engines: {node: '>=0.10.0'}
5642
6669
  dev: true
5643
6670
 
5644
- /spdx-correct@3.2.0:
6671
+ /source-map-support@0.5.13:
5645
- resolution: {integrity: sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==}
6672
+ resolution: {integrity: sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==}
5646
6673
  dependencies:
5647
- spdx-expression-parse: 3.0.1
6674
+ buffer-from: 1.1.2
5648
- spdx-license-ids: 3.0.13
6675
+ source-map: 0.6.1
5649
- dev: true
5650
-
5651
- /spdx-exceptions@2.3.0:
5652
- resolution: {integrity: sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==}
5653
6676
  dev: true
5654
6677
 
5655
- /spdx-expression-parse@3.0.1:
6678
+ /source-map@0.6.1:
5656
- resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==}
6679
+ resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==}
5657
- dependencies:
5658
- spdx-exceptions: 2.3.0
6680
+ engines: {node: '>=0.10.0'}
5659
- spdx-license-ids: 3.0.13
5660
6681
  dev: true
5661
6682
 
5662
- /spdx-license-ids@3.0.13:
6683
+ /sprintf-js@1.0.3:
5663
- resolution: {integrity: sha512-XkD+zwiqXHikFZm4AX/7JSCXA98U5Db4AFd5XUg/+9UNtnH75+Z9KxtpYiJZx36mUDVOwH83pl7yvCer6ewM3w==}
6684
+ resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==}
5664
6685
  dev: true
5665
6686
 
5666
6687
  /sql-highlight@4.3.2:
@@ -5668,6 +6689,13 @@ packages:
5668
6689
  engines: {node: '>=14'}
5669
6690
  dev: false
5670
6691
 
6692
+ /stack-utils@2.0.6:
6693
+ resolution: {integrity: sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==}
6694
+ engines: {node: '>=10'}
6695
+ dependencies:
6696
+ escape-string-regexp: 2.0.0
6697
+ dev: true
6698
+
5671
6699
  /stop-iteration-iterator@1.0.0:
5672
6700
  resolution: {integrity: sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ==}
5673
6701
  engines: {node: '>= 0.4'}
@@ -5675,10 +6703,27 @@ packages:
5675
6703
  internal-slot: 1.0.5
5676
6704
  dev: true
5677
6705
 
6706
+ /string-length@4.0.2:
6707
+ resolution: {integrity: sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==}
6708
+ engines: {node: '>=10'}
6709
+ dependencies:
6710
+ char-regex: 1.0.2
6711
+ strip-ansi: 6.0.1
6712
+ dev: true
6713
+
5678
6714
  /string-natural-compare@3.0.1:
5679
6715
  resolution: {integrity: sha512-n3sPwynL1nwKi3WJ6AIsClwBMa0zTi54fn2oLU6ndfTSIO05xaznjSf15PcBZU6FNWbmN5Q6cxT4V5hGvB4taw==}
5680
6716
  dev: true
5681
6717
 
6718
+ /string-width@4.2.3:
6719
+ resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==}
6720
+ engines: {node: '>=8'}
6721
+ dependencies:
6722
+ emoji-regex: 8.0.0
6723
+ is-fullwidth-code-point: 3.0.0
6724
+ strip-ansi: 6.0.1
6725
+ dev: true
6726
+
5682
6727
  /string.prototype.matchall@4.0.8:
5683
6728
  resolution: {integrity: sha512-6zOCOcJ+RJAQshcTvXPHoxoQGONa3e/Lqx90wUA+wEzX78sg5Bo+1tQo4N0pohS0erG9qtCqJDjNCQBjeWVxyg==}
5684
6729
  dependencies:
@@ -5729,11 +6774,14 @@ packages:
5729
6774
  engines: {node: '>=4'}
5730
6775
  dev: true
5731
6776
 
5732
- /strip-indent@4.0.0:
6777
+ /strip-bom@4.0.0:
5733
- resolution: {integrity: sha512-mnVSV2l+Zv6BLpSD/8V87CW/y9EmmbYzGCIavsnsI6/nwn26DwffM/yztm30Z/I2DY9wdS3vXVCMnHDgZaVNoA==}
6778
+ resolution: {integrity: sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==}
5734
- engines: {node: '>=12'}
6779
+ engines: {node: '>=8'}
5735
- dependencies:
6780
+ dev: true
6781
+
5736
- min-indent: 1.0.1
6782
+ /strip-final-newline@2.0.0:
6783
+ resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==}
6784
+ engines: {node: '>=6'}
5737
6785
  dev: true
5738
6786
 
5739
6787
  /strip-json-comments@3.1.1:
@@ -5755,15 +6803,35 @@ packages:
5755
6803
  has-flag: 4.0.0
5756
6804
  dev: true
5757
6805
 
6806
+ /supports-color@8.1.1:
6807
+ resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==}
6808
+ engines: {node: '>=10'}
6809
+ dependencies:
6810
+ has-flag: 4.0.0
6811
+ dev: true
6812
+
5758
6813
  /supports-preserve-symlinks-flag@1.0.0:
5759
6814
  resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==}
5760
6815
  engines: {node: '>= 0.4'}
5761
6816
  dev: true
5762
6817
 
6818
+ /test-exclude@6.0.0:
6819
+ resolution: {integrity: sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==}
6820
+ engines: {node: '>=8'}
6821
+ dependencies:
6822
+ '@istanbuljs/schema': 0.1.3
6823
+ glob: 7.2.3
6824
+ minimatch: 3.1.2
6825
+ dev: true
6826
+
5763
6827
  /text-table@0.2.0:
5764
6828
  resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==}
5765
6829
  dev: true
5766
6830
 
6831
+ /tmpl@1.0.5:
6832
+ resolution: {integrity: sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==}
6833
+ dev: true
6834
+
5767
6835
  /to-fast-properties@2.0.0:
5768
6836
  resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==}
5769
6837
  engines: {node: '>=4'}
@@ -5776,11 +6844,6 @@ packages:
5776
6844
  is-number: 7.0.0
5777
6845
  dev: true
5778
6846
 
5779
- /trim-newlines@5.0.0:
5780
- resolution: {integrity: sha512-kstfs+hgwmdsOadN3KgA+C68wPJwnZq4DN6WMDCvZapDWEF34W2TyPKN2v2+BJnZgIz5QOfxFeldLyYvdgRAwg==}
5781
- engines: {node: '>=14.16'}
5782
- dev: true
5783
-
5784
6847
  /tsconfig-paths@3.14.2:
5785
6848
  resolution: {integrity: sha512-o/9iXgCYc5L/JxCHPe3Hvh8Q/2xm5Z+p18PESBU6Ff33695QnCHBEjcytY2q19ua7Mbl/DavtBOLq+oG0RCL+g==}
5786
6849
  dependencies:
@@ -5815,19 +6878,19 @@ packages:
5815
6878
  prelude-ls: 1.2.1
5816
6879
  dev: true
5817
6880
 
6881
+ /type-detect@4.0.8:
6882
+ resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==}
6883
+ engines: {node: '>=4'}
6884
+ dev: true
6885
+
5818
6886
  /type-fest@0.20.2:
5819
6887
  resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==}
5820
6888
  engines: {node: '>=10'}
5821
6889
  dev: true
5822
6890
 
5823
- /type-fest@2.19.0:
6891
+ /type-fest@0.21.3:
5824
- resolution: {integrity: sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==}
6892
+ resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==}
5825
- engines: {node: '>=12.20'}
6893
+ engines: {node: '>=10'}
5826
- dev: true
5827
-
5828
- /type-fest@3.11.0:
5829
- resolution: {integrity: sha512-JaPw5U9ixP0XcpUbQoVSbxSDcK/K4nww20C3kjm9yE6cDRRhptU28AH60VWf9ltXmCrIfIbtt9J+2OUk2Uqiaw==}
5830
- engines: {node: '>=14.16'}
5831
6894
  dev: true
5832
6895
 
5833
6896
  /typed-array-length@1.0.4:
@@ -5905,11 +6968,13 @@ packages:
5905
6968
  resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==}
5906
6969
  dev: true
5907
6970
 
5908
- /validate-npm-package-license@3.0.4:
6971
+ /v8-to-istanbul@9.1.0:
5909
- resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==}
6972
+ resolution: {integrity: sha512-6z3GW9x8G1gd+JIIgQQQxXuiJtCXeAjp6RaPEPLv62mH3iPHPxV6W3robxtCzNErRo6ZwTmzWhsbNvjyEBKzKA==}
6973
+ engines: {node: '>=10.12.0'}
5910
6974
  dependencies:
6975
+ '@jridgewell/trace-mapping': 0.3.18
6976
+ '@types/istanbul-lib-coverage': 2.0.4
5911
- spdx-correct: 3.2.0
6977
+ convert-source-map: 1.9.0
5912
- spdx-expression-parse: 3.0.1
5913
6978
  dev: true
5914
6979
 
5915
6980
  /walkdir@0.4.1:
@@ -5917,6 +6982,12 @@ packages:
5917
6982
  engines: {node: '>=6.0.0'}
5918
6983
  dev: true
5919
6984
 
6985
+ /walker@1.0.8:
6986
+ resolution: {integrity: sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==}
6987
+ dependencies:
6988
+ makeerror: 1.0.12
6989
+ dev: true
6990
+
5920
6991
  /which-boxed-primitive@1.0.2:
5921
6992
  resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==}
5922
6993
  dependencies:
@@ -5961,10 +7032,32 @@ packages:
5961
7032
  engines: {node: '>=0.10.0'}
5962
7033
  dev: true
5963
7034
 
7035
+ /wrap-ansi@7.0.0:
7036
+ resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==}
7037
+ engines: {node: '>=10'}
7038
+ dependencies:
7039
+ ansi-styles: 4.3.0
7040
+ string-width: 4.2.3
7041
+ strip-ansi: 6.0.1
7042
+ dev: true
7043
+
5964
7044
  /wrappy@1.0.2:
5965
7045
  resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==}
5966
7046
  dev: true
5967
7047
 
7048
+ /write-file-atomic@4.0.2:
7049
+ resolution: {integrity: sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==}
7050
+ engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
7051
+ dependencies:
7052
+ imurmurhash: 0.1.4
7053
+ signal-exit: 3.0.7
7054
+ dev: true
7055
+
7056
+ /y18n@5.0.8:
7057
+ resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==}
7058
+ engines: {node: '>=10'}
7059
+ dev: true
7060
+
5968
7061
  /yallist@3.1.1:
5969
7062
  resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==}
5970
7063
  dev: true
@@ -5983,16 +7076,24 @@ packages:
5983
7076
  engines: {node: '>=12'}
5984
7077
  dev: true
5985
7078
 
7079
+ /yargs@17.7.2:
7080
+ resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==}
7081
+ engines: {node: '>=12'}
7082
+ dependencies:
7083
+ cliui: 8.0.1
7084
+ escalade: 3.1.1
7085
+ get-caller-file: 2.0.5
7086
+ require-directory: 2.1.1
7087
+ string-width: 4.2.3
7088
+ y18n: 5.0.8
7089
+ yargs-parser: 21.1.1
7090
+ dev: true
7091
+
5986
7092
  /yocto-queue@0.1.0:
5987
7093
  resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==}
5988
7094
  engines: {node: '>=10'}
5989
7095
  dev: true
5990
7096
 
5991
- /yocto-queue@1.0.0:
5992
- resolution: {integrity: sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==}
5993
- engines: {node: '>=12.20'}
5994
- dev: true
5995
-
5996
7097
  /zod@3.21.4:
5997
7098
  resolution: {integrity: sha512-m46AKbrzKVzOzs/DZgVnG5H55N1sv1M8qZU3A8RIKbs3mrACDNeIOeilDymVb2HdmP8uwshOCF4uJ8uM9rCqJw==}
5998
7099
  dev: false
readme.md CHANGED
@@ -1,19 +1,17 @@
1
1
  # Edge City
2
2
 
3
3
  edge-city is a next level meta-framework for react that runs only on edge runtimes.
4
- It uses esbuild as its bundler/transpiler.
5
- It uses file system routing (similar to nextjs app router) with streaming SSR + CSR to render pages.
4
+ It uses file system routing with streaming SSR + CSR to render pages.
6
5
  It is very opionated and has set of idiomatic ways of doing things.
7
6
  It has an inbuilt rpc mechanism to access server resources instead of a typical REST API.
8
7
  It aims to have almost the same router api as nextjs router for ease of use.
9
8
 
10
9
  During development each request for a page is executed in a separate edge-runtime (miniflare/vercel) vm.
11
- During production each page is packaged to an esm function adapted to the platform of your choice.
10
+ During production each page is packaged to an esm function adapted to the platform of your choice.
12
11
 
13
12
  ## Why?
14
- Beacause,
15
- * Its really hard to have a streaming SSR + CSR setup in nextjs currently.
13
+ * Its really hard to have a streaming SSR + CSR with automatic data rehydration setup in nextjs currently.
16
- * There is no framework which runs your code in an edge simulated environment during development and targets only edge for production.
14
+ * There is no meta-framework which runs your code in an edge simulated environment during development.
17
15
 
18
16
  ## Requirements
19
17
  1. `node >= v20`
@@ -22,9 +20,8 @@ Beacause,
22
20
 
23
21
  ### Supported platforms
24
22
  1. [Cloudflare page functions](https://developers.cloudflare.com/pages/platform/functions/routing/)
25
- 2. [Vercel edge functions](https://vercel.com/docs/concepts/functions/edge-functions)
23
+ 2. [TODO][Vercel edge functions](https://vercel.com/docs/concepts/functions/edge-functions)
26
- 3. [Netlify edge functions](https://docs.netlify.com/edge-functions/overview/)
24
+ 3. [TODO][Netlify edge functions](https://docs.netlify.com/edge-functions/overview/)
27
- 4. [Deno Deploy](https://deno.com/deploy)
28
25
 
29
26
  ## Developing
30
27