Spaces:
Running
Running
Start converting directory page to React.
Browse files- web/app/globals.css +230 -104
- web/app/page.tsx +77 -94
- web/package-lock.json +105 -105
web/app/globals.css
CHANGED
@@ -8,113 +8,239 @@ body {
|
|
8 |
font-family: Arial, Helvetica, sans-serif;
|
9 |
}
|
10 |
|
11 |
-
.
|
12 |
-
display: flex;
|
13 |
-
justify-content: space-between;
|
14 |
-
align-items: center;
|
15 |
-
}
|
16 |
-
.ws-name {
|
17 |
-
font-size: 1.5em;
|
18 |
-
flex: 1;
|
19 |
-
color: white;
|
20 |
-
}
|
21 |
-
.top-bar .logo img {
|
22 |
-
height: 2em;
|
23 |
-
vertical-align: middle;
|
24 |
-
margin: 4px;
|
25 |
-
}
|
26 |
-
.page {
|
27 |
display: flex;
|
28 |
flex-direction: column;
|
29 |
height: 100vh;
|
30 |
-
}
|
31 |
|
32 |
-
.
|
33 |
-
|
34 |
-
|
35 |
-
|
36 |
-
|
37 |
-
|
38 |
-
|
39 |
-
|
40 |
-
|
41 |
-
|
42 |
-
|
43 |
-
|
44 |
-
|
45 |
-
|
46 |
-
|
47 |
-
|
48 |
-
|
49 |
-
.
|
50 |
-
|
51 |
-
|
52 |
-
|
53 |
-
|
54 |
-
|
55 |
-
|
56 |
-
|
57 |
-
}
|
58 |
-
|
59 |
-
|
60 |
-
|
61 |
-
|
62 |
-
|
63 |
-
|
64 |
-
|
65 |
-
|
66 |
-
|
67 |
-
|
68 |
-
|
69 |
-
|
70 |
-
|
71 |
-
|
72 |
-
|
73 |
-
|
74 |
-
|
75 |
-
|
76 |
-
|
77 |
-
|
78 |
-
|
79 |
-
|
80 |
-
|
81 |
-
|
82 |
-
|
83 |
-
|
84 |
-
|
85 |
-
}
|
86 |
-
|
87 |
-
.
|
88 |
-
|
89 |
-
|
90 |
-
|
91 |
-
}
|
92 |
-
|
93 |
-
|
94 |
-
|
95 |
-
|
96 |
-
|
97 |
-
|
98 |
-
|
99 |
-
|
100 |
-
|
101 |
-
|
102 |
-
|
103 |
-
|
104 |
-
|
105 |
-
}
|
106 |
-
|
107 |
-
|
108 |
-
|
109 |
-
|
110 |
-
|
111 |
-
|
112 |
-
|
113 |
-
|
114 |
-
|
115 |
-
|
116 |
-
.
|
117 |
-
|
118 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
119 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
120 |
}
|
|
|
8 |
font-family: Arial, Helvetica, sans-serif;
|
9 |
}
|
10 |
|
11 |
+
.workspace {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
12 |
display: flex;
|
13 |
flex-direction: column;
|
14 |
height: 100vh;
|
|
|
15 |
|
16 |
+
.top-bar {
|
17 |
+
display: flex;
|
18 |
+
justify-content: space-between;
|
19 |
+
align-items: center;
|
20 |
+
|
21 |
+
.ws-name {
|
22 |
+
font-size: 1.5em;
|
23 |
+
flex: 1;
|
24 |
+
color: white;
|
25 |
+
}
|
26 |
+
|
27 |
+
.logo img {
|
28 |
+
height: 2em;
|
29 |
+
vertical-align: middle;
|
30 |
+
margin: 4px;
|
31 |
+
}
|
32 |
+
|
33 |
+
.tools {
|
34 |
+
display: flex;
|
35 |
+
align-items: center;
|
36 |
+
|
37 |
+
a {
|
38 |
+
font-size: 1.5em;
|
39 |
+
padding: 0 10px;
|
40 |
+
}
|
41 |
+
}
|
42 |
+
}
|
43 |
+
|
44 |
+
.error {
|
45 |
+
background: #ffdddd;
|
46 |
+
padding: 8px;
|
47 |
+
font-size: 12px;
|
48 |
+
}
|
49 |
+
|
50 |
+
.title-icon {
|
51 |
+
margin-left: 5px;
|
52 |
+
float: right;
|
53 |
+
}
|
54 |
+
|
55 |
+
.node-container {
|
56 |
+
padding: 8px;
|
57 |
+
position: relative;
|
58 |
+
}
|
59 |
+
|
60 |
+
.lynxkite-node {
|
61 |
+
box-shadow: 0px 5px 50px 0px rgba(0, 0, 0, 0.3);
|
62 |
+
border-radius: 4px;
|
63 |
+
background: white;
|
64 |
+
}
|
65 |
+
|
66 |
+
.expanded .lynxkite-node {
|
67 |
+
overflow-y: auto;
|
68 |
+
height: 100%;
|
69 |
+
}
|
70 |
+
|
71 |
+
.lynxkite-node .title {
|
72 |
+
/* background: oklch(75% 0.2 55); */
|
73 |
+
font-weight: bold;
|
74 |
+
padding: 8px;
|
75 |
+
}
|
76 |
+
|
77 |
+
.handle-name {
|
78 |
+
font-size: 10px;
|
79 |
+
color: black;
|
80 |
+
letter-spacing: 0.05em;
|
81 |
+
text-align: right;
|
82 |
+
white-space: nowrap;
|
83 |
+
position: absolute;
|
84 |
+
top: -5px;
|
85 |
+
backdrop-filter: blur(10px);
|
86 |
+
padding: 2px 8px;
|
87 |
+
border-radius: 4px;
|
88 |
+
visibility: hidden;
|
89 |
+
}
|
90 |
+
|
91 |
+
.left .handle-name {
|
92 |
+
right: 20px;
|
93 |
+
}
|
94 |
+
|
95 |
+
.right .handle-name {
|
96 |
+
left: 20px;
|
97 |
+
}
|
98 |
+
|
99 |
+
.top .handle-name,
|
100 |
+
.bottom .handle-name {
|
101 |
+
top: -5px;
|
102 |
+
left: 5px;
|
103 |
+
backdrop-filter: none;
|
104 |
+
}
|
105 |
+
|
106 |
+
.node-container:hover .handle-name {
|
107 |
+
visibility: visible;
|
108 |
+
}
|
109 |
+
|
110 |
+
.node-resizer {
|
111 |
+
position: absolute;
|
112 |
+
bottom: 8px;
|
113 |
+
right: 8px;
|
114 |
+
cursor: nwse-resize;
|
115 |
+
}
|
116 |
+
|
117 |
+
.lynxkite-node {
|
118 |
+
.param {
|
119 |
+
padding: 4px 8px 4px 8px;
|
120 |
+
display: block;
|
121 |
+
}
|
122 |
+
|
123 |
+
.param-name {
|
124 |
+
display: block;
|
125 |
+
font-size: 10px;
|
126 |
+
letter-spacing: 0.05em;
|
127 |
+
margin-left: 10px;
|
128 |
+
width: fit-content;
|
129 |
+
padding: 2px 8px;
|
130 |
+
border-radius: 4px 4px 0 0;
|
131 |
+
;
|
132 |
+
}
|
133 |
+
|
134 |
+
.collapsed-param {
|
135 |
+
min-height: 20px;
|
136 |
+
line-height: 10px;
|
137 |
+
}
|
138 |
+
}
|
139 |
}
|
140 |
+
|
141 |
+
.directory {
|
142 |
+
.entry-list {
|
143 |
+
width: 100%;
|
144 |
+
margin: 10px auto;
|
145 |
+
background-color: white;
|
146 |
+
border-radius: 10px;
|
147 |
+
box-shadow: 0px 2px 4px;
|
148 |
+
padding: 0 0 10px 0;
|
149 |
+
}
|
150 |
+
|
151 |
+
@media (min-width: 768px) {
|
152 |
+
.entry-list {
|
153 |
+
width: 768px;
|
154 |
+
}
|
155 |
+
}
|
156 |
+
|
157 |
+
@media (min-width: 960px) {
|
158 |
+
.entry-list {
|
159 |
+
width: 80%;
|
160 |
+
}
|
161 |
+
}
|
162 |
+
|
163 |
+
.logo {
|
164 |
+
margin: 0;
|
165 |
+
padding-top: 50px;
|
166 |
+
text-align: center;
|
167 |
+
}
|
168 |
+
|
169 |
+
.logo-image {
|
170 |
+
max-width: 50%;
|
171 |
+
}
|
172 |
+
|
173 |
+
.tagline {
|
174 |
+
color: #39bcf3;
|
175 |
+
font-size: 14px;
|
176 |
+
font-weight: 500;
|
177 |
+
}
|
178 |
+
|
179 |
+
@media (min-width: 1400px) {
|
180 |
+
.tagline {
|
181 |
+
font-size: 18px;
|
182 |
+
}
|
183 |
+
}
|
184 |
+
|
185 |
+
.actions {
|
186 |
+
display: flex;
|
187 |
+
justify-content: space-evenly;
|
188 |
+
padding: 5px;
|
189 |
+
}
|
190 |
+
|
191 |
+
.actions a {
|
192 |
+
padding: 2px 10px;
|
193 |
+
border-radius: 5px;
|
194 |
+
}
|
195 |
+
|
196 |
+
.actions a:hover {
|
197 |
+
background: #39bcf3;
|
198 |
+
color: white;
|
199 |
+
}
|
200 |
+
|
201 |
+
.breadcrumbs {
|
202 |
+
padding-left: 10px;
|
203 |
+
font-size: 20px;
|
204 |
+
background: #002a4c20;
|
205 |
+
}
|
206 |
+
|
207 |
+
.breadcrumbs a:hover {
|
208 |
+
color: #39bcf3;
|
209 |
+
}
|
210 |
+
|
211 |
+
.entry-list .entry {
|
212 |
+
display: block;
|
213 |
+
border-bottom: 1px solid whitesmoke;
|
214 |
+
padding-left: 10px;
|
215 |
+
color: #004165;
|
216 |
+
cursor: pointer;
|
217 |
+
user-select: none;
|
218 |
+
text-decoration: none;
|
219 |
+
}
|
220 |
+
|
221 |
+
.entry-list .open .entry,
|
222 |
+
.entry-list .entry:hover,
|
223 |
+
.entry-list .entry:focus {
|
224 |
+
background: #39bcf3;
|
225 |
+
color: white;
|
226 |
+
}
|
227 |
+
|
228 |
+
.entry-list .entry:last-child {
|
229 |
+
border-bottom: none;
|
230 |
+
}
|
231 |
+
|
232 |
+
.directory-page {
|
233 |
+
background: #002a4c;
|
234 |
+
height: 100vh;
|
235 |
+
}
|
236 |
+
|
237 |
+
a {
|
238 |
+
color: black;
|
239 |
+
text-decoration: none;
|
240 |
+
}
|
241 |
+
|
242 |
+
.loading {
|
243 |
+
color: #39bcf3;
|
244 |
+
margin: 10px;
|
245 |
+
}
|
246 |
}
|
web/app/page.tsx
CHANGED
@@ -1,101 +1,84 @@
|
|
|
|
1 |
import Image from "next/image";
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2 |
|
3 |
-
export default function Home(
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
4 |
return (
|
5 |
-
<div className="
|
6 |
-
<
|
7 |
-
<
|
8 |
-
|
9 |
-
|
10 |
-
|
11 |
-
|
12 |
-
|
13 |
-
|
14 |
-
/>
|
15 |
-
<ol className="list-inside list-decimal text-sm text-center sm:text-left font-[family-name:var(--font-geist-mono)]">
|
16 |
-
<li className="mb-2">
|
17 |
-
Get started by editing{" "}
|
18 |
-
<code className="bg-black/[.05] dark:bg-white/[.06] px-1 py-0.5 rounded font-semibold">
|
19 |
-
app/page.tsx
|
20 |
-
</code>
|
21 |
-
.
|
22 |
-
</li>
|
23 |
-
<li>Save and see your changes instantly.</li>
|
24 |
-
</ol>
|
25 |
-
|
26 |
-
<div className="flex gap-4 items-center flex-col sm:flex-row">
|
27 |
-
<a
|
28 |
-
className="rounded-full border border-solid border-transparent transition-colors flex items-center justify-center bg-foreground text-background gap-2 hover:bg-[#383838] dark:hover:bg-[#ccc] text-sm sm:text-base h-10 sm:h-12 px-4 sm:px-5"
|
29 |
-
href="https://vercel.com/new?utm_source=create-next-app&utm_medium=appdir-template-tw&utm_campaign=create-next-app"
|
30 |
-
target="_blank"
|
31 |
-
rel="noopener noreferrer"
|
32 |
-
>
|
33 |
-
<Image
|
34 |
-
className="dark:invert"
|
35 |
-
src="/vercel.svg"
|
36 |
-
alt="Vercel logomark"
|
37 |
-
width={20}
|
38 |
-
height={20}
|
39 |
-
/>
|
40 |
-
Deploy now
|
41 |
-
</a>
|
42 |
-
<a
|
43 |
-
className="rounded-full border border-solid border-black/[.08] dark:border-white/[.145] transition-colors flex items-center justify-center hover:bg-[#f2f2f2] dark:hover:bg-[#1a1a1a] hover:border-transparent text-sm sm:text-base h-10 sm:h-12 px-4 sm:px-5 sm:min-w-44"
|
44 |
-
href="https://nextjs.org/docs?utm_source=create-next-app&utm_medium=appdir-template-tw&utm_campaign=create-next-app"
|
45 |
-
target="_blank"
|
46 |
-
rel="noopener noreferrer"
|
47 |
-
>
|
48 |
-
Read our docs
|
49 |
-
</a>
|
50 |
</div>
|
51 |
-
|
52 |
-
|
53 |
-
|
54 |
-
|
55 |
-
|
56 |
-
|
57 |
-
|
58 |
-
|
59 |
-
<Image
|
60 |
-
aria-hidden
|
61 |
-
src="/file.svg"
|
62 |
-
alt="File icon"
|
63 |
-
width={16}
|
64 |
-
height={16}
|
65 |
-
/>
|
66 |
-
Learn
|
67 |
-
</a>
|
68 |
-
<a
|
69 |
-
className="flex items-center gap-2 hover:underline hover:underline-offset-4"
|
70 |
-
href="https://vercel.com/templates?framework=next.js&utm_source=create-next-app&utm_medium=appdir-template-tw&utm_campaign=create-next-app"
|
71 |
-
target="_blank"
|
72 |
-
rel="noopener noreferrer"
|
73 |
-
>
|
74 |
-
<Image
|
75 |
-
aria-hidden
|
76 |
-
src="/window.svg"
|
77 |
-
alt="Window icon"
|
78 |
-
width={16}
|
79 |
-
height={16}
|
80 |
-
/>
|
81 |
-
Examples
|
82 |
-
</a>
|
83 |
-
<a
|
84 |
-
className="flex items-center gap-2 hover:underline hover:underline-offset-4"
|
85 |
-
href="https://nextjs.org?utm_source=create-next-app&utm_medium=appdir-template-tw&utm_campaign=create-next-app"
|
86 |
-
target="_blank"
|
87 |
-
rel="noopener noreferrer"
|
88 |
-
>
|
89 |
-
<Image
|
90 |
-
aria-hidden
|
91 |
-
src="/globe.svg"
|
92 |
-
alt="Globe icon"
|
93 |
-
width={16}
|
94 |
-
height={16}
|
95 |
-
/>
|
96 |
-
Go to nextjs.org →
|
97 |
-
</a>
|
98 |
-
</footer>
|
99 |
</div>
|
100 |
);
|
101 |
}
|
|
|
1 |
+
// The directory browser.
|
2 |
import Image from "next/image";
|
3 |
+
import Link from 'next/link';
|
4 |
+
// @ts-ignore
|
5 |
+
import Home from '~icons/tabler/home'
|
6 |
+
// @ts-ignore
|
7 |
+
import Folder from '~icons/tabler/folder'
|
8 |
+
// @ts-ignore
|
9 |
+
import FolderPlus from '~icons/tabler/folder-plus'
|
10 |
+
// @ts-ignore
|
11 |
+
import File from '~icons/tabler/file'
|
12 |
+
// @ts-ignore
|
13 |
+
import FilePlus from '~icons/tabler/file-plus'
|
14 |
|
15 |
+
export default async function Home({
|
16 |
+
searchParams,
|
17 |
+
}: {
|
18 |
+
searchParams?: Promise<{ [key: string]: string | string[] | undefined }>;
|
19 |
+
}) {
|
20 |
+
;
|
21 |
+
async function fetchList(path) {
|
22 |
+
const encodedPath = encodeURIComponent(path || '');
|
23 |
+
const res = await fetch(`http://localhost:8000/api/dir/list?path=${encodedPath}`);
|
24 |
+
const j = await res.json();
|
25 |
+
return j;
|
26 |
+
}
|
27 |
+
const path = (await searchParams)?.path || '';
|
28 |
+
const list = await fetchList(path);
|
29 |
+
function link(item) {
|
30 |
+
if (item.type === 'directory') {
|
31 |
+
return `/dir?path=${item.name}`;
|
32 |
+
} else {
|
33 |
+
return `/workspace?path=${item.name}`;
|
34 |
+
}
|
35 |
+
}
|
36 |
+
function shortName(item) {
|
37 |
+
return item.name.split('/').pop();
|
38 |
+
}
|
39 |
+
function newName(list) {
|
40 |
+
let i = 0;
|
41 |
+
while (true) {
|
42 |
+
const name = `Untitled${i ? ` ${i}` : ''}`;
|
43 |
+
if (!list.find(item => item.name === name)) {
|
44 |
+
return name;
|
45 |
+
}
|
46 |
+
i++;
|
47 |
+
}
|
48 |
+
}
|
49 |
+
function newWorkspaceIn(path, list) {
|
50 |
+
const pathSlash = path ? `${path}/` : '';
|
51 |
+
return `/workspace?path=${pathSlash}${newName(list)}`;
|
52 |
+
}
|
53 |
+
async function newFolderIn(path, list) {
|
54 |
+
const pathSlash = path ? `${path}/` : '';
|
55 |
+
const name = newName(list);
|
56 |
+
const res = await fetch(`/api/dir/mkdir`, {
|
57 |
+
method: 'POST',
|
58 |
+
headers: { 'Content-Type': 'application/json' },
|
59 |
+
body: JSON.stringify({ path: pathSlash + name }),
|
60 |
+
});
|
61 |
+
list = await res.json();
|
62 |
+
}
|
63 |
return (
|
64 |
+
<div className="directory-page">
|
65 |
+
<div className="logo">
|
66 |
+
<Link href="https://lynxkite.com/"><img src='/logo.png' className="logo-image" alt="LynxKite logo" /></Link>
|
67 |
+
<div className="tagline">The Complete Graph Data Science Platform</div>
|
68 |
+
</div>
|
69 |
+
<div className="entry-list">
|
70 |
+
<div className="actions">
|
71 |
+
<a href={newWorkspaceIn(path, list)}><FilePlus /> New workspace</a>
|
72 |
+
<a href="" onClick={() => newFolderIn(path, list)}><FolderPlus /> New folder</a>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
73 |
</div>
|
74 |
+
{path && <div className="breadcrumbs"><a href="#dir"><Home /></a> {path} </div>}
|
75 |
+
{list.map(item =>
|
76 |
+
<a className="entry" href={link(item)}>
|
77 |
+
{item.type === 'directory' ? <Folder /> : <File />}
|
78 |
+
{shortName(item)}
|
79 |
+
</a>
|
80 |
+
)}
|
81 |
+
</div>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
82 |
</div>
|
83 |
);
|
84 |
}
|
web/package-lock.json
CHANGED
@@ -645,6 +645,111 @@
|
|
645 |
"node": ">= 10"
|
646 |
}
|
647 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
648 |
"node_modules/@nodelib/fs.scandir": {
|
649 |
"version": "2.1.5",
|
650 |
"resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz",
|
@@ -6932,111 +7037,6 @@
|
|
6932 |
"version": "2.3.0",
|
6933 |
"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.0.tgz",
|
6934 |
"integrity": "sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg=="
|
6935 |
-
},
|
6936 |
-
"node_modules/@next/swc-darwin-x64": {
|
6937 |
-
"version": "15.0.3",
|
6938 |
-
"resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-15.0.3.tgz",
|
6939 |
-
"integrity": "sha512-Zxl/TwyXVZPCFSf0u2BNj5sE0F2uR6iSKxWpq4Wlk/Sv9Ob6YCKByQTkV2y6BCic+fkabp9190hyrDdPA/dNrw==",
|
6940 |
-
"cpu": [
|
6941 |
-
"x64"
|
6942 |
-
],
|
6943 |
-
"optional": true,
|
6944 |
-
"os": [
|
6945 |
-
"darwin"
|
6946 |
-
],
|
6947 |
-
"engines": {
|
6948 |
-
"node": ">= 10"
|
6949 |
-
}
|
6950 |
-
},
|
6951 |
-
"node_modules/@next/swc-linux-arm64-gnu": {
|
6952 |
-
"version": "15.0.3",
|
6953 |
-
"resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-15.0.3.tgz",
|
6954 |
-
"integrity": "sha512-T5+gg2EwpsY3OoaLxUIofmMb7ohAUlcNZW0fPQ6YAutaWJaxt1Z1h+8zdl4FRIOr5ABAAhXtBcpkZNwUcKI2fw==",
|
6955 |
-
"cpu": [
|
6956 |
-
"arm64"
|
6957 |
-
],
|
6958 |
-
"optional": true,
|
6959 |
-
"os": [
|
6960 |
-
"linux"
|
6961 |
-
],
|
6962 |
-
"engines": {
|
6963 |
-
"node": ">= 10"
|
6964 |
-
}
|
6965 |
-
},
|
6966 |
-
"node_modules/@next/swc-linux-arm64-musl": {
|
6967 |
-
"version": "15.0.3",
|
6968 |
-
"resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-15.0.3.tgz",
|
6969 |
-
"integrity": "sha512-WkAk6R60mwDjH4lG/JBpb2xHl2/0Vj0ZRu1TIzWuOYfQ9tt9NFsIinI1Epma77JVgy81F32X/AeD+B2cBu/YQA==",
|
6970 |
-
"cpu": [
|
6971 |
-
"arm64"
|
6972 |
-
],
|
6973 |
-
"optional": true,
|
6974 |
-
"os": [
|
6975 |
-
"linux"
|
6976 |
-
],
|
6977 |
-
"engines": {
|
6978 |
-
"node": ">= 10"
|
6979 |
-
}
|
6980 |
-
},
|
6981 |
-
"node_modules/@next/swc-linux-x64-gnu": {
|
6982 |
-
"version": "15.0.3",
|
6983 |
-
"resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-15.0.3.tgz",
|
6984 |
-
"integrity": "sha512-gWL/Cta1aPVqIGgDb6nxkqy06DkwJ9gAnKORdHWX1QBbSZZB+biFYPFti8aKIQL7otCE1pjyPaXpFzGeG2OS2w==",
|
6985 |
-
"cpu": [
|
6986 |
-
"x64"
|
6987 |
-
],
|
6988 |
-
"optional": true,
|
6989 |
-
"os": [
|
6990 |
-
"linux"
|
6991 |
-
],
|
6992 |
-
"engines": {
|
6993 |
-
"node": ">= 10"
|
6994 |
-
}
|
6995 |
-
},
|
6996 |
-
"node_modules/@next/swc-linux-x64-musl": {
|
6997 |
-
"version": "15.0.3",
|
6998 |
-
"resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-15.0.3.tgz",
|
6999 |
-
"integrity": "sha512-QQEMwFd8r7C0GxQS62Zcdy6GKx999I/rTO2ubdXEe+MlZk9ZiinsrjwoiBL5/57tfyjikgh6GOU2WRQVUej3UA==",
|
7000 |
-
"cpu": [
|
7001 |
-
"x64"
|
7002 |
-
],
|
7003 |
-
"optional": true,
|
7004 |
-
"os": [
|
7005 |
-
"linux"
|
7006 |
-
],
|
7007 |
-
"engines": {
|
7008 |
-
"node": ">= 10"
|
7009 |
-
}
|
7010 |
-
},
|
7011 |
-
"node_modules/@next/swc-win32-arm64-msvc": {
|
7012 |
-
"version": "15.0.3",
|
7013 |
-
"resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-15.0.3.tgz",
|
7014 |
-
"integrity": "sha512-9TEp47AAd/ms9fPNgtgnT7F3M1Hf7koIYYWCMQ9neOwjbVWJsHZxrFbI3iEDJ8rf1TDGpmHbKxXf2IFpAvheIQ==",
|
7015 |
-
"cpu": [
|
7016 |
-
"arm64"
|
7017 |
-
],
|
7018 |
-
"optional": true,
|
7019 |
-
"os": [
|
7020 |
-
"win32"
|
7021 |
-
],
|
7022 |
-
"engines": {
|
7023 |
-
"node": ">= 10"
|
7024 |
-
}
|
7025 |
-
},
|
7026 |
-
"node_modules/@next/swc-win32-x64-msvc": {
|
7027 |
-
"version": "15.0.3",
|
7028 |
-
"resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-15.0.3.tgz",
|
7029 |
-
"integrity": "sha512-VNAz+HN4OGgvZs6MOoVfnn41kBzT+M+tB+OK4cww6DNyWS6wKaDpaAm/qLeOUbnMh0oVx1+mg0uoYARF69dJyA==",
|
7030 |
-
"cpu": [
|
7031 |
-
"x64"
|
7032 |
-
],
|
7033 |
-
"optional": true,
|
7034 |
-
"os": [
|
7035 |
-
"win32"
|
7036 |
-
],
|
7037 |
-
"engines": {
|
7038 |
-
"node": ">= 10"
|
7039 |
-
}
|
7040 |
}
|
7041 |
}
|
7042 |
}
|
|
|
645 |
"node": ">= 10"
|
646 |
}
|
647 |
},
|
648 |
+
"node_modules/@next/swc-darwin-x64": {
|
649 |
+
"version": "15.0.3",
|
650 |
+
"resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-15.0.3.tgz",
|
651 |
+
"integrity": "sha512-Zxl/TwyXVZPCFSf0u2BNj5sE0F2uR6iSKxWpq4Wlk/Sv9Ob6YCKByQTkV2y6BCic+fkabp9190hyrDdPA/dNrw==",
|
652 |
+
"cpu": [
|
653 |
+
"x64"
|
654 |
+
],
|
655 |
+
"optional": true,
|
656 |
+
"os": [
|
657 |
+
"darwin"
|
658 |
+
],
|
659 |
+
"engines": {
|
660 |
+
"node": ">= 10"
|
661 |
+
}
|
662 |
+
},
|
663 |
+
"node_modules/@next/swc-linux-arm64-gnu": {
|
664 |
+
"version": "15.0.3",
|
665 |
+
"resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-15.0.3.tgz",
|
666 |
+
"integrity": "sha512-T5+gg2EwpsY3OoaLxUIofmMb7ohAUlcNZW0fPQ6YAutaWJaxt1Z1h+8zdl4FRIOr5ABAAhXtBcpkZNwUcKI2fw==",
|
667 |
+
"cpu": [
|
668 |
+
"arm64"
|
669 |
+
],
|
670 |
+
"optional": true,
|
671 |
+
"os": [
|
672 |
+
"linux"
|
673 |
+
],
|
674 |
+
"engines": {
|
675 |
+
"node": ">= 10"
|
676 |
+
}
|
677 |
+
},
|
678 |
+
"node_modules/@next/swc-linux-arm64-musl": {
|
679 |
+
"version": "15.0.3",
|
680 |
+
"resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-15.0.3.tgz",
|
681 |
+
"integrity": "sha512-WkAk6R60mwDjH4lG/JBpb2xHl2/0Vj0ZRu1TIzWuOYfQ9tt9NFsIinI1Epma77JVgy81F32X/AeD+B2cBu/YQA==",
|
682 |
+
"cpu": [
|
683 |
+
"arm64"
|
684 |
+
],
|
685 |
+
"optional": true,
|
686 |
+
"os": [
|
687 |
+
"linux"
|
688 |
+
],
|
689 |
+
"engines": {
|
690 |
+
"node": ">= 10"
|
691 |
+
}
|
692 |
+
},
|
693 |
+
"node_modules/@next/swc-linux-x64-gnu": {
|
694 |
+
"version": "15.0.3",
|
695 |
+
"resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-15.0.3.tgz",
|
696 |
+
"integrity": "sha512-gWL/Cta1aPVqIGgDb6nxkqy06DkwJ9gAnKORdHWX1QBbSZZB+biFYPFti8aKIQL7otCE1pjyPaXpFzGeG2OS2w==",
|
697 |
+
"cpu": [
|
698 |
+
"x64"
|
699 |
+
],
|
700 |
+
"optional": true,
|
701 |
+
"os": [
|
702 |
+
"linux"
|
703 |
+
],
|
704 |
+
"engines": {
|
705 |
+
"node": ">= 10"
|
706 |
+
}
|
707 |
+
},
|
708 |
+
"node_modules/@next/swc-linux-x64-musl": {
|
709 |
+
"version": "15.0.3",
|
710 |
+
"resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-15.0.3.tgz",
|
711 |
+
"integrity": "sha512-QQEMwFd8r7C0GxQS62Zcdy6GKx999I/rTO2ubdXEe+MlZk9ZiinsrjwoiBL5/57tfyjikgh6GOU2WRQVUej3UA==",
|
712 |
+
"cpu": [
|
713 |
+
"x64"
|
714 |
+
],
|
715 |
+
"optional": true,
|
716 |
+
"os": [
|
717 |
+
"linux"
|
718 |
+
],
|
719 |
+
"engines": {
|
720 |
+
"node": ">= 10"
|
721 |
+
}
|
722 |
+
},
|
723 |
+
"node_modules/@next/swc-win32-arm64-msvc": {
|
724 |
+
"version": "15.0.3",
|
725 |
+
"resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-15.0.3.tgz",
|
726 |
+
"integrity": "sha512-9TEp47AAd/ms9fPNgtgnT7F3M1Hf7koIYYWCMQ9neOwjbVWJsHZxrFbI3iEDJ8rf1TDGpmHbKxXf2IFpAvheIQ==",
|
727 |
+
"cpu": [
|
728 |
+
"arm64"
|
729 |
+
],
|
730 |
+
"optional": true,
|
731 |
+
"os": [
|
732 |
+
"win32"
|
733 |
+
],
|
734 |
+
"engines": {
|
735 |
+
"node": ">= 10"
|
736 |
+
}
|
737 |
+
},
|
738 |
+
"node_modules/@next/swc-win32-x64-msvc": {
|
739 |
+
"version": "15.0.3",
|
740 |
+
"resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-15.0.3.tgz",
|
741 |
+
"integrity": "sha512-VNAz+HN4OGgvZs6MOoVfnn41kBzT+M+tB+OK4cww6DNyWS6wKaDpaAm/qLeOUbnMh0oVx1+mg0uoYARF69dJyA==",
|
742 |
+
"cpu": [
|
743 |
+
"x64"
|
744 |
+
],
|
745 |
+
"optional": true,
|
746 |
+
"os": [
|
747 |
+
"win32"
|
748 |
+
],
|
749 |
+
"engines": {
|
750 |
+
"node": ">= 10"
|
751 |
+
}
|
752 |
+
},
|
753 |
"node_modules/@nodelib/fs.scandir": {
|
754 |
"version": "2.1.5",
|
755 |
"resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz",
|
|
|
7037 |
"version": "2.3.0",
|
7038 |
"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.0.tgz",
|
7039 |
"integrity": "sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg=="
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
7040 |
}
|
7041 |
}
|
7042 |
}
|