~repos /edge-city
git clone
https://pyrossh.dev/repos/edge-city.git
Discussions:
https://groups.google.com/g/rust-embed-devs
edge-city is a next level meta-framework for react that runs only on edge runtimes
c7f7584c
—
pyrossh 2 years ago
refactor dir
- example/package.json +5 -1
- example/src/components/Layout/Layout.jsx +1 -1
- example/src/pages/about/page.jsx +2 -1
- example/src/pages/page.jsx +1 -1
- example/src/pages/todos/Todo.jsx +1 -1
- example/src/pages/todos/TodoList.jsx +1 -1
- example/src/pages/todos/page.jsx +1 -1
- example/vite.config.js +55 -0
- index.js +0 -201
- cli.js → lib/bin/cli.js +6 -6
- lib/client/hydratePage.js +27 -0
- lib/data.js +95 -0
- lib/index.js +29 -0
- index.test.js → lib/index.test.js +0 -0
- lib/link.js +33 -0
- package.json → lib/package.json +4 -1
- lib/router.js +49 -0
- lib/server/dev-server.js +18 -0
- renderApi.js → lib/server/renderApi.js +0 -0
- renderPage.js → lib/server/renderPage.js +1 -1
- pnpm-lock.yaml +499 -75
- pnpm-workspace.yaml +1 -1
example/package.json
CHANGED
|
@@ -8,6 +8,7 @@
|
|
|
8
8
|
"dev:wrangler": "cd build && wrangler pages dev static",
|
|
9
9
|
"deploy:wrangler": "cd build && wrangler pages deploy static",
|
|
10
10
|
"build": " edge-city build -p cloudflare",
|
|
11
|
+
"build-2": "vite build",
|
|
11
12
|
"generate": "drizzle-kit generate:pg --out migrations --schema migrations/schema.js",
|
|
12
13
|
"migrate": "node scripts/migrate.js",
|
|
13
14
|
"test": "jest",
|
|
@@ -33,7 +34,10 @@
|
|
|
33
34
|
"eslint-config-react-app": "^7.0.1",
|
|
34
35
|
"postgres": "3.3.4",
|
|
35
36
|
"prettier": "^2.8.8",
|
|
36
|
-
"wrangler": "3.0.1"
|
|
37
|
+
"wrangler": "3.0.1",
|
|
38
|
+
"vite": "4.3.9",
|
|
39
|
+
"vite-plugin-pages": "0.30.1",
|
|
40
|
+
"@vitejs/plugin-react": "4.0.0"
|
|
37
41
|
},
|
|
38
42
|
"prettier": {
|
|
39
43
|
"printWidth": 100,
|
example/src/components/Layout/Layout.jsx
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import React from "react";
|
|
2
|
-
import
|
|
2
|
+
import Link from "edge-city/link";
|
|
3
3
|
import "./Layout.css";
|
|
4
4
|
|
|
5
5
|
const Layout = ({ children }) => {
|
example/src/pages/about/page.jsx
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import React from "react";
|
|
2
|
+
import Link from "edge-city/link";
|
|
2
|
-
import {
|
|
3
|
+
import { useRouter } from "edge-city/router";
|
|
3
4
|
import { Helmet } from "react-helmet-async";
|
|
4
5
|
import "./page.css";
|
|
5
6
|
|
example/src/pages/page.jsx
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import React from "react";
|
|
2
|
-
import { useRouter } from "edge-city";
|
|
2
|
+
import { useRouter } from "edge-city/router";
|
|
3
3
|
import Counter from "@/components/Counter/Counter";
|
|
4
4
|
import { Helmet } from "react-helmet-async";
|
|
5
5
|
import "./page.css";
|
example/src/pages/todos/Todo.jsx
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { useState } from "react";
|
|
2
2
|
import { useForm } from "react-hook-form";
|
|
3
3
|
import { TextField, Input } from "react-aria-components";
|
|
4
|
-
import { cache, useMutation } from "edge-city";
|
|
4
|
+
import { cache, useMutation } from "edge-city/data";
|
|
5
5
|
import { updateTodo, deleteTodo } from "@/services/todos.service";
|
|
6
6
|
import "./Todo.css";
|
|
7
7
|
|
example/src/pages/todos/TodoList.jsx
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import React from "react";
|
|
2
|
-
import { useQuery } from "edge-city";
|
|
2
|
+
import { useQuery } from "edge-city/data";
|
|
3
3
|
import { getTodos } from "@/services/todos.service";
|
|
4
4
|
import Spinner from "@/components/Spinner/Spinner";
|
|
5
5
|
import Todo from "./Todo";
|
example/src/pages/todos/page.jsx
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Suspense } from "react";
|
|
2
2
|
import { ErrorBoundary } from "react-error-boundary";
|
|
3
3
|
import { Helmet } from "react-helmet-async";
|
|
4
|
-
import { cache, useMutation } from "edge-city";
|
|
4
|
+
import { cache, useMutation } from "edge-city/data";
|
|
5
5
|
import { useForm } from "react-hook-form";
|
|
6
6
|
import { Button, TextField, Input } from "react-aria-components";
|
|
7
7
|
import Spinner from "@/components/Spinner/Spinner";
|
example/vite.config.js
ADDED
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { defineConfig } from 'vite';
|
|
2
|
+
|
|
3
|
+
function pagesPlugin(userOptions) {
|
|
4
|
+
return {
|
|
5
|
+
name: 'vite-plugin-pages',
|
|
6
|
+
enforce: 'pre',
|
|
7
|
+
async configResolved(config) {
|
|
8
|
+
userOptions.resolver = 'react'
|
|
9
|
+
ctx = new PageContext(userOptions, config.root)
|
|
10
|
+
ctx.setLogger(config.logger)
|
|
11
|
+
await ctx.searchGlob()
|
|
12
|
+
},
|
|
13
|
+
api: {
|
|
14
|
+
getResolvedRoutes() {
|
|
15
|
+
return ctx.options.resolver.getComputedRoutes(ctx)
|
|
16
|
+
},
|
|
17
|
+
},
|
|
18
|
+
configureServer(server) {
|
|
19
|
+
ctx.setupViteServer(server)
|
|
20
|
+
},
|
|
21
|
+
resolveId(id) {
|
|
22
|
+
if (ctx.options.moduleIds.includes(id))
|
|
23
|
+
return `${MODULE_ID_VIRTUAL}?id=${id}`
|
|
24
|
+
|
|
25
|
+
if (routeBlockQueryRE.test(id))
|
|
26
|
+
return ROUTE_BLOCK_ID_VIRTUAL
|
|
27
|
+
|
|
28
|
+
return null
|
|
29
|
+
},
|
|
30
|
+
async load(id) {
|
|
31
|
+
const {
|
|
32
|
+
moduleId,
|
|
33
|
+
pageId,
|
|
34
|
+
} = parsePageRequest(id)
|
|
35
|
+
|
|
36
|
+
if (moduleId === MODULE_ID_VIRTUAL && pageId && ctx.options.moduleIds.includes(pageId))
|
|
37
|
+
return ctx.resolveRoutes()
|
|
38
|
+
|
|
39
|
+
if (id === ROUTE_BLOCK_ID_VIRTUAL) {
|
|
40
|
+
return {
|
|
41
|
+
code: 'export default {};',
|
|
42
|
+
map: null,
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
return null
|
|
47
|
+
},
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
// https://vitejs.dev/config/
|
|
52
|
+
export default defineConfig({
|
|
53
|
+
plugins: [
|
|
54
|
+
],
|
|
55
|
+
})
|
index.js
DELETED
|
@@ -1,201 +0,0 @@
|
|
|
1
|
-
import React, {
|
|
2
|
-
Suspense, createContext, useContext, useState, useEffect, useTransition, useCallback
|
|
3
|
-
} from "react";
|
|
4
|
-
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
5
|
-
import { HelmetProvider } from 'react-helmet-async';
|
|
6
|
-
import { createBrowserHistory } from "history";
|
|
7
|
-
import { createRouter } from "radix3";
|
|
8
|
-
import routemap from '/routemap.json' assert {type: 'json'};
|
|
9
|
-
|
|
10
|
-
export const isProd = () => process.env.NODE_ENV === "production";
|
|
11
|
-
export const isClient = () => typeof window !== 'undefined';
|
|
12
|
-
export const domain = () => isClient() ? window.origin : "http://0.0.0.0:3000";
|
|
13
|
-
|
|
14
|
-
export const defineRpc = (serviceName) => async (params = {}) => {
|
|
15
|
-
const res = await fetch(`${domain()}/_rpc/${serviceName}`, {
|
|
16
|
-
method: "POST",
|
|
17
|
-
headers: {
|
|
18
|
-
"Accept": "application/json",
|
|
19
|
-
"Content-Type": "application/json",
|
|
20
|
-
},
|
|
21
|
-
body: JSON.stringify(params),
|
|
22
|
-
})
|
|
23
|
-
return await res.json();
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
export const cache = {
|
|
27
|
-
get: (k) => globalThis._EDGE_DATA_.data[k],
|
|
28
|
-
set: (k, v) => {
|
|
29
|
-
globalThis._EDGE_DATA_.data[k] = v;
|
|
30
|
-
},
|
|
31
|
-
invalidate: (k, setRefetch) => Promise.all(Array.from(globalThis._EDGE_DATA_.subs[k]).map((cb) => cb(setRefetch))),
|
|
32
|
-
subscribe: (k, cb) => {
|
|
33
|
-
if (!globalThis._EDGE_DATA_.subs[k]) {
|
|
34
|
-
globalThis._EDGE_DATA_.subs[k] = new Set();
|
|
35
|
-
}
|
|
36
|
-
globalThis._EDGE_DATA_.subs[k].add(cb)
|
|
37
|
-
return () => globalThis._EDGE_DATA_.subs[k].delete(cb);
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
/**
|
|
42
|
-
*
|
|
43
|
-
* @param {*} fn
|
|
44
|
-
* @param {*} params
|
|
45
|
-
* @returns
|
|
46
|
-
*/
|
|
47
|
-
export const useQuery = (key, fn) => {
|
|
48
|
-
const [, toggle] = useState(false);
|
|
49
|
-
const [isRefetching, setIsRefetching] = useState(false);
|
|
50
|
-
const [err, setErr] = useState(null);
|
|
51
|
-
const refetch = useCallback(async (setRefetch = true) => {
|
|
52
|
-
try {
|
|
53
|
-
if (setRefetch) {
|
|
54
|
-
setIsRefetching(true);
|
|
55
|
-
}
|
|
56
|
-
setErr(null);
|
|
57
|
-
cache.set(key, await fn());
|
|
58
|
-
} catch (err) {
|
|
59
|
-
setErr(err);
|
|
60
|
-
throw err;
|
|
61
|
-
} finally {
|
|
62
|
-
if (setRefetch) {
|
|
63
|
-
setIsRefetching(false);
|
|
64
|
-
} else {
|
|
65
|
-
toggle((v) => !v);
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
}, [fn]);
|
|
69
|
-
useEffect(() => {
|
|
70
|
-
return cache.subscribe(key, refetch);
|
|
71
|
-
}, [key])
|
|
72
|
-
const value = cache.get(key);
|
|
73
|
-
if (value) {
|
|
74
|
-
if (value instanceof Promise) {
|
|
75
|
-
throw value;
|
|
76
|
-
} else if (value instanceof Error) {
|
|
77
|
-
throw value;
|
|
78
|
-
}
|
|
79
|
-
return { data: value, isRefetching, err, refetch };
|
|
80
|
-
}
|
|
81
|
-
cache.set(key, fn().then((v) => cache.set(key, v)));
|
|
82
|
-
throw cache.get(key);
|
|
83
|
-
}
|
|
84
|
-
|
|
85
|
-
export const useMutation = (fn) => {
|
|
86
|
-
const [isMutating, setIsMutating] = useState(false);
|
|
87
|
-
const [err, setErr] = useState(null);
|
|
88
|
-
const mutate = useCallback(async (params) => {
|
|
89
|
-
try {
|
|
90
|
-
setIsMutating(true);
|
|
91
|
-
setErr(null);
|
|
92
|
-
await fn(params);
|
|
93
|
-
} catch (err) {
|
|
94
|
-
setErr(err)
|
|
95
|
-
throw err;
|
|
96
|
-
} finally {
|
|
97
|
-
setIsMutating(false);
|
|
98
|
-
}
|
|
99
|
-
}, [fn])
|
|
100
|
-
return {
|
|
101
|
-
mutate,
|
|
102
|
-
isMutating,
|
|
103
|
-
err,
|
|
104
|
-
}
|
|
105
|
-
}
|
|
106
|
-
|
|
107
|
-
export const RouterContext = createContext(undefined);
|
|
108
|
-
export const RouterProvider = ({ router, history, helmetContext, App }) => {
|
|
109
|
-
const [_, startTransition] = useTransition();
|
|
110
|
-
const [pathname, setPathname] = useState(history.location.pathname);
|
|
111
|
-
const page = router.lookup(pathname) || router.lookup("/_404");
|
|
112
|
-
useEffect(() => {
|
|
113
|
-
return history.listen(({ location }) => {
|
|
114
|
-
// this causes 2 renders to happen but stops jitter or flash due to React.lazy
|
|
115
|
-
startTransition(() => {
|
|
116
|
-
setPathname(location.pathname);
|
|
117
|
-
})
|
|
118
|
-
});
|
|
119
|
-
}, []);
|
|
120
|
-
return _jsx(RouterContext.Provider, {
|
|
121
|
-
value: {
|
|
122
|
-
history,
|
|
123
|
-
params: page.params || {},
|
|
124
|
-
},
|
|
125
|
-
children: _jsx(Suspense, {
|
|
126
|
-
fallback: _jsx("div", {}, "Routing...."),
|
|
127
|
-
children: _jsx(HelmetProvider, {
|
|
128
|
-
context: helmetContext,
|
|
129
|
-
children: _jsx(App, {
|
|
130
|
-
children: _jsx(page, {}),
|
|
131
|
-
})
|
|
132
|
-
}),
|
|
133
|
-
}),
|
|
134
|
-
})
|
|
135
|
-
}
|
|
136
|
-
|
|
137
|
-
export const useRouter = () => {
|
|
138
|
-
const { history, params } = useContext(RouterContext);
|
|
139
|
-
return {
|
|
140
|
-
pathname: history.location.pathname,
|
|
141
|
-
query: new URLSearchParams(history.location.search),
|
|
142
|
-
params,
|
|
143
|
-
push: history.push,
|
|
144
|
-
replace: history.replace,
|
|
145
|
-
forward: history.forward,
|
|
146
|
-
back: history.back,
|
|
147
|
-
reload: () => window.location.reload(),
|
|
148
|
-
};
|
|
149
|
-
}
|
|
150
|
-
|
|
151
|
-
export const Link = (props) => {
|
|
152
|
-
const router = useRouter();
|
|
153
|
-
return _jsx("a", {
|
|
154
|
-
...props,
|
|
155
|
-
onMouseOver: (e) => {
|
|
156
|
-
// Simple prefetching for now will work only with cache headers
|
|
157
|
-
// fetch(getCssUrl(props.href));
|
|
158
|
-
// fetch(getCssUrl(props.href).replace("css", "jsx"));
|
|
159
|
-
},
|
|
160
|
-
onClick: (e) => {
|
|
161
|
-
e.preventDefault();
|
|
162
|
-
if (props && props.onClick) {
|
|
163
|
-
props.onClick(e);
|
|
164
|
-
}
|
|
165
|
-
router.push(props.href);
|
|
166
|
-
},
|
|
167
|
-
})
|
|
168
|
-
}
|
|
169
|
-
|
|
170
|
-
export const NavLink = ({ children, className, activeClassName, ...props }) => {
|
|
171
|
-
const { pathname } = useRouter();
|
|
172
|
-
const classNames = pathname === props.href ? [activeClassName, className] : [className];
|
|
173
|
-
return _jsx(Link, {
|
|
174
|
-
children,
|
|
175
|
-
className: classNames,
|
|
176
|
-
...props,
|
|
177
|
-
})
|
|
178
|
-
}
|
|
179
|
-
|
|
180
|
-
export const hydrateApp = async (App) => {
|
|
181
|
-
if (!isProd()) {
|
|
182
|
-
console.log("hydrating with", window._EDGE_DATA_);
|
|
183
|
-
}
|
|
184
|
-
const module = await import("react-dom/client");
|
|
185
|
-
const history = createBrowserHistory();
|
|
186
|
-
const router = createRouter({
|
|
187
|
-
strictTrailingSlash: true,
|
|
188
|
-
routes: Object.keys(routemap).reduce((acc, r) => {
|
|
189
|
-
acc[r] = React.lazy(() => import(routemap[r]));
|
|
190
|
-
return acc;
|
|
191
|
-
}, {}),
|
|
192
|
-
});
|
|
193
|
-
const root = document.getElementById("root");
|
|
194
|
-
module.default.hydrateRoot(root, _jsx(RouterProvider, {
|
|
195
|
-
history,
|
|
196
|
-
router,
|
|
197
|
-
rpcContext: window._EDGE_DATA_ || {},
|
|
198
|
-
helmetContext: {},
|
|
199
|
-
App,
|
|
200
|
-
}));
|
|
201
|
-
}
|
cli.js → lib/bin/cli.js
RENAMED
|
@@ -62,7 +62,7 @@ const bundleJs = async ({ entryPoints, isServer, outfile, ...options }, plg) =>
|
|
|
62
62
|
entryPoints,
|
|
63
63
|
outfile,
|
|
64
64
|
format: 'esm',
|
|
65
|
-
external: ["node:*"],
|
|
65
|
+
external: isServer ? [] : ["node:*"], // TODO: "react", "react-dom/client", "react-aria-components" "react-error-boundary" "react-helmet-async" "react-hook-form" "zod" "lodash" "date-fns"
|
|
66
66
|
color: true,
|
|
67
67
|
keepNames: !isProd,
|
|
68
68
|
minify: isProd,
|
|
@@ -112,7 +112,7 @@ const bundlePages = async () => {
|
|
|
112
112
|
build.onLoad({ filter: /\\*.page.jsx/, namespace: undefined }, (args) => {
|
|
113
113
|
const data = fs.readFileSync(args.path);
|
|
114
114
|
const newSrc = `
|
|
115
|
-
import renderPage from "edge-city/renderPage";
|
|
115
|
+
import renderPage from "edge-city/server/renderPage";
|
|
116
116
|
import init from "@/init";
|
|
117
117
|
${importAppComp}
|
|
118
118
|
|
|
@@ -156,14 +156,14 @@ const bundlePages = async () => {
|
|
|
156
156
|
build.onLoad({ filter: /\\*.page.jsx/, namespace: undefined }, (args) => {
|
|
157
157
|
const data = fs.readFileSync(args.path);
|
|
158
158
|
const newSrc = `
|
|
159
|
-
import
|
|
159
|
+
import hydratePage from "edge-city/client/hydratePage";
|
|
160
160
|
${importAppComp}
|
|
161
161
|
|
|
162
162
|
${data.toString()}
|
|
163
163
|
|
|
164
164
|
const searchParams = new URL(import.meta.url).searchParams;
|
|
165
165
|
if (searchParams.get("hydrate") === "true") {
|
|
166
|
-
|
|
166
|
+
hydratePage(App)
|
|
167
167
|
}
|
|
168
168
|
`
|
|
169
169
|
return {
|
|
@@ -182,7 +182,7 @@ const bundlePages = async () => {
|
|
|
182
182
|
const svcName = args.path.replace(srcDir, "").replace("/services/", "").replace(".service.js", "");
|
|
183
183
|
const funcs = parseExports(src);
|
|
184
184
|
const newSrc = `
|
|
185
|
-
import { defineRpc } from "edge-city";
|
|
185
|
+
import { defineRpc } from "edge-city/data";
|
|
186
186
|
${funcs.map((f) => `export const ${f} = defineRpc("${svcName}/${f}")`).join("\n")}
|
|
187
187
|
`
|
|
188
188
|
return {
|
|
@@ -217,7 +217,7 @@ const bundleServices = async () => {
|
|
|
217
217
|
setup(build) {
|
|
218
218
|
build.onLoad({ filter: /\\*.service.js/, namespace: undefined }, async (args) => {
|
|
219
219
|
const newSrc = `
|
|
220
|
-
import renderApi from "edge-city/renderApi";
|
|
220
|
+
import renderApi from "edge-city/server/renderApi";
|
|
221
221
|
import init from "@/init";
|
|
222
222
|
${src.toString()}
|
|
223
223
|
|
lib/client/hydratePage.js
ADDED
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { hydrateRoot } from "react-dom/client";
|
|
3
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
4
|
+
import { createBrowserHistory } from "history";
|
|
5
|
+
import { createRouter } from "radix3";
|
|
6
|
+
import { RouterProvider } from "../router";
|
|
7
|
+
import routemap from '/routemap.json' assert {type: 'json'};
|
|
8
|
+
|
|
9
|
+
const hydratePage = (App) => {
|
|
10
|
+
const history = createBrowserHistory();
|
|
11
|
+
const router = createRouter({
|
|
12
|
+
strictTrailingSlash: true,
|
|
13
|
+
routes: Object.keys(routemap).reduce((acc, r) => {
|
|
14
|
+
acc[r] = React.lazy(() => import(routemap[r]));
|
|
15
|
+
return acc;
|
|
16
|
+
}, {}),
|
|
17
|
+
});
|
|
18
|
+
const root = document.getElementById("root");
|
|
19
|
+
hydrateRoot(root, _jsx(RouterProvider, {
|
|
20
|
+
history,
|
|
21
|
+
router,
|
|
22
|
+
rpcContext: window._EDGE_DATA_ || {},
|
|
23
|
+
helmetContext: {},
|
|
24
|
+
App,
|
|
25
|
+
}));
|
|
26
|
+
}
|
|
27
|
+
export default hydratePage;
|
lib/data.js
ADDED
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
import { useState, useEffect, useCallback } from "react";
|
|
2
|
+
|
|
3
|
+
export const defineRpc = (serviceName) => async (params = {}) => {
|
|
4
|
+
const res = await fetch(`/_rpc/${serviceName}`, {
|
|
5
|
+
method: "POST",
|
|
6
|
+
headers: {
|
|
7
|
+
"Accept": "application/json",
|
|
8
|
+
"Content-Type": "application/json",
|
|
9
|
+
},
|
|
10
|
+
body: JSON.stringify(params),
|
|
11
|
+
})
|
|
12
|
+
return await res.json();
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
export const cache = {
|
|
17
|
+
get: (k) => globalThis._EDGE_DATA_.data[k],
|
|
18
|
+
set: (k, v) => {
|
|
19
|
+
globalThis._EDGE_DATA_.data[k] = v;
|
|
20
|
+
},
|
|
21
|
+
invalidate: (k, setRefetch) => Promise.all(Array.from(globalThis._EDGE_DATA_.subs[k]).map((cb) => cb(setRefetch))),
|
|
22
|
+
subscribe: (k, cb) => {
|
|
23
|
+
if (!globalThis._EDGE_DATA_.subs[k]) {
|
|
24
|
+
globalThis._EDGE_DATA_.subs[k] = new Set();
|
|
25
|
+
}
|
|
26
|
+
globalThis._EDGE_DATA_.subs[k].add(cb)
|
|
27
|
+
return () => globalThis._EDGE_DATA_.subs[k].delete(cb);
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
/**
|
|
32
|
+
*
|
|
33
|
+
* @param {*} fn
|
|
34
|
+
* @param {*} params
|
|
35
|
+
* @returns
|
|
36
|
+
*/
|
|
37
|
+
export const useQuery = (key, fn) => {
|
|
38
|
+
const [, toggle] = useState(false);
|
|
39
|
+
const [isRefetching, setIsRefetching] = useState(false);
|
|
40
|
+
const [err, setErr] = useState(null);
|
|
41
|
+
const refetch = useCallback(async (setRefetch = true) => {
|
|
42
|
+
try {
|
|
43
|
+
if (setRefetch) {
|
|
44
|
+
setIsRefetching(true);
|
|
45
|
+
}
|
|
46
|
+
setErr(null);
|
|
47
|
+
cache.set(key, await fn());
|
|
48
|
+
} catch (err) {
|
|
49
|
+
setErr(err);
|
|
50
|
+
throw err;
|
|
51
|
+
} finally {
|
|
52
|
+
if (setRefetch) {
|
|
53
|
+
setIsRefetching(false);
|
|
54
|
+
} else {
|
|
55
|
+
toggle((v) => !v);
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
}, [fn]);
|
|
59
|
+
useEffect(() => {
|
|
60
|
+
return cache.subscribe(key, refetch);
|
|
61
|
+
}, [key])
|
|
62
|
+
const value = cache.get(key);
|
|
63
|
+
if (value) {
|
|
64
|
+
if (value instanceof Promise) {
|
|
65
|
+
throw value;
|
|
66
|
+
} else if (value instanceof Error) {
|
|
67
|
+
throw value;
|
|
68
|
+
}
|
|
69
|
+
return { data: value, isRefetching, err, refetch };
|
|
70
|
+
}
|
|
71
|
+
cache.set(key, fn().then((v) => cache.set(key, v)));
|
|
72
|
+
throw cache.get(key);
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
export const useMutation = (fn) => {
|
|
76
|
+
const [isMutating, setIsMutating] = useState(false);
|
|
77
|
+
const [err, setErr] = useState(null);
|
|
78
|
+
const mutate = useCallback(async (params) => {
|
|
79
|
+
try {
|
|
80
|
+
setIsMutating(true);
|
|
81
|
+
setErr(null);
|
|
82
|
+
await fn(params);
|
|
83
|
+
} catch (err) {
|
|
84
|
+
setErr(err)
|
|
85
|
+
throw err;
|
|
86
|
+
} finally {
|
|
87
|
+
setIsMutating(false);
|
|
88
|
+
}
|
|
89
|
+
}, [fn])
|
|
90
|
+
return {
|
|
91
|
+
mutate,
|
|
92
|
+
isMutating,
|
|
93
|
+
err,
|
|
94
|
+
}
|
|
95
|
+
}
|
lib/index.js
ADDED
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
3
|
+
import { createBrowserHistory } from "history";
|
|
4
|
+
import { createRouter } from "radix3";
|
|
5
|
+
import routemap from '/routemap.json' assert {type: 'json'};
|
|
6
|
+
|
|
7
|
+
export const isProd = () => process.env.NODE_ENV === "production";
|
|
8
|
+
export const hydrateApp = async (App) => {
|
|
9
|
+
if (!isProd()) {
|
|
10
|
+
console.log("hydrating with", window._EDGE_DATA_);
|
|
11
|
+
}
|
|
12
|
+
const module = await import("react-dom/client");
|
|
13
|
+
const history = createBrowserHistory();
|
|
14
|
+
const router = createRouter({
|
|
15
|
+
strictTrailingSlash: true,
|
|
16
|
+
routes: Object.keys(routemap).reduce((acc, r) => {
|
|
17
|
+
acc[r] = React.lazy(() => import(routemap[r]));
|
|
18
|
+
return acc;
|
|
19
|
+
}, {}),
|
|
20
|
+
});
|
|
21
|
+
const root = document.getElementById("root");
|
|
22
|
+
module.default.hydrateRoot(root, _jsx(RouterProvider, {
|
|
23
|
+
history,
|
|
24
|
+
router,
|
|
25
|
+
rpcContext: window._EDGE_DATA_ || {},
|
|
26
|
+
helmetContext: {},
|
|
27
|
+
App,
|
|
28
|
+
}));
|
|
29
|
+
}
|
index.test.js → lib/index.test.js
RENAMED
|
File without changes
|
lib/link.js
ADDED
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
+
import { useRouter } from "./router";
|
|
3
|
+
|
|
4
|
+
const Link = (props) => {
|
|
5
|
+
const router = useRouter();
|
|
6
|
+
return _jsx("a", {
|
|
7
|
+
...props,
|
|
8
|
+
onMouseOver: (e) => {
|
|
9
|
+
// Simple prefetching for now will work only with cache headers
|
|
10
|
+
// fetch(getCssUrl(props.href));
|
|
11
|
+
// fetch(getCssUrl(props.href).replace("css", "jsx"));
|
|
12
|
+
},
|
|
13
|
+
onClick: (e) => {
|
|
14
|
+
e.preventDefault();
|
|
15
|
+
if (props && props.onClick) {
|
|
16
|
+
props.onClick(e);
|
|
17
|
+
}
|
|
18
|
+
router.push(props.href);
|
|
19
|
+
},
|
|
20
|
+
})
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
export const NavLink = ({ children, className, activeClassName, ...props }) => {
|
|
24
|
+
const { pathname } = useRouter();
|
|
25
|
+
const classNames = pathname === props.href ? [activeClassName, className] : [className];
|
|
26
|
+
return _jsx(Link, {
|
|
27
|
+
children,
|
|
28
|
+
className: classNames,
|
|
29
|
+
...props,
|
|
30
|
+
})
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
export default Link;
|
package.json → lib/package.json
RENAMED
|
@@ -29,6 +29,9 @@
|
|
|
29
29
|
"walkdir": "0.4.1",
|
|
30
30
|
"esbuild-plugin-resolve": "2.0.0",
|
|
31
31
|
"wrangler": "3.0.1",
|
|
32
|
+
"miniflare": "3.0.1",
|
|
33
|
+
"vite": "4.3.9",
|
|
34
|
+
"express": "4.18.2",
|
|
32
35
|
"node-watch": "0.7.3",
|
|
33
36
|
"dotenv": "16.0.3",
|
|
34
37
|
"jest": "29.5.0"
|
|
@@ -40,7 +43,7 @@
|
|
|
40
43
|
"react-helmet-async": "*"
|
|
41
44
|
},
|
|
42
45
|
"bin": {
|
|
43
|
-
"edge-city": "cli.js"
|
|
46
|
+
"edge-city": "bin/cli.js"
|
|
44
47
|
},
|
|
45
48
|
"jest": {
|
|
46
49
|
"verbose": true
|
lib/router.js
ADDED
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import {
|
|
2
|
+
Suspense, createContext, useContext, useState, useEffect, useTransition, useCallback
|
|
3
|
+
} from "react";
|
|
4
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
5
|
+
import { HelmetProvider } from 'react-helmet-async';
|
|
6
|
+
|
|
7
|
+
export const RouterContext = createContext(undefined);
|
|
8
|
+
export const RouterProvider = ({ router, history, helmetContext, App }) => {
|
|
9
|
+
const [_, startTransition] = useTransition();
|
|
10
|
+
const [pathname, setPathname] = useState(history.location.pathname);
|
|
11
|
+
const page = router.lookup(pathname) || router.lookup("/_404");
|
|
12
|
+
useEffect(() => {
|
|
13
|
+
return history.listen(({ location }) => {
|
|
14
|
+
// this causes 2 renders to happen but stops jitter or flash due to React.lazy
|
|
15
|
+
startTransition(() => {
|
|
16
|
+
setPathname(location.pathname);
|
|
17
|
+
})
|
|
18
|
+
});
|
|
19
|
+
}, []);
|
|
20
|
+
return _jsx(RouterContext.Provider, {
|
|
21
|
+
value: {
|
|
22
|
+
history,
|
|
23
|
+
params: page.params || {},
|
|
24
|
+
},
|
|
25
|
+
children: _jsx(Suspense, {
|
|
26
|
+
fallback: _jsx("div", {}, "Routing...."),
|
|
27
|
+
children: _jsx(HelmetProvider, {
|
|
28
|
+
context: helmetContext,
|
|
29
|
+
children: _jsx(App, {
|
|
30
|
+
children: _jsx(page, {}),
|
|
31
|
+
})
|
|
32
|
+
}),
|
|
33
|
+
}),
|
|
34
|
+
})
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
export const useRouter = () => {
|
|
38
|
+
const { history, params } = useContext(RouterContext);
|
|
39
|
+
return {
|
|
40
|
+
pathname: history.location.pathname,
|
|
41
|
+
query: new URLSearchParams(history.location.search),
|
|
42
|
+
params,
|
|
43
|
+
push: history.push,
|
|
44
|
+
replace: history.replace,
|
|
45
|
+
forward: history.forward,
|
|
46
|
+
back: history.back,
|
|
47
|
+
reload: () => window.location.reload(),
|
|
48
|
+
};
|
|
49
|
+
}
|
lib/server/dev-server.js
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import http from "http";
|
|
2
|
+
|
|
3
|
+
const server = http.createServer((req, res) => {
|
|
4
|
+
res.writeHead(200, { 'Content-Type': 'application/json' });
|
|
5
|
+
res.end(JSON.stringify({
|
|
6
|
+
data: 'Hello World!',
|
|
7
|
+
}))
|
|
8
|
+
})
|
|
9
|
+
server.listen(3000);
|
|
10
|
+
server.on('error', (e) => {
|
|
11
|
+
if (e.code === 'EADDRINUSE') {
|
|
12
|
+
console.log('Address in use, retrying...');
|
|
13
|
+
setTimeout(() => {
|
|
14
|
+
server.close();
|
|
15
|
+
server.listen(PORT, HOST);
|
|
16
|
+
}, 1000);
|
|
17
|
+
}
|
|
18
|
+
});
|
renderApi.js → lib/server/renderApi.js
RENAMED
|
File without changes
|
renderPage.js → lib/server/renderPage.js
RENAMED
|
@@ -5,7 +5,7 @@ import { createRouter } from "radix3";
|
|
|
5
5
|
import { renderToReadableStream } from "react-dom/server";
|
|
6
6
|
import isbot from "isbot";
|
|
7
7
|
import routemap from '/routemap.json' assert {type: 'json'};
|
|
8
|
-
import { RouterProvider } from "./
|
|
8
|
+
import { RouterProvider } from "../router";
|
|
9
9
|
|
|
10
10
|
const stringToStream = (str) => {
|
|
11
11
|
return new ReadableStream({
|
pnpm-lock.yaml
CHANGED
|
@@ -2,7 +2,77 @@ lockfileVersion: '6.0'
|
|
|
2
2
|
|
|
3
3
|
importers:
|
|
4
4
|
|
|
5
|
+
docs:
|
|
6
|
+
dependencies:
|
|
7
|
+
'@markdoc/markdoc':
|
|
8
|
+
specifier: 0.2.2
|
|
9
|
+
version: 0.2.2
|
|
10
|
+
|
|
11
|
+
example:
|
|
12
|
+
dependencies:
|
|
13
|
+
'@neondatabase/serverless':
|
|
14
|
+
specifier: 0.4.5
|
|
15
|
+
version: 0.4.5
|
|
16
|
+
drizzle-orm:
|
|
17
|
+
specifier: 0.26.0
|
|
18
|
+
version: 0.26.0(@neondatabase/serverless@0.4.5)(postgres@3.3.4)
|
|
19
|
+
edge-city:
|
|
20
|
+
specifier: workspace:*
|
|
21
|
+
version: link:../lib
|
|
22
|
+
react:
|
|
23
|
+
specifier: 18.2.0
|
|
24
|
+
version: 18.2.0
|
|
25
|
+
react-aria-components:
|
|
26
|
+
specifier: 1.0.0-alpha.3
|
|
27
|
+
version: 1.0.0-alpha.3(react-dom@18.2.0)(react@18.2.0)
|
|
28
|
+
react-dom:
|
|
29
|
+
specifier: 18.2.0
|
|
30
|
+
version: 18.2.0(react@18.2.0)
|
|
31
|
+
react-error-boundary:
|
|
32
|
+
specifier: 4.0.4
|
|
33
|
+
version: 4.0.4(react@18.2.0)
|
|
34
|
+
react-helmet-async:
|
|
35
|
+
specifier: 1.3.0
|
|
36
|
+
version: 1.3.0(react-dom@18.2.0)(react@18.2.0)
|
|
37
|
+
react-hook-form:
|
|
38
|
+
specifier: 7.43.9
|
|
39
|
+
version: 7.43.9(react@18.2.0)
|
|
40
|
+
sql-highlight:
|
|
41
|
+
specifier: ^4.3.2
|
|
42
|
+
version: 4.3.2
|
|
5
|
-
|
|
43
|
+
zod:
|
|
44
|
+
specifier: ^3.21.4
|
|
45
|
+
version: 3.21.4
|
|
46
|
+
devDependencies:
|
|
47
|
+
'@playwright/test':
|
|
48
|
+
specifier: ^1.31.2
|
|
49
|
+
version: 1.31.2
|
|
50
|
+
'@vitejs/plugin-react':
|
|
51
|
+
specifier: 4.0.0
|
|
52
|
+
version: 4.0.0(vite@4.3.9)
|
|
53
|
+
drizzle-kit:
|
|
54
|
+
specifier: 0.18.0
|
|
55
|
+
version: 0.18.0
|
|
56
|
+
eslint:
|
|
57
|
+
specifier: ^8.35.0
|
|
58
|
+
version: 8.35.0
|
|
59
|
+
eslint-config-react-app:
|
|
60
|
+
specifier: ^7.0.1
|
|
61
|
+
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)
|
|
62
|
+
postgres:
|
|
63
|
+
specifier: 3.3.4
|
|
64
|
+
version: 3.3.4
|
|
65
|
+
prettier:
|
|
66
|
+
specifier: ^2.8.8
|
|
67
|
+
version: 2.8.8
|
|
68
|
+
vite:
|
|
69
|
+
specifier: 4.3.9
|
|
70
|
+
version: 4.3.9
|
|
71
|
+
wrangler:
|
|
72
|
+
specifier: 3.0.1
|
|
73
|
+
version: 3.0.1
|
|
74
|
+
|
|
75
|
+
lib:
|
|
6
76
|
dependencies:
|
|
7
77
|
history:
|
|
8
78
|
specifier: ^5.3.0
|
|
@@ -41,6 +111,9 @@ importers:
|
|
|
41
111
|
esbuild-plugin-resolve:
|
|
42
112
|
specifier: 2.0.0
|
|
43
113
|
version: 2.0.0
|
|
114
|
+
express:
|
|
115
|
+
specifier: 4.18.2
|
|
116
|
+
version: 4.18.2
|
|
44
117
|
fs-extra:
|
|
45
118
|
specifier: 11.1.1
|
|
46
119
|
version: 11.1.1
|
|
@@ -50,6 +123,9 @@ importers:
|
|
|
50
123
|
mime-types:
|
|
51
124
|
specifier: 2.1.35
|
|
52
125
|
version: 2.1.35
|
|
126
|
+
miniflare:
|
|
127
|
+
specifier: 3.0.1
|
|
128
|
+
version: 3.0.1
|
|
53
129
|
ms:
|
|
54
130
|
specifier: 2.1.3
|
|
55
131
|
version: 2.1.3
|
|
@@ -68,6 +144,9 @@ importers:
|
|
|
68
144
|
postcss-nesting:
|
|
69
145
|
specifier: ^11.2.1
|
|
70
146
|
version: 11.2.1(postcss@8.4.21)
|
|
147
|
+
vite:
|
|
148
|
+
specifier: 4.3.9
|
|
149
|
+
version: 4.3.9
|
|
71
150
|
walkdir:
|
|
72
151
|
specifier: 0.4.1
|
|
73
152
|
version: 0.4.1
|
|
@@ -78,70 +157,6 @@ importers:
|
|
|
78
157
|
specifier: 17.7.2
|
|
79
158
|
version: 17.7.2
|
|
80
159
|
|
|
81
|
-
docs:
|
|
82
|
-
dependencies:
|
|
83
|
-
'@markdoc/markdoc':
|
|
84
|
-
specifier: 0.2.2
|
|
85
|
-
version: 0.2.2(react@18.2.0)
|
|
86
|
-
|
|
87
|
-
example:
|
|
88
|
-
dependencies:
|
|
89
|
-
'@neondatabase/serverless':
|
|
90
|
-
specifier: 0.4.5
|
|
91
|
-
version: 0.4.5
|
|
92
|
-
drizzle-orm:
|
|
93
|
-
specifier: 0.26.0
|
|
94
|
-
version: 0.26.0(@neondatabase/serverless@0.4.5)(postgres@3.3.4)
|
|
95
|
-
edge-city:
|
|
96
|
-
specifier: workspace:*
|
|
97
|
-
version: link:..
|
|
98
|
-
react:
|
|
99
|
-
specifier: 18.2.0
|
|
100
|
-
version: 18.2.0
|
|
101
|
-
react-aria-components:
|
|
102
|
-
specifier: 1.0.0-alpha.3
|
|
103
|
-
version: 1.0.0-alpha.3(react-dom@18.2.0)(react@18.2.0)
|
|
104
|
-
react-dom:
|
|
105
|
-
specifier: 18.2.0
|
|
106
|
-
version: 18.2.0(react@18.2.0)
|
|
107
|
-
react-error-boundary:
|
|
108
|
-
specifier: 4.0.4
|
|
109
|
-
version: 4.0.4(react@18.2.0)
|
|
110
|
-
react-helmet-async:
|
|
111
|
-
specifier: 1.3.0
|
|
112
|
-
version: 1.3.0(react-dom@18.2.0)(react@18.2.0)
|
|
113
|
-
react-hook-form:
|
|
114
|
-
specifier: 7.43.9
|
|
115
|
-
version: 7.43.9(react@18.2.0)
|
|
116
|
-
sql-highlight:
|
|
117
|
-
specifier: ^4.3.2
|
|
118
|
-
version: 4.3.2
|
|
119
|
-
zod:
|
|
120
|
-
specifier: ^3.21.4
|
|
121
|
-
version: 3.21.4
|
|
122
|
-
devDependencies:
|
|
123
|
-
'@playwright/test':
|
|
124
|
-
specifier: ^1.31.2
|
|
125
|
-
version: 1.31.2
|
|
126
|
-
drizzle-kit:
|
|
127
|
-
specifier: 0.18.0
|
|
128
|
-
version: 0.18.0
|
|
129
|
-
eslint:
|
|
130
|
-
specifier: ^8.35.0
|
|
131
|
-
version: 8.35.0
|
|
132
|
-
eslint-config-react-app:
|
|
133
|
-
specifier: ^7.0.1
|
|
134
|
-
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)
|
|
135
|
-
postgres:
|
|
136
|
-
specifier: 3.3.4
|
|
137
|
-
version: 3.3.4
|
|
138
|
-
prettier:
|
|
139
|
-
specifier: ^2.8.8
|
|
140
|
-
version: 2.8.8
|
|
141
|
-
wrangler:
|
|
142
|
-
specifier: 3.0.1
|
|
143
|
-
version: 3.0.1
|
|
144
|
-
|
|
145
160
|
packages:
|
|
146
161
|
|
|
147
162
|
/@ampproject/remapping@2.2.1:
|
|
@@ -1172,6 +1187,26 @@ packages:
|
|
|
1172
1187
|
'@babel/plugin-transform-react-jsx': 7.21.5(@babel/core@7.21.8)
|
|
1173
1188
|
dev: true
|
|
1174
1189
|
|
|
1190
|
+
/@babel/plugin-transform-react-jsx-self@7.21.0(@babel/core@7.21.8):
|
|
1191
|
+
resolution: {integrity: sha512-f/Eq+79JEu+KUANFks9UZCcvydOOGMgF7jBrcwjHa5jTZD8JivnhCJYvmlhR/WTXBWonDExPoW0eO/CR4QJirA==}
|
|
1192
|
+
engines: {node: '>=6.9.0'}
|
|
1193
|
+
peerDependencies:
|
|
1194
|
+
'@babel/core': ^7.0.0-0
|
|
1195
|
+
dependencies:
|
|
1196
|
+
'@babel/core': 7.21.8
|
|
1197
|
+
'@babel/helper-plugin-utils': 7.21.5
|
|
1198
|
+
dev: true
|
|
1199
|
+
|
|
1200
|
+
/@babel/plugin-transform-react-jsx-source@7.19.6(@babel/core@7.21.8):
|
|
1201
|
+
resolution: {integrity: sha512-RpAi004QyMNisst/pvSanoRdJ4q+jMCWyk9zdw/CyLB9j8RXEahodR6l2GyttDRyEVWZtbN+TpLiHJ3t34LbsQ==}
|
|
1202
|
+
engines: {node: '>=6.9.0'}
|
|
1203
|
+
peerDependencies:
|
|
1204
|
+
'@babel/core': ^7.0.0-0
|
|
1205
|
+
dependencies:
|
|
1206
|
+
'@babel/core': 7.21.8
|
|
1207
|
+
'@babel/helper-plugin-utils': 7.21.5
|
|
1208
|
+
dev: true
|
|
1209
|
+
|
|
1175
1210
|
/@babel/plugin-transform-react-jsx@7.21.5(@babel/core@7.21.8):
|
|
1176
1211
|
resolution: {integrity: sha512-ELdlq61FpoEkHO6gFRpfj0kUgSwQTGoaEU8eMRoS8Dv3v6e7BjEAj5WMtIBRdHUeAioMhKP5HyxNzNnP+heKbA==}
|
|
1177
1212
|
engines: {node: '>=6.9.0'}
|
|
@@ -2410,7 +2445,7 @@ packages:
|
|
|
2410
2445
|
'@jridgewell/sourcemap-codec': 1.4.14
|
|
2411
2446
|
dev: true
|
|
2412
2447
|
|
|
2413
|
-
/@markdoc/markdoc@0.2.2
|
|
2448
|
+
/@markdoc/markdoc@0.2.2:
|
|
2414
2449
|
resolution: {integrity: sha512-0TiD9jmA5h5znN4lxo7HECAu3WieU5g5vUsfByeucrdR/x88hEilpt16EydFyJwJddQ/3w5HQgW7Ovy62r4cyw==}
|
|
2415
2450
|
engines: {node: '>=14.7.0'}
|
|
2416
2451
|
peerDependencies:
|
|
@@ -2421,8 +2456,6 @@ packages:
|
|
|
2421
2456
|
optional: true
|
|
2422
2457
|
react:
|
|
2423
2458
|
optional: true
|
|
2424
|
-
dependencies:
|
|
2425
|
-
react: 18.2.0
|
|
2426
2459
|
optionalDependencies:
|
|
2427
2460
|
'@types/markdown-it': 12.2.3
|
|
2428
2461
|
dev: false
|
|
@@ -3955,6 +3988,29 @@ packages:
|
|
|
3955
3988
|
eslint-visitor-keys: 3.4.1
|
|
3956
3989
|
dev: true
|
|
3957
3990
|
|
|
3991
|
+
/@vitejs/plugin-react@4.0.0(vite@4.3.9):
|
|
3992
|
+
resolution: {integrity: sha512-HX0XzMjL3hhOYm+0s95pb0Z7F8O81G7joUHgfDd/9J/ZZf5k4xX6QAMFkKsHFxaHlf6X7GD7+XuaZ66ULiJuhQ==}
|
|
3993
|
+
engines: {node: ^14.18.0 || >=16.0.0}
|
|
3994
|
+
peerDependencies:
|
|
3995
|
+
vite: ^4.2.0
|
|
3996
|
+
dependencies:
|
|
3997
|
+
'@babel/core': 7.21.8
|
|
3998
|
+
'@babel/plugin-transform-react-jsx-self': 7.21.0(@babel/core@7.21.8)
|
|
3999
|
+
'@babel/plugin-transform-react-jsx-source': 7.19.6(@babel/core@7.21.8)
|
|
4000
|
+
react-refresh: 0.14.0
|
|
4001
|
+
vite: 4.3.9
|
|
4002
|
+
transitivePeerDependencies:
|
|
4003
|
+
- supports-color
|
|
4004
|
+
dev: true
|
|
4005
|
+
|
|
4006
|
+
/accepts@1.3.8:
|
|
4007
|
+
resolution: {integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==}
|
|
4008
|
+
engines: {node: '>= 0.6'}
|
|
4009
|
+
dependencies:
|
|
4010
|
+
mime-types: 2.1.35
|
|
4011
|
+
negotiator: 0.6.3
|
|
4012
|
+
dev: true
|
|
4013
|
+
|
|
3958
4014
|
/acorn-jsx@5.3.2(acorn@8.8.2):
|
|
3959
4015
|
resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==}
|
|
3960
4016
|
peerDependencies:
|
|
@@ -4045,6 +4101,10 @@ packages:
|
|
|
4045
4101
|
is-array-buffer: 3.0.2
|
|
4046
4102
|
dev: true
|
|
4047
4103
|
|
|
4104
|
+
/array-flatten@1.1.1:
|
|
4105
|
+
resolution: {integrity: sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==}
|
|
4106
|
+
dev: true
|
|
4107
|
+
|
|
4048
4108
|
/array-includes@3.1.6:
|
|
4049
4109
|
resolution: {integrity: sha512-sgTbLvL6cNnw24FnbaDyjmvddQ2ML8arZsgaJhoABMoplz/4QRhtrYS+alr1BUM1Bwp6dhx8vVCBSLG+StwOFw==}
|
|
4050
4110
|
engines: {node: '>= 0.4'}
|
|
@@ -4317,6 +4377,26 @@ packages:
|
|
|
4317
4377
|
resolution: {integrity: sha512-F1+K8EbfOZE49dtoPtmxUQrpXaBIl3ICvasLh+nJta0xkz+9kF/7uet9fLnwKqhDrmj6g+6K3Tw9yQPUg2ka5g==}
|
|
4318
4378
|
dev: true
|
|
4319
4379
|
|
|
4380
|
+
/body-parser@1.20.1:
|
|
4381
|
+
resolution: {integrity: sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==}
|
|
4382
|
+
engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16}
|
|
4383
|
+
dependencies:
|
|
4384
|
+
bytes: 3.1.2
|
|
4385
|
+
content-type: 1.0.5
|
|
4386
|
+
debug: 2.6.9
|
|
4387
|
+
depd: 2.0.0
|
|
4388
|
+
destroy: 1.2.0
|
|
4389
|
+
http-errors: 2.0.0
|
|
4390
|
+
iconv-lite: 0.4.24
|
|
4391
|
+
on-finished: 2.4.1
|
|
4392
|
+
qs: 6.11.0
|
|
4393
|
+
raw-body: 2.5.1
|
|
4394
|
+
type-is: 1.6.18
|
|
4395
|
+
unpipe: 1.0.0
|
|
4396
|
+
transitivePeerDependencies:
|
|
4397
|
+
- supports-color
|
|
4398
|
+
dev: true
|
|
4399
|
+
|
|
4320
4400
|
/brace-expansion@1.1.11:
|
|
4321
4401
|
resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==}
|
|
4322
4402
|
dependencies:
|
|
@@ -4540,6 +4620,18 @@ packages:
|
|
|
4540
4620
|
resolution: {integrity: sha512-JsPKdmh8ZkmnHxDk55FZ1TqVLvEQTvoByJZRN9jzI0UjxK/QgAmsphz7PGtqgPieQZ/CQcHWXCR7ATDNhGe+YA==}
|
|
4541
4621
|
dev: true
|
|
4542
4622
|
|
|
4623
|
+
/content-disposition@0.5.4:
|
|
4624
|
+
resolution: {integrity: sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==}
|
|
4625
|
+
engines: {node: '>= 0.6'}
|
|
4626
|
+
dependencies:
|
|
4627
|
+
safe-buffer: 5.2.1
|
|
4628
|
+
dev: true
|
|
4629
|
+
|
|
4630
|
+
/content-type@1.0.5:
|
|
4631
|
+
resolution: {integrity: sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==}
|
|
4632
|
+
engines: {node: '>= 0.6'}
|
|
4633
|
+
dev: true
|
|
4634
|
+
|
|
4543
4635
|
/convert-source-map@1.9.0:
|
|
4544
4636
|
resolution: {integrity: sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==}
|
|
4545
4637
|
dev: true
|
|
@@ -4548,6 +4640,10 @@ packages:
|
|
|
4548
4640
|
resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==}
|
|
4549
4641
|
dev: true
|
|
4550
4642
|
|
|
4643
|
+
/cookie-signature@1.0.6:
|
|
4644
|
+
resolution: {integrity: sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==}
|
|
4645
|
+
dev: true
|
|
4646
|
+
|
|
4551
4647
|
/cookie@0.5.0:
|
|
4552
4648
|
resolution: {integrity: sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==}
|
|
4553
4649
|
engines: {node: '>= 0.6'}
|
|
@@ -4600,6 +4696,17 @@ packages:
|
|
|
4600
4696
|
resolution: {integrity: sha512-ND9qDTLc6diwj+Xe5cdAgVTbLVdXbtxTJRXRhli8Mowuaan+0EJOtdqJ0QCHNSSPyoXGx9HX2/VMnKeC34AChA==}
|
|
4601
4697
|
dev: true
|
|
4602
4698
|
|
|
4699
|
+
/debug@2.6.9:
|
|
4700
|
+
resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==}
|
|
4701
|
+
peerDependencies:
|
|
4702
|
+
supports-color: '*'
|
|
4703
|
+
peerDependenciesMeta:
|
|
4704
|
+
supports-color:
|
|
4705
|
+
optional: true
|
|
4706
|
+
dependencies:
|
|
4707
|
+
ms: 2.0.0
|
|
4708
|
+
dev: true
|
|
4709
|
+
|
|
4603
4710
|
/debug@3.2.7:
|
|
4604
4711
|
resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==}
|
|
4605
4712
|
peerDependencies:
|
|
@@ -4679,6 +4786,16 @@ packages:
|
|
|
4679
4786
|
object-keys: 1.1.1
|
|
4680
4787
|
dev: true
|
|
4681
4788
|
|
|
4789
|
+
/depd@2.0.0:
|
|
4790
|
+
resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==}
|
|
4791
|
+
engines: {node: '>= 0.8'}
|
|
4792
|
+
dev: true
|
|
4793
|
+
|
|
4794
|
+
/destroy@1.2.0:
|
|
4795
|
+
resolution: {integrity: sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==}
|
|
4796
|
+
engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16}
|
|
4797
|
+
dev: true
|
|
4798
|
+
|
|
4682
4799
|
/detect-libc@2.0.1:
|
|
4683
4800
|
resolution: {integrity: sha512-463v3ZeIrcWtdgIg6vI6XUncguvr2TnGl4SzDXinkt9mSLpBJKXT3mW6xT3VQdDN11+WVs29pgvivTc4Lp8v+w==}
|
|
4684
4801
|
engines: {node: '>=8'}
|
|
@@ -4814,6 +4931,10 @@ packages:
|
|
|
4814
4931
|
postgres: 3.3.4
|
|
4815
4932
|
dev: false
|
|
4816
4933
|
|
|
4934
|
+
/ee-first@1.1.1:
|
|
4935
|
+
resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==}
|
|
4936
|
+
dev: true
|
|
4937
|
+
|
|
4817
4938
|
/electron-to-chromium@1.4.402:
|
|
4818
4939
|
resolution: {integrity: sha512-gWYvJSkohOiBE6ecVYXkrDgNaUjo47QEKK0kQzmWyhkH+yoYiG44bwuicTGNSIQRG3WDMsWVZJLRnJnLNkbWvA==}
|
|
4819
4940
|
dev: true
|
|
@@ -4831,6 +4952,11 @@ packages:
|
|
|
4831
4952
|
resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==}
|
|
4832
4953
|
dev: true
|
|
4833
4954
|
|
|
4955
|
+
/encodeurl@1.0.2:
|
|
4956
|
+
resolution: {integrity: sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==}
|
|
4957
|
+
engines: {node: '>= 0.8'}
|
|
4958
|
+
dev: true
|
|
4959
|
+
|
|
4834
4960
|
/end-of-stream@1.4.4:
|
|
4835
4961
|
resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==}
|
|
4836
4962
|
dependencies:
|
|
@@ -5245,6 +5371,10 @@ packages:
|
|
|
5245
5371
|
engines: {node: '>=6'}
|
|
5246
5372
|
dev: true
|
|
5247
5373
|
|
|
5374
|
+
/escape-html@1.0.3:
|
|
5375
|
+
resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==}
|
|
5376
|
+
dev: true
|
|
5377
|
+
|
|
5248
5378
|
/escape-string-regexp@1.0.5:
|
|
5249
5379
|
resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==}
|
|
5250
5380
|
engines: {node: '>=0.8.0'}
|
|
@@ -5260,7 +5390,7 @@ packages:
|
|
|
5260
5390
|
engines: {node: '>=10'}
|
|
5261
5391
|
dev: true
|
|
5262
5392
|
|
|
5263
|
-
/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)(
|
|
5393
|
+
/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):
|
|
5264
5394
|
resolution: {integrity: sha512-K6rNzvkIeHaTd8m/QEh1Zko0KI7BACWkkneSs6s9cKZC/J27X3eZR6Upt1jkmZ/4FK+XUOPPxMEN7+lbUXfSlA==}
|
|
5265
5395
|
engines: {node: '>=14.0.0'}
|
|
5266
5396
|
peerDependencies:
|
|
@@ -5280,7 +5410,7 @@ packages:
|
|
|
5280
5410
|
eslint: 8.35.0
|
|
5281
5411
|
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)
|
|
5282
5412
|
eslint-plugin-import: 2.27.5(@typescript-eslint/parser@5.59.6)(eslint@8.35.0)
|
|
5283
|
-
eslint-plugin-jest: 25.7.0(@typescript-eslint/eslint-plugin@5.59.6)(eslint@8.35.0)(
|
|
5413
|
+
eslint-plugin-jest: 25.7.0(@typescript-eslint/eslint-plugin@5.59.6)(eslint@8.35.0)(typescript@5.0.4)
|
|
5284
5414
|
eslint-plugin-jsx-a11y: 6.7.1(eslint@8.35.0)
|
|
5285
5415
|
eslint-plugin-react: 7.32.2(eslint@8.35.0)
|
|
5286
5416
|
eslint-plugin-react-hooks: 4.6.0(eslint@8.35.0)
|
|
@@ -5382,7 +5512,7 @@ packages:
|
|
|
5382
5512
|
- supports-color
|
|
5383
5513
|
dev: true
|
|
5384
5514
|
|
|
5385
|
-
/eslint-plugin-jest@25.7.0(@typescript-eslint/eslint-plugin@5.59.6)(eslint@8.35.0)(
|
|
5515
|
+
/eslint-plugin-jest@25.7.0(@typescript-eslint/eslint-plugin@5.59.6)(eslint@8.35.0)(typescript@5.0.4):
|
|
5386
5516
|
resolution: {integrity: sha512-PWLUEXeeF7C9QGKqvdSbzLOiLTx+bno7/HC9eefePfEb257QFHg7ye3dh80AZVkaa/RQsBB1Q/ORQvg2X7F0NQ==}
|
|
5387
5517
|
engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
|
|
5388
5518
|
peerDependencies:
|
|
@@ -5398,7 +5528,6 @@ packages:
|
|
|
5398
5528
|
'@typescript-eslint/eslint-plugin': 5.59.6(@typescript-eslint/parser@5.59.6)(eslint@8.35.0)(typescript@5.0.4)
|
|
5399
5529
|
'@typescript-eslint/experimental-utils': 5.59.6(eslint@8.35.0)(typescript@5.0.4)
|
|
5400
5530
|
eslint: 8.35.0
|
|
5401
|
-
jest: 29.5.0
|
|
5402
5531
|
transitivePeerDependencies:
|
|
5403
5532
|
- supports-color
|
|
5404
5533
|
- typescript
|
|
@@ -5608,6 +5737,11 @@ packages:
|
|
|
5608
5737
|
engines: {node: '>=0.10.0'}
|
|
5609
5738
|
dev: true
|
|
5610
5739
|
|
|
5740
|
+
/etag@1.8.1:
|
|
5741
|
+
resolution: {integrity: sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==}
|
|
5742
|
+
engines: {node: '>= 0.6'}
|
|
5743
|
+
dev: true
|
|
5744
|
+
|
|
5611
5745
|
/event-emitter@0.3.5:
|
|
5612
5746
|
resolution: {integrity: sha512-D9rRn9y7kLPnJ+hMq7S/nhvoKwwvVJahBi2BPmx3bvbsEdK3W9ii8cBSGjP+72/LnM4n6fo3+dkCX5FeTQruXA==}
|
|
5613
5747
|
dependencies:
|
|
@@ -5656,6 +5790,45 @@ packages:
|
|
|
5656
5790
|
jest-util: 29.5.0
|
|
5657
5791
|
dev: true
|
|
5658
5792
|
|
|
5793
|
+
/express@4.18.2:
|
|
5794
|
+
resolution: {integrity: sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==}
|
|
5795
|
+
engines: {node: '>= 0.10.0'}
|
|
5796
|
+
dependencies:
|
|
5797
|
+
accepts: 1.3.8
|
|
5798
|
+
array-flatten: 1.1.1
|
|
5799
|
+
body-parser: 1.20.1
|
|
5800
|
+
content-disposition: 0.5.4
|
|
5801
|
+
content-type: 1.0.5
|
|
5802
|
+
cookie: 0.5.0
|
|
5803
|
+
cookie-signature: 1.0.6
|
|
5804
|
+
debug: 2.6.9
|
|
5805
|
+
depd: 2.0.0
|
|
5806
|
+
encodeurl: 1.0.2
|
|
5807
|
+
escape-html: 1.0.3
|
|
5808
|
+
etag: 1.8.1
|
|
5809
|
+
finalhandler: 1.2.0
|
|
5810
|
+
fresh: 0.5.2
|
|
5811
|
+
http-errors: 2.0.0
|
|
5812
|
+
merge-descriptors: 1.0.1
|
|
5813
|
+
methods: 1.1.2
|
|
5814
|
+
on-finished: 2.4.1
|
|
5815
|
+
parseurl: 1.3.3
|
|
5816
|
+
path-to-regexp: 0.1.7
|
|
5817
|
+
proxy-addr: 2.0.7
|
|
5818
|
+
qs: 6.11.0
|
|
5819
|
+
range-parser: 1.2.1
|
|
5820
|
+
safe-buffer: 5.2.1
|
|
5821
|
+
send: 0.18.0
|
|
5822
|
+
serve-static: 1.15.0
|
|
5823
|
+
setprototypeof: 1.2.0
|
|
5824
|
+
statuses: 2.0.1
|
|
5825
|
+
type-is: 1.6.18
|
|
5826
|
+
utils-merge: 1.0.1
|
|
5827
|
+
vary: 1.1.2
|
|
5828
|
+
transitivePeerDependencies:
|
|
5829
|
+
- supports-color
|
|
5830
|
+
dev: true
|
|
5831
|
+
|
|
5659
5832
|
/ext@1.7.0:
|
|
5660
5833
|
resolution: {integrity: sha512-6hxeJYaL110a9b5TEJSj0gojyHQAmA2ch5Os+ySCiA1QGdS697XWY1pzsrSjqA9LDEEgdB/KypIlR59RcLuHYw==}
|
|
5661
5834
|
dependencies:
|
|
@@ -5715,6 +5888,21 @@ packages:
|
|
|
5715
5888
|
to-regex-range: 5.0.1
|
|
5716
5889
|
dev: true
|
|
5717
5890
|
|
|
5891
|
+
/finalhandler@1.2.0:
|
|
5892
|
+
resolution: {integrity: sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==}
|
|
5893
|
+
engines: {node: '>= 0.8'}
|
|
5894
|
+
dependencies:
|
|
5895
|
+
debug: 2.6.9
|
|
5896
|
+
encodeurl: 1.0.2
|
|
5897
|
+
escape-html: 1.0.3
|
|
5898
|
+
on-finished: 2.4.1
|
|
5899
|
+
parseurl: 1.3.3
|
|
5900
|
+
statuses: 2.0.1
|
|
5901
|
+
unpipe: 1.0.0
|
|
5902
|
+
transitivePeerDependencies:
|
|
5903
|
+
- supports-color
|
|
5904
|
+
dev: true
|
|
5905
|
+
|
|
5718
5906
|
/find-up@4.1.0:
|
|
5719
5907
|
resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==}
|
|
5720
5908
|
engines: {node: '>=8'}
|
|
@@ -5749,10 +5937,20 @@ packages:
|
|
|
5749
5937
|
is-callable: 1.2.7
|
|
5750
5938
|
dev: true
|
|
5751
5939
|
|
|
5940
|
+
/forwarded@0.2.0:
|
|
5941
|
+
resolution: {integrity: sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==}
|
|
5942
|
+
engines: {node: '>= 0.6'}
|
|
5943
|
+
dev: true
|
|
5944
|
+
|
|
5752
5945
|
/fraction.js@4.2.0:
|
|
5753
5946
|
resolution: {integrity: sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA==}
|
|
5754
5947
|
dev: true
|
|
5755
5948
|
|
|
5949
|
+
/fresh@0.5.2:
|
|
5950
|
+
resolution: {integrity: sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==}
|
|
5951
|
+
engines: {node: '>= 0.6'}
|
|
5952
|
+
dev: true
|
|
5953
|
+
|
|
5756
5954
|
/fs-constants@1.0.0:
|
|
5757
5955
|
resolution: {integrity: sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==}
|
|
5758
5956
|
dev: true
|
|
@@ -5998,11 +6196,29 @@ packages:
|
|
|
5998
6196
|
resolution: {integrity: sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==}
|
|
5999
6197
|
dev: true
|
|
6000
6198
|
|
|
6199
|
+
/http-errors@2.0.0:
|
|
6200
|
+
resolution: {integrity: sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==}
|
|
6201
|
+
engines: {node: '>= 0.8'}
|
|
6202
|
+
dependencies:
|
|
6203
|
+
depd: 2.0.0
|
|
6204
|
+
inherits: 2.0.4
|
|
6205
|
+
setprototypeof: 1.2.0
|
|
6206
|
+
statuses: 2.0.1
|
|
6207
|
+
toidentifier: 1.0.1
|
|
6208
|
+
dev: true
|
|
6209
|
+
|
|
6001
6210
|
/human-signals@2.1.0:
|
|
6002
6211
|
resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==}
|
|
6003
6212
|
engines: {node: '>=10.17.0'}
|
|
6004
6213
|
dev: true
|
|
6005
6214
|
|
|
6215
|
+
/iconv-lite@0.4.24:
|
|
6216
|
+
resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==}
|
|
6217
|
+
engines: {node: '>=0.10.0'}
|
|
6218
|
+
dependencies:
|
|
6219
|
+
safer-buffer: 2.1.2
|
|
6220
|
+
dev: true
|
|
6221
|
+
|
|
6006
6222
|
/ieee754@1.2.1:
|
|
6007
6223
|
resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==}
|
|
6008
6224
|
dev: true
|
|
@@ -6073,6 +6289,11 @@ packages:
|
|
|
6073
6289
|
loose-envify: 1.4.0
|
|
6074
6290
|
dev: false
|
|
6075
6291
|
|
|
6292
|
+
/ipaddr.js@1.9.1:
|
|
6293
|
+
resolution: {integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==}
|
|
6294
|
+
engines: {node: '>= 0.10'}
|
|
6295
|
+
dev: true
|
|
6296
|
+
|
|
6076
6297
|
/is-arguments@1.1.1:
|
|
6077
6298
|
resolution: {integrity: sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==}
|
|
6078
6299
|
engines: {node: '>= 0.4'}
|
|
@@ -6911,6 +7132,11 @@ packages:
|
|
|
6911
7132
|
tmpl: 1.0.5
|
|
6912
7133
|
dev: true
|
|
6913
7134
|
|
|
7135
|
+
/media-typer@0.3.0:
|
|
7136
|
+
resolution: {integrity: sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==}
|
|
7137
|
+
engines: {node: '>= 0.6'}
|
|
7138
|
+
dev: true
|
|
7139
|
+
|
|
6914
7140
|
/memoizee@0.4.15:
|
|
6915
7141
|
resolution: {integrity: sha512-UBWmJpLZd5STPm7PMUlOw/TSy972M+z8gcyQ5veOnSDRREz/0bmpyTfKt3/51DhEBqCZQn1udM/5flcSPYhkdQ==}
|
|
6916
7142
|
dependencies:
|
|
@@ -6924,6 +7150,10 @@ packages:
|
|
|
6924
7150
|
timers-ext: 0.1.7
|
|
6925
7151
|
dev: true
|
|
6926
7152
|
|
|
7153
|
+
/merge-descriptors@1.0.1:
|
|
7154
|
+
resolution: {integrity: sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==}
|
|
7155
|
+
dev: true
|
|
7156
|
+
|
|
6927
7157
|
/merge-stream@2.0.0:
|
|
6928
7158
|
resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==}
|
|
6929
7159
|
dev: true
|
|
@@ -6933,6 +7163,11 @@ packages:
|
|
|
6933
7163
|
engines: {node: '>= 8'}
|
|
6934
7164
|
dev: true
|
|
6935
7165
|
|
|
7166
|
+
/methods@1.1.2:
|
|
7167
|
+
resolution: {integrity: sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==}
|
|
7168
|
+
engines: {node: '>= 0.6'}
|
|
7169
|
+
dev: true
|
|
7170
|
+
|
|
6936
7171
|
/micromatch@4.0.5:
|
|
6937
7172
|
resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==}
|
|
6938
7173
|
engines: {node: '>=8.6'}
|
|
@@ -6953,6 +7188,12 @@ packages:
|
|
|
6953
7188
|
mime-db: 1.52.0
|
|
6954
7189
|
dev: true
|
|
6955
7190
|
|
|
7191
|
+
/mime@1.6.0:
|
|
7192
|
+
resolution: {integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==}
|
|
7193
|
+
engines: {node: '>=4'}
|
|
7194
|
+
hasBin: true
|
|
7195
|
+
dev: true
|
|
7196
|
+
|
|
6956
7197
|
/mime@3.0.0:
|
|
6957
7198
|
resolution: {integrity: sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==}
|
|
6958
7199
|
engines: {node: '>=10.0.0'}
|
|
@@ -6969,8 +7210,8 @@ packages:
|
|
|
6969
7210
|
engines: {node: '>=10'}
|
|
6970
7211
|
dev: true
|
|
6971
7212
|
|
|
6972
|
-
/miniflare@3.0.
|
|
7213
|
+
/miniflare@3.0.1:
|
|
6973
|
-
resolution: {integrity: sha512-
|
|
7214
|
+
resolution: {integrity: sha512-aLOB8d26lOTn493GOv1LmpGHVLSxmeT4MixPG/k3Ze10j0wDKnMj8wsFgbZ6Q4cr1N4faf8O3IbNRJuQ+rLoJA==}
|
|
6974
7215
|
engines: {node: '>=16.13'}
|
|
6975
7216
|
dependencies:
|
|
6976
7217
|
acorn: 8.8.2
|
|
@@ -7022,6 +7263,10 @@ packages:
|
|
|
7022
7263
|
resolution: {integrity: sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==}
|
|
7023
7264
|
dev: true
|
|
7024
7265
|
|
|
7266
|
+
/ms@2.0.0:
|
|
7267
|
+
resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==}
|
|
7268
|
+
dev: true
|
|
7269
|
+
|
|
7025
7270
|
/ms@2.1.2:
|
|
7026
7271
|
resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==}
|
|
7027
7272
|
dev: true
|
|
@@ -7053,6 +7298,11 @@ packages:
|
|
|
7053
7298
|
resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==}
|
|
7054
7299
|
dev: true
|
|
7055
7300
|
|
|
7301
|
+
/negotiator@0.6.3:
|
|
7302
|
+
resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==}
|
|
7303
|
+
engines: {node: '>= 0.6'}
|
|
7304
|
+
dev: true
|
|
7305
|
+
|
|
7056
7306
|
/next-tick@1.1.0:
|
|
7057
7307
|
resolution: {integrity: sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==}
|
|
7058
7308
|
dev: true
|
|
@@ -7168,6 +7418,13 @@ packages:
|
|
|
7168
7418
|
resolution: {integrity: sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==}
|
|
7169
7419
|
dev: false
|
|
7170
7420
|
|
|
7421
|
+
/on-finished@2.4.1:
|
|
7422
|
+
resolution: {integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==}
|
|
7423
|
+
engines: {node: '>= 0.8'}
|
|
7424
|
+
dependencies:
|
|
7425
|
+
ee-first: 1.1.1
|
|
7426
|
+
dev: true
|
|
7427
|
+
|
|
7171
7428
|
/once@1.4.0:
|
|
7172
7429
|
resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==}
|
|
7173
7430
|
dependencies:
|
|
@@ -7243,6 +7500,11 @@ packages:
|
|
|
7243
7500
|
lines-and-columns: 1.2.4
|
|
7244
7501
|
dev: true
|
|
7245
7502
|
|
|
7503
|
+
/parseurl@1.3.3:
|
|
7504
|
+
resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==}
|
|
7505
|
+
engines: {node: '>= 0.8'}
|
|
7506
|
+
dev: true
|
|
7507
|
+
|
|
7246
7508
|
/path-exists@4.0.0:
|
|
7247
7509
|
resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==}
|
|
7248
7510
|
engines: {node: '>=8'}
|
|
@@ -7262,6 +7524,10 @@ packages:
|
|
|
7262
7524
|
resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==}
|
|
7263
7525
|
dev: true
|
|
7264
7526
|
|
|
7527
|
+
/path-to-regexp@0.1.7:
|
|
7528
|
+
resolution: {integrity: sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==}
|
|
7529
|
+
dev: true
|
|
7530
|
+
|
|
7265
7531
|
/path-to-regexp@6.2.1:
|
|
7266
7532
|
resolution: {integrity: sha512-JLyh7xT1kizaEvcaXOQwOc2/Yhw6KZOvPf1S8401UyLk86CU79LN3vl7ztXGm/pZ+YjoyAJ4rxmHwbkBXJX+yw==}
|
|
7267
7533
|
dev: true
|
|
@@ -7370,6 +7636,15 @@ packages:
|
|
|
7370
7636
|
source-map-js: 1.0.2
|
|
7371
7637
|
dev: true
|
|
7372
7638
|
|
|
7639
|
+
/postcss@8.4.24:
|
|
7640
|
+
resolution: {integrity: sha512-M0RzbcI0sO/XJNucsGjvWU9ERWxb/ytp1w6dKtxTKgixdtQDq4rmx/g8W1hnaheq9jgwL/oyEdH5Bc4WwJKMqg==}
|
|
7641
|
+
engines: {node: ^10 || ^12 || >=14}
|
|
7642
|
+
dependencies:
|
|
7643
|
+
nanoid: 3.3.6
|
|
7644
|
+
picocolors: 1.0.0
|
|
7645
|
+
source-map-js: 1.0.2
|
|
7646
|
+
dev: true
|
|
7647
|
+
|
|
7373
7648
|
/postgres-array@3.0.2:
|
|
7374
7649
|
resolution: {integrity: sha512-6faShkdFugNQCLwucjPcY5ARoW1SlbnrZjmGl0IrrqewpvxvhSLHimCVzqeuULCbG0fQv7Dtk1yDbG3xv7Veog==}
|
|
7375
7650
|
engines: {node: '>=12'}
|
|
@@ -7457,6 +7732,14 @@ packages:
|
|
|
7457
7732
|
object-assign: 4.1.1
|
|
7458
7733
|
react-is: 16.13.1
|
|
7459
7734
|
|
|
7735
|
+
/proxy-addr@2.0.7:
|
|
7736
|
+
resolution: {integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==}
|
|
7737
|
+
engines: {node: '>= 0.10'}
|
|
7738
|
+
dependencies:
|
|
7739
|
+
forwarded: 0.2.0
|
|
7740
|
+
ipaddr.js: 1.9.1
|
|
7741
|
+
dev: true
|
|
7742
|
+
|
|
7460
7743
|
/pump@3.0.0:
|
|
7461
7744
|
resolution: {integrity: sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==}
|
|
7462
7745
|
dependencies:
|
|
@@ -7473,6 +7756,13 @@ packages:
|
|
|
7473
7756
|
resolution: {integrity: sha512-6Yg0ekpKICSjPswYOuC5sku/TSWaRYlA0qsXqJgM/d/4pLPHPuTxK7Nbf7jFKzAeedUhR8C7K9Uv63FBsSo8xQ==}
|
|
7474
7757
|
dev: true
|
|
7475
7758
|
|
|
7759
|
+
/qs@6.11.0:
|
|
7760
|
+
resolution: {integrity: sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==}
|
|
7761
|
+
engines: {node: '>=0.6'}
|
|
7762
|
+
dependencies:
|
|
7763
|
+
side-channel: 1.0.4
|
|
7764
|
+
dev: true
|
|
7765
|
+
|
|
7476
7766
|
/queue-microtask@1.2.3:
|
|
7477
7767
|
resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==}
|
|
7478
7768
|
dev: true
|
|
@@ -7481,6 +7771,21 @@ packages:
|
|
|
7481
7771
|
resolution: {integrity: sha512-6n3AEXth91ASapMVKiEh2wrbFJmI+NBilrWE0AbiGgfm0xet0QXC8+a3K19r1UVYjUjctUgB053c3V/J6V0kCQ==}
|
|
7482
7772
|
dev: false
|
|
7483
7773
|
|
|
7774
|
+
/range-parser@1.2.1:
|
|
7775
|
+
resolution: {integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==}
|
|
7776
|
+
engines: {node: '>= 0.6'}
|
|
7777
|
+
dev: true
|
|
7778
|
+
|
|
7779
|
+
/raw-body@2.5.1:
|
|
7780
|
+
resolution: {integrity: sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==}
|
|
7781
|
+
engines: {node: '>= 0.8'}
|
|
7782
|
+
dependencies:
|
|
7783
|
+
bytes: 3.1.2
|
|
7784
|
+
http-errors: 2.0.0
|
|
7785
|
+
iconv-lite: 0.4.24
|
|
7786
|
+
unpipe: 1.0.0
|
|
7787
|
+
dev: true
|
|
7788
|
+
|
|
7484
7789
|
/rc@1.2.8:
|
|
7485
7790
|
resolution: {integrity: sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==}
|
|
7486
7791
|
hasBin: true
|
|
@@ -7611,6 +7916,11 @@ packages:
|
|
|
7611
7916
|
resolution: {integrity: sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==}
|
|
7612
7917
|
dev: true
|
|
7613
7918
|
|
|
7919
|
+
/react-refresh@0.14.0:
|
|
7920
|
+
resolution: {integrity: sha512-wViHqhAd8OHeLS/IRMJjTSDHF3U9eWi62F/MledQGPdJGDhodXJ9PBLNGr6WWL7qlH12Mt3TyTpbS+hGXMjCzQ==}
|
|
7921
|
+
engines: {node: '>=0.10.0'}
|
|
7922
|
+
dev: true
|
|
7923
|
+
|
|
7614
7924
|
/react-stately@3.22.0(react@18.2.0):
|
|
7615
7925
|
resolution: {integrity: sha512-w5itlPtjfUpxy+195LxRbaCNaGN1NVfPHelhYXuoPoKNgUvmy54uKXvP1Ek1ETZ9e55BaXuMs83yXv94wIMdpQ==}
|
|
7616
7926
|
peerDependencies:
|
|
@@ -7795,6 +8105,14 @@ packages:
|
|
|
7795
8105
|
estree-walker: 0.6.1
|
|
7796
8106
|
dev: true
|
|
7797
8107
|
|
|
8108
|
+
/rollup@3.23.0:
|
|
8109
|
+
resolution: {integrity: sha512-h31UlwEi7FHihLe1zbk+3Q7z1k/84rb9BSwmBSr/XjOCEaBJ2YyedQDuM0t/kfOS0IxM+vk1/zI9XxYj9V+NJQ==}
|
|
8110
|
+
engines: {node: '>=14.18.0', npm: '>=8.0.0'}
|
|
8111
|
+
hasBin: true
|
|
8112
|
+
optionalDependencies:
|
|
8113
|
+
fsevents: 2.3.2
|
|
8114
|
+
dev: true
|
|
8115
|
+
|
|
7798
8116
|
/run-parallel@1.2.0:
|
|
7799
8117
|
resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==}
|
|
7800
8118
|
dependencies:
|
|
@@ -7813,6 +8131,10 @@ packages:
|
|
|
7813
8131
|
is-regex: 1.1.4
|
|
7814
8132
|
dev: true
|
|
7815
8133
|
|
|
8134
|
+
/safer-buffer@2.1.2:
|
|
8135
|
+
resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==}
|
|
8136
|
+
dev: true
|
|
8137
|
+
|
|
7816
8138
|
/scheduler@0.23.0:
|
|
7817
8139
|
resolution: {integrity: sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==}
|
|
7818
8140
|
dependencies:
|
|
@@ -7839,6 +8161,43 @@ packages:
|
|
|
7839
8161
|
lru-cache: 6.0.0
|
|
7840
8162
|
dev: true
|
|
7841
8163
|
|
|
8164
|
+
/send@0.18.0:
|
|
8165
|
+
resolution: {integrity: sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==}
|
|
8166
|
+
engines: {node: '>= 0.8.0'}
|
|
8167
|
+
dependencies:
|
|
8168
|
+
debug: 2.6.9
|
|
8169
|
+
depd: 2.0.0
|
|
8170
|
+
destroy: 1.2.0
|
|
8171
|
+
encodeurl: 1.0.2
|
|
8172
|
+
escape-html: 1.0.3
|
|
8173
|
+
etag: 1.8.1
|
|
8174
|
+
fresh: 0.5.2
|
|
8175
|
+
http-errors: 2.0.0
|
|
8176
|
+
mime: 1.6.0
|
|
8177
|
+
ms: 2.1.3
|
|
8178
|
+
on-finished: 2.4.1
|
|
8179
|
+
range-parser: 1.2.1
|
|
8180
|
+
statuses: 2.0.1
|
|
8181
|
+
transitivePeerDependencies:
|
|
8182
|
+
- supports-color
|
|
8183
|
+
dev: true
|
|
8184
|
+
|
|
8185
|
+
/serve-static@1.15.0:
|
|
8186
|
+
resolution: {integrity: sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==}
|
|
8187
|
+
engines: {node: '>= 0.8.0'}
|
|
8188
|
+
dependencies:
|
|
8189
|
+
encodeurl: 1.0.2
|
|
8190
|
+
escape-html: 1.0.3
|
|
8191
|
+
parseurl: 1.3.3
|
|
8192
|
+
send: 0.18.0
|
|
8193
|
+
transitivePeerDependencies:
|
|
8194
|
+
- supports-color
|
|
8195
|
+
dev: true
|
|
8196
|
+
|
|
8197
|
+
/setprototypeof@1.2.0:
|
|
8198
|
+
resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==}
|
|
8199
|
+
dev: true
|
|
8200
|
+
|
|
7842
8201
|
/shallowequal@1.1.0:
|
|
7843
8202
|
resolution: {integrity: sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ==}
|
|
7844
8203
|
dev: false
|
|
@@ -7945,6 +8304,11 @@ packages:
|
|
|
7945
8304
|
get-source: 2.0.12
|
|
7946
8305
|
dev: true
|
|
7947
8306
|
|
|
8307
|
+
/statuses@2.0.1:
|
|
8308
|
+
resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==}
|
|
8309
|
+
engines: {node: '>= 0.8'}
|
|
8310
|
+
dev: true
|
|
8311
|
+
|
|
7948
8312
|
/stop-iteration-iterator@1.0.0:
|
|
7949
8313
|
resolution: {integrity: sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ==}
|
|
7950
8314
|
engines: {node: '>= 0.4'}
|
|
@@ -8141,6 +8505,11 @@ packages:
|
|
|
8141
8505
|
is-number: 7.0.0
|
|
8142
8506
|
dev: true
|
|
8143
8507
|
|
|
8508
|
+
/toidentifier@1.0.1:
|
|
8509
|
+
resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==}
|
|
8510
|
+
engines: {node: '>=0.6'}
|
|
8511
|
+
dev: true
|
|
8512
|
+
|
|
8144
8513
|
/tsconfig-paths@3.14.2:
|
|
8145
8514
|
resolution: {integrity: sha512-o/9iXgCYc5L/JxCHPe3Hvh8Q/2xm5Z+p18PESBU6Ff33695QnCHBEjcytY2q19ua7Mbl/DavtBOLq+oG0RCL+g==}
|
|
8146
8515
|
dependencies:
|
|
@@ -8195,6 +8564,14 @@ packages:
|
|
|
8195
8564
|
engines: {node: '>=10'}
|
|
8196
8565
|
dev: true
|
|
8197
8566
|
|
|
8567
|
+
/type-is@1.6.18:
|
|
8568
|
+
resolution: {integrity: sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==}
|
|
8569
|
+
engines: {node: '>= 0.6'}
|
|
8570
|
+
dependencies:
|
|
8571
|
+
media-typer: 0.3.0
|
|
8572
|
+
mime-types: 2.1.35
|
|
8573
|
+
dev: true
|
|
8574
|
+
|
|
8198
8575
|
/type@1.2.0:
|
|
8199
8576
|
resolution: {integrity: sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==}
|
|
8200
8577
|
dev: true
|
|
@@ -8261,6 +8638,11 @@ packages:
|
|
|
8261
8638
|
engines: {node: '>= 10.0.0'}
|
|
8262
8639
|
dev: true
|
|
8263
8640
|
|
|
8641
|
+
/unpipe@1.0.0:
|
|
8642
|
+
resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==}
|
|
8643
|
+
engines: {node: '>= 0.8'}
|
|
8644
|
+
dev: true
|
|
8645
|
+
|
|
8264
8646
|
/update-browserslist-db@1.0.11(browserslist@4.21.5):
|
|
8265
8647
|
resolution: {integrity: sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA==}
|
|
8266
8648
|
hasBin: true
|
|
@@ -8290,6 +8672,11 @@ packages:
|
|
|
8290
8672
|
resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==}
|
|
8291
8673
|
dev: true
|
|
8292
8674
|
|
|
8675
|
+
/utils-merge@1.0.1:
|
|
8676
|
+
resolution: {integrity: sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==}
|
|
8677
|
+
engines: {node: '>= 0.4.0'}
|
|
8678
|
+
dev: true
|
|
8679
|
+
|
|
8293
8680
|
/v8-to-istanbul@9.1.0:
|
|
8294
8681
|
resolution: {integrity: sha512-6z3GW9x8G1gd+JIIgQQQxXuiJtCXeAjp6RaPEPLv62mH3iPHPxV6W3robxtCzNErRo6ZwTmzWhsbNvjyEBKzKA==}
|
|
8295
8682
|
engines: {node: '>=10.12.0'}
|
|
@@ -8299,6 +8686,43 @@ packages:
|
|
|
8299
8686
|
convert-source-map: 1.9.0
|
|
8300
8687
|
dev: true
|
|
8301
8688
|
|
|
8689
|
+
/vary@1.1.2:
|
|
8690
|
+
resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==}
|
|
8691
|
+
engines: {node: '>= 0.8'}
|
|
8692
|
+
dev: true
|
|
8693
|
+
|
|
8694
|
+
/vite@4.3.9:
|
|
8695
|
+
resolution: {integrity: sha512-qsTNZjO9NoJNW7KnOrgYwczm0WctJ8m/yqYAMAK9Lxt4SoySUfS5S8ia9K7JHpa3KEeMfyF8LoJ3c5NeBJy6pg==}
|
|
8696
|
+
engines: {node: ^14.18.0 || >=16.0.0}
|
|
8697
|
+
hasBin: true
|
|
8698
|
+
peerDependencies:
|
|
8699
|
+
'@types/node': '>= 14'
|
|
8700
|
+
less: '*'
|
|
8701
|
+
sass: '*'
|
|
8702
|
+
stylus: '*'
|
|
8703
|
+
sugarss: '*'
|
|
8704
|
+
terser: ^5.4.0
|
|
8705
|
+
peerDependenciesMeta:
|
|
8706
|
+
'@types/node':
|
|
8707
|
+
optional: true
|
|
8708
|
+
less:
|
|
8709
|
+
optional: true
|
|
8710
|
+
sass:
|
|
8711
|
+
optional: true
|
|
8712
|
+
stylus:
|
|
8713
|
+
optional: true
|
|
8714
|
+
sugarss:
|
|
8715
|
+
optional: true
|
|
8716
|
+
terser:
|
|
8717
|
+
optional: true
|
|
8718
|
+
dependencies:
|
|
8719
|
+
esbuild: 0.17.19
|
|
8720
|
+
postcss: 8.4.24
|
|
8721
|
+
rollup: 3.23.0
|
|
8722
|
+
optionalDependencies:
|
|
8723
|
+
fsevents: 2.3.2
|
|
8724
|
+
dev: true
|
|
8725
|
+
|
|
8302
8726
|
/walkdir@0.4.1:
|
|
8303
8727
|
resolution: {integrity: sha512-3eBwRyEln6E1MSzcxcVpQIhRG8Q1jLvEqRmCZqS3dsfXEDR/AhOF4d+jHg1qvDCpYaVRZjENPQyrVxAkQqxPgQ==}
|
|
8304
8728
|
engines: {node: '>=6.0.0'}
|
|
@@ -8382,7 +8806,7 @@ packages:
|
|
|
8382
8806
|
blake3-wasm: 2.1.5
|
|
8383
8807
|
chokidar: 3.5.3
|
|
8384
8808
|
esbuild: 0.16.3
|
|
8385
|
-
miniflare: 3.0.
|
|
8809
|
+
miniflare: 3.0.1
|
|
8386
8810
|
nanoid: 3.3.6
|
|
8387
8811
|
path-to-regexp: 6.2.1
|
|
8388
8812
|
selfsigned: 2.1.1
|
pnpm-workspace.yaml
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
packages:
|
|
2
|
-
- "
|
|
2
|
+
- "lib"
|
|
3
3
|
- "example"
|
|
4
4
|
- "docs"
|