@mathrunet/masamune 2.4.4 → 2.6.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.
Files changed (152) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/dist/functions/algolia.js +1 -1
  3. package/dist/functions/algolia.js.map +1 -1
  4. package/dist/functions/consumable_verify_android.js +2 -2
  5. package/dist/functions/consumable_verify_android.js.map +1 -1
  6. package/dist/functions/consumable_verify_ios.js +2 -2
  7. package/dist/functions/consumable_verify_ios.js.map +1 -1
  8. package/dist/functions/delete_documents.d.ts +1 -0
  9. package/dist/functions/delete_documents.js +75 -0
  10. package/dist/functions/delete_documents.js.map +1 -0
  11. package/dist/functions/gmail.js +1 -1
  12. package/dist/functions/gmail.js.map +1 -1
  13. package/dist/functions/nonconsumable_verify_android.js +2 -2
  14. package/dist/functions/nonconsumable_verify_android.js.map +1 -1
  15. package/dist/functions/nonconsumable_verify_ios.js +2 -2
  16. package/dist/functions/nonconsumable_verify_ios.js.map +1 -1
  17. package/dist/functions/purchase_webhook_android.js +1 -1
  18. package/dist/functions/purchase_webhook_android.js.map +1 -1
  19. package/dist/functions/scheduler.js +24 -3
  20. package/dist/functions/scheduler.js.map +1 -1
  21. package/dist/functions/send_grid.js +1 -1
  22. package/dist/functions/send_grid.js.map +1 -1
  23. package/dist/functions/send_notification.js +29 -1
  24. package/dist/functions/send_notification.js.map +1 -1
  25. package/dist/functions/stripe.d.ts +1 -1
  26. package/dist/functions/stripe.js +3 -3
  27. package/dist/functions/stripe.js.map +1 -1
  28. package/dist/functions/stripe_webhook_secure.d.ts +1 -1
  29. package/dist/functions/stripe_webhook_secure.js +1 -1
  30. package/dist/functions/stripe_webhook_secure.js.map +1 -1
  31. package/dist/functions/subscription_verify_android.js +2 -2
  32. package/dist/functions/subscription_verify_android.js.map +1 -1
  33. package/dist/functions/subscription_verify_ios.js +2 -2
  34. package/dist/functions/subscription_verify_ios.js.map +1 -1
  35. package/dist/functions.d.ts +10 -4
  36. package/dist/functions.js +10 -4
  37. package/dist/functions.js.map +1 -1
  38. package/dist/index.d.ts +10 -10
  39. package/dist/index.js +9 -9
  40. package/dist/index.js.map +1 -1
  41. package/dist/lib/exntensions/string.extension.d.ts +179 -0
  42. package/dist/lib/exntensions/string.extension.js +190 -0
  43. package/dist/lib/exntensions/string.extension.js.map +1 -0
  44. package/dist/lib/functions/delete_documents.d.ts +31 -0
  45. package/dist/lib/functions/delete_documents.js +104 -0
  46. package/dist/lib/functions/delete_documents.js.map +1 -0
  47. package/dist/lib/functions/firestore.d.ts +86 -0
  48. package/dist/lib/functions/firestore.js +289 -0
  49. package/dist/lib/functions/firestore.js.map +1 -0
  50. package/dist/lib/functions/gmail.d.ts +39 -0
  51. package/dist/lib/functions/gmail.js +65 -0
  52. package/dist/lib/functions/gmail.js.map +1 -0
  53. package/dist/lib/functions/send_grid.d.ts +33 -0
  54. package/dist/lib/functions/send_grid.js +58 -0
  55. package/dist/lib/functions/send_grid.js.map +1 -0
  56. package/dist/lib/functions/send_notification.d.ts +87 -0
  57. package/dist/lib/functions/send_notification.js +278 -0
  58. package/dist/lib/functions/send_notification.js.map +1 -0
  59. package/dist/lib/functions/update_subscription.d.ts +83 -0
  60. package/dist/lib/functions/update_subscription.js +143 -0
  61. package/dist/lib/functions/update_subscription.js.map +1 -0
  62. package/dist/lib/functions/update_unlock.d.ts +13 -0
  63. package/dist/lib/functions/update_unlock.js +64 -0
  64. package/dist/lib/functions/update_unlock.js.map +1 -0
  65. package/dist/lib/functions/update_wallet.d.ts +19 -0
  66. package/dist/lib/functions/update_wallet.js +70 -0
  67. package/dist/lib/functions/update_wallet.js.map +1 -0
  68. package/dist/lib/functions/verify_android.d.ts +50 -0
  69. package/dist/lib/functions/verify_android.js +121 -0
  70. package/dist/lib/functions/verify_android.js.map +1 -0
  71. package/dist/lib/functions/verify_ios.d.ts +26 -0
  72. package/dist/lib/functions/verify_ios.js +110 -0
  73. package/dist/lib/functions/verify_ios.js.map +1 -0
  74. package/dist/lib/model_field_value/converters/firestore_basic_converter.d.ts +20 -0
  75. package/dist/lib/model_field_value/converters/firestore_basic_converter.js +25 -0
  76. package/dist/lib/model_field_value/converters/firestore_basic_converter.js.map +1 -0
  77. package/dist/lib/model_field_value/converters/firestore_enum_converter.d.ts +20 -0
  78. package/dist/lib/model_field_value/converters/firestore_enum_converter.js +25 -0
  79. package/dist/lib/model_field_value/converters/firestore_enum_converter.js.map +1 -0
  80. package/dist/lib/model_field_value/converters/firestore_model_command_base_converter.d.ts +20 -0
  81. package/dist/lib/model_field_value/converters/firestore_model_command_base_converter.js +38 -0
  82. package/dist/lib/model_field_value/converters/firestore_model_command_base_converter.js.map +1 -0
  83. package/dist/lib/model_field_value/converters/firestore_model_counter_converter.d.ts +20 -0
  84. package/dist/lib/model_field_value/converters/firestore_model_counter_converter.js +78 -0
  85. package/dist/lib/model_field_value/converters/firestore_model_counter_converter.js.map +1 -0
  86. package/dist/lib/model_field_value/converters/firestore_model_date_converter.d.ts +20 -0
  87. package/dist/lib/model_field_value/converters/firestore_model_date_converter.js +95 -0
  88. package/dist/lib/model_field_value/converters/firestore_model_date_converter.js.map +1 -0
  89. package/dist/lib/model_field_value/converters/firestore_model_geo_value_converter.d.ts +20 -0
  90. package/dist/lib/model_field_value/converters/firestore_model_geo_value_converter.js +77 -0
  91. package/dist/lib/model_field_value/converters/firestore_model_geo_value_converter.js.map +1 -0
  92. package/dist/lib/model_field_value/converters/firestore_model_image_uri_converter.d.ts +20 -0
  93. package/dist/lib/model_field_value/converters/firestore_model_image_uri_converter.js +74 -0
  94. package/dist/lib/model_field_value/converters/firestore_model_image_uri_converter.js.map +1 -0
  95. package/dist/lib/model_field_value/converters/firestore_model_locale_converter.d.ts +20 -0
  96. package/dist/lib/model_field_value/converters/firestore_model_locale_converter.js +74 -0
  97. package/dist/lib/model_field_value/converters/firestore_model_locale_converter.js.map +1 -0
  98. package/dist/lib/model_field_value/converters/firestore_model_localized_value_converter.d.ts +20 -0
  99. package/dist/lib/model_field_value/converters/firestore_model_localized_value_converter.js +36 -0
  100. package/dist/lib/model_field_value/converters/firestore_model_localized_value_converter.js.map +1 -0
  101. package/dist/lib/model_field_value/converters/firestore_model_ref_converter.d.ts +20 -0
  102. package/dist/lib/model_field_value/converters/firestore_model_ref_converter.js +60 -0
  103. package/dist/lib/model_field_value/converters/firestore_model_ref_converter.js.map +1 -0
  104. package/dist/lib/model_field_value/converters/firestore_model_search_converter.d.ts +20 -0
  105. package/dist/lib/model_field_value/converters/firestore_model_search_converter.js +36 -0
  106. package/dist/lib/model_field_value/converters/firestore_model_search_converter.js.map +1 -0
  107. package/dist/lib/model_field_value/converters/firestore_model_timestamp_converter.d.ts +20 -0
  108. package/dist/lib/model_field_value/converters/firestore_model_timestamp_converter.js +95 -0
  109. package/dist/lib/model_field_value/converters/firestore_model_timestamp_converter.js.map +1 -0
  110. package/dist/lib/model_field_value/converters/firestore_model_token_converter.d.ts +20 -0
  111. package/dist/lib/model_field_value/converters/firestore_model_token_converter.js +36 -0
  112. package/dist/lib/model_field_value/converters/firestore_model_token_converter.js.map +1 -0
  113. package/dist/lib/model_field_value/converters/firestore_model_uri_converter.d.ts +20 -0
  114. package/dist/lib/model_field_value/converters/firestore_model_uri_converter.js +74 -0
  115. package/dist/lib/model_field_value/converters/firestore_model_uri_converter.js.map +1 -0
  116. package/dist/lib/model_field_value/converters/firestore_model_video_uri_converter.d.ts +20 -0
  117. package/dist/lib/model_field_value/converters/firestore_model_video_uri_converter.js +74 -0
  118. package/dist/lib/model_field_value/converters/firestore_model_video_uri_converter.js.map +1 -0
  119. package/dist/lib/model_field_value/converters/firestore_null_converter.d.ts +20 -0
  120. package/dist/lib/model_field_value/converters/firestore_null_converter.js +25 -0
  121. package/dist/lib/model_field_value/converters/firestore_null_converter.js.map +1 -0
  122. package/dist/lib/model_field_value/default_firestore_model_field_value_converter.d.ts +8 -0
  123. package/dist/lib/model_field_value/default_firestore_model_field_value_converter.js +44 -0
  124. package/dist/lib/model_field_value/default_firestore_model_field_value_converter.js.map +1 -0
  125. package/dist/lib/model_field_value/firestore_model_field_value_converter.d.ts +140 -0
  126. package/dist/lib/model_field_value/firestore_model_field_value_converter.js +127 -0
  127. package/dist/lib/model_field_value/firestore_model_field_value_converter.js.map +1 -0
  128. package/dist/lib/model_field_value/model_field_value.d.ts +82 -0
  129. package/dist/lib/model_field_value/model_field_value.js +104 -0
  130. package/dist/lib/model_field_value/model_field_value.js.map +1 -0
  131. package/dist/lib/src/call_process_function_base.d.ts +39 -0
  132. package/dist/lib/src/call_process_function_base.js +69 -0
  133. package/dist/lib/src/call_process_function_base.js.map +1 -0
  134. package/dist/lib/src/functions_base.d.ts +226 -0
  135. package/dist/lib/src/functions_base.js +38 -0
  136. package/dist/lib/src/functions_base.js.map +1 -0
  137. package/dist/lib/src/functions_data.d.ts +10 -0
  138. package/dist/lib/src/functions_data.js +19 -0
  139. package/dist/lib/src/functions_data.js.map +1 -0
  140. package/dist/lib/src/request_process_function_base.d.ts +39 -0
  141. package/dist/lib/src/request_process_function_base.js +69 -0
  142. package/dist/lib/src/request_process_function_base.js.map +1 -0
  143. package/dist/lib/src/schedule_process_function_base.d.ts +33 -0
  144. package/dist/lib/src/schedule_process_function_base.js +70 -0
  145. package/dist/lib/src/schedule_process_function_base.js.map +1 -0
  146. package/dist/lib/src/sql_api_base.d.ts +185 -0
  147. package/dist/lib/src/sql_api_base.js +94 -0
  148. package/dist/lib/src/sql_api_base.js.map +1 -0
  149. package/dist/lib/utils.d.ts +21 -0
  150. package/dist/lib/utils.js +32 -1
  151. package/dist/lib/utils.js.map +1 -1
  152. package/package.json +1 -1
