@shushed/helpers 0.0.202 → 0.0.203-bug-erp-770-20251208112219

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 (290) hide show
  1. package/dist/index.d.ts +34970 -0
  2. package/dist/index.js +113321 -0
  3. package/dist/package.json +3 -6
  4. package/package.json +4 -7
  5. package/dist/cjs/contracts/asset.schema.json +0 -78
  6. package/dist/cjs/contracts/category.schema.json +0 -86
  7. package/dist/cjs/contracts/country.schema.json +0 -258
  8. package/dist/cjs/contracts/currency.schema.json +0 -177
  9. package/dist/cjs/contracts/customer-segment.schema.json +0 -32
  10. package/dist/cjs/contracts/development-colour.schema.json +0 -97
  11. package/dist/cjs/contracts/index.js +0 -48
  12. package/dist/cjs/contracts/marketing-preferences.schema.json +0 -41
  13. package/dist/cjs/contracts/messages/ean-change.schema.json +0 -22
  14. package/dist/cjs/contracts/messages/index.js +0 -29
  15. package/dist/cjs/contracts/messages/order/delivered.schema.json +0 -26
  16. package/dist/cjs/contracts/messages/order/index.js +0 -18
  17. package/dist/cjs/contracts/messages/order/new.schema.json +0 -32
  18. package/dist/cjs/contracts/messages/order/processed.schema.json +0 -15
  19. package/dist/cjs/contracts/messages/order/return-initiated.schema.json +0 -26
  20. package/dist/cjs/contracts/messages/order/returned.schema.json +0 -25
  21. package/dist/cjs/contracts/messages/order/shipped.schema.json +0 -26
  22. package/dist/cjs/contracts/messages/product-category.schema.json +0 -21
  23. package/dist/cjs/contracts/messages/product-draft.schema.json +0 -66
  24. package/dist/cjs/contracts/messages/product.schema.json +0 -29
  25. package/dist/cjs/contracts/money.schema.json +0 -54
  26. package/dist/cjs/contracts/order/address.schema.json +0 -127
  27. package/dist/cjs/contracts/order/customer.schema.json +0 -149
  28. package/dist/cjs/contracts/order/index.js +0 -31
  29. package/dist/cjs/contracts/order/item.schema.json +0 -98
  30. package/dist/cjs/contracts/order/payment.schema.json +0 -115
  31. package/dist/cjs/contracts/order/shipment/index.js +0 -29
  32. package/dist/cjs/contracts/order/shipment/item/index.js +0 -8
  33. package/dist/cjs/contracts/order/shipment/item/returned.schema.json +0 -30
  34. package/dist/cjs/contracts/order/shipment/item.schema.json +0 -22
  35. package/dist/cjs/contracts/order/shipment/pos/index.js +0 -10
  36. package/dist/cjs/contracts/order/shipment/pos/outbound.schema.json +0 -37
  37. package/dist/cjs/contracts/order/shipment/pos/return.schema.json +0 -31
  38. package/dist/cjs/contracts/order/shipment/pos.schema.json +0 -48
  39. package/dist/cjs/contracts/order/shipment/shipped/index.js +0 -10
  40. package/dist/cjs/contracts/order/shipment/shipped/outbound.schema.json +0 -34
  41. package/dist/cjs/contracts/order/shipment/shipped/return.schema.json +0 -43
  42. package/dist/cjs/contracts/order/shipment/shipped.schema.json +0 -52
  43. package/dist/cjs/contracts/order/shipment.schema.json +0 -58
  44. package/dist/cjs/contracts/order.schema.json +0 -231
  45. package/dist/cjs/contracts/product-category.schema.json +0 -34
  46. package/dist/cjs/contracts/product-draft.schema.json +0 -782
  47. package/dist/cjs/contracts/product.schema.json +0 -816
  48. package/dist/cjs/contracts/total.schema.json +0 -41
  49. package/dist/cjs/dist-dereferenced/asset.js +0 -4
  50. package/dist/cjs/dist-dereferenced/category.js +0 -4
  51. package/dist/cjs/dist-dereferenced/country.js +0 -4
  52. package/dist/cjs/dist-dereferenced/currency.js +0 -4
  53. package/dist/cjs/dist-dereferenced/customer-segment.js +0 -4
  54. package/dist/cjs/dist-dereferenced/development-colour.js +0 -4
  55. package/dist/cjs/dist-dereferenced/index.js +0 -69
  56. package/dist/cjs/dist-dereferenced/marketing-preferences.js +0 -4
  57. package/dist/cjs/dist-dereferenced/messages/ean-change.js +0 -4
  58. package/dist/cjs/dist-dereferenced/messages/index.js +0 -50
  59. package/dist/cjs/dist-dereferenced/messages/order/delivered.js +0 -4
  60. package/dist/cjs/dist-dereferenced/messages/order/index.js +0 -18
  61. package/dist/cjs/dist-dereferenced/messages/order/new.js +0 -4
  62. package/dist/cjs/dist-dereferenced/messages/order/processed.js +0 -4
  63. package/dist/cjs/dist-dereferenced/messages/order/return-initiated.js +0 -4
  64. package/dist/cjs/dist-dereferenced/messages/order/returned.js +0 -4
  65. package/dist/cjs/dist-dereferenced/messages/order/shipped.js +0 -4
  66. package/dist/cjs/dist-dereferenced/messages/price-change.js +0 -4
  67. package/dist/cjs/dist-dereferenced/messages/product-category.js +0 -4
  68. package/dist/cjs/dist-dereferenced/messages/product-draft.js +0 -4
  69. package/dist/cjs/dist-dereferenced/messages/product.js +0 -4
  70. package/dist/cjs/dist-dereferenced/money.js +0 -4
  71. package/dist/cjs/dist-dereferenced/order/address.js +0 -4
  72. package/dist/cjs/dist-dereferenced/order/customer.js +0 -4
  73. package/dist/cjs/dist-dereferenced/order/index.js +0 -51
  74. package/dist/cjs/dist-dereferenced/order/item.js +0 -4
  75. package/dist/cjs/dist-dereferenced/order/orderMain.js +0 -4
  76. package/dist/cjs/dist-dereferenced/order/payment.js +0 -4
  77. package/dist/cjs/dist-dereferenced/order/shipment/index.js +0 -45
  78. package/dist/cjs/dist-dereferenced/order/shipment/item/index.js +0 -11
  79. package/dist/cjs/dist-dereferenced/order/shipment/item/itemMain.js +0 -4
  80. package/dist/cjs/dist-dereferenced/order/shipment/item/returned.js +0 -4
  81. package/dist/cjs/dist-dereferenced/order/shipment/pos/index.js +0 -13
  82. package/dist/cjs/dist-dereferenced/order/shipment/pos/outbound.js +0 -4
  83. package/dist/cjs/dist-dereferenced/order/shipment/pos/posMain.js +0 -4
  84. package/dist/cjs/dist-dereferenced/order/shipment/pos/return.js +0 -4
  85. package/dist/cjs/dist-dereferenced/order/shipment/shipmentMain.js +0 -4
  86. package/dist/cjs/dist-dereferenced/order/shipment/shipped/index.js +0 -13
  87. package/dist/cjs/dist-dereferenced/order/shipment/shipped/outbound.js +0 -4
  88. package/dist/cjs/dist-dereferenced/order/shipment/shipped/return.js +0 -4
  89. package/dist/cjs/dist-dereferenced/order/shipment/shipped/shippedMain.js +0 -4
  90. package/dist/cjs/dist-dereferenced/price.js +0 -4
  91. package/dist/cjs/dist-dereferenced/product-category.js +0 -4
  92. package/dist/cjs/dist-dereferenced/product-draft.js +0 -4
  93. package/dist/cjs/dist-dereferenced/product.js +0 -4
  94. package/dist/cjs/dist-dereferenced/stock.js +0 -4
  95. package/dist/cjs/dist-dereferenced/total.js +0 -4
  96. package/dist/cjs/dist-types/asset.js +0 -2
  97. package/dist/cjs/dist-types/category.js +0 -2
  98. package/dist/cjs/dist-types/country.js +0 -2
  99. package/dist/cjs/dist-types/currency.js +0 -2
  100. package/dist/cjs/dist-types/customer-segment.js +0 -2
  101. package/dist/cjs/dist-types/development-colour.js +0 -2
  102. package/dist/cjs/dist-types/index.js +0 -38
  103. package/dist/cjs/dist-types/marketing-preferences.js +0 -2
  104. package/dist/cjs/dist-types/messages/ean-change.js +0 -2
  105. package/dist/cjs/dist-types/messages/index.js +0 -37
  106. package/dist/cjs/dist-types/messages/order/delivered.js +0 -2
  107. package/dist/cjs/dist-types/messages/order/index.js +0 -2
  108. package/dist/cjs/dist-types/messages/order/new.js +0 -2
  109. package/dist/cjs/dist-types/messages/order/processed.js +0 -2
  110. package/dist/cjs/dist-types/messages/order/return-initiated.js +0 -2
  111. package/dist/cjs/dist-types/messages/order/returned.js +0 -2
  112. package/dist/cjs/dist-types/messages/order/shipped.js +0 -2
  113. package/dist/cjs/dist-types/messages/price-change.js +0 -2
  114. package/dist/cjs/dist-types/messages/product-category.js +0 -2
  115. package/dist/cjs/dist-types/messages/product-draft.js +0 -2
  116. package/dist/cjs/dist-types/messages/product.js +0 -2
  117. package/dist/cjs/dist-types/money.js +0 -2
  118. package/dist/cjs/dist-types/order/address.js +0 -2
  119. package/dist/cjs/dist-types/order/customer.js +0 -2
  120. package/dist/cjs/dist-types/order/index.js +0 -37
  121. package/dist/cjs/dist-types/order/item.js +0 -2
  122. package/dist/cjs/dist-types/order/orderMain.js +0 -2
  123. package/dist/cjs/dist-types/order/payment.js +0 -2
  124. package/dist/cjs/dist-types/order/shipment/index.js +0 -39
  125. package/dist/cjs/dist-types/order/shipment/item/index.js +0 -2
  126. package/dist/cjs/dist-types/order/shipment/item/itemMain.js +0 -2
  127. package/dist/cjs/dist-types/order/shipment/item/returned.js +0 -2
  128. package/dist/cjs/dist-types/order/shipment/pos/index.js +0 -2
  129. package/dist/cjs/dist-types/order/shipment/pos/outbound.js +0 -2
  130. package/dist/cjs/dist-types/order/shipment/pos/posMain.js +0 -2
  131. package/dist/cjs/dist-types/order/shipment/pos/return.js +0 -2
  132. package/dist/cjs/dist-types/order/shipment/shipmentMain.js +0 -2
  133. package/dist/cjs/dist-types/order/shipment/shipped/index.js +0 -2
  134. package/dist/cjs/dist-types/order/shipment/shipped/outbound.js +0 -2
  135. package/dist/cjs/dist-types/order/shipment/shipped/return.js +0 -2
  136. package/dist/cjs/dist-types/order/shipment/shipped/shippedMain.js +0 -2
  137. package/dist/cjs/dist-types/price.js +0 -2
  138. package/dist/cjs/dist-types/product-category.js +0 -2
  139. package/dist/cjs/dist-types/product-draft.js +0 -2
  140. package/dist/cjs/dist-types/product.js +0 -2
  141. package/dist/cjs/dist-types/stock.js +0 -2
  142. package/dist/cjs/dist-types/total.js +0 -2
  143. package/dist/cjs/index.js +0 -39
  144. package/dist/cjs/src-public/airtable.js +0 -625
  145. package/dist/cjs/src-public/bcOrder.js +0 -943
  146. package/dist/cjs/src-public/bigquery.js +0 -59
  147. package/dist/cjs/src-public/centra.js +0 -1053
  148. package/dist/cjs/src-public/cloudtasks.js +0 -207
  149. package/dist/cjs/src-public/dato.js +0 -403
  150. package/dist/cjs/src-public/env.js +0 -900
  151. package/dist/cjs/src-public/getEventTime.js +0 -28
  152. package/dist/cjs/src-public/index.js +0 -54
  153. package/dist/cjs/src-public/ipValidation.js +0 -167
  154. package/dist/cjs/src-public/jwks.js +0 -108
  155. package/dist/cjs/src-public/pubsub.js +0 -423
  156. package/dist/cjs/src-public/rateLimit.js +0 -140
  157. package/dist/cjs/src-public/redisClient.js +0 -44
  158. package/dist/cjs/src-public/runtime.js +0 -145
  159. package/dist/cjs/src-public/sanitize.js +0 -25
  160. package/dist/cjs/src-public/scheduler.js +0 -247
  161. package/dist/cjs/src-public/secret.js +0 -16
  162. package/dist/cjs/src-public/setHeaders.js +0 -16
  163. package/dist/cjs/src-public/types.js +0 -2
  164. package/dist/cjs/src-public/utils.js +0 -457
  165. package/dist/cjs/src-public/validate.js +0 -74
  166. package/dist/types/contracts/index.d.ts +0 -15
  167. package/dist/types/contracts/messages/index.d.ts +0 -5
  168. package/dist/types/contracts/messages/order/index.d.ts +0 -6
  169. package/dist/types/contracts/order/index.d.ts +0 -6
  170. package/dist/types/contracts/order/shipment/index.d.ts +0 -6
  171. package/dist/types/contracts/order/shipment/item/index.d.ts +0 -1
  172. package/dist/types/contracts/order/shipment/pos/index.d.ts +0 -2
  173. package/dist/types/contracts/order/shipment/shipped/index.d.ts +0 -2
  174. package/dist/types/dist-dereferenced/asset.d.ts +0 -51
  175. package/dist/types/dist-dereferenced/category.d.ts +0 -58
  176. package/dist/types/dist-dereferenced/country.d.ts +0 -8
  177. package/dist/types/dist-dereferenced/currency.d.ts +0 -8
  178. package/dist/types/dist-dereferenced/customer-segment.d.ts +0 -26
  179. package/dist/types/dist-dereferenced/development-colour.d.ts +0 -114
  180. package/dist/types/dist-dereferenced/index.d.ts +0 -16
  181. package/dist/types/dist-dereferenced/marketing-preferences.d.ts +0 -31
  182. package/dist/types/dist-dereferenced/messages/ean-change.d.ts +0 -17
  183. package/dist/types/dist-dereferenced/messages/index.d.ts +0 -6
  184. package/dist/types/dist-dereferenced/messages/order/delivered.d.ts +0 -3438
  185. package/dist/types/dist-dereferenced/messages/order/index.d.ts +0 -6
  186. package/dist/types/dist-dereferenced/messages/order/new.d.ts +0 -3438
  187. package/dist/types/dist-dereferenced/messages/order/processed.d.ts +0 -3432
  188. package/dist/types/dist-dereferenced/messages/order/return-initiated.d.ts +0 -3438
  189. package/dist/types/dist-dereferenced/messages/order/returned.d.ts +0 -3437
  190. package/dist/types/dist-dereferenced/messages/order/shipped.d.ts +0 -3436
  191. package/dist/types/dist-dereferenced/messages/price-change.d.ts +0 -67
  192. package/dist/types/dist-dereferenced/messages/product-category.d.ts +0 -33
  193. package/dist/types/dist-dereferenced/messages/product-draft.d.ts +0 -589
  194. package/dist/types/dist-dereferenced/messages/product.d.ts +0 -628
  195. package/dist/types/dist-dereferenced/money.d.ts +0 -41
  196. package/dist/types/dist-dereferenced/order/address.d.ts +0 -98
  197. package/dist/types/dist-dereferenced/order/customer.d.ts +0 -312
  198. package/dist/types/dist-dereferenced/order/index.d.ts +0 -3428
  199. package/dist/types/dist-dereferenced/order/item.d.ts +0 -339
  200. package/dist/types/dist-dereferenced/order/orderMain.d.ts +0 -3423
  201. package/dist/types/dist-dereferenced/order/payment.d.ts +0 -110
  202. package/dist/types/dist-dereferenced/order/shipment/index.d.ts +0 -253
  203. package/dist/types/dist-dereferenced/order/shipment/item/index.d.ts +0 -19
  204. package/dist/types/dist-dereferenced/order/shipment/item/itemMain.d.ts +0 -18
  205. package/dist/types/dist-dereferenced/order/shipment/item/returned.d.ts +0 -34
  206. package/dist/types/dist-dereferenced/order/shipment/pos/index.d.ts +0 -282
  207. package/dist/types/dist-dereferenced/order/shipment/pos/outbound.d.ts +0 -319
  208. package/dist/types/dist-dereferenced/order/shipment/pos/posMain.d.ts +0 -280
  209. package/dist/types/dist-dereferenced/order/shipment/pos/return.d.ts +0 -330
  210. package/dist/types/dist-dereferenced/order/shipment/shipmentMain.d.ts +0 -250
  211. package/dist/types/dist-dereferenced/order/shipment/shipped/index.d.ts +0 -288
  212. package/dist/types/dist-dereferenced/order/shipment/shipped/outbound.d.ts +0 -286
  213. package/dist/types/dist-dereferenced/order/shipment/shipped/return.d.ts +0 -287
  214. package/dist/types/dist-dereferenced/order/shipment/shipped/shippedMain.d.ts +0 -286
  215. package/dist/types/dist-dereferenced/price.d.ts +0 -58
  216. package/dist/types/dist-dereferenced/product-category.d.ts +0 -24
  217. package/dist/types/dist-dereferenced/product-draft.d.ts +0 -580
  218. package/dist/types/dist-dereferenced/product.d.ts +0 -619
  219. package/dist/types/dist-dereferenced/stock.d.ts +0 -74
  220. package/dist/types/dist-dereferenced/total.d.ts +0 -172
  221. package/dist/types/dist-types/asset.d.ts +0 -16
  222. package/dist/types/dist-types/category.d.ts +0 -20
  223. package/dist/types/dist-types/country.d.ts +0 -2
  224. package/dist/types/dist-types/currency.d.ts +0 -2
  225. package/dist/types/dist-types/customer-segment.d.ts +0 -6
  226. package/dist/types/dist-types/development-colour.d.ts +0 -31
  227. package/dist/types/dist-types/index.d.ts +0 -16
  228. package/dist/types/dist-types/marketing-preferences.d.ts +0 -9
  229. package/dist/types/dist-types/messages/ean-change.d.ts +0 -5
  230. package/dist/types/dist-types/messages/index.d.ts +0 -6
  231. package/dist/types/dist-types/messages/order/delivered.d.ts +0 -300
  232. package/dist/types/dist-types/messages/order/index.d.ts +0 -6
  233. package/dist/types/dist-types/messages/order/new.d.ts +0 -300
  234. package/dist/types/dist-types/messages/order/processed.d.ts +0 -300
  235. package/dist/types/dist-types/messages/order/return-initiated.d.ts +0 -300
  236. package/dist/types/dist-types/messages/order/returned.d.ts +0 -301
  237. package/dist/types/dist-types/messages/order/shipped.d.ts +0 -301
  238. package/dist/types/dist-types/messages/price-change.d.ts +0 -16
  239. package/dist/types/dist-types/messages/product-category.d.ts +0 -7
  240. package/dist/types/dist-types/messages/product-draft.d.ts +0 -136
  241. package/dist/types/dist-types/messages/product.d.ts +0 -144
  242. package/dist/types/dist-types/money.d.ts +0 -11
  243. package/dist/types/dist-types/order/address.d.ts +0 -27
  244. package/dist/types/dist-types/order/customer.d.ts +0 -82
  245. package/dist/types/dist-types/order/index.d.ts +0 -8
  246. package/dist/types/dist-types/order/item.d.ts +0 -86
  247. package/dist/types/dist-types/order/orderMain.d.ts +0 -297
  248. package/dist/types/dist-types/order/payment.d.ts +0 -30
  249. package/dist/types/dist-types/order/shipment/index.d.ts +0 -6
  250. package/dist/types/dist-types/order/shipment/item/index.d.ts +0 -4
  251. package/dist/types/dist-types/order/shipment/item/itemMain.d.ts +0 -6
  252. package/dist/types/dist-types/order/shipment/item/returned.d.ts +0 -11
  253. package/dist/types/dist-types/order/shipment/pos/index.d.ts +0 -5
  254. package/dist/types/dist-types/order/shipment/pos/outbound.d.ts +0 -76
  255. package/dist/types/dist-types/order/shipment/pos/posMain.d.ts +0 -71
  256. package/dist/types/dist-types/order/shipment/pos/return.d.ts +0 -75
  257. package/dist/types/dist-types/order/shipment/shipmentMain.d.ts +0 -62
  258. package/dist/types/dist-types/order/shipment/shipped/index.d.ts +0 -5
  259. package/dist/types/dist-types/order/shipment/shipped/outbound.d.ts +0 -68
  260. package/dist/types/dist-types/order/shipment/shipped/return.d.ts +0 -68
  261. package/dist/types/dist-types/order/shipment/shipped/shippedMain.d.ts +0 -69
  262. package/dist/types/dist-types/price.d.ts +0 -15
  263. package/dist/types/dist-types/product-category.d.ts +0 -6
  264. package/dist/types/dist-types/product-draft.d.ts +0 -135
  265. package/dist/types/dist-types/product.d.ts +0 -143
  266. package/dist/types/dist-types/stock.d.ts +0 -19
  267. package/dist/types/dist-types/total.d.ts +0 -44
  268. package/dist/types/index.d.ts +0 -3
  269. package/dist/types/src-public/airtable.d.ts +0 -227
  270. package/dist/types/src-public/bcOrder.d.ts +0 -84
  271. package/dist/types/src-public/bigquery.d.ts +0 -17
  272. package/dist/types/src-public/centra.d.ts +0 -176
  273. package/dist/types/src-public/cloudtasks.d.ts +0 -74
  274. package/dist/types/src-public/dato.d.ts +0 -62
  275. package/dist/types/src-public/env.d.ts +0 -144
  276. package/dist/types/src-public/getEventTime.d.ts +0 -1
  277. package/dist/types/src-public/index.d.ts +0 -19
  278. package/dist/types/src-public/ipValidation.d.ts +0 -15
  279. package/dist/types/src-public/jwks.d.ts +0 -15
  280. package/dist/types/src-public/pubsub.d.ts +0 -95
  281. package/dist/types/src-public/rateLimit.d.ts +0 -21
  282. package/dist/types/src-public/redisClient.d.ts +0 -6
  283. package/dist/types/src-public/runtime.d.ts +0 -58
  284. package/dist/types/src-public/sanitize.d.ts +0 -4
  285. package/dist/types/src-public/scheduler.d.ts +0 -71
  286. package/dist/types/src-public/secret.d.ts +0 -6
  287. package/dist/types/src-public/setHeaders.d.ts +0 -13
  288. package/dist/types/src-public/types.d.ts +0 -264
  289. package/dist/types/src-public/utils.d.ts +0 -101
  290. package/dist/types/src-public/validate.d.ts +0 -9
