@mathrunet/masamune 1.10.4 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +9 -0
- package/dist/functions/agora_cloud_recording.js +48 -38
- package/dist/functions/agora_cloud_recording.js.map +1 -1
- package/dist/functions/agora_token.js +40 -30
- package/dist/functions/agora_token.js.map +1 -1
- package/dist/functions/android_auth_code.js +25 -15
- package/dist/functions/android_auth_code.js.map +1 -1
- package/dist/functions/android_token.js +46 -34
- package/dist/functions/android_token.js.map +1 -1
- package/dist/functions/consumable_verify_android.js +45 -35
- package/dist/functions/consumable_verify_android.js.map +1 -1
- package/dist/functions/consumable_verify_ios.js +39 -29
- package/dist/functions/consumable_verify_ios.js.map +1 -1
- package/dist/functions/geocoding.js +29 -19
- package/dist/functions/geocoding.js.map +1 -1
- package/dist/functions/gmail.js +36 -26
- package/dist/functions/gmail.js.map +1 -1
- package/dist/functions/nonconsumable_verify_android.js +44 -34
- package/dist/functions/nonconsumable_verify_android.js.map +1 -1
- package/dist/functions/nonconsumable_verify_ios.js +38 -28
- package/dist/functions/nonconsumable_verify_ios.js.map +1 -1
- package/dist/functions/openai_chat_gpt.js +39 -29
- package/dist/functions/openai_chat_gpt.js.map +1 -1
- package/dist/functions/purchase_webhook_android.js +26 -18
- package/dist/functions/purchase_webhook_android.js.map +1 -1
- package/dist/functions/purchase_webhook_ios.js +92 -78
- package/dist/functions/purchase_webhook_ios.js.map +1 -1
- package/dist/functions/scheduler.js +15 -9
- package/dist/functions/scheduler.js.map +1 -1
- package/dist/functions/send_grid.js +35 -25
- package/dist/functions/send_grid.js.map +1 -1
- package/dist/functions/send_notification.js +37 -24
- package/dist/functions/send_notification.js.map +1 -1
- package/dist/functions/stripe.js +866 -858
- package/dist/functions/stripe.js.map +1 -1
- package/dist/functions/stripe_webhook.js +370 -363
- package/dist/functions/stripe_webhook.js.map +1 -1
- package/dist/functions/stripe_webhook_connect.js +72 -63
- package/dist/functions/stripe_webhook_connect.js.map +1 -1
- package/dist/functions/stripe_webhook_secure.js +72 -63
- package/dist/functions/stripe_webhook_secure.js.map +1 -1
- package/dist/functions/subscription_verify_android.js +61 -52
- package/dist/functions/subscription_verify_android.js.map +1 -1
- package/dist/functions/subscription_verify_ios.js +59 -50
- package/dist/functions/subscription_verify_ios.js.map +1 -1
- package/dist/functions.d.ts +22 -68
- package/dist/functions.js +22 -22
- package/dist/functions.js.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/lib/call_process_function_base.d.ts +2 -15
- package/dist/lib/call_process_function_base.js +13 -13
- package/dist/lib/call_process_function_base.js.map +1 -1
- package/dist/lib/functions_base.d.ts +97 -9
- package/dist/lib/functions_base.js +10 -7
- package/dist/lib/functions_base.js.map +1 -1
- package/dist/lib/functions_data.d.ts +2 -36
- package/dist/lib/functions_data.js +2 -29
- package/dist/lib/functions_data.js.map +1 -1
- package/dist/lib/gmail.d.ts +2 -2
- package/dist/lib/gmail.js +4 -29
- package/dist/lib/gmail.js.map +1 -1
- package/dist/lib/request_process_function_base.d.ts +4 -16
- package/dist/lib/request_process_function_base.js +13 -13
- package/dist/lib/request_process_function_base.js.map +1 -1
- package/dist/lib/schedule_process_function_base.d.ts +13 -11
- package/dist/lib/schedule_process_function_base.js +15 -9
- package/dist/lib/schedule_process_function_base.js.map +1 -1
- package/dist/lib/send_grid.d.ts +1 -1
- package/dist/lib/send_grid.js +3 -27
- package/dist/lib/send_grid.js.map +1 -1
- package/dist/lib/send_notification.js +1 -1
- package/dist/lib/send_notification.js.map +1 -1
- package/dist/lib/verify_android.js +1 -1
- package/dist/lib/verify_android.js.map +1 -1
- package/dist/lib/verify_ios.js +1 -1
- package/dist/lib/verify_ios.js.map +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,12 @@
|
|
|
1
|
+
# [2.0.0](https://github.com/mathrunet/node_masamune/compare/v1.10.4...v2.0.0) (2024-01-15)
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
### feat
|
|
5
|
+
|
|
6
|
+
* Compatible with FirebaseFunctionsV2. ([df2cc6d](https://github.com/mathrunet/node_masamune/commit/df2cc6d050fe249781fe42afb5633e6d39b32f74))
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
|
|
1
10
|
## [1.10.4](https://github.com/mathrunet/node_masamune/compare/v1.10.3...v1.10.4) (2024-01-03)
|
|
2
11
|
|
|
3
12
|
|
|
@@ -32,7 +32,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
32
32
|
});
|
|
33
33
|
};
|
|
34
34
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
35
|
-
const functions = __importStar(require("firebase-functions"));
|
|
35
|
+
const functions = __importStar(require("firebase-functions/v2"));
|
|
36
36
|
const admin = __importStar(require("firebase-admin"));
|
|
37
37
|
/**
|
|
38
38
|
* Convert files generated by Agora.io's cloud recording into an easy-to-handle format from within the app.
|
|
@@ -43,62 +43,72 @@ const admin = __importStar(require("firebase-admin"));
|
|
|
43
43
|
*
|
|
44
44
|
* FirebaseStorageにファイルが保存されたタイミングで実行されます。
|
|
45
45
|
*/
|
|
46
|
-
module.exports = (regions,
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
46
|
+
module.exports = (regions, options, data) => {
|
|
47
|
+
var _a;
|
|
48
|
+
return functions.storage.onObjectFinalized({
|
|
49
|
+
region: regions[0],
|
|
50
|
+
timeoutSeconds: options.timeoutSeconds,
|
|
51
|
+
memory: options.memory,
|
|
52
|
+
minInstances: options.minInstances,
|
|
53
|
+
concurrency: options.concurrency,
|
|
54
|
+
maxInstances: (_a = options.maxInstances) !== null && _a !== void 0 ? _a : undefined,
|
|
55
|
+
}, (object) => __awaiter(void 0, void 0, void 0, function* () {
|
|
56
|
+
try {
|
|
57
|
+
const source = object.data.name;
|
|
58
|
+
if (!source) {
|
|
58
59
|
return;
|
|
59
60
|
}
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
yield bucket.file(target).makePublic();
|
|
65
|
-
}
|
|
66
|
-
else {
|
|
67
|
-
const targetM3U8 = source.toString().match(/([a-z0-9A-Z]+)_([a-z0-9A-Z]+).m3u8/);
|
|
68
|
-
if (targetM3U8) {
|
|
69
|
-
const target = targetM3U8[2] + ".m3u8";
|
|
61
|
+
const bucket = admin.storage().bucket(object.bucket);
|
|
62
|
+
const targetScreenShot = source.toString().match(/([a-z0-9A-Z]+)_([a-z0-9A-Z]+)__uid_s_([0-9]+)__uid_e_video_([0-9]+).jp(e)?g/);
|
|
63
|
+
if (targetScreenShot) {
|
|
64
|
+
const target = targetScreenShot[2] + ".jpg";
|
|
70
65
|
if (target == source.toString()) {
|
|
71
|
-
console.log("
|
|
66
|
+
console.log("Jpeg file is not replaced.");
|
|
72
67
|
return;
|
|
73
68
|
}
|
|
74
69
|
yield bucket.file(source).copy(target, {
|
|
75
|
-
|
|
76
|
-
contentType: "application/x-mpegURL",
|
|
70
|
+
contentType: "image/jpeg",
|
|
77
71
|
});
|
|
78
72
|
yield bucket.file(source).delete();
|
|
79
73
|
yield bucket.file(target).makePublic();
|
|
80
74
|
}
|
|
81
75
|
else {
|
|
82
|
-
const
|
|
83
|
-
if (
|
|
84
|
-
const target =
|
|
76
|
+
const targetM3U8 = source.toString().match(/([a-z0-9A-Z]+)_([a-z0-9A-Z]+).m3u8/);
|
|
77
|
+
if (targetM3U8) {
|
|
78
|
+
const target = targetM3U8[2] + ".m3u8";
|
|
85
79
|
if (target == source.toString()) {
|
|
86
|
-
console.log("
|
|
80
|
+
console.log("M3U8 file is not replaced.");
|
|
87
81
|
return;
|
|
88
82
|
}
|
|
89
|
-
console.log("Ts file is replaced.");
|
|
90
83
|
yield bucket.file(source).copy(target, {
|
|
91
|
-
|
|
84
|
+
cacheControl: "no-cache",
|
|
85
|
+
contentType: "application/x-mpegURL",
|
|
92
86
|
});
|
|
93
87
|
yield bucket.file(source).delete();
|
|
94
88
|
yield bucket.file(target).makePublic();
|
|
95
89
|
}
|
|
90
|
+
else {
|
|
91
|
+
const targetTS = source.toString().match(/([a-z0-9A-Z]+)_([a-z0-9A-Z]+)_([a-z0-9A-Z]+).ts/);
|
|
92
|
+
if (targetTS) {
|
|
93
|
+
const target = targetTS[0];
|
|
94
|
+
if (target == source.toString()) {
|
|
95
|
+
console.log("Ts file is not replaced.");
|
|
96
|
+
return;
|
|
97
|
+
}
|
|
98
|
+
console.log("Ts file is replaced.");
|
|
99
|
+
yield bucket.file(source).copy(target, {
|
|
100
|
+
contentType: "video/MP2T",
|
|
101
|
+
});
|
|
102
|
+
yield bucket.file(source).delete();
|
|
103
|
+
yield bucket.file(target).makePublic();
|
|
104
|
+
}
|
|
105
|
+
}
|
|
96
106
|
}
|
|
97
107
|
}
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
}
|
|
103
|
-
}
|
|
108
|
+
catch (err) {
|
|
109
|
+
console.error(err);
|
|
110
|
+
throw err;
|
|
111
|
+
}
|
|
112
|
+
}));
|
|
113
|
+
};
|
|
104
114
|
//# sourceMappingURL=agora_cloud_recording.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agora_cloud_recording.js","sourceRoot":"","sources":["../../src/functions/agora_cloud_recording.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"agora_cloud_recording.js","sourceRoot":"","sources":["../../src/functions/agora_cloud_recording.ts"],"names":[],"mappings":"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"}
|
|
@@ -32,14 +32,14 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
32
32
|
});
|
|
33
33
|
};
|
|
34
34
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
35
|
-
const functions = __importStar(require("firebase-functions"));
|
|
35
|
+
const functions = __importStar(require("firebase-functions/v2"));
|
|
36
36
|
const agora_token_1 = require("agora-token");
|
|
37
37
|
/**
|
|
38
38
|
* Obtain an Agora.io security token.
|
|
39
39
|
*
|
|
40
40
|
* Agora.ioのセキュリティトークンを取得します。
|
|
41
41
|
*
|
|
42
|
-
* @param
|
|
42
|
+
* @param process.env.AGORA_APPID
|
|
43
43
|
* AppID for Agora.
|
|
44
44
|
* Log in to the following URL and create a project.
|
|
45
45
|
* After the project is created, the AppID can be copied.
|
|
@@ -50,7 +50,7 @@ const agora_token_1 = require("agora-token");
|
|
|
50
50
|
*
|
|
51
51
|
* https://console.agora.io/projects
|
|
52
52
|
*
|
|
53
|
-
* @param
|
|
53
|
+
* @param process.env.AGORA_APPCERTIFICATE
|
|
54
54
|
* AppCertificate for Agora.
|
|
55
55
|
* You can obtain the certificate after entering the project you created and activating it in Security -> App certificate.
|
|
56
56
|
*
|
|
@@ -74,33 +74,43 @@ const agora_token_1 = require("agora-token");
|
|
|
74
74
|
*
|
|
75
75
|
* 役割。"audience"か"broadcaster"が指定できます。
|
|
76
76
|
*/
|
|
77
|
-
module.exports = (regions,
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
77
|
+
module.exports = (regions, options, data) => {
|
|
78
|
+
var _a;
|
|
79
|
+
return functions.https.onCall({
|
|
80
|
+
region: regions,
|
|
81
|
+
timeoutSeconds: options.timeoutSeconds,
|
|
82
|
+
memory: options.memory,
|
|
83
|
+
minInstances: options.minInstances,
|
|
84
|
+
concurrency: options.concurrency,
|
|
85
|
+
maxInstances: (_a = options.maxInstances) !== null && _a !== void 0 ? _a : undefined,
|
|
86
|
+
}, (query) => __awaiter(void 0, void 0, void 0, function* () {
|
|
87
|
+
var _b, _c;
|
|
88
|
+
try {
|
|
89
|
+
const appId = (_b = process.env.AGORA_APPID) !== null && _b !== void 0 ? _b : "";
|
|
90
|
+
const appCertificate = (_c = process.env.AGORA_APPCERTIFICATE) !== null && _c !== void 0 ? _c : "";
|
|
91
|
+
const expirationTimeInSeconds = 3600;
|
|
92
|
+
let role = agora_token_1.RtcRole.PUBLISHER;
|
|
93
|
+
if (query.data.role === "audience") {
|
|
94
|
+
role = agora_token_1.RtcRole.SUBSCRIBER;
|
|
95
|
+
}
|
|
96
|
+
const channelName = query.data.name;
|
|
97
|
+
let uid = 0;
|
|
98
|
+
if (query.data.uid) {
|
|
99
|
+
uid = query.data.uid;
|
|
100
|
+
}
|
|
101
|
+
if (!channelName) {
|
|
102
|
+
throw new functions.https.HttpsError("invalid-argument", "Channel is invalid.");
|
|
103
|
+
}
|
|
104
|
+
const token = agora_token_1.RtcTokenBuilder.buildTokenWithUid(appId, appCertificate, channelName, uid, role, expirationTimeInSeconds, expirationTimeInSeconds);
|
|
105
|
+
return {
|
|
106
|
+
channel: channelName,
|
|
107
|
+
token: token,
|
|
108
|
+
};
|
|
86
109
|
}
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
uid = query.uid;
|
|
110
|
+
catch (err) {
|
|
111
|
+
console.error(err);
|
|
112
|
+
throw err;
|
|
91
113
|
}
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
}
|
|
95
|
-
const token = agora_token_1.RtcTokenBuilder.buildTokenWithUid(appId, appCertificate, channelName, uid, role, expirationTimeInSeconds, expirationTimeInSeconds);
|
|
96
|
-
return {
|
|
97
|
-
channel: channelName,
|
|
98
|
-
token: token,
|
|
99
|
-
};
|
|
100
|
-
}
|
|
101
|
-
catch (err) {
|
|
102
|
-
console.error(err);
|
|
103
|
-
throw err;
|
|
104
|
-
}
|
|
105
|
-
}));
|
|
114
|
+
}));
|
|
115
|
+
};
|
|
106
116
|
//# sourceMappingURL=agora_token.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agora_token.js","sourceRoot":"","sources":["../../src/functions/agora_token.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"agora_token.js","sourceRoot":"","sources":["../../src/functions/agora_token.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,iEAAmD;AACnD,6CAAuD;AAGvD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AACH,MAAM,CAAC,OAAO,GAAG,CACb,OAAiB,EACjB,OAAyB,EACzB,IAA+B,EACjC,EAAE;;IAAC,OAAA,SAAS,CAAC,KAAK,CAAC,MAAM,CACvB;QACI,MAAM,EAAE,OAAO;QACf,cAAc,EAAE,OAAO,CAAC,cAAc;QACtC,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,YAAY,EAAE,OAAO,CAAC,YAAY;QAClC,WAAW,EAAE,OAAO,CAAC,WAAW;QAChC,YAAY,EAAE,MAAA,OAAO,CAAC,YAAY,mCAAI,SAAS;KAClD,EACD,CAAO,KAAK,EAAE,EAAE;;QACZ,IAAI;YACA,MAAM,KAAK,GAAG,MAAA,OAAO,CAAC,GAAG,CAAC,WAAW,mCAAI,EAAE,CAAC;YAC5C,MAAM,cAAc,GAAG,MAAA,OAAO,CAAC,GAAG,CAAC,oBAAoB,mCAAI,EAAE,CAAC;YAC9D,MAAM,uBAAuB,GAAG,IAAI,CAAC;YACrC,IAAI,IAAI,GAAG,qBAAO,CAAC,SAAS,CAAC;YAC7B,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,KAAK,UAAU,EAAE;gBAChC,IAAI,GAAG,qBAAO,CAAC,UAAU,CAAC;aAC7B;YACD,MAAM,WAAW,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;YACpC,IAAI,GAAG,GAAG,CAAC,CAAC;YACZ,IAAI,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE;gBAChB,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC;aACxB;YACD,IAAI,CAAC,WAAW,EAAE;gBACd,MAAM,IAAI,SAAS,CAAC,KAAK,CAAC,UAAU,CAAC,kBAAkB,EAAE,qBAAqB,CAAC,CAAC;aACnF;YACD,MAAM,KAAK,GAAG,6BAAe,CAAC,iBAAiB,CAC3C,KAAK,EACL,cAAc,EACd,WAAW,EACX,GAAG,EACH,IAAI,EACJ,uBAAuB,EACvB,uBAAuB,CAC1B,CAAC;YACF,OAAO;gBACH,OAAO,EAAE,WAAW;gBACpB,KAAK,EAAE,KAAK;aACf,CAAC;SACL;QAAC,OAAO,GAAG,EAAE;YACV,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACnB,MAAM,GAAG,CAAC;SACb;IACL,CAAC,CAAA,CACJ,CAAA;CAAA,CAAC"}
|
|
@@ -32,7 +32,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
32
32
|
});
|
|
33
33
|
};
|
|
34
34
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
35
|
-
const functions = __importStar(require("firebase-functions"));
|
|
35
|
+
const functions = __importStar(require("firebase-functions/v2"));
|
|
36
36
|
/**
|
|
37
37
|
* After being redirected from [android_auth_code], you will get a refresh token to connect to Google's API.
|
|
38
38
|
* Please execute [android_auth_code] after registering the required information.
|
|
@@ -40,14 +40,14 @@ const functions = __importStar(require("firebase-functions"));
|
|
|
40
40
|
* [android_auth_code]からリダイレクトされた後、GoogleのAPIに接続するためのリフレッシュトークンを取得します。
|
|
41
41
|
* 必要情報を登録した後[android_auth_code]を実行してください。
|
|
42
42
|
*
|
|
43
|
-
* @param
|
|
43
|
+
* @param process.env.PURCHASE_ANDROID_REDIRECTURI
|
|
44
44
|
* Describe the absolute URL where [android_token] exists.
|
|
45
45
|
* You will be redirected to this URL to obtain a refresh token.
|
|
46
46
|
*
|
|
47
47
|
* [android_token]が存在する絶対URLを記述します。
|
|
48
48
|
* このURLにリダイレクトされリフレッシュトークンを取得できます。
|
|
49
49
|
*
|
|
50
|
-
* @param
|
|
50
|
+
* @param process.env.PURCHASE_ANDROID_CLIENTID
|
|
51
51
|
* Google's OAuth 2.0 client ID.
|
|
52
52
|
* Create an OAuth consent screen from the URL below.
|
|
53
53
|
* https://console.cloud.google.com/apis/credentials/consent
|
|
@@ -60,17 +60,27 @@ const functions = __importStar(require("firebase-functions"));
|
|
|
60
60
|
* その後、認証情報からOAuth 2.0 クライアントIDを作成します。
|
|
61
61
|
* https://console.cloud.google.com/apis/credentials
|
|
62
62
|
*/
|
|
63
|
-
module.exports = (regions,
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
63
|
+
module.exports = (regions, options, data) => {
|
|
64
|
+
var _a;
|
|
65
|
+
return functions.https.onRequest({
|
|
66
|
+
region: regions,
|
|
67
|
+
timeoutSeconds: options.timeoutSeconds,
|
|
68
|
+
memory: options.memory,
|
|
69
|
+
minInstances: options.minInstances,
|
|
70
|
+
concurrency: options.concurrency,
|
|
71
|
+
maxInstances: (_a = options.maxInstances) !== null && _a !== void 0 ? _a : undefined,
|
|
72
|
+
}, (req, res) => __awaiter(void 0, void 0, void 0, function* () {
|
|
73
|
+
try {
|
|
74
|
+
const redirectUri = process.env.PURCHASE_ANDROID_REDIRECTURI;
|
|
75
|
+
if (!req.query.id || !redirectUri) {
|
|
76
|
+
throw new functions.https.HttpsError("invalid-argument", "Query parameter is invalid.");
|
|
77
|
+
}
|
|
78
|
+
res.redirect(`https://accounts.google.com/o/oauth2/auth?response_type=code&client_id=${req.query.id}&redirect_uri=${redirectUri}&scope=https://www.googleapis.com/auth/androidpublisher&access_type=offline&approval_prompt=force`);
|
|
68
79
|
}
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
}));
|
|
80
|
+
catch (err) {
|
|
81
|
+
console.error(err);
|
|
82
|
+
res.end();
|
|
83
|
+
}
|
|
84
|
+
}));
|
|
85
|
+
};
|
|
76
86
|
//# sourceMappingURL=android_auth_code.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"android_auth_code.js","sourceRoot":"","sources":["../../src/functions/android_auth_code.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"android_auth_code.js","sourceRoot":"","sources":["../../src/functions/android_auth_code.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,iEAAmD;AAGnD;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,MAAM,CAAC,OAAO,GAAG,CACb,OAAiB,EACjB,OAAyB,EACzB,IAA+B,EACjC,EAAE;;IAAC,OAAA,SAAS,CAAC,KAAK,CAAC,SAAS,CAC1B;QACI,MAAM,EAAE,OAAO;QACf,cAAc,EAAE,OAAO,CAAC,cAAc;QACtC,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,YAAY,EAAE,OAAO,CAAC,YAAY;QAClC,WAAW,EAAE,OAAO,CAAC,WAAW;QAChC,YAAY,EAAE,MAAA,OAAO,CAAC,YAAY,mCAAI,SAAS;KAClD,EACD,CAAO,GAAG,EAAE,GAAG,EAAE,EAAE;QACf,IAAI;YACA,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,4BAA4B,CAAC;YAC7D,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,WAAW,EAAE;gBAC/B,MAAM,IAAI,SAAS,CAAC,KAAK,CAAC,UAAU,CAAC,kBAAkB,EAAE,6BAA6B,CAAC,CAAC;aAC3F;YACD,GAAG,CAAC,QAAQ,CACR,0EAA0E,GAAG,CAAC,KAAK,CAAC,EAAE,iBAAiB,WAAW,mGAAmG,CACxN,CAAC;SACL;QAAC,OAAO,GAAG,EAAE;YACV,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACnB,GAAG,CAAC,GAAG,EAAE,CAAC;SACb;IACL,CAAC,CAAA,CACJ,CAAA;CAAA,CAAC"}
|
|
@@ -32,7 +32,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
32
32
|
});
|
|
33
33
|
};
|
|
34
34
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
35
|
-
const functions = __importStar(require("firebase-functions"));
|
|
35
|
+
const functions = __importStar(require("firebase-functions/v2"));
|
|
36
36
|
const api_1 = require("../lib/api");
|
|
37
37
|
/**
|
|
38
38
|
* After being redirected from [android_auth_code], you will get a refresh token to connect to Google's API.
|
|
@@ -41,14 +41,14 @@ const api_1 = require("../lib/api");
|
|
|
41
41
|
* [android_auth_code]からリダイレクトされた後、GoogleのAPIに接続するためのリフレッシュトークンを取得します。
|
|
42
42
|
* 必要情報を登録した後[android_auth_code]を実行してください。
|
|
43
43
|
*
|
|
44
|
-
* @param
|
|
44
|
+
* @param process.env.PURCHASE_ANDROID_REDIRECTURI
|
|
45
45
|
* Describe the absolute URL where [android_token] exists.
|
|
46
46
|
* You will be redirected to this URL to obtain a refresh token.
|
|
47
47
|
*
|
|
48
48
|
* [android_token]が存在する絶対URLを記述します。
|
|
49
49
|
* このURLにリダイレクトされリフレッシュトークンを取得できます。
|
|
50
50
|
*
|
|
51
|
-
* @param
|
|
51
|
+
* @param process.env.PURCHASE_ANDROID_CLIENTID
|
|
52
52
|
* Google's OAuth 2.0 client ID.
|
|
53
53
|
* Create an OAuth consent screen from the URL below.
|
|
54
54
|
* https://console.cloud.google.com/apis/credentials/consent
|
|
@@ -61,7 +61,7 @@ const api_1 = require("../lib/api");
|
|
|
61
61
|
* その後、認証情報からOAuth 2.0 クライアントIDを作成します。
|
|
62
62
|
* https://console.cloud.google.com/apis/credentials
|
|
63
63
|
*
|
|
64
|
-
* @param
|
|
64
|
+
* @param process.env.PURCHASE_ANDROID_CLIENTSECRET
|
|
65
65
|
* Google's OAuth 2.0 client secret.
|
|
66
66
|
* Create an OAuth consent screen from the URL below.
|
|
67
67
|
* https://console.cloud.google.com/apis/credentials/consent
|
|
@@ -74,36 +74,48 @@ const api_1 = require("../lib/api");
|
|
|
74
74
|
* その後、認証情報からOAuth 2.0 クライアントIDを作成します。
|
|
75
75
|
* https://console.cloud.google.com/apis/credentials
|
|
76
76
|
*/
|
|
77
|
-
module.exports = (regions,
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
77
|
+
module.exports = (regions, options, data) => {
|
|
78
|
+
var _a;
|
|
79
|
+
return functions.https.onRequest({
|
|
80
|
+
region: regions,
|
|
81
|
+
timeoutSeconds: options.timeoutSeconds,
|
|
82
|
+
memory: options.memory,
|
|
83
|
+
minInstances: options.minInstances,
|
|
84
|
+
concurrency: options.concurrency,
|
|
85
|
+
maxInstances: (_a = options.maxInstances) !== null && _a !== void 0 ? _a : undefined,
|
|
86
|
+
}, (req, res) => __awaiter(void 0, void 0, void 0, function* () {
|
|
87
|
+
try {
|
|
88
|
+
const redirectUri = process.env.PURCHASE_ANDROID_REDIRECTURI;
|
|
89
|
+
const clientId = process.env.PURCHASE_ANDROID_CLIENTID;
|
|
90
|
+
const clientSecret = process.env.PURCHASE_ANDROID_CLIENTSECRET;
|
|
91
|
+
if (!req.query.code || !clientId || !clientSecret || !redirectUri) {
|
|
92
|
+
throw new functions.https.HttpsError("invalid-argument", "Query parameter is invalid.");
|
|
93
|
+
}
|
|
94
|
+
const resp = yield api_1.Api.post("https://accounts.google.com/o/oauth2/token", {
|
|
95
|
+
timeout: 30 * 1000,
|
|
96
|
+
data: {
|
|
97
|
+
"grant_type": "authorization_code",
|
|
98
|
+
"client_id": clientId,
|
|
99
|
+
"client_secret": clientSecret,
|
|
100
|
+
"redirect_uri": redirectUri,
|
|
101
|
+
"access_type": "offline",
|
|
102
|
+
"code": req.query.code,
|
|
103
|
+
},
|
|
104
|
+
});
|
|
105
|
+
if (!resp) {
|
|
106
|
+
throw new functions.https.HttpsError("data-loss", "Cannot get access token.");
|
|
107
|
+
}
|
|
108
|
+
const json = (yield resp.json());
|
|
109
|
+
if (json === null) {
|
|
110
|
+
throw new functions.https.HttpsError("data-loss", "Cannot get access token.");
|
|
111
|
+
}
|
|
112
|
+
console.log(json);
|
|
113
|
+
res.send(`RefreshToken:${json["refresh_token"]}`);
|
|
82
114
|
}
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
"grant_type": "authorization_code",
|
|
87
|
-
"client_id": config.android.client_id,
|
|
88
|
-
"client_secret": config.android.client_secret,
|
|
89
|
-
"redirect_uri": config.android.redirect_uri,
|
|
90
|
-
"access_type": "offline",
|
|
91
|
-
"code": req.query.code,
|
|
92
|
-
},
|
|
93
|
-
});
|
|
94
|
-
if (!resp) {
|
|
95
|
-
throw new functions.https.HttpsError("data-loss", "Cannot get access token.");
|
|
115
|
+
catch (err) {
|
|
116
|
+
console.error(err);
|
|
117
|
+
res.end();
|
|
96
118
|
}
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
throw new functions.https.HttpsError("data-loss", "Cannot get access token.");
|
|
100
|
-
}
|
|
101
|
-
console.log(json);
|
|
102
|
-
res.send(`RefreshToken:${json["refresh_token"]}`);
|
|
103
|
-
}
|
|
104
|
-
catch (err) {
|
|
105
|
-
console.error(err);
|
|
106
|
-
res.end();
|
|
107
|
-
}
|
|
108
|
-
}));
|
|
119
|
+
}));
|
|
120
|
+
};
|
|
109
121
|
//# sourceMappingURL=android_token.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"android_token.js","sourceRoot":"","sources":["../../src/functions/android_token.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"android_token.js","sourceRoot":"","sources":["../../src/functions/android_token.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,iEAAmD;AACnD,oCAAiC;AAIjC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AACH,MAAM,CAAC,OAAO,GAAG,CACb,OAAiB,EACjB,OAAyB,EACzB,IAA+B,EACjC,EAAE;;IAAC,OAAA,SAAS,CAAC,KAAK,CAAC,SAAS,CAC1B;QACI,MAAM,EAAE,OAAO;QACf,cAAc,EAAE,OAAO,CAAC,cAAc;QACtC,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,YAAY,EAAE,OAAO,CAAC,YAAY;QAClC,WAAW,EAAE,OAAO,CAAC,WAAW;QAChC,YAAY,EAAE,MAAA,OAAO,CAAC,YAAY,mCAAI,SAAS;KAClD,EACD,CAAO,GAAG,EAAE,GAAG,EAAE,EAAE;QACf,IAAI;YACA,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,4BAA4B,CAAC;YAC7D,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC;YACvD,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,6BAA6B,CAAC;YAC/D,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,QAAQ,IAAI,CAAC,YAAY,IAAI,CAAC,WAAW,EAAE;gBAC/D,MAAM,IAAI,SAAS,CAAC,KAAK,CAAC,UAAU,CAAC,kBAAkB,EAAE,6BAA6B,CAAC,CAAC;aAC3F;YACD,MAAM,IAAI,GAAG,MAAM,SAAG,CAAC,IAAI,CAAC,4CAA4C,EAAE;gBACtE,OAAO,EAAE,EAAE,GAAG,IAAI;gBAClB,IAAI,EAAE;oBACF,YAAY,EAAE,oBAAoB;oBAClC,WAAW,EAAE,QAAQ;oBACrB,eAAe,EAAE,YAAY;oBAC7B,cAAc,EAAE,WAAW;oBAC3B,aAAa,EAAE,SAAS;oBACxB,MAAM,EAAE,GAAG,CAAC,KAAK,CAAC,IAAI;iBACzB;aACJ,CAAC,CAAC;YACH,IAAI,CAAC,IAAI,EAAE;gBACP,MAAM,IAAI,SAAS,CAAC,KAAK,CAAC,UAAU,CAAC,WAAW,EAAE,0BAA0B,CAAC,CAAC;aACjF;YACD,MAAM,IAAI,GAAG,CAAC,MAAM,IAAI,CAAC,IAAI,EAAE,CAA2B,CAAC;YAC3D,IAAI,IAAI,KAAK,IAAI,EAAE;gBACf,MAAM,IAAI,SAAS,CAAC,KAAK,CAAC,UAAU,CAAC,WAAW,EAAE,0BAA0B,CAAC,CAAC;aACjF;YACD,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAClB,GAAG,CAAC,IAAI,CAAC,gBAAgB,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC;SACrD;QAAC,OAAO,GAAG,EAAE;YACV,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACnB,GAAG,CAAC,GAAG,EAAE,CAAC;SACb;IACL,CAAC,CAAA,CACJ,CAAA;CAAA,CAAC"}
|
|
@@ -32,7 +32,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
32
32
|
});
|
|
33
33
|
};
|
|
34
34
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
35
|
-
const functions = __importStar(require("firebase-functions"));
|
|
35
|
+
const functions = __importStar(require("firebase-functions/v2"));
|
|
36
36
|
const verifier = __importStar(require("../lib/verify_android"));
|
|
37
37
|
const updater = __importStar(require("../lib/update_wallet"));
|
|
38
38
|
/**
|
|
@@ -40,12 +40,12 @@ const updater = __importStar(require("../lib/update_wallet"));
|
|
|
40
40
|
*
|
|
41
41
|
* 消費型のアプリ内課金を行います。[path]に指定したドキュメント内のフィールドの値を[value]に加算します。
|
|
42
42
|
*
|
|
43
|
-
* @param
|
|
43
|
+
* @param process.env.PURCHASE_ANDROID_REFRESHTOKEN
|
|
44
44
|
* Describe the refresh token that can be obtained by accessing [android_auth_code].
|
|
45
45
|
*
|
|
46
46
|
* [android_auth_code]にアクセスすることで取得できるリフレッシュトークンを記述します。
|
|
47
47
|
*
|
|
48
|
-
* @param
|
|
48
|
+
* @param process.env.PURCHASE_ANDROID_CLIENTID
|
|
49
49
|
* Google's OAuth 2.0 client ID.
|
|
50
50
|
* Create an OAuth consent screen from the URL below.
|
|
51
51
|
* https://console.cloud.google.com/apis/credentials/consent
|
|
@@ -58,7 +58,7 @@ const updater = __importStar(require("../lib/update_wallet"));
|
|
|
58
58
|
* その後、認証情報からOAuth 2.0 クライアントIDを作成します。
|
|
59
59
|
* https://console.cloud.google.com/apis/credentials
|
|
60
60
|
*
|
|
61
|
-
* @param
|
|
61
|
+
* @param process.env.PURCHASE_ANDROID_CLIENTSECRET
|
|
62
62
|
* Google's OAuth 2.0 client secret.
|
|
63
63
|
* Create an OAuth consent screen from the URL below.
|
|
64
64
|
* https://console.cloud.google.com/apis/credentials/consent
|
|
@@ -96,37 +96,47 @@ const updater = __importStar(require("../lib/update_wallet"));
|
|
|
96
96
|
*
|
|
97
97
|
* 購入したときに発行された購入トークン。
|
|
98
98
|
*/
|
|
99
|
-
module.exports = (regions,
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
99
|
+
module.exports = (regions, options, data) => {
|
|
100
|
+
var _a;
|
|
101
|
+
return functions.https.onCall({
|
|
102
|
+
region: regions,
|
|
103
|
+
timeoutSeconds: options.timeoutSeconds,
|
|
104
|
+
memory: options.memory,
|
|
105
|
+
minInstances: options.minInstances,
|
|
106
|
+
concurrency: options.concurrency,
|
|
107
|
+
maxInstances: (_a = options.maxInstances) !== null && _a !== void 0 ? _a : undefined,
|
|
108
|
+
}, (query) => __awaiter(void 0, void 0, void 0, function* () {
|
|
109
|
+
var _b, _c, _d;
|
|
110
|
+
try {
|
|
111
|
+
/* ==== Android検証ここから ==== */
|
|
112
|
+
const res = yield verifier.verifyAndroid({
|
|
113
|
+
type: "products",
|
|
114
|
+
clientId: (_b = process.env.PURCHASE_ANDROID_CLIENTID) !== null && _b !== void 0 ? _b : "",
|
|
115
|
+
clientSecret: (_c = process.env.PURCHASE_ANDROID_CLIENTSECRET) !== null && _c !== void 0 ? _c : "",
|
|
116
|
+
refreshToken: (_d = process.env.PURCHASE_ANDROID_REFRESHTOKEN) !== null && _d !== void 0 ? _d : "",
|
|
117
|
+
packageName: query.data.packageName,
|
|
118
|
+
productId: query.data.productId,
|
|
119
|
+
purchaseToken: query.data.purchaseToken,
|
|
120
|
+
});
|
|
121
|
+
if (res["purchaseState"] !== 0) {
|
|
122
|
+
throw new functions.https.HttpsError("unauthenticated", "Illegal receipt.");
|
|
123
|
+
}
|
|
124
|
+
/* ==== ここまでAndroid検証 ==== */
|
|
125
|
+
if (!query.data.path || !query.data.value) {
|
|
126
|
+
return res;
|
|
127
|
+
}
|
|
128
|
+
/* ==== Firestoreの更新ここから ==== */
|
|
129
|
+
yield updater.updateWallet({
|
|
130
|
+
targetDocumentFieldPath: query.data.path,
|
|
131
|
+
value: query.data.value,
|
|
132
|
+
});
|
|
133
|
+
/* ==== ここまでFirestoreの更新 ==== */
|
|
117
134
|
return res;
|
|
118
135
|
}
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
return res;
|
|
126
|
-
}
|
|
127
|
-
catch (err) {
|
|
128
|
-
console.error(err);
|
|
129
|
-
throw err;
|
|
130
|
-
}
|
|
131
|
-
}));
|
|
136
|
+
catch (err) {
|
|
137
|
+
console.error(err);
|
|
138
|
+
throw err;
|
|
139
|
+
}
|
|
140
|
+
}));
|
|
141
|
+
};
|
|
132
142
|
//# sourceMappingURL=consumable_verify_android.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"consumable_verify_android.js","sourceRoot":"","sources":["../../src/functions/consumable_verify_android.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"consumable_verify_android.js","sourceRoot":"","sources":["../../src/functions/consumable_verify_android.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,iEAAmD;AACnD,gEAAkD;AAClD,8DAAgD;AAGhD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4DG;AACH,MAAM,CAAC,OAAO,GAAG,CACb,OAAiB,EACjB,OAAyB,EACzB,IAA+B,EACjC,EAAE;;IAAC,OAAA,SAAS,CAAC,KAAK,CAAC,MAAM,CACvB;QACI,MAAM,EAAE,OAAO;QACf,cAAc,EAAE,OAAO,CAAC,cAAc;QACtC,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,YAAY,EAAE,OAAO,CAAC,YAAY;QAClC,WAAW,EAAE,OAAO,CAAC,WAAW;QAChC,YAAY,EAAE,MAAA,OAAO,CAAC,YAAY,mCAAI,SAAS;KAClD,EACD,CAAO,KAAK,EAAE,EAAE;;QACZ,IAAI;YACA,6BAA6B;YAC7B,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAC,aAAa,CAAC;gBACrC,IAAI,EAAE,UAAU;gBAChB,QAAQ,EAAE,MAAA,OAAO,CAAC,GAAG,CAAC,yBAAyB,mCAAI,EAAE;gBACrD,YAAY,EAAE,MAAA,OAAO,CAAC,GAAG,CAAC,6BAA6B,mCAAI,EAAE;gBAC7D,YAAY,EAAE,MAAA,OAAO,CAAC,GAAG,CAAC,6BAA6B,mCAAI,EAAE;gBAC7D,WAAW,EAAE,KAAK,CAAC,IAAI,CAAC,WAAW;gBACnC,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC,SAAS;gBAC/B,aAAa,EAAE,KAAK,CAAC,IAAI,CAAC,aAAa;aAC1C,CAAC,CAAC;YACH,IAAI,GAAG,CAAC,eAAe,CAAC,KAAK,CAAC,EAAE;gBAC5B,MAAM,IAAI,SAAS,CAAC,KAAK,CAAC,UAAU,CAAC,iBAAiB,EAAE,kBAAkB,CAAC,CAAC;aAC/E;YACD,6BAA6B;YAC7B,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE;gBACvC,OAAO,GAAG,CAAC;aACd;YACD,gCAAgC;YAChC,MAAM,OAAO,CAAC,YAAY,CAAC;gBACvB,uBAAuB,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI;gBACxC,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,KAAK;aAC1B,CAAC,CAAC;YACH,gCAAgC;YAChC,OAAO,GAAG,CAAC;SACd;QAAC,OAAO,GAAG,EAAE;YACV,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACnB,MAAM,GAAG,CAAC;SACb;IACL,CAAC,CAAA,CACJ,CAAA;CAAA,CAAC"}
|