@shushed/helpers 0.0.200-v2-20251128093319 → 0.0.200

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 (234) hide show
  1. package/dist/index.d.ts +34970 -0
  2. package/dist/index.js +113017 -0
  3. package/dist/package.json +3 -6
  4. package/package.json +4 -7
  5. package/dist/cjs/dist-dereferenced/asset.js +0 -4
  6. package/dist/cjs/dist-dereferenced/category.js +0 -4
  7. package/dist/cjs/dist-dereferenced/country.js +0 -4
  8. package/dist/cjs/dist-dereferenced/currency.js +0 -4
  9. package/dist/cjs/dist-dereferenced/customer-segment.js +0 -4
  10. package/dist/cjs/dist-dereferenced/development-colour.js +0 -4
  11. package/dist/cjs/dist-dereferenced/index.js +0 -69
  12. package/dist/cjs/dist-dereferenced/marketing-preferences.js +0 -4
  13. package/dist/cjs/dist-dereferenced/messages/ean-change.js +0 -4
  14. package/dist/cjs/dist-dereferenced/messages/index.js +0 -50
  15. package/dist/cjs/dist-dereferenced/messages/order/delivered.js +0 -4
  16. package/dist/cjs/dist-dereferenced/messages/order/index.js +0 -18
  17. package/dist/cjs/dist-dereferenced/messages/order/new.js +0 -4
  18. package/dist/cjs/dist-dereferenced/messages/order/processed.js +0 -4
  19. package/dist/cjs/dist-dereferenced/messages/order/return-initiated.js +0 -4
  20. package/dist/cjs/dist-dereferenced/messages/order/returned.js +0 -4
  21. package/dist/cjs/dist-dereferenced/messages/order/shipped.js +0 -4
  22. package/dist/cjs/dist-dereferenced/messages/price-change.js +0 -4
  23. package/dist/cjs/dist-dereferenced/messages/product-category.js +0 -4
  24. package/dist/cjs/dist-dereferenced/messages/product-draft.js +0 -4
  25. package/dist/cjs/dist-dereferenced/messages/product.js +0 -4
  26. package/dist/cjs/dist-dereferenced/money.js +0 -4
  27. package/dist/cjs/dist-dereferenced/order/address.js +0 -4
  28. package/dist/cjs/dist-dereferenced/order/customer.js +0 -4
  29. package/dist/cjs/dist-dereferenced/order/index.js +0 -51
  30. package/dist/cjs/dist-dereferenced/order/item.js +0 -4
  31. package/dist/cjs/dist-dereferenced/order/orderMain.js +0 -4
  32. package/dist/cjs/dist-dereferenced/order/payment.js +0 -4
  33. package/dist/cjs/dist-dereferenced/order/shipment/index.js +0 -45
  34. package/dist/cjs/dist-dereferenced/order/shipment/item/index.js +0 -11
  35. package/dist/cjs/dist-dereferenced/order/shipment/item/itemMain.js +0 -4
  36. package/dist/cjs/dist-dereferenced/order/shipment/item/returned.js +0 -4
  37. package/dist/cjs/dist-dereferenced/order/shipment/pos/index.js +0 -13
  38. package/dist/cjs/dist-dereferenced/order/shipment/pos/outbound.js +0 -4
  39. package/dist/cjs/dist-dereferenced/order/shipment/pos/posMain.js +0 -4
  40. package/dist/cjs/dist-dereferenced/order/shipment/pos/return.js +0 -4
  41. package/dist/cjs/dist-dereferenced/order/shipment/shipmentMain.js +0 -4
  42. package/dist/cjs/dist-dereferenced/order/shipment/shipped/index.js +0 -13
  43. package/dist/cjs/dist-dereferenced/order/shipment/shipped/outbound.js +0 -4
  44. package/dist/cjs/dist-dereferenced/order/shipment/shipped/return.js +0 -4
  45. package/dist/cjs/dist-dereferenced/order/shipment/shipped/shippedMain.js +0 -4
  46. package/dist/cjs/dist-dereferenced/price.js +0 -4
  47. package/dist/cjs/dist-dereferenced/product-category.js +0 -4
  48. package/dist/cjs/dist-dereferenced/product-draft.js +0 -4
  49. package/dist/cjs/dist-dereferenced/product.js +0 -4
  50. package/dist/cjs/dist-dereferenced/stock.js +0 -4
  51. package/dist/cjs/dist-dereferenced/total.js +0 -4
  52. package/dist/cjs/dist-types/asset.js +0 -2
  53. package/dist/cjs/dist-types/category.js +0 -2
  54. package/dist/cjs/dist-types/country.js +0 -2
  55. package/dist/cjs/dist-types/currency.js +0 -2
  56. package/dist/cjs/dist-types/customer-segment.js +0 -2
  57. package/dist/cjs/dist-types/development-colour.js +0 -2
  58. package/dist/cjs/dist-types/index.js +0 -38
  59. package/dist/cjs/dist-types/marketing-preferences.js +0 -2
  60. package/dist/cjs/dist-types/messages/ean-change.js +0 -2
  61. package/dist/cjs/dist-types/messages/index.js +0 -37
  62. package/dist/cjs/dist-types/messages/order/delivered.js +0 -2
  63. package/dist/cjs/dist-types/messages/order/index.js +0 -2
  64. package/dist/cjs/dist-types/messages/order/new.js +0 -2
  65. package/dist/cjs/dist-types/messages/order/processed.js +0 -2
  66. package/dist/cjs/dist-types/messages/order/return-initiated.js +0 -2
  67. package/dist/cjs/dist-types/messages/order/returned.js +0 -2
  68. package/dist/cjs/dist-types/messages/order/shipped.js +0 -2
  69. package/dist/cjs/dist-types/messages/price-change.js +0 -2
  70. package/dist/cjs/dist-types/messages/product-category.js +0 -2
  71. package/dist/cjs/dist-types/messages/product-draft.js +0 -2
  72. package/dist/cjs/dist-types/messages/product.js +0 -2
  73. package/dist/cjs/dist-types/money.js +0 -2
  74. package/dist/cjs/dist-types/order/address.js +0 -2
  75. package/dist/cjs/dist-types/order/customer.js +0 -2
  76. package/dist/cjs/dist-types/order/index.js +0 -37
  77. package/dist/cjs/dist-types/order/item.js +0 -2
  78. package/dist/cjs/dist-types/order/orderMain.js +0 -2
  79. package/dist/cjs/dist-types/order/payment.js +0 -2
  80. package/dist/cjs/dist-types/order/shipment/index.js +0 -39
  81. package/dist/cjs/dist-types/order/shipment/item/index.js +0 -2
  82. package/dist/cjs/dist-types/order/shipment/item/itemMain.js +0 -2
  83. package/dist/cjs/dist-types/order/shipment/item/returned.js +0 -2
  84. package/dist/cjs/dist-types/order/shipment/pos/index.js +0 -2
  85. package/dist/cjs/dist-types/order/shipment/pos/outbound.js +0 -2
  86. package/dist/cjs/dist-types/order/shipment/pos/posMain.js +0 -2
  87. package/dist/cjs/dist-types/order/shipment/pos/return.js +0 -2
  88. package/dist/cjs/dist-types/order/shipment/shipmentMain.js +0 -2
  89. package/dist/cjs/dist-types/order/shipment/shipped/index.js +0 -2
  90. package/dist/cjs/dist-types/order/shipment/shipped/outbound.js +0 -2
  91. package/dist/cjs/dist-types/order/shipment/shipped/return.js +0 -2
  92. package/dist/cjs/dist-types/order/shipment/shipped/shippedMain.js +0 -2
  93. package/dist/cjs/dist-types/price.js +0 -2
  94. package/dist/cjs/dist-types/product-category.js +0 -2
  95. package/dist/cjs/dist-types/product-draft.js +0 -2
  96. package/dist/cjs/dist-types/product.js +0 -2
  97. package/dist/cjs/dist-types/stock.js +0 -2
  98. package/dist/cjs/dist-types/total.js +0 -2
  99. package/dist/cjs/index.js +0 -39
  100. package/dist/cjs/src-public/airtable.js +0 -590
  101. package/dist/cjs/src-public/bigquery.js +0 -59
  102. package/dist/cjs/src-public/cloudtasks.js +0 -207
  103. package/dist/cjs/src-public/dato.js +0 -680
  104. package/dist/cjs/src-public/env.js +0 -897
  105. package/dist/cjs/src-public/getEventTime.js +0 -28
  106. package/dist/cjs/src-public/index.js +0 -50
  107. package/dist/cjs/src-public/ipValidation.js +0 -167
  108. package/dist/cjs/src-public/jwks.js +0 -108
  109. package/dist/cjs/src-public/pubsub.js +0 -423
  110. package/dist/cjs/src-public/rateLimit.js +0 -140
  111. package/dist/cjs/src-public/redisClient.js +0 -44
  112. package/dist/cjs/src-public/runtime.js +0 -141
  113. package/dist/cjs/src-public/sanitize.js +0 -25
  114. package/dist/cjs/src-public/scheduler.js +0 -247
  115. package/dist/cjs/src-public/secret.js +0 -16
  116. package/dist/cjs/src-public/setHeaders.js +0 -16
  117. package/dist/cjs/src-public/types.js +0 -2
  118. package/dist/cjs/src-public/utils.js +0 -454
  119. package/dist/cjs/src-public/validate.js +0 -40
  120. package/dist/types/dist-dereferenced/asset.d.ts +0 -51
  121. package/dist/types/dist-dereferenced/category.d.ts +0 -58
  122. package/dist/types/dist-dereferenced/country.d.ts +0 -8
  123. package/dist/types/dist-dereferenced/currency.d.ts +0 -8
  124. package/dist/types/dist-dereferenced/customer-segment.d.ts +0 -26
  125. package/dist/types/dist-dereferenced/development-colour.d.ts +0 -114
  126. package/dist/types/dist-dereferenced/index.d.ts +0 -16
  127. package/dist/types/dist-dereferenced/marketing-preferences.d.ts +0 -31
  128. package/dist/types/dist-dereferenced/messages/ean-change.d.ts +0 -17
  129. package/dist/types/dist-dereferenced/messages/index.d.ts +0 -6
  130. package/dist/types/dist-dereferenced/messages/order/delivered.d.ts +0 -3414
  131. package/dist/types/dist-dereferenced/messages/order/index.d.ts +0 -6
  132. package/dist/types/dist-dereferenced/messages/order/new.d.ts +0 -3414
  133. package/dist/types/dist-dereferenced/messages/order/processed.d.ts +0 -3408
  134. package/dist/types/dist-dereferenced/messages/order/return-initiated.d.ts +0 -3414
  135. package/dist/types/dist-dereferenced/messages/order/returned.d.ts +0 -3413
  136. package/dist/types/dist-dereferenced/messages/order/shipped.d.ts +0 -3412
  137. package/dist/types/dist-dereferenced/messages/price-change.d.ts +0 -67
  138. package/dist/types/dist-dereferenced/messages/product-category.d.ts +0 -33
  139. package/dist/types/dist-dereferenced/messages/product-draft.d.ts +0 -589
  140. package/dist/types/dist-dereferenced/messages/product.d.ts +0 -628
  141. package/dist/types/dist-dereferenced/money.d.ts +0 -41
  142. package/dist/types/dist-dereferenced/order/address.d.ts +0 -98
  143. package/dist/types/dist-dereferenced/order/customer.d.ts +0 -309
  144. package/dist/types/dist-dereferenced/order/index.d.ts +0 -3404
  145. package/dist/types/dist-dereferenced/order/item.d.ts +0 -336
  146. package/dist/types/dist-dereferenced/order/orderMain.d.ts +0 -3399
  147. package/dist/types/dist-dereferenced/order/payment.d.ts +0 -94
  148. package/dist/types/dist-dereferenced/order/shipment/index.d.ts +0 -253
  149. package/dist/types/dist-dereferenced/order/shipment/item/index.d.ts +0 -19
  150. package/dist/types/dist-dereferenced/order/shipment/item/itemMain.d.ts +0 -18
  151. package/dist/types/dist-dereferenced/order/shipment/item/returned.d.ts +0 -34
  152. package/dist/types/dist-dereferenced/order/shipment/pos/index.d.ts +0 -282
  153. package/dist/types/dist-dereferenced/order/shipment/pos/outbound.d.ts +0 -320
  154. package/dist/types/dist-dereferenced/order/shipment/pos/posMain.d.ts +0 -280
  155. package/dist/types/dist-dereferenced/order/shipment/pos/return.d.ts +0 -331
  156. package/dist/types/dist-dereferenced/order/shipment/shipmentMain.d.ts +0 -250
  157. package/dist/types/dist-dereferenced/order/shipment/shipped/index.d.ts +0 -288
  158. package/dist/types/dist-dereferenced/order/shipment/shipped/outbound.d.ts +0 -286
  159. package/dist/types/dist-dereferenced/order/shipment/shipped/return.d.ts +0 -287
  160. package/dist/types/dist-dereferenced/order/shipment/shipped/shippedMain.d.ts +0 -286
  161. package/dist/types/dist-dereferenced/price.d.ts +0 -58
  162. package/dist/types/dist-dereferenced/product-category.d.ts +0 -24
  163. package/dist/types/dist-dereferenced/product-draft.d.ts +0 -580
  164. package/dist/types/dist-dereferenced/product.d.ts +0 -619
  165. package/dist/types/dist-dereferenced/stock.d.ts +0 -74
  166. package/dist/types/dist-dereferenced/total.d.ts +0 -172
  167. package/dist/types/dist-types/asset.d.ts +0 -16
  168. package/dist/types/dist-types/category.d.ts +0 -20
  169. package/dist/types/dist-types/country.d.ts +0 -2
  170. package/dist/types/dist-types/currency.d.ts +0 -2
  171. package/dist/types/dist-types/customer-segment.d.ts +0 -6
  172. package/dist/types/dist-types/development-colour.d.ts +0 -31
  173. package/dist/types/dist-types/index.d.ts +0 -16
  174. package/dist/types/dist-types/marketing-preferences.d.ts +0 -9
  175. package/dist/types/dist-types/messages/ean-change.d.ts +0 -5
  176. package/dist/types/dist-types/messages/index.d.ts +0 -6
  177. package/dist/types/dist-types/messages/order/delivered.d.ts +0 -292
  178. package/dist/types/dist-types/messages/order/index.d.ts +0 -6
  179. package/dist/types/dist-types/messages/order/new.d.ts +0 -292
  180. package/dist/types/dist-types/messages/order/processed.d.ts +0 -292
  181. package/dist/types/dist-types/messages/order/return-initiated.d.ts +0 -292
  182. package/dist/types/dist-types/messages/order/returned.d.ts +0 -293
  183. package/dist/types/dist-types/messages/order/shipped.d.ts +0 -293
  184. package/dist/types/dist-types/messages/price-change.d.ts +0 -16
  185. package/dist/types/dist-types/messages/product-category.d.ts +0 -7
  186. package/dist/types/dist-types/messages/product-draft.d.ts +0 -136
  187. package/dist/types/dist-types/messages/product.d.ts +0 -144
  188. package/dist/types/dist-types/money.d.ts +0 -11
  189. package/dist/types/dist-types/order/address.d.ts +0 -27
  190. package/dist/types/dist-types/order/customer.d.ts +0 -81
  191. package/dist/types/dist-types/order/index.d.ts +0 -8
  192. package/dist/types/dist-types/order/item.d.ts +0 -85
  193. package/dist/types/dist-types/order/orderMain.d.ts +0 -289
  194. package/dist/types/dist-types/order/payment.d.ts +0 -26
  195. package/dist/types/dist-types/order/shipment/index.d.ts +0 -6
  196. package/dist/types/dist-types/order/shipment/item/index.d.ts +0 -4
  197. package/dist/types/dist-types/order/shipment/item/itemMain.d.ts +0 -6
  198. package/dist/types/dist-types/order/shipment/item/returned.d.ts +0 -11
  199. package/dist/types/dist-types/order/shipment/pos/index.d.ts +0 -5
  200. package/dist/types/dist-types/order/shipment/pos/outbound.d.ts +0 -76
  201. package/dist/types/dist-types/order/shipment/pos/posMain.d.ts +0 -71
  202. package/dist/types/dist-types/order/shipment/pos/return.d.ts +0 -75
  203. package/dist/types/dist-types/order/shipment/shipmentMain.d.ts +0 -62
  204. package/dist/types/dist-types/order/shipment/shipped/index.d.ts +0 -5
  205. package/dist/types/dist-types/order/shipment/shipped/outbound.d.ts +0 -68
  206. package/dist/types/dist-types/order/shipment/shipped/return.d.ts +0 -68
  207. package/dist/types/dist-types/order/shipment/shipped/shippedMain.d.ts +0 -69
  208. package/dist/types/dist-types/price.d.ts +0 -15
  209. package/dist/types/dist-types/product-category.d.ts +0 -6
  210. package/dist/types/dist-types/product-draft.d.ts +0 -135
  211. package/dist/types/dist-types/product.d.ts +0 -143
  212. package/dist/types/dist-types/stock.d.ts +0 -19
  213. package/dist/types/dist-types/total.d.ts +0 -44
  214. package/dist/types/index.d.ts +0 -3
  215. package/dist/types/src-public/airtable.d.ts +0 -220
  216. package/dist/types/src-public/bigquery.d.ts +0 -17
  217. package/dist/types/src-public/cloudtasks.d.ts +0 -74
  218. package/dist/types/src-public/dato.d.ts +0 -95
  219. package/dist/types/src-public/env.d.ts +0 -144
  220. package/dist/types/src-public/getEventTime.d.ts +0 -1
  221. package/dist/types/src-public/index.d.ts +0 -16
  222. package/dist/types/src-public/ipValidation.d.ts +0 -15
  223. package/dist/types/src-public/jwks.d.ts +0 -15
  224. package/dist/types/src-public/pubsub.d.ts +0 -95
  225. package/dist/types/src-public/rateLimit.d.ts +0 -21
  226. package/dist/types/src-public/redisClient.d.ts +0 -6
  227. package/dist/types/src-public/runtime.d.ts +0 -57
  228. package/dist/types/src-public/sanitize.d.ts +0 -4
  229. package/dist/types/src-public/scheduler.d.ts +0 -71
  230. package/dist/types/src-public/secret.d.ts +0 -6
  231. package/dist/types/src-public/setHeaders.d.ts +0 -13
  232. package/dist/types/src-public/types.d.ts +0 -264
  233. package/dist/types/src-public/utils.d.ts +0 -101
  234. package/dist/types/src-public/validate.d.ts +0 -9
