@juspay/shooter 1.9.0 → 1.9.1
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/.claude/hooks/notifier.cjs +9 -2
- package/build/client/_app/immutable/chunks/{C2Qh_9aV.js → DaomQix1.js} +1 -1
- package/build/client/_app/immutable/chunks/DaomQix1.js.br +0 -0
- package/build/client/_app/immutable/chunks/DaomQix1.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Dfn9ME_a.js +3 -0
- package/build/client/_app/immutable/chunks/Dfn9ME_a.js.br +0 -0
- package/build/client/_app/immutable/chunks/Dfn9ME_a.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{klpn9j-A.js → DuaEmHXZ.js} +1 -1
- package/build/client/_app/immutable/chunks/DuaEmHXZ.js.br +0 -0
- package/build/client/_app/immutable/chunks/DuaEmHXZ.js.gz +0 -0
- package/build/client/_app/immutable/entry/{app.Bfisx3a0.js → app.C23A4_LP.js} +2 -2
- package/build/client/_app/immutable/entry/app.C23A4_LP.js.br +0 -0
- package/build/client/_app/immutable/entry/app.C23A4_LP.js.gz +0 -0
- package/build/client/_app/immutable/entry/start.Dzoby1AT.js +1 -0
- package/build/client/_app/immutable/entry/start.Dzoby1AT.js.br +2 -0
- package/build/client/_app/immutable/entry/start.Dzoby1AT.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{0.Vg8bq-s8.js → 0.BgwfOZTV.js} +1 -1
- package/build/client/_app/immutable/nodes/0.BgwfOZTV.js.br +0 -0
- package/build/client/_app/immutable/nodes/0.BgwfOZTV.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{1.B7kXtFIl.js → 1.DunuP0ec.js} +1 -1
- package/build/client/_app/immutable/nodes/1.DunuP0ec.js.br +0 -0
- package/build/client/_app/immutable/nodes/1.DunuP0ec.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{2.DVFe_SN2.js → 2.dWYUfDXP.js} +1 -1
- package/build/client/_app/immutable/nodes/2.dWYUfDXP.js.br +0 -0
- package/build/client/_app/immutable/nodes/2.dWYUfDXP.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{3.Deb3vtJl.js → 3.rBWJMWFr.js} +1 -1
- package/build/client/_app/immutable/nodes/3.rBWJMWFr.js.br +0 -0
- package/build/client/_app/immutable/nodes/3.rBWJMWFr.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{6.CS_KYbQ7.js → 6.DDMVIiVk.js} +1 -1
- package/build/client/_app/immutable/nodes/6.DDMVIiVk.js.br +0 -0
- package/build/client/_app/immutable/nodes/6.DDMVIiVk.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{7.CEiUUm74.js → 7.DijtBcpt.js} +1 -1
- package/build/client/_app/immutable/nodes/7.DijtBcpt.js.br +0 -0
- package/build/client/_app/immutable/nodes/7.DijtBcpt.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{8.DGStHrkF.js → 8.Y_8EIs9h.js} +1 -1
- package/build/client/_app/immutable/nodes/8.Y_8EIs9h.js.br +0 -0
- package/build/client/_app/immutable/nodes/8.Y_8EIs9h.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{9.CbIw97FV.js → 9.BoJIHqox.js} +1 -1
- package/build/client/_app/immutable/nodes/9.BoJIHqox.js.br +0 -0
- package/build/client/_app/immutable/nodes/9.BoJIHqox.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/server/chunks/{0-ikRVFZQS.js → 0-0CZFKlE-.js} +2 -2
- package/build/server/chunks/{0-ikRVFZQS.js.map → 0-0CZFKlE-.js.map} +1 -1
- package/build/server/chunks/{1-CG-fUUbt.js → 1-DLzdA7q9.js} +2 -2
- package/build/server/chunks/{1-CG-fUUbt.js.map → 1-DLzdA7q9.js.map} +1 -1
- package/build/server/chunks/{2-BaV1q6GP.js → 2-DssNCbHE.js} +2 -2
- package/build/server/chunks/{2-BaV1q6GP.js.map → 2-DssNCbHE.js.map} +1 -1
- package/build/server/chunks/{3-BpzQzk4m.js → 3-xYdrp1JC.js} +2 -2
- package/build/server/chunks/{3-BpzQzk4m.js.map → 3-xYdrp1JC.js.map} +1 -1
- package/build/server/chunks/{6-Bx-SE48t.js → 6-DpmjM0Zz.js} +2 -2
- package/build/server/chunks/{6-Bx-SE48t.js.map → 6-DpmjM0Zz.js.map} +1 -1
- package/build/server/chunks/{7-LeGA4bt3.js → 7-fZr6V0jx.js} +2 -2
- package/build/server/chunks/{7-LeGA4bt3.js.map → 7-fZr6V0jx.js.map} +1 -1
- package/build/server/chunks/{8-CXwtG-B-.js → 8-C92Y2pM_.js} +2 -2
- package/build/server/chunks/{8-CXwtG-B-.js.map → 8-C92Y2pM_.js.map} +1 -1
- package/build/server/chunks/{9-DBztKl9o.js → 9-xiLWXynw.js} +2 -2
- package/build/server/chunks/{9-DBztKl9o.js.map → 9-xiLWXynw.js.map} +1 -1
- package/build/server/chunks/{_server.ts-BAPg2K8u.js → _server.ts-BMcbwZ2r.js} +5 -3
- package/build/server/chunks/{_server.ts-BAPg2K8u.js.map → _server.ts-BMcbwZ2r.js.map} +1 -1
- package/build/server/chunks/{_server.ts-9P1PrkiL.js → _server.ts-D-vgx5UZ.js} +5 -3
- package/build/server/chunks/{_server.ts-9P1PrkiL.js.map → _server.ts-D-vgx5UZ.js.map} +1 -1
- package/build/server/chunks/library-apns-Dl3iRE2h.js +157 -0
- package/build/server/chunks/library-apns-Dl3iRE2h.js.map +1 -0
- package/build/server/index.js +1 -1
- package/build/server/index.js.map +1 -1
- package/build/server/manifest.js +11 -11
- package/build/server/manifest.js.map +1 -1
- package/package.json +1 -2
- package/src/lib/modules/server/apn/library-apns.ts +138 -78
- package/src/lib/types/apn.ts +10 -0
- package/build/client/_app/immutable/chunks/C2Qh_9aV.js.br +0 -0
- package/build/client/_app/immutable/chunks/C2Qh_9aV.js.gz +0 -0
- package/build/client/_app/immutable/chunks/C2yx8lo8.js +0 -3
- package/build/client/_app/immutable/chunks/C2yx8lo8.js.br +0 -0
- package/build/client/_app/immutable/chunks/C2yx8lo8.js.gz +0 -0
- package/build/client/_app/immutable/chunks/klpn9j-A.js.br +0 -0
- package/build/client/_app/immutable/chunks/klpn9j-A.js.gz +0 -0
- package/build/client/_app/immutable/entry/app.Bfisx3a0.js.br +0 -0
- package/build/client/_app/immutable/entry/app.Bfisx3a0.js.gz +0 -0
- package/build/client/_app/immutable/entry/start.BfgeeQYG.js +0 -1
- package/build/client/_app/immutable/entry/start.BfgeeQYG.js.br +0 -2
- package/build/client/_app/immutable/entry/start.BfgeeQYG.js.gz +0 -0
- package/build/client/_app/immutable/nodes/0.Vg8bq-s8.js.br +0 -0
- package/build/client/_app/immutable/nodes/0.Vg8bq-s8.js.gz +0 -0
- package/build/client/_app/immutable/nodes/1.B7kXtFIl.js.br +0 -0
- package/build/client/_app/immutable/nodes/1.B7kXtFIl.js.gz +0 -0
- package/build/client/_app/immutable/nodes/2.DVFe_SN2.js.br +0 -0
- package/build/client/_app/immutable/nodes/2.DVFe_SN2.js.gz +0 -0
- package/build/client/_app/immutable/nodes/3.Deb3vtJl.js.br +0 -0
- package/build/client/_app/immutable/nodes/3.Deb3vtJl.js.gz +0 -0
- package/build/client/_app/immutable/nodes/6.CS_KYbQ7.js.br +0 -0
- package/build/client/_app/immutable/nodes/6.CS_KYbQ7.js.gz +0 -0
- package/build/client/_app/immutable/nodes/7.CEiUUm74.js.br +0 -0
- package/build/client/_app/immutable/nodes/7.CEiUUm74.js.gz +0 -0
- package/build/client/_app/immutable/nodes/8.DGStHrkF.js.br +0 -0
- package/build/client/_app/immutable/nodes/8.DGStHrkF.js.gz +0 -0
- package/build/client/_app/immutable/nodes/9.CbIw97FV.js.br +0 -0
- package/build/client/_app/immutable/nodes/9.CbIw97FV.js.gz +0 -0
- package/build/server/chunks/library-apns-CUDtjHQk.js +0 -108
- package/build/server/chunks/library-apns-CUDtjHQk.js.map +0 -1
package/build/server/manifest.js
CHANGED
|
@@ -10,18 +10,18 @@ return {
|
|
|
10
10
|
assets: new Set(["app-icon.png","apple-touch-icon.png","favicon.png","favicon.svg","manifest.json","pwa-192x192.png","pwa-512x512.png"]),
|
|
11
11
|
mimeTypes: {".png":"image/png",".svg":"image/svg+xml",".json":"application/json"},
|
|
12
12
|
_: {
|
|
13
|
-
client: {start:"_app/immutable/entry/start.
|
|
13
|
+
client: {start:"_app/immutable/entry/start.Dzoby1AT.js",app:"_app/immutable/entry/app.C23A4_LP.js",imports:["_app/immutable/entry/start.Dzoby1AT.js","_app/immutable/chunks/Dfn9ME_a.js","_app/immutable/chunks/Ce0VRwE1.js","_app/immutable/entry/app.C23A4_LP.js","_app/immutable/chunks/PPVm8Dsz.js","_app/immutable/chunks/Ce0VRwE1.js","_app/immutable/chunks/3MMtouT7.js"],stylesheets:[],fonts:[],uses_env_dynamic_public:false},
|
|
14
14
|
nodes: [
|
|
15
|
-
__memo(() => import('./chunks/0-
|
|
16
|
-
__memo(() => import('./chunks/1-
|
|
17
|
-
__memo(() => import('./chunks/2-
|
|
18
|
-
__memo(() => import('./chunks/3-
|
|
15
|
+
__memo(() => import('./chunks/0-0CZFKlE-.js')),
|
|
16
|
+
__memo(() => import('./chunks/1-DLzdA7q9.js')),
|
|
17
|
+
__memo(() => import('./chunks/2-DssNCbHE.js')),
|
|
18
|
+
__memo(() => import('./chunks/3-xYdrp1JC.js')),
|
|
19
19
|
__memo(() => import('./chunks/4-DXZnoGK3.js')),
|
|
20
20
|
__memo(() => import('./chunks/5-DRhcUdp_.js')),
|
|
21
|
-
__memo(() => import('./chunks/6-
|
|
22
|
-
__memo(() => import('./chunks/7-
|
|
23
|
-
__memo(() => import('./chunks/8-
|
|
24
|
-
__memo(() => import('./chunks/9-
|
|
21
|
+
__memo(() => import('./chunks/6-DpmjM0Zz.js')),
|
|
22
|
+
__memo(() => import('./chunks/7-fZr6V0jx.js')),
|
|
23
|
+
__memo(() => import('./chunks/8-C92Y2pM_.js')),
|
|
24
|
+
__memo(() => import('./chunks/9-xiLWXynw.js'))
|
|
25
25
|
],
|
|
26
26
|
remotes: {
|
|
27
27
|
|
|
@@ -46,7 +46,7 @@ return {
|
|
|
46
46
|
pattern: /^\/api\/debug\/?$/,
|
|
47
47
|
params: [],
|
|
48
48
|
page: null,
|
|
49
|
-
endpoint: __memo(() => import('./chunks/_server.ts-
|
|
49
|
+
endpoint: __memo(() => import('./chunks/_server.ts-D-vgx5UZ.js'))
|
|
50
50
|
},
|
|
51
51
|
{
|
|
52
52
|
id: "/api/device-token",
|
|
@@ -74,7 +74,7 @@ return {
|
|
|
74
74
|
pattern: /^\/api\/notify\/?$/,
|
|
75
75
|
params: [],
|
|
76
76
|
page: null,
|
|
77
|
-
endpoint: __memo(() => import('./chunks/_server.ts-
|
|
77
|
+
endpoint: __memo(() => import('./chunks/_server.ts-BMcbwZ2r.js'))
|
|
78
78
|
},
|
|
79
79
|
{
|
|
80
80
|
id: "/api/qr-config",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manifest.js","sources":["../../.svelte-kit/adapter-node/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([\"app-icon.png\",\"apple-touch-icon.png\",\"favicon.png\",\"favicon.svg\",\"manifest.json\",\"pwa-192x192.png\",\"pwa-512x512.png\"]),\n\tmimeTypes: {\".png\":\"image/png\",\".svg\":\"image/svg+xml\",\".json\":\"application/json\"},\n\t_: {\n\t\tclient: {start:\"_app/immutable/entry/start.BfgeeQYG.js\",app:\"_app/immutable/entry/app.Bfisx3a0.js\",imports:[\"_app/immutable/entry/start.BfgeeQYG.js\",\"_app/immutable/chunks/C2yx8lo8.js\",\"_app/immutable/chunks/Ce0VRwE1.js\",\"_app/immutable/entry/app.Bfisx3a0.js\",\"_app/immutable/chunks/PPVm8Dsz.js\",\"_app/immutable/chunks/Ce0VRwE1.js\",\"_app/immutable/chunks/3MMtouT7.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\t__memo(() => import('./nodes/3.js')),\n\t\t\t__memo(() => import('./nodes/4.js')),\n\t\t\t__memo(() => import('./nodes/5.js')),\n\t\t\t__memo(() => import('./nodes/6.js')),\n\t\t\t__memo(() => import('./nodes/7.js')),\n\t\t\t__memo(() => import('./nodes/8.js')),\n\t\t\t__memo(() => import('./nodes/9.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: \"/activity\",\n\t\t\t\tpattern: /^\\/activity\\/?$/,\n\t\t\t\tparams: [],\n\t\t\t\tpage: { layouts: [0,], errors: [1,], leaf: 3 },\n\t\t\t\tendpoint: null\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/api/debug\",\n\t\t\t\tpattern: /^\\/api\\/debug\\/?$/,\n\t\t\t\tparams: [],\n\t\t\t\tpage: null,\n\t\t\t\tendpoint: __memo(() => import('./entries/endpoints/api/debug/_server.ts.js'))\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/api/device-token\",\n\t\t\t\tpattern: /^\\/api\\/device-token\\/?$/,\n\t\t\t\tparams: [],\n\t\t\t\tpage: null,\n\t\t\t\tendpoint: __memo(() => import('./entries/endpoints/api/device-token/_server.ts.js'))\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/neurolink-proxy\",\n\t\t\t\tpattern: /^\\/api\\/neurolink-proxy\\/?$/,\n\t\t\t\tparams: [],\n\t\t\t\tpage: null,\n\t\t\t\tendpoint: __memo(() => import('./entries/endpoints/api/neurolink-proxy/_server.ts.js'))\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/api/notify\",\n\t\t\t\tpattern: /^\\/api\\/notify\\/?$/,\n\t\t\t\tparams: [],\n\t\t\t\tpage: null,\n\t\t\t\tendpoint: __memo(() => import('./entries/endpoints/api/notify/_server.ts.js'))\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/api/qr-config\",\n\t\t\t\tpattern: /^\\/api\\/qr-config\\/?$/,\n\t\t\t\tparams: [],\n\t\t\t\tpage: null,\n\t\t\t\tendpoint: __memo(() => import('./entries/endpoints/api/qr-config/_server.ts.js'))\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/api/response\",\n\t\t\t\tpattern: /^\\/api\\/response\\/?$/,\n\t\t\t\tparams: [],\n\t\t\t\tpage: null,\n\t\t\t\tendpoint: __memo(() => import('./entries/endpoints/api/response/_server.ts.js'))\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/api/sessions\",\n\t\t\t\tpattern: /^\\/api\\/sessions\\/?$/,\n\t\t\t\tparams: [],\n\t\t\t\tpage: null,\n\t\t\t\tendpoint: __memo(() => import('./entries/endpoints/api/sessions/_server.ts.js'))\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/api/sessions/connect\",\n\t\t\t\tpattern: /^\\/api\\/sessions\\/connect\\/?$/,\n\t\t\t\tparams: [],\n\t\t\t\tpage: null,\n\t\t\t\tendpoint: __memo(() => import('./entries/endpoints/api/sessions/connect/_server.ts.js'))\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/api/sessions/detect\",\n\t\t\t\tpattern: /^\\/api\\/sessions\\/detect\\/?$/,\n\t\t\t\tparams: [],\n\t\t\t\tpage: null,\n\t\t\t\tendpoint: __memo(() => import('./entries/endpoints/api/sessions/detect/_server.ts.js'))\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/api/terminals\",\n\t\t\t\tpattern: /^\\/api\\/terminals\\/?$/,\n\t\t\t\tparams: [],\n\t\t\t\tpage: null,\n\t\t\t\tendpoint: __memo(() => import('./entries/endpoints/api/terminals/_server.ts.js'))\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/api/terminals/[id]\",\n\t\t\t\tpattern: /^\\/api\\/terminals\\/([^/]+?)\\/?$/,\n\t\t\t\tparams: [{\"name\":\"id\",\"optional\":false,\"rest\":false,\"chained\":false}],\n\t\t\t\tpage: null,\n\t\t\t\tendpoint: __memo(() => import('./entries/endpoints/api/terminals/_id_/_server.ts.js'))\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/api/terminals/[id]/paste-image\",\n\t\t\t\tpattern: /^\\/api\\/terminals\\/([^/]+?)\\/paste-image\\/?$/,\n\t\t\t\tparams: [{\"name\":\"id\",\"optional\":false,\"rest\":false,\"chained\":false}],\n\t\t\t\tpage: null,\n\t\t\t\tendpoint: __memo(() => import('./entries/endpoints/api/terminals/_id_/paste-image/_server.ts.js'))\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/api/terminals/[id]/resize\",\n\t\t\t\tpattern: /^\\/api\\/terminals\\/([^/]+?)\\/resize\\/?$/,\n\t\t\t\tparams: [{\"name\":\"id\",\"optional\":false,\"rest\":false,\"chained\":false}],\n\t\t\t\tpage: null,\n\t\t\t\tendpoint: __memo(() => import('./entries/endpoints/api/terminals/_id_/resize/_server.ts.js'))\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/api/webhook\",\n\t\t\t\tpattern: /^\\/api\\/webhook\\/?$/,\n\t\t\t\tparams: [],\n\t\t\t\tpage: null,\n\t\t\t\tendpoint: __memo(() => import('./entries/endpoints/api/webhook/_server.ts.js'))\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/api/ws-status\",\n\t\t\t\tpattern: /^\\/api\\/ws-status\\/?$/,\n\t\t\t\tparams: [],\n\t\t\t\tpage: null,\n\t\t\t\tendpoint: __memo(() => import('./entries/endpoints/api/ws-status/_server.ts.js'))\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/api/ws-ticket\",\n\t\t\t\tpattern: /^\\/api\\/ws-ticket\\/?$/,\n\t\t\t\tparams: [],\n\t\t\t\tpage: null,\n\t\t\t\tendpoint: __memo(() => import('./entries/endpoints/api/ws-ticket/_server.ts.js'))\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/config\",\n\t\t\t\tpattern: /^\\/config\\/?$/,\n\t\t\t\tparams: [],\n\t\t\t\tpage: { layouts: [0,], errors: [1,], leaf: 4 },\n\t\t\t\tendpoint: null\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/neurolink\",\n\t\t\t\tpattern: /^\\/neurolink\\/?$/,\n\t\t\t\tparams: [],\n\t\t\t\tpage: { layouts: [0,], errors: [1,], leaf: 5 },\n\t\t\t\tendpoint: null\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/project\",\n\t\t\t\tpattern: /^\\/project\\/?$/,\n\t\t\t\tparams: [],\n\t\t\t\tpage: { layouts: [0,], errors: [1,], leaf: 6 },\n\t\t\t\tendpoint: null\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/session/[id]\",\n\t\t\t\tpattern: /^\\/session\\/([^/]+?)\\/?$/,\n\t\t\t\tparams: [{\"name\":\"id\",\"optional\":false,\"rest\":false,\"chained\":false}],\n\t\t\t\tpage: { layouts: [0,], errors: [1,], leaf: 7 },\n\t\t\t\tendpoint: null\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/terminals\",\n\t\t\t\tpattern: /^\\/terminals\\/?$/,\n\t\t\t\tparams: [],\n\t\t\t\tpage: { layouts: [0,], errors: [1,], leaf: 8 },\n\t\t\t\tendpoint: null\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/terminals/[id]\",\n\t\t\t\tpattern: /^\\/terminals\\/([^/]+?)\\/?$/,\n\t\t\t\tparams: [{\"name\":\"id\",\"optional\":false,\"rest\":false,\"chained\":false}],\n\t\t\t\tpage: { layouts: [0,], errors: [1,], leaf: 9 },\n\t\t\t\tendpoint: null\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\nexport const prerendered = new Set([]);\n\nexport const base = \"\";"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"manifest.js","sources":["../../.svelte-kit/adapter-node/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([\"app-icon.png\",\"apple-touch-icon.png\",\"favicon.png\",\"favicon.svg\",\"manifest.json\",\"pwa-192x192.png\",\"pwa-512x512.png\"]),\n\tmimeTypes: {\".png\":\"image/png\",\".svg\":\"image/svg+xml\",\".json\":\"application/json\"},\n\t_: {\n\t\tclient: {start:\"_app/immutable/entry/start.Dzoby1AT.js\",app:\"_app/immutable/entry/app.C23A4_LP.js\",imports:[\"_app/immutable/entry/start.Dzoby1AT.js\",\"_app/immutable/chunks/Dfn9ME_a.js\",\"_app/immutable/chunks/Ce0VRwE1.js\",\"_app/immutable/entry/app.C23A4_LP.js\",\"_app/immutable/chunks/PPVm8Dsz.js\",\"_app/immutable/chunks/Ce0VRwE1.js\",\"_app/immutable/chunks/3MMtouT7.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\t__memo(() => import('./nodes/3.js')),\n\t\t\t__memo(() => import('./nodes/4.js')),\n\t\t\t__memo(() => import('./nodes/5.js')),\n\t\t\t__memo(() => import('./nodes/6.js')),\n\t\t\t__memo(() => import('./nodes/7.js')),\n\t\t\t__memo(() => import('./nodes/8.js')),\n\t\t\t__memo(() => import('./nodes/9.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: \"/activity\",\n\t\t\t\tpattern: /^\\/activity\\/?$/,\n\t\t\t\tparams: [],\n\t\t\t\tpage: { layouts: [0,], errors: [1,], leaf: 3 },\n\t\t\t\tendpoint: null\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/api/debug\",\n\t\t\t\tpattern: /^\\/api\\/debug\\/?$/,\n\t\t\t\tparams: [],\n\t\t\t\tpage: null,\n\t\t\t\tendpoint: __memo(() => import('./entries/endpoints/api/debug/_server.ts.js'))\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/api/device-token\",\n\t\t\t\tpattern: /^\\/api\\/device-token\\/?$/,\n\t\t\t\tparams: [],\n\t\t\t\tpage: null,\n\t\t\t\tendpoint: __memo(() => import('./entries/endpoints/api/device-token/_server.ts.js'))\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/neurolink-proxy\",\n\t\t\t\tpattern: /^\\/api\\/neurolink-proxy\\/?$/,\n\t\t\t\tparams: [],\n\t\t\t\tpage: null,\n\t\t\t\tendpoint: __memo(() => import('./entries/endpoints/api/neurolink-proxy/_server.ts.js'))\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/api/notify\",\n\t\t\t\tpattern: /^\\/api\\/notify\\/?$/,\n\t\t\t\tparams: [],\n\t\t\t\tpage: null,\n\t\t\t\tendpoint: __memo(() => import('./entries/endpoints/api/notify/_server.ts.js'))\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/api/qr-config\",\n\t\t\t\tpattern: /^\\/api\\/qr-config\\/?$/,\n\t\t\t\tparams: [],\n\t\t\t\tpage: null,\n\t\t\t\tendpoint: __memo(() => import('./entries/endpoints/api/qr-config/_server.ts.js'))\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/api/response\",\n\t\t\t\tpattern: /^\\/api\\/response\\/?$/,\n\t\t\t\tparams: [],\n\t\t\t\tpage: null,\n\t\t\t\tendpoint: __memo(() => import('./entries/endpoints/api/response/_server.ts.js'))\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/api/sessions\",\n\t\t\t\tpattern: /^\\/api\\/sessions\\/?$/,\n\t\t\t\tparams: [],\n\t\t\t\tpage: null,\n\t\t\t\tendpoint: __memo(() => import('./entries/endpoints/api/sessions/_server.ts.js'))\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/api/sessions/connect\",\n\t\t\t\tpattern: /^\\/api\\/sessions\\/connect\\/?$/,\n\t\t\t\tparams: [],\n\t\t\t\tpage: null,\n\t\t\t\tendpoint: __memo(() => import('./entries/endpoints/api/sessions/connect/_server.ts.js'))\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/api/sessions/detect\",\n\t\t\t\tpattern: /^\\/api\\/sessions\\/detect\\/?$/,\n\t\t\t\tparams: [],\n\t\t\t\tpage: null,\n\t\t\t\tendpoint: __memo(() => import('./entries/endpoints/api/sessions/detect/_server.ts.js'))\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/api/terminals\",\n\t\t\t\tpattern: /^\\/api\\/terminals\\/?$/,\n\t\t\t\tparams: [],\n\t\t\t\tpage: null,\n\t\t\t\tendpoint: __memo(() => import('./entries/endpoints/api/terminals/_server.ts.js'))\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/api/terminals/[id]\",\n\t\t\t\tpattern: /^\\/api\\/terminals\\/([^/]+?)\\/?$/,\n\t\t\t\tparams: [{\"name\":\"id\",\"optional\":false,\"rest\":false,\"chained\":false}],\n\t\t\t\tpage: null,\n\t\t\t\tendpoint: __memo(() => import('./entries/endpoints/api/terminals/_id_/_server.ts.js'))\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/api/terminals/[id]/paste-image\",\n\t\t\t\tpattern: /^\\/api\\/terminals\\/([^/]+?)\\/paste-image\\/?$/,\n\t\t\t\tparams: [{\"name\":\"id\",\"optional\":false,\"rest\":false,\"chained\":false}],\n\t\t\t\tpage: null,\n\t\t\t\tendpoint: __memo(() => import('./entries/endpoints/api/terminals/_id_/paste-image/_server.ts.js'))\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/api/terminals/[id]/resize\",\n\t\t\t\tpattern: /^\\/api\\/terminals\\/([^/]+?)\\/resize\\/?$/,\n\t\t\t\tparams: [{\"name\":\"id\",\"optional\":false,\"rest\":false,\"chained\":false}],\n\t\t\t\tpage: null,\n\t\t\t\tendpoint: __memo(() => import('./entries/endpoints/api/terminals/_id_/resize/_server.ts.js'))\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/api/webhook\",\n\t\t\t\tpattern: /^\\/api\\/webhook\\/?$/,\n\t\t\t\tparams: [],\n\t\t\t\tpage: null,\n\t\t\t\tendpoint: __memo(() => import('./entries/endpoints/api/webhook/_server.ts.js'))\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/api/ws-status\",\n\t\t\t\tpattern: /^\\/api\\/ws-status\\/?$/,\n\t\t\t\tparams: [],\n\t\t\t\tpage: null,\n\t\t\t\tendpoint: __memo(() => import('./entries/endpoints/api/ws-status/_server.ts.js'))\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/api/ws-ticket\",\n\t\t\t\tpattern: /^\\/api\\/ws-ticket\\/?$/,\n\t\t\t\tparams: [],\n\t\t\t\tpage: null,\n\t\t\t\tendpoint: __memo(() => import('./entries/endpoints/api/ws-ticket/_server.ts.js'))\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/config\",\n\t\t\t\tpattern: /^\\/config\\/?$/,\n\t\t\t\tparams: [],\n\t\t\t\tpage: { layouts: [0,], errors: [1,], leaf: 4 },\n\t\t\t\tendpoint: null\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/neurolink\",\n\t\t\t\tpattern: /^\\/neurolink\\/?$/,\n\t\t\t\tparams: [],\n\t\t\t\tpage: { layouts: [0,], errors: [1,], leaf: 5 },\n\t\t\t\tendpoint: null\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/project\",\n\t\t\t\tpattern: /^\\/project\\/?$/,\n\t\t\t\tparams: [],\n\t\t\t\tpage: { layouts: [0,], errors: [1,], leaf: 6 },\n\t\t\t\tendpoint: null\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/session/[id]\",\n\t\t\t\tpattern: /^\\/session\\/([^/]+?)\\/?$/,\n\t\t\t\tparams: [{\"name\":\"id\",\"optional\":false,\"rest\":false,\"chained\":false}],\n\t\t\t\tpage: { layouts: [0,], errors: [1,], leaf: 7 },\n\t\t\t\tendpoint: null\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/terminals\",\n\t\t\t\tpattern: /^\\/terminals\\/?$/,\n\t\t\t\tparams: [],\n\t\t\t\tpage: { layouts: [0,], errors: [1,], leaf: 8 },\n\t\t\t\tendpoint: null\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/terminals/[id]\",\n\t\t\t\tpattern: /^\\/terminals\\/([^/]+?)\\/?$/,\n\t\t\t\tparams: [{\"name\":\"id\",\"optional\":false,\"rest\":false,\"chained\":false}],\n\t\t\t\tpage: { layouts: [0,], errors: [1,], leaf: 9 },\n\t\t\t\tendpoint: null\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\nexport const prerendered = new Set([]);\n\nexport const base = \"\";"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@juspay/shooter",
|
|
3
|
-
"version": "1.9.
|
|
3
|
+
"version": "1.9.1",
|
|
4
4
|
"description": "Bidirectional communication server for Claude Code and iOS — push notifications, remote terminal, session viewing",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"packageManager": "pnpm@10.28.2",
|
|
@@ -105,7 +105,6 @@
|
|
|
105
105
|
},
|
|
106
106
|
"dependencies": {
|
|
107
107
|
"@juspay/svelte-ui-components": "^2.18.0",
|
|
108
|
-
"@parse/node-apn": "^7.1.0",
|
|
109
108
|
"@xterm/addon-fit": "^0.10.0",
|
|
110
109
|
"@xterm/addon-web-links": "^0.11.0",
|
|
111
110
|
"@xterm/xterm": "^5.5.0",
|
|
@@ -1,17 +1,33 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { APNsSendResult, NotificationPayload } from '$lib/types';
|
|
2
2
|
|
|
3
3
|
import { env } from '$env/dynamic/private';
|
|
4
|
-
|
|
5
|
-
import
|
|
4
|
+
import { execFile, execFileSync } from 'child_process';
|
|
5
|
+
import jwt from 'jsonwebtoken';
|
|
6
|
+
import { promisify } from 'util';
|
|
6
7
|
|
|
7
8
|
import { toErrorMessage } from '../utils/error';
|
|
8
9
|
|
|
10
|
+
// APNs delivery via curl. Replaces @parse/node-apn (which times out on Node 24
|
|
11
|
+
// regardless of version: 7.1.0, 8.1.0, both reproduce). Node's native http2 +
|
|
12
|
+
// TLS clients also fail to connect to api.push.apple.com / api.sandbox.push.apple.com
|
|
13
|
+
// while curl, openssl s_client, and nc all succeed — strongly Apple-specific TLS
|
|
14
|
+
// quirk in Node. curl uses libnghttp2 + system TLS and connects in ~1s.
|
|
15
|
+
|
|
16
|
+
const execFileAsync = promisify(execFile);
|
|
17
|
+
|
|
18
|
+
const APNS_HOST_PROD = 'api.push.apple.com';
|
|
19
|
+
const APNS_HOST_SANDBOX = 'api.sandbox.push.apple.com';
|
|
20
|
+
const JWT_REFRESH_INTERVAL_MS = 30 * 60 * 1000;
|
|
21
|
+
const REQUEST_TIMEOUT_SECONDS = 15;
|
|
22
|
+
|
|
9
23
|
export class LibraryAPNsService {
|
|
10
24
|
private bundleId: string | undefined;
|
|
25
|
+
private cachedJwt: null | string = null;
|
|
26
|
+
private cachedJwtAt = 0;
|
|
11
27
|
private configured = false;
|
|
28
|
+
private host = '';
|
|
12
29
|
private keyId: string | undefined;
|
|
13
30
|
private privateKey: string | undefined;
|
|
14
|
-
private provider: apn.Provider | null = null;
|
|
15
31
|
private teamId: string | undefined;
|
|
16
32
|
|
|
17
33
|
constructor() {
|
|
@@ -29,21 +45,30 @@ export class LibraryAPNsService {
|
|
|
29
45
|
}
|
|
30
46
|
|
|
31
47
|
const production = env.APNS_PRODUCTION === 'true';
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
}
|
|
39
|
-
}
|
|
48
|
+
this.host = production ? APNS_HOST_PROD : APNS_HOST_SANDBOX;
|
|
49
|
+
|
|
50
|
+
// Verify curl is available before declaring the service ready. Without this
|
|
51
|
+
// probe, isConfigured() flips true on a host missing curl and every send
|
|
52
|
+
// fails with ENOENT at runtime instead of at startup.
|
|
53
|
+
try {
|
|
54
|
+
execFileSync('curl', ['--version'], { stdio: 'ignore' });
|
|
55
|
+
} catch (error) {
|
|
56
|
+
console.error(
|
|
57
|
+
'[apns] curl binary not found — install curl to enable APNs delivery:',
|
|
58
|
+
toErrorMessage(error)
|
|
59
|
+
);
|
|
60
|
+
this.configured = false;
|
|
61
|
+
return;
|
|
62
|
+
}
|
|
40
63
|
|
|
41
64
|
try {
|
|
42
|
-
this.
|
|
65
|
+
this.getJwt();
|
|
43
66
|
this.configured = true;
|
|
44
|
-
console.log(
|
|
67
|
+
console.log(
|
|
68
|
+
`[apns] Provider initialized (${production ? 'production' : 'sandbox'} mode, curl transport)`
|
|
69
|
+
);
|
|
45
70
|
} catch (error) {
|
|
46
|
-
console.error('[apns] Failed to
|
|
71
|
+
console.error('[apns] Failed to initialize:', toErrorMessage(error));
|
|
47
72
|
this.configured = false;
|
|
48
73
|
}
|
|
49
74
|
}
|
|
@@ -55,87 +80,122 @@ export class LibraryAPNsService {
|
|
|
55
80
|
async sendNotification(
|
|
56
81
|
deviceToken: string,
|
|
57
82
|
payload: NotificationPayload
|
|
58
|
-
): Promise<{
|
|
59
|
-
|
|
60
|
-
error?: string;
|
|
61
|
-
failed: number;
|
|
62
|
-
sent: number;
|
|
63
|
-
success: boolean;
|
|
64
|
-
}> {
|
|
65
|
-
if (!this.configured || !this.provider) {
|
|
83
|
+
): Promise<APNsSendResult> {
|
|
84
|
+
if (!this.configured) {
|
|
66
85
|
throw new Error('APNs service not configured properly');
|
|
67
86
|
}
|
|
68
|
-
|
|
69
87
|
if (!deviceToken || !payload) {
|
|
70
88
|
throw new Error('Device token and payload are required');
|
|
71
89
|
}
|
|
72
90
|
|
|
73
|
-
const
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
91
|
+
const aps: Record<string, unknown> = {
|
|
92
|
+
alert: {
|
|
93
|
+
body: payload.body ?? payload.message ?? '',
|
|
94
|
+
title: payload.title,
|
|
95
|
+
...(payload.subtitle ? { subtitle: payload.subtitle } : {}),
|
|
96
|
+
},
|
|
97
|
+
badge: payload.badge ?? 1,
|
|
98
|
+
sound: payload.sound ?? 'default',
|
|
79
99
|
};
|
|
80
|
-
|
|
81
|
-
notification.badge = payload.badge ?? 1;
|
|
82
|
-
notification.sound = payload.sound ?? 'default';
|
|
83
|
-
if (!this.bundleId) {
|
|
84
|
-
throw new Error('APNs bundleId is required but was not configured');
|
|
85
|
-
}
|
|
86
|
-
notification.topic = this.bundleId;
|
|
87
|
-
|
|
88
100
|
if (payload.category) {
|
|
89
|
-
|
|
101
|
+
aps.category = payload.category;
|
|
90
102
|
}
|
|
91
103
|
|
|
104
|
+
const body: Record<string, unknown> = { aps };
|
|
92
105
|
if (payload.data) {
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
if (result.failed && result.failed.length > 0) {
|
|
99
|
-
console.error(`[apns] Full failed result: ${JSON.stringify(result.failed[0])}`);
|
|
100
|
-
const failedItem = result.failed[0] as unknown as Record<string, unknown>;
|
|
101
|
-
const rawReason =
|
|
102
|
-
(failedItem?.response as Record<string, unknown>)?.reason ??
|
|
103
|
-
failedItem?.status ??
|
|
104
|
-
failedItem?.error;
|
|
105
|
-
const reason =
|
|
106
|
-
typeof rawReason === 'string' ? rawReason : JSON.stringify(rawReason ?? failedItem);
|
|
107
|
-
console.error(`[apns] Delivery failed: ${reason}`);
|
|
108
|
-
|
|
109
|
-
return {
|
|
110
|
-
error: reason,
|
|
111
|
-
failed: result.failed?.length || 0,
|
|
112
|
-
sent: result.sent?.length || 0,
|
|
113
|
-
success: false,
|
|
114
|
-
};
|
|
106
|
+
// Drop any caller-supplied `aps` so it can't replace the alert envelope
|
|
107
|
+
// we just built (would otherwise produce silent or malformed pushes).
|
|
108
|
+
const { aps: _ignoredAps, ...customData } = payload.data;
|
|
109
|
+
void _ignoredAps;
|
|
110
|
+
Object.assign(body, customData);
|
|
115
111
|
}
|
|
112
|
+
const bodyJson = JSON.stringify(body);
|
|
113
|
+
const jwtToken = this.getJwt();
|
|
114
|
+
const url = `https://${this.host}/3/device/${deviceToken}`;
|
|
115
|
+
|
|
116
|
+
const args = [
|
|
117
|
+
'-sS',
|
|
118
|
+
'--http2',
|
|
119
|
+
'--max-time',
|
|
120
|
+
String(REQUEST_TIMEOUT_SECONDS),
|
|
121
|
+
'-X',
|
|
122
|
+
'POST',
|
|
123
|
+
'-H',
|
|
124
|
+
'content-type: application/json',
|
|
125
|
+
'-H',
|
|
126
|
+
`apns-topic: ${this.bundleId}`,
|
|
127
|
+
'-H',
|
|
128
|
+
`authorization: bearer ${jwtToken}`,
|
|
129
|
+
'-H',
|
|
130
|
+
'apns-push-type: alert',
|
|
131
|
+
'-H',
|
|
132
|
+
'apns-priority: 10',
|
|
133
|
+
'-d',
|
|
134
|
+
bodyJson,
|
|
135
|
+
'-w',
|
|
136
|
+
'\n__SHOOTER_HTTP_STATUS__:%{http_code}\n',
|
|
137
|
+
url,
|
|
138
|
+
];
|
|
116
139
|
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
140
|
+
try {
|
|
141
|
+
const { stdout } = await execFileAsync('curl', args, {
|
|
142
|
+
maxBuffer: 1024 * 1024,
|
|
143
|
+
timeout: (REQUEST_TIMEOUT_SECONDS + 5) * 1000,
|
|
144
|
+
});
|
|
145
|
+
|
|
146
|
+
const statusMatch = /__SHOOTER_HTTP_STATUS__:(\d+)/.exec(stdout);
|
|
147
|
+
const status = statusMatch ? parseInt(statusMatch[1], 10) : 0;
|
|
148
|
+
const bodyText = stdout.replace(/\n?__SHOOTER_HTTP_STATUS__:\d+\n?$/, '').trim();
|
|
149
|
+
|
|
150
|
+
if (status === 200) {
|
|
151
|
+
// Intentionally omit `details` here — including the raw 64-char
|
|
152
|
+
// device token would leak it through API responses and downstream
|
|
153
|
+
// logs, undercutting the redaction we do in the notifier.
|
|
154
|
+
return { failed: 0, sent: 1, success: true };
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
let reason: string = bodyText;
|
|
158
|
+
try {
|
|
159
|
+
const parsed: unknown = JSON.parse(bodyText);
|
|
160
|
+
if (
|
|
161
|
+
parsed &&
|
|
162
|
+
typeof parsed === 'object' &&
|
|
163
|
+
'reason' in parsed &&
|
|
164
|
+
typeof (parsed as { reason: unknown }).reason === 'string'
|
|
165
|
+
) {
|
|
166
|
+
reason = (parsed as { reason: string }).reason;
|
|
167
|
+
}
|
|
168
|
+
} catch {
|
|
169
|
+
// raw body
|
|
170
|
+
}
|
|
171
|
+
console.error(`[apns] Delivery failed (status=${status}): ${reason}`);
|
|
172
|
+
return { error: reason, failed: 1, sent: 0, success: false };
|
|
173
|
+
} catch (err) {
|
|
174
|
+
const msg = toErrorMessage(err);
|
|
175
|
+
console.error(`[apns] curl transport error: ${msg}`);
|
|
176
|
+
return { error: msg, failed: 1, sent: 0, success: false };
|
|
124
177
|
}
|
|
125
|
-
|
|
126
|
-
return {
|
|
127
|
-
details: [result as unknown as Record<string, unknown>],
|
|
128
|
-
error: 'Unexpected result format',
|
|
129
|
-
failed: 1,
|
|
130
|
-
sent: 0,
|
|
131
|
-
success: false,
|
|
132
|
-
};
|
|
133
178
|
}
|
|
134
179
|
|
|
135
180
|
shutdown(): void {
|
|
136
|
-
|
|
137
|
-
|
|
181
|
+
// No persistent state to release.
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
private getJwt(): string {
|
|
185
|
+
const now = Date.now();
|
|
186
|
+
if (this.cachedJwt && now - this.cachedJwtAt < JWT_REFRESH_INTERVAL_MS) {
|
|
187
|
+
return this.cachedJwt;
|
|
188
|
+
}
|
|
189
|
+
if (!this.privateKey || !this.keyId || !this.teamId) {
|
|
190
|
+
throw new Error('APNs credentials missing');
|
|
138
191
|
}
|
|
192
|
+
const token = jwt.sign({ iat: Math.floor(now / 1000), iss: this.teamId }, this.privateKey, {
|
|
193
|
+
algorithm: 'ES256',
|
|
194
|
+
header: { alg: 'ES256', kid: this.keyId },
|
|
195
|
+
});
|
|
196
|
+
this.cachedJwt = token;
|
|
197
|
+
this.cachedJwtAt = now;
|
|
198
|
+
return token;
|
|
139
199
|
}
|
|
140
200
|
}
|
|
141
201
|
|
package/src/lib/types/apn.ts
CHANGED
|
@@ -11,6 +11,16 @@ import type {
|
|
|
11
11
|
SentDetail,
|
|
12
12
|
} from './generated';
|
|
13
13
|
|
|
14
|
+
// Result shape returned by LibraryAPNsService.sendNotification — kept narrow
|
|
15
|
+
// because callers (notify endpoint) treat it as a small success/error summary.
|
|
16
|
+
export interface APNsSendResult {
|
|
17
|
+
details?: unknown[];
|
|
18
|
+
error?: string;
|
|
19
|
+
failed: number;
|
|
20
|
+
sent: number;
|
|
21
|
+
success: boolean;
|
|
22
|
+
}
|
|
23
|
+
|
|
14
24
|
export interface LibraryResult {
|
|
15
25
|
failed: LibraryFailedItem[];
|
|
16
26
|
sent: LibrarySentItem[];
|
|
Binary file
|
|
Binary file
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
import{bq as Te,q as Fe,s as P,g as j,b as C,P as oe,br as vt}from"./Ce0VRwE1.js";class pe{constructor(t,n){this.status=t,typeof n=="string"?this.body={message:n}:n?this.body=n:this.body={message:`Error: ${t}`}}toString(){return JSON.stringify(this.body)}}class Ue{constructor(t,n){this.status=t,this.location=n}}class Le extends Error{constructor(t,n,r){super(r),this.status=t,this.text=n}}new URL("sveltekit-internal://");function bt(e,t){return e==="/"||t==="ignore"?e:t==="never"?e.endsWith("/")?e.slice(0,-1):e:t==="always"&&!e.endsWith("/")?e+"/":e}function kt(e){return e.split("%25").map(decodeURI).join("%25")}function Et(e){for(const t in e)e[t]=decodeURIComponent(e[t]);return e}function ye({href:e}){return e.split("#")[0]}function At(...e){let t=5381;for(const n of e)if(typeof n=="string"){let r=n.length;for(;r;)t=t*33^n.charCodeAt(--r)}else if(ArrayBuffer.isView(n)){const r=new Uint8Array(n.buffer,n.byteOffset,n.byteLength);let a=r.length;for(;a;)t=t*33^r[--a]}else throw new TypeError("value must be a string or TypedArray");return(t>>>0).toString(36)}new TextEncoder;const St=new TextDecoder;function Rt(e){const t=atob(e),n=new Uint8Array(t.length);for(let r=0;r<t.length;r++)n[r]=t.charCodeAt(r);return n}const It=window.fetch;window.fetch=(e,t)=>((e instanceof Request?e.method:t?.method||"GET")!=="GET"&&J.delete(Pe(e)),It(e,t));const J=new Map;function Tt(e,t){const n=Pe(e,t),r=document.querySelector(n);if(r?.textContent){r.remove();let{body:a,...s}=JSON.parse(r.textContent);const o=r.getAttribute("data-ttl");return o&&J.set(n,{body:a,init:s,ttl:1e3*Number(o)}),r.getAttribute("data-b64")!==null&&(a=Rt(a)),Promise.resolve(new Response(a,s))}return window.fetch(e,t)}function Ut(e,t,n){if(J.size>0){const r=Pe(e,n),a=J.get(r);if(a){if(performance.now()<a.ttl&&["default","force-cache","only-if-cached",void 0].includes(n?.cache))return new Response(a.body,a.init);J.delete(r)}}return window.fetch(t,n)}function Pe(e,t){let r=`script[data-sveltekit-fetched][data-url=${JSON.stringify(e instanceof Request?e.url:e)}]`;if(t?.headers||t?.body){const a=[];t.headers&&a.push([...new Headers(t.headers)].join(",")),t.body&&(typeof t.body=="string"||ArrayBuffer.isView(t.body))&&a.push(t.body),r+=`[data-hash="${At(...a)}"]`}return r}const Lt=/^(\[)?(\.\.\.)?(\w+)(?:=(\w+))?(\])?$/;function Pt(e){const t=[];return{pattern:e==="/"?/^\/$/:new RegExp(`^${Ct(e).map(r=>{const a=/^\[\.\.\.(\w+)(?:=(\w+))?\]$/.exec(r);if(a)return t.push({name:a[1],matcher:a[2],optional:!1,rest:!0,chained:!0}),"(?:/([^]*))?";const s=/^\[\[(\w+)(?:=(\w+))?\]\]$/.exec(r);if(s)return t.push({name:s[1],matcher:s[2],optional:!0,rest:!1,chained:!0}),"(?:/([^/]+))?";if(!r)return;const o=r.split(/\[(.+?)\](?!\])/);return"/"+o.map((i,l)=>{if(l%2){if(i.startsWith("x+"))return ve(String.fromCharCode(parseInt(i.slice(2),16)));if(i.startsWith("u+"))return ve(String.fromCharCode(...i.slice(2).split("-").map(h=>parseInt(h,16))));const f=Lt.exec(i),[,u,_,p,d]=f;return t.push({name:p,matcher:d,optional:!!u,rest:!!_,chained:_?l===1&&o[0]==="":!1}),_?"([^]*?)":u?"([^/]*)?":"([^/]+?)"}return ve(i)}).join("")}).join("")}/?$`),params:t}}function jt(e){return e!==""&&!/^\([^)]+\)$/.test(e)}function Ct(e){return e.slice(1).split("/").filter(jt)}function Ot(e,t,n){const r={},a=e.slice(1),s=a.filter(c=>c!==void 0);let o=0;for(let c=0;c<t.length;c+=1){const i=t[c];let l=a[c-o];if(i.chained&&i.rest&&o&&(l=a.slice(c-o,c+1).filter(f=>f).join("/"),o=0),l===void 0)if(i.rest)l="";else continue;if(!i.matcher||n[i.matcher](l)){r[i.name]=l;const f=t[c+1],u=a[c+1];f&&!f.rest&&f.optional&&u&&i.chained&&(o=0),!f&&!u&&Object.keys(r).length===s.length&&(o=0);continue}if(i.optional&&i.chained){o++;continue}return}if(!o)return r}function ve(e){return e.normalize().replace(/[[\]]/g,"\\$&").replace(/%/g,"%25").replace(/\//g,"%2[Ff]").replace(/\?/g,"%3[Ff]").replace(/#/g,"%23").replace(/[.*+?^${}()|\\]/g,"\\$&")}function Nt({nodes:e,server_loads:t,dictionary:n,matchers:r}){const a=new Set(t);return Object.entries(n).map(([c,[i,l,f]])=>{const{pattern:u,params:_}=Pt(c),p={id:c,exec:d=>{const h=u.exec(d);if(h)return Ot(h,_,r)},errors:[1,...f||[]].map(d=>e[d]),layouts:[0,...l||[]].map(o),leaf:s(i)};return p.errors.length=p.layouts.length=Math.max(p.errors.length,p.layouts.length),p});function s(c){const i=c<0;return i&&(c=~c),[i,e[c]]}function o(c){return c===void 0?c:[a.has(c),e[c]]}}function Ze(e,t=JSON.parse){try{return t(sessionStorage[e])}catch{}}function Ve(e,t,n=JSON.stringify){const r=n(t);try{sessionStorage[e]=r}catch{}}const T=globalThis.__sveltekit_9wdqce?.base??"",xt=globalThis.__sveltekit_9wdqce?.assets??T??"",$t="1778263058239",Qe="sveltekit:snapshot",et="sveltekit:scroll",tt="sveltekit:states",Dt="sveltekit:pageurl",M="sveltekit:history",Q="sveltekit:navigation",B={tap:1,hover:2,viewport:3,eager:4,off:-1,false:-1},re=location.origin;function je(e){if(e instanceof URL)return e;let t=document.baseURI;if(!t){const n=document.getElementsByTagName("base");t=n.length?n[0].href:document.URL}return new URL(e,t)}function F(){return{x:pageXOffset,y:pageYOffset}}function V(e,t){return e.getAttribute(`data-sveltekit-${t}`)}const Me={...B,"":B.hover};function nt(e){let t=e.assignedSlot??e.parentNode;return t?.nodeType===11&&(t=t.host),t}function rt(e,t){for(;e&&e!==t;){if(e.nodeName.toUpperCase()==="A"&&e.hasAttribute("href"))return e;e=nt(e)}}function Ee(e,t,n){let r;try{if(r=new URL(e instanceof SVGAElement?e.href.baseVal:e.href,document.baseURI),n&&r.hash.match(/^#[^/]/)){const c=location.hash.split("#")[1]||"/";r.hash=`#${c}${r.hash}`}}catch{}const a=e instanceof SVGAElement?e.target.baseVal:e.target,s=!r||!!a||_e(r,t,n)||(e.getAttribute("rel")||"").split(/\s+/).includes("external"),o=r?.origin===re&&e.hasAttribute("download");return{url:r,external:s,target:a,download:o}}function se(e){let t=null,n=null,r=null,a=null,s=null,o=null,c=e;for(;c&&c!==document.documentElement;)r===null&&(r=V(c,"preload-code")),a===null&&(a=V(c,"preload-data")),t===null&&(t=V(c,"keepfocus")),n===null&&(n=V(c,"noscroll")),s===null&&(s=V(c,"reload")),o===null&&(o=V(c,"replacestate")),c=nt(c);function i(l){switch(l){case"":case"true":return!0;case"off":case"false":return!1;default:return}}return{preload_code:Me[r??"off"],preload_data:Me[a??"off"],keepfocus:i(t),noscroll:i(n),reload:i(s),replace_state:i(o)}}function Ge(e){const t=Te(e);let n=!0;function r(){n=!0,t.update(o=>o)}function a(o){n=!1,t.set(o)}function s(o){let c;return t.subscribe(i=>{(c===void 0||n&&i!==c)&&o(c=i)})}return{notify:r,set:a,subscribe:s}}const at={v:()=>{}};function Bt(){const{set:e,subscribe:t}=Te(!1);let n;async function r(){clearTimeout(n);try{const a=await fetch(`${xt}/_app/version.json`,{headers:{pragma:"no-cache","cache-control":"no-cache"}});if(!a.ok)return!1;const o=(await a.json()).version!==$t;return o&&(e(!0),at.v(),clearTimeout(n)),o}catch{return!1}}return{subscribe:t,check:r}}function _e(e,t,n){return e.origin!==re||!e.pathname.startsWith(t)?!0:n?e.pathname!==location.pathname:!1}function Sn(e){}function qt(e){const t=Vt(e),n=new ArrayBuffer(t.length),r=new DataView(n);for(let a=0;a<n.byteLength;a++)r.setUint8(a,t.charCodeAt(a));return n}const Ft="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";function Vt(e){e.length%4===0&&(e=e.replace(/==?$/,""));let t="",n=0,r=0;for(let a=0;a<e.length;a++)n<<=6,n|=Ft.indexOf(e[a]),r+=6,r===24&&(t+=String.fromCharCode((n&16711680)>>16),t+=String.fromCharCode((n&65280)>>8),t+=String.fromCharCode(n&255),n=r=0);return r===12?(n>>=4,t+=String.fromCharCode(n)):r===18&&(n>>=2,t+=String.fromCharCode((n&65280)>>8),t+=String.fromCharCode(n&255)),t}const Mt=-1,Gt=-2,Kt=-3,Yt=-4,Wt=-5,Ht=-6,zt=-7;function Jt(e,t){if(typeof e=="number")return s(e,!0);if(!Array.isArray(e)||e.length===0)throw new Error("Invalid input");const n=e,r=Array(n.length);let a=null;function s(o,c=!1){if(o===Mt)return;if(o===Kt)return NaN;if(o===Yt)return 1/0;if(o===Wt)return-1/0;if(o===Ht)return-0;if(c||typeof o!="number")throw new Error("Invalid input");if(o in r)return r[o];const i=n[o];if(!i||typeof i!="object")r[o]=i;else if(Array.isArray(i))if(typeof i[0]=="string"){const l=i[0],f=t&&Object.hasOwn(t,l)?t[l]:void 0;if(f){let u=i[1];if(typeof u!="number"&&(u=n.push(i[1])-1),a??=new Set,a.has(u))throw new Error("Invalid circular reference");return a.add(u),r[o]=f(s(u)),a.delete(u),r[o]}switch(l){case"Date":r[o]=new Date(i[1]);break;case"Set":const u=new Set;r[o]=u;for(let h=1;h<i.length;h+=1)u.add(s(i[h]));break;case"Map":const _=new Map;r[o]=_;for(let h=1;h<i.length;h+=2)_.set(s(i[h]),s(i[h+1]));break;case"RegExp":r[o]=new RegExp(i[1],i[2]);break;case"Object":const p=Object(i[1]);if(Object.hasOwn(p,"__proto__"))throw new Error("Cannot parse an object with a `__proto__` property");r[o]=p;break;case"BigInt":r[o]=BigInt(i[1]);break;case"null":const d=Object.create(null);r[o]=d;for(let h=1;h<i.length;h+=2){if(i[h]==="__proto__")throw new Error("Cannot parse an object with a `__proto__` property");d[i[h]]=s(i[h+1])}break;case"Int8Array":case"Uint8Array":case"Uint8ClampedArray":case"Int16Array":case"Uint16Array":case"Int32Array":case"Uint32Array":case"Float32Array":case"Float64Array":case"BigInt64Array":case"BigUint64Array":{if(n[i[1]][0]!=="ArrayBuffer")throw new Error("Invalid data");const h=globalThis[l],w=s(i[1]),g=new h(w);r[o]=i[2]!==void 0?g.subarray(i[2],i[3]):g;break}case"ArrayBuffer":{const h=i[1];if(typeof h!="string")throw new Error("Invalid ArrayBuffer encoding");const w=qt(h);r[o]=w;break}case"Temporal.Duration":case"Temporal.Instant":case"Temporal.PlainDate":case"Temporal.PlainTime":case"Temporal.PlainDateTime":case"Temporal.PlainMonthDay":case"Temporal.PlainYearMonth":case"Temporal.ZonedDateTime":{const h=l.slice(9);r[o]=Temporal[h].from(i[1]);break}case"URL":{const h=new URL(i[1]);r[o]=h;break}case"URLSearchParams":{const h=new URLSearchParams(i[1]);r[o]=h;break}default:throw new Error(`Unknown type ${l}`)}}else if(i[0]===zt){const l=i[1];if(!Number.isInteger(l)||l<0)throw new Error("Invalid input");const f=new Array(l);r[o]=f;for(let u=2;u<i.length;u+=2){const _=i[u];if(!Number.isInteger(_)||_<0||_>=l)throw new Error("Invalid input");f[_]=s(i[u+1])}}else{const l=new Array(i.length);r[o]=l;for(let f=0;f<i.length;f+=1){const u=i[f];u!==Gt&&(l[f]=s(u))}}else{const l={};r[o]=l;for(const f of Object.keys(i)){if(f==="__proto__")throw new Error("Cannot parse an object with a `__proto__` property");const u=i[f];l[f]=s(u)}}return r[o]}return s(0)}const ot=new Set(["load","prerender","csr","ssr","trailingSlash","config"]);[...ot];const Xt=new Set([...ot]);[...Xt];function Zt(e){return e.filter(t=>t!=null)}const Qt="x-sveltekit-invalidated",en="x-sveltekit-trailing-slash";function ie(e){return e instanceof pe||e instanceof Le?e.status:500}function tn(e){return e instanceof Le?e.text:"Internal Error"}let R,ee,be;const nn=Fe.toString().includes("$$")||/function \w+\(\) \{\}/.test(Fe.toString()),Ke="a:";nn?(R={data:{},form:null,error:null,params:{},route:{id:null},state:{},status:-1,url:new URL(Ke)},ee={current:null},be={current:!1}):(R=new class{#e=P({});get data(){return j(this.#e)}set data(t){C(this.#e,t)}#t=P(null);get form(){return j(this.#t)}set form(t){C(this.#t,t)}#n=P(null);get error(){return j(this.#n)}set error(t){C(this.#n,t)}#r=P({});get params(){return j(this.#r)}set params(t){C(this.#r,t)}#a=P({id:null});get route(){return j(this.#a)}set route(t){C(this.#a,t)}#o=P({});get state(){return j(this.#o)}set state(t){C(this.#o,t)}#s=P(-1);get status(){return j(this.#s)}set status(t){C(this.#s,t)}#i=P(new URL(Ke));get url(){return j(this.#i)}set url(t){C(this.#i,t)}},ee=new class{#e=P(null);get current(){return j(this.#e)}set current(t){C(this.#e,t)}},be=new class{#e=P(!1);get current(){return j(this.#e)}set current(t){C(this.#e,t)}},at.v=()=>be.current=!0);function rn(e){Object.assign(R,e)}const an="/__data.json",on=".html__data.json";function sn(e){return e.endsWith(".html")?e.replace(/\.html$/,on):e.replace(/\/$/,"")+an}const cn=new Set(["icon","shortcut icon","apple-touch-icon"]);let H=null;const $=Ze(et)??{},te=Ze(Qe)??{},x={url:Ge({}),page:Ge({}),navigating:Te(null),updated:Bt()};function Ce(e){$[e]=F()}function ln(e,t){let n=e+1;for(;$[n];)delete $[n],n+=1;for(n=t+1;te[n];)delete te[n],n+=1}function Y(e,t=!1){return t?location.replace(e.href):location.href=e.href,new Promise(()=>{})}async function st(){if("serviceWorker"in navigator){const e=await navigator.serviceWorker.getRegistration(T||"/");e&&await e.update()}}function Ye(){}let Oe,Ae,ce,N,Se,k;const le=[],fe=[];let L=null;function Re(){L?.fork?.then(e=>e?.discard()),L=null}const ae=new Map,it=new Set,fn=new Set,X=new Set;let y={branch:[],error:null,url:null},Ne=!1,ue=!1,We=!0,ne=!1,z=!1,ct=!1,xe=!1,lt,S,I,q;const Z=new Set,He=new Map;async function Un(e,t,n){globalThis.__sveltekit_9wdqce?.data&&globalThis.__sveltekit_9wdqce.data,document.URL!==location.href&&(location.href=location.href),k=e,await e.hooks.init?.(),Oe=Nt(e),N=document.documentElement,Se=t,Ae=e.nodes[0],ce=e.nodes[1],Ae(),ce(),S=history.state?.[M],I=history.state?.[Q],S||(S=I=Date.now(),history.replaceState({...history.state,[M]:S,[Q]:I},""));const r=$[S];function a(){r&&(history.scrollRestoration="manual",scrollTo(r.x,r.y))}n?(a(),await bn(Se,n)):(await G({type:"enter",url:je(k.hash?En(new URL(location.href)):location.href),replace_state:!0}),a()),vn()}function un(){le.length=0,xe=!1}function ft(e){fe.some(t=>t?.snapshot)&&(te[e]=fe.map(t=>t?.snapshot?.capture()))}function ut(e){te[e]?.forEach((t,n)=>{fe[n]?.snapshot?.restore(t)})}function ze(){Ce(S),Ve(et,$),ft(I),Ve(Qe,te)}async function dt(e,t,n,r){let a;t.invalidateAll&&Re(),await G({type:"goto",url:je(e),keepfocus:t.keepFocus,noscroll:t.noScroll,replace_state:t.replaceState,state:t.state,redirect_count:n,nav_token:r,accept:()=>{t.invalidateAll&&(xe=!0,a=[...He.keys()]),t.invalidate&&t.invalidate.forEach(yn)}}),t.invalidateAll&&oe().then(oe).then(()=>{He.forEach(({resource:s},o)=>{a?.includes(o)&&s.refresh?.()})})}async function dn(e){if(e.id!==L?.id){Re();const t={};Z.add(t),L={id:e.id,token:t,promise:pt({...e,preload:t}).then(n=>(Z.delete(t),n.type==="loaded"&&n.state.error&&Re(),n)),fork:null}}return L.promise}async function ke(e){const t=(await me(e,!1))?.route;t&&await Promise.all([...t.layouts,t.leaf].filter(Boolean).map(n=>n[1]()))}async function ht(e,t,n){const r={params:y.params,route:{id:y.route?.id??null},url:new URL(location.href)};y={...e.state,nav:r};const a=document.querySelector("style[data-sveltekit]");if(a&&a.remove(),Object.assign(R,e.props.page),lt=new k.root({target:t,props:{...e.props,stores:x,components:fe},hydrate:n,sync:!1,transformError:void 0}),await Promise.resolve(),ut(I),n){const s={from:null,to:{...r,scroll:$[S]??F()},willUnload:!1,type:"enter",complete:Promise.resolve()};X.forEach(o=>o(s))}ue=!0}async function de({url:e,params:t,branch:n,errors:r,status:a,error:s,route:o,form:c}){let i="never";if(T&&(e.pathname===T||e.pathname===T+"/"))i="always";else for(const d of n)d?.slash!==void 0&&(i=d.slash);e.pathname=bt(e.pathname,i),e.search=e.search;const l={type:"loaded",state:{url:e,params:t,branch:n,error:s,route:o},props:{constructors:Zt(n).map(d=>d.node.component),page:qe(R)}};c!==void 0&&(l.props.form=c);let f={},u=!R,_=0;for(let d=0;d<Math.max(n.length,y.branch.length);d+=1){const h=n[d],w=y.branch[d];h?.data!==w?.data&&(u=!0),h&&(f={...f,...h.data},u&&(l.props[`data_${_}`]=f),_+=1)}return(!y.url||e.href!==y.url.href||y.error!==s||c!==void 0&&c!==R.form||u)&&(l.props.page={error:s,params:t,route:{id:o?.id??null},state:{},status:a,url:new URL(e),form:c??null,data:u?f:R.data}),l}async function $e({loader:e,parent:t,url:n,params:r,route:a,server_data_node:s}){let o=null;const c={dependencies:new Set,params:new Set,parent:!1,route:!1,url:!1,search_params:new Set},i=await e();return{node:i,loader:e,server:s,universal:i.universal?.load?{type:"data",data:o,uses:c}:null,data:o??s?.data??null,slash:i.universal?.trailingSlash??s?.slash}}function hn(e,t,n){let r=e instanceof Request?e.url:e;const a=new URL(r,n);a.origin===n.origin&&(r=a.href.slice(n.origin.length));const s=ue?Ut(r,a.href,t):Tt(r,t);return{resolved:a,promise:s}}function Je(e,t,n,r,a,s){if(xe)return!0;if(!a)return!1;if(a.parent&&e||a.route&&t||a.url&&n)return!0;for(const o of a.search_params)if(r.has(o))return!0;for(const o of a.params)if(s[o]!==y.params[o])return!0;for(const o of a.dependencies)if(le.some(c=>c(new URL(o))))return!0;return!1}function De(e,t){return e?.type==="data"?e:e?.type==="skip"?t??null:null}function pn(e,t){if(!e)return new Set(t.searchParams.keys());const n=new Set([...e.searchParams.keys(),...t.searchParams.keys()]);for(const r of n){const a=e.searchParams.getAll(r),s=t.searchParams.getAll(r);a.every(o=>s.includes(o))&&s.every(o=>a.includes(o))&&n.delete(r)}return n}function Xe({error:e,url:t,route:n,params:r}){return{type:"loaded",state:{error:e,url:t,route:n,params:r,branch:[]},props:{page:qe(R),constructors:[]}}}async function pt({id:e,invalidating:t,url:n,params:r,route:a,preload:s}){if(L?.id===e)return Z.delete(L.token),L.promise;const{errors:o,layouts:c,leaf:i}=a,l=[...c,i];o.forEach(m=>m?.().catch(()=>{})),l.forEach(m=>m?.[1]().catch(()=>{}));let f=null;const u=y.url?e!==he(y.url):!1,_=y.route?a.id!==y.route.id:!1,p=pn(y.url,n);let d=!1;{const m=l.map((v,E)=>{const A=y.branch[E],b=!!v?.[0]&&(A?.loader!==v[1]||Je(d,_,u,p,A.server?.uses,r));return b&&(d=!0),b});if(m.some(Boolean)){try{f=await mt(n,m)}catch(v){const E=await K(v,{url:n,params:r,route:{id:e}});return Z.has(s)?Xe({error:E,url:n,params:r,route:a}):ge({status:ie(v),error:E,url:n,route:a})}if(f.type==="redirect")return f}}const h=f?.nodes;let w=!1;const g=l.map(async(m,v)=>{if(!m)return;const E=y.branch[v],A=h?.[v];if((!A||A.type==="skip")&&m[1]===E?.loader&&!Je(w,_,u,p,E.universal?.uses,r))return E;if(w=!0,A?.type==="error")throw A;return $e({loader:m[1],url:n,params:r,route:a,parent:async()=>{const O={};for(let D=0;D<v;D+=1)Object.assign(O,(await g[D])?.data);return O},server_data_node:De(A===void 0&&m[0]?{type:"skip"}:A??null,m[0]?E?.server:void 0)})});for(const m of g)m.catch(()=>{});const U=[];for(let m=0;m<l.length;m+=1)if(l[m])try{U.push(await g[m])}catch(v){if(v instanceof Ue)return{type:"redirect",location:v.location};if(Z.has(s))return Xe({error:await K(v,{params:r,url:n,route:{id:a.id}}),url:n,params:r,route:a});let E=ie(v),A;if(h?.includes(v))E=v.status??E,A=v.error;else if(v instanceof pe)A=v.body;else{if(await x.updated.check())return await st(),await Y(n);A=await K(v,{params:r,url:n,route:{id:a.id}})}const b=await _n(m,U,o);return b?de({url:n,params:r,branch:U.slice(0,b.idx).concat(b.node),errors:o,status:E,error:A,route:a}):await gt(n,{id:a.id},A,E)}else U.push(void 0);return de({url:n,params:r,branch:U,errors:o,status:200,error:null,route:a,form:t?void 0:null})}async function _n(e,t,n){for(;e--;)if(n[e]){let r=e;for(;!t[r];)r-=1;try{return{idx:r+1,node:{node:await n[e](),loader:n[e],data:{},server:null,universal:null}}}catch{continue}}}async function ge({status:e,error:t,url:n,route:r}){const a={};let s=null;if(k.server_loads[0]===0)try{const c=await mt(n,[!0]);if(c.type!=="data"||c.nodes[0]&&c.nodes[0].type!=="data")throw 0;s=c.nodes[0]??null}catch{(n.origin!==re||n.pathname!==location.pathname||Ne)&&await Y(n)}try{const o=await $e({loader:Ae,url:n,params:a,route:r,parent:()=>Promise.resolve({}),server_data_node:De(s)}),c={node:await ce(),loader:ce,universal:null,server:null,data:null};return de({url:n,params:a,branch:[o,c],status:e,error:t,errors:[],route:null})}catch(o){if(o instanceof Ue)return dt(new URL(o.location,location.href),{},0);throw o}}async function gn(e){const t=e.href;if(ae.has(t))return ae.get(t);let n;try{const r=(async()=>{let a=await k.hooks.reroute({url:new URL(e),fetch:async(s,o)=>hn(s,o,e).promise})??e;if(typeof a=="string"){const s=new URL(e);k.hash?s.hash=a:s.pathname=a,a=s}return a})();ae.set(t,r),n=await r}catch{ae.delete(t);return}return n}async function me(e,t){if(e&&!_e(e,T,k.hash)){const n=await gn(e);if(!n)return;const r=mn(n);for(const a of Oe){const s=a.exec(r);if(s)return{id:he(e),invalidating:t,route:a,params:Et(s),url:e}}}}function mn(e){return kt(k.hash?e.hash.replace(/^#/,"").replace(/[?#].+/,""):e.pathname.slice(T.length))||"/"}function he(e){return(k.hash?e.hash.replace(/^#/,""):e.pathname)+e.search}function _t({url:e,type:t,intent:n,delta:r,event:a,scroll:s}){let o=!1;const c=Be(y,n,e,t,s??null);r!==void 0&&(c.navigation.delta=r),a!==void 0&&(c.navigation.event=a);const i={...c.navigation,cancel:()=>{o=!0,c.reject(new Error("navigation cancelled"))}};return ne||it.forEach(l=>l(i)),o?null:c}async function G({type:e,url:t,popped:n,keepfocus:r,noscroll:a,replace_state:s,state:o={},redirect_count:c=0,nav_token:i={},accept:l=Ye,block:f=Ye,event:u}){const _=q;q=i;const p=await me(t,!1),d=e==="enter"?Be(y,p,t,e):_t({url:t,type:e,delta:n?.delta,intent:p,scroll:n?.scroll,event:u});if(!d){f(),q===i&&(q=_);return}const h=S,w=I;l(),ne=!0,ue&&d.navigation.type!=="enter"&&x.navigating.set(ee.current=d.navigation);let g=p&&await pt(p);if(!g){if(_e(t,T,k.hash))return await Y(t,s);g=await gt(t,{id:null},await K(new Le(404,"Not Found",`Not found: ${t.pathname}`),{url:t,params:{},route:{id:null}}),404,s)}if(t=p?.url||t,q!==i)return d.reject(new Error("navigation aborted")),!1;if(g.type==="redirect"){if(c<20){await G({type:e,url:new URL(g.location,t),popped:n,keepfocus:r,noscroll:a,replace_state:s,state:o,redirect_count:c+1,nav_token:i}),d.fulfil(void 0);return}g=await ge({status:500,error:await K(new Error("Redirect loop"),{url:t,params:{},route:{id:null}}),url:t,route:{id:null}})}else g.props.page.status>=400&&await x.updated.check()&&(await st(),await Y(t,s));if(un(),Ce(h),ft(w),g.props.page.url.pathname!==t.pathname&&(t.pathname=g.props.page.url.pathname),o=n?n.state:o,!n){const b=s?0:1,O={[M]:S+=b,[Q]:I+=b,[tt]:o};(s?history.replaceState:history.pushState).call(history,O,"",t),s||ln(S,I)}const U=p&&L?.id===p.id?L.fork:null;L=null,g.props.page.state=o;let m;if(ue){const b=(await Promise.all(Array.from(fn,W=>W(d.navigation)))).filter(W=>typeof W=="function");if(b.length>0){let W=function(){b.forEach(we=>{X.delete(we)})};b.push(W),b.forEach(we=>{X.add(we)})}const O=d.navigation.to;y={...g.state,nav:{params:O.params,route:O.route,url:O.url}},g.props.page&&(g.props.page.url=t);const D=U&&await U;D?m=D.commit():(H=null,lt.$set(g.props),H&&Object.assign(g.props.page,H),rn(g.props.page),m=vt?.()),ct=!0}else await ht(g,Se,!1);const{activeElement:v}=document;await m,await oe(),await oe();let E=null;if(We){const b=n?n.scroll:a?F():null;b?scrollTo(b.x,b.y):(E=t.hash&&document.getElementById(yt(t)))?E.scrollIntoView():scrollTo(0,0)}const A=document.activeElement!==v&&document.activeElement!==document.body;!r&&!A&&kn(t,!E),We=!0,g.props.page&&(H&&Object.assign(g.props.page,H),Object.assign(R,g.props.page)),ne=!1,e==="popstate"&&ut(I),d.fulfil(void 0),d.navigation.to&&(d.navigation.to.scroll=F()),X.forEach(b=>b(d.navigation)),x.navigating.set(ee.current=null)}async function gt(e,t,n,r,a){return e.origin===re&&e.pathname===location.pathname&&!Ne?await ge({status:r,error:n,url:e,route:t}):await Y(e,a)}function wn(){let e,t={element:void 0,href:void 0},n;N.addEventListener("mousemove",c=>{const i=c.target;clearTimeout(e),e=setTimeout(()=>{s(i,B.hover)},20)});function r(c){c.defaultPrevented||s(c.composedPath()[0],B.tap)}N.addEventListener("mousedown",r),N.addEventListener("touchstart",r,{passive:!0});const a=new IntersectionObserver(c=>{for(const i of c)i.isIntersecting&&(ke(new URL(i.target.href)),a.unobserve(i.target))},{threshold:0});async function s(c,i){const l=rt(c,N),f=l===t.element&&l?.href===t.href&&i>=n;if(!l||f)return;const{url:u,external:_,download:p}=Ee(l,T,k.hash);if(_||p)return;const d=se(l),h=u&&he(y.url)===he(u);if(!(d.reload||h))if(i<=d.preload_data){t={element:l,href:l.href},n=B.tap;const w=await me(u,!1);if(!w)return;dn(w)}else i<=d.preload_code&&(t={element:l,href:l.href},n=i,ke(u))}function o(){a.disconnect();for(const c of N.querySelectorAll("a")){const{url:i,external:l,download:f}=Ee(c,T,k.hash);if(l||f)continue;const u=se(c);u.reload||(u.preload_code===B.viewport&&a.observe(c),u.preload_code===B.eager&&ke(i))}}X.add(o),o()}function K(e,t){if(e instanceof pe)return e.body;const n=ie(e),r=tn(e);return k.hooks.handleError({error:e,event:t,status:n,message:r})??{message:r}}function Ln(e,t={}){return e=new URL(je(e)),e.origin!==re?Promise.reject(new Error("goto: invalid URL")):dt(e,t,0)}function yn(e){if(typeof e=="function")le.push(e);else{const{href:t}=new URL(e,location.href);le.push(n=>n.href===t)}}function vn(){history.scrollRestoration="manual",addEventListener("beforeunload",t=>{let n=!1;if(ze(),!ne){const r=Be(y,void 0,null,"leave"),a={...r.navigation,cancel:()=>{n=!0,r.reject(new Error("navigation cancelled"))}};it.forEach(s=>s(a))}n?(t.preventDefault(),t.returnValue=""):history.scrollRestoration="auto"}),addEventListener("visibilitychange",()=>{document.visibilityState==="hidden"&&ze()}),navigator.connection?.saveData||wn(),N.addEventListener("click",async t=>{if(t.button||t.which!==1||t.metaKey||t.ctrlKey||t.shiftKey||t.altKey||t.defaultPrevented)return;const n=rt(t.composedPath()[0],N);if(!n)return;const{url:r,external:a,target:s,download:o}=Ee(n,T,k.hash);if(!r)return;if(s==="_parent"||s==="_top"){if(window.parent!==window)return}else if(s&&s!=="_self")return;const c=se(n);if(!(n instanceof SVGAElement)&&r.protocol!==location.protocol&&!(r.protocol==="https:"||r.protocol==="http:")||o)return;const[l,f]=(k.hash?r.hash.replace(/^#/,""):r.href).split("#"),u=l===ye(location);if(a||c.reload&&(!u||!f)){_t({url:r,type:"link",event:t})?ne=!0:t.preventDefault();return}if(f!==void 0&&u){const[,_]=y.url.href.split("#");if(_===f){if(t.preventDefault(),f===""||f==="top"&&n.ownerDocument.getElementById("top")===null)scrollTo({top:0});else{const p=n.ownerDocument.getElementById(decodeURIComponent(f));p&&(p.scrollIntoView(),p.focus())}return}if(z=!0,Ce(S),e(r),!c.replace_state)return;z=!1}t.preventDefault(),await new Promise(_=>{requestAnimationFrame(()=>{setTimeout(_,0)}),setTimeout(_,100)}),await G({type:"link",url:r,keepfocus:c.keepfocus,noscroll:c.noscroll,replace_state:c.replace_state??r.href===location.href,event:t})}),N.addEventListener("submit",t=>{if(t.defaultPrevented)return;const n=HTMLFormElement.prototype.cloneNode.call(t.target),r=t.submitter;if((r?.formTarget||n.target)==="_blank"||(r?.formMethod||n.method)!=="get")return;const o=new URL(r?.hasAttribute("formaction")&&r?.formAction||n.action);if(_e(o,T,!1))return;const c=t.target,i=se(c);if(i.reload)return;t.preventDefault(),t.stopPropagation();const l=new FormData(c,r);o.search=new URLSearchParams(l).toString(),G({type:"form",url:o,keepfocus:i.keepfocus,noscroll:i.noscroll,replace_state:i.replace_state??o.href===location.href,event:t})}),addEventListener("popstate",async t=>{if(!Ie){if(t.state?.[M]){const n=t.state[M];if(q={},n===S)return;const r=$[n],a=t.state[tt]??{},s=new URL(t.state[Dt]??location.href),o=t.state[Q],c=y.url?ye(location)===ye(y.url):!1;if(o===I&&(ct||c)){a!==R.state&&(R.state=a),e(s),$[S]=F(),r&&scrollTo(r.x,r.y),S=n;return}const l=n-S;await G({type:"popstate",url:s,popped:{state:a,scroll:r,delta:l},accept:()=>{S=n,I=o},block:()=>{history.go(-l)},nav_token:q,event:t})}else if(!z){const n=new URL(location.href);e(n),k.hash&&location.reload()}}}),addEventListener("hashchange",()=>{z&&(z=!1,history.replaceState({...history.state,[M]:++S,[Q]:I},"",location.href))});for(const t of document.querySelectorAll("link"))cn.has(t.rel)&&(t.href=t.href);addEventListener("pageshow",t=>{t.persisted&&x.navigating.set(ee.current=null)});function e(t){y.url=R.url=t,x.page.set(qe(R)),x.page.notify()}}async function bn(e,{status:t=200,error:n,node_ids:r,params:a,route:s,server_route:o,data:c,form:i}){Ne=!0;const l=new URL(location.href);let f;({params:a={},route:s={id:null}}=await me(l,!1)||{}),f=Oe.find(({id:p})=>p===s.id);let u,_=!0;try{const p=r.map(async(h,w)=>{const g=c[w];return g?.uses&&(g.uses=wt(g.uses)),$e({loader:k.nodes[h],url:l,params:a,route:s,parent:async()=>{const U={};for(let m=0;m<w;m+=1)Object.assign(U,(await p[m]).data);return U},server_data_node:De(g)})}),d=await Promise.all(p);if(f){const h=f.layouts;for(let w=0;w<h.length;w++)h[w]||d.splice(w,0,void 0)}u=await de({url:l,params:a,branch:d,status:t,error:n,errors:f?.errors,form:i,route:f??null})}catch(p){if(p instanceof Ue){await Y(new URL(p.location,location.href));return}u=await ge({status:ie(p),error:await K(p,{url:l,params:a,route:s}),url:l,route:s}),e.textContent="",_=!1}u.props.page&&(u.props.page.state={}),await ht(u,e,_)}async function mt(e,t){const n=new URL(e);n.pathname=sn(e.pathname),e.pathname.endsWith("/")&&n.searchParams.append(en,"1"),n.searchParams.append(Qt,t.map(s=>s?"1":"0").join(""));const r=window.fetch,a=await r(n.href,{});if(!a.ok){let s;throw a.headers.get("content-type")?.includes("application/json")?s=await a.json():a.status===404?s="Not Found":a.status===500&&(s="Internal Error"),new pe(a.status,s)}return new Promise(async s=>{const o=new Map,c=a.body.getReader();function i(f){return Jt(f,{...k.decoders,Promise:u=>new Promise((_,p)=>{o.set(u,{fulfil:_,reject:p})})})}let l="";for(;;){const{done:f,value:u}=await c.read();if(f&&!l)break;for(l+=!u&&l?`
|
|
2
|
-
`:St.decode(u,{stream:!0});;){const _=l.indexOf(`
|
|
3
|
-
`);if(_===-1)break;const p=JSON.parse(l.slice(0,_));if(l=l.slice(_+1),p.type==="redirect")return s(p);if(p.type==="data")p.nodes?.forEach(d=>{d?.type==="data"&&(d.uses=wt(d.uses),d.data=i(d.data))}),s(p);else if(p.type==="chunk"){const{id:d,data:h,error:w}=p,g=o.get(d);o.delete(d),w?g.reject(i(w)):g.fulfil(i(h))}}}})}function wt(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??[])}}let Ie=!1;function kn(e,t=!0){const n=document.querySelector("[autofocus]");if(n)n.focus();else{const r=yt(e);if(r&&document.getElementById(r)){const{x:s,y:o}=F();setTimeout(()=>{const c=history.state;Ie=!0,location.replace(new URL(`#${r}`,location.href)),history.replaceState(c,"",e),t&&scrollTo(s,o),Ie=!1})}else{const s=document.body,o=s.getAttribute("tabindex");s.tabIndex=-1,s.focus({preventScroll:!0,focusVisible:!1}),o!==null?s.setAttribute("tabindex",o):s.removeAttribute("tabindex")}const a=getSelection();if(a&&a.type!=="None"){const s=[];for(let o=0;o<a.rangeCount;o+=1)s.push(a.getRangeAt(o));setTimeout(()=>{if(a.rangeCount===s.length){for(let o=0;o<a.rangeCount;o+=1){const c=s[o],i=a.getRangeAt(o);if(c.commonAncestorContainer!==i.commonAncestorContainer||c.startContainer!==i.startContainer||c.endContainer!==i.endContainer||c.startOffset!==i.startOffset||c.endOffset!==i.endOffset)return}a.removeAllRanges()}})}}}function Be(e,t,n,r,a=null){let s,o;const c=new Promise((l,f)=>{s=l,o=f});return c.catch(()=>{}),{navigation:{from:{params:e.params,route:{id:e.route?.id??null},url:e.url,scroll:F()},to:n&&{params:t?.params??null,route:{id:t?.route?.id??null},url:n,scroll:a},willUnload:!t,type:r,complete:c},fulfil:s,reject:o}}function qe(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 En(e){const t=new URL(e);return t.hash=decodeURIComponent(e.hash),t}function yt(e){let t;if(k.hash){const[,,n]=e.hash.split("#",3);t=n??""}else t=e.hash.slice(1);return decodeURIComponent(t)}export{Un as a,Ln as g,Sn as l,R as p,x as s};
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{l as o,a as r}from"../chunks/C2yx8lo8.js";export{o as load_css,r as start};
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|