@mathrunet/masamune 3.1.1 → 3.2.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.
@@ -0,0 +1,9 @@
1
+ {
2
+ "permissions": {
3
+ "allow": [
4
+ "WebFetch(domain:github.com)",
5
+ "WebFetch(domain:pub.dev)"
6
+ ],
7
+ "deny": []
8
+ }
9
+ }
package/CHANGELOG.md CHANGED
@@ -1,3 +1,12 @@
1
+ # [3.2.0](https://github.com/mathrunet/node_masamune/compare/v3.1.1...v3.2.0) (2025-08-19)
2
+
3
+
4
+ ### feat
5
+
6
+ * Supports iOS StoreKit 2 validation. ([62450c5](https://github.com/mathrunet/node_masamune/commit/62450c566e33f97b0112bb55b1e3f34ea0d3a25e))
7
+
8
+
9
+
1
10
  ## [3.1.1](https://github.com/mathrunet/node_masamune/compare/v3.1.0...v3.1.1) (2025-08-14)
2
11
 
3
12
 
@@ -4,23 +4,70 @@
4
4
  * IOSの受信確認を実行します。
5
5
  *
6
6
  * @param {String} receiptData
7
- * Receipt data for purchases.
7
+ * Receipt data for purchases (for StoreKit1) or JWT token (for StoreKit2).
8
8
  *
9
- * 購入の際のレシートデータ。
9
+ * 購入の際のレシートデータ(StoreKit1の場合)またはJWTトークン(StoreKit2の場合)。
10
10
  *
11
11
  * @param {String} password
12
- * SharedSecret for AppStore, obtained from [Apps]->[App Info]->[Shared Secret for App] in the AppStore.
12
+ * SharedSecret for AppStore (for StoreKit1), obtained from [Apps]->[App Info]->[Shared Secret for App] in the AppStore.
13
+ * For StoreKit2, this can be an empty string.
13
14
  *
14
- * AppStoreのSharedSecretAppStoreの[アプリ]->[App情報]->[App用共有シークレット]から取得します。
15
+ * AppStoreのSharedSecret(StoreKit1の場合)。AppStoreの[アプリ]->[App情報]->[App用共有シークレット]から取得します。
16
+ * StoreKit2の場合は空文字列を渡すことができます。
17
+ *
18
+ * @param {Number} storeKitVersion
19
+ * StoreKit version (1 or 2). Defaults to 1.
20
+ *
21
+ * StoreKitのバージョン(1または2)。デフォルトは1。
22
+ *
23
+ * @param {String} transactionId
24
+ * Transaction ID (required for StoreKit2).
25
+ *
26
+ * トランザクションID(StoreKit2の場合は必須)。
15
27
  *
16
28
  * @return {Promise<{ [key: string]: any; }}
17
29
  * Receipt information for the item.
18
30
  *
19
31
  * アイテムの受領情報。
20
32
  */
21
- export declare function verifyIOS({ receiptData, password }: {
33
+ export declare function verifyIOS({ receiptData, password, storeKitVersion, transactionId }: {
22
34
  receiptData: string;
23
- password: string;
35
+ password?: string | null | undefined;
36
+ storeKitVersion?: number;
37
+ transactionId?: string | null | undefined;
24
38
  }): Promise<{
39
+ status: number;
40
+ environment: any;
41
+ receipt: {
42
+ bundle_id: any;
43
+ application_version: any;
44
+ in_app: {
45
+ quantity: any;
46
+ product_id: any;
47
+ transaction_id: any;
48
+ original_transaction_id: any;
49
+ purchase_date_ms: any;
50
+ original_purchase_date_ms: any;
51
+ expires_date_ms: any;
52
+ web_order_line_item_id: any;
53
+ is_trial_period: any;
54
+ is_in_intro_offer_period: any;
55
+ }[];
56
+ };
57
+ latest_receipt_info: {
58
+ quantity: any;
59
+ product_id: any;
60
+ transaction_id: any;
61
+ original_transaction_id: any;
62
+ purchase_date_ms: any;
63
+ original_purchase_date_ms: any;
64
+ expires_date_ms: any;
65
+ web_order_line_item_id: any;
66
+ is_trial_period: any;
67
+ is_in_intro_offer_period: any;
68
+ }[];
69
+ pending_renewal_info: never[];
70
+ decoded_payload: any;
71
+ } | {
25
72
  [key: string]: any;
26
73
  }>;
@@ -45,20 +45,33 @@ Object.defineProperty(exports, "__esModule", { value: true });
45
45
  exports.verifyIOS = verifyIOS;
46
46
  const functions = __importStar(require("firebase-functions/v2"));
47
47
  const api_1 = require("../api");
48
+ const jwt = __importStar(require("jsonwebtoken"));
48
49
  /**
49
50
  * Perform IOS receipt verification.
50
51
  *
51
52
  * IOSの受信確認を実行します。
52
53
  *
53
54
  * @param {String} receiptData
54
- * Receipt data for purchases.
55
+ * Receipt data for purchases (for StoreKit1) or JWT token (for StoreKit2).
55
56
  *
56
- * 購入の際のレシートデータ。
57
+ * 購入の際のレシートデータ(StoreKit1の場合)またはJWTトークン(StoreKit2の場合)。
57
58
  *
58
59
  * @param {String} password
59
- * SharedSecret for AppStore, obtained from [Apps]->[App Info]->[Shared Secret for App] in the AppStore.
60
+ * SharedSecret for AppStore (for StoreKit1), obtained from [Apps]->[App Info]->[Shared Secret for App] in the AppStore.
61
+ * For StoreKit2, this can be an empty string.
60
62
  *
61
- * AppStoreのSharedSecretAppStoreの[アプリ]->[App情報]->[App用共有シークレット]から取得します。
63
+ * AppStoreのSharedSecret(StoreKit1の場合)。AppStoreの[アプリ]->[App情報]->[App用共有シークレット]から取得します。
64
+ * StoreKit2の場合は空文字列を渡すことができます。
65
+ *
66
+ * @param {Number} storeKitVersion
67
+ * StoreKit version (1 or 2). Defaults to 1.
68
+ *
69
+ * StoreKitのバージョン(1または2)。デフォルトは1。
70
+ *
71
+ * @param {String} transactionId
72
+ * Transaction ID (required for StoreKit2).
73
+ *
74
+ * トランザクションID(StoreKit2の場合は必須)。
62
75
  *
63
76
  * @return {Promise<{ [key: string]: any; }}
64
77
  * Receipt information for the item.
@@ -66,7 +79,16 @@ const api_1 = require("../api");
66
79
  * アイテムの受領情報。
67
80
  */
68
81
  function verifyIOS(_a) {
69
- return __awaiter(this, arguments, void 0, function* ({ receiptData, password }) {
82
+ return __awaiter(this, arguments, void 0, function* ({ receiptData, password, storeKitVersion = 1, transactionId }) {
83
+ if (storeKitVersion === 2) {
84
+ if (!transactionId) {
85
+ throw new functions.https.HttpsError("invalid-argument", "Transaction ID is required for StoreKit2 verification.");
86
+ }
87
+ return yield verifyIOSStoreKit2({ jwtToken: receiptData, transactionId });
88
+ }
89
+ if (!password) {
90
+ throw new functions.https.HttpsError("invalid-argument", "Password is required for StoreKit1 verification.");
91
+ }
70
92
  let res = yield api_1.Api.post("https://buy.itunes.apple.com/verifyReceipt", {
71
93
  timeout: 30 * 1000,
72
94
  headers: {
@@ -116,4 +138,90 @@ function verifyIOS(_a) {
116
138
  return json;
117
139
  });
118
140
  }
141
+ /**
142
+ * Verify iOS StoreKit2 transaction.
143
+ *
144
+ * iOS StoreKit2のトランザクションを検証します。
145
+ *
146
+ * @param {String} jwtToken
147
+ * JWT token from StoreKit2.
148
+ *
149
+ * StoreKit2からのJWTトークン。
150
+ *
151
+ *
152
+ * @return {Promise<{ [key: string]: any; }}
153
+ * Transaction information.
154
+ *
155
+ * トランザクション情報。
156
+ */
157
+ function verifyIOSStoreKit2(_a) {
158
+ return __awaiter(this, arguments, void 0, function* ({ jwtToken, transactionId }) {
159
+ var _b, _c, _d, _e, _f, _g;
160
+ if (!jwtToken) {
161
+ throw new functions.https.HttpsError("invalid-argument", "JWT token is required for StoreKit2 verification.");
162
+ }
163
+ try {
164
+ const decodedHeader = jwt.decode(jwtToken, { complete: true });
165
+ if (!decodedHeader) {
166
+ throw new functions.https.HttpsError("invalid-argument", "Invalid JWT token.");
167
+ }
168
+ const algorithm = decodedHeader.header.alg;
169
+ // const keyId = decodedHeader.header.kid; // May be used for future certificate validation
170
+ const x5c = decodedHeader.header.x5c;
171
+ if (!x5c || !Array.isArray(x5c) || x5c.length === 0) {
172
+ throw new functions.https.HttpsError("invalid-argument", "Missing x5c certificate chain in JWT header.");
173
+ }
174
+ const certificate = `-----BEGIN CERTIFICATE-----\n${x5c[0]}\n-----END CERTIFICATE-----`;
175
+ const verifiedPayload = jwt.verify(jwtToken, certificate, {
176
+ algorithms: [algorithm]
177
+ });
178
+ if (transactionId && verifiedPayload.transactionId !== transactionId) {
179
+ throw new functions.https.HttpsError("permission-denied", "Transaction ID mismatch.");
180
+ }
181
+ const result = {
182
+ status: 0,
183
+ environment: verifiedPayload.environment || "Production",
184
+ receipt: {
185
+ bundle_id: verifiedPayload.bundleId,
186
+ application_version: verifiedPayload.appVersion,
187
+ in_app: [{
188
+ quantity: verifiedPayload.quantity || "1",
189
+ product_id: verifiedPayload.productId,
190
+ transaction_id: verifiedPayload.transactionId,
191
+ original_transaction_id: verifiedPayload.originalTransactionId,
192
+ purchase_date_ms: (_b = verifiedPayload.purchaseDate) === null || _b === void 0 ? void 0 : _b.toString(),
193
+ original_purchase_date_ms: (_c = verifiedPayload.originalPurchaseDate) === null || _c === void 0 ? void 0 : _c.toString(),
194
+ expires_date_ms: (_d = verifiedPayload.expiresDate) === null || _d === void 0 ? void 0 : _d.toString(),
195
+ web_order_line_item_id: verifiedPayload.webOrderLineItemId,
196
+ is_trial_period: verifiedPayload.isTrialPeriod || "false",
197
+ is_in_intro_offer_period: verifiedPayload.isInIntroOfferPeriod || "false"
198
+ }]
199
+ },
200
+ latest_receipt_info: [{
201
+ quantity: verifiedPayload.quantity || "1",
202
+ product_id: verifiedPayload.productId,
203
+ transaction_id: verifiedPayload.transactionId,
204
+ original_transaction_id: verifiedPayload.originalTransactionId,
205
+ purchase_date_ms: (_e = verifiedPayload.purchaseDate) === null || _e === void 0 ? void 0 : _e.toString(),
206
+ original_purchase_date_ms: (_f = verifiedPayload.originalPurchaseDate) === null || _f === void 0 ? void 0 : _f.toString(),
207
+ expires_date_ms: (_g = verifiedPayload.expiresDate) === null || _g === void 0 ? void 0 : _g.toString(),
208
+ web_order_line_item_id: verifiedPayload.webOrderLineItemId,
209
+ is_trial_period: verifiedPayload.isTrialPeriod || "false",
210
+ is_in_intro_offer_period: verifiedPayload.isInIntroOfferPeriod || "false"
211
+ }],
212
+ pending_renewal_info: [],
213
+ decoded_payload: verifiedPayload
214
+ };
215
+ console.log("StoreKit2 verification successful:", result);
216
+ return result;
217
+ }
218
+ catch (error) {
219
+ console.error("StoreKit2 verification error:", error);
220
+ if (error instanceof jwt.JsonWebTokenError) {
221
+ throw new functions.https.HttpsError("invalid-argument", "Invalid JWT token: " + error.message);
222
+ }
223
+ throw new functions.https.HttpsError("internal", "Failed to verify StoreKit2 transaction.");
224
+ }
225
+ });
226
+ }
119
227
  //# sourceMappingURL=verify_ios.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"verify_ios.js","sourceRoot":"","sources":["../../../src/lib/functions/verify_ios.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAuBA,8BAqDC;AA5ED,iEAAmD;AACnD,gCAA6B;AAE7B;;;;;;;;;;;;;;;;;;;GAmBG;AACH,SAAsB,SAAS;yDAAC,EAC5B,WAAW,EACX,QAAQ,EAIX;QACG,IAAI,GAAG,GAAG,MAAM,SAAG,CAAC,IAAI,CAAC,4CAA4C,EAAE;YACnE,OAAO,EAAE,EAAE,GAAG,IAAI;YAClB,OAAO,EAAE;gBACL,cAAc,EAAE,kBAAkB;gBAClC,QAAQ,EAAE,kBAAkB;aAC/B;YACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;gBACjB,cAAc,EAAE,WAAW;gBAC3B,UAAU,EAAE,QAAQ;gBACpB,0BAA0B,EAAE,IAAI;aACnC,CAAC;SACL,CAAC,CAAC;QACH,IAAI,CAAC,GAAG,EAAE,CAAC;YACP,MAAM,IAAI,SAAS,CAAC,KAAK,CAAC,UAAU,CAAC,WAAW,EAAE,+BAA+B,CAAC,CAAC;QACvF,CAAC;QACD,IAAI,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAA2B,CAAC;QACxD,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAClB,IAAI,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC5B,IAAI,MAAM,KAAK,KAAK,IAAI,MAAM,KAAK,KAAK,EAAE,CAAC;YACvC,GAAG,GAAG,MAAM,SAAG,CAAC,IAAI,CAAC,gDAAgD,EAAE;gBACnE,OAAO,EAAE,EAAE,GAAG,IAAI;gBAClB,OAAO,EAAE;oBACL,cAAc,EAAE,kBAAkB;oBAClC,QAAQ,EAAE,kBAAkB;iBAC/B;gBACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;oBACjB,cAAc,EAAE,WAAW;oBAC3B,UAAU,EAAE,QAAQ;oBACpB,0BAA0B,EAAE,IAAI;iBACnC,CAAC;aACL,CAAC,CAAC;YACH,IAAI,CAAC,GAAG,EAAE,CAAC;gBACP,MAAM,IAAI,SAAS,CAAC,KAAK,CAAC,UAAU,CAAC,WAAW,EAAE,+BAA+B,CAAC,CAAC;YACvF,CAAC;YACD,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAA2B,CAAC;YACpD,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAClB,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC;YACxB,IAAI,MAAM,KAAK,CAAC,EAAE,CAAC;gBACf,MAAM,IAAI,SAAS,CAAC,KAAK,CAAC,UAAU,CAAC,WAAW,EAAE,kBAAkB,CAAC,CAAC;YAC1E,CAAC;QACL,CAAC;aAAM,CAAC;YACJ,IAAI,MAAM,KAAK,CAAC,EAAE,CAAC;gBACf,MAAM,IAAI,SAAS,CAAC,KAAK,CAAC,UAAU,CAAC,WAAW,EAAE,kBAAkB,CAAC,CAAC;YAC1E,CAAC;QACL,CAAC;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;CAAA"}
1
+ {"version":3,"file":"verify_ios.js","sourceRoot":"","sources":["../../../src/lib/functions/verify_ios.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mathrunet/masamune",
3
- "version": "3.1.1",
3
+ "version": "3.2.0",
4
4
  "description": "Manages packages for the server portion (NodeJS) of the Masamune framework.",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",