watch-tail 0.3.1 → 0.4.0
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/README.md +27 -3
- package/build/client/_app/immutable/assets/0.BPmQoXaO.css +2 -0
- package/build/client/_app/immutable/assets/0.BPmQoXaO.css.br +0 -0
- package/build/client/_app/immutable/assets/0.BPmQoXaO.css.gz +0 -0
- package/build/client/_app/immutable/chunks/{DyIYFD7i.js → Bw_9uNRP.js} +1 -1
- package/build/client/_app/immutable/chunks/Bw_9uNRP.js.br +0 -0
- package/build/client/_app/immutable/chunks/Bw_9uNRP.js.gz +0 -0
- package/build/client/_app/immutable/chunks/De_x7GQi.js +1 -0
- package/build/client/_app/immutable/chunks/De_x7GQi.js.br +0 -0
- package/build/client/_app/immutable/chunks/De_x7GQi.js.gz +0 -0
- package/build/client/_app/immutable/entry/{app.D0_YFW4X.js → app.Be166AxG.js} +2 -2
- package/build/client/_app/immutable/entry/app.Be166AxG.js.br +0 -0
- package/build/client/_app/immutable/entry/app.Be166AxG.js.gz +0 -0
- package/build/client/_app/immutable/entry/start.clEDpQL9.js +1 -0
- package/build/client/_app/immutable/entry/start.clEDpQL9.js.br +0 -0
- package/build/client/_app/immutable/entry/start.clEDpQL9.js.gz +0 -0
- package/build/client/_app/immutable/nodes/0.BJ6Zdc8H.js +1 -0
- package/build/client/_app/immutable/nodes/0.BJ6Zdc8H.js.br +4 -0
- package/build/client/_app/immutable/nodes/0.BJ6Zdc8H.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{1.D1vhnOgO.js → 1.xMNWuLLz.js} +1 -1
- package/build/client/_app/immutable/nodes/1.xMNWuLLz.js.br +0 -0
- package/build/client/_app/immutable/nodes/1.xMNWuLLz.js.gz +0 -0
- package/build/client/_app/immutable/nodes/2.CaxDXwmh.js +5 -0
- package/build/client/_app/immutable/nodes/2.CaxDXwmh.js.br +0 -0
- package/build/client/_app/immutable/nodes/2.CaxDXwmh.js.gz +0 -0
- package/build/client/_app/version.json +1 -1
- package/build/client/_app/version.json.br +0 -0
- package/build/client/_app/version.json.gz +0 -0
- package/build/handler.js +4 -4
- package/build/index.js +4 -4
- package/build/server/chunks/chunks/{env2.js-D7xrfc37.js → env2.js-DXveJt1Y.js} +18 -12
- package/build/server/chunks/chunks/env2.js-DXveJt1Y.js.map +1 -0
- package/build/server/chunks/chunks/{internal.js-B-DZpK-L.js → internal.js-Cc3oBhL-.js} +3 -3
- package/build/server/chunks/chunks/{internal.js-B-DZpK-L.js.map → internal.js-Cc3oBhL-.js.map} +1 -1
- package/build/server/chunks/chunks/{state.js-V2NYGhy_.js → state.js-9DxsWxU-.js} +2 -2
- package/build/server/chunks/chunks/{state.js-V2NYGhy_.js.map → state.js-9DxsWxU-.js.map} +1 -1
- package/build/server/chunks/entries/endpoints/api/health/{_server.ts.js-aiNZfkco.js → _server.ts.js-BOjix7GN.js} +3 -2
- package/build/server/chunks/entries/endpoints/api/health/_server.ts.js-BOjix7GN.js.map +1 -0
- package/build/server/chunks/entries/endpoints/api/identity/_server.ts.js-g13uvmrX.js +72 -0
- package/build/server/chunks/entries/endpoints/api/identity/_server.ts.js-g13uvmrX.js.map +1 -0
- package/build/server/chunks/entries/endpoints/api/log-groups/{_server.ts.js-D143-vRl.js → _server.ts.js-CmHRxdZK.js} +3 -2
- package/build/server/chunks/entries/endpoints/api/log-groups/{_server.ts.js-D143-vRl.js.map → _server.ts.js-CmHRxdZK.js.map} +1 -1
- package/build/server/chunks/entries/endpoints/api/regions/{_server.ts.js-CDNL7msU.js → _server.ts.js-BgUwioxp.js} +3 -2
- package/build/server/chunks/entries/endpoints/api/regions/{_server.ts.js-CDNL7msU.js.map → _server.ts.js-BgUwioxp.js.map} +1 -1
- package/build/server/chunks/entries/endpoints/api/stream/{_server.ts.js-D_i-xW6_.js → _server.ts.js-CIYo4C-0.js} +3 -2
- package/build/server/chunks/entries/endpoints/api/stream/{_server.ts.js-D_i-xW6_.js.map → _server.ts.js-CIYo4C-0.js.map} +1 -1
- package/build/server/chunks/entries/fallbacks/{error.svelte.js-CAasf3PF.js → error.svelte.js-CFonuZkV.js} +3 -3
- package/build/server/chunks/entries/fallbacks/{error.svelte.js-CAasf3PF.js.map → error.svelte.js-CFonuZkV.js.map} +1 -1
- package/build/server/chunks/entries/pages/_layout.svelte.js-Dzluuq12.js +22 -0
- package/build/server/chunks/entries/pages/_layout.svelte.js-Dzluuq12.js.map +1 -0
- package/build/server/chunks/entries/pages/{_page.svelte.js-DzAAqWz2.js → _page.svelte.js-CpwYbxbM.js} +36 -9
- package/build/server/chunks/entries/pages/_page.svelte.js-CpwYbxbM.js.map +1 -0
- package/build/server/chunks/{handler-CuWqZDuC.js → handler-DS32NMsJ.js} +3 -3
- package/build/server/chunks/{handler-CuWqZDuC.js.map → handler-DS32NMsJ.js.map} +1 -1
- package/build/server/chunks/{index.js-NHTL74z2.js → index.js-HHu-yOEK.js} +2 -2
- package/build/server/chunks/{index.js-NHTL74z2.js.map → index.js-HHu-yOEK.js.map} +1 -1
- package/build/server/chunks/{manifest.js-8g4gjxwf.js → manifest.js-BUrA7Zyr.js} +16 -9
- package/build/server/chunks/manifest.js-BUrA7Zyr.js.map +1 -0
- package/build/server/chunks/nodes/{0.js-Bg4_hDjk.js → 0.js-gSRmrAt_.js} +4 -4
- package/build/server/chunks/nodes/{0.js-Bg4_hDjk.js.map → 0.js-gSRmrAt_.js.map} +1 -1
- package/build/server/chunks/nodes/{1.js-CDSk3TvW.js → 1.js-D68K7Ad_.js} +3 -3
- package/build/server/chunks/nodes/{1.js-CDSk3TvW.js.map → 1.js-D68K7Ad_.js.map} +1 -1
- package/build/server/chunks/nodes/2.js-ChYsaaoC.js +9 -0
- package/build/server/chunks/nodes/{2.js-BVhBcWrN.js.map → 2.js-ChYsaaoC.js.map} +1 -1
- package/dist/cli/index.js +129 -30
- package/dist/cli/preflight.js +42 -0
- package/dist/cli/ui.js +7 -3
- package/package.json +2 -1
- package/build/client/_app/immutable/assets/0.CocWI5K4.css +0 -2
- package/build/client/_app/immutable/assets/0.CocWI5K4.css.br +0 -0
- package/build/client/_app/immutable/assets/0.CocWI5K4.css.gz +0 -0
- package/build/client/_app/immutable/chunks/05WsiB4A.js +0 -1
- package/build/client/_app/immutable/chunks/05WsiB4A.js.br +0 -0
- package/build/client/_app/immutable/chunks/05WsiB4A.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DyIYFD7i.js.br +0 -0
- package/build/client/_app/immutable/chunks/DyIYFD7i.js.gz +0 -0
- package/build/client/_app/immutable/entry/app.D0_YFW4X.js.br +0 -0
- package/build/client/_app/immutable/entry/app.D0_YFW4X.js.gz +0 -0
- package/build/client/_app/immutable/entry/start.D1rrHrg2.js +0 -1
- package/build/client/_app/immutable/entry/start.D1rrHrg2.js.br +0 -0
- package/build/client/_app/immutable/entry/start.D1rrHrg2.js.gz +0 -0
- package/build/client/_app/immutable/nodes/0.DHBUWbOo.js +0 -1
- package/build/client/_app/immutable/nodes/0.DHBUWbOo.js.br +0 -0
- package/build/client/_app/immutable/nodes/0.DHBUWbOo.js.gz +0 -0
- package/build/client/_app/immutable/nodes/1.D1vhnOgO.js.br +0 -0
- package/build/client/_app/immutable/nodes/1.D1vhnOgO.js.gz +0 -0
- package/build/client/_app/immutable/nodes/2.BPdL6B7F.js +0 -5
- package/build/client/_app/immutable/nodes/2.BPdL6B7F.js.br +0 -0
- package/build/client/_app/immutable/nodes/2.BPdL6B7F.js.gz +0 -0
- package/build/server/chunks/chunks/env2.js-D7xrfc37.js.map +0 -1
- package/build/server/chunks/entries/endpoints/api/health/_server.ts.js-aiNZfkco.js.map +0 -1
- package/build/server/chunks/entries/pages/_layout.svelte.js-Bx7lXkAi.js +0 -22
- package/build/server/chunks/entries/pages/_layout.svelte.js-Bx7lXkAi.js.map +0 -1
- package/build/server/chunks/entries/pages/_page.svelte.js-DzAAqWz2.js.map +0 -1
- package/build/server/chunks/manifest.js-8g4gjxwf.js.map +0 -1
- package/build/server/chunks/nodes/2.js-BVhBcWrN.js +0 -9
|
@@ -10,11 +10,11 @@ return {
|
|
|
10
10
|
assets: new Set(["robots.txt"]),
|
|
11
11
|
mimeTypes: {".txt":"text/plain"},
|
|
12
12
|
_: {
|
|
13
|
-
client: {start:"_app/immutable/entry/start.
|
|
13
|
+
client: {start:"_app/immutable/entry/start.clEDpQL9.js",app:"_app/immutable/entry/app.Be166AxG.js",imports:["_app/immutable/entry/start.clEDpQL9.js","_app/immutable/chunks/De_x7GQi.js","_app/immutable/chunks/ZAD2y5xJ.js","_app/immutable/entry/app.Be166AxG.js","_app/immutable/chunks/ZAD2y5xJ.js","_app/immutable/chunks/xihTtKlq.js"],stylesheets:[],fonts:[],uses_env_dynamic_public:false},
|
|
14
14
|
nodes: [
|
|
15
|
-
__memo(() => import('./nodes/0.js-
|
|
16
|
-
__memo(() => import('./nodes/1.js-
|
|
17
|
-
__memo(() => import('./nodes/2.js-
|
|
15
|
+
__memo(() => import('./nodes/0.js-gSRmrAt_.js')),
|
|
16
|
+
__memo(() => import('./nodes/1.js-D68K7Ad_.js')),
|
|
17
|
+
__memo(() => import('./nodes/2.js-ChYsaaoC.js'))
|
|
18
18
|
],
|
|
19
19
|
remotes: {
|
|
20
20
|
|
|
@@ -32,28 +32,35 @@ return {
|
|
|
32
32
|
pattern: /^\/api\/health\/?$/,
|
|
33
33
|
params: [],
|
|
34
34
|
page: null,
|
|
35
|
-
endpoint: __memo(() => import('./entries/endpoints/api/health/_server.ts.js-
|
|
35
|
+
endpoint: __memo(() => import('./entries/endpoints/api/health/_server.ts.js-BOjix7GN.js'))
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
id: "/api/identity",
|
|
39
|
+
pattern: /^\/api\/identity\/?$/,
|
|
40
|
+
params: [],
|
|
41
|
+
page: null,
|
|
42
|
+
endpoint: __memo(() => import('./entries/endpoints/api/identity/_server.ts.js-g13uvmrX.js'))
|
|
36
43
|
},
|
|
37
44
|
{
|
|
38
45
|
id: "/api/log-groups",
|
|
39
46
|
pattern: /^\/api\/log-groups\/?$/,
|
|
40
47
|
params: [],
|
|
41
48
|
page: null,
|
|
42
|
-
endpoint: __memo(() => import('./entries/endpoints/api/log-groups/_server.ts.js-
|
|
49
|
+
endpoint: __memo(() => import('./entries/endpoints/api/log-groups/_server.ts.js-CmHRxdZK.js'))
|
|
43
50
|
},
|
|
44
51
|
{
|
|
45
52
|
id: "/api/regions",
|
|
46
53
|
pattern: /^\/api\/regions\/?$/,
|
|
47
54
|
params: [],
|
|
48
55
|
page: null,
|
|
49
|
-
endpoint: __memo(() => import('./entries/endpoints/api/regions/_server.ts.js-
|
|
56
|
+
endpoint: __memo(() => import('./entries/endpoints/api/regions/_server.ts.js-BgUwioxp.js'))
|
|
50
57
|
},
|
|
51
58
|
{
|
|
52
59
|
id: "/api/stream",
|
|
53
60
|
pattern: /^\/api\/stream\/?$/,
|
|
54
61
|
params: [],
|
|
55
62
|
page: null,
|
|
56
|
-
endpoint: __memo(() => import('./entries/endpoints/api/stream/_server.ts.js-
|
|
63
|
+
endpoint: __memo(() => import('./entries/endpoints/api/stream/_server.ts.js-CIYo4C-0.js'))
|
|
57
64
|
}
|
|
58
65
|
],
|
|
59
66
|
prerendered_routes: new Set([]),
|
|
@@ -67,4 +74,4 @@ return {
|
|
|
67
74
|
})();
|
|
68
75
|
|
|
69
76
|
export { manifest as m };
|
|
70
|
-
//# sourceMappingURL=manifest.js-
|
|
77
|
+
//# sourceMappingURL=manifest.js-BUrA7Zyr.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"manifest.js-BUrA7Zyr.js","sources":["../../../.svelte-kit/output/server/manifest.js"],"sourcesContent":["export const manifest = (() => {\nfunction __memo(fn) {\n\tlet value;\n\treturn () => value ??= (value = fn());\n}\n\nreturn {\n\tappDir: \"_app\",\n\tappPath: \"_app\",\n\tassets: new Set([\"robots.txt\"]),\n\tmimeTypes: {\".txt\":\"text/plain\"},\n\t_: {\n\t\tclient: {start:\"_app/immutable/entry/start.clEDpQL9.js\",app:\"_app/immutable/entry/app.Be166AxG.js\",imports:[\"_app/immutable/entry/start.clEDpQL9.js\",\"_app/immutable/chunks/De_x7GQi.js\",\"_app/immutable/chunks/ZAD2y5xJ.js\",\"_app/immutable/entry/app.Be166AxG.js\",\"_app/immutable/chunks/ZAD2y5xJ.js\",\"_app/immutable/chunks/xihTtKlq.js\"],stylesheets:[],fonts:[],uses_env_dynamic_public:false},\n\t\tnodes: [\n\t\t\t__memo(() => import('./nodes/0.js')),\n\t\t\t__memo(() => import('./nodes/1.js')),\n\t\t\t__memo(() => import('./nodes/2.js'))\n\t\t],\n\t\tremotes: {\n\t\t\t\n\t\t},\n\t\troutes: [\n\t\t\t{\n\t\t\t\tid: \"/\",\n\t\t\t\tpattern: /^\\/$/,\n\t\t\t\tparams: [],\n\t\t\t\tpage: { layouts: [0,], errors: [1,], leaf: 2 },\n\t\t\t\tendpoint: null\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/api/health\",\n\t\t\t\tpattern: /^\\/api\\/health\\/?$/,\n\t\t\t\tparams: [],\n\t\t\t\tpage: null,\n\t\t\t\tendpoint: __memo(() => import('./entries/endpoints/api/health/_server.ts.js'))\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/api/identity\",\n\t\t\t\tpattern: /^\\/api\\/identity\\/?$/,\n\t\t\t\tparams: [],\n\t\t\t\tpage: null,\n\t\t\t\tendpoint: __memo(() => import('./entries/endpoints/api/identity/_server.ts.js'))\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/api/log-groups\",\n\t\t\t\tpattern: /^\\/api\\/log-groups\\/?$/,\n\t\t\t\tparams: [],\n\t\t\t\tpage: null,\n\t\t\t\tendpoint: __memo(() => import('./entries/endpoints/api/log-groups/_server.ts.js'))\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/api/regions\",\n\t\t\t\tpattern: /^\\/api\\/regions\\/?$/,\n\t\t\t\tparams: [],\n\t\t\t\tpage: null,\n\t\t\t\tendpoint: __memo(() => import('./entries/endpoints/api/regions/_server.ts.js'))\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/api/stream\",\n\t\t\t\tpattern: /^\\/api\\/stream\\/?$/,\n\t\t\t\tparams: [],\n\t\t\t\tpage: null,\n\t\t\t\tendpoint: __memo(() => import('./entries/endpoints/api/stream/_server.ts.js'))\n\t\t\t}\n\t\t],\n\t\tprerendered_routes: new Set([]),\n\t\tmatchers: async () => {\n\t\t\t\n\t\t\treturn { };\n\t\t},\n\t\tserver_assets: {}\n\t}\n}\n})();\n"],"names":[],"mappings":"AAAY,MAAC,QAAQ,GAAG,CAAC,MAAM;AAC/B,SAAS,MAAM,CAAC,EAAE,EAAE;AACpB,CAAC,IAAI,KAAK;AACV,CAAC,OAAO,MAAM,KAAK,MAAM,KAAK,GAAG,EAAE,EAAE,CAAC;AACtC;;AAEA,OAAO;AACP,CAAC,MAAM,EAAE,MAAM;AACf,CAAC,OAAO,EAAE,MAAM;AAChB,CAAC,MAAM,EAAE,IAAI,GAAG,CAAC,CAAC,YAAY,CAAC,CAAC;AAChC,CAAC,SAAS,EAAE,CAAC,MAAM,CAAC,YAAY,CAAC;AACjC,CAAC,CAAC,EAAE;AACJ,EAAE,MAAM,EAAE,CAAC,KAAK,CAAC,wCAAwC,CAAC,GAAG,CAAC,sCAAsC,CAAC,OAAO,CAAC,CAAC,wCAAwC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,sCAAsC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,CAAC,WAAW,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,uBAAuB,CAAC,KAAK,CAAC;AACrY,EAAE,KAAK,EAAE;AACT,GAAG,MAAM,CAAC,MAAM,OAAO,0BAAc,CAAC,CAAC;AACvC,GAAG,MAAM,CAAC,MAAM,OAAO,0BAAc,CAAC,CAAC;AACvC,GAAG,MAAM,CAAC,MAAM,OAAO,0BAAc,CAAC;AACtC,GAAG;AACH,EAAE,OAAO,EAAE;AACX;AACA,GAAG;AACH,EAAE,MAAM,EAAE;AACV,GAAG;AACH,IAAI,EAAE,EAAE,GAAG;AACX,IAAI,OAAO,EAAE,MAAM;AACnB,IAAI,MAAM,EAAE,EAAE;AACd,IAAI,IAAI,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE;AAClD,IAAI,QAAQ,EAAE;AACd,IAAI;AACJ,GAAG;AACH,IAAI,EAAE,EAAE,aAAa;AACrB,IAAI,OAAO,EAAE,oBAAoB;AACjC,IAAI,MAAM,EAAE,EAAE;AACd,IAAI,IAAI,EAAE,IAAI;AACd,IAAI,QAAQ,EAAE,MAAM,CAAC,MAAM,OAAO,0DAA8C,CAAC;AACjF,IAAI;AACJ,GAAG;AACH,IAAI,EAAE,EAAE,eAAe;AACvB,IAAI,OAAO,EAAE,sBAAsB;AACnC,IAAI,MAAM,EAAE,EAAE;AACd,IAAI,IAAI,EAAE,IAAI;AACd,IAAI,QAAQ,EAAE,MAAM,CAAC,MAAM,OAAO,4DAAgD,CAAC;AACnF,IAAI;AACJ,GAAG;AACH,IAAI,EAAE,EAAE,iBAAiB;AACzB,IAAI,OAAO,EAAE,wBAAwB;AACrC,IAAI,MAAM,EAAE,EAAE;AACd,IAAI,IAAI,EAAE,IAAI;AACd,IAAI,QAAQ,EAAE,MAAM,CAAC,MAAM,OAAO,8DAAkD,CAAC;AACrF,IAAI;AACJ,GAAG;AACH,IAAI,EAAE,EAAE,cAAc;AACtB,IAAI,OAAO,EAAE,qBAAqB;AAClC,IAAI,MAAM,EAAE,EAAE;AACd,IAAI,IAAI,EAAE,IAAI;AACd,IAAI,QAAQ,EAAE,MAAM,CAAC,MAAM,OAAO,2DAA+C,CAAC;AAClF,IAAI;AACJ,GAAG;AACH,IAAI,EAAE,EAAE,aAAa;AACrB,IAAI,OAAO,EAAE,oBAAoB;AACjC,IAAI,MAAM,EAAE,EAAE;AACd,IAAI,IAAI,EAAE,IAAI;AACd,IAAI,QAAQ,EAAE,MAAM,CAAC,MAAM,OAAO,0DAA8C,CAAC;AACjF;AACA,GAAG;AACH,EAAE,kBAAkB,EAAE,IAAI,GAAG,CAAC,EAAE,CAAC;AACjC,EAAE,QAAQ,EAAE,YAAY;AACxB;AACA,GAAG,OAAO,IAAI;AACd,EAAE,CAAC;AACH,EAAE,aAAa,EAAE;AACjB;AACA;AACA,CAAC;;"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
const index = 0;
|
|
2
2
|
let component_cache;
|
|
3
|
-
const component = async () => component_cache ??= (await import('../entries/pages/_layout.svelte.js-
|
|
4
|
-
const imports = ["_app/immutable/nodes/0.
|
|
5
|
-
const stylesheets = ["_app/immutable/assets/0.
|
|
3
|
+
const component = async () => component_cache ??= (await import('../entries/pages/_layout.svelte.js-Dzluuq12.js')).default;
|
|
4
|
+
const imports = ["_app/immutable/nodes/0.BJ6Zdc8H.js","_app/immutable/chunks/ZAD2y5xJ.js","_app/immutable/chunks/xihTtKlq.js"];
|
|
5
|
+
const stylesheets = ["_app/immutable/assets/0.BPmQoXaO.css"];
|
|
6
6
|
const fonts = [];
|
|
7
7
|
|
|
8
8
|
export { component, fonts, imports, index, stylesheets };
|
|
9
|
-
//# sourceMappingURL=0.js-
|
|
9
|
+
//# sourceMappingURL=0.js-gSRmrAt_.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"0.js-
|
|
1
|
+
{"version":3,"file":"0.js-gSRmrAt_.js","sources":["../../../../.svelte-kit/output/server/nodes/0.js"],"sourcesContent":["\n\nexport const index = 0;\nlet component_cache;\nexport const component = async () => component_cache ??= (await import('../entries/pages/_layout.svelte.js')).default;\nexport const imports = [\"_app/immutable/nodes/0.BJ6Zdc8H.js\",\"_app/immutable/chunks/ZAD2y5xJ.js\",\"_app/immutable/chunks/xihTtKlq.js\"];\nexport const stylesheets = [\"_app/immutable/assets/0.BPmQoXaO.css\"];\nexport const fonts = [];\n"],"names":[],"mappings":"AAEY,MAAC,KAAK,GAAG;AACrB,IAAI,eAAe;AACP,MAAC,SAAS,GAAG,YAAY,eAAe,KAAK,CAAC,MAAM,OAAO,gDAAoC,CAAC,EAAE;AAClG,MAAC,OAAO,GAAG,CAAC,oCAAoC,CAAC,mCAAmC,CAAC,mCAAmC;AACxH,MAAC,WAAW,GAAG,CAAC,sCAAsC;AACtD,MAAC,KAAK,GAAG;;"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
const index = 1;
|
|
2
2
|
let component_cache;
|
|
3
|
-
const component = async () => component_cache ??= (await import('../entries/fallbacks/error.svelte.js-
|
|
4
|
-
const imports = ["_app/immutable/nodes/1.
|
|
3
|
+
const component = async () => component_cache ??= (await import('../entries/fallbacks/error.svelte.js-CFonuZkV.js')).default;
|
|
4
|
+
const imports = ["_app/immutable/nodes/1.xMNWuLLz.js","_app/immutable/chunks/ZAD2y5xJ.js","_app/immutable/chunks/xihTtKlq.js","_app/immutable/chunks/Bw_9uNRP.js","_app/immutable/chunks/De_x7GQi.js"];
|
|
5
5
|
const stylesheets = [];
|
|
6
6
|
const fonts = [];
|
|
7
7
|
|
|
8
8
|
export { component, fonts, imports, index, stylesheets };
|
|
9
|
-
//# sourceMappingURL=1.js-
|
|
9
|
+
//# sourceMappingURL=1.js-D68K7Ad_.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"1.js-
|
|
1
|
+
{"version":3,"file":"1.js-D68K7Ad_.js","sources":["../../../../.svelte-kit/output/server/nodes/1.js"],"sourcesContent":["\n\nexport const index = 1;\nlet component_cache;\nexport const component = async () => component_cache ??= (await import('../entries/fallbacks/error.svelte.js')).default;\nexport const imports = [\"_app/immutable/nodes/1.xMNWuLLz.js\",\"_app/immutable/chunks/ZAD2y5xJ.js\",\"_app/immutable/chunks/xihTtKlq.js\",\"_app/immutable/chunks/Bw_9uNRP.js\",\"_app/immutable/chunks/De_x7GQi.js\"];\nexport const stylesheets = [];\nexport const fonts = [];\n"],"names":[],"mappings":"AAEY,MAAC,KAAK,GAAG;AACrB,IAAI,eAAe;AACP,MAAC,SAAS,GAAG,YAAY,eAAe,KAAK,CAAC,MAAM,OAAO,kDAAsC,CAAC,EAAE;AACpG,MAAC,OAAO,GAAG,CAAC,oCAAoC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC;AAChM,MAAC,WAAW,GAAG;AACf,MAAC,KAAK,GAAG;;"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
const index = 2;
|
|
2
|
+
let component_cache;
|
|
3
|
+
const component = async () => component_cache ??= (await import('../entries/pages/_page.svelte.js-CpwYbxbM.js')).default;
|
|
4
|
+
const imports = ["_app/immutable/nodes/2.CaxDXwmh.js","_app/immutable/chunks/ZAD2y5xJ.js","_app/immutable/chunks/De_x7GQi.js","_app/immutable/chunks/xihTtKlq.js","_app/immutable/chunks/Bw_9uNRP.js"];
|
|
5
|
+
const stylesheets = [];
|
|
6
|
+
const fonts = [];
|
|
7
|
+
|
|
8
|
+
export { component, fonts, imports, index, stylesheets };
|
|
9
|
+
//# sourceMappingURL=2.js-ChYsaaoC.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"2.js-
|
|
1
|
+
{"version":3,"file":"2.js-ChYsaaoC.js","sources":["../../../../.svelte-kit/output/server/nodes/2.js"],"sourcesContent":["\n\nexport const index = 2;\nlet component_cache;\nexport const component = async () => component_cache ??= (await import('../entries/pages/_page.svelte.js')).default;\nexport const imports = [\"_app/immutable/nodes/2.CaxDXwmh.js\",\"_app/immutable/chunks/ZAD2y5xJ.js\",\"_app/immutable/chunks/De_x7GQi.js\",\"_app/immutable/chunks/xihTtKlq.js\",\"_app/immutable/chunks/Bw_9uNRP.js\"];\nexport const stylesheets = [];\nexport const fonts = [];\n"],"names":[],"mappings":"AAEY,MAAC,KAAK,GAAG;AACrB,IAAI,eAAe;AACP,MAAC,SAAS,GAAG,YAAY,eAAe,KAAK,CAAC,MAAM,OAAO,8CAAkC,CAAC,EAAE;AAChG,MAAC,OAAO,GAAG,CAAC,oCAAoC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC;AAChM,MAAC,WAAW,GAAG;AACf,MAAC,KAAK,GAAG;;"}
|
package/dist/cli/index.js
CHANGED
|
@@ -15,7 +15,7 @@ import { classifyCredentialFailure, describeStyle, isCredentialFailure, loginAdv
|
|
|
15
15
|
import { handleCompletion } from "./completions.js";
|
|
16
16
|
import { isLoopbackHost, parseCliArgs, usageText } from "./options.js";
|
|
17
17
|
import { appRootFromHere, healthUrl, openBrowser as openBrowserDefault, startServer, stopServer, uiUrl, waitForHealth, } from "./server.js";
|
|
18
|
-
import { isHeadless, probeCredentials as probeCredentialsDefault, runLogin as runLoginDefault, } from "./preflight.js";
|
|
18
|
+
import { isHeadless, probeCredentials as probeCredentialsDefault, readIdentity as readIdentityDefault, runLogin as runLoginDefault, shortIdentity, } from "./preflight.js";
|
|
19
19
|
import { createUi, isInteractive } from "./ui.js";
|
|
20
20
|
/** Reads the version from the package manifest next to the app root. */
|
|
21
21
|
export function readVersion(appRoot) {
|
|
@@ -74,6 +74,7 @@ function defaultIo() {
|
|
|
74
74
|
readLocalEnvValues: () => (appRoot === null ? {} : readLocalEnvValues(appRoot)),
|
|
75
75
|
probeCredentials: (input) => probeCredentialsDefault(input),
|
|
76
76
|
runLogin: (command) => runLoginDefault(command),
|
|
77
|
+
readIdentity: (input) => readIdentityDefault(input),
|
|
77
78
|
waitForHealth,
|
|
78
79
|
startServerImpl: startServer,
|
|
79
80
|
spawnImpl: spawn,
|
|
@@ -107,53 +108,71 @@ export function resolveCliRegion(options, io) {
|
|
|
107
108
|
*
|
|
108
109
|
* Emulator runs are skipped: `--floci` supplies throwaway keys on purpose.
|
|
109
110
|
*/
|
|
110
|
-
|
|
111
|
-
|
|
111
|
+
/**
|
|
112
|
+
* Asks the running app whether it can read logs, and when it cannot because of
|
|
113
|
+
* credentials, decides which profile the run should be using.
|
|
114
|
+
*
|
|
115
|
+
* With no profile in play it asks, because a machine with several profiles is
|
|
116
|
+
* rarely served by the ambient default. The identity check and the login come
|
|
117
|
+
* after the app has been restarted with that profile: only then do they test
|
|
118
|
+
* the profile the user actually chose.
|
|
119
|
+
*/
|
|
120
|
+
async function assessCredentials(input) {
|
|
121
|
+
const { options, io, ui, url, region, startProfile } = input;
|
|
112
122
|
if (options.endpoint !== null)
|
|
113
|
-
return;
|
|
123
|
+
return { status: 'ok' };
|
|
114
124
|
const probe = await io.probeCredentials({ baseUrl: url, region });
|
|
115
125
|
if (probe.ok)
|
|
116
|
-
return;
|
|
126
|
+
return { status: 'ok' };
|
|
117
127
|
if (!probe.credentialProblem || !isCredentialFailure(probe.code, probe.message)) {
|
|
118
|
-
|
|
119
|
-
return;
|
|
128
|
+
return { status: 'other', message: probe.message };
|
|
120
129
|
}
|
|
121
|
-
// The flag wins, then the ambient AWS_PROFILE: both decide which login
|
|
122
|
-
// command can actually repair the failure.
|
|
123
|
-
const profile = options.profile ?? ambientProfile(io.env) ?? 'default';
|
|
124
|
-
const style = readProfileStyle(io.readConfigText(), io.readCredentialsText(), profile);
|
|
125
|
-
const failure = classifyCredentialFailure(probe.message, probe.code);
|
|
126
|
-
const advice = loginAdvice({
|
|
127
|
-
style,
|
|
128
|
-
failure,
|
|
129
|
-
profile,
|
|
130
|
-
remote: isHeadless(io.env),
|
|
131
|
-
});
|
|
132
130
|
ui.warn(`AWS credentials are not usable: ${probe.message}`);
|
|
131
|
+
let profile = startProfile ?? 'default';
|
|
132
|
+
let chosen = null;
|
|
133
|
+
if (startProfile === null) {
|
|
134
|
+
const profiles = io.readProfiles();
|
|
135
|
+
if (profiles.length > 1) {
|
|
136
|
+
const answer = await ui.choose('Which AWS profile should watch-tail use?', profiles.map((name) => ({ value: name, label: name })), profiles.includes('default') ? 'default' : profiles[0]);
|
|
137
|
+
if (answer !== null && answer !== 'default') {
|
|
138
|
+
chosen = answer;
|
|
139
|
+
profile = answer;
|
|
140
|
+
ui.info(`using profile ${answer}`);
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
return { status: 'credentials', profile, chosen, message: probe.message, code: probe.code };
|
|
145
|
+
}
|
|
146
|
+
/**
|
|
147
|
+
* Offers the login that repairs a credential failure, runs it if accepted, and
|
|
148
|
+
* reports what happened. The profile is the one the app is currently using.
|
|
149
|
+
*/
|
|
150
|
+
async function offerLogin(input) {
|
|
151
|
+
const { io, ui, profile, failureMessage, failureCode } = input;
|
|
152
|
+
const name = profile ?? 'default';
|
|
153
|
+
const style = readProfileStyle(io.readConfigText(), io.readCredentialsText(), name);
|
|
154
|
+
const failure = classifyCredentialFailure(failureMessage, failureCode);
|
|
155
|
+
const advice = loginAdvice({ style, failure, profile, remote: isHeadless(io.env) });
|
|
133
156
|
if (advice === null) {
|
|
134
157
|
ui.info(style === 'static'
|
|
135
|
-
? `the ${describeStyle(style)} in profile "${
|
|
136
|
-
: `no login command applies to profile "${
|
|
137
|
-
return;
|
|
158
|
+
? `the ${describeStyle(style)} in profile "${name}" look wrong - check them with \`aws configure --profile ${name}\``
|
|
159
|
+
: `no login command applies to profile "${name}" (${describeStyle(style)})`);
|
|
160
|
+
return { login: 'none' };
|
|
138
161
|
}
|
|
139
162
|
const label = `aws ${advice.command.join(' ')}`;
|
|
140
163
|
const accepted = await ui.confirm(`${advice.hint}. Run \`${label}\` now?`);
|
|
141
164
|
if (!accepted) {
|
|
142
165
|
ui.info(`run it yourself, then press Refresh in the UI: ${label}`);
|
|
143
|
-
return;
|
|
166
|
+
return { login: 'declined' };
|
|
144
167
|
}
|
|
145
168
|
ui.info(`running ${label}`);
|
|
146
169
|
const code = await io.runLogin(advice.command);
|
|
147
170
|
if (code !== 0) {
|
|
148
171
|
ui.warn(`${label} exited with code ${code}`);
|
|
149
172
|
ui.info(`log in another terminal, then press Refresh in the UI: ${label}`);
|
|
150
|
-
return;
|
|
173
|
+
return { login: 'failed' };
|
|
151
174
|
}
|
|
152
|
-
|
|
153
|
-
if (retry.ok)
|
|
154
|
-
ui.info('signed in - credentials work now');
|
|
155
|
-
else
|
|
156
|
-
ui.warn(`still failing after login: ${retry.message}`);
|
|
175
|
+
return { login: 'succeeded' };
|
|
157
176
|
}
|
|
158
177
|
/** Runs the CLI and returns its exit code. */
|
|
159
178
|
export async function run(argv, overrides = {}) {
|
|
@@ -241,7 +260,7 @@ export async function run(argv, overrides = {}) {
|
|
|
241
260
|
ui.warn('a .env.local with local emulator settings was found; it is ignored for this run');
|
|
242
261
|
}
|
|
243
262
|
ui.startSpinner('starting the local UI...');
|
|
244
|
-
|
|
263
|
+
let child = io.startServerImpl({
|
|
245
264
|
appRoot: io.appRoot,
|
|
246
265
|
env: childEnv,
|
|
247
266
|
port: options.port,
|
|
@@ -257,7 +276,87 @@ export async function run(argv, overrides = {}) {
|
|
|
257
276
|
ui.stopSpinner(`listening on ${url}`);
|
|
258
277
|
// Before sending anyone to a UI that cannot load logs, check that AWS will
|
|
259
278
|
// actually answer, and offer the login that fixes it.
|
|
260
|
-
await
|
|
279
|
+
const assessment = await assessCredentials({
|
|
280
|
+
options,
|
|
281
|
+
io,
|
|
282
|
+
ui,
|
|
283
|
+
url,
|
|
284
|
+
region,
|
|
285
|
+
startProfile: profile,
|
|
286
|
+
});
|
|
287
|
+
if (assessment.status === 'other') {
|
|
288
|
+
ui.warn(`could not list log groups: ${assessment.message}`);
|
|
289
|
+
}
|
|
290
|
+
if (assessment.status === 'credentials') {
|
|
291
|
+
// A profile that was not in play needs the app restarted with it: that is
|
|
292
|
+
// the only way to find out whether its credentials already work, and the
|
|
293
|
+
// only way the browser can use it.
|
|
294
|
+
const activeProfile = assessment.chosen === null ? null : assessment.chosen;
|
|
295
|
+
let activeRegion = region;
|
|
296
|
+
let failureMessage = assessment.message;
|
|
297
|
+
let failureCode = assessment.code;
|
|
298
|
+
if (assessment.chosen !== null) {
|
|
299
|
+
activeRegion = resolveRunRegion({
|
|
300
|
+
region: options.region,
|
|
301
|
+
profile: assessment.chosen,
|
|
302
|
+
base: io.env,
|
|
303
|
+
configText: io.readConfigText(),
|
|
304
|
+
});
|
|
305
|
+
ui.info(`restarting with profile ${assessment.chosen}`);
|
|
306
|
+
await stopServer(child);
|
|
307
|
+
child = io.startServerImpl({
|
|
308
|
+
appRoot: io.appRoot,
|
|
309
|
+
env: buildChildEnv({
|
|
310
|
+
base: baseEnv,
|
|
311
|
+
profile: assessment.chosen,
|
|
312
|
+
region: activeRegion,
|
|
313
|
+
endpoint: null,
|
|
314
|
+
}),
|
|
315
|
+
port: options.port,
|
|
316
|
+
host: options.host,
|
|
317
|
+
verbose: options.verbose,
|
|
318
|
+
});
|
|
319
|
+
const healthy = await io.waitForHealth(healthUrl(url), { fetchImpl: fetch });
|
|
320
|
+
if (!healthy) {
|
|
321
|
+
ui.failSpinner(`the server did not come back up on ${url}`);
|
|
322
|
+
await stopServer(child);
|
|
323
|
+
return 1;
|
|
324
|
+
}
|
|
325
|
+
// Now the question is about the chosen profile, not the ambient one.
|
|
326
|
+
const identity = await io.readIdentity({ baseUrl: url, region: activeRegion });
|
|
327
|
+
if (identity.ok) {
|
|
328
|
+
ui.info(`profile ${assessment.chosen} already works (${shortIdentity(identity.identity.arn)}) - using it`);
|
|
329
|
+
ui.outro(`${url} (Ctrl+C to stop)`);
|
|
330
|
+
if (options.open)
|
|
331
|
+
io.openBrowser(url);
|
|
332
|
+
const code = await io.waitForStop(child);
|
|
333
|
+
ui.outro('stopped');
|
|
334
|
+
return code;
|
|
335
|
+
}
|
|
336
|
+
failureMessage = identity.message;
|
|
337
|
+
failureCode = identity.code;
|
|
338
|
+
}
|
|
339
|
+
const outcome = await offerLogin({
|
|
340
|
+
options,
|
|
341
|
+
io,
|
|
342
|
+
ui,
|
|
343
|
+
profile: activeProfile ?? assessment.profile,
|
|
344
|
+
failureMessage,
|
|
345
|
+
failureCode,
|
|
346
|
+
});
|
|
347
|
+
if (outcome.login === 'succeeded') {
|
|
348
|
+
const identity = await io.readIdentity({ baseUrl: url, region: activeRegion });
|
|
349
|
+
if (identity.ok) {
|
|
350
|
+
ui.info(`signed in as ${shortIdentity(identity.identity.arn)}${activeProfile === null ? '' : ` (${activeProfile})`}`);
|
|
351
|
+
}
|
|
352
|
+
else {
|
|
353
|
+
ui.warn(`still failing after login: ${identity.message}`);
|
|
354
|
+
}
|
|
355
|
+
}
|
|
356
|
+
else if (activeProfile !== null) {
|
|
357
|
+
ui.info(`the app is using profile ${activeProfile}; log in, then press Refresh in the UI`);
|
|
358
|
+
}
|
|
359
|
+
}
|
|
261
360
|
if (options.open)
|
|
262
361
|
io.openBrowser(url);
|
|
263
362
|
ui.outro(`${url} (Ctrl+C to stop)`);
|
package/dist/cli/preflight.js
CHANGED
|
@@ -71,3 +71,45 @@ export function isHeadless(env = process.env) {
|
|
|
71
71
|
return true;
|
|
72
72
|
return false;
|
|
73
73
|
}
|
|
74
|
+
/**
|
|
75
|
+
* Asks the app to call `sts:GetCallerIdentity`.
|
|
76
|
+
*
|
|
77
|
+
* This is the cheapest way to answer "do these credentials work at all?", and it
|
|
78
|
+
* is what tells the CLI not to offer a login for a profile that is already fine.
|
|
79
|
+
*/
|
|
80
|
+
export async function readIdentity(input) {
|
|
81
|
+
const { baseUrl, region, fetchImpl = fetch, timeoutMs = 15_000 } = input;
|
|
82
|
+
const url = new URL('/api/identity', baseUrl);
|
|
83
|
+
if (region !== null && region !== '')
|
|
84
|
+
url.searchParams.set('region', region);
|
|
85
|
+
try {
|
|
86
|
+
const response = await fetchImpl(url, { signal: AbortSignal.timeout(timeoutMs) });
|
|
87
|
+
if (response.ok) {
|
|
88
|
+
return { ok: true, identity: (await response.json()) };
|
|
89
|
+
}
|
|
90
|
+
const body = (await response.json().catch(() => null));
|
|
91
|
+
return { ok: false, code: body?.code, message: body?.error ?? `HTTP ${response.status}` };
|
|
92
|
+
}
|
|
93
|
+
catch (error) {
|
|
94
|
+
return { ok: false, message: error instanceof Error ? error.message : String(error) };
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* Short label for an ARN, for messages.
|
|
99
|
+
*
|
|
100
|
+
* Role ARNs end with the session name and not the role
|
|
101
|
+
* (`assumed-role/MyRole/session-name`), so the role is the useful label; the
|
|
102
|
+
* session name is stripped.
|
|
103
|
+
*/
|
|
104
|
+
export function shortIdentity(arn) {
|
|
105
|
+
if (arn.length === 0)
|
|
106
|
+
return 'unknown';
|
|
107
|
+
const resource = arn.split(':').at(-1) ?? arn;
|
|
108
|
+
const parts = resource.split('/').filter((part) => part.length > 0);
|
|
109
|
+
if (parts.length === 0)
|
|
110
|
+
return arn;
|
|
111
|
+
const [kind, name] = parts;
|
|
112
|
+
if ((kind === 'assumed-role' || kind === 'role' || kind === 'user') && name !== undefined)
|
|
113
|
+
return name;
|
|
114
|
+
return parts.at(-1) ?? arn;
|
|
115
|
+
}
|
package/dist/cli/ui.js
CHANGED
|
@@ -6,14 +6,18 @@
|
|
|
6
6
|
* falls back to plain lines, which also keeps the integration tests readable.
|
|
7
7
|
*/
|
|
8
8
|
import { autocomplete, cancel, confirm, intro, isCancel, log, outro, spinner, } from '@clack/prompts';
|
|
9
|
-
/**
|
|
9
|
+
/**
|
|
10
|
+
* Decides whether the process can render animated output and ask questions.
|
|
11
|
+
*
|
|
12
|
+
* `NO_COLOR` is deliberately *not* consulted: it asks for no colour, which the
|
|
13
|
+
* prompt library honours on its own, and reading it as "do not prompt" silently
|
|
14
|
+
* disabled the login and profile questions for anyone who sets it.
|
|
15
|
+
*/
|
|
10
16
|
export function isInteractive(env = process.env) {
|
|
11
17
|
if (env.CI !== undefined && env.CI !== '' && env.CI !== 'false')
|
|
12
18
|
return false;
|
|
13
19
|
if (env.WATCH_TAIL_PLAIN === '1')
|
|
14
20
|
return false;
|
|
15
|
-
if (env.NO_COLOR !== undefined && env.NO_COLOR !== '')
|
|
16
|
-
return false;
|
|
17
21
|
return process.stdout.isTTY === true && process.stdin.isTTY === true;
|
|
18
22
|
}
|
|
19
23
|
/**
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "watch-tail",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.4.0",
|
|
4
4
|
"description": "Tail Amazon CloudWatch Logs in your browser: a local SvelteKit UI with live and historic streaming, ambient AWS credentials and floci support",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"aws",
|
|
@@ -38,6 +38,7 @@
|
|
|
38
38
|
},
|
|
39
39
|
"dependencies": {
|
|
40
40
|
"@aws-sdk/client-cloudwatch-logs": "^3.1129.0",
|
|
41
|
+
"@aws-sdk/client-sts": "^3.1130.0",
|
|
41
42
|
"@bomb.sh/args": "^0.3.1",
|
|
42
43
|
"@bomb.sh/tab": "^0.0.22",
|
|
43
44
|
"@clack/prompts": "^1.8.0"
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */
|
|
2
|
-
@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial}}}@layer theme{:root,:host{--font-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--color-red-300:oklch(80.8% .114 19.571);--color-red-400:oklch(70.4% .191 22.216);--color-red-900:oklch(39.6% .141 25.723);--color-red-950:oklch(25.8% .092 26.042);--color-amber-200:oklch(92.4% .12 95.746);--color-amber-300:oklch(87.9% .169 91.605);--color-amber-400:oklch(82.8% .189 84.429);--color-amber-700:oklch(55.5% .163 48.998);--color-amber-900:oklch(41.4% .112 45.904);--color-amber-950:oklch(27.9% .077 45.635);--color-emerald-300:oklch(84.5% .143 164.978);--color-emerald-400:oklch(76.5% .177 163.223);--color-emerald-900:oklch(37.8% .077 168.94);--color-emerald-950:oklch(26.2% .051 172.552);--color-sky-200:oklch(90.1% .058 230.902);--color-sky-300:oklch(82.8% .111 230.318);--color-sky-400:oklch(74.6% .16 232.661);--color-sky-500:oklch(68.5% .169 237.323);--color-sky-600:oklch(58.8% .158 241.966);--color-sky-700:oklch(50% .134 242.749);--color-sky-800:oklch(44.3% .11 240.79);--color-sky-900:oklch(39.1% .09 240.876);--color-sky-950:oklch(29.3% .066 243.157);--color-violet-300:oklch(81.1% .111 293.571);--color-violet-900:oklch(38% .189 293.745);--color-violet-950:oklch(28.3% .141 291.089);--color-fuchsia-300:oklch(83.3% .145 321.434);--color-neutral-100:oklch(97% 0 none);--color-neutral-200:oklch(92.2% 0 none);--color-neutral-300:oklch(87% 0 none);--color-neutral-400:oklch(70.8% 0 none);--color-neutral-500:oklch(55.6% 0 none);--color-neutral-600:oklch(43.9% 0 none);--color-neutral-700:oklch(37.1% 0 none);--color-neutral-800:oklch(26.9% 0 none);--color-neutral-900:oklch(20.5% 0 none);--color-neutral-950:oklch(14.5% 0 none);--spacing:.25rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--font-weight-medium:500;--font-weight-semibold:600;--tracking-tight:-.025em;--tracking-wider:.05em;--radius-md:.375rem;--radius-lg:.5rem;--animate-pulse:pulse 2s cubic-bezier(.4, 0, .6, 1) infinite;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring:where(:not(iframe)){outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.inset-y-0{inset-block:0}.container{width:100%}@media (width>=40rem){.container{max-width:40rem}}@media (width>=48rem){.container{max-width:48rem}}@media (width>=64rem){.container{max-width:64rem}}@media (width>=80rem){.container{max-width:80rem}}@media (width>=96rem){.container{max-width:96rem}}.ml-auto{margin-left:auto}.block{display:block}.contents{display:contents}.flex{display:flex}.hidden{display:none}.inline{display:inline}.inline-flex{display:inline-flex}.size-1\.5{width:calc(var(--spacing) * 1.5);height:calc(var(--spacing) * 1.5)}.h-5{height:calc(var(--spacing) * 5)}.h-dvh{height:100dvh}.min-h-0{min-height:0}.min-h-\[30rem\]{min-height:30rem}.min-h-full{min-height:100%}.w-2{width:calc(var(--spacing) * 2)}.w-40{width:calc(var(--spacing) * 40)}.w-\[7\.5rem\]{width:7.5rem}.w-full{width:100%}.w-max{width:max-content}.max-w-\[22rem\]{max-width:22rem}.min-w-0{min-width:0}.min-w-full{min-width:100%}.flex-1{flex:1}.flex-none{flex:none}.shrink-0{flex-shrink:0}.grow{flex-grow:1}.animate-pulse{animation:var(--animate-pulse)}.cursor-col-resize{cursor:col-resize}.touch-none{touch-action:none}.resize{resize:both}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-baseline{align-items:baseline}.items-center{align-items:center}.justify-between{justify-content:space-between}.gap-1{gap:var(--spacing)}.gap-1\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-x-3{column-gap:calc(var(--spacing) * 3)}.gap-y-2{row-gap:calc(var(--spacing) * 2)}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-y-auto{overflow-y:auto}.rounded{border-radius:.25rem}.rounded-full{border-radius:2147483647px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.border{border-style:var(--tw-border-style);border-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-amber-700{border-color:var(--color-amber-700)}.border-amber-900{border-color:var(--color-amber-900)}.border-emerald-900{border-color:var(--color-emerald-900)}.border-neutral-700{border-color:var(--color-neutral-700)}.border-neutral-800{border-color:var(--color-neutral-800)}.border-neutral-900{border-color:var(--color-neutral-900)}.border-red-900{border-color:var(--color-red-900)}.border-sky-700{border-color:var(--color-sky-700)}.border-sky-800{border-color:var(--color-sky-800)}.border-sky-900{border-color:var(--color-sky-900)}.border-transparent{border-color:#0000}.border-violet-900{border-color:var(--color-violet-900)}.bg-amber-400{background-color:var(--color-amber-400)}.bg-amber-950\/40{background-color:#46190166}@supports (color:color-mix(in lab, red, red)){.bg-amber-950\/40{background-color:color-mix(in oklab, var(--color-amber-950) 40%, transparent)}}.bg-amber-950\/50{background-color:#46190180}@supports (color:color-mix(in lab, red, red)){.bg-amber-950\/50{background-color:color-mix(in oklab, var(--color-amber-950) 50%, transparent)}}.bg-amber-950\/70{background-color:#461901b3}@supports (color:color-mix(in lab, red, red)){.bg-amber-950\/70{background-color:color-mix(in oklab, var(--color-amber-950) 70%, transparent)}}.bg-emerald-400{background-color:var(--color-emerald-400)}.bg-emerald-950\/70{background-color:#002c22b3}@supports (color:color-mix(in lab, red, red)){.bg-emerald-950\/70{background-color:color-mix(in oklab, var(--color-emerald-950) 70%, transparent)}}.bg-neutral-500{background-color:var(--color-neutral-500)}.bg-neutral-800\/60{background-color:#26262699}@supports (color:color-mix(in lab, red, red)){.bg-neutral-800\/60{background-color:color-mix(in oklab, var(--color-neutral-800) 60%, transparent)}}.bg-neutral-800\/80{background-color:#262626cc}@supports (color:color-mix(in lab, red, red)){.bg-neutral-800\/80{background-color:color-mix(in oklab, var(--color-neutral-800) 80%, transparent)}}.bg-neutral-900{background-color:var(--color-neutral-900)}.bg-neutral-900\/40{background-color:#17171766}@supports (color:color-mix(in lab, red, red)){.bg-neutral-900\/40{background-color:color-mix(in oklab, var(--color-neutral-900) 40%, transparent)}}.bg-neutral-900\/60{background-color:#17171799}@supports (color:color-mix(in lab, red, red)){.bg-neutral-900\/60{background-color:color-mix(in oklab, var(--color-neutral-900) 60%, transparent)}}.bg-neutral-900\/70{background-color:#171717b3}@supports (color:color-mix(in lab, red, red)){.bg-neutral-900\/70{background-color:color-mix(in oklab, var(--color-neutral-900) 70%, transparent)}}.bg-neutral-950{background-color:var(--color-neutral-950)}.bg-neutral-950\/60{background-color:#0a0a0a99}@supports (color:color-mix(in lab, red, red)){.bg-neutral-950\/60{background-color:color-mix(in oklab, var(--color-neutral-950) 60%, transparent)}}.bg-neutral-950\/90{background-color:#0a0a0ae6}@supports (color:color-mix(in lab, red, red)){.bg-neutral-950\/90{background-color:color-mix(in oklab, var(--color-neutral-950) 90%, transparent)}}.bg-red-400{background-color:var(--color-red-400)}.bg-red-950\/50{background-color:#46080980}@supports (color:color-mix(in lab, red, red)){.bg-red-950\/50{background-color:color-mix(in oklab, var(--color-red-950) 50%, transparent)}}.bg-red-950\/70{background-color:#460809b3}@supports (color:color-mix(in lab, red, red)){.bg-red-950\/70{background-color:color-mix(in oklab, var(--color-red-950) 70%, transparent)}}.bg-sky-400{background-color:var(--color-sky-400)}.bg-sky-950\/50{background-color:#052f4a80}@supports (color:color-mix(in lab, red, red)){.bg-sky-950\/50{background-color:color-mix(in oklab, var(--color-sky-950) 50%, transparent)}}.bg-sky-950\/60{background-color:#052f4a99}@supports (color:color-mix(in lab, red, red)){.bg-sky-950\/60{background-color:color-mix(in oklab, var(--color-sky-950) 60%, transparent)}}.bg-sky-950\/70{background-color:#052f4ab3}@supports (color:color-mix(in lab, red, red)){.bg-sky-950\/70{background-color:color-mix(in oklab, var(--color-sky-950) 70%, transparent)}}.bg-transparent{background-color:#0000}.bg-violet-950\/60{background-color:#2f0d6899}@supports (color:color-mix(in lab, red, red)){.bg-violet-950\/60{background-color:color-mix(in oklab, var(--color-violet-950) 60%, transparent)}}.p-0\.5{padding:calc(var(--spacing) * .5)}.p-2{padding:calc(var(--spacing) * 2)}.p-3{padding:calc(var(--spacing) * 3)}.px-1{padding-inline:var(--spacing)}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-2\.5{padding-inline:calc(var(--spacing) * 2.5)}.px-3{padding-inline:calc(var(--spacing) * 3)}.py-0\.5{padding-block:calc(var(--spacing) * .5)}.py-1{padding-block:var(--spacing)}.py-1\.5{padding-block:calc(var(--spacing) * 1.5)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-3{padding-block:calc(var(--spacing) * 3)}.py-6{padding-block:calc(var(--spacing) * 6)}.pr-1{padding-right:var(--spacing)}.text-left{text-align:left}.font-mono{font-family:var(--font-mono)}.font-sans{font-family:var(--font-sans)}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\[0\.6875rem\]{font-size:.6875rem}.leading-5{--tw-leading:calc(var(--spacing) * 5);line-height:calc(var(--spacing) * 5)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-tight{--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight)}.tracking-wider{--tw-tracking:var(--tracking-wider);letter-spacing:var(--tracking-wider)}.break-words{overflow-wrap:break-word}.whitespace-pre{white-space:pre}.whitespace-pre-wrap{white-space:pre-wrap}.text-amber-200{color:var(--color-amber-200)}.text-amber-300{color:var(--color-amber-300)}.text-amber-300\/80{color:#ffd236cc}@supports (color:color-mix(in lab, red, red)){.text-amber-300\/80{color:color-mix(in oklab, var(--color-amber-300) 80%, transparent)}}.text-amber-400\/80{color:#fcbb00cc}@supports (color:color-mix(in lab, red, red)){.text-amber-400\/80{color:color-mix(in oklab, var(--color-amber-400) 80%, transparent)}}.text-emerald-300{color:var(--color-emerald-300)}.text-emerald-400\/80{color:#00d294cc}@supports (color:color-mix(in lab, red, red)){.text-emerald-400\/80{color:color-mix(in oklab, var(--color-emerald-400) 80%, transparent)}}.text-fuchsia-300{color:var(--color-fuchsia-300)}.text-neutral-100{color:var(--color-neutral-100)}.text-neutral-200{color:var(--color-neutral-200)}.text-neutral-300{color:var(--color-neutral-300)}.text-neutral-400{color:var(--color-neutral-400)}.text-neutral-500{color:var(--color-neutral-500)}.text-neutral-600{color:var(--color-neutral-600)}.text-red-300{color:var(--color-red-300)}.text-red-400{color:var(--color-red-400)}.text-sky-200{color:var(--color-sky-200)}.text-sky-300{color:var(--color-sky-300)}.text-sky-400{color:var(--color-sky-400)}.text-sky-400\/80{color:#00bcfecc}@supports (color:color-mix(in lab, red, red)){.text-sky-400\/80{color:color-mix(in oklab, var(--color-sky-400) 80%, transparent)}}.text-violet-300{color:var(--color-violet-300)}.lowercase{text-transform:lowercase}.uppercase{text-transform:uppercase}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.ring{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.outline-none{--tw-outline-style:none;outline-style:none}.selection\:bg-sky-900\/60 ::selection{background-color:#024a7099}@supports (color:color-mix(in lab, red, red)){.selection\:bg-sky-900\/60 ::selection{background-color:color-mix(in oklab, var(--color-sky-900) 60%, transparent)}}.selection\:bg-sky-900\/60::selection{background-color:#024a7099}@supports (color:color-mix(in lab, red, red)){.selection\:bg-sky-900\/60::selection{background-color:color-mix(in oklab, var(--color-sky-900) 60%, transparent)}}.placeholder\:text-neutral-600::placeholder{color:var(--color-neutral-600)}@media (hover:hover){.hover\:border-neutral-700:hover{border-color:var(--color-neutral-700)}.hover\:border-neutral-800:hover{border-color:var(--color-neutral-800)}.hover\:border-sky-600:hover{border-color:var(--color-sky-600)}.hover\:bg-neutral-900\/60:hover{background-color:#17171799}@supports (color:color-mix(in lab, red, red)){.hover\:bg-neutral-900\/60:hover{background-color:color-mix(in oklab, var(--color-neutral-900) 60%, transparent)}}.hover\:bg-sky-500\/30:hover{background-color:#00a5ef4d}@supports (color:color-mix(in lab, red, red)){.hover\:bg-sky-500\/30:hover{background-color:color-mix(in oklab, var(--color-sky-500) 30%, transparent)}}.hover\:text-neutral-100:hover{color:var(--color-neutral-100)}.hover\:text-neutral-200:hover{color:var(--color-neutral-200)}}.focus\:border-sky-600:focus{border-color:var(--color-sky-600)}.focus\:bg-sky-500\/50:focus{background-color:#00a5ef80}@supports (color:color-mix(in lab, red, red)){.focus\:bg-sky-500\/50:focus{background-color:color-mix(in oklab, var(--color-sky-500) 50%, transparent)}}.focus\:outline-none:focus{--tw-outline-style:none;outline-style:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-40:disabled{opacity:.4}.disabled\:opacity-50:disabled{opacity:.5}@media (width>=40rem){.sm\:inline{display:inline}.sm\:px-4{padding-inline:calc(var(--spacing) * 4)}}@media (width>=64rem){.lg\:block{display:block}.lg\:w-2{width:calc(var(--spacing) * 2)}.lg\:shrink-0{flex-shrink:0}.lg\:flex-row{flex-direction:row}}}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@keyframes pulse{50%{opacity:.5}}
|
|
Binary file
|
|
Binary file
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{A as e,K as t,M as n,U as r,W as i,j as a,k as o,n as s,t as c}from"./ZAD2y5xJ.js";var l=class{constructor(e,t){this.status=e,this.body=typeof t==`string`?{message:t}:t||{message:`Error: ${e}`}}toString(){return JSON.stringify(this.body)}},u=class{constructor(e,t){try{new Headers({location:t})}catch{throw Error(`Invalid redirect location ${JSON.stringify(t)}: this string contains characters that cannot be used in HTTP headers`)}this.status=e,this.location=t}},d=class extends Error{constructor(e,t,n){super(n),this.status=e,this.text=t}};new URL(`sveltekit-internal://`);function f(e,t){return e===`/`||t===`ignore`?e:t===`never`?e.endsWith(`/`)?e.slice(0,-1):e:t===`always`&&!e.endsWith(`/`)?e+`/`:e}function p(e){return e.split(`%25`).map(decodeURI).join(`%25`)}function ee(e){for(let t in e)e[t]=decodeURIComponent(e[t]);return e}function m({href:e}){return e.split(`#`)[0]}function h(){}function g(...e){let t=5381;for(let n of e)if(typeof n==`string`){let e=n.length;for(;e;)t=t*33^n.charCodeAt(--e)}else if(ArrayBuffer.isView(n)){let e=new Uint8Array(n.buffer,n.byteOffset,n.byteLength),r=e.length;for(;r;)t=t*33^e[--r]}else throw TypeError(`value must be a string or TypedArray`);return(t>>>0).toString(36)}new TextEncoder;function _(e){let t=atob(e),n=new Uint8Array(t.length);for(let e=0;e<t.length;e++)n[e]=t.charCodeAt(e);return n}var te=window.fetch;window.fetch=(e,t)=>((e instanceof Request?e.method:t?.method||`GET`)!==`GET`&&v.delete(b(e)),te(e,t));var v=new Map;function y(e,t){let n=b(e,t),r=document.querySelector(n);if(r?.textContent){r.remove();let{body:e,...t}=JSON.parse(r.textContent);r.getAttribute(`data-b64`)!==null&&(e=_(e));let i=r.getAttribute(`data-ttl`);return i&&v.set(n,{body:e,init:t,ttl:1e3*Number(i)}),Promise.resolve(new Response(e,t))}return window.fetch(e,t)}function ne(e,t,n){if(v.size>0){let t=b(e,n),r=v.get(t);if(r){if(performance.now()<r.ttl&&[`default`,`force-cache`,`only-if-cached`,void 0].includes(n?.cache))return new Response(r.body,r.init);v.delete(t)}}return window.fetch(t,n)}function b(e,t){let n=`script[data-sveltekit-fetched][data-url=${JSON.stringify(e instanceof Request?e.url:e)}]`;if(t?.headers||t?.body){let e=[];t.headers&&e.push([...new Headers(t.headers)].join(`,`)),t.body&&(typeof t.body==`string`||ArrayBuffer.isView(t.body))&&e.push(t.body),n+=`[data-hash="${g(...e)}"]`}return n}var re=/^(\[)?(\.\.\.)?(\w+)(?:=(\w+))?(\])?$/,ie=/^\/\((?:[^)]+)\)$/;function ae(e){let t=[];return{pattern:e===`/`||ie.test(e)?/^\/$/:RegExp(`^${se(e).map(e=>{let n=/^\[\.\.\.(\w+)(?:=(\w+))?\]$/.exec(e);if(n)return t.push({name:n[1],matcher:n[2],optional:!1,rest:!0,chained:!0}),`(?:/([^]*))?`;let r=/^\[\[(\w+)(?:=(\w+))?\]\]$/.exec(e);if(r)return t.push({name:r[1],matcher:r[2],optional:!0,rest:!1,chained:!0}),`(?:/([^/]+))?`;if(!e)return;let i=e.split(/\[(.+?)\](?!\])/);return`/`+i.map((e,n)=>{if(n%2){if(e.startsWith(`x+`))return le(String.fromCharCode(parseInt(e.slice(2),16)));if(e.startsWith(`u+`))return le(String.fromCharCode(...e.slice(2).split(`-`).map(e=>parseInt(e,16))));let[,r,a,o,s]=re.exec(e);return t.push({name:o,matcher:s,optional:!!r,rest:!!a,chained:a?n===1&&i[0]===``:!1}),a?`([^]*?)`:r?`([^/]*)?`:`([^/]+?)`}return le(e)}).join(``)}).join(``)}/?$`),params:t}}function oe(e){return e!==``&&!/^\([^)]+\)$/.test(e)}function se(e){return e.slice(1).split(`/`).filter(oe)}function ce(e,t,n){let r={},i=e.slice(1),a=i.filter(e=>e!==void 0),o=0;for(let e=0;e<t.length;e+=1){let s=t[e],c=i[e-o];if(s.chained&&s.rest&&o&&(c=i.slice(e-o,e+1).filter(e=>e).join(`/`),o=0),c===void 0){if(s.rest)c=``;else continue}if(!s.matcher||n[s.matcher](c)){r[s.name]=c;let n=t[e+1],l=i[e+1];n&&!n.rest&&n.optional&&l&&s.chained&&(o=0),!n&&!l&&Object.keys(r).length===a.length&&(o=0);continue}if(s.optional&&s.chained){o++;continue}return}if(!o)return r}function le(e){return e.normalize().replace(/[[\]]/g,`\\$&`).replace(/%/g,`%25`).replace(/\//g,`%2[Ff]`).replace(/\?/g,`%3[Ff]`).replace(/#/g,`%23`).replace(/[.*+?^${}()|\\]/g,`\\$&`)}function ue({nodes:e,server_loads:t,dictionary:n,matchers:r}){let i=new Set(t);return Object.entries(n).map(([t,[n,i,s]])=>{let{pattern:c,params:l}=ae(t),u={id:t,exec:e=>{let t=c.exec(e);if(t)return ce(t,l,r)},errors:[1,...s||[]].map(t=>e[t]),layouts:[0,...i||[]].map(o),leaf:a(n)};return u.errors.length=u.layouts.length=Math.max(u.errors.length,u.layouts.length),u});function a(t){let n=t<0;return n&&(t=~t),[n,e[t]]}function o(t){return t===void 0?t:[i.has(t),e[t]]}}function de(e,t=JSON.parse){try{return t(sessionStorage[e])}catch{}}function fe(e,t,n=JSON.stringify){let r=n(t);try{sessionStorage[e]=r}catch{}}var x=globalThis.__sveltekit_1d530vm?.base??``,pe=globalThis.__sveltekit_1d530vm?.assets??x??``,me=`1789167174727`,he=`sveltekit:snapshot`,ge=`sveltekit:scroll`,_e=`sveltekit:states`,ve=`sveltekit:pageurl`,S=`sveltekit:history`,C=`sveltekit:navigation`,w={tap:1,hover:2,viewport:3,eager:4,off:-1,false:-1},ye=location.origin;function be(e){if(e instanceof URL)return e;let t=document.baseURI;if(!t){let e=document.getElementsByTagName(`base`);t=e.length?e[0].href:document.URL}return new URL(e,t)}function T(){return{x:pageXOffset,y:pageYOffset}}function E(e,t){return e.getAttribute(`data-sveltekit-${t}`)}var xe={...w,"":w.hover};function Se(e){let t=e.assignedSlot??e.parentNode;return t?.nodeType===11&&(t=t.host),t}function Ce(e,t){for(;e&&e!==t;){if(e.nodeName.toUpperCase()===`A`&&e.hasAttribute(`href`))return e;e=Se(e)}}function we(e,t,n){let r;try{if(r=new URL(e instanceof SVGAElement?e.href.baseVal:e.href,document.baseURI),n&&r.hash.match(/^#[^/]/)){let e=location.hash.split(`#`)[1]||`/`;r.hash=`#${e}${r.hash}`}}catch{}let i=e instanceof SVGAElement?e.target.baseVal:e.target,a=!r||!!i||O(r,t,n)||(e.getAttribute(`rel`)||``).split(/\s+/).includes(`external`),o=r?.origin===ye&&e.hasAttribute(`download`);return{url:r,external:a,target:i,download:o}}function D(e){let t=null,n=null,r=null,i=null,a=null,o=null,s=e;for(;s&&s!==document.documentElement;)r===null&&(r=E(s,`preload-code`)),i===null&&(i=E(s,`preload-data`)),t===null&&(t=E(s,`keepfocus`)),n===null&&(n=E(s,`noscroll`)),a===null&&(a=E(s,`reload`)),o===null&&(o=E(s,`replacestate`)),s=Se(s);function c(e){switch(e){case``:case`true`:return!0;case`off`:case`false`:return!1;default:return}}return{preload_code:xe[r??`off`],preload_data:xe[i??`off`],keepfocus:c(t),noscroll:c(n),reload:c(a),replace_state:c(o)}}function Te(e){let n=t(e),r=!0;function i(){r=!0,n.update(e=>e)}function a(e){r=!1,n.set(e)}function o(e){let t;return n.subscribe(n=>{(t===void 0||r&&n!==t)&&e(t=n)})}return{notify:i,set:a,subscribe:o}}var Ee={v:h};function De(){let{set:e,subscribe:n}=t(!1),r;async function i(){clearTimeout(r);try{let t=await fetch(`${pe}/_app/version.json`,{headers:{pragma:`no-cache`,"cache-control":`no-cache`}});if(!t.ok)return!1;let n=(await t.json()).version!==me;return n&&(e(!0),Ee.v(),clearTimeout(r)),n}catch{return!1}}return{subscribe:n,check:i}}function O(e,t,n){return e.origin!==ye||!e.pathname.startsWith(t)?!0:n?e.pathname!==location.pathname:!1}function Oe(e){}var ke=2**32-1-1,Ae=Object.getOwnPropertyNames(Object.prototype).sort().join(`\0`);function je(e){let t=Object.getPrototypeOf(e);return t===Object.prototype||t===null||Object.getPrototypeOf(t)===null||Object.getOwnPropertyNames(t).sort().join(`\0`)===Ae}function Me(e){return Object.prototype.toString.call(e).slice(8,-1)}function Ne(e){return Object.getOwnPropertySymbols(e).filter(t=>Object.getOwnPropertyDescriptor(e,t).enumerable)}function Pe(e){return!(!Number.isInteger(e)||e<0||e>ke)}function Fe(e){if(e.length===0||e.length>1&&e.charCodeAt(0)===48)return!1;for(let t=0;t<e.length;t++){let n=e.charCodeAt(t);if(n<48||n>57)return!1}return Pe(+e)}function Ie(e){for(var t=e.length-1;t>=0&&!Fe(e[t]);t--);return t+1}function Le(e){let t=Object.keys(e);return t.length=Ie(t),t}Uint8Array.fromBase64,typeof process==`object`&&process.versions?.node;var Re=Object.freeze({kind:`not-plain`}),ze=Object.freeze({kind:`symbol-keys`});Object.freeze({identify:e=>e,typeOf:e=>e===null?`null`:typeof e,toPrimitive:e=>e,tagOf:e=>Me(e),isThenable:e=>typeof e.then==`function`,toPromise:e=>Promise.resolve(e),unbox:e=>e.valueOf(),toISOString:e=>isNaN(e.getDate())?``:e.toISOString(),toStringValue:e=>e.toString(),regExpInfo:e=>({source:e.source,flags:e.flags}),valuesOf:e=>e,entriesOf:e=>e,viewInfo:e=>({buffer:e.buffer,byteOffset:e.byteOffset,byteLength:e.byteLength,length:e.length,bufferByteLength:e.buffer.byteLength}),toArrayBuffer:e=>e,lengthOf:e=>e.length,hasOwn:(e,t)=>Object.hasOwn(e,t),indicesOf:e=>Le(e),shapeOf:e=>je(e)?Ne(e).length>0?ze:{kind:Object.getPrototypeOf(e)===null?`null-proto`:`plain`,keys:Object.keys(e)}:Re,get:(e,t)=>e[t]}),Object.freeze({fromPrimitive:e=>e,fromISOString:e=>new Date(e),fromStringValue:(e,t)=>e===`URL`?new URL(t):e===`URLSearchParams`?new URLSearchParams(t):Temporal[e.slice(9)].from(t),fromArrayBuffer:e=>e,fromRegExpInfo:(e,t)=>new RegExp(e,t),fromViewInfo:(e,t,n,r)=>{let i=globalThis[e];return n===void 0?new i(t):new i(t,n,r)},box:e=>Object(e),createArray:e=>Array(e),createSparseArray:e=>{let t=[];return t[ke]=void 0,delete t[ke],t.length=e,t},createObject:()=>({}),createNullPrototypeObject:()=>Object.create(null),createSet:()=>new Set,createMap:()=>new Map,set:(e,t,n)=>{e[t]=n},addValue:(e,t)=>{e.add(t)},addEntry:(e,t,n)=>{e.set(t,n)}});var Be=new Set([`load`,`prerender`,`csr`,`ssr`,`trailingSlash`,`config`]);[...Be],[...new Set([...Be])];function Ve(e){return e.filter(e=>e!=null)}function k(e,t){return e+`/`+t}function He(e){return e instanceof l||e instanceof d?e.status:500}function Ue(e){return e instanceof d?e.text:`Internal Error`}var A,j,We,Ge=s.toString().includes(`$$`)||/function \w+\(\) \{\}/.test(s.toString()),Ke=`a:`;Ge?(A={data:{},form:null,error:null,params:{},route:{id:null},state:{},status:-1,url:new URL(Ke)},j={current:null},We={current:!1}):(A=new class{#e=i({});get data(){return o(this.#e)}set data(e){r(this.#e,e)}#t=i(null);get form(){return o(this.#t)}set form(e){r(this.#t,e)}#n=i(null);get error(){return o(this.#n)}set error(e){r(this.#n,e)}#r=i({});get params(){return o(this.#r)}set params(e){r(this.#r,e)}#i=i({id:null});get route(){return o(this.#i)}set route(e){r(this.#i,e)}#a=i({});get state(){return o(this.#a)}set state(e){r(this.#a,e)}#o=i(-1);get status(){return o(this.#o)}set status(e){r(this.#o,e)}#s=i(new URL(Ke));get url(){return o(this.#s)}set url(e){r(this.#s,e)}},j=new class{#e=i(null);get current(){return o(this.#e)}set current(e){r(this.#e,e)}},We=new class{#e=i(!1);get current(){return o(this.#e)}set current(e){r(this.#e,e)}},Ee.v=()=>We.current=!0);function qe(e){Object.assign(A,e)}var{onMount:Je,tick:Ye}=c,Xe=n??(e=>e()),Ze=new Set([`icon`,`shortcut icon`,`apple-touch-icon`]),M=null,N=de(`sveltekit:scroll`)??{},P=de(`sveltekit:snapshot`)??{},F={url:Te({}),page:Te({}),navigating:t(null),updated:De()};function Qe(e){N[e]=T()}function $e(e,t){let n=e+1;for(;N[n];)delete N[n],n+=1;for(n=t+1;P[n];)delete P[n],n+=1}function I(e,t=!1){return t?location.replace(e.href):location.href=e.href,new Promise(h)}async function et(){if(`serviceWorker`in navigator){let e=await navigator.serviceWorker.getRegistration(x||`/`);e&&await e.update()}}var tt,nt,L,R,rt,z,it={},at={},B=[],V=[],H=null;function ot(){H?.fork?.then(e=>e?.discard()),H=null,Q={element:void 0,href:void 0}}var st=new Map,ct=new Set,lt=new Set,U=new Set,W={branch:[],error:null,url:null,nav:null},ut=!1,G=!1,dt=!0,K=!1,q=!1,ft=!1,pt=!1,mt,J,Y,X,ht=new Set,gt=new Map,_t=new Map;async function vt(e,t,n){if(globalThis.__sveltekit_1d530vm.data){let{q:e={},p:t={},l:n={},f:r={}}=globalThis.__sveltekit_1d530vm.data;for(let t in e)it[t]=e[t];for(let e in n)it[e]=n[e];for(let e in r)it[e]=r[e];for(let e in t)at[e]=t[e]}document.URL!==location.href&&(location.href=location.href),z=e,await e.hooks.init?.(),tt=ue(e),R=document.documentElement,rt=t,nt=e.nodes[0],L=e.nodes[1],nt(),L(),J=history.state?.[S],Y=history.state?.[C],J||(J=Y=Date.now(),history.replaceState({...history.state,[S]:J,[C]:Y},``));let r=N[J];function i(){r&&(history.scrollRestoration=`manual`,scrollTo(r.x,r.y))}n?(i(),await qt(rt,n)):(await Z({type:`enter`,url:be(z.hash?$t(new URL(location.href)):location.href),replace_state:!0}),i()),Kt()}function yt(){B.length=0,pt=!1}function bt(e){V.some(e=>e?.snapshot)&&(P[e]=V.map(e=>e?.snapshot?.capture()))}function xt(e){P[e]?.forEach((e,t)=>{V[t]?.snapshot?.restore(e)})}function St(){Qe(J),fe(ge,N),bt(Y),fe(he,P)}async function Ct(e,t,n,r){let i,o;t.invalidateAll&&ot(),await Z({type:`goto`,url:be(e),keepfocus:t.keepFocus,noscroll:t.noScroll,replace_state:t.replaceState,state:t.state,redirect_count:n,nav_token:r,accept:()=>{if(t.invalidateAll){pt=!0,i=new Set;for(let[e,t]of gt)for(let[n,r]of t)r.resource?.reset(),i.add(k(e,n));o=new Set;for(let[e,t]of _t)for(let n of t.keys())o.add(k(e,n))}t.invalidate&&t.invalidate.forEach(Wt)}}),t.invalidateAll&&a().then(a).then(()=>{for(let[e,t]of gt)for(let[n,{resource:r}]of t)i?.has(k(e,n))&&r.start();for(let[e,t]of _t)for(let[n,{resource:r}]of t)o?.has(k(e,n))&&r.reconnect()})}async function wt(e){if(e.id!==H?.id){ot();let t={};ht.add(t),H={id:e.id,token:t,promise:Pt({...e,preload:t}).then(e=>(ht.delete(t),e.type===`loaded`&&e.state.error&&ot(),e)),fork:null}}return H.promise}async function Tt(e){let t=(await Rt(e,!1))?.route;t&&await Promise.all([...t.layouts,t.leaf].filter(Boolean).map(e=>e[1]()))}async function Et(e,t,n){let r={params:W.params,route:{id:W.route?.id??null},url:new URL(location.href)};if(W={...e.state,nav:r},qe(e.props.page),mt=new z.root({target:t,props:{...e.props,stores:F,components:V},hydrate:n,sync:!1,transformError:void 0}),await Promise.resolve(),n){let e={from:null,to:{...r,scroll:N[J]??T()},willUnload:!1,type:`enter`,complete:Promise.resolve()};U.forEach(t=>t(e))}xt(Y),G=!0}async function Dt({url:e,params:t,branch:n,errors:r,status:i,error:a,route:o,form:s}){let c=`never`;if(x&&(e.pathname===x||e.pathname===x+`/`))c=`always`;else for(let e of n)e?.slash!==void 0&&(c=e.slash);e.pathname=f(e.pathname,c),e.search=e.search;let l={type:`loaded`,state:{url:e,params:t,branch:n,error:a,route:o},props:{constructors:Ve(n).map(e=>e.node.component),page:Qt(A)}};s!==void 0&&(l.props.form=s);let u={},d=!A,p=0;for(let e=0;e<Math.max(n.length,W.branch.length);e+=1){let t=n[e],r=W.branch[e];t?.data!==r?.data&&(d=!0),t&&(u={...u,...t.data},d&&(l.props[`data_${p}`]=u),p+=1)}return(!W.url||e.href!==W.url.href||W.error!==a||s!==void 0&&s!==A.form||d)&&(l.props.page={error:a,params:t,route:{id:o?.id??null},state:{},status:i,url:new URL(e),form:s??null,data:d?u:A.data}),l}async function Ot({loader:e,parent:t,url:n,params:r,route:i,server_data_node:a}){let o={dependencies:new Set,params:new Set,parent:!1,route:!1,url:!1,search_params:new Set},s=await e();return{node:s,loader:e,server:a,universal:s.universal?.load?{type:`data`,data:null,uses:o}:null,data:a?.data??null,slash:s.universal?.trailingSlash??a?.slash}}function kt(e,t,n){let r=e instanceof Request?e.url:e,i=new URL(r,n);return i.origin===n.origin&&(r=i.href.slice(n.origin.length)),{resolved:i,promise:G?ne(r,i.href,t):y(r,t)}}function At(e,t,n,r,i,a){if(pt)return!0;if(!i)return!1;if(i.parent&&e||i.route&&t||i.url&&n)return!0;for(let e of i.search_params)if(r.has(e))return!0;for(let e of i.params)if(a[e]!==W.params[e])return!0;for(let e of i.dependencies)if(B.some(t=>t(new URL(e))))return!0;return!1}function jt(e,t){return e?.type===`data`?e:e?.type===`skip`?t??null:null}function Mt(e,t){if(!e)return new Set(t.searchParams.keys());let n=new Set([...e.searchParams.keys(),...t.searchParams.keys()]);for(let r of n){let i=e.searchParams.getAll(r),a=t.searchParams.getAll(r);i.every(e=>a.includes(e))&&a.every(e=>i.includes(e))&&n.delete(r)}return n}function Nt({error:e,url:t,route:n,params:r}){return{type:`loaded`,state:{error:e,url:t,route:n,params:r,branch:[]},props:{page:Qt(A),constructors:[]}}}async function Pt({id:e,invalidating:t,url:n,params:r,route:i,preload:a}){if(H?.id===e)return ht.delete(H.token),H.promise;let{errors:o,layouts:s,leaf:c}=i,d=[...s,c];o.forEach(e=>e?.().catch(h)),d.forEach(e=>e?.[1]().catch(h));let f=W.url?e!==Bt(W.url):!1,p=W.route?i.id!==W.route.id:!1,ee=Mt(W.url,n),m=!1,g=d.map(async(e,t)=>{if(!e)return;let a=W.branch[t];return e[1]===a?.loader&&!At(m,p,f,ee,a.universal?.uses,r)?a:(m=!0,Ot({loader:e[1],url:n,params:r,route:i,parent:async()=>{let e={};for(let n=0;n<t;n+=1)Object.assign(e,(await g[n])?.data);return e},server_data_node:jt(e[0]?{type:`skip`}:null,e[0]?a?.server:void 0)}))});for(let e of g)e.catch(h);let _=[];for(let e=0;e<d.length;e+=1)if(d[e])try{_.push(await g[e])}catch(t){if(t instanceof u)return{type:`redirect`,location:t.location};if(a&&ht.has(a))return Nt({error:await $(t,{params:r,url:n,route:{id:i.id}}),url:n,params:r,route:i});let s=He(t),c;if(t instanceof l)c=t.body;else{if(await F.updated.check())return await et(),await I(n);c=await $(t,{params:r,url:n,route:{id:i.id}})}let d=await Ft(e,_,o);return d?Dt({url:n,params:r,branch:_.slice(0,d.idx).concat(d.node),errors:o,status:s,error:c,route:i}):await Ht(n,{id:i.id},c,s)}else _.push(void 0);return Dt({url:n,params:r,branch:_,errors:o,status:200,error:null,route:i,form:t?void 0:null})}async function Ft(e,t,n){for(;e--;)if(n[e]){let r=e;for(;!t[r];)--r;try{return{idx:r+1,node:{node:await n[e](),loader:n[e],data:{},server:null,universal:null}}}catch{continue}}}async function It({status:e,error:t,url:n,route:r}){let i={};try{return Dt({url:n,params:i,branch:[await Ot({loader:nt,url:n,params:i,route:r,parent:()=>Promise.resolve({}),server_data_node:jt(null)}),{node:await L(),loader:L,universal:null,server:null,data:null}],status:e,error:t,errors:[],route:null})}catch(t){if(t instanceof u){await Ct(new URL(t.location,location.href),{},0);return}let a=await z.get_error_template(),o=await $(t,{url:n,params:i,route:r}),s=a({status:e,message:String(o?.message??``).replace(/&/g,`&`).replace(/</g,`<`).replace(/>/g,`>`)}),c=new DOMParser().parseFromString(s,`text/html`);throw document.documentElement.replaceChild(document.adoptNode(c.head),document.head),document.documentElement.replaceChild(document.adoptNode(c.body),document.body),t}}async function Lt(e){let t=e.href;if(st.has(t))return st.get(t);let n;try{let r=(async()=>{let t=await z.hooks.reroute({url:new URL(e),fetch:async(t,n)=>kt(t,n,e).promise})??e;if(typeof t==`string`){let n=new URL(e);z.hash?n.hash=t:n.pathname=t,t=n}return t})();st.set(t,r),n=await r}catch{st.delete(t);return}return n}async function Rt(e,t){if(e&&!O(e,x,z.hash)){let n=await Lt(e);if(!n)return;let r=zt(n);for(let n of tt){let i=n.exec(r);if(i)return{id:Bt(e),invalidating:t,route:n,params:ee(i),url:e}}}}function zt(e){return p(z.hash?e.hash.replace(/^#/,``).replace(/[?#].+/,``):e.pathname.slice(x.length))||`/`}function Bt(e){return(z.hash?e.hash.replace(/^#/,``):e.pathname)+e.search}function Vt({url:e,type:t,intent:n,delta:r,event:i,scroll:a}){let o=!1,s=Zt(W,n,e,t,a??null);r!==void 0&&(s.navigation.delta=r),i!==void 0&&(s.navigation.event=i);let c={...s.navigation,cancel:()=>{o=!0,s.reject(Error(`navigation cancelled`))}};return K||ct.forEach(e=>e(c)),o?null:s}async function Z({type:t,url:n,popped:r,keepfocus:i,noscroll:o,replace_state:s,state:c={},redirect_count:l=0,nav_token:u={},accept:f=h,block:p=h,event:ee}){let m=X;X=u;let g=await Rt(n,!1),_=t===`enter`?Zt(W,g,n,t):Vt({url:n,type:t,delta:r?.delta,intent:g,scroll:r?.scroll,event:ee});if(!_){p(),X===u&&(X=m);return}let te=J,v=Y;f(),K=!0,G&&_.navigation.type!==`enter`&&F.navigating.set(j.current=_.navigation);let y=g&&await Pt(g);if(!y){if(O(n,x,z.hash))return await I(n,s);y=await Ht(n,{id:null},await $(new d(404,`Not Found`,`Not found: ${n.pathname}`),{url:n,params:{},route:{id:null}}),404,s)}if(n=g?.url||n,X!==u){_.reject(Error(`navigation aborted`));return}if(!y)return;if(y.type===`redirect`){if(l<20){await Z({type:t,url:new URL(y.location,n),popped:r,keepfocus:i,noscroll:o,replace_state:s,state:c,redirect_count:l+1,nav_token:u}),_.fulfil(void 0);return}if(y=await It({status:500,error:await $(Error(`Redirect loop`),{url:n,params:{},route:{id:null}}),url:n,route:{id:null}}),!y)return}else if(y.props.page.status>=400&&await F.updated.check())return await et(),await I(n,s);if(yt(),Qe(te),bt(v),y.props.page.url.pathname!==n.pathname&&(n.pathname=y.props.page.url.pathname),c=r?r.state:c,!r){let e=+!s,t={[S]:J+=e,[C]:Y+=e,[_e]:c};(s?history.replaceState:history.pushState).call(history,t,``,n),s||$e(J,Y)}let ne=g&&H?.id===g.id?H.fork:null;H?.fork&&!ne?ot():(H=null,Q={element:void 0,href:void 0}),y.props.page.state=c;let b;if(G){let t=(await Promise.all(Array.from(lt,e=>e(_.navigation)))).filter(e=>typeof e==`function`);if(t.length>0){function e(){t.forEach(e=>{U.delete(e)})}t.push(e),t.forEach(e=>{U.add(e)})}let r=_.navigation.to;W={...y.state,nav:{params:r.params,route:r.route,url:r.url}},y.props.page&&(y.props.page.url=n),!i&&document.activeElement instanceof HTMLElement&&document.activeElement!==document.body&&document.activeElement.blur();let a=ne&&await ne;a?b=a.commit():(M=null,mt.$set(y.props),M&&Object.assign(y.props.page,M),qe(y.props.page),b=e?.()),ft=!0}else await Et(y,rt,!1);let{activeElement:re}=document;if(await b,await a(),await a(),X!==u){_.reject(Error(`navigation aborted`));return}y.props.page&&M&&Object.assign(y.props.page,M);let ie=null;if(dt){let e=r?r.scroll:o?T():null;e?scrollTo(e.x,e.y):(ie=n.hash&&document.getElementById(en(n)))?ie.scrollIntoView():scrollTo(0,0)}let ae=document.activeElement!==re&&document.activeElement!==document.body;!i&&!ae&&Xt(n,!ie),dt=!0,K=!1,_.fulfil(void 0),_.navigation.to&&(_.navigation.to.scroll=T()),U.forEach(e=>e(_.navigation)),t===`popstate`&&xt(Y),F.navigating.set(j.current=null)}async function Ht(e,t,n,r,i){return e.origin===ye&&e.pathname===location.pathname&&!ut?await It({status:r,error:n,url:e,route:t}):await I(e,i)}var Q={element:void 0,href:void 0};function Ut(){let e,t;R.addEventListener(`mousemove`,t=>{let n=t.target;clearTimeout(e),e=setTimeout(()=>{i(n,w.hover)},20)});function n(e){e.defaultPrevented||i(e.composedPath()[0],w.tap)}R.addEventListener(`mousedown`,n),R.addEventListener(`touchstart`,n,{passive:!0});let r=new IntersectionObserver(e=>{for(let t of e)t.isIntersecting&&(Tt(new URL(t.target.href)),r.unobserve(t.target))},{threshold:0});async function i(e,n){let r=Ce(e,R),i=r===Q.element&&r?.href===Q.href&&n>=t;if(!r||i)return;let{url:a,external:o,download:s}=we(r,x,z.hash);if(o||s)return;let c=D(r),l=a&&Bt(W.url)===Bt(a);if(!(c.reload||l)){if(n<=c.preload_data){Q={element:r,href:r.href},t=w.tap;let e=await Rt(a,!1);if(!e)return;wt(e)}else n<=c.preload_code&&(Q={element:r,href:r.href},t=n,Tt(a))}}function a(){r.disconnect();for(let e of R.querySelectorAll(`a`)){let{url:t,external:n,download:i}=we(e,x,z.hash);if(n||i)continue;let a=D(e);a.reload||(a.preload_code===w.viewport&&r.observe(e),a.preload_code===w.eager&&Tt(t))}}U.add(a),a()}function $(e,t){if(e instanceof l)return e.body;let n=He(e),r=Ue(e);return z.hooks.handleError({error:e,event:t,status:n,message:r})??{message:r}}function Wt(e){if(typeof e==`function`)B.push(e);else{let{href:t}=new URL(e,location.href);B.push(e=>e.href===t)}}function Gt(e,t){let n={[S]:J,[C]:Y,[ve]:A.url.href,[_e]:t};history.replaceState(n,``,be(e)),A.state=t,mt.$set({page:Xe(()=>Qt(A))})}function Kt(){history.scrollRestoration=`manual`,addEventListener(`beforeunload`,e=>{let t=!1;if(St(),!K){let e=Zt(W,void 0,null,`leave`),n={...e.navigation,cancel:()=>{t=!0,e.reject(Error(`navigation cancelled`))}};ct.forEach(e=>e(n))}t?(e.preventDefault(),e.returnValue=``):history.scrollRestoration=`auto`}),addEventListener(`visibilitychange`,()=>{document.visibilityState===`hidden`&&St()}),navigator.connection?.saveData||Ut(),R.addEventListener(`click`,async t=>{if(t.button||t.which!==1||t.metaKey||t.ctrlKey||t.shiftKey||t.altKey||t.defaultPrevented)return;let n=Ce(t.composedPath()[0],R);if(!n)return;let{url:r,external:i,target:a,download:o}=we(n,x,z.hash);if(!r)return;if(a===`_parent`||a===`_top`){if(window.parent!==window)return}else if(a&&a!==`_self`)return;let s=D(n);if(!(n instanceof SVGAElement)&&r.protocol!==location.protocol&&r.protocol!==`https:`&&r.protocol!==`http:`||o)return;let[c,l]=(z.hash?r.hash.replace(/^#/,``):r.href).split(`#`),u=c===m(location);if(i||s.reload&&(!u||!l)){Vt({url:r,type:`link`,event:t})?K=!0:t.preventDefault();return}if(l!==void 0&&u){let[,i]=W.url.href.split(`#`);if(i===l){if(t.preventDefault(),l===``||l===`top`&&n.ownerDocument.getElementById(`top`)===null)scrollTo({top:0});else{let e=n.ownerDocument.getElementById(decodeURIComponent(l));e&&(e.scrollIntoView(),e.focus())}return}if(q=!0,Qe(J),e(r),!s.replace_state)return;q=!1}t.preventDefault(),await new Promise(e=>{requestAnimationFrame(()=>{setTimeout(e,0)}),setTimeout(e,100)}),await Z({type:`link`,url:r,keepfocus:s.keepfocus,noscroll:s.noscroll,replace_state:s.replace_state??r.href===location.href,event:t})}),R.addEventListener(`submit`,e=>{if(e.defaultPrevented)return;let t=HTMLFormElement.prototype.cloneNode.call(e.target),n=e.submitter;if((n?.formTarget||t.target)===`_blank`||(n?.formMethod||t.method)!==`get`)return;let r=new URL(n?.hasAttribute(`formaction`)&&n?.formAction||t.action);if(O(r,x,!1))return;let i=e.target,a=D(i);if(a.reload)return;e.preventDefault(),e.stopPropagation();let o=new FormData(i,n);r.search=new URLSearchParams(o).toString(),Z({type:`form`,url:r,keepfocus:a.keepfocus,noscroll:a.noscroll,replace_state:a.replace_state??r.href===location.href,event:e})}),addEventListener(`popstate`,async t=>{if(!Yt){if(t.state?.[`sveltekit:history`]){let n=t.state[S];if(X={},n===J)return;let r=N[n],i=t.state[`sveltekit:states`]??{},a=new URL(t.state[`sveltekit:pageurl`]??location.href),o=t.state[C],s=W.url?m(location)===m(W.url):!1;if(o===Y&&(ft||s)){i!==A.state&&(A.state=i),e(a),N[J]=T(),r&&scrollTo(r.x,r.y),J=n;return}let c=n-J;await Z({type:`popstate`,url:a,popped:{state:i,scroll:r,delta:c},accept:()=>{J=n,Y=o},block:()=>{history.go(-c)},nav_token:X,event:t})}else q||(e(new URL(location.href)),z.hash&&location.reload())}}),addEventListener(`hashchange`,()=>{q&&(q=!1,history.replaceState({...history.state,[S]:++J,[C]:Y},``,location.href))});for(let e of document.querySelectorAll(`link`))Ze.has(e.rel)&&(e.href=e.href);addEventListener(`pageshow`,e=>{e.persisted&&F.navigating.set(j.current=null)});function e(e){W.url=A.url=e,F.page.set(Qt(A)),F.page.notify()}}async function qt(e,{status:t=200,error:n,node_ids:r,params:i,route:a,server_route:o,data:s,form:c}){ut=!0;let l=new URL(location.href),d;({params:i={},route:a={id:null}}=await Rt(l,!1)||{}),d=tt.find(({id:e})=>e===a.id);let f,p=!0;try{let e=r.map(async(t,n)=>{let r=s[n];return r?.uses&&(r.uses=Jt(r.uses)),Ot({loader:z.nodes[t],url:l,params:i,route:a,parent:async()=>{let t={};for(let r=0;r<n;r+=1)Object.assign(t,(await e[r]).data);return t},server_data_node:jt(r)})}),o=await Promise.all(e);if(d){let e=d.layouts;for(let t=0;t<e.length;t++)e[t]||o.splice(t,0,void 0)}f=await Dt({url:l,params:i,branch:o,status:t,error:n,errors:d?.errors,form:c,route:d??null})}catch(t){if(t instanceof u)return await I(new URL(t.location,location.href));f=await It({status:He(t),error:await $(t,{url:l,params:i,route:a}),url:l,route:a}),e.textContent=``,p=!1}f&&(f.props.page&&(f.props.page.state={}),await Et(f,e,p))}function Jt(e){return{dependencies:new Set(e?.dependencies??[]),params:new Set(e?.params??[]),parent:!!e?.parent,route:!!e?.route,url:!!e?.url,search_params:new Set(e?.search_params??[])}}var Yt=!1;function Xt(e,t=!0){let n=document.querySelector(`[autofocus]`);if(n)n.focus();else{let n=en(e);if(n&&document.getElementById(n)){let{x:r,y:i}=T();setTimeout(()=>{let a=history.state;Yt=!0,location.replace(new URL(`#${n}`,location.href)),history.replaceState(a,``,e),t&&scrollTo(r,i),Yt=!1})}else{let e=document.body,t=e.getAttribute(`tabindex`);e.tabIndex=-1,e.focus({preventScroll:!0,focusVisible:!1}),t===null?e.removeAttribute(`tabindex`):e.setAttribute(`tabindex`,t)}let r=getSelection();if(r&&r.type!==`None`){let e=[];for(let t=0;t<r.rangeCount;t+=1)e.push(r.getRangeAt(t));setTimeout(()=>{if(r.rangeCount===e.length){for(let t=0;t<r.rangeCount;t+=1){let n=e[t],i=r.getRangeAt(t);if(n.commonAncestorContainer!==i.commonAncestorContainer||n.startContainer!==i.startContainer||n.endContainer!==i.endContainer||n.startOffset!==i.startOffset||n.endOffset!==i.endOffset)return}r.removeAllRanges()}})}}}function Zt(e,t,n,r,i=null){let a,o,s=new Promise((e,t)=>{a=e,o=t});return s.catch(h),{navigation:{from:{params:e.params,route:{id:e.route?.id??null},url:e.url,scroll:T()},to:n&&{params:t?.params??null,route:{id:t?.route?.id??null},url:n,scroll:i},willUnload:!t,type:r,complete:s},fulfil:a,reject:o}}function Qt(e){return{data:e.data,error:e.error,form:e.form,params:e.params,route:e.route,state:e.state,status:e.status,url:e.url}}function $t(e){let t=new URL(e);return t.hash=decodeURIComponent(e.hash),t}function en(e){let t;if(z.hash){let[,,n]=e.hash.split(`#`,3);t=n??``}else t=e.hash.slice(1);return decodeURIComponent(t)}export{Oe as a,A as i,vt as n,j as r,Gt as t};
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{a as e,n as t}from"../chunks/05WsiB4A.js";export{e as load_css,t as start};
|
|
Binary file
|
|
Binary file
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{L as e,N as t,P as n,Q as r,R as i,S as a,V as o,_ as s,c,h as l,w as u}from"../chunks/ZAD2y5xJ.js";import"../chunks/xihTtKlq.js";var d=`data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20width='107'%20height='128'%20viewBox='0%200%20107%20128'%3e%3ctitle%3esvelte-logo%3c/title%3e%3cpath%20d='M94.157%2022.819c-10.4-14.885-30.94-19.297-45.792-9.835L22.282%2029.608A29.92%2029.92%200%200%200%208.764%2049.65a31.5%2031.5%200%200%200%203.108%2020.231%2030%2030%200%200%200-4.477%2011.183%2031.9%2031.9%200%200%200%205.448%2024.116c10.402%2014.887%2030.942%2019.297%2045.791%209.835l26.083-16.624A29.92%2029.92%200%200%200%2098.235%2078.35a31.53%2031.53%200%200%200-3.105-20.232%2030%2030%200%200%200%204.474-11.182%2031.88%2031.88%200%200%200-5.447-24.116'%20style='fill:%23ff3e00'/%3e%3cpath%20d='M45.817%20106.582a20.72%2020.72%200%200%201-22.237-8.243%2019.17%2019.17%200%200%201-3.277-14.503%2018%2018%200%200%201%20.624-2.435l.49-1.498%201.337.981a33.6%2033.6%200%200%200%2010.203%205.098l.97.294-.09.968a5.85%205.85%200%200%200%201.052%203.878%206.24%206.24%200%200%200%206.695%202.485%205.8%205.8%200%200%200%201.603-.704L69.27%2076.28a5.43%205.43%200%200%200%202.45-3.631%205.8%205.8%200%200%200-.987-4.371%206.24%206.24%200%200%200-6.698-2.487%205.7%205.7%200%200%200-1.6.704l-9.953%206.345a19%2019%200%200%201-5.296%202.326%2020.72%2020.72%200%200%201-22.237-8.243%2019.17%2019.17%200%200%201-3.277-14.502%2017.99%2017.99%200%200%201%208.13-12.052l26.081-16.623a19%2019%200%200%201%205.3-2.329%2020.72%2020.72%200%200%201%2022.237%208.243%2019.17%2019.17%200%200%201%203.277%2014.503%2018%2018%200%200%201-.624%202.435l-.49%201.498-1.337-.98a33.6%2033.6%200%200%200-10.203-5.1l-.97-.294.09-.968a5.86%205.86%200%200%200-1.052-3.878%206.24%206.24%200%200%200-6.696-2.485%205.8%205.8%200%200%200-1.602.704L37.73%2051.72a5.42%205.42%200%200%200-2.449%203.63%205.79%205.79%200%200%200%20.986%204.372%206.24%206.24%200%200%200%206.698%202.486%205.8%205.8%200%200%200%201.602-.704l9.952-6.342a19%2019%200%200%201%205.295-2.328%2020.72%2020.72%200%200%201%2022.237%208.242%2019.17%2019.17%200%200%201%203.277%2014.503%2018%2018%200%200%201-8.13%2012.053l-26.081%2016.622a19%2019%200%200%201-5.3%202.328'%20style='fill:%23fff'/%3e%3c/svg%3e`,f=u(`<link rel="icon"/>`),p=u(`<div class="flex h-dvh min-h-[30rem] flex-col overflow-hidden bg-neutral-950 font-sans text-neutral-100 antialiased selection:bg-sky-900/60"><header class="flex-none border-b border-neutral-900 bg-neutral-950/90"><div class="flex w-full items-baseline gap-3 px-3 py-2 sm:px-4"><span class="text-sm font-semibold tracking-tight">watch<span class="text-sky-400">-stream</span></span> <span class="hidden text-xs text-neutral-500 sm:inline">Tail CloudWatch Logs in the browser</span></div></header> <main class="flex min-h-0 w-full flex-1 flex-col gap-3 px-3 py-3 sm:px-4"><!></main></div>`);function m(u,m){var h=p();l(`12qhfyh`,r=>{var i=f();n(()=>c(i,`href`,d)),t(()=>{e.title=`watch-stream`}),a(r,i)});var g=o(i(h),2),_=i(g);s(_,()=>m.children),r(g),r(h),a(u,h)}export{m as component};
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|