@@ -0,0 +1,190 @@
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
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ const crypto = __importStar(require("crypto"));
27
+ String.prototype.encrypt = function ({ key, ivKey }) {
28
+ const raw = this.valueOf();
29
+ const iv = Buffer.from(ivKey);
30
+ const cipher = crypto.createCipheriv("aes-256-cbc", Buffer.from(key), iv);
31
+ let encrypted = cipher.update(raw);
32
+ encrypted = Buffer.concat([encrypted, cipher.final()]);
33
+ return encrypted.toString("hex");
34
+ };
35
+ String.prototype.decrypt = function ({ key, ivKey }) {
36
+ const encrypted = this.valueOf();
37
+ const iv = Buffer.from(ivKey);
38
+ const encryptedText = Buffer.from(encrypted, "hex");
39
+ const decipher = crypto.createDecipheriv("aes-256-cbc", Buffer.from(key), iv);
40
+ let decrypted = decipher.update(encryptedText);
41
+ decrypted = Buffer.concat([decrypted, decipher.final()]);
42
+ return decrypted.toString();
43
+ };
44
+ String.prototype.toZenkakuNumericAndAlphabet = function () {
45
+ return this.valueOf().replace(/[A-Za-z0-9]/g, (s) => {
46
+ return String.fromCharCode(s.charCodeAt(0) + 65248);
47
+ });
48
+ };
49
+ String.prototype.toHankakuNumericAndAlphabet = function () {
50
+ return this.valueOf().replace(/[A-Za-z0-9]/g, (s) => {
51
+ return String.fromCharCode(s.charCodeAt(0) - 65248);
52
+ });
53
+ };
54
+ String.prototype.toHiragana = function () {
55
+ return this.valueOf().replace(/[\u30a1-\u30f6]/g, (s) => {
56
+ return String.fromCharCode(s.charCodeAt(0) - 0x60);
57
+ });
58
+ };
59
+ String.prototype.toKatakana = function () {
60
+ return this.valueOf().replace(/[\u3041-\u3096]/g, (s) => {
61
+ return String.fromCharCode(s.charCodeAt(0) + 0x60);
62
+ });
63
+ };
64
+ String.prototype.toZenkakuKatakana = function () {
65
+ let text = this.valueOf();
66
+ text = text.replace(/[ウカ-トハ-ホ]゙/g, (s) => {
67
+ var _a;
68
+ const dakuten = {
69
+ 'ヴ': 'ヴ',
70
+ 'ガ': 'ガ',
71
+ 'ギ': 'ギ',
72
+ 'グ': 'グ',
73
+ 'ゲ': 'ゲ',
74
+ 'ゴ': 'ゴ',
75
+ 'ザ': 'ザ',
76
+ 'ジ': 'ジ',
77
+ 'ズ': 'ズ',
78
+ 'ゼ': 'ゼ',
79
+ 'ゾ': 'ゾ',
80
+ 'ダ': 'ダ',
81
+ 'ヂ': 'ヂ',
82
+ 'ヅ': 'ヅ',
83
+ 'デ': 'デ',
84
+ 'ド': 'ド',
85
+ 'バ': 'バ',
86
+ 'ビ': 'ビ',
87
+ 'ブ': 'ブ',
88
+ 'ベ': 'ベ',
89
+ 'ボ': 'ボ',
90
+ };
91
+ return (_a = dakuten[s]) !== null && _a !== void 0 ? _a : s;
92
+ });
93
+ text = text.replace(/[ハ-ホ]゚/g, (s) => {
94
+ var _a;
95
+ const handakuten = {
96
+ 'パ': 'パ',
97
+ 'ピ': 'ピ',
98
+ 'プ': 'プ',
99
+ 'ペ': 'ペ',
100
+ 'ポ': 'ポ',
101
+ };
102
+ return (_a = handakuten[s]) !== null && _a !== void 0 ? _a : s;
103
+ });
104
+ text = text.replace(/[ヲ-ンー]/g, (s) => {
105
+ var _a;
106
+ const other = {
107
+ 'ア': 'ア',
108
+ 'イ': 'イ',
109
+ 'ウ': 'ウ',
110
+ 'エ': 'エ',
111
+ 'オ': 'オ',
112
+ 'ァ': 'ァ',
113
+ 'ィ': 'ィ',
114
+ 'ゥ': 'ゥ',
115
+ 'ェ': 'ェ',
116
+ 'ォ': 'ォ',
117
+ 'カ': 'カ',
118
+ 'キ': 'キ',
119
+ 'ク': 'ク',
120
+ 'ケ': 'ケ',
121
+ 'コ': 'コ',
122
+ 'サ': 'サ',
123
+ 'シ': 'シ',
124
+ 'ス': 'ス',
125
+ 'セ': 'セ',
126
+ 'ソ': 'ソ',
127
+ 'タ': 'タ',
128
+ 'チ': 'チ',
129
+ 'ツ': 'ツ',
130
+ 'テ': 'テ',
131
+ 'ト': 'ト',
132
+ 'ナ': 'ナ',
133
+ 'ニ': 'ニ',
134
+ 'ヌ': 'ヌ',
135
+ 'ネ': 'ネ',
136
+ 'ノ': 'ノ',
137
+ 'ハ': 'ハ',
138
+ 'ヒ': 'ヒ',
139
+ 'フ': 'フ',
140
+ 'ヘ': 'ヘ',
141
+ 'ホ': 'ホ',
142
+ 'マ': 'マ',
143
+ 'ミ': 'ミ',
144
+ 'ム': 'ム',
145
+ 'メ': 'メ',
146
+ 'モ': 'モ',
147
+ 'ヤ': 'ヤ',
148
+ 'ユ': 'ユ',
149
+ 'ヨ': 'ヨ',
150
+ 'ラ': 'ラ',
151
+ 'リ': 'リ',
152
+ 'ル': 'ル',
153
+ 'レ': 'レ',
154
+ 'ロ': 'ロ',
155
+ 'ワ': 'ワ',
156
+ 'ヲ': 'ヲ',
157
+ 'ン': 'ン',
158
+ 'ッ': 'ッ',
159
+ 'ャ': 'ャ',
160
+ 'ュ': 'ュ',
161
+ 'ョ': 'ョ',
162
+ 'ー': 'ー',
163
+ };
164
+ return (_a = other[s]) !== null && _a !== void 0 ? _a : s;
165
+ });
166
+ return text;
167
+ };
168
+ String.prototype.splitByCharacter = function () {
169
+ return this.valueOf().split("");
170
+ };
171
+ String.prototype.splitByBigram = function () {
172
+ const text = this.valueOf();
173
+ const result = [];
174
+ for (let i = 0; i < text.length - 1; i++) {
175
+ result.push(text.substring(i, Math.min(i + 2, text.length)));
176
+ }
177
+ return result;
178
+ };
179
+ String.prototype.splitByCharacterAndBigram = function () {
180
+ return [...this.splitByCharacter(), ...this.splitByBigram()];
181
+ };
182
+ String.prototype.splitByTrigram = function () {
183
+ const text = this.valueOf();
184
+ const result = [];
185
+ for (let i = 0; i < text.length - 2; i++) {
186
+ result.push(text.substring(i, Math.min(i + 3, text.length)));
187
+ }
188
+ return result;
189
+ };
190
+ //# sourceMappingURL=string.extension.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"string.extension.js","sourceRoot":"","sources":["../../../src/lib/exntensions/string.extension.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,31 @@
1
+ /**
2
+ * Loads related collections and deletes data matching the criteria.
3
+ *
4
+ * 関連するコレクションをロードし、条件に一致するデータを削除します。
5
+ *
6
+ * @param collectionPath
7
+ * Specify the path of the collection to be deleted.
8
+ *
9
+ * 削除対象のコレクションのパスを指定します。
10
+ *
11
+ * @param wheres
12
+ * Specifies the conditions under which collections to be deleted are retrieved.
13
+ *
14
+ * 削除対象のコレクションを取得する際の条件を指定します。
15
+ *
16
+ * @param conditions
17
+ * Specify the conditions under which data is to be deleted.
18
+ *
19
+ * データを削除対象とする条件を指定します。
20
+ */
21
+ export declare function deleteDocuments({ collectionPath, wheres, conditions, }: {
22
+ collectionPath: string;
23
+ wheres?: {
24
+ [key: string]: string;
25
+ }[] | undefined;
26
+ conditions?: {
27
+ [key: string]: string;
28
+ }[] | undefined;
29
+ }): Promise<{
30
+ [key: string]: any;
31
+ }>;
@@ -0,0 +1,104 @@
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.deleteDocuments = void 0;
36
+ const admin = __importStar(require("firebase-admin"));
37
+ const utils_1 = require("../utils");
38
+ const firestore = __importStar(require("./firestore"));
39
+ /**
40
+ * Loads related collections and deletes data matching the criteria.
41
+ *
42
+ * 関連するコレクションをロードし、条件に一致するデータを削除します。
43
+ *
44
+ * @param collectionPath
45
+ * Specify the path of the collection to be deleted.
46
+ *
47
+ * 削除対象のコレクションのパスを指定します。
48
+ *
49
+ * @param wheres
50
+ * Specifies the conditions under which collections to be deleted are retrieved.
51
+ *
52
+ * 削除対象のコレクションを取得する際の条件を指定します。
53
+ *
54
+ * @param conditions
55
+ * Specify the conditions under which data is to be deleted.
56
+ *
57
+ * データを削除対象とする条件を指定します。
58
+ */
59
+ function deleteDocuments(_a) {
60
+ return __awaiter(this, arguments, void 0, function* ({ collectionPath, wheres, conditions, }) {
61
+ const res = {};
62
+ try {
63
+ const firestoreInstance = admin.firestore();
64
+ const collectionRef = firestore.where({
65
+ query: firestoreInstance.collection(collectionPath),
66
+ wheres: wheres
67
+ });
68
+ let cursor = null;
69
+ let collection = null;
70
+ do {
71
+ collection = yield firestore.cursor({ query: collectionRef, limit: 500, cursor: cursor }).get();
72
+ const deleteList = [];
73
+ for (let doc of collection.docs) {
74
+ const data = doc.data();
75
+ if (!(yield firestore.hasMatch({ data: data, conditions: conditions }))) {
76
+ continue;
77
+ }
78
+ deleteList.push(doc.ref);
79
+ }
80
+ const splitted = (0, utils_1.splitArray)(deleteList, 500);
81
+ for (let list of splitted) {
82
+ const batch = firestoreInstance.batch();
83
+ for (let doc of list) {
84
+ batch.delete(doc);
85
+ }
86
+ yield batch.commit();
87
+ }
88
+ if (collection.docs.length < 500) {
89
+ break;
90
+ }
91
+ cursor = collection.docs[collection.docs.length - 1];
92
+ } while (collection.docs.length >= 500);
93
+ }
94
+ catch (err) {
95
+ throw err;
96
+ }
97
+ return {
98
+ success: true,
99
+ results: res,
100
+ };
101
+ });
102
+ }
103
+ exports.deleteDocuments = deleteDocuments;
104
+ //# sourceMappingURL=delete_documents.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"delete_documents.js","sourceRoot":"","sources":["../../../src/lib/functions/delete_documents.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,sDAAwC;AACxC,oCAAsC;AACtC,uDAAyC;AAEzC;;;;;;;;;;;;;;;;;;;GAmBG;AACH,SAAsB,eAAe;yDAAC,EAClC,cAAc,EACd,MAAM,EACN,UAAU,GAKT;QACD,MAAM,GAAG,GAA2B,EAAE,CAAC;QACvC,IAAI,CAAC;YACD,MAAM,iBAAiB,GAAG,KAAK,CAAC,SAAS,EAAE,CAAC;YAC5C,MAAM,aAAa,GAAG,SAAS,CAAC,KAAK,CAAC;gBAClC,KAAK,EAAE,iBAAiB,CAAC,UAAU,CAAC,cAAc,CAAC;gBACnD,MAAM,EAAE,MAAM;aACjB,CAAC,CAAC;YACH,IAAI,MAAM,GAAmD,IAAI,CAAC;YAClE,IAAI,UAAU,GAA2G,IAAI,CAAC;YAC9H,GAAG,CAAC;gBACA,UAAU,GAAG,MAAM,SAAS,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC;gBAChG,MAAM,UAAU,GAAoG,EAAE,CAAC;gBACvH,KAAK,IAAI,GAAG,IAAI,UAAU,CAAC,IAAI,EAAE,CAAC;oBAC9B,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,EAA4B,CAAC;oBAClD,IAAI,CAAC,CAAA,MAAM,SAAS,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,UAAU,EAAE,CAAC,CAAA,EAAE,CAAC;wBACpE,SAAS;oBACb,CAAC;oBACD,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBAC7B,CAAC;gBACD,MAAM,QAAQ,GAAG,IAAA,kBAAU,EAAC,UAAU,EAAE,GAAG,CAAC,CAAC;gBAC7C,KAAK,IAAI,IAAI,IAAI,QAAQ,EAAE,CAAC;oBACxB,MAAM,KAAK,GAAG,iBAAiB,CAAC,KAAK,EAAE,CAAC;oBACxC,KAAK,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;wBACnB,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;oBACtB,CAAC;oBACD,MAAM,KAAK,CAAC,MAAM,EAAE,CAAC;gBACzB,CAAC;gBACD,IAAI,UAAU,CAAC,IAAI,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC;oBAC/B,MAAM;gBACV,CAAC;gBACD,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YACzD,CAAC,QAAQ,UAAU,CAAC,IAAI,CAAC,MAAM,IAAI,GAAG,EAAE;QAC5C,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACX,MAAM,GAAG,CAAC;QACd,CAAC;QACD,OAAO;YACH,OAAO,EAAE,IAAI;YACb,OAAO,EAAE,GAAG;SACf,CAAC;IACN,CAAC;CAAA;AAhDD,0CAgDC"}
@@ -0,0 +1,86 @@
1
+ import * as admin from "firebase-admin";
2
+ /**
3
+ * Create a filter for loading Firestore collections.
4
+ *
5
+ * Firestoreのコレクションをロードする際のフィルターを作成します。
6
+ *
7
+ * @param query
8
+ * Specifies a reference to a Firestore collection.
9
+ *
10
+ * Firestoreのコレクションのリファレンスを指定します。
11
+ *
12
+ * @param wheres
13
+ * Specifies the filter to be applied to the collection.
14
+ *
15
+ * コレクションに適用するフィルターを指定します。
16
+ *
17
+ * @returns
18
+ * Returns a Firestore query with the specified filter.
19
+ *
20
+ * 指定されたフィルターを持つFirestoreのクエリを返します。
21
+ */
22
+ export declare function where({ query, wheres, }: {
23
+ query: admin.firestore.Query<admin.firestore.DocumentData, admin.firestore.DocumentData>;
24
+ wheres: {
25
+ [key: string]: any;
26
+ }[] | undefined;
27
+ }): admin.firestore.Query<admin.firestore.DocumentData, admin.firestore.DocumentData>;
28
+ /**
29
+ * Judges whether all the conditions in [conditons] match the document data in [data].
30
+ *
31
+ * If a reference is included in [data], the document is retrieved recursively and the condition is determined.
32
+ *
33
+ * [data]のドキュメントデータに対して、[conditions]の条件が全て一致するかどうかを判定します。
34
+ *
35
+ * [data]の中にリファレンスが含まれている場合、再帰的にドキュメントを取得し条件を判定します。
36
+ *
37
+ * @param data
38
+ * Target document data.
39
+ *
40
+ * 対象となるドキュメントデータ。
41
+ *
42
+ * @param conditions
43
+ * Conditions to be matched.
44
+ *
45
+ * 一致させる条件。
46
+ *
47
+ * @returns
48
+ * Returns true if all conditions match, false otherwise.
49
+ *
50
+ * 全ての条件が一致する場合はtrue、それ以外はfalseを返します。
51
+ */
52
+ export declare function hasMatch({ data, conditions, }: {
53
+ data: {
54
+ [key: string]: any;
55
+ };
56
+ conditions: {
57
+ [key: string]: any;
58
+ }[] | undefined;
59
+ }): Promise<boolean>;
60
+ /**
61
+ * Get [limit] documents from [cursor].
62
+ *
63
+ * [cursor]から[limit]個のドキュメントを取得します。
64
+ *
65
+ * @param query
66
+ * Specifies a reference to a Firestore collection.
67
+ *
68
+ * Firestoreのコレクションのリファレンスを指定します。
69
+ *
70
+ * @param limit
71
+ * Specifies the number of documents to be retrieved.
72
+ *
73
+ * 取得するドキュメントの数を指定します。
74
+ *
75
+ * @param cursor
76
+ * Specifies the document to start retrieving from.
77
+ *
78
+ * 取得を開始するドキュメントを指定します。
79
+ *
80
+ * @returns
81
+ */
82
+ export declare function cursor({ query, limit, cursor, }: {
83
+ query: admin.firestore.Query<admin.firestore.DocumentData, admin.firestore.DocumentData>;
84
+ limit: number;
85
+ cursor: FirebaseFirestore.QueryDocumentSnapshot | undefined | null;
86
+ }): admin.firestore.Query<admin.firestore.DocumentData, admin.firestore.DocumentData>;