@@ -1,28 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.default = getEventTime;
4
- function getEventTime(x, defaultValue) {
5
- const possibleKeys = [
6
- 'last_modified_date_time',
7
- 'last_modified_date',
8
- 'last_modified_datetime',
9
- 'last_modified_date_time',
10
- 'lastModifiedAt',
11
- 'last_modified_at',
12
- 'SystemModifiedAt',
13
- 'system_modified_at',
14
- 'lastUpdatedAt',
15
- 'modified_at',
16
- 'last_updated_at',
17
- 'modifiedAt'
18
- ];
19
- for (let i = 0; i < possibleKeys.length; i++) {
20
- if (x[possibleKeys[i]]) {
21
- const possibleDateTime = new Date(x[possibleKeys[i]]);
22
- if (!isNaN(possibleDateTime.getTime())) {
23
- return possibleDateTime;
24
- }
25
- }
26
- }
27
- return defaultValue;
28
- }
@@ -1,54 +0,0 @@
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 __exportStar = (this && this.__exportStar) || function(m, exports) {
14
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
- };
16
- var __importDefault = (this && this.__importDefault) || function (mod) {
17
- return (mod && mod.__esModule) ? mod : { "default": mod };
18
- };
19
- Object.defineProperty(exports, "__esModule", { value: true });
20
- exports.RedisConnectionError = exports.RateLimit = exports.setHeaders = exports.BCOrderHelper = exports.DatoHelper = exports.AirtableHelper = exports.CentraHelper = exports.BigQueryHelper = exports.JWKSHelper = exports.CloudTasksHelper = exports.Secrets = exports.SchedulerHelper = exports.Logging = exports.Runtime = exports.PubSubHelper = exports.EnvEngine = exports.validate = void 0;
21
- var validate_1 = require("./validate");
22
- Object.defineProperty(exports, "validate", { enumerable: true, get: function () { return __importDefault(validate_1).default; } });
23
- __exportStar(require("./sanitize"), exports);
24
- __exportStar(require("./utils"), exports);
25
- var env_1 = require("./env");
26
- Object.defineProperty(exports, "EnvEngine", { enumerable: true, get: function () { return __importDefault(env_1).default; } });
27
- var pubsub_1 = require("./pubsub");
28
- Object.defineProperty(exports, "PubSubHelper", { enumerable: true, get: function () { return __importDefault(pubsub_1).default; } });
29
- var runtime_1 = require("./runtime");
30
- Object.defineProperty(exports, "Runtime", { enumerable: true, get: function () { return __importDefault(runtime_1).default; } });
31
- Object.defineProperty(exports, "Logging", { enumerable: true, get: function () { return runtime_1.Logging; } });
32
- var scheduler_1 = require("./scheduler");
33
- Object.defineProperty(exports, "SchedulerHelper", { enumerable: true, get: function () { return __importDefault(scheduler_1).default; } });
34
- var secret_1 = require("./secret");
35
- Object.defineProperty(exports, "Secrets", { enumerable: true, get: function () { return __importDefault(secret_1).default; } });
36
- var cloudtasks_1 = require("./cloudtasks");
37
- Object.defineProperty(exports, "CloudTasksHelper", { enumerable: true, get: function () { return __importDefault(cloudtasks_1).default; } });
38
- var jwks_1 = require("./jwks");
39
- Object.defineProperty(exports, "JWKSHelper", { enumerable: true, get: function () { return __importDefault(jwks_1).default; } });
40
- var bigquery_1 = require("./bigquery");
41
- Object.defineProperty(exports, "BigQueryHelper", { enumerable: true, get: function () { return __importDefault(bigquery_1).default; } });
42
- var centra_1 = require("./centra");
43
- Object.defineProperty(exports, "CentraHelper", { enumerable: true, get: function () { return __importDefault(centra_1).default; } });
44
- var airtable_1 = require("./airtable");
45
- Object.defineProperty(exports, "AirtableHelper", { enumerable: true, get: function () { return __importDefault(airtable_1).default; } });
46
- var dato_1 = require("./dato");
47
- Object.defineProperty(exports, "DatoHelper", { enumerable: true, get: function () { return __importDefault(dato_1).default; } });
48
- var bcOrder_1 = require("./bcOrder");
49
- Object.defineProperty(exports, "BCOrderHelper", { enumerable: true, get: function () { return __importDefault(bcOrder_1).default; } });
50
- var setHeaders_1 = require("./setHeaders");
51
- Object.defineProperty(exports, "setHeaders", { enumerable: true, get: function () { return __importDefault(setHeaders_1).default; } });
52
- var rateLimit_1 = require("./rateLimit");
53
- Object.defineProperty(exports, "RateLimit", { enumerable: true, get: function () { return __importDefault(rateLimit_1).default; } });
54
- Object.defineProperty(exports, "RedisConnectionError", { enumerable: true, get: function () { return rateLimit_1.RedisConnectionError; } });
@@ -1,167 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.isValidIp = isValidIp;
4
- exports.isValidCidr = isValidCidr;
5
- exports.validateIpOrCidr = validateIpOrCidr;
6
- exports.isIpInCidr = isIpInCidr;
7
- exports.isIpInCidrs = isIpInCidrs;
8
- exports.getClientIp = getClientIp;
9
- const net_1 = require("net");
10
- function isValidIp(value) {
11
- if (!value)
12
- return false;
13
- return (0, net_1.isIP)(value.trim()) !== 0;
14
- }
15
- function isValidCidr(value) {
16
- if (!value)
17
- return false;
18
- const trimmed = value.trim();
19
- const parts = trimmed.split('/');
20
- if (parts.length !== 2)
21
- return false;
22
- const [ip, maskStr] = parts;
23
- const ipVersion = (0, net_1.isIP)(ip);
24
- if (ipVersion === 0)
25
- return false;
26
- if (!/^[0-9]{1,3}$/.test(maskStr))
27
- return false;
28
- const mask = Number(maskStr);
29
- if (!Number.isInteger(mask))
30
- return false;
31
- if (ipVersion === 4)
32
- return mask >= 0 && mask <= 32;
33
- return mask >= 0 && mask <= 128;
34
- }
35
- function validateIpOrCidr(value) {
36
- if (!value)
37
- return false;
38
- const trimmed = value.trim();
39
- return trimmed.includes('/') ? isValidCidr(trimmed) : isValidIp(trimmed);
40
- }
41
- function ipv4ToInt(ip) {
42
- const parts = ip.split('.');
43
- if (parts.length !== 4)
44
- return null;
45
- let val = 0 >>> 0;
46
- for (let i = 0; i < 4; i++) {
47
- const n = Number(parts[i]);
48
- if (!Number.isInteger(n) || n < 0 || n > 255)
49
- return null;
50
- val = ((val << 8) | n) >>> 0;
51
- }
52
- return val >>> 0;
53
- }
54
- function ipv6ToBigInt(ip) {
55
- const hasIpv4Tail = ip.includes('.');
56
- let head = ip;
57
- let tailHextets = [];
58
- if (hasIpv4Tail) {
59
- const lastColon = ip.lastIndexOf(':');
60
- const ipv4 = ip.slice(lastColon + 1);
61
- const ipv4Num = ipv4ToInt(ipv4);
62
- if (ipv4Num == null)
63
- return null;
64
- const hi = ((ipv4Num >>> 16) & 0xffff) >>> 0;
65
- const lo = (ipv4Num & 0xffff) >>> 0;
66
- tailHextets = [hi.toString(16), lo.toString(16)];
67
- head = ip.slice(0, lastColon);
68
- }
69
- const doubleColon = head.indexOf('::');
70
- let groups = [];
71
- if (doubleColon !== -1) {
72
- const left = head.slice(0, doubleColon).split(':').filter(Boolean);
73
- const right = head.slice(doubleColon + 2).split(':').filter(Boolean);
74
- const missing = Math.max(0, 8 - (left.length + right.length + tailHextets.length));
75
- groups = [...left, ...new Array(missing).fill('0'), ...right];
76
- }
77
- else {
78
- groups = head.split(':').filter(Boolean);
79
- }
80
- if (groups.length + tailHextets.length !== 8) {
81
- if (groups.length + tailHextets.length < 8) {
82
- const missing = 8 - (groups.length + tailHextets.length);
83
- groups = [...groups, ...new Array(missing).fill('0')];
84
- }
85
- else {
86
- return null;
87
- }
88
- }
89
- if (tailHextets.length) {
90
- groups = [...groups.slice(0, 6), ...tailHextets];
91
- }
92
- if (groups.length !== 8)
93
- return null;
94
- let result = 0n;
95
- for (let i = 0; i < 8; i++) {
96
- const part = groups[i];
97
- if (!/^[0-9a-fA-F]{1,4}$/.test(part))
98
- return null;
99
- const n = BigInt(parseInt(part, 16));
100
- result = (result << 16n) | n;
101
- }
102
- return result;
103
- }
104
- function ipv4CidrContains(ip, cidr) {
105
- const [base, maskStr] = cidr.split('/');
106
- const ipInt = ipv4ToInt(ip);
107
- const baseInt = ipv4ToInt(base);
108
- if (ipInt == null || baseInt == null)
109
- return false;
110
- const maskBits = Number(maskStr);
111
- if (!Number.isInteger(maskBits) || maskBits < 0 || maskBits > 32)
112
- return false;
113
- const mask = maskBits === 0 ? 0 : (~0 << (32 - maskBits)) >>> 0;
114
- return ((ipInt & mask) >>> 0) === ((baseInt & mask) >>> 0);
115
- }
116
- function ipv6CidrContains(ip, cidr) {
117
- const [base, maskStr] = cidr.split('/');
118
- const ipBig = ipv6ToBigInt(ip);
119
- const baseBig = ipv6ToBigInt(base);
120
- if (ipBig == null || baseBig == null)
121
- return false;
122
- const maskBits = Number(maskStr);
123
- if (!Number.isInteger(maskBits) || maskBits < 0 || maskBits > 128)
124
- return false;
125
- const prefix = BigInt(maskBits);
126
- const mask = prefix === 0n ? 0n : ((1n << prefix) - 1n) << (128n - prefix);
127
- return (ipBig & mask) === (baseBig & mask);
128
- }
129
- function isIpInCidr(ip, cidr) {
130
- const version = (0, net_1.isIP)(ip.trim());
131
- if (version === 0)
132
- return false;
133
- if (!isValidCidr(cidr))
134
- return false;
135
- const cidrIpVersion = (0, net_1.isIP)(cidr.split('/')[0]);
136
- if (cidrIpVersion !== version)
137
- return false;
138
- return version === 4 ? ipv4CidrContains(ip, cidr) : ipv6CidrContains(ip, cidr);
139
- }
140
- function isIpInCidrs(ip, cidrs) {
141
- if (!Array.isArray(cidrs) || cidrs.length === 0)
142
- return false;
143
- for (let i = 0; i < cidrs.length; i++) {
144
- const c = cidrs[i];
145
- if (typeof c !== 'string')
146
- continue;
147
- if (isIpInCidr(ip, c.trim()))
148
- return true;
149
- }
150
- return false;
151
- }
152
- function getClientIp(req) {
153
- const xForwardedFor = req.headers["x-forwarded-for"];
154
- if (typeof xForwardedFor === "string" && xForwardedFor.length > 0) {
155
- const clientIp = xForwardedFor.split(",")[0].trim();
156
- if (clientIp)
157
- return clientIp;
158
- }
159
- return req.socket.remoteAddress ?? undefined;
160
- }
161
- exports.default = {
162
- isValidIp,
163
- isValidCidr,
164
- validateIpOrCidr,
165
- isIpInCidr,
166
- isIpInCidrs,
167
- };
@@ -1,108 +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
- exports.CACHE_TABLE = void 0;
7
- const jose_1 = require("jose");
8
- const runtime_1 = __importDefault(require("./runtime"));
9
- exports.CACHE_TABLE = 'cache-global';
10
- class JWKSHelper extends runtime_1.default {
11
- firestore;
12
- constructor(opts, firestore) {
13
- super(opts);
14
- this.firestore = firestore;
15
- }
16
- async validateAuthorizationHeader(authorizationHeader, expectedServiceAccount = null) {
17
- const splitted = authorizationHeader.split(".");
18
- const keyMeta = JSON.parse(Buffer.from(splitted[0], "base64").toString('utf-8')) || {};
19
- const meta = JSON.parse(Buffer.from(splitted[1], "base64").toString('utf-8')) || {};
20
- if (!meta.email_verified) {
21
- throw new Error("Authorization header - Email not verified");
22
- }
23
- if (expectedServiceAccount !== false) {
24
- if (expectedServiceAccount === null) {
25
- expectedServiceAccount = `runtime@${process.env.GCLOUD_PROJECT}.iam.gserviceaccount.com`;
26
- }
27
- if (meta.email !== expectedServiceAccount) {
28
- throw new Error(`Authorization header - Wrong service account, got ${meta?.email}, expected ${expectedServiceAccount}`);
29
- }
30
- }
31
- if (!keyMeta.kid || !keyMeta.alg) {
32
- throw new Error("Malformed Authorization Header. KID is missing");
33
- }
34
- const key = await this.getKey(keyMeta.kid);
35
- if (!key) {
36
- throw new Error("Incorrect Authorization Header. The key has not been found in the Google JWKS set");
37
- }
38
- const importedKey = await (0, jose_1.importJWK)(key, keyMeta.alg);
39
- let validationCorrect = true;
40
- try {
41
- await (0, jose_1.jwtVerify)(authorizationHeader, importedKey, {
42
- issuer: ['https://accounts.google.com', 'accounts.google.com'],
43
- clockTolerance: 0,
44
- audience: process.env.GCLOUD_PROJECT + "/" + this.triggerId,
45
- });
46
- }
47
- catch (err) {
48
- validationCorrect = false;
49
- }
50
- if (!validationCorrect) {
51
- throw new Error("Incorrect Authorization Header. The JWT is not valid");
52
- }
53
- return {
54
- email: meta.email,
55
- };
56
- }
57
- async getKey(keyId) {
58
- const jwks = typeof global.jwks !== 'undefined' ? global.jwks : null;
59
- let parsedJwks = null;
60
- if (jwks) {
61
- try {
62
- parsedJwks = JSON.parse(jwks);
63
- }
64
- catch (err) {
65
- err.message.toString();
66
- }
67
- }
68
- let keyData = parsedJwks?.keys?.find((x) => x.kid === keyId);
69
- let cachedItem;
70
- if (!keyData) {
71
- cachedItem = await this.firestore.collection(exports.CACHE_TABLE).doc('google-jwks').get();
72
- if (cachedItem.exists && cachedItem.data()?.expires_at.toDate() > new Date()) {
73
- keyData = cachedItem.data()?.value;
74
- }
75
- }
76
- keyData = parsedJwks?.keys.find((x) => x.kid === keyId);
77
- if (!keyData) {
78
- const result = (await this.fetchJWKS());
79
- parsedJwks = result.jwks;
80
- if (cachedItem) {
81
- cachedItem.ref.set({
82
- value: parsedJwks,
83
- expires_at: result.expiresAt
84
- }, { merge: true });
85
- }
86
- keyData = parsedJwks?.keys.find((x) => x.kid === keyId);
87
- }
88
- if (parsedJwks && cachedItem) {
89
- global.jwks = JSON.stringify(parsedJwks);
90
- }
91
- return keyData;
92
- }
93
- async fetchJWKS() {
94
- const date = new Date();
95
- let expiresAt = new Date(Date.now() + 1000 * 60 * 60);
96
- const response = await fetch("https://www.googleapis.com/oauth2/v3/certs");
97
- const maxAgePair = response.headers.get("Cache-Control")?.split(',').map(x => x.trim().split('=')).find(x => x[0] === 'max-age');
98
- if (maxAgePair && maxAgePair.length === 2) {
99
- expiresAt = new Date(date.getTime() + parseInt(maxAgePair[1], 10) * 1000);
100
- }
101
- const jwks = await response.json();
102
- return {
103
- expiresAt,
104
- jwks: jwks
105
- };
106
- }
107
- }
108
- exports.default = JWKSHelper;