@mathrunet/masamune 1.0.0 → 1.1.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/CHANGELOG.md CHANGED
@@ -1,3 +1,22 @@
1
+ ## [1.1.1](https://github.com/mathrunet/node_masamune/compare/v1.1.0...v1.1.1) (2023-08-28)
2
+
3
+
4
+ ### fix
5
+
6
+ * Change the key of the title. ([137a47e](https://github.com/mathrunet/node_masamune/commit/137a47ece9a1ce5fbbfa9bedd96bb734b7986b65))
7
+
8
+
9
+
10
+ # [1.1.0](https://github.com/mathrunet/node_masamune/compare/v1.0.0...v1.1.0) (2023-08-28)
11
+
12
+
13
+ ### feat
14
+
15
+ * Create a SendNotificationSchedule. ([681a05e](https://github.com/mathrunet/node_masamune/commit/681a05e8f3c4546e0eff070462e364eb974a693d))
16
+ * ProcessFunctionBaseを作成 ([ecc5da7](https://github.com/mathrunet/node_masamune/commit/ecc5da70f3f7e687309511923ba6156022ebb951))
17
+
18
+
19
+
1
20
  # [1.0.0](https://github.com/mathrunet/node_masamune/compare/v0.6.3...v1.0.0) (2023-07-13)
2
21
 
3
22
 
@@ -33,7 +33,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
33
33
  };
34
34
  Object.defineProperty(exports, "__esModule", { value: true });
35
35
  const functions = __importStar(require("firebase-functions"));
36
- const admin = __importStar(require("firebase-admin"));
36
+ const send_notification_1 = require("../lib/send_notification");
37
37
  /**
38
38
  * Define the process for PUSH notification.
39
39
  *
@@ -77,55 +77,14 @@ module.exports = (regions, data) => functions.region(...regions).https.onCall((q
77
77
  const data = query.data;
78
78
  const token = query.token;
79
79
  const topic = query.topic;
80
- if (token === undefined && topic === undefined) {
81
- throw new functions.https.HttpsError("invalid-argument", "Either [token] or [topic] must be specified.");
82
- }
83
- if (token !== undefined) {
84
- const res = yield admin.messaging().send({
85
- notification: {
86
- title: title,
87
- body: body,
88
- },
89
- android: {
90
- priority: "high",
91
- notification: {
92
- title: title,
93
- body: body,
94
- clickAction: "FLUTTER_NOTIFICATION_CLICK",
95
- channelId: channelId,
96
- },
97
- },
98
- data: data,
99
- token: token,
100
- });
101
- return {
102
- success: true,
103
- message_id: res,
104
- };
105
- }
106
- else if (topic !== undefined) {
107
- const res = yield admin.messaging().send({
108
- notification: {
109
- title: title,
110
- body: body,
111
- },
112
- android: {
113
- priority: "high",
114
- notification: {
115
- title: title,
116
- body: body,
117
- clickAction: "FLUTTER_NOTIFICATION_CLICK",
118
- channelId: channelId,
119
- },
120
- },
121
- data: data,
122
- topic: topic,
123
- });
124
- return {
125
- success: true,
126
- message_id: res,
127
- };
128
- }
80
+ yield (0, send_notification_1.sendNotification)({
81
+ title: title,
82
+ body: body,
83
+ channelId: channelId,
84
+ data: data,
85
+ token: token,
86
+ topic: topic,
87
+ });
129
88
  }
130
89
  catch (err) {
131
90
  console.log(err);
@@ -1 +1 @@
1
- {"version":3,"file":"send_notification.js","sourceRoot":"","sources":["../../src/functions/send_notification.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,8DAAgD;AAChD,sDAAwC;AAExC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,MAAM,CAAC,OAAO,GAAG,CAAC,OAAiB,EAAE,IAA+B,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,KAAK,CAAC,MAAM,CAC9G,CAAO,KAAK,EAAE,EAAE;IACZ,IAAI;QACA,MAAM,KAAK,GAAG,KAAK,CAAC,KAAe,CAAC;QACpC,MAAM,IAAI,GAAG,KAAK,CAAC,IAAc,CAAC;QAClC,MAAM,SAAS,GAAG,KAAK,CAAC,UAAgC,CAAC;QACzD,MAAM,IAAI,GAAG,KAAK,CAAC,IAA6C,CAAC;QACjE,MAAM,KAAK,GAAG,KAAK,CAAC,KAA2B,CAAC;QAChD,MAAM,KAAK,GAAG,KAAK,CAAC,KAA2B,CAAC;QAChD,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,SAAS,EAAE;YAC5C,MAAM,IAAI,SAAS,CAAC,KAAK,CAAC,UAAU,CAAC,kBAAkB,EAAE,8CAA8C,CAAC,CAAC;SAC5G;QAED,IAAI,KAAK,KAAK,SAAS,EAAE;YACrB,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,SAAS,EAAE,CAAC,IAAI,CACpC;gBACI,YAAY,EAAE;oBACV,KAAK,EAAE,KAAK;oBACZ,IAAI,EAAE,IAAI;iBACb;gBACD,OAAO,EAAE;oBACL,QAAQ,EAAE,MAAM;oBAChB,YAAY,EAAE;wBACV,KAAK,EAAE,KAAK;wBACZ,IAAI,EAAE,IAAI;wBACV,WAAW,EAAE,4BAA4B;wBACzC,SAAS,EAAE,SAAS;qBACvB;iBACJ;gBACD,IAAI,EAAE,IAAI;gBACV,KAAK,EAAE,KAAK;aACf,CACJ,CAAC;YACF,OAAO;gBACH,OAAO,EAAE,IAAI;gBACb,UAAU,EAAE,GAAG;aAClB,CAAC;SACL;aAAM,IAAI,KAAK,KAAK,SAAS,EAAG;YAC7B,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,SAAS,EAAE,CAAC,IAAI,CACpC;gBACI,YAAY,EAAE;oBACV,KAAK,EAAE,KAAK;oBACZ,IAAI,EAAE,IAAI;iBACb;gBACD,OAAO,EAAE;oBACL,QAAQ,EAAE,MAAM;oBAChB,YAAY,EAAE;wBACV,KAAK,EAAE,KAAK;wBACZ,IAAI,EAAE,IAAI;wBACV,WAAW,EAAE,4BAA4B;wBACzC,SAAS,EAAE,SAAS;qBACvB;iBACJ;gBACD,IAAI,EAAE,IAAI;gBACV,KAAK,EAAE,KAAK;aACf,CACJ,CAAC;YACF,OAAO;gBACH,OAAO,EAAE,IAAI;gBACb,UAAU,EAAE,GAAG;aAClB,CAAC;SACL;KACJ;IAAC,OAAO,GAAG,EAAE;QACV,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACjB,MAAM,GAAG,CAAC;KACb;IACD,OAAO;QACH,OAAO,EAAE,IAAI;KAChB,CAAC;AACN,CAAC,CAAA,CACJ,CAAC"}
1
+ {"version":3,"file":"send_notification.js","sourceRoot":"","sources":["../../src/functions/send_notification.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,8DAAgD;AAEhD,gEAA4D;AAE5D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,MAAM,CAAC,OAAO,GAAG,CAAC,OAAiB,EAAE,IAA+B,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,KAAK,CAAC,MAAM,CAC9G,CAAO,KAAK,EAAE,EAAE;IACZ,IAAI;QACA,MAAM,KAAK,GAAG,KAAK,CAAC,KAAe,CAAC;QACpC,MAAM,IAAI,GAAG,KAAK,CAAC,IAAc,CAAC;QAClC,MAAM,SAAS,GAAG,KAAK,CAAC,UAAgC,CAAC;QACzD,MAAM,IAAI,GAAG,KAAK,CAAC,IAA6C,CAAC;QACjE,MAAM,KAAK,GAAG,KAAK,CAAC,KAA2B,CAAC;QAChD,MAAM,KAAK,GAAG,KAAK,CAAC,KAA2B,CAAC;QAChD,MAAM,IAAA,oCAAgB,EAAC;YACnB,KAAK,EAAE,KAAK;YACZ,IAAI,EAAE,IAAI;YACV,SAAS,EAAE,SAAS;YACpB,IAAI,EAAE,IAAI;YACV,KAAK,EAAE,KAAK;YACZ,KAAK,EAAE,KAAK;SACf,CAAC,CAAC;KACN;IAAC,OAAO,GAAG,EAAE;QACV,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACjB,MAAM,GAAG,CAAC;KACb;IACD,OAAO;QACH,OAAO,EAAE,IAAI;KAChB,CAAC;AACN,CAAC,CAAA,CACJ,CAAC"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,86 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
26
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
27
+ return new (P || (P = Promise))(function (resolve, reject) {
28
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
29
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
30
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
31
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
32
+ });
33
+ };
34
+ Object.defineProperty(exports, "__esModule", { value: true });
35
+ const functions = __importStar(require("firebase-functions"));
36
+ const admin = __importStar(require("firebase-admin"));
37
+ const send_notification_1 = require("../lib/send_notification");
38
+ /**
39
+ * Define a process for monitoring the DB and registering future PUSH notifications and scaling notifications.
40
+ *
41
+ * DBを監視し未来のPUSH通知を登録してスケーリングしながら通知を行うための処理を定義します。
42
+ *
43
+ * @param notification.collection_path
44
+ * Specify the path of the collection to monitor for notifications.
45
+ *
46
+ * 通知を監視するコレクションのパスを指定します。
47
+ */
48
+ module.exports = (regions, data) => {
49
+ var _a;
50
+ return functions.region(...regions).pubsub.schedule((_a = data["schedule"]) !== null && _a !== void 0 ? _a : "every 1 minutes").onRun((event) => __awaiter(void 0, void 0, void 0, function* () {
51
+ try {
52
+ const collectionPath = functions.config().notification.collection_path;
53
+ const firestoreInstance = admin.firestore();
54
+ const collection = yield firestoreInstance.collection(collectionPath).where("sent", "==", false).where("time", "<=", admin.firestore.Timestamp.now()).orderBy("time", "asc").get();
55
+ for (var doc of collection.docs) {
56
+ const title = doc.get("title");
57
+ const body = doc.get("text");
58
+ const channelId = doc.get("channel");
59
+ const data = doc.get("data");
60
+ const token = doc.get("token");
61
+ const topic = doc.get("topic");
62
+ yield (0, send_notification_1.sendNotification)({
63
+ title: title,
64
+ body: body,
65
+ channelId: channelId,
66
+ data: data,
67
+ token: token,
68
+ topic: topic,
69
+ });
70
+ yield doc.ref.set({
71
+ sent: true,
72
+ }, {
73
+ merge: true
74
+ });
75
+ }
76
+ }
77
+ catch (err) {
78
+ console.log(err);
79
+ throw err;
80
+ }
81
+ return {
82
+ success: true,
83
+ };
84
+ }));
85
+ };
86
+ //# sourceMappingURL=send_notification_schedule.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"send_notification_schedule.js","sourceRoot":"","sources":["../../src/functions/send_notification_schedule.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,8DAAgD;AAChD,sDAAwC;AACxC,gEAA4D;AAE5D;;;;;;;;;GASG;AACH,MAAM,CAAC,OAAO,GAAG,CAAC,OAAiB,EAAE,IAA+B,EAAE,EAAE;;IAAC,OAAA,SAAS,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAA,IAAI,CAAC,UAAU,CAAC,mCAAI,iBAAiB,CAAC,CAAC,KAAK,CAC9J,CAAO,KAAK,EAAE,EAAE;QACZ,IAAI;YACA,MAAM,cAAc,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,YAAY,CAAC,eAAe,CAAC;YACvE,MAAM,iBAAiB,GAAG,KAAK,CAAC,SAAS,EAAE,CAAC;YAC5C,MAAM,UAAU,GAAG,MAAM,iBAAiB,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,KAAK,CAAC,CAAE,GAAG,EAAE,CAAC;YACpL,KAAK,IAAI,GAAG,IAAI,UAAU,CAAC,IAAI,EAAE;gBAC7B,MAAM,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,OAAO,CAAW,CAAC;gBACzC,MAAM,IAAI,GAAG,GAAG,CAAC,GAAG,CAAC,MAAM,CAAW,CAAC;gBACvC,MAAM,SAAS,GAAG,GAAG,CAAC,GAAG,CAAC,SAAS,CAAuB,CAAC;gBAC3D,MAAM,IAAI,GAAG,GAAG,CAAC,GAAG,CAAC,MAAM,CAAuC,CAAC;gBACnE,MAAM,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,OAAO,CAAuB,CAAC;gBACrD,MAAM,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,OAAO,CAAuB,CAAC;gBACrD,MAAM,IAAA,oCAAgB,EAAC;oBACnB,KAAK,EAAE,KAAK;oBACZ,IAAI,EAAE,IAAI;oBACV,SAAS,EAAE,SAAS;oBACpB,IAAI,EAAE,IAAI;oBACV,KAAK,EAAE,KAAK;oBACZ,KAAK,EAAE,KAAK;iBACf,CAAC,CAAC;gBACH,MAAM,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC;oBACd,IAAI,EAAE,IAAI;iBACb,EAAE;oBACC,KAAK,EAAE,IAAI;iBACd,CAAC,CAAC;aACN;SACJ;QAAC,OAAO,GAAG,EAAE;YACV,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACjB,MAAM,GAAG,CAAC;SACb;QACD,OAAO;YACH,OAAO,EAAE,IAAI;SAChB,CAAC;IACN,CAAC,CAAA,CACJ,CAAA;CAAA,CAAC"}
@@ -11,6 +11,12 @@ export declare const Functions: {
11
11
  * PUSH通知を送信するためのFunction。
12
12
  */
13
13
  readonly sendNotification: () => data.FunctionsData;
14
+ /**
15
+ * Function to send PUSH notifications periodically.
16
+ *
17
+ * 定期的にPUSH通知を送信するためのFunction。
18
+ */
19
+ readonly sendNotificationSchedule: (schedule?: string) => data.FunctionsData;
14
20
  /**
15
21
  * The text is generated using Open AI's GPT.
16
22
  *
package/dist/functions.js CHANGED
@@ -37,6 +37,12 @@ exports.Functions = {
37
37
  * PUSH通知を送信するためのFunction。
38
38
  */
39
39
  sendNotification: () => new data.FunctionsData("send_notification", require("./functions/send_notification")),
40
+ /**
41
+ * Function to send PUSH notifications periodically.
42
+ *
43
+ * 定期的にPUSH通知を送信するためのFunction。
44
+ */
45
+ sendNotificationSchedule: (schedule = "every 1 minutes") => new data.FunctionsData("send_notification_schedule", require("./functions/send_notification_schedule"), { "schedule": schedule }),
40
46
  /**
41
47
  * The text is generated using Open AI's GPT.
42
48
  *
@@ -170,7 +176,7 @@ exports.Functions = {
170
176
  *
171
177
  * Android用のWebhookのエンドポイントです。GCPのpub/subに`purchasing`のトピックを作成しプリンシパルに「google-play-developer-notifications@system.gserviceaccount.com」を設定することで通知を受け取ることができるようになります。
172
178
  */
173
- purchaseWebhookAndroid: (topic = "purchasing") => new data.FunctionsData("purchase_webhook_android", require("./functions/purchase_webhook_android"), { topic: topic }),
179
+ purchaseWebhookAndroid: (topic = "purchasing") => new data.FunctionsData("purchase_webhook_android", require("./functions/purchase_webhook_android"), { "topic": topic }),
174
180
  /**
175
181
  * Webhook endpoint for IOS, which allows you to receive notifications by setting the endpoint in AppStoreConnect's [App]->[App Information]->[App Store Server Notification].
176
182
  *
@@ -1 +1 @@
1
- {"version":3,"file":"functions.js","sourceRoot":"","sources":["../src/functions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"functions.js","sourceRoot":"","sources":["../src/functions.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,2DAA6C;AAE7C;;;;GAIG;AACU,QAAA,SAAS,GAAG;IACvB;;;;OAIG;IACH,gBAAgB,EAAE,GAAG,EAAE,CAAC,IAAI,IAAI,CAAC,aAAa,CAAC,mBAAmB,EAAE,OAAO,CAAC,+BAA+B,CAAC,CAAC;IAC7G;;;;OAIG;IACH,wBAAwB,EAAE,CAAC,WAAmB,iBAAiB,EAAE,EAAE,CAAC,IAAI,IAAI,CAAC,aAAa,CAAC,4BAA4B,EAAE,OAAO,CAAC,wCAAwC,CAAC,EAAG,EAAC,UAAU,EAAE,QAAQ,EAAC,CAAC;IACpM;;;;OAIG;IACH,aAAa,EAAE,GAAG,EAAE,CAAC,IAAI,IAAI,CAAC,aAAa,CAAC,iBAAiB,EAAE,OAAO,CAAC,6BAA6B,CAAC,CAAC;IACtG;;;;OAIG;IACH,UAAU,EAAE,GAAG,EAAE,CAAC,IAAI,IAAI,CAAC,aAAa,CAAC,aAAa,EAAE,OAAO,CAAC,yBAAyB,CAAC,CAAC;IAC3F;;;;;;;;OAQG;IACH,mBAAmB,EAAE,GAAG,EAAE,CAAC,IAAI,IAAI,CAAC,aAAa,CAAC,uBAAuB,EAAE,OAAO,CAAC,mCAAmC,CAAC,CAAC;IACxH;;;;;;;;OAQG;IACH,MAAM,EAAE,GAAG,EAAE,CAAC,IAAI,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,OAAO,CAAC,oBAAoB,CAAC,CAAC;IAC7E;;;;;;;;;;;;OAYG;IACH,aAAa,EAAE,GAAG,EAAE,CAAC,IAAI,IAAI,CAAC,aAAa,CAAC,gBAAgB,EAAE,OAAO,CAAC,4BAA4B,CAAC,CAAC;IACpG;;;;;;;;;;;;;;;;OAgBG;IACH,oBAAoB,EAAE,GAAG,EAAE,CAAC,IAAI,IAAI,CAAC,aAAa,CAAC,wBAAwB,EAAE,OAAO,CAAC,oCAAoC,CAAC,CAAC;IAC3H;;;;;;;;;;;;OAYG;IACH,mBAAmB,EAAE,GAAG,EAAE,CAAC,IAAI,IAAI,CAAC,aAAa,CAAC,uBAAuB,EAAE,OAAO,CAAC,mCAAmC,CAAC,CAAC;IACxH;;;;OAIG;IACH,KAAK,EAAE,GAAG,EAAE,CAAC,IAAI,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAC1E;;;;OAIG;IACH,QAAQ,EAAE,GAAG,EAAE,CAAC,IAAI,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE,OAAO,CAAC,uBAAuB,CAAC,CAAC;IACrF;;;;;OAKG;IACH,eAAe,EAAE,GAAG,EAAE,CAAC,IAAI,IAAI,CAAC,aAAa,CAAC,mBAAmB,EAAE,OAAO,CAAC,+BAA+B,CAAC,CAAC;IAC5G;;;;;OAKG;IACH,YAAY,EAAE,GAAG,EAAE,CAAC,IAAI,IAAI,CAAC,aAAa,CAAC,eAAe,EAAE,OAAO,CAAC,2BAA2B,CAAC,CAAC;IACjG;;;;OAIG;IACH,uBAAuB,EAAE,GAAG,EAAE,CAAC,IAAI,IAAI,CAAC,aAAa,CAAC,2BAA2B,EAAE,OAAO,CAAC,uCAAuC,CAAC,CAAC;IACpI;;;;OAIG;IACH,mBAAmB,EAAE,GAAG,EAAE,CAAC,IAAI,IAAI,CAAC,aAAa,CAAC,uBAAuB,EAAE,OAAO,CAAC,mCAAmC,CAAC,CAAC;IACxH;;;;OAIG;IACH,0BAA0B,EAAE,GAAG,EAAE,CAAC,IAAI,IAAI,CAAC,aAAa,CAAC,8BAA8B,EAAE,OAAO,CAAC,0CAA0C,CAAC,CAAC;IAC7I;;;;OAIG;IACH,sBAAsB,EAAE,GAAG,EAAE,CAAC,IAAI,IAAI,CAAC,aAAa,CAAC,0BAA0B,EAAE,OAAO,CAAC,sCAAsC,CAAC,CAAC;IACjI;;;;OAIG;IACH,sBAAsB,EAAE,CAAC,QAAgB,YAAY,EAAE,EAAE,CAAC,IAAI,IAAI,CAAC,aAAa,CAAC,0BAA0B,EAAE,OAAO,CAAC,sCAAsC,CAAC,EAAE,EAAC,OAAO,EAAE,KAAK,EAAC,CAAC;IAC/K;;;;OAIG;IACH,kBAAkB,EAAE,GAAG,EAAE,CAAC,IAAI,IAAI,CAAC,aAAa,CAAC,sBAAsB,EAAE,OAAO,CAAC,kCAAkC,CAAC,CAAC;IACrH;;;;OAIG;IACH,yBAAyB,EAAE,GAAG,EAAE,CAAC,IAAI,IAAI,CAAC,aAAa,CAAC,6BAA6B,EAAE,OAAO,CAAC,yCAAyC,CAAC,CAAC;IAC1I;;;;OAIG;IACH,qBAAqB,EAAE,GAAG,EAAE,CAAC,IAAI,IAAI,CAAC,aAAa,CAAC,yBAAyB,EAAE,OAAO,CAAC,qCAAqC,CAAC,CAAC;CACtH,CAAC"}
package/dist/index.d.ts CHANGED
@@ -1,7 +1,8 @@
1
- import * as data from "./lib/functions_data";
1
+ import * as base from "./lib/functions_base";
2
2
  import * as regions from "./lib/regions";
3
3
  export * from "./functions";
4
- export * from "./lib/functions_data";
4
+ export * from "./lib/schedule_process_function_base";
5
+ export * from "./lib/request_process_function_base";
5
6
  /**
6
7
  * Methods for deploying to Firebase Functions.
7
8
  *
@@ -27,4 +28,4 @@ export * from "./lib/functions_data";
27
28
  *
28
29
  * pub/subで用いるトピック名やスケジュールの長さなどを指定します。
29
30
  */
30
- export declare function deploy(exports: any, region: regions.Regions, deployFunctions: data.FunctionsData[]): void;
31
+ export declare function deploy(exports: any, region: regions.Regions, deployFunctions: base.FunctionsBase[]): void;
package/dist/index.js CHANGED
@@ -29,7 +29,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
29
29
  exports.deploy = void 0;
30
30
  const admin = __importStar(require("firebase-admin"));
31
31
  __exportStar(require("./functions"), exports);
32
- __exportStar(require("./lib/functions_data"), exports);
32
+ __exportStar(require("./lib/schedule_process_function_base"), exports);
33
+ __exportStar(require("./lib/request_process_function_base"), exports);
33
34
  /**
34
35
  * Methods for deploying to Firebase Functions.
35
36
  *
@@ -59,7 +60,7 @@ function deploy(exports, region, deployFunctions) {
59
60
  admin.initializeApp();
60
61
  for (const func of deployFunctions) {
61
62
  if (!process.env.FUNCTION_NAME || process.env.FUNCTION_NAME === func.id) {
62
- exports[func.id] = func.func(region, func.data);
63
+ exports[func.id] = func.build(region, func.data);
63
64
  }
64
65
  }
65
66
  }
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,sDAAwC;AAExC,8CAA4B;AAC5B,uDAAqC;AAErC;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,SAAgB,MAAM,CAAC,OAAY,EAAE,MAAuB,EAAE,eAAqC;IAC/F,KAAK,CAAC,aAAa,EAAE,CAAC;IACtB,KAAK,MAAM,IAAI,IAAI,eAAe,EAAE;QAChC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,OAAO,CAAC,GAAG,CAAC,aAAa,KAAK,IAAI,CAAC,EAAE,EAAE;YACrE,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;SACnD;KACJ;AACL,CAAC;AAPD,wBAOC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,sDAAwC;AAExC,8CAA4B;AAC5B,uEAAqD;AACrD,sEAAoD;AAEpD;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,SAAgB,MAAM,CAAC,OAAY,EAAE,MAAuB,EAAE,eAAqC;IAC/F,KAAK,CAAC,aAAa,EAAE,CAAC;IACtB,KAAK,MAAM,IAAI,IAAI,eAAe,EAAE;QAChC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,OAAO,CAAC,GAAG,CAAC,aAAa,KAAK,IAAI,CAAC,EAAE,EAAE;YACrE,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;SACpD;KACJ;AACL,CAAC;AAPD,wBAOC"}
@@ -0,0 +1,44 @@
1
+ /**
2
+ * Define Function data for FirebaseFunctions.
3
+ *
4
+ * Write code to generate FirebaseFunctions at `build`.
5
+ *
6
+ * FirebaseFunctions用のFunctionのデータを定義を行うためのベースクラス。
7
+ *
8
+ * `build`にてFirebaseFunctionsを生成するためのコードを記述します。
9
+ */
10
+ export declare abstract class FunctionsBase {
11
+ /**
12
+ * Define Function data for FirebaseFunctions.
13
+ *
14
+ * Write code to generate FirebaseFunctions at `build`.
15
+ *
16
+ * FirebaseFunctions用のFunctionのデータを定義を行うためのベースクラス。
17
+ *
18
+ * `build`にてFirebaseFunctionsを生成するためのコードを記述します。
19
+ */
20
+ constructor();
21
+ /**
22
+ * @param id
23
+ * Describe the method names used in Functions.
24
+ *
25
+ * Functionsで利用されるメソッド名を記述します。
26
+ */
27
+ abstract id: string;
28
+ /**
29
+ * Specify the data to be passed to the process.
30
+ *
31
+ * 処理に渡すデータを指定します。
32
+ */
33
+ abstract data: {
34
+ [key: string]: string;
35
+ };
36
+ /**
37
+ * Write code to generate FirebaseFunctions.
38
+ *
39
+ * FirebaseFunctionsを生成するためのコードを記述します。
40
+ */
41
+ abstract build(region: string[], data: {
42
+ [key: string]: string;
43
+ }): Function;
44
+ }
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.FunctionsBase = void 0;
4
+ /**
5
+ * Define Function data for FirebaseFunctions.
6
+ *
7
+ * Write code to generate FirebaseFunctions at `build`.
8
+ *
9
+ * FirebaseFunctions用のFunctionのデータを定義を行うためのベースクラス。
10
+ *
11
+ * `build`にてFirebaseFunctionsを生成するためのコードを記述します。
12
+ */
13
+ class FunctionsBase {
14
+ /**
15
+ * Define Function data for FirebaseFunctions.
16
+ *
17
+ * Write code to generate FirebaseFunctions at `build`.
18
+ *
19
+ * FirebaseFunctions用のFunctionのデータを定義を行うためのベースクラス。
20
+ *
21
+ * `build`にてFirebaseFunctionsを生成するためのコードを記述します。
22
+ */
23
+ constructor() { }
24
+ }
25
+ exports.FunctionsBase = FunctionsBase;
26
+ //# sourceMappingURL=functions_base.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"functions_base.js","sourceRoot":"","sources":["../../src/lib/functions_base.ts"],"names":[],"mappings":";;;AAEA;;;;;;;;GAQG;AACH,MAAsB,aAAa;IAC/B;;;;;;;;OAQG;IACH,gBAAgB,CAAC;CAuBpB;AAjCD,sCAiCC"}
@@ -1,9 +1,10 @@
1
+ import { FunctionsBase } from "./functions_base";
1
2
  /**
2
3
  * Define Function data for FirebaseFunctions.
3
4
  *
4
5
  * FirebaseFunctions用のFunctionのデータを定義します。
5
6
  */
6
- export declare class FunctionsData {
7
+ export declare class FunctionsData extends FunctionsBase {
7
8
  readonly id: string;
8
9
  readonly func: (region: string[], data: {
9
10
  [key: string]: string;
@@ -25,10 +26,18 @@ export declare class FunctionsData {
25
26
  * Specify the actual contents of the process.
26
27
  *
27
28
  * 実際の処理の中身を指定します。
29
+ *
30
+ * @param data
31
+ * Specify the data to be passed to the process.
32
+ *
33
+ * 処理に渡すデータを指定します。
28
34
  */
29
35
  constructor(id: string, func: (region: string[], data: {
30
36
  [key: string]: string;
31
37
  }) => Function, data?: {
32
38
  [key: string]: string;
33
39
  });
40
+ build(region: string[], data: {
41
+ [key: string]: string;
42
+ }): Function;
34
43
  }
@@ -1,12 +1,13 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.FunctionsData = void 0;
4
+ const functions_base_1 = require("./functions_base");
4
5
  /**
5
6
  * Define Function data for FirebaseFunctions.
6
7
  *
7
8
  * FirebaseFunctions用のFunctionのデータを定義します。
8
9
  */
9
- class FunctionsData {
10
+ class FunctionsData extends functions_base_1.FunctionsBase {
10
11
  /**
11
12
  * Define Function data for FirebaseFunctions.
12
13
  *
@@ -21,12 +22,21 @@ class FunctionsData {
21
22
  * Specify the actual contents of the process.
22
23
  *
23
24
  * 実際の処理の中身を指定します。
25
+ *
26
+ * @param data
27
+ * Specify the data to be passed to the process.
28
+ *
29
+ * 処理に渡すデータを指定します。
24
30
  */
25
31
  constructor(id, func, data = {}) {
32
+ super();
26
33
  this.id = id;
27
34
  this.func = func;
28
35
  this.data = data;
29
36
  }
37
+ build(region, data) {
38
+ return this.func(region, data);
39
+ }
30
40
  }
31
41
  exports.FunctionsData = FunctionsData;
32
42
  //# sourceMappingURL=functions_data.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"functions_data.js","sourceRoot":"","sources":["../../src/lib/functions_data.ts"],"names":[],"mappings":";;;AAAA;;;;GAIG;AACH,MAAa,aAAa;IACxB;;;;;;;;;;;;;;OAcG;IACH,YAAqB,EAAU,EAAW,IAAqE,EAAW,OAAkC,EAAE;QAAzI,OAAE,GAAF,EAAE,CAAQ;QAAW,SAAI,GAAJ,IAAI,CAAiE;QAAW,SAAI,GAAJ,IAAI,CAAgC;IAAG,CAAC;CACnK;AAjBD,sCAiBC"}
1
+ {"version":3,"file":"functions_data.js","sourceRoot":"","sources":["../../src/lib/functions_data.ts"],"names":[],"mappings":";;;AAAA,qDAAiD;AAEjD;;;;GAIG;AACH,MAAa,aAAc,SAAQ,8BAAa;IAC9C;;;;;;;;;;;;;;;;;;;OAmBG;IACH,YACW,EAAU,EACV,IAAqE,EACrE,OAAkC,EAAE;QAE7C,KAAK,EAAE,CAAC;QAJC,OAAE,GAAF,EAAE,CAAQ;QACV,SAAI,GAAJ,IAAI,CAAiE;QACrE,SAAI,GAAJ,IAAI,CAAgC;IAG/C,CAAC;IAED,KAAK,CACH,MAAgB,EAChB,IAAgC;QAEhC,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IACjC,CAAC;CACF;AAnCD,sCAmCC"}
@@ -0,0 +1,42 @@
1
+ import * as functions from "firebase-functions";
2
+ import { FunctionsBase } from "./functions_base";
3
+ /**
4
+ * Base class for defining Function data for HTTP request execution.
5
+ *
6
+ * HTTPリクエスト実行用のFunctionのデータを定義するためのベースクラス。
7
+ */
8
+ export declare abstract class RequestProcessFunctionBase extends FunctionsBase {
9
+ /**
10
+ * Base class for defining Function data for HTTP request execution.
11
+ *
12
+ * HTTPリクエスト実行用のFunctionのデータを定義するためのベースクラス。
13
+ */
14
+ constructor();
15
+ /**
16
+ * Specify the actual contents of the process.
17
+ *
18
+ * 実際の処理の中身を指定します。
19
+ *
20
+ * @param reqest
21
+ * Request passed to Functions.
22
+ *
23
+ * Functionsに渡されたRequest。
24
+ *
25
+ * @param response
26
+ * Response passed to Functions.
27
+ *
28
+ * Functionsに渡されたResponse。
29
+ *
30
+ * @param options
31
+ * Options passed to Functions.
32
+ *
33
+ * Functionsに渡されたオプション。
34
+ */
35
+ abstract process(reqest: functions.https.Request, response: functions.Response, options: Record<string, any>): Promise<void>;
36
+ data: {
37
+ [key: string]: string;
38
+ };
39
+ build(regions: string[], data: {
40
+ [key: string]: string;
41
+ }): Function;
42
+ }
@@ -0,0 +1,61 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
26
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
27
+ return new (P || (P = Promise))(function (resolve, reject) {
28
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
29
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
30
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
31
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
32
+ });
33
+ };
34
+ Object.defineProperty(exports, "__esModule", { value: true });
35
+ exports.RequestProcessFunctionBase = void 0;
36
+ const functions = __importStar(require("firebase-functions"));
37
+ const functions_base_1 = require("./functions_base");
38
+ /**
39
+ * Base class for defining Function data for HTTP request execution.
40
+ *
41
+ * HTTPリクエスト実行用のFunctionのデータを定義するためのベースクラス。
42
+ */
43
+ class RequestProcessFunctionBase extends functions_base_1.FunctionsBase {
44
+ /**
45
+ * Base class for defining Function data for HTTP request execution.
46
+ *
47
+ * HTTPリクエスト実行用のFunctionのデータを定義するためのベースクラス。
48
+ */
49
+ constructor() {
50
+ super();
51
+ this.data = {};
52
+ }
53
+ build(regions, data) {
54
+ return functions.region(...regions).https.onRequest((req, res) => __awaiter(this, void 0, void 0, function* () {
55
+ const config = functions.config();
56
+ return this.process(req, res, config);
57
+ }));
58
+ }
59
+ }
60
+ exports.RequestProcessFunctionBase = RequestProcessFunctionBase;
61
+ //# sourceMappingURL=request_process_function_base.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"request_process_function_base.js","sourceRoot":"","sources":["../../src/lib/request_process_function_base.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,8DAAgD;AAChD,qDAAiD;AAEjD;;;;GAIG;AACH,MAAsB,0BAA2B,SAAQ,8BAAa;IAClE;;;;OAIG;IACH;QACI,KAAK,EAAE,CAAC;QAyBZ,SAAI,GAA8B,EAAE,CAAC;IAxBrC,CAAC;IAyBD,KAAK,CAAC,OAAiB,EAAE,IAA+B;QACpD,OAAO,SAAS,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAO,GAAG,EAAE,GAAG,EAAE,EAAE;YACnE,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC;YAClC,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;QAC1C,CAAC,CAAA,CAAC,CAAC;IACP,CAAC;CACJ;AAvCD,gEAuCC"}
@@ -0,0 +1,39 @@
1
+ import { FunctionsBase } from "./functions_base";
2
+ /**
3
+ * Base class for defining the data of Functions for periodic scheduled execution.
4
+ *
5
+ * 定期スケジュール実行用のFunctionのデータを定義するためのベースクラス。
6
+ */
7
+ export declare abstract class ScheduleProcessFunctionBase extends FunctionsBase {
8
+ /**
9
+ * Base class for defining the data of Functions for periodic scheduled execution.
10
+ *
11
+ * 定期スケジュール実行用のFunctionのデータを定義するためのベースクラス。
12
+ */
13
+ constructor();
14
+ /**
15
+ * Specify the schedule to execute the process in cron format.
16
+ *
17
+ * 処理を実行するスケジュールをcron形式で指定します。
18
+ *
19
+ * https://firebase.google.com/docs/functions/schedule-functions
20
+ */
21
+ abstract schedule: string;
22
+ /**
23
+ * Specify the actual contents of the process.
24
+ *
25
+ * 実際の処理の中身を指定します。
26
+ *
27
+ * @param options
28
+ * Options passed to Functions.
29
+ *
30
+ * Functionsに渡されたオプション。
31
+ */
32
+ abstract process(options: Record<string, any>): Promise<void>;
33
+ data: {
34
+ [key: string]: string;
35
+ };
36
+ build(regions: string[], data: {
37
+ [key: string]: string;
38
+ }): Function;
39
+ }
@@ -0,0 +1,61 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
26
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
27
+ return new (P || (P = Promise))(function (resolve, reject) {
28
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
29
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
30
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
31
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
32
+ });
33
+ };
34
+ Object.defineProperty(exports, "__esModule", { value: true });
35
+ exports.ScheduleProcessFunctionBase = void 0;
36
+ const functions = __importStar(require("firebase-functions"));
37
+ const functions_base_1 = require("./functions_base");
38
+ /**
39
+ * Base class for defining the data of Functions for periodic scheduled execution.
40
+ *
41
+ * 定期スケジュール実行用のFunctionのデータを定義するためのベースクラス。
42
+ */
43
+ class ScheduleProcessFunctionBase extends functions_base_1.FunctionsBase {
44
+ /**
45
+ * Base class for defining the data of Functions for periodic scheduled execution.
46
+ *
47
+ * 定期スケジュール実行用のFunctionのデータを定義するためのベースクラス。
48
+ */
49
+ constructor() {
50
+ super();
51
+ this.data = {};
52
+ }
53
+ build(regions, data) {
54
+ return functions.region(...regions).pubsub.schedule(this.schedule).onRun((event) => __awaiter(this, void 0, void 0, function* () {
55
+ const config = functions.config();
56
+ return this.process(config);
57
+ }));
58
+ }
59
+ }
60
+ exports.ScheduleProcessFunctionBase = ScheduleProcessFunctionBase;
61
+ //# sourceMappingURL=schedule_process_function_base.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schedule_process_function_base.js","sourceRoot":"","sources":["../../src/lib/schedule_process_function_base.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,8DAAgD;AAChD,qDAAiD;AAEjD;;;;GAIG;AACH,MAAsB,2BAA4B,SAAQ,8BAAa;IACnE;;;;OAIG;IACH;QACI,KAAK,EAAE,CAAC;QAwBZ,SAAI,GAA8B,EAAE,CAAC;IAvBrC,CAAC;IAwBD,KAAK,CAAC,OAAiB,EAAE,IAA+B;QACpD,OAAO,SAAS,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,CAAO,KAAK,EAAE,EAAE;YACrF,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC;YAClC,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAChC,CAAC,CAAA,CAAC,CAAC;IACP,CAAC;CACJ;AAtCD,kEAsCC"}
@@ -0,0 +1,47 @@
1
+ /**
2
+ * Define the process for PUSH notification.
3
+ *
4
+ * PUSH通知を行うための処理を定義します。
5
+ *
6
+ * @param title
7
+ * The title of the notice should be listed.
8
+ *
9
+ * 通知タイトルを記載します。
10
+ *
11
+ * @param body
12
+ * The contents of the notice will be described.
13
+ *
14
+ * 通知内容を記載します。
15
+ *
16
+ * @param channel_id
17
+ * Describe ChannelId for Android.
18
+ *
19
+ * Android向けのChannelIdを記載します。
20
+ *
21
+ * @param data
22
+ * Specify the data to be placed on the notification.
23
+ *
24
+ * 通知に乗せるデータを指定します。
25
+ *
26
+ * @param token
27
+ * Specifies the FCM token.
28
+ *
29
+ * FCMトークンを指定します。
30
+ *
31
+ * @param topic
32
+ * Specifies the topic of the FCM.
33
+ *
34
+ * FCMのトピックを指定します。
35
+ */
36
+ export declare function sendNotification({ title, body, data, channelId, token, topic, }: {
37
+ title: string;
38
+ body: string;
39
+ channelId: string | undefined;
40
+ data: {
41
+ [key: string]: string;
42
+ } | undefined;
43
+ token: string | undefined;
44
+ topic: string | undefined;
45
+ }): Promise<{
46
+ [key: string]: any;
47
+ }>;
@@ -0,0 +1,135 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
26
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
27
+ return new (P || (P = Promise))(function (resolve, reject) {
28
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
29
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
30
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
31
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
32
+ });
33
+ };
34
+ Object.defineProperty(exports, "__esModule", { value: true });
35
+ exports.sendNotification = void 0;
36
+ const functions = __importStar(require("firebase-functions"));
37
+ const admin = __importStar(require("firebase-admin"));
38
+ /**
39
+ * Define the process for PUSH notification.
40
+ *
41
+ * PUSH通知を行うための処理を定義します。
42
+ *
43
+ * @param title
44
+ * The title of the notice should be listed.
45
+ *
46
+ * 通知タイトルを記載します。
47
+ *
48
+ * @param body
49
+ * The contents of the notice will be described.
50
+ *
51
+ * 通知内容を記載します。
52
+ *
53
+ * @param channel_id
54
+ * Describe ChannelId for Android.
55
+ *
56
+ * Android向けのChannelIdを記載します。
57
+ *
58
+ * @param data
59
+ * Specify the data to be placed on the notification.
60
+ *
61
+ * 通知に乗せるデータを指定します。
62
+ *
63
+ * @param token
64
+ * Specifies the FCM token.
65
+ *
66
+ * FCMトークンを指定します。
67
+ *
68
+ * @param topic
69
+ * Specifies the topic of the FCM.
70
+ *
71
+ * FCMのトピックを指定します。
72
+ */
73
+ function sendNotification({ title, body, data, channelId, token, topic, }) {
74
+ return __awaiter(this, void 0, void 0, function* () {
75
+ try {
76
+ if (token === undefined && topic === undefined) {
77
+ throw new functions.https.HttpsError("invalid-argument", "Either [token] or [topic] must be specified.");
78
+ }
79
+ if (token !== undefined) {
80
+ const res = yield admin.messaging().send({
81
+ notification: {
82
+ title: title,
83
+ body: body,
84
+ },
85
+ android: {
86
+ priority: "high",
87
+ notification: {
88
+ title: title,
89
+ body: body,
90
+ clickAction: "FLUTTER_NOTIFICATION_CLICK",
91
+ channelId: channelId,
92
+ },
93
+ },
94
+ data: data,
95
+ token: token,
96
+ });
97
+ return {
98
+ success: true,
99
+ message_id: res,
100
+ };
101
+ }
102
+ else if (topic !== undefined) {
103
+ const res = yield admin.messaging().send({
104
+ notification: {
105
+ title: title,
106
+ body: body,
107
+ },
108
+ android: {
109
+ priority: "high",
110
+ notification: {
111
+ title: title,
112
+ body: body,
113
+ clickAction: "FLUTTER_NOTIFICATION_CLICK",
114
+ channelId: channelId,
115
+ },
116
+ },
117
+ data: data,
118
+ topic: topic,
119
+ });
120
+ return {
121
+ success: true,
122
+ message_id: res,
123
+ };
124
+ }
125
+ }
126
+ catch (err) {
127
+ throw err;
128
+ }
129
+ return {
130
+ success: true,
131
+ };
132
+ });
133
+ }
134
+ exports.sendNotification = sendNotification;
135
+ //# sourceMappingURL=send_notification.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"send_notification.js","sourceRoot":"","sources":["../../src/lib/send_notification.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,8DAAgD;AAChD,sDAAwC;AAExC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,SAAsB,gBAAgB,CAAC,EACnC,KAAK,EACL,IAAI,EACJ,IAAI,EACJ,SAAS,EACT,KAAK,EACL,KAAK,GAQJ;;QACD,IAAI;YACA,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,SAAS,EAAE;gBAC5C,MAAM,IAAI,SAAS,CAAC,KAAK,CAAC,UAAU,CAAC,kBAAkB,EAAE,8CAA8C,CAAC,CAAC;aAC5G;YACD,IAAI,KAAK,KAAK,SAAS,EAAE;gBACrB,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,SAAS,EAAE,CAAC,IAAI,CACpC;oBACI,YAAY,EAAE;wBACV,KAAK,EAAE,KAAK;wBACZ,IAAI,EAAE,IAAI;qBACb;oBACD,OAAO,EAAE;wBACL,QAAQ,EAAE,MAAM;wBAChB,YAAY,EAAE;4BACV,KAAK,EAAE,KAAK;4BACZ,IAAI,EAAE,IAAI;4BACV,WAAW,EAAE,4BAA4B;4BACzC,SAAS,EAAE,SAAS;yBACvB;qBACJ;oBACD,IAAI,EAAE,IAAI;oBACV,KAAK,EAAE,KAAK;iBACf,CACJ,CAAC;gBACF,OAAO;oBACH,OAAO,EAAE,IAAI;oBACb,UAAU,EAAE,GAAG;iBAClB,CAAC;aACL;iBAAM,IAAI,KAAK,KAAK,SAAS,EAAE;gBAC5B,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,SAAS,EAAE,CAAC,IAAI,CACpC;oBACI,YAAY,EAAE;wBACV,KAAK,EAAE,KAAK;wBACZ,IAAI,EAAE,IAAI;qBACb;oBACD,OAAO,EAAE;wBACL,QAAQ,EAAE,MAAM;wBAChB,YAAY,EAAE;4BACV,KAAK,EAAE,KAAK;4BACZ,IAAI,EAAE,IAAI;4BACV,WAAW,EAAE,4BAA4B;4BACzC,SAAS,EAAE,SAAS;yBACvB;qBACJ;oBACD,IAAI,EAAE,IAAI;oBACV,KAAK,EAAE,KAAK;iBACf,CACJ,CAAC;gBACF,OAAO;oBACH,OAAO,EAAE,IAAI;oBACb,UAAU,EAAE,GAAG;iBAClB,CAAC;aACL;SACJ;QAAC,OAAO,GAAG,EAAE;YACV,MAAM,GAAG,CAAC;SACb;QACD,OAAO;YACH,OAAO,EAAE,IAAI;SAChB,CAAC;IAEN,CAAC;CAAA;AA3ED,4CA2EC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mathrunet/masamune",
3
- "version": "1.0.0",
3
+ "version": "1.1.1",
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",