@mathrunet/masamune 2.1.1 → 2.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.
- package/CHANGELOG.md +9 -0
- package/dist/functions/agora_cloud_recording.js +47 -44
- package/dist/functions/agora_cloud_recording.js.map +1 -1
- package/dist/functions/agora_token.js +37 -34
- package/dist/functions/agora_token.js.map +1 -1
- package/dist/functions/algolia.js +51 -48
- package/dist/functions/algolia.js.map +1 -1
- package/dist/functions/android_auth_code.js +22 -19
- package/dist/functions/android_auth_code.js.map +1 -1
- package/dist/functions/android_token.js +42 -39
- package/dist/functions/android_token.js.map +1 -1
- package/dist/functions/consumable_verify_android.js +41 -38
- package/dist/functions/consumable_verify_android.js.map +1 -1
- package/dist/functions/consumable_verify_ios.js +36 -33
- package/dist/functions/consumable_verify_ios.js.map +1 -1
- package/dist/functions/geocoding.js +26 -23
- package/dist/functions/geocoding.js.map +1 -1
- package/dist/functions/gmail.js +33 -30
- package/dist/functions/gmail.js.map +1 -1
- package/dist/functions/nonconsumable_verify_android.js +40 -37
- package/dist/functions/nonconsumable_verify_android.js.map +1 -1
- package/dist/functions/nonconsumable_verify_ios.js +35 -32
- package/dist/functions/nonconsumable_verify_ios.js.map +1 -1
- package/dist/functions/openai_chat_gpt.js +37 -34
- package/dist/functions/openai_chat_gpt.js.map +1 -1
- package/dist/functions/purchase_webhook_android.js +2 -2
- package/dist/functions/purchase_webhook_android.js.map +1 -1
- package/dist/functions/purchase_webhook_ios.js +85 -82
- package/dist/functions/purchase_webhook_ios.js.map +1 -1
- package/dist/functions/scheduler.js +4 -4
- package/dist/functions/scheduler.js.map +1 -1
- package/dist/functions/send_grid.js +33 -30
- package/dist/functions/send_grid.js.map +1 -1
- package/dist/functions/send_notification.js +35 -32
- package/dist/functions/send_notification.js.map +1 -1
- package/dist/functions/stripe.js +856 -853
- package/dist/functions/stripe.js.map +1 -1
- package/dist/functions/stripe_webhook.js +358 -355
- package/dist/functions/stripe_webhook.js.map +1 -1
- package/dist/functions/stripe_webhook_connect.js +68 -65
- package/dist/functions/stripe_webhook_connect.js.map +1 -1
- package/dist/functions/stripe_webhook_secure.js +66 -63
- package/dist/functions/stripe_webhook_secure.js.map +1 -1
- package/dist/functions/subscription_verify_android.js +57 -54
- package/dist/functions/subscription_verify_android.js.map +1 -1
- package/dist/functions/subscription_verify_ios.js +57 -54
- package/dist/functions/subscription_verify_ios.js.map +1 -1
- package/dist/lib/call_process_function_base.d.ts +16 -1
- package/dist/lib/call_process_function_base.js +15 -8
- package/dist/lib/call_process_function_base.js.map +1 -1
- package/dist/lib/functions_base.d.ts +44 -0
- package/dist/lib/request_process_function_base.d.ts +16 -1
- package/dist/lib/request_process_function_base.js +15 -8
- package/dist/lib/request_process_function_base.js.map +1 -1
- package/dist/lib/schedule_process_function_base.js +8 -7
- package/dist/lib/schedule_process_function_base.js.map +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,12 @@
|
|
|
1
|
+
# [2.2.0](https://github.com/mathrunet/node_masamune/compare/v2.1.1...v2.2.0) (2024-01-18)
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
### feat
|
|
5
|
+
|
|
6
|
+
* The region can be specified by option. ([df36f5f](https://github.com/mathrunet/node_masamune/commit/df36f5fc62c494bb94a9e44b91c13d764c48c93f))
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
|
|
1
10
|
## [2.1.1](https://github.com/mathrunet/node_masamune/compare/v2.1.0...v2.1.1) (2024-01-18)
|
|
2
11
|
|
|
3
12
|
|
|
@@ -43,69 +43,72 @@ const admin = __importStar(require("firebase-admin"));
|
|
|
43
43
|
*
|
|
44
44
|
* FirebaseStorageにファイルが保存されたタイミングで実行されます。
|
|
45
45
|
*/
|
|
46
|
-
module.exports = (regions, options, data) =>
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
const bucket = admin.storage().bucket(object.bucket);
|
|
60
|
-
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/);
|
|
61
|
-
if (targetScreenShot) {
|
|
62
|
-
const target = targetScreenShot[2] + ".jpg";
|
|
63
|
-
if (target == source.toString()) {
|
|
64
|
-
console.log("Jpeg file is not replaced.");
|
|
46
|
+
module.exports = (regions, options, data) => {
|
|
47
|
+
var _a;
|
|
48
|
+
return functions.storage.onObjectFinalized({
|
|
49
|
+
region: (_a = options.region) !== null && _a !== void 0 ? _a : regions[0],
|
|
50
|
+
timeoutSeconds: options.timeoutSeconds,
|
|
51
|
+
memory: options.memory,
|
|
52
|
+
minInstances: options.minInstances,
|
|
53
|
+
concurrency: options.concurrency,
|
|
54
|
+
maxInstances: options.maxInstances,
|
|
55
|
+
}, (object) => __awaiter(void 0, void 0, void 0, function* () {
|
|
56
|
+
try {
|
|
57
|
+
const source = object.data.name;
|
|
58
|
+
if (!source) {
|
|
65
59
|
return;
|
|
66
60
|
}
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
yield bucket.file(target).makePublic();
|
|
72
|
-
}
|
|
73
|
-
else {
|
|
74
|
-
const targetM3U8 = source.toString().match(/([a-z0-9A-Z]+)_([a-z0-9A-Z]+).m3u8/);
|
|
75
|
-
if (targetM3U8) {
|
|
76
|
-
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";
|
|
77
65
|
if (target == source.toString()) {
|
|
78
|
-
console.log("
|
|
66
|
+
console.log("Jpeg file is not replaced.");
|
|
79
67
|
return;
|
|
80
68
|
}
|
|
81
69
|
yield bucket.file(source).copy(target, {
|
|
82
|
-
|
|
83
|
-
contentType: "application/x-mpegURL",
|
|
70
|
+
contentType: "image/jpeg",
|
|
84
71
|
});
|
|
85
72
|
yield bucket.file(source).delete();
|
|
86
73
|
yield bucket.file(target).makePublic();
|
|
87
74
|
}
|
|
88
75
|
else {
|
|
89
|
-
const
|
|
90
|
-
if (
|
|
91
|
-
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";
|
|
92
79
|
if (target == source.toString()) {
|
|
93
|
-
console.log("
|
|
80
|
+
console.log("M3U8 file is not replaced.");
|
|
94
81
|
return;
|
|
95
82
|
}
|
|
96
|
-
console.log("Ts file is replaced.");
|
|
97
83
|
yield bucket.file(source).copy(target, {
|
|
98
|
-
|
|
84
|
+
cacheControl: "no-cache",
|
|
85
|
+
contentType: "application/x-mpegURL",
|
|
99
86
|
});
|
|
100
87
|
yield bucket.file(source).delete();
|
|
101
88
|
yield bucket.file(target).makePublic();
|
|
102
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
|
+
}
|
|
103
106
|
}
|
|
104
107
|
}
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
}
|
|
110
|
-
}
|
|
108
|
+
catch (err) {
|
|
109
|
+
console.error(err);
|
|
110
|
+
throw err;
|
|
111
|
+
}
|
|
112
|
+
}));
|
|
113
|
+
};
|
|
111
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,iEAAmD;AACnD,sDAAwC;AAGxC;;;;;;;;GAQG;AACH,MAAM,CAAC,OAAO,GAAG,CACb,OAAiB,EACjB,
|
|
1
|
+
{"version":3,"file":"agora_cloud_recording.js","sourceRoot":"","sources":["../../src/functions/agora_cloud_recording.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,iEAAmD;AACnD,sDAAwC;AAGxC;;;;;;;;GAQG;AACH,MAAM,CAAC,OAAO,GAAG,CACb,OAAiB,EACjB,OAAgC,EAChC,IAA+B,EACjC,EAAE;;IAAC,OAAA,SAAS,CAAC,OAAO,CAAC,iBAAiB,CACpC;QACI,MAAM,EAAE,MAAA,OAAO,CAAC,MAAM,mCAAI,OAAO,CAAC,CAAC,CAAC;QACpC,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,OAAO,CAAC,YAAY;KACrC,EACD,CAAO,MAAM,EAAE,EAAE;QACb,IAAI;YACA,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;YAChC,IAAI,CAAC,MAAM,EAAE;gBACT,OAAO;aACV;YACD,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YACrD,MAAM,gBAAgB,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,6EAA6E,CAAC,CAAC;YAChI,IAAI,gBAAgB,EAAE;gBAClB,MAAM,MAAM,GAAG,gBAAgB,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC;gBAC5C,IAAI,MAAM,IAAI,MAAM,CAAC,QAAQ,EAAE,EAAE;oBAC7B,OAAO,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC;oBAC1C,OAAO;iBACV;gBACD,MAAM,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAC1B,MAAM,EACN;oBACI,WAAW,EAAE,YAAY;iBAC5B,CACJ,CAAC;gBACF,MAAM,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,CAAC;gBACnC,MAAM,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,UAAU,EAAE,CAAC;aAC1C;iBAAM;gBACH,MAAM,UAAU,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,oCAAoC,CAAC,CAAC;gBACjF,IAAI,UAAU,EAAE;oBACZ,MAAM,MAAM,GAAG,UAAU,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC;oBACvC,IAAI,MAAM,IAAI,MAAM,CAAC,QAAQ,EAAE,EAAE;wBAC7B,OAAO,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC;wBAC1C,OAAO;qBACV;oBACD,MAAM,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAC1B,MAAM,EACN;wBACI,YAAY,EAAE,UAAU;wBACxB,WAAW,EAAE,uBAAuB;qBACvC,CACJ,CAAC;oBACF,MAAM,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,CAAC;oBACnC,MAAM,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,UAAU,EAAE,CAAC;iBAC1C;qBAAM;oBACH,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,iDAAiD,CAAC,CAAC;oBAC5F,IAAI,QAAQ,EAAE;wBACV,MAAM,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;wBAC3B,IAAI,MAAM,IAAI,MAAM,CAAC,QAAQ,EAAE,EAAE;4BAC7B,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC;4BACxC,OAAO;yBACV;wBACD,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC;wBACpC,MAAM,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAC1B,MAAM,EACN;4BACI,WAAW,EAAE,YAAY;yBAC5B,CACJ,CAAC;wBACF,MAAM,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,CAAC;wBACnC,MAAM,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,UAAU,EAAE,CAAC;qBAC1C;iBACJ;aACJ;SACJ;QAAC,OAAO,GAAG,EAAE;YACV,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACnB,MAAM,GAAG,CAAC;SACb;IACL,CAAC,CAAA,CACJ,CAAA;CAAA,CAAC"}
|
|
@@ -74,40 +74,43 @@ const agora_token_1 = require("agora-token");
|
|
|
74
74
|
*
|
|
75
75
|
* 役割。"audience"か"broadcaster"が指定できます。
|
|
76
76
|
*/
|
|
77
|
-
module.exports = (regions, options, data) =>
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
role = agora_token_1.RtcRole.
|
|
77
|
+
module.exports = (regions, options, data) => {
|
|
78
|
+
var _a;
|
|
79
|
+
return functions.https.onCall({
|
|
80
|
+
region: (_a = options.region) !== null && _a !== void 0 ? _a : regions,
|
|
81
|
+
timeoutSeconds: options.timeoutSeconds,
|
|
82
|
+
memory: options.memory,
|
|
83
|
+
minInstances: options.minInstances,
|
|
84
|
+
concurrency: options.concurrency,
|
|
85
|
+
maxInstances: options.maxInstances,
|
|
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
|
+
};
|
|
93
109
|
}
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
uid = query.data.uid;
|
|
110
|
+
catch (err) {
|
|
111
|
+
console.error(err);
|
|
112
|
+
throw err;
|
|
98
113
|
}
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
}
|
|
102
|
-
const token = agora_token_1.RtcTokenBuilder.buildTokenWithUid(appId, appCertificate, channelName, uid, role, expirationTimeInSeconds, expirationTimeInSeconds);
|
|
103
|
-
return {
|
|
104
|
-
channel: channelName,
|
|
105
|
-
token: token,
|
|
106
|
-
};
|
|
107
|
-
}
|
|
108
|
-
catch (err) {
|
|
109
|
-
console.error(err);
|
|
110
|
-
throw err;
|
|
111
|
-
}
|
|
112
|
-
}));
|
|
114
|
+
}));
|
|
115
|
+
};
|
|
113
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,iEAAmD;AACnD,6CAAuD;AAGvD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AACH,MAAM,CAAC,OAAO,GAAG,CACb,OAAiB,EACjB,
|
|
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,OAA6B,EAC7B,IAA+B,EACjC,EAAE;;IAAC,OAAA,SAAS,CAAC,KAAK,CAAC,MAAM,CACvB;QACI,MAAM,EAAE,MAAA,OAAO,CAAC,MAAM,mCAAI,OAAO;QACjC,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,OAAO,CAAC,YAAY;KACrC,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"}
|
|
@@ -57,56 +57,59 @@ const algolia = __importStar(require("algoliasearch"));
|
|
|
57
57
|
* 2. 「All API Key」の画面を開き「New API Key」から新しくAPIキーを作成する。
|
|
58
58
|
* - 「ACL」に「AddObject」「DeleteObject」を追加しておくこと。
|
|
59
59
|
*/
|
|
60
|
-
module.exports = (regions, options, data) =>
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
60
|
+
module.exports = (regions, options, data) => {
|
|
61
|
+
var _a;
|
|
62
|
+
return functions.firestore.onDocumentWritten({
|
|
63
|
+
document: `${options.path}/{docId}`,
|
|
64
|
+
region: (_a = options.region) !== null && _a !== void 0 ? _a : regions[0],
|
|
65
|
+
timeoutSeconds: options.timeoutSeconds,
|
|
66
|
+
memory: options.memory,
|
|
67
|
+
minInstances: options.minInstances,
|
|
68
|
+
concurrency: options.concurrency,
|
|
69
|
+
maxInstances: options.maxInstances,
|
|
70
|
+
}, (event) => __awaiter(void 0, void 0, void 0, function* () {
|
|
71
|
+
var _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p;
|
|
72
|
+
try {
|
|
73
|
+
const afterExists = (_c = (_b = event.data) === null || _b === void 0 ? void 0 : _b.after.exists) !== null && _c !== void 0 ? _c : false;
|
|
74
|
+
const beforeExists = (_e = (_d = event.data) === null || _d === void 0 ? void 0 : _d.before.exists) !== null && _e !== void 0 ? _e : false;
|
|
75
|
+
const indexName = (_g = (_f = options.path) === null || _f === void 0 ? void 0 : _f.split("/").pop()) !== null && _g !== void 0 ? _g : "";
|
|
76
|
+
const client = algolia.default((_h = process.env.ALGOLIA_APPID) !== null && _h !== void 0 ? _h : "", (_j = process.env.ALGOLIA_APIKEY) !== null && _j !== void 0 ? _j : "");
|
|
77
|
+
// create
|
|
78
|
+
if (!beforeExists && afterExists) {
|
|
79
|
+
const data = (_k = event.data) === null || _k === void 0 ? void 0 : _k.after.data();
|
|
80
|
+
const key = (_l = event.data) === null || _l === void 0 ? void 0 : _l.after.id;
|
|
81
|
+
if (!key || !data) {
|
|
82
|
+
return;
|
|
83
|
+
}
|
|
84
|
+
const algoliaObject = Object.assign(Object.assign({}, data), { "@uid": key, objectID: key });
|
|
85
|
+
const index = client.initIndex(indexName);
|
|
86
|
+
yield index.saveObject(algoliaObject);
|
|
87
|
+
// update
|
|
81
88
|
}
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
89
|
+
else if (beforeExists && afterExists) {
|
|
90
|
+
const data = (_m = event.data) === null || _m === void 0 ? void 0 : _m.after.data();
|
|
91
|
+
const key = (_o = event.data) === null || _o === void 0 ? void 0 : _o.after.id;
|
|
92
|
+
if (!key || !data) {
|
|
93
|
+
return;
|
|
94
|
+
}
|
|
95
|
+
const algoliaObject = Object.assign(Object.assign({}, data), { "@uid": key, objectID: key });
|
|
96
|
+
const index = client.initIndex(indexName);
|
|
97
|
+
yield index.saveObject(algoliaObject);
|
|
98
|
+
// delete
|
|
92
99
|
}
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
if (!key) {
|
|
101
|
-
return;
|
|
100
|
+
else if (beforeExists && !afterExists) {
|
|
101
|
+
const key = (_p = event.data) === null || _p === void 0 ? void 0 : _p.after.id;
|
|
102
|
+
if (!key) {
|
|
103
|
+
return;
|
|
104
|
+
}
|
|
105
|
+
const index = client.initIndex(indexName);
|
|
106
|
+
yield index.deleteObject(key);
|
|
102
107
|
}
|
|
103
|
-
const index = client.initIndex(indexName);
|
|
104
|
-
yield index.deleteObject(key);
|
|
105
108
|
}
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
}
|
|
111
|
-
}
|
|
109
|
+
catch (err) {
|
|
110
|
+
console.log(err);
|
|
111
|
+
throw err;
|
|
112
|
+
}
|
|
113
|
+
}));
|
|
114
|
+
};
|
|
112
115
|
//# sourceMappingURL=algolia.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"algolia.js","sourceRoot":"","sources":["../../src/functions/algolia.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,iEAAmD;AAEnD,uDAAyC;AAGzC;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,CAAC,OAAO,GAAG,CACb,OAAiB,EACjB,OAA6B,EAC7B,IAA+B,EACjC,EAAE,
|
|
1
|
+
{"version":3,"file":"algolia.js","sourceRoot":"","sources":["../../src/functions/algolia.ts"],"names":[],"mappings":"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"}
|
|
@@ -60,24 +60,27 @@ const functions = __importStar(require("firebase-functions/v2"));
|
|
|
60
60
|
* その後、認証情報からOAuth 2.0 クライアントIDを作成します。
|
|
61
61
|
* https://console.cloud.google.com/apis/credentials
|
|
62
62
|
*/
|
|
63
|
-
module.exports = (regions, options, data) =>
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
63
|
+
module.exports = (regions, options, data) => {
|
|
64
|
+
var _a;
|
|
65
|
+
return functions.https.onRequest({
|
|
66
|
+
region: (_a = options.region) !== null && _a !== void 0 ? _a : regions,
|
|
67
|
+
timeoutSeconds: options.timeoutSeconds,
|
|
68
|
+
memory: options.memory,
|
|
69
|
+
minInstances: options.minInstances,
|
|
70
|
+
concurrency: options.concurrency,
|
|
71
|
+
maxInstances: options.maxInstances,
|
|
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`);
|
|
75
79
|
}
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
}));
|
|
80
|
+
catch (err) {
|
|
81
|
+
console.error(err);
|
|
82
|
+
res.end();
|
|
83
|
+
}
|
|
84
|
+
}));
|
|
85
|
+
};
|
|
83
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,iEAAmD;AAGnD;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,MAAM,CAAC,OAAO,GAAG,CACb,OAAiB,EACjB,
|
|
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,OAA6B,EAC7B,IAA+B,EACjC,EAAE;;IAAC,OAAA,SAAS,CAAC,KAAK,CAAC,SAAS,CAC1B;QACI,MAAM,EAAE,MAAA,OAAO,CAAC,MAAM,mCAAI,OAAO;QACjC,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,OAAO,CAAC,YAAY;KACrC,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"}
|
|
@@ -74,45 +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, options, data) =>
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
77
|
+
module.exports = (regions, options, data) => {
|
|
78
|
+
var _a;
|
|
79
|
+
return functions.https.onRequest({
|
|
80
|
+
region: (_a = options.region) !== null && _a !== void 0 ? _a : regions,
|
|
81
|
+
timeoutSeconds: options.timeoutSeconds,
|
|
82
|
+
memory: options.memory,
|
|
83
|
+
minInstances: options.minInstances,
|
|
84
|
+
concurrency: options.concurrency,
|
|
85
|
+
maxInstances: options.maxInstances,
|
|
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"]}`);
|
|
91
114
|
}
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
"grant_type": "authorization_code",
|
|
96
|
-
"client_id": clientId,
|
|
97
|
-
"client_secret": clientSecret,
|
|
98
|
-
"redirect_uri": redirectUri,
|
|
99
|
-
"access_type": "offline",
|
|
100
|
-
"code": req.query.code,
|
|
101
|
-
},
|
|
102
|
-
});
|
|
103
|
-
if (!resp) {
|
|
104
|
-
throw new functions.https.HttpsError("data-loss", "Cannot get access token.");
|
|
115
|
+
catch (err) {
|
|
116
|
+
console.error(err);
|
|
117
|
+
res.end();
|
|
105
118
|
}
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
throw new functions.https.HttpsError("data-loss", "Cannot get access token.");
|
|
109
|
-
}
|
|
110
|
-
console.log(json);
|
|
111
|
-
res.send(`RefreshToken:${json["refresh_token"]}`);
|
|
112
|
-
}
|
|
113
|
-
catch (err) {
|
|
114
|
-
console.error(err);
|
|
115
|
-
res.end();
|
|
116
|
-
}
|
|
117
|
-
}));
|
|
119
|
+
}));
|
|
120
|
+
};
|
|
118
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,iEAAmD;AACnD,oCAAiC;AAIjC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AACH,MAAM,CAAC,OAAO,GAAG,CACb,OAAiB,EACjB,
|
|
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,OAA6B,EAC7B,IAA+B,EACjC,EAAE;;IAAC,OAAA,SAAS,CAAC,KAAK,CAAC,SAAS,CAC1B;QACI,MAAM,EAAE,MAAA,OAAO,CAAC,MAAM,mCAAI,OAAO;QACjC,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,OAAO,CAAC,YAAY;KACrC,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"}
|
|
@@ -96,44 +96,47 @@ const updater = __importStar(require("../lib/update_wallet"));
|
|
|
96
96
|
*
|
|
97
97
|
* 購入したときに発行された購入トークン。
|
|
98
98
|
*/
|
|
99
|
-
module.exports = (regions, options, data) =>
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
99
|
+
module.exports = (regions, options, data) => {
|
|
100
|
+
var _a;
|
|
101
|
+
return functions.https.onCall({
|
|
102
|
+
region: (_a = options.region) !== null && _a !== void 0 ? _a : regions,
|
|
103
|
+
timeoutSeconds: options.timeoutSeconds,
|
|
104
|
+
memory: options.memory,
|
|
105
|
+
minInstances: options.minInstances,
|
|
106
|
+
concurrency: options.concurrency,
|
|
107
|
+
maxInstances: options.maxInstances,
|
|
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の更新 ==== */
|
|
124
134
|
return res;
|
|
125
135
|
}
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
return res;
|
|
133
|
-
}
|
|
134
|
-
catch (err) {
|
|
135
|
-
console.error(err);
|
|
136
|
-
throw err;
|
|
137
|
-
}
|
|
138
|
-
}));
|
|
136
|
+
catch (err) {
|
|
137
|
+
console.error(err);
|
|
138
|
+
throw err;
|
|
139
|
+
}
|
|
140
|
+
}));
|
|
141
|
+
};
|
|
139
142
|
//# sourceMappingURL=consumable_verify_android.js.map
|