@@ -1,207 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- const crypto_1 = __importDefault(require("crypto"));
7
- const runtime_1 = __importDefault(require("./runtime"));
8
- const utils_1 = require("./utils");
9
- async function gcpFetch(url, accessToken, options = {}) {
10
- let res;
11
- try {
12
- res = await fetch(url, {
13
- ...options,
14
- headers: {
15
- ...(options.headers || {}),
16
- 'Authorization': `Bearer ${accessToken}`,
17
- 'Content-Type': 'application/json',
18
- },
19
- });
20
- if (!res.ok) {
21
- const err = new Error(`GCP API error: ${res.status} ${res.statusText}`);
22
- const body = await res.json().catch(() => ({
23
- code: res.status,
24
- }));
25
- console.error('error', body);
26
- err.message = body.error?.message || err.message;
27
- err.code = body.error?.code || res.status;
28
- throw err;
29
- }
30
- }
31
- catch (err) {
32
- const nextErr = Error(`GCP API error: ${err.message}`);
33
- nextErr.code = err.code;
34
- throw nextErr;
35
- }
36
- return res.json();
37
- }
38
- class CloudTasksHelper extends runtime_1.default {
39
- projectId;
40
- serviceAccount;
41
- accessToken;
42
- envName;
43
- workflowId;
44
- triggerId;
45
- location = 'europe-west2';
46
- constructor(opts) {
47
- super(opts);
48
- this.projectId = opts.projectId;
49
- this.serviceAccount = opts.serviceAccount;
50
- this.accessToken = opts.accessToken;
51
- this.envName = opts.envName;
52
- this.workflowId = opts.workflowId;
53
- this.triggerId = opts.triggerId;
54
- }
55
- getQueueName(topicName) {
56
- const infraPrefix = topicName.indexOf('---') !== -1 ? topicName : `${this.envName}---${topicName}-${crypto_1.default.createHash('sha256').update(this.triggerId).digest('hex').slice(0, 8)}`;
57
- return `${infraPrefix}-${(0, utils_1.shortHash)(this.triggerId)}`;
58
- }
59
- getQueuePath(topicName) {
60
- return `projects/${this.projectId}/locations/${this.location}/queues/${this.getQueueName(topicName)}`;
61
- }
62
- getQueueApiUrl(topicName) {
63
- return `https://cloudtasks.googleapis.com/v2/${this.getQueuePath(topicName)}`;
64
- }
65
- getLocationApiUrl() {
66
- return `https://cloudtasks.googleapis.com/v2/projects/${this.projectId}/locations/${this.location}`;
67
- }
68
- async getQueue(topicName) {
69
- try {
70
- const result = await gcpFetch(this.getQueueApiUrl(topicName), this.accessToken, { method: 'GET' });
71
- return result;
72
- }
73
- catch (err) {
74
- console.error('error code', err.code);
75
- if (err.code === 5 || err.message?.includes('notFound') || err.code === 404) {
76
- return null;
77
- }
78
- ;
79
- throw err;
80
- }
81
- }
82
- async createOrUpdateQueue(topicName, retryConfig = {
83
- maxAttempts: 1,
84
- maxRetryDuration: '60s',
85
- minBackoff: '1s',
86
- maxBackoff: '30s',
87
- maxDoublings: 3,
88
- }, rateLimits = {
89
- maxDispatchesPerSecond: 20,
90
- maxConcurrentDispatches: 1,
91
- }) {
92
- const queuePath = this.getQueuePath(topicName);
93
- const queueApiUrl = this.getQueueApiUrl(topicName);
94
- const locationApiUrl = this.getLocationApiUrl();
95
- const queueConfig = {
96
- name: queuePath,
97
- retryConfig: retryConfig || { maxAttempts: 1 },
98
- rateLimits: rateLimits || undefined,
99
- };
100
- const queue = await this.getQueue(topicName);
101
- if (!queue) {
102
- await gcpFetch(`${locationApiUrl}/queues`, this.accessToken, {
103
- method: 'POST',
104
- body: JSON.stringify(queueConfig),
105
- });
106
- }
107
- else if ((retryConfig && (queue.retryConfig?.maxAttempts !== retryConfig.maxAttempts ||
108
- queue.retryConfig?.maxRetryDuration !== retryConfig.maxRetryDuration ||
109
- queue.retryConfig?.minBackoff !== retryConfig.minBackoff ||
110
- queue.retryConfig?.maxBackoff !== retryConfig.maxBackoff ||
111
- queue.retryConfig?.maxDoublings !== retryConfig.maxDoublings)) ||
112
- (rateLimits && ((queue.rateLimits?.maxDispatchesPerSecond !== rateLimits.maxDispatchesPerSecond) ||
113
- queue.rateLimits?.maxConcurrentDispatches !== rateLimits.maxConcurrentDispatches))) {
114
- await gcpFetch(queueApiUrl, this.accessToken, {
115
- method: 'PATCH',
116
- body: JSON.stringify(queueConfig),
117
- });
118
- }
119
- }
120
- async listTasks(topicName) {
121
- const url = `${this.getQueueApiUrl(topicName)}/tasks`;
122
- const res = await gcpFetch(url, this.accessToken, { method: 'GET' });
123
- return res.tasks || [];
124
- }
125
- async deleteTask(taskName) {
126
- const url = `https://cloudtasks.googleapis.com/v2/${taskName}`;
127
- await gcpFetch(url, this.accessToken, { method: 'DELETE' }).catch(err => {
128
- if (err.code === 404 || err.code === 6)
129
- return;
130
- throw err;
131
- });
132
- }
133
- async create(opts) {
134
- const queuePath = this.getQueuePath(opts.topicName);
135
- if (opts.deleteExistingTasks) {
136
- const tasks = await this.listTasks(opts.topicName);
137
- await Promise.allSettled(tasks.map(async (task) => {
138
- try {
139
- await this.deleteTask(task.name);
140
- }
141
- catch (err) {
142
- if (err.code !== 5)
143
- throw err;
144
- }
145
- }));
146
- }
147
- const repeat = opts.repeatCount || 1;
148
- const scheduleSeconds = opts.scheduleSeconds || 0;
149
- const createdTaskNames = [];
150
- for (let i = 0; i < repeat; i++) {
151
- const scheduledDate = scheduleSeconds ? new Date(Date.now() + 1000 * scheduleSeconds * (i + 1)) : new Date();
152
- const taskId = opts.doNotCreateIfExists ? crypto_1.default.createHash('sha256').update(opts.doNotCreateIfExists + (Object.entries(opts.extraQuery || {}).sort().map(x => x.join('=')).join('&'))).digest('hex').slice(0, 8) : undefined;
153
- const scheduleTime = scheduleSeconds ? scheduledDate.toISOString() : undefined;
154
- const httpRequest = {
155
- httpMethod: opts.httpTarget.httpMethod || 'POST',
156
- url: opts.httpTarget.uri || this.runtimeUrl + `/executeWorkflow/${this.workflowId}/${this.triggerId}?cloud_task=${opts.topicName}&schedule_time=${scheduledDate.toISOString()}&${new URLSearchParams(opts.extraQuery).toString()}`,
157
- headers: opts.httpTarget.headers || {
158
- 'Content-Type': 'application/json',
159
- 'User-Agent': 'CloudTasks-Google',
160
- },
161
- body: opts.httpTarget.body ? Buffer.from(JSON.stringify(opts.httpTarget.body)).toString('base64') : undefined,
162
- oidcToken: {
163
- serviceAccountEmail: this.serviceAccount,
164
- audience: process.env.GCLOUD_PROJECT + "/" + this.triggerId,
165
- },
166
- };
167
- try {
168
- const url = `${this.getQueueApiUrl(opts.topicName)}/tasks`;
169
- const body = {
170
- task: {
171
- name: taskId ? `${queuePath}/tasks/${taskId}` : undefined,
172
- scheduleTime: scheduleTime ? scheduleTime : undefined,
173
- httpRequest,
174
- },
175
- };
176
- const res = await gcpFetch(url, this.accessToken, {
177
- method: 'POST',
178
- body: JSON.stringify(body),
179
- });
180
- if (res.name) {
181
- createdTaskNames.push(res.name);
182
- }
183
- }
184
- catch (err) {
185
- if (err.code === 5)
186
- return false;
187
- if ((err.code === 6 || err.code === 409) && opts.doNotCreateIfExists)
188
- return false;
189
- throw err;
190
- }
191
- }
192
- return createdTaskNames;
193
- }
194
- async delete(topicName) {
195
- const queueApiUrl = this.getQueueApiUrl(topicName);
196
- try {
197
- await gcpFetch(queueApiUrl, this.accessToken, { method: 'DELETE' });
198
- return true;
199
- }
200
- catch (err) {
201
- if (err.code === 5 || err.code === 404)
202
- return false;
203
- throw err;
204
- }
205
- }
206
- }
207
- exports.default = CloudTasksHelper;