@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
|
@@ -1,108 +0,0 @@
|
|
|
1
|
-
import { b as private_env } from './shared-server-DaWdgxVh.js';
|
|
2
|
-
import apn from '@parse/node-apn';
|
|
3
|
-
import { t as toErrorMessage } from './error-DDXB3duW.js';
|
|
4
|
-
|
|
5
|
-
class LibraryAPNsService {
|
|
6
|
-
bundleId;
|
|
7
|
-
configured = false;
|
|
8
|
-
keyId;
|
|
9
|
-
privateKey;
|
|
10
|
-
provider = null;
|
|
11
|
-
teamId;
|
|
12
|
-
constructor() {
|
|
13
|
-
this.keyId = private_env.APNS_KEY_ID;
|
|
14
|
-
this.teamId = private_env.APNS_TEAM_ID;
|
|
15
|
-
this.bundleId = private_env.APNS_BUNDLE_ID;
|
|
16
|
-
this.privateKey = private_env.APNS_KEY;
|
|
17
|
-
if (!this.keyId || !this.teamId || !this.bundleId || !this.privateKey) {
|
|
18
|
-
console.error(
|
|
19
|
-
"[apns] Missing required configuration (APNS_KEY_ID, APNS_TEAM_ID, APNS_BUNDLE_ID, or APNS_KEY)"
|
|
20
|
-
);
|
|
21
|
-
this.configured = false;
|
|
22
|
-
return;
|
|
23
|
-
}
|
|
24
|
-
const production = private_env.APNS_PRODUCTION === "true";
|
|
25
|
-
const options = {
|
|
26
|
-
production,
|
|
27
|
-
token: {
|
|
28
|
-
key: this.privateKey,
|
|
29
|
-
keyId: this.keyId,
|
|
30
|
-
teamId: this.teamId
|
|
31
|
-
}
|
|
32
|
-
};
|
|
33
|
-
try {
|
|
34
|
-
this.provider = new apn.Provider(options);
|
|
35
|
-
this.configured = true;
|
|
36
|
-
console.log(`[apns] Provider initialized (${production ? "production" : "sandbox"} mode)`);
|
|
37
|
-
} catch (error) {
|
|
38
|
-
console.error("[apns] Failed to create provider:", toErrorMessage(error));
|
|
39
|
-
this.configured = false;
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
isConfigured() {
|
|
43
|
-
return this.configured;
|
|
44
|
-
}
|
|
45
|
-
async sendNotification(deviceToken, payload) {
|
|
46
|
-
if (!this.configured || !this.provider) {
|
|
47
|
-
throw new Error("APNs service not configured properly");
|
|
48
|
-
}
|
|
49
|
-
if (!deviceToken || !payload) {
|
|
50
|
-
throw new Error("Device token and payload are required");
|
|
51
|
-
}
|
|
52
|
-
const notification = new apn.Notification();
|
|
53
|
-
notification.alert = {
|
|
54
|
-
body: payload.body ?? payload.message ?? "",
|
|
55
|
-
title: payload.title,
|
|
56
|
-
...payload.subtitle ? { subtitle: payload.subtitle } : {}
|
|
57
|
-
};
|
|
58
|
-
notification.badge = payload.badge ?? 1;
|
|
59
|
-
notification.sound = payload.sound ?? "default";
|
|
60
|
-
if (!this.bundleId) {
|
|
61
|
-
throw new Error("APNs bundleId is required but was not configured");
|
|
62
|
-
}
|
|
63
|
-
notification.topic = this.bundleId;
|
|
64
|
-
if (payload.category) {
|
|
65
|
-
notification.aps.category = payload.category;
|
|
66
|
-
}
|
|
67
|
-
if (payload.data) {
|
|
68
|
-
notification.payload = payload.data;
|
|
69
|
-
}
|
|
70
|
-
const result = await this.provider.send(notification, deviceToken);
|
|
71
|
-
if (result.failed && result.failed.length > 0) {
|
|
72
|
-
console.error(`[apns] Full failed result: ${JSON.stringify(result.failed[0])}`);
|
|
73
|
-
const failedItem = result.failed[0];
|
|
74
|
-
const rawReason = failedItem?.response?.reason ?? failedItem?.status ?? failedItem?.error;
|
|
75
|
-
const reason = typeof rawReason === "string" ? rawReason : JSON.stringify(rawReason ?? failedItem);
|
|
76
|
-
console.error(`[apns] Delivery failed: ${reason}`);
|
|
77
|
-
return {
|
|
78
|
-
error: reason,
|
|
79
|
-
failed: result.failed?.length || 0,
|
|
80
|
-
sent: result.sent?.length || 0,
|
|
81
|
-
success: false
|
|
82
|
-
};
|
|
83
|
-
}
|
|
84
|
-
if (result.sent && result.sent.length > 0) {
|
|
85
|
-
return {
|
|
86
|
-
details: result.sent,
|
|
87
|
-
failed: 0,
|
|
88
|
-
sent: result.sent.length,
|
|
89
|
-
success: true
|
|
90
|
-
};
|
|
91
|
-
}
|
|
92
|
-
return {
|
|
93
|
-
details: [result],
|
|
94
|
-
error: "Unexpected result format",
|
|
95
|
-
failed: 1,
|
|
96
|
-
sent: 0,
|
|
97
|
-
success: false
|
|
98
|
-
};
|
|
99
|
-
}
|
|
100
|
-
shutdown() {
|
|
101
|
-
if (this.provider) {
|
|
102
|
-
void this.provider.shutdown();
|
|
103
|
-
}
|
|
104
|
-
}
|
|
105
|
-
}
|
|
106
|
-
|
|
107
|
-
export { LibraryAPNsService as L };
|
|
108
|
-
//# sourceMappingURL=library-apns-CUDtjHQk.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"library-apns-CUDtjHQk.js","sources":["../../../.svelte-kit/adapter-node/chunks/library-apns.js"],"sourcesContent":["import { b as private_env } from \"./shared-server.js\";\nimport apn from \"@parse/node-apn\";\nimport { t as toErrorMessage } from \"./error.js\";\nclass LibraryAPNsService {\n bundleId;\n configured = false;\n keyId;\n privateKey;\n provider = null;\n teamId;\n constructor() {\n this.keyId = private_env.APNS_KEY_ID;\n this.teamId = private_env.APNS_TEAM_ID;\n this.bundleId = private_env.APNS_BUNDLE_ID;\n this.privateKey = private_env.APNS_KEY;\n if (!this.keyId || !this.teamId || !this.bundleId || !this.privateKey) {\n console.error(\n \"[apns] Missing required configuration (APNS_KEY_ID, APNS_TEAM_ID, APNS_BUNDLE_ID, or APNS_KEY)\"\n );\n this.configured = false;\n return;\n }\n const production = private_env.APNS_PRODUCTION === \"true\";\n const options = {\n production,\n token: {\n key: this.privateKey,\n keyId: this.keyId,\n teamId: this.teamId\n }\n };\n try {\n this.provider = new apn.Provider(options);\n this.configured = true;\n console.log(`[apns] Provider initialized (${production ? \"production\" : \"sandbox\"} mode)`);\n } catch (error) {\n console.error(\"[apns] Failed to create provider:\", toErrorMessage(error));\n this.configured = false;\n }\n }\n isConfigured() {\n return this.configured;\n }\n async sendNotification(deviceToken, payload) {\n if (!this.configured || !this.provider) {\n throw new Error(\"APNs service not configured properly\");\n }\n if (!deviceToken || !payload) {\n throw new Error(\"Device token and payload are required\");\n }\n const notification = new apn.Notification();\n notification.alert = {\n body: payload.body ?? payload.message ?? \"\",\n title: payload.title,\n ...payload.subtitle ? { subtitle: payload.subtitle } : {}\n };\n notification.badge = payload.badge ?? 1;\n notification.sound = payload.sound ?? \"default\";\n if (!this.bundleId) {\n throw new Error(\"APNs bundleId is required but was not configured\");\n }\n notification.topic = this.bundleId;\n if (payload.category) {\n notification.aps.category = payload.category;\n }\n if (payload.data) {\n notification.payload = payload.data;\n }\n const result = await this.provider.send(notification, deviceToken);\n if (result.failed && result.failed.length > 0) {\n console.error(`[apns] Full failed result: ${JSON.stringify(result.failed[0])}`);\n const failedItem = result.failed[0];\n const rawReason = failedItem?.response?.reason ?? failedItem?.status ?? failedItem?.error;\n const reason = typeof rawReason === \"string\" ? rawReason : JSON.stringify(rawReason ?? failedItem);\n console.error(`[apns] Delivery failed: ${reason}`);\n return {\n error: reason,\n failed: result.failed?.length || 0,\n sent: result.sent?.length || 0,\n success: false\n };\n }\n if (result.sent && result.sent.length > 0) {\n return {\n details: result.sent,\n failed: 0,\n sent: result.sent.length,\n success: true\n };\n }\n return {\n details: [result],\n error: \"Unexpected result format\",\n failed: 1,\n sent: 0,\n success: false\n };\n }\n shutdown() {\n if (this.provider) {\n void this.provider.shutdown();\n }\n }\n}\nexport {\n LibraryAPNsService as L\n};\n"],"names":[],"mappings":"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"}
|