zudoku 0.3.0-dev.35 → 0.3.0-dev.37
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/app/entry.client.js +1 -1
- package/dist/app/entry.client.js.map +1 -1
- package/dist/internal.d.ts +2 -0
- package/dist/internal.js +3 -0
- package/dist/internal.js.map +1 -0
- package/dist/lib/components/index.d.ts +2 -0
- package/dist/lib/components/index.js +2 -0
- package/dist/lib/components/index.js.map +1 -1
- package/dist/{app → lib}/main.d.ts +3 -3
- package/dist/{app → lib}/main.js +4 -3
- package/dist/lib/main.js.map +1 -0
- package/dist/vite/config.js +5 -2
- package/dist/vite/config.js.map +1 -1
- package/dist/vite/plugin-component.js +1 -0
- package/dist/vite/plugin-component.js.map +1 -1
- package/dist/{app → vite/ssr}/entry.server.d.ts +1 -1
- package/dist/{app → vite/ssr}/entry.server.js +3 -3
- package/dist/vite/ssr/entry.server.js.map +1 -0
- package/dist/{app → vite/ssr}/zudoku-manifest.js +1 -1
- package/dist/vite/ssr/zudoku-manifest.js.map +1 -0
- package/lib/{AnchorLink-DCzimaMt.js → AnchorLink-Sx89bfCW.js} +2 -2
- package/lib/{AnchorLink-DCzimaMt.js.map → AnchorLink-Sx89bfCW.js.map} +1 -1
- package/lib/Markdown-DMEnjeMH.js +14499 -0
- package/lib/Markdown-DMEnjeMH.js.map +1 -0
- package/lib/{MdxPage-CGTgSCJL.js → MdxPage-s9RlKFtt.js} +25 -26
- package/lib/{MdxPage-CGTgSCJL.js.map → MdxPage-s9RlKFtt.js.map} +1 -1
- package/lib/{OperationList-BDAtLdf9.js → OperationList-9NIdTqS0.js} +15 -16
- package/lib/{OperationList-BDAtLdf9.js.map → OperationList-9NIdTqS0.js.map} +1 -1
- package/lib/{Select-DIOQWPp3.js → Select-CJamK_wp.js} +2 -2
- package/lib/{Select-DIOQWPp3.js.map → Select-CJamK_wp.js.map} +1 -1
- package/lib/{Spinner-B9MAj2Pw.js → Spinner-3YT-WUu5.js} +2 -2
- package/lib/{Spinner-B9MAj2Pw.js.map → Spinner-3YT-WUu5.js.map} +1 -1
- package/lib/hook-Cq3Jb1lX.js +77 -0
- package/lib/hook-Cq3Jb1lX.js.map +1 -0
- package/lib/{index-CdZQPXUQ.js → index-DhKGMJM2.js} +17 -18
- package/lib/{index-CdZQPXUQ.js.map → index-DhKGMJM2.js.map} +1 -1
- package/lib/zudoku.components.js +103 -102
- package/lib/zudoku.components.js.map +1 -1
- package/lib/zudoku.plugin-api-keys.js +50 -92
- package/lib/zudoku.plugin-api-keys.js.map +1 -1
- package/lib/zudoku.plugin-markdown.js +1 -1
- package/lib/zudoku.plugin-openapi.js +2 -2
- package/package.json +7 -1
- package/src/app/entry.client.tsx +1 -2
- package/src/lib/components/index.ts +2 -0
- package/src/{app → lib}/main.tsx +4 -3
- package/dist/app/entry.server.js.map +0 -1
- package/dist/app/main.js.map +0 -1
- package/dist/app/zudoku-manifest.js.map +0 -1
- package/lib/Markdown-kde-UTpz.js +0 -8620
- package/lib/Markdown-kde-UTpz.js.map +0 -1
- package/lib/MdxComponents-BZ-Y_6jI.js +0 -5885
- package/lib/MdxComponents-BZ-Y_6jI.js.map +0 -1
- package/lib/hook-D1DiFbcT.js +0 -35
- package/lib/hook-D1DiFbcT.js.map +0 -1
- package/src/app/entry.server.tsx +0 -158
- package/src/app/zudoku-manifest.ts +0 -22
- /package/dist/{app → vite/ssr}/zudoku-manifest.d.ts +0 -0
|
@@ -1,19 +1,17 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import
|
|
7
|
-
import {
|
|
8
|
-
import * as M from "react";
|
|
9
|
-
import { useState as L } from "react";
|
|
1
|
+
import { j as e, a as g, O as j } from "./jsx-runtime-Bt86M5tA.js";
|
|
2
|
+
import { R as v, u as b } from "./hook-Cq3Jb1lX.js";
|
|
3
|
+
import { u as w, a as h, S as N, b as k, c as K, d as E, e as S, f as p, B as o } from "./Select-CJamK_wp.js";
|
|
4
|
+
import { c as l, d as A, L as x } from "./Markdown-DMEnjeMH.js";
|
|
5
|
+
import { u as m, q as C, t as P } from "./DevPortalProvider-Demv4Ngx.js";
|
|
6
|
+
import * as R from "react";
|
|
7
|
+
import { useState as D } from "react";
|
|
10
8
|
/**
|
|
11
9
|
* @license lucide-react v0.378.0 - ISC
|
|
12
10
|
*
|
|
13
11
|
* This source code is licensed under the ISC license.
|
|
14
12
|
* See the LICENSE file in the root directory of this source tree.
|
|
15
13
|
*/
|
|
16
|
-
const
|
|
14
|
+
const I = l("EyeOff", [
|
|
17
15
|
["path", { d: "M9.88 9.88a3 3 0 1 0 4.24 4.24", key: "1jxqfv" }],
|
|
18
16
|
[
|
|
19
17
|
"path",
|
|
@@ -34,7 +32,7 @@ const F = l("EyeOff", [
|
|
|
34
32
|
* This source code is licensed under the ISC license.
|
|
35
33
|
* See the LICENSE file in the root directory of this source tree.
|
|
36
34
|
*/
|
|
37
|
-
const
|
|
35
|
+
const O = l("Eye", [
|
|
38
36
|
["path", { d: "M2 12s3-7 10-7 10 7 10 7-3 7-10 7-10-7-10-7Z", key: "rwhkz3" }],
|
|
39
37
|
["circle", { cx: "12", cy: "12", r: "3", key: "1v7zrd" }]
|
|
40
38
|
]);
|
|
@@ -44,7 +42,7 @@ const T = l("Eye", [
|
|
|
44
42
|
* This source code is licensed under the ISC license.
|
|
45
43
|
* See the LICENSE file in the root directory of this source tree.
|
|
46
44
|
*/
|
|
47
|
-
const
|
|
45
|
+
const q = l("RotateCw", [
|
|
48
46
|
["path", { d: "M21 12a9 9 0 1 1-9-9c2.52 0 4.93 1 6.74 2.74L21 8", key: "1p45f6" }],
|
|
49
47
|
["path", { d: "M21 3v5h-5", key: "1q7to0" }]
|
|
50
48
|
]);
|
|
@@ -54,66 +52,26 @@ const V = l("RotateCw", [
|
|
|
54
52
|
* This source code is licensed under the ISC license.
|
|
55
53
|
* See the LICENSE file in the root directory of this source tree.
|
|
56
54
|
*/
|
|
57
|
-
const
|
|
55
|
+
const z = l("Trash", [
|
|
58
56
|
["path", { d: "M3 6h18", key: "d0wm0j" }],
|
|
59
57
|
["path", { d: "M19 6v14c0 1-1 2-2 2H7c-1 0-2-1-2-2V6", key: "4alrt4" }],
|
|
60
58
|
["path", { d: "M8 6V4c0-1 1-2 2-2h4c1 0 2 1 2 2v2", key: "v07s0e" }]
|
|
61
59
|
]);
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
*
|
|
65
|
-
* This source code is licensed under the ISC license.
|
|
66
|
-
* See the LICENSE file in the root directory of this source tree.
|
|
67
|
-
*/
|
|
68
|
-
const H = l("Unlink", [
|
|
69
|
-
[
|
|
70
|
-
"path",
|
|
71
|
-
{
|
|
72
|
-
d: "m18.84 12.25 1.72-1.71h-.02a5.004 5.004 0 0 0-.12-7.07 5.006 5.006 0 0 0-6.95 0l-1.72 1.71",
|
|
73
|
-
key: "yqzxt4"
|
|
74
|
-
}
|
|
75
|
-
],
|
|
76
|
-
[
|
|
77
|
-
"path",
|
|
78
|
-
{
|
|
79
|
-
d: "m5.17 11.75-1.71 1.71a5.004 5.004 0 0 0 .12 7.07 5.006 5.006 0 0 0 6.95 0l1.71-1.71",
|
|
80
|
-
key: "4qinb0"
|
|
81
|
-
}
|
|
82
|
-
],
|
|
83
|
-
["line", { x1: "8", x2: "8", y1: "2", y2: "5", key: "1041cp" }],
|
|
84
|
-
["line", { x1: "2", x2: "5", y1: "8", y2: "8", key: "14m1p5" }],
|
|
85
|
-
["line", { x1: "16", x2: "16", y1: "19", y2: "22", key: "rzdirn" }],
|
|
86
|
-
["line", { x1: "19", x2: "22", y1: "16", y2: "16", key: "ox905f" }]
|
|
87
|
-
]);
|
|
88
|
-
var G = process.env.NODE_ENV === "production", u = "Invariant failed";
|
|
89
|
-
function x(t, n) {
|
|
60
|
+
var M = process.env.NODE_ENV === "production", d = "Invariant failed";
|
|
61
|
+
function u(t, n) {
|
|
90
62
|
if (!t) {
|
|
91
|
-
if (
|
|
92
|
-
throw new Error(
|
|
93
|
-
var a = typeof n == "function" ? n() : n, r = a ? "".concat(
|
|
63
|
+
if (M)
|
|
64
|
+
throw new Error(d);
|
|
65
|
+
var a = typeof n == "function" ? n() : n, r = a ? "".concat(d, ": ").concat(a) : d;
|
|
94
66
|
throw new Error(r);
|
|
95
67
|
}
|
|
96
68
|
}
|
|
97
|
-
const
|
|
98
|
-
/* @__PURE__ */ e.jsx(P, { children: "404" }),
|
|
99
|
-
/* @__PURE__ */ e.jsxs(N, { level: 1, className: "flex gap-3.5 items-center", children: [
|
|
100
|
-
"Page not found",
|
|
101
|
-
/* @__PURE__ */ e.jsx(H, { size: 24 })
|
|
102
|
-
] }),
|
|
103
|
-
!1,
|
|
104
|
-
/* @__PURE__ */ e.jsx("p", { children: "It seems that the page you are looking for does not exist or may have been moved. Please check the URL for any typos or use the navigation menu to find the correct page." }),
|
|
105
|
-
/* @__PURE__ */ e.jsx(d, { to: "/", children: "Go back home" })
|
|
106
|
-
] }));
|
|
107
|
-
function B() {
|
|
108
|
-
const t = j();
|
|
109
|
-
return C(t) && t.status === 404 ? /* @__PURE__ */ e.jsx(U, {}) : /* @__PURE__ */ e.jsx(w, { error: t });
|
|
110
|
-
}
|
|
111
|
-
const y = M.forwardRef(
|
|
69
|
+
const y = R.forwardRef(
|
|
112
70
|
({ className: t, type: n, ...a }, r) => /* @__PURE__ */ e.jsx(
|
|
113
71
|
"input",
|
|
114
72
|
{
|
|
115
73
|
type: n,
|
|
116
|
-
className:
|
|
74
|
+
className: A(
|
|
117
75
|
"flex h-9 w-full rounded-md border border-input bg-transparent px-3 py-1 text-sm shadow-sm transition-colors file:border-0 file:bg-transparent file:text-sm file:font-medium placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50",
|
|
118
76
|
t
|
|
119
77
|
),
|
|
@@ -123,8 +81,8 @@ const y = M.forwardRef(
|
|
|
123
81
|
)
|
|
124
82
|
);
|
|
125
83
|
y.displayName = "Input";
|
|
126
|
-
const
|
|
127
|
-
const n = m(), a =
|
|
84
|
+
const L = ({ service: t }) => {
|
|
85
|
+
const n = m(), a = g(), r = w({
|
|
128
86
|
defaultValues: {
|
|
129
87
|
expiresOn: "30"
|
|
130
88
|
}
|
|
@@ -132,7 +90,7 @@ const Q = ({ service: t }) => {
|
|
|
132
90
|
mutationFn: ({ description: s, expiresOn: c }) => {
|
|
133
91
|
if (!t.createKey)
|
|
134
92
|
throw new Error("deleteKey not implemented");
|
|
135
|
-
const f = c !== "never" ?
|
|
93
|
+
const f = c !== "never" ? T(Number(c)) : void 0;
|
|
136
94
|
return t.createKey(
|
|
137
95
|
{ description: s, expiresOn: f },
|
|
138
96
|
n
|
|
@@ -151,13 +109,13 @@ const Q = ({ service: t }) => {
|
|
|
151
109
|
/* @__PURE__ */ e.jsx(y, { ...r.register("description") }),
|
|
152
110
|
"Expiration",
|
|
153
111
|
/* @__PURE__ */ e.jsxs(
|
|
154
|
-
|
|
112
|
+
N,
|
|
155
113
|
{
|
|
156
114
|
onValueChange: (s) => r.setValue("expiresOn", s),
|
|
157
115
|
defaultValue: r.getValues("expiresOn"),
|
|
158
116
|
children: [
|
|
159
|
-
/* @__PURE__ */ e.jsx(
|
|
160
|
-
/* @__PURE__ */ e.jsx(
|
|
117
|
+
/* @__PURE__ */ e.jsx(k, { children: /* @__PURE__ */ e.jsx(K, {}) }),
|
|
118
|
+
/* @__PURE__ */ e.jsx(E, { children: /* @__PURE__ */ e.jsxs(S, { children: [
|
|
161
119
|
[7, 30, 60, 90].map((s) => /* @__PURE__ */ e.jsxs(p, { value: String(s), children: [
|
|
162
120
|
s,
|
|
163
121
|
" days"
|
|
@@ -169,17 +127,17 @@ const Q = ({ service: t }) => {
|
|
|
169
127
|
),
|
|
170
128
|
/* @__PURE__ */ e.jsxs("div", { className: "flex gap-2", children: [
|
|
171
129
|
/* @__PURE__ */ e.jsx(o, { children: "Generate Key" }),
|
|
172
|
-
/* @__PURE__ */ e.jsx(o, { variant: "outline", asChild: !0, children: /* @__PURE__ */ e.jsx(
|
|
130
|
+
/* @__PURE__ */ e.jsx(o, { variant: "outline", asChild: !0, children: /* @__PURE__ */ e.jsx(x, { to: "/settings/api-keys/", children: "Cancel" }) })
|
|
173
131
|
] })
|
|
174
132
|
] })
|
|
175
133
|
}
|
|
176
134
|
)
|
|
177
135
|
] }) : null;
|
|
178
|
-
},
|
|
136
|
+
}, T = (t) => {
|
|
179
137
|
const n = /* @__PURE__ */ new Date();
|
|
180
138
|
return n.setDate(n.getDate() + t), n.toISOString();
|
|
181
|
-
},
|
|
182
|
-
const n = m(), a =
|
|
139
|
+
}, V = ({ service: t }) => {
|
|
140
|
+
const n = m(), a = C(), { data: r } = P({
|
|
183
141
|
queryFn: () => t.getKeys(n),
|
|
184
142
|
queryKey: ["api-keys"],
|
|
185
143
|
retry: !1
|
|
@@ -196,7 +154,7 @@ const Q = ({ service: t }) => {
|
|
|
196
154
|
return /* @__PURE__ */ e.jsxs("div", { className: "max-w-screen-lg h-full pt-[--padding-content-top] pb-[--padding-content-bottom]", children: [
|
|
197
155
|
/* @__PURE__ */ e.jsxs("div", { className: "flex justify-between mb-4 border-b border-border pb-3", children: [
|
|
198
156
|
/* @__PURE__ */ e.jsx("h1", { className: "font-medium text-2xl", children: "API Keys" }),
|
|
199
|
-
t.createKey && /* @__PURE__ */ e.jsx(o, { asChild: !0, children: /* @__PURE__ */ e.jsx(
|
|
157
|
+
t.createKey && /* @__PURE__ */ e.jsx(o, { asChild: !0, children: /* @__PURE__ */ e.jsx(x, { to: "/settings/api-keys/new", children: "Create API Key" }) })
|
|
200
158
|
] }),
|
|
201
159
|
r.length === 0 ? /* @__PURE__ */ e.jsxs("div", { className: "flex flex-col justify-center gap-4 items-center h-1/2 my-8", children: [
|
|
202
160
|
/* @__PURE__ */ e.jsxs("div", { className: "text-center", children: [
|
|
@@ -204,7 +162,7 @@ const Q = ({ service: t }) => {
|
|
|
204
162
|
/* @__PURE__ */ e.jsx("br", {}),
|
|
205
163
|
"Get started and create the first one now"
|
|
206
164
|
] }),
|
|
207
|
-
t.createKey && /* @__PURE__ */ e.jsx(o, { asChild: !0, children: /* @__PURE__ */ e.jsx(
|
|
165
|
+
t.createKey && /* @__PURE__ */ e.jsx(o, { asChild: !0, children: /* @__PURE__ */ e.jsx(x, { to: "/settings/api-keys/new", children: "Create API Key" }) })
|
|
208
166
|
] }) : /* @__PURE__ */ e.jsx("ul", { className: "grid grid-cols-[minmax(250px,min-content)_1fr_min-content] ", children: r.map((s) => /* @__PURE__ */ e.jsxs(
|
|
209
167
|
"li",
|
|
210
168
|
{
|
|
@@ -223,9 +181,9 @@ const Q = ({ service: t }) => {
|
|
|
223
181
|
] })
|
|
224
182
|
] })
|
|
225
183
|
] }),
|
|
226
|
-
/* @__PURE__ */ e.jsx("div", { className: "items-center flex justify-center", children: /* @__PURE__ */ e.jsx(
|
|
184
|
+
/* @__PURE__ */ e.jsx("div", { className: "items-center flex justify-center", children: /* @__PURE__ */ e.jsx(F, { apiKey: s.key }) }),
|
|
227
185
|
/* @__PURE__ */ e.jsxs("div", { className: "flex gap-2", children: [
|
|
228
|
-
t.rollKey && /* @__PURE__ */ e.jsx(o, { size: "icon", children: /* @__PURE__ */ e.jsx(
|
|
186
|
+
t.rollKey && /* @__PURE__ */ e.jsx(o, { size: "icon", children: /* @__PURE__ */ e.jsx(q, { size: 16 }) }),
|
|
229
187
|
t.deleteKey && /* @__PURE__ */ e.jsx(
|
|
230
188
|
o,
|
|
231
189
|
{
|
|
@@ -235,7 +193,7 @@ const Q = ({ service: t }) => {
|
|
|
235
193
|
confirm("Do you want to delete this key?") && i.mutate(s.id);
|
|
236
194
|
},
|
|
237
195
|
disabled: i.isPending,
|
|
238
|
-
children: /* @__PURE__ */ e.jsx(
|
|
196
|
+
children: /* @__PURE__ */ e.jsx(z, { size: 16 })
|
|
239
197
|
}
|
|
240
198
|
)
|
|
241
199
|
] })
|
|
@@ -244,8 +202,8 @@ const Q = ({ service: t }) => {
|
|
|
244
202
|
s.id
|
|
245
203
|
)) })
|
|
246
204
|
] });
|
|
247
|
-
},
|
|
248
|
-
const [n, a] =
|
|
205
|
+
}, F = ({ apiKey: t }) => {
|
|
206
|
+
const [n, a] = D(!1);
|
|
249
207
|
return /* @__PURE__ */ e.jsxs("div", { className: "flex gap-2 items-center text-sm", children: [
|
|
250
208
|
/* @__PURE__ */ e.jsx("code", { className: "border border-border rounded bg-gray-100 dark:bg-gray-950 p-1 font-mono", children: n ? t : "•".repeat(t.length) }),
|
|
251
209
|
/* @__PURE__ */ e.jsx(
|
|
@@ -254,18 +212,18 @@ const Q = ({ service: t }) => {
|
|
|
254
212
|
variant: "outline",
|
|
255
213
|
onClick: () => a((r) => !r),
|
|
256
214
|
size: "icon",
|
|
257
|
-
children: n ? /* @__PURE__ */ e.jsx(
|
|
215
|
+
children: n ? /* @__PURE__ */ e.jsx(I, { size: 16 }) : /* @__PURE__ */ e.jsx(O, { size: 16 })
|
|
258
216
|
}
|
|
259
217
|
)
|
|
260
218
|
] });
|
|
261
|
-
},
|
|
219
|
+
}, _ = "https://zudoku-rewiringamerica-main-ef9c9c0.d2.zuplo.dev", B = (t) => ({
|
|
262
220
|
deleteKey: async (n, a) => {
|
|
263
221
|
const r = new Request(t + `/v1/developer/api-keys/${n}`, {
|
|
264
222
|
method: "DELETE"
|
|
265
223
|
});
|
|
266
224
|
await a.signRequest(r);
|
|
267
225
|
const i = await fetch(r);
|
|
268
|
-
|
|
226
|
+
u(i.ok, "Failed to delete API key");
|
|
269
227
|
},
|
|
270
228
|
createKey: async (n, a) => {
|
|
271
229
|
const r = new Request(t + "/v1/developer/api-keys", {
|
|
@@ -277,22 +235,22 @@ const Q = ({ service: t }) => {
|
|
|
277
235
|
});
|
|
278
236
|
await a.signRequest(r);
|
|
279
237
|
const i = await fetch(r);
|
|
280
|
-
|
|
238
|
+
u(i.ok, "Failed to create API key");
|
|
281
239
|
},
|
|
282
240
|
getKeys: async (n) => {
|
|
283
241
|
const a = new Request(t + "/v1/developer/api-keys");
|
|
284
242
|
await n.signRequest(a);
|
|
285
243
|
const r = await fetch(a);
|
|
286
|
-
return
|
|
244
|
+
return u(r.ok, "Failed to fetch API keys"), await r.json();
|
|
287
245
|
}
|
|
288
|
-
}),
|
|
289
|
-
const t =
|
|
290
|
-
return t.isPending ? null : t.isAuthenticated ? /* @__PURE__ */ e.jsx(
|
|
246
|
+
}), G = () => {
|
|
247
|
+
const t = b();
|
|
248
|
+
return t.isPending ? null : t.isAuthenticated ? /* @__PURE__ */ e.jsx(j, {}) : /* @__PURE__ */ e.jsxs("div", { className: "flex flex-col justify-center gap-2 items-center h-1/2 my-12", children: [
|
|
291
249
|
"Please login first to view this page",
|
|
292
250
|
/* @__PURE__ */ e.jsx(o, { onClick: () => t.login(), children: "Login" })
|
|
293
251
|
] });
|
|
294
|
-
},
|
|
295
|
-
const n = "endpoint" in t ? t.endpoint :
|
|
252
|
+
}, Z = (t) => {
|
|
253
|
+
const n = "endpoint" in t ? t.endpoint : _, a = "getKeys" in t ? t : B(n);
|
|
296
254
|
return {
|
|
297
255
|
getIdentities: async (r) => {
|
|
298
256
|
try {
|
|
@@ -307,16 +265,16 @@ const Q = ({ service: t }) => {
|
|
|
307
265
|
},
|
|
308
266
|
getRoutes: () => [
|
|
309
267
|
{
|
|
310
|
-
element: /* @__PURE__ */ e.jsx(
|
|
311
|
-
errorElement: /* @__PURE__ */ e.jsx(
|
|
268
|
+
element: /* @__PURE__ */ e.jsx(G, {}),
|
|
269
|
+
errorElement: /* @__PURE__ */ e.jsx(v, {}),
|
|
312
270
|
children: [
|
|
313
271
|
{
|
|
314
272
|
path: "/settings/api-keys",
|
|
315
|
-
element: /* @__PURE__ */ e.jsx(
|
|
273
|
+
element: /* @__PURE__ */ e.jsx(V, { service: a })
|
|
316
274
|
},
|
|
317
275
|
{
|
|
318
276
|
path: "/settings/api-keys/new",
|
|
319
|
-
element: /* @__PURE__ */ e.jsx(
|
|
277
|
+
element: /* @__PURE__ */ e.jsx(L, { service: a })
|
|
320
278
|
}
|
|
321
279
|
]
|
|
322
280
|
}
|
|
@@ -324,6 +282,6 @@ const Q = ({ service: t }) => {
|
|
|
324
282
|
};
|
|
325
283
|
};
|
|
326
284
|
export {
|
|
327
|
-
|
|
285
|
+
Z as apiKeyPlugin
|
|
328
286
|
};
|
|
329
287
|
//# sourceMappingURL=zudoku.plugin-api-keys.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"zudoku.plugin-api-keys.js","sources":["../../../node_modules/.pnpm/lucide-react@0.378.0_react@18.3.1/node_modules/lucide-react/dist/esm/icons/eye-off.js","../../../node_modules/.pnpm/lucide-react@0.378.0_react@18.3.1/node_modules/lucide-react/dist/esm/icons/eye.js","../../../node_modules/.pnpm/lucide-react@0.378.0_react@18.3.1/node_modules/lucide-react/dist/esm/icons/rotate-cw.js","../../../node_modules/.pnpm/lucide-react@0.378.0_react@18.3.1/node_modules/lucide-react/dist/esm/icons/trash.js","../../../node_modules/.pnpm/lucide-react@0.378.0_react@18.3.1/node_modules/lucide-react/dist/esm/icons/unlink.js","../../../node_modules/.pnpm/tiny-invariant@1.3.3/node_modules/tiny-invariant/dist/esm/tiny-invariant.js","../src/lib/components/NotFoundPage.tsx","../src/lib/errors/RouterError.tsx","../src/lib/components/Input.tsx","../src/lib/plugins/api-keys/CreateApiKey.tsx","../src/lib/plugins/api-keys/SettingsApiKeys.tsx","../src/lib/plugins/api-keys/index.tsx"],"sourcesContent":["/**\n * @license lucide-react v0.378.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst EyeOff = createLucideIcon(\"EyeOff\", [\n [\"path\", { d: \"M9.88 9.88a3 3 0 1 0 4.24 4.24\", key: \"1jxqfv\" }],\n [\n \"path\",\n {\n d: \"M10.73 5.08A10.43 10.43 0 0 1 12 5c7 0 10 7 10 7a13.16 13.16 0 0 1-1.67 2.68\",\n key: \"9wicm4\"\n }\n ],\n [\n \"path\",\n { d: \"M6.61 6.61A13.526 13.526 0 0 0 2 12s3 7 10 7a9.74 9.74 0 0 0 5.39-1.61\", key: \"1jreej\" }\n ],\n [\"line\", { x1: \"2\", x2: \"22\", y1: \"2\", y2: \"22\", key: \"a6p6uj\" }]\n]);\n\nexport { EyeOff as default };\n//# sourceMappingURL=eye-off.js.map\n","/**\n * @license lucide-react v0.378.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst Eye = createLucideIcon(\"Eye\", [\n [\"path\", { d: \"M2 12s3-7 10-7 10 7 10 7-3 7-10 7-10-7-10-7Z\", key: \"rwhkz3\" }],\n [\"circle\", { cx: \"12\", cy: \"12\", r: \"3\", key: \"1v7zrd\" }]\n]);\n\nexport { Eye as default };\n//# sourceMappingURL=eye.js.map\n","/**\n * @license lucide-react v0.378.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst RotateCw = createLucideIcon(\"RotateCw\", [\n [\"path\", { d: \"M21 12a9 9 0 1 1-9-9c2.52 0 4.93 1 6.74 2.74L21 8\", key: \"1p45f6\" }],\n [\"path\", { d: \"M21 3v5h-5\", key: \"1q7to0\" }]\n]);\n\nexport { RotateCw as default };\n//# sourceMappingURL=rotate-cw.js.map\n","/**\n * @license lucide-react v0.378.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst Trash = createLucideIcon(\"Trash\", [\n [\"path\", { d: \"M3 6h18\", key: \"d0wm0j\" }],\n [\"path\", { d: \"M19 6v14c0 1-1 2-2 2H7c-1 0-2-1-2-2V6\", key: \"4alrt4\" }],\n [\"path\", { d: \"M8 6V4c0-1 1-2 2-2h4c1 0 2 1 2 2v2\", key: \"v07s0e\" }]\n]);\n\nexport { Trash as default };\n//# sourceMappingURL=trash.js.map\n","/**\n * @license lucide-react v0.378.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst Unlink = createLucideIcon(\"Unlink\", [\n [\n \"path\",\n {\n d: \"m18.84 12.25 1.72-1.71h-.02a5.004 5.004 0 0 0-.12-7.07 5.006 5.006 0 0 0-6.95 0l-1.72 1.71\",\n key: \"yqzxt4\"\n }\n ],\n [\n \"path\",\n {\n d: \"m5.17 11.75-1.71 1.71a5.004 5.004 0 0 0 .12 7.07 5.006 5.006 0 0 0 6.95 0l1.71-1.71\",\n key: \"4qinb0\"\n }\n ],\n [\"line\", { x1: \"8\", x2: \"8\", y1: \"2\", y2: \"5\", key: \"1041cp\" }],\n [\"line\", { x1: \"2\", x2: \"5\", y1: \"8\", y2: \"8\", key: \"14m1p5\" }],\n [\"line\", { x1: \"16\", x2: \"16\", y1: \"19\", y2: \"22\", key: \"rzdirn\" }],\n [\"line\", { x1: \"19\", x2: \"22\", y1: \"16\", y2: \"16\", key: \"ox905f\" }]\n]);\n\nexport { Unlink as default };\n//# sourceMappingURL=unlink.js.map\n","var isProduction = process.env.NODE_ENV === 'production';\nvar prefix = 'Invariant failed';\nfunction invariant(condition, message) {\n if (condition) {\n return;\n }\n if (isProduction) {\n throw new Error(prefix);\n }\n var provided = typeof message === 'function' ? message() : message;\n var value = provided ? \"\".concat(prefix, \": \").concat(provided) : prefix;\n throw new Error(value);\n}\n\nexport { invariant as default };\n","import { UnlinkIcon } from \"lucide-react\";\nimport { Link, useParams } from \"react-router-dom\";\nimport { Callout } from \"../ui/Callout.js\";\nimport { CategoryHeading } from \"./CategoryHeading.js\";\nimport { Heading } from \"./Heading.js\";\nimport { ProseClasses } from \"./Markdown.js\";\n\nexport const NotFoundPage = () => {\n const params = useParams();\n\n return (\n <div className={ProseClasses + \" h-full pt-[--padding-content-top]\"}>\n <CategoryHeading>404</CategoryHeading>\n <Heading level={1} className=\"flex gap-3.5 items-center\">\n Page not found\n <UnlinkIcon size={24} />\n </Heading>\n {import.meta.env.DEV && (\n <Callout type=\"caution\" title=\"Developer hint\">\n Start by adding a file at{\" \"}\n <code>\n {\"{PROJECT_ROOT}\"}/{params[\"*\"]}.mdx\n </code>{\" \"}\n and add some content to make this error go away.\n <br />\n <small className=\"italic\">\n Note: This hint is only shown in development mode.\n </small>\n </Callout>\n )}\n <p>\n It seems that the page you are looking for does not exist or may have\n been moved. Please check the URL for any typos or use the navigation\n menu to find the correct page.\n </p>\n <Link to=\"/\">Go back home</Link>\n </div>\n );\n};\n","import { isRouteErrorResponse, useRouteError } from \"react-router-dom\";\nimport { NotFoundPage } from \"../components/NotFoundPage.js\";\nimport { ErrorAlert } from \"./ErrorAlert.js\";\n\nexport function RouterError() {\n const error = useRouteError();\n\n if (isRouteErrorResponse(error) && error.status === 404) {\n return <NotFoundPage />;\n }\n\n return <ErrorAlert error={error} />;\n}\n","import * as React from \"react\";\nimport { cn } from \"../util/cn.js\";\n\nexport interface InputProps\n extends React.InputHTMLAttributes<HTMLInputElement> {}\n\nconst Input = React.forwardRef<HTMLInputElement, InputProps>(\n ({ className, type, ...props }, ref) => {\n return (\n <input\n type={type}\n className={cn(\n \"flex h-9 w-full rounded-md border border-input bg-transparent px-3 py-1 text-sm shadow-sm transition-colors file:border-0 file:bg-transparent file:text-sm file:font-medium placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50\",\n className,\n )}\n ref={ref}\n {...props}\n />\n );\n },\n);\nInput.displayName = \"Input\";\n\nexport { Input };\n","import { useMutation } from \"@tanstack/react-query\";\nimport { useForm } from \"react-hook-form\";\nimport { Link, useNavigate } from \"react-router-dom\";\nimport { useDevPortal } from \"../../components/context/DevPortalProvider.js\";\nimport { Input } from \"../../components/Input.js\";\nimport {\n Select,\n SelectContent,\n SelectGroup,\n SelectItem,\n SelectTrigger,\n SelectValue,\n} from \"../../components/Select.js\";\nimport { Button } from \"../../ui/Button.js\";\nimport { ApiKeyService } from \"./index.js\";\n\ntype CreateApiKey = { description: string; expiresOn?: string };\n\nexport const CreateApiKey = ({ service }: { service: ApiKeyService }) => {\n const context = useDevPortal();\n const navigate = useNavigate();\n const form = useForm<CreateApiKey>({\n defaultValues: {\n expiresOn: \"30\",\n },\n });\n const createKeyMutation = useMutation({\n mutationFn: ({ description, expiresOn }: CreateApiKey) => {\n if (!service.createKey) {\n throw new Error(\"deleteKey not implemented\");\n }\n\n const expiresOnDate =\n expiresOn !== \"never\" ? addDaysToDate(Number(expiresOn)) : undefined;\n\n return service.createKey(\n { description: description, expiresOn: expiresOnDate },\n context,\n );\n },\n onSuccess: () => navigate(\"/settings/api-keys/\"),\n });\n\n if (!service.createKey) {\n return null;\n }\n\n return (\n <div className=\"max-w-screen-lg pt-[--padding-content-top] pb-[--padding-content-bottom]\">\n <div className=\"flex justify-between mb-4 border-b border-border pb-1\">\n <h1 className=\"font-medium text-2xl\">New API Key</h1>\n </div>\n <form\n onSubmit={form.handleSubmit((data) => createKeyMutation.mutate(data))}\n >\n <div className=\"flex gap-2 flex-col\">\n Note\n <Input {...form.register(\"description\")} />\n Expiration\n <Select\n onValueChange={(value) => form.setValue(\"expiresOn\", value)}\n defaultValue={form.getValues(\"expiresOn\")}\n >\n <SelectTrigger>\n <SelectValue />\n </SelectTrigger>\n <SelectContent>\n <SelectGroup>\n {[7, 30, 60, 90].map((option) => (\n <SelectItem value={String(option)} key={option}>\n {option} days\n </SelectItem>\n ))}\n <SelectItem value=\"never\">Never</SelectItem>\n </SelectGroup>\n </SelectContent>\n </Select>\n <div className=\"flex gap-2\">\n <Button>Generate Key</Button>\n <Button variant=\"outline\" asChild>\n <Link to=\"/settings/api-keys/\">Cancel</Link>\n </Button>\n </div>\n </div>\n </form>\n </div>\n );\n};\n\nconst addDaysToDate = (days: number): string => {\n const date = new Date();\n date.setDate(date.getDate() + days);\n return date.toISOString();\n};\n","import {\n useMutation,\n useQueryClient,\n useSuspenseQuery,\n} from \"@tanstack/react-query\";\nimport { EyeIcon, EyeOffIcon, RotateCwIcon, TrashIcon } from \"lucide-react\";\nimport { useState } from \"react\";\nimport { Link } from \"react-router-dom\";\nimport { useDevPortal } from \"../../components/context/DevPortalProvider.js\";\nimport { Button } from \"../../ui/Button.js\";\nimport { ApiKeyService } from \"./index.js\";\n\nexport const SettingsApiKeys = ({ service }: { service: ApiKeyService }) => {\n const context = useDevPortal();\n const queryClient = useQueryClient();\n const { data } = useSuspenseQuery({\n queryFn: () => service.getKeys(context),\n queryKey: [\"api-keys\"],\n retry: false,\n });\n\n const deleteKeyMutation = useMutation({\n mutationFn: (id: string) => {\n if (!service.deleteKey) {\n throw new Error(\"deleteKey not implemented\");\n }\n\n return service.deleteKey(id, context);\n },\n onSuccess: () => {\n void queryClient.invalidateQueries({ queryKey: [\"api-keys\"] });\n },\n });\n\n return (\n <div className=\"max-w-screen-lg h-full pt-[--padding-content-top] pb-[--padding-content-bottom]\">\n <div className=\"flex justify-between mb-4 border-b border-border pb-3\">\n <h1 className=\"font-medium text-2xl\">API Keys</h1>\n {service.createKey && (\n <Button asChild>\n <Link to=\"/settings/api-keys/new\">Create API Key</Link>\n </Button>\n )}\n </div>\n\n {data.length === 0 ? (\n <div className=\"flex flex-col justify-center gap-4 items-center h-1/2 my-8\">\n <div className=\"text-center\">\n No API keys created yet.\n <br />\n Get started and create the first one now\n </div>\n {service.createKey && (\n <Button asChild>\n <Link to=\"/settings/api-keys/new\">Create API Key</Link>\n </Button>\n )}\n </div>\n ) : (\n <ul className=\"grid grid-cols-[minmax(250px,min-content)_1fr_min-content] \">\n {data.map((key: any) => (\n <li\n className=\"border-b border-border p-5 grid grid-cols-subgrid col-span-full gap-2 items-center\"\n key={key.id}\n >\n <div className=\"flex flex-col gap-1 text-sm\">\n {key.description ?? key.id}\n <div className=\"text-muted-foreground text-xs\">\n {key.createdOn && (\n <div>\n Created on {new Date(key.createdOn).toLocaleDateString()}\n </div>\n )}\n {key.expiresOn && (\n <div>\n Expires on {new Date(key.expiresOn).toLocaleDateString()}\n </div>\n )}\n </div>\n </div>\n <div className=\"items-center flex justify-center\">\n <RevealApiKey apiKey={key.key} />\n </div>\n <div className=\"flex gap-2\">\n {service.rollKey && (\n <Button size=\"icon\">\n <RotateCwIcon size={16} />\n </Button>\n )}\n {service.deleteKey && (\n <Button\n variant=\"ghost\"\n size=\"icon\"\n onClick={() => {\n if (!confirm(\"Do you want to delete this key?\")) {\n return;\n }\n\n deleteKeyMutation.mutate(key.id);\n }}\n disabled={deleteKeyMutation.isPending}\n >\n <TrashIcon size={16} />\n </Button>\n )}\n </div>\n </li>\n ))}\n </ul>\n )}\n </div>\n );\n};\n\nconst RevealApiKey = ({ apiKey }: { apiKey: string }) => {\n const [revealed, setRevealed] = useState(false);\n\n return (\n <div className=\"flex gap-2 items-center text-sm\">\n <code className=\"border border-border rounded bg-gray-100 dark:bg-gray-950 p-1 font-mono\">\n {revealed ? apiKey : \"•\".repeat(apiKey.length)}\n </code>\n <Button\n variant=\"outline\"\n onClick={() => setRevealed((prev) => !prev)}\n size=\"icon\"\n >\n {revealed ? <EyeOffIcon size={16} /> : <EyeIcon size={16} />}\n </Button>\n </div>\n );\n};\n","import { Outlet, type RouteObject } from \"react-router-dom\";\nimport invariant from \"tiny-invariant\";\nimport { useAuth } from \"../../authentication/hook.js\";\nimport { DevPortalContext } from \"../../core/DevPortalContext.js\";\nimport {\n type ApiIdentityPlugin,\n type DevPortalPlugin,\n} from \"../../core/plugins.js\";\nimport { RouterError } from \"../../errors/RouterError.js\";\nimport { Button } from \"../../ui/Button.js\";\nimport { CreateApiKey } from \"./CreateApiKey.js\";\nimport { SettingsApiKeys } from \"./SettingsApiKeys.js\";\n\nexport type ApiKeyResults = Promise<ApiKey[]>;\nconst DEFAULT_API_KEY_ENDPOINT =\n \"https://zudoku-rewiringamerica-main-ef9c9c0.d2.zuplo.dev\";\n\nexport type ApiKeyService = {\n getKeys: (context: DevPortalContext) => ApiKeyResults;\n rollKey?: (id: string, context: DevPortalContext) => Promise<void>;\n deleteKey?: (id: string, context: DevPortalContext) => Promise<void>;\n updateKeyDescription?: (\n apiKey: { jd: string; description: string },\n context: DevPortalContext,\n ) => Promise<void>;\n getUsage?: (apiKeys: string[], context: DevPortalContext) => Promise<void>;\n createKey?: (\n apiKey: { description: string; expiresOn?: string },\n context: DevPortalContext,\n ) => Promise<void>;\n};\n\nexport type GetApiKeysOptions = ApiKeyService | { endpoint: string } | object;\n\nexport type ApiKeyPluginOptions = object & GetApiKeysOptions;\n\nexport interface ApiKey {\n id: string;\n description?: string;\n createdOn?: string;\n updatedOn?: string;\n expiresOn?: string;\n key: string;\n}\n\nconst createDefaultHandler = (endpoint: string): ApiKeyService => {\n return {\n deleteKey: async (id, context) => {\n const request = new Request(endpoint + `/v1/developer/api-keys/${id}`, {\n method: \"DELETE\",\n });\n\n await context.signRequest(request);\n\n const response = await fetch(request);\n invariant(response.ok, \"Failed to delete API key\");\n },\n createKey: async (apiKey, context) => {\n const request = new Request(endpoint + `/v1/developer/api-keys`, {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n },\n body: JSON.stringify(apiKey),\n });\n\n await context.signRequest(request);\n\n const response = await fetch(request);\n invariant(response.ok, \"Failed to create API key\");\n },\n getKeys: async (context) => {\n const request = new Request(endpoint + `/v1/developer/api-keys`);\n\n await context.signRequest(request);\n\n const keys = await fetch(request);\n invariant(keys.ok, \"Failed to fetch API keys\");\n\n return await keys.json();\n },\n };\n};\n\nconst ProtectedRoute = () => {\n const auth = useAuth();\n\n // TODO: should we suspend here somehow?\n if (auth.isPending) {\n return null;\n }\n\n return auth.isAuthenticated ? (\n <Outlet />\n ) : (\n <div className=\"flex flex-col justify-center gap-2 items-center h-1/2 my-12\">\n Please login first to view this page\n <Button onClick={() => auth.login()}>Login</Button>\n </div>\n );\n};\n\nexport const apiKeyPlugin = (\n options: ApiKeyPluginOptions,\n): DevPortalPlugin & ApiIdentityPlugin => {\n const endpoint =\n \"endpoint\" in options ? options.endpoint : DEFAULT_API_KEY_ENDPOINT;\n\n const service =\n \"getKeys\" in options ? options : createDefaultHandler(endpoint);\n\n return {\n getIdentities: async (context) => {\n try {\n const keys = await service.getKeys(context);\n\n return keys.map((key) => ({\n authorizeRequest: (request) => {\n request.headers.set(\"Authorization\", `Bearer ${key.key}`);\n return request;\n },\n id: key.id,\n label: key.description ?? key.id,\n }));\n } catch {\n return [];\n }\n },\n getRoutes: (): RouteObject[] => {\n // TODO: Make lazy\n return [\n {\n element: <ProtectedRoute />,\n errorElement: <RouterError />,\n children: [\n {\n path: \"/settings/api-keys\",\n element: <SettingsApiKeys service={service} />,\n },\n {\n path: \"/settings/api-keys/new\",\n element: <CreateApiKey service={service} />,\n },\n ],\n },\n ];\n },\n };\n};\n"],"names":["EyeOff","createLucideIcon","Eye","RotateCw","Trash","Unlink","isProduction","prefix","invariant","condition","message","provided","value","NotFoundPage","useParams","ProseClasses","jsx","CategoryHeading","Heading","UnlinkIcon","Link","RouterError","error","useRouteError","isRouteErrorResponse","ErrorAlert","Input","React","className","type","props","ref","cn","CreateApiKey","service","context","useDevPortal","navigate","useNavigate","form","useForm","createKeyMutation","useMutation","description","expiresOn","expiresOnDate","addDaysToDate","jsxs","data","Select","SelectTrigger","SelectValue","SelectContent","SelectGroup","option","SelectItem","Button","days","date","SettingsApiKeys","queryClient","useQueryClient","useSuspenseQuery","deleteKeyMutation","id","key","RevealApiKey","RotateCwIcon","TrashIcon","apiKey","revealed","setRevealed","useState","prev","EyeOffIcon","EyeIcon","DEFAULT_API_KEY_ENDPOINT","createDefaultHandler","endpoint","request","response","keys","ProtectedRoute","auth","useAuth","Outlet","apiKeyPlugin","options"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5]}
|
|
1
|
+
{"version":3,"file":"zudoku.plugin-api-keys.js","sources":["../../../node_modules/.pnpm/lucide-react@0.378.0_react@18.3.1/node_modules/lucide-react/dist/esm/icons/eye-off.js","../../../node_modules/.pnpm/lucide-react@0.378.0_react@18.3.1/node_modules/lucide-react/dist/esm/icons/eye.js","../../../node_modules/.pnpm/lucide-react@0.378.0_react@18.3.1/node_modules/lucide-react/dist/esm/icons/rotate-cw.js","../../../node_modules/.pnpm/lucide-react@0.378.0_react@18.3.1/node_modules/lucide-react/dist/esm/icons/trash.js","../../../node_modules/.pnpm/tiny-invariant@1.3.3/node_modules/tiny-invariant/dist/esm/tiny-invariant.js","../src/lib/components/Input.tsx","../src/lib/plugins/api-keys/CreateApiKey.tsx","../src/lib/plugins/api-keys/SettingsApiKeys.tsx","../src/lib/plugins/api-keys/index.tsx"],"sourcesContent":["/**\n * @license lucide-react v0.378.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst EyeOff = createLucideIcon(\"EyeOff\", [\n [\"path\", { d: \"M9.88 9.88a3 3 0 1 0 4.24 4.24\", key: \"1jxqfv\" }],\n [\n \"path\",\n {\n d: \"M10.73 5.08A10.43 10.43 0 0 1 12 5c7 0 10 7 10 7a13.16 13.16 0 0 1-1.67 2.68\",\n key: \"9wicm4\"\n }\n ],\n [\n \"path\",\n { d: \"M6.61 6.61A13.526 13.526 0 0 0 2 12s3 7 10 7a9.74 9.74 0 0 0 5.39-1.61\", key: \"1jreej\" }\n ],\n [\"line\", { x1: \"2\", x2: \"22\", y1: \"2\", y2: \"22\", key: \"a6p6uj\" }]\n]);\n\nexport { EyeOff as default };\n//# sourceMappingURL=eye-off.js.map\n","/**\n * @license lucide-react v0.378.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst Eye = createLucideIcon(\"Eye\", [\n [\"path\", { d: \"M2 12s3-7 10-7 10 7 10 7-3 7-10 7-10-7-10-7Z\", key: \"rwhkz3\" }],\n [\"circle\", { cx: \"12\", cy: \"12\", r: \"3\", key: \"1v7zrd\" }]\n]);\n\nexport { Eye as default };\n//# sourceMappingURL=eye.js.map\n","/**\n * @license lucide-react v0.378.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst RotateCw = createLucideIcon(\"RotateCw\", [\n [\"path\", { d: \"M21 12a9 9 0 1 1-9-9c2.52 0 4.93 1 6.74 2.74L21 8\", key: \"1p45f6\" }],\n [\"path\", { d: \"M21 3v5h-5\", key: \"1q7to0\" }]\n]);\n\nexport { RotateCw as default };\n//# sourceMappingURL=rotate-cw.js.map\n","/**\n * @license lucide-react v0.378.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst Trash = createLucideIcon(\"Trash\", [\n [\"path\", { d: \"M3 6h18\", key: \"d0wm0j\" }],\n [\"path\", { d: \"M19 6v14c0 1-1 2-2 2H7c-1 0-2-1-2-2V6\", key: \"4alrt4\" }],\n [\"path\", { d: \"M8 6V4c0-1 1-2 2-2h4c1 0 2 1 2 2v2\", key: \"v07s0e\" }]\n]);\n\nexport { Trash as default };\n//# sourceMappingURL=trash.js.map\n","var isProduction = process.env.NODE_ENV === 'production';\nvar prefix = 'Invariant failed';\nfunction invariant(condition, message) {\n if (condition) {\n return;\n }\n if (isProduction) {\n throw new Error(prefix);\n }\n var provided = typeof message === 'function' ? message() : message;\n var value = provided ? \"\".concat(prefix, \": \").concat(provided) : prefix;\n throw new Error(value);\n}\n\nexport { invariant as default };\n","import * as React from \"react\";\nimport { cn } from \"../util/cn.js\";\n\nexport interface InputProps\n extends React.InputHTMLAttributes<HTMLInputElement> {}\n\nconst Input = React.forwardRef<HTMLInputElement, InputProps>(\n ({ className, type, ...props }, ref) => {\n return (\n <input\n type={type}\n className={cn(\n \"flex h-9 w-full rounded-md border border-input bg-transparent px-3 py-1 text-sm shadow-sm transition-colors file:border-0 file:bg-transparent file:text-sm file:font-medium placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50\",\n className,\n )}\n ref={ref}\n {...props}\n />\n );\n },\n);\nInput.displayName = \"Input\";\n\nexport { Input };\n","import { useMutation } from \"@tanstack/react-query\";\nimport { useForm } from \"react-hook-form\";\nimport { Link, useNavigate } from \"react-router-dom\";\nimport { useDevPortal } from \"../../components/context/DevPortalProvider.js\";\nimport { Input } from \"../../components/Input.js\";\nimport {\n Select,\n SelectContent,\n SelectGroup,\n SelectItem,\n SelectTrigger,\n SelectValue,\n} from \"../../components/Select.js\";\nimport { Button } from \"../../ui/Button.js\";\nimport { ApiKeyService } from \"./index.js\";\n\ntype CreateApiKey = { description: string; expiresOn?: string };\n\nexport const CreateApiKey = ({ service }: { service: ApiKeyService }) => {\n const context = useDevPortal();\n const navigate = useNavigate();\n const form = useForm<CreateApiKey>({\n defaultValues: {\n expiresOn: \"30\",\n },\n });\n const createKeyMutation = useMutation({\n mutationFn: ({ description, expiresOn }: CreateApiKey) => {\n if (!service.createKey) {\n throw new Error(\"deleteKey not implemented\");\n }\n\n const expiresOnDate =\n expiresOn !== \"never\" ? addDaysToDate(Number(expiresOn)) : undefined;\n\n return service.createKey(\n { description: description, expiresOn: expiresOnDate },\n context,\n );\n },\n onSuccess: () => navigate(\"/settings/api-keys/\"),\n });\n\n if (!service.createKey) {\n return null;\n }\n\n return (\n <div className=\"max-w-screen-lg pt-[--padding-content-top] pb-[--padding-content-bottom]\">\n <div className=\"flex justify-between mb-4 border-b border-border pb-1\">\n <h1 className=\"font-medium text-2xl\">New API Key</h1>\n </div>\n <form\n onSubmit={form.handleSubmit((data) => createKeyMutation.mutate(data))}\n >\n <div className=\"flex gap-2 flex-col\">\n Note\n <Input {...form.register(\"description\")} />\n Expiration\n <Select\n onValueChange={(value) => form.setValue(\"expiresOn\", value)}\n defaultValue={form.getValues(\"expiresOn\")}\n >\n <SelectTrigger>\n <SelectValue />\n </SelectTrigger>\n <SelectContent>\n <SelectGroup>\n {[7, 30, 60, 90].map((option) => (\n <SelectItem value={String(option)} key={option}>\n {option} days\n </SelectItem>\n ))}\n <SelectItem value=\"never\">Never</SelectItem>\n </SelectGroup>\n </SelectContent>\n </Select>\n <div className=\"flex gap-2\">\n <Button>Generate Key</Button>\n <Button variant=\"outline\" asChild>\n <Link to=\"/settings/api-keys/\">Cancel</Link>\n </Button>\n </div>\n </div>\n </form>\n </div>\n );\n};\n\nconst addDaysToDate = (days: number): string => {\n const date = new Date();\n date.setDate(date.getDate() + days);\n return date.toISOString();\n};\n","import {\n useMutation,\n useQueryClient,\n useSuspenseQuery,\n} from \"@tanstack/react-query\";\nimport { EyeIcon, EyeOffIcon, RotateCwIcon, TrashIcon } from \"lucide-react\";\nimport { useState } from \"react\";\nimport { Link } from \"react-router-dom\";\nimport { useDevPortal } from \"../../components/context/DevPortalProvider.js\";\nimport { Button } from \"../../ui/Button.js\";\nimport { ApiKeyService } from \"./index.js\";\n\nexport const SettingsApiKeys = ({ service }: { service: ApiKeyService }) => {\n const context = useDevPortal();\n const queryClient = useQueryClient();\n const { data } = useSuspenseQuery({\n queryFn: () => service.getKeys(context),\n queryKey: [\"api-keys\"],\n retry: false,\n });\n\n const deleteKeyMutation = useMutation({\n mutationFn: (id: string) => {\n if (!service.deleteKey) {\n throw new Error(\"deleteKey not implemented\");\n }\n\n return service.deleteKey(id, context);\n },\n onSuccess: () => {\n void queryClient.invalidateQueries({ queryKey: [\"api-keys\"] });\n },\n });\n\n return (\n <div className=\"max-w-screen-lg h-full pt-[--padding-content-top] pb-[--padding-content-bottom]\">\n <div className=\"flex justify-between mb-4 border-b border-border pb-3\">\n <h1 className=\"font-medium text-2xl\">API Keys</h1>\n {service.createKey && (\n <Button asChild>\n <Link to=\"/settings/api-keys/new\">Create API Key</Link>\n </Button>\n )}\n </div>\n\n {data.length === 0 ? (\n <div className=\"flex flex-col justify-center gap-4 items-center h-1/2 my-8\">\n <div className=\"text-center\">\n No API keys created yet.\n <br />\n Get started and create the first one now\n </div>\n {service.createKey && (\n <Button asChild>\n <Link to=\"/settings/api-keys/new\">Create API Key</Link>\n </Button>\n )}\n </div>\n ) : (\n <ul className=\"grid grid-cols-[minmax(250px,min-content)_1fr_min-content] \">\n {data.map((key: any) => (\n <li\n className=\"border-b border-border p-5 grid grid-cols-subgrid col-span-full gap-2 items-center\"\n key={key.id}\n >\n <div className=\"flex flex-col gap-1 text-sm\">\n {key.description ?? key.id}\n <div className=\"text-muted-foreground text-xs\">\n {key.createdOn && (\n <div>\n Created on {new Date(key.createdOn).toLocaleDateString()}\n </div>\n )}\n {key.expiresOn && (\n <div>\n Expires on {new Date(key.expiresOn).toLocaleDateString()}\n </div>\n )}\n </div>\n </div>\n <div className=\"items-center flex justify-center\">\n <RevealApiKey apiKey={key.key} />\n </div>\n <div className=\"flex gap-2\">\n {service.rollKey && (\n <Button size=\"icon\">\n <RotateCwIcon size={16} />\n </Button>\n )}\n {service.deleteKey && (\n <Button\n variant=\"ghost\"\n size=\"icon\"\n onClick={() => {\n if (!confirm(\"Do you want to delete this key?\")) {\n return;\n }\n\n deleteKeyMutation.mutate(key.id);\n }}\n disabled={deleteKeyMutation.isPending}\n >\n <TrashIcon size={16} />\n </Button>\n )}\n </div>\n </li>\n ))}\n </ul>\n )}\n </div>\n );\n};\n\nconst RevealApiKey = ({ apiKey }: { apiKey: string }) => {\n const [revealed, setRevealed] = useState(false);\n\n return (\n <div className=\"flex gap-2 items-center text-sm\">\n <code className=\"border border-border rounded bg-gray-100 dark:bg-gray-950 p-1 font-mono\">\n {revealed ? apiKey : \"•\".repeat(apiKey.length)}\n </code>\n <Button\n variant=\"outline\"\n onClick={() => setRevealed((prev) => !prev)}\n size=\"icon\"\n >\n {revealed ? <EyeOffIcon size={16} /> : <EyeIcon size={16} />}\n </Button>\n </div>\n );\n};\n","import { Outlet, type RouteObject } from \"react-router-dom\";\nimport invariant from \"tiny-invariant\";\nimport { useAuth } from \"../../authentication/hook.js\";\nimport { DevPortalContext } from \"../../core/DevPortalContext.js\";\nimport {\n type ApiIdentityPlugin,\n type DevPortalPlugin,\n} from \"../../core/plugins.js\";\nimport { RouterError } from \"../../errors/RouterError.js\";\nimport { Button } from \"../../ui/Button.js\";\nimport { CreateApiKey } from \"./CreateApiKey.js\";\nimport { SettingsApiKeys } from \"./SettingsApiKeys.js\";\n\nexport type ApiKeyResults = Promise<ApiKey[]>;\nconst DEFAULT_API_KEY_ENDPOINT =\n \"https://zudoku-rewiringamerica-main-ef9c9c0.d2.zuplo.dev\";\n\nexport type ApiKeyService = {\n getKeys: (context: DevPortalContext) => ApiKeyResults;\n rollKey?: (id: string, context: DevPortalContext) => Promise<void>;\n deleteKey?: (id: string, context: DevPortalContext) => Promise<void>;\n updateKeyDescription?: (\n apiKey: { jd: string; description: string },\n context: DevPortalContext,\n ) => Promise<void>;\n getUsage?: (apiKeys: string[], context: DevPortalContext) => Promise<void>;\n createKey?: (\n apiKey: { description: string; expiresOn?: string },\n context: DevPortalContext,\n ) => Promise<void>;\n};\n\nexport type GetApiKeysOptions = ApiKeyService | { endpoint: string } | object;\n\nexport type ApiKeyPluginOptions = object & GetApiKeysOptions;\n\nexport interface ApiKey {\n id: string;\n description?: string;\n createdOn?: string;\n updatedOn?: string;\n expiresOn?: string;\n key: string;\n}\n\nconst createDefaultHandler = (endpoint: string): ApiKeyService => {\n return {\n deleteKey: async (id, context) => {\n const request = new Request(endpoint + `/v1/developer/api-keys/${id}`, {\n method: \"DELETE\",\n });\n\n await context.signRequest(request);\n\n const response = await fetch(request);\n invariant(response.ok, \"Failed to delete API key\");\n },\n createKey: async (apiKey, context) => {\n const request = new Request(endpoint + `/v1/developer/api-keys`, {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n },\n body: JSON.stringify(apiKey),\n });\n\n await context.signRequest(request);\n\n const response = await fetch(request);\n invariant(response.ok, \"Failed to create API key\");\n },\n getKeys: async (context) => {\n const request = new Request(endpoint + `/v1/developer/api-keys`);\n\n await context.signRequest(request);\n\n const keys = await fetch(request);\n invariant(keys.ok, \"Failed to fetch API keys\");\n\n return await keys.json();\n },\n };\n};\n\nconst ProtectedRoute = () => {\n const auth = useAuth();\n\n // TODO: should we suspend here somehow?\n if (auth.isPending) {\n return null;\n }\n\n return auth.isAuthenticated ? (\n <Outlet />\n ) : (\n <div className=\"flex flex-col justify-center gap-2 items-center h-1/2 my-12\">\n Please login first to view this page\n <Button onClick={() => auth.login()}>Login</Button>\n </div>\n );\n};\n\nexport const apiKeyPlugin = (\n options: ApiKeyPluginOptions,\n): DevPortalPlugin & ApiIdentityPlugin => {\n const endpoint =\n \"endpoint\" in options ? options.endpoint : DEFAULT_API_KEY_ENDPOINT;\n\n const service =\n \"getKeys\" in options ? options : createDefaultHandler(endpoint);\n\n return {\n getIdentities: async (context) => {\n try {\n const keys = await service.getKeys(context);\n\n return keys.map((key) => ({\n authorizeRequest: (request) => {\n request.headers.set(\"Authorization\", `Bearer ${key.key}`);\n return request;\n },\n id: key.id,\n label: key.description ?? key.id,\n }));\n } catch {\n return [];\n }\n },\n getRoutes: (): RouteObject[] => {\n // TODO: Make lazy\n return [\n {\n element: <ProtectedRoute />,\n errorElement: <RouterError />,\n children: [\n {\n path: \"/settings/api-keys\",\n element: <SettingsApiKeys service={service} />,\n },\n {\n path: \"/settings/api-keys/new\",\n element: <CreateApiKey service={service} />,\n },\n ],\n },\n ];\n },\n };\n};\n"],"names":["EyeOff","createLucideIcon","Eye","RotateCw","Trash","isProduction","prefix","invariant","condition","message","provided","value","Input","React","className","type","props","ref","jsx","cn","CreateApiKey","service","context","useDevPortal","navigate","useNavigate","form","useForm","createKeyMutation","useMutation","description","expiresOn","expiresOnDate","addDaysToDate","jsxs","data","Select","SelectTrigger","SelectValue","SelectContent","SelectGroup","option","SelectItem","Button","Link","days","date","SettingsApiKeys","queryClient","useQueryClient","useSuspenseQuery","deleteKeyMutation","id","key","RevealApiKey","RotateCwIcon","TrashIcon","apiKey","revealed","setRevealed","useState","prev","EyeOffIcon","EyeIcon","DEFAULT_API_KEY_ENDPOINT","createDefaultHandler","endpoint","request","response","keys","ProtectedRoute","auth","useAuth","Outlet","apiKeyPlugin","options","RouterError"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4]}
|
|
@@ -10,7 +10,7 @@ const h = (t, e) => {
|
|
|
10
10
|
return {
|
|
11
11
|
path: i.at(-1) === "index" ? i.slice(0, -1).join("/") : o,
|
|
12
12
|
lazy: async () => {
|
|
13
|
-
const { MdxPage: u } = await import("./MdxPage-
|
|
13
|
+
const { MdxPage: u } = await import("./MdxPage-s9RlKFtt.js"), { default: c, ...l } = await m();
|
|
14
14
|
return {
|
|
15
15
|
element: /* @__PURE__ */ s.jsx(
|
|
16
16
|
u,
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import "./jsx-runtime-Bt86M5tA.js";
|
|
2
|
-
import { o as n } from "./index-
|
|
2
|
+
import { o as n } from "./index-DhKGMJM2.js";
|
|
3
3
|
import "./urql-DMlBWUKL.js";
|
|
4
4
|
import "virtual:zudoku-openapi-worker";
|
|
5
|
-
import "./
|
|
5
|
+
import "./Markdown-DMEnjeMH.js";
|
|
6
6
|
import "./router-CcYTwKjf.js";
|
|
7
7
|
export {
|
|
8
8
|
n as openApiPlugin
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "zudoku",
|
|
3
|
-
"version": "0.3.0-dev.
|
|
3
|
+
"version": "0.3.0-dev.37",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"files": [
|
|
6
6
|
"dist",
|
|
@@ -18,6 +18,9 @@
|
|
|
18
18
|
".": {
|
|
19
19
|
"import": "./dist/index.js"
|
|
20
20
|
},
|
|
21
|
+
"./internal": {
|
|
22
|
+
"import": "./dist/internal.js"
|
|
23
|
+
},
|
|
21
24
|
"./auth/clerk": {
|
|
22
25
|
"import": "./lib/zudoku.auth-clerk.js"
|
|
23
26
|
},
|
|
@@ -59,6 +62,9 @@
|
|
|
59
62
|
},
|
|
60
63
|
"./app/*": {
|
|
61
64
|
"import": "./src/app/*"
|
|
65
|
+
},
|
|
66
|
+
"./server/*": {
|
|
67
|
+
"import": "./src/vite/ssr/*"
|
|
62
68
|
}
|
|
63
69
|
},
|
|
64
70
|
"dependencies": {
|
package/src/app/entry.client.tsx
CHANGED
|
@@ -11,10 +11,9 @@ import "virtual:vite-zudoku-custom-css.css";
|
|
|
11
11
|
import config from "virtual:zudoku-config";
|
|
12
12
|
|
|
13
13
|
import "virtual:vite-zudoku-custom-css.css";
|
|
14
|
+
import { getRoutesByConfig } from "zudoku/internal";
|
|
14
15
|
import "./main.css";
|
|
15
16
|
|
|
16
|
-
import { getRoutesByConfig } from "./main.js";
|
|
17
|
-
|
|
18
17
|
const routes = getRoutesByConfig(config);
|
|
19
18
|
const root = document.getElementById("root")!;
|
|
20
19
|
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { useMDXComponents as useMDXComponentsImport } from "@mdx-js/react";
|
|
2
2
|
import { Link as LinkImport } from "react-router-dom";
|
|
3
|
+
import { RouterError as RouterErrorImport } from "../errors/RouterError.js";
|
|
3
4
|
import { Callout as CalloutImport } from "../ui/Callout.js";
|
|
4
5
|
import { DevPortal as DevPortalImport } from "./DevPortal.js";
|
|
5
6
|
import { Layout as LayoutImport } from "./Layout.js";
|
|
@@ -9,3 +10,4 @@ export const Callout = /*@__PURE__*/ CalloutImport;
|
|
|
9
10
|
export const DevPortal = /*@__PURE__*/ DevPortalImport;
|
|
10
11
|
export const Layout = /*@__PURE__*/ LayoutImport;
|
|
11
12
|
export const Link = /*@__PURE__*/ LinkImport;
|
|
13
|
+
export const RouterError = /*@__PURE__*/ RouterErrorImport;
|
package/src/{app → lib}/main.tsx
RENAMED
|
@@ -4,12 +4,13 @@ import { configuredApiPlugins } from "virtual:zudoku-api-plugins";
|
|
|
4
4
|
import { configuredAuthProvider } from "virtual:zudoku-auth";
|
|
5
5
|
import { configuredDocsPlugins } from "virtual:zudoku-docs-plugins";
|
|
6
6
|
import { configuredRedirectPlugin } from "virtual:zudoku-redirect-plugin";
|
|
7
|
-
import { DevPortal, Layout } from "zudoku/components";
|
|
8
7
|
import type { ZudokuConfig } from "../config/config.js";
|
|
9
|
-
import { isNavigationPlugin } from "
|
|
10
|
-
import { RouterError } from "../lib/errors/RouterError.js";
|
|
8
|
+
import { isNavigationPlugin } from "./core/plugins.js";
|
|
11
9
|
|
|
12
10
|
import "virtual:vite-zudoku-custom-css.css";
|
|
11
|
+
import { DevPortal } from "./components/DevPortal.js";
|
|
12
|
+
import { Layout } from "./components/Layout.js";
|
|
13
|
+
import { RouterError } from "./errors/RouterError.js";
|
|
13
14
|
|
|
14
15
|
export const convertZudokuConfigToOptions = (config: ZudokuConfig) => {
|
|
15
16
|
return {
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"entry.server.js","sourceRoot":"","sources":["../../src/app/entry.server.tsx"],"names":[],"mappings":"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"}
|
package/dist/app/main.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"main.js","sourceRoot":"","sources":["../../src/app/main.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAC;AACzE,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAClE,OAAO,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AACpE,OAAO,EAAE,wBAAwB,EAAE,MAAM,gCAAgC,CAAC;AAC1E,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAEtD,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAE3D,OAAO,oCAAoC,CAAC;AAE5C,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAAC,MAAoB,EAAE,EAAE;IACnE,OAAO;QACL,IAAI,EAAE;YACJ,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,IAAI,IAAI,uCAAuC;YAClE,SAAS,EAAE,kBAAkB;YAC7B,GAAG,MAAM,CAAC,IAAI;SACf;QACD,QAAQ,EAAE;YACR,OAAO,EAAE,uCAAuC;YAChD,KAAK,EAAE,uBAAuB;YAC9B,GAAG,MAAM,CAAC,QAAQ;SACnB;QACD,UAAU,EAAE,MAAM,CAAC,UAAU,IAAI,EAAE;QACnC,cAAc,EAAE,sBAAsB;QACtC,OAAO,EAAE;YACP,GAAG,qBAAqB;YACxB,GAAG,oBAAoB;YACvB,GAAG,CAAC,wBAAwB,CAAC,CAAC,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAC/D,GAAG,CAAC,uBAAuB,CAAC,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAC7D,GAAG,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;SAC5D;KACF,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,MAAoB,EAAiB,EAAE;IACvE,MAAM,OAAO,GAAG,4BAA4B,CAAC,MAAM,CAAC,CAAC;IAErD,MAAM,UAAU,GAAG;QACjB,GAAG,OAAO,CAAC,OAAO;QAClB,GAAG,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;KAC5D,CAAC;IAEF,MAAM,MAAM,GAAG,UAAU;SACtB,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;SAC3E,MAAM,CAAC;QACN,IAAI,EAAE,GAAG;QACT,MAAM,EAAE,GAAG,EAAE;YACX,MAAM,IAAI,QAAQ,CAAC,WAAW,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;QACnD,CAAC;KACF,CAAC,CAAC;IAEL,OAAO;QACL;YACE,OAAO,EAAE,CACP,KAAC,SAAS,OAAK,OAAO,YACpB,KAAC,MAAM,KAAG,GACA,CACb;YACD,YAAY,EAAE,CACZ,KAAC,SAAS,OAAK,OAAO,YACpB,KAAC,MAAM,cACL,KAAC,WAAW,KAAG,GACR,GACC,CACb;YACD,QAAQ,EAAE,MAAM;SACjB;KACF,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"zudoku-manifest.js","sourceRoot":"","sources":["../../src/app/zudoku-manifest.ts"],"names":[],"mappings":"AACA,OAAO,MAAM,MAAM,uBAAuB,CAAC;AAC3C,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAE9C,MAAM,MAAM,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC;AAEzC,MAAM,YAAY,GAAG,CAAC,MAAqB,EAAE,QAAQ,GAAG,EAAE,EAAE,EAAE;IAC5D,OAAO,MAAM,CAAC,MAAM,CAAW,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE;QAC5C,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;YACf,MAAM,QAAQ,GAAG,GAAG,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;YAClE,KAAK,CAAC,IAAI,KAAK,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACzC,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;gBACnB,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC;YAC3D,CAAC;QACH,CAAC;aAAM,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;YAC1B,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC;QAC3D,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC,EAAE,EAAE,CAAC,CAAC;AACT,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,KAAK,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC"}
|