@shushed/helpers 0.0.202-bug-erp-770-20251203154745 → 0.0.202-v2-20251208085030

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 (236) hide show
  1. package/dist/cjs/dist-dereferenced/asset.js +4 -0
  2. package/dist/cjs/dist-dereferenced/category.js +4 -0
  3. package/dist/cjs/dist-dereferenced/country.js +4 -0
  4. package/dist/cjs/dist-dereferenced/currency.js +4 -0
  5. package/dist/cjs/dist-dereferenced/customer-segment.js +4 -0
  6. package/dist/cjs/dist-dereferenced/development-colour.js +4 -0
  7. package/dist/cjs/dist-dereferenced/index.js +69 -0
  8. package/dist/cjs/dist-dereferenced/marketing-preferences.js +4 -0
  9. package/dist/cjs/dist-dereferenced/messages/ean-change.js +4 -0
  10. package/dist/cjs/dist-dereferenced/messages/index.js +50 -0
  11. package/dist/cjs/dist-dereferenced/messages/order/delivered.js +4 -0
  12. package/dist/cjs/dist-dereferenced/messages/order/index.js +18 -0
  13. package/dist/cjs/dist-dereferenced/messages/order/new.js +4 -0
  14. package/dist/cjs/dist-dereferenced/messages/order/processed.js +4 -0
  15. package/dist/cjs/dist-dereferenced/messages/order/return-initiated.js +4 -0
  16. package/dist/cjs/dist-dereferenced/messages/order/returned.js +4 -0
  17. package/dist/cjs/dist-dereferenced/messages/order/shipped.js +4 -0
  18. package/dist/cjs/dist-dereferenced/messages/price-change.js +4 -0
  19. package/dist/cjs/dist-dereferenced/messages/product-category.js +4 -0
  20. package/dist/cjs/dist-dereferenced/messages/product-draft.js +4 -0
  21. package/dist/cjs/dist-dereferenced/messages/product.js +4 -0
  22. package/dist/cjs/dist-dereferenced/money.js +4 -0
  23. package/dist/cjs/dist-dereferenced/order/address.js +4 -0
  24. package/dist/cjs/dist-dereferenced/order/customer.js +4 -0
  25. package/dist/cjs/dist-dereferenced/order/index.js +51 -0
  26. package/dist/cjs/dist-dereferenced/order/item.js +4 -0
  27. package/dist/cjs/dist-dereferenced/order/orderMain.js +4 -0
  28. package/dist/cjs/dist-dereferenced/order/payment.js +4 -0
  29. package/dist/cjs/dist-dereferenced/order/shipment/index.js +45 -0
  30. package/dist/cjs/dist-dereferenced/order/shipment/item/index.js +11 -0
  31. package/dist/cjs/dist-dereferenced/order/shipment/item/itemMain.js +4 -0
  32. package/dist/cjs/dist-dereferenced/order/shipment/item/returned.js +4 -0
  33. package/dist/cjs/dist-dereferenced/order/shipment/pos/index.js +13 -0
  34. package/dist/cjs/dist-dereferenced/order/shipment/pos/outbound.js +4 -0
  35. package/dist/cjs/dist-dereferenced/order/shipment/pos/posMain.js +4 -0
  36. package/dist/cjs/dist-dereferenced/order/shipment/pos/return.js +4 -0
  37. package/dist/cjs/dist-dereferenced/order/shipment/shipmentMain.js +4 -0
  38. package/dist/cjs/dist-dereferenced/order/shipment/shipped/index.js +13 -0
  39. package/dist/cjs/dist-dereferenced/order/shipment/shipped/outbound.js +4 -0
  40. package/dist/cjs/dist-dereferenced/order/shipment/shipped/return.js +4 -0
  41. package/dist/cjs/dist-dereferenced/order/shipment/shipped/shippedMain.js +4 -0
  42. package/dist/cjs/dist-dereferenced/price.js +4 -0
  43. package/dist/cjs/dist-dereferenced/product-category.js +4 -0
  44. package/dist/cjs/dist-dereferenced/product-draft.js +4 -0
  45. package/dist/cjs/dist-dereferenced/product.js +4 -0
  46. package/dist/cjs/dist-dereferenced/stock.js +4 -0
  47. package/dist/cjs/dist-dereferenced/total.js +4 -0
  48. package/dist/cjs/dist-types/asset.js +2 -0
  49. package/dist/cjs/dist-types/category.js +2 -0
  50. package/dist/cjs/dist-types/country.js +2 -0
  51. package/dist/cjs/dist-types/currency.js +2 -0
  52. package/dist/cjs/dist-types/customer-segment.js +2 -0
  53. package/dist/cjs/dist-types/development-colour.js +2 -0
  54. package/dist/cjs/dist-types/index.js +38 -0
  55. package/dist/cjs/dist-types/marketing-preferences.js +2 -0
  56. package/dist/cjs/dist-types/messages/ean-change.js +2 -0
  57. package/dist/cjs/dist-types/messages/index.js +37 -0
  58. package/dist/cjs/dist-types/messages/order/delivered.js +2 -0
  59. package/dist/cjs/dist-types/messages/order/index.js +2 -0
  60. package/dist/cjs/dist-types/messages/order/new.js +2 -0
  61. package/dist/cjs/dist-types/messages/order/processed.js +2 -0
  62. package/dist/cjs/dist-types/messages/order/return-initiated.js +2 -0
  63. package/dist/cjs/dist-types/messages/order/returned.js +2 -0
  64. package/dist/cjs/dist-types/messages/order/shipped.js +2 -0
  65. package/dist/cjs/dist-types/messages/price-change.js +2 -0
  66. package/dist/cjs/dist-types/messages/product-category.js +2 -0
  67. package/dist/cjs/dist-types/messages/product-draft.js +2 -0
  68. package/dist/cjs/dist-types/messages/product.js +2 -0
  69. package/dist/cjs/dist-types/money.js +2 -0
  70. package/dist/cjs/dist-types/order/address.js +2 -0
  71. package/dist/cjs/dist-types/order/customer.js +2 -0
  72. package/dist/cjs/dist-types/order/index.js +37 -0
  73. package/dist/cjs/dist-types/order/item.js +2 -0
  74. package/dist/cjs/dist-types/order/orderMain.js +2 -0
  75. package/dist/cjs/dist-types/order/payment.js +2 -0
  76. package/dist/cjs/dist-types/order/shipment/index.js +39 -0
  77. package/dist/cjs/dist-types/order/shipment/item/index.js +2 -0
  78. package/dist/cjs/dist-types/order/shipment/item/itemMain.js +2 -0
  79. package/dist/cjs/dist-types/order/shipment/item/returned.js +2 -0
  80. package/dist/cjs/dist-types/order/shipment/pos/index.js +2 -0
  81. package/dist/cjs/dist-types/order/shipment/pos/outbound.js +2 -0
  82. package/dist/cjs/dist-types/order/shipment/pos/posMain.js +2 -0
  83. package/dist/cjs/dist-types/order/shipment/pos/return.js +2 -0
  84. package/dist/cjs/dist-types/order/shipment/shipmentMain.js +2 -0
  85. package/dist/cjs/dist-types/order/shipment/shipped/index.js +2 -0
  86. package/dist/cjs/dist-types/order/shipment/shipped/outbound.js +2 -0
  87. package/dist/cjs/dist-types/order/shipment/shipped/return.js +2 -0
  88. package/dist/cjs/dist-types/order/shipment/shipped/shippedMain.js +2 -0
  89. package/dist/cjs/dist-types/price.js +2 -0
  90. package/dist/cjs/dist-types/product-category.js +2 -0
  91. package/dist/cjs/dist-types/product-draft.js +2 -0
  92. package/dist/cjs/dist-types/product.js +2 -0
  93. package/dist/cjs/dist-types/stock.js +2 -0
  94. package/dist/cjs/dist-types/total.js +2 -0
  95. package/dist/cjs/index.js +39 -0
  96. package/dist/cjs/src-public/airtable.js +625 -0
  97. package/dist/cjs/src-public/bigquery.js +59 -0
  98. package/dist/cjs/src-public/centra.js +1053 -0
  99. package/dist/cjs/src-public/cloudtasks.js +207 -0
  100. package/dist/cjs/src-public/dato.js +680 -0
  101. package/dist/cjs/src-public/env.js +900 -0
  102. package/dist/cjs/src-public/getEventTime.js +28 -0
  103. package/dist/cjs/src-public/index.js +52 -0
  104. package/dist/cjs/src-public/ipValidation.js +167 -0
  105. package/dist/cjs/src-public/jwks.js +108 -0
  106. package/dist/cjs/src-public/pubsub.js +423 -0
  107. package/dist/cjs/src-public/rateLimit.js +140 -0
  108. package/dist/cjs/src-public/redisClient.js +44 -0
  109. package/dist/cjs/src-public/runtime.js +145 -0
  110. package/dist/cjs/src-public/sanitize.js +25 -0
  111. package/dist/cjs/src-public/scheduler.js +247 -0
  112. package/dist/cjs/src-public/secret.js +16 -0
  113. package/dist/cjs/src-public/setHeaders.js +16 -0
  114. package/dist/cjs/src-public/types.js +2 -0
  115. package/dist/cjs/src-public/utils.js +457 -0
  116. package/dist/cjs/src-public/validate.js +40 -0
  117. package/dist/package.json +6 -3
  118. package/dist/types/dist-dereferenced/asset.d.ts +51 -0
  119. package/dist/types/dist-dereferenced/category.d.ts +58 -0
  120. package/dist/types/dist-dereferenced/country.d.ts +8 -0
  121. package/dist/types/dist-dereferenced/currency.d.ts +8 -0
  122. package/dist/types/dist-dereferenced/customer-segment.d.ts +26 -0
  123. package/dist/types/dist-dereferenced/development-colour.d.ts +114 -0
  124. package/dist/types/dist-dereferenced/index.d.ts +16 -0
  125. package/dist/types/dist-dereferenced/marketing-preferences.d.ts +31 -0
  126. package/dist/types/dist-dereferenced/messages/ean-change.d.ts +17 -0
  127. package/dist/types/dist-dereferenced/messages/index.d.ts +6 -0
  128. package/dist/types/dist-dereferenced/messages/order/delivered.d.ts +3414 -0
  129. package/dist/types/dist-dereferenced/messages/order/index.d.ts +6 -0
  130. package/dist/types/dist-dereferenced/messages/order/new.d.ts +3414 -0
  131. package/dist/types/dist-dereferenced/messages/order/processed.d.ts +3408 -0
  132. package/dist/types/dist-dereferenced/messages/order/return-initiated.d.ts +3414 -0
  133. package/dist/types/dist-dereferenced/messages/order/returned.d.ts +3413 -0
  134. package/dist/types/dist-dereferenced/messages/order/shipped.d.ts +3412 -0
  135. package/dist/types/dist-dereferenced/messages/price-change.d.ts +67 -0
  136. package/dist/types/dist-dereferenced/messages/product-category.d.ts +33 -0
  137. package/dist/types/dist-dereferenced/messages/product-draft.d.ts +589 -0
  138. package/dist/types/dist-dereferenced/messages/product.d.ts +628 -0
  139. package/dist/types/dist-dereferenced/money.d.ts +41 -0
  140. package/dist/types/dist-dereferenced/order/address.d.ts +98 -0
  141. package/dist/types/dist-dereferenced/order/customer.d.ts +309 -0
  142. package/dist/types/dist-dereferenced/order/index.d.ts +3404 -0
  143. package/dist/types/dist-dereferenced/order/item.d.ts +336 -0
  144. package/dist/types/dist-dereferenced/order/orderMain.d.ts +3399 -0
  145. package/dist/types/dist-dereferenced/order/payment.d.ts +94 -0
  146. package/dist/types/dist-dereferenced/order/shipment/index.d.ts +253 -0
  147. package/dist/types/dist-dereferenced/order/shipment/item/index.d.ts +19 -0
  148. package/dist/types/dist-dereferenced/order/shipment/item/itemMain.d.ts +18 -0
  149. package/dist/types/dist-dereferenced/order/shipment/item/returned.d.ts +34 -0
  150. package/dist/types/dist-dereferenced/order/shipment/pos/index.d.ts +282 -0
  151. package/dist/types/dist-dereferenced/order/shipment/pos/outbound.d.ts +320 -0
  152. package/dist/types/dist-dereferenced/order/shipment/pos/posMain.d.ts +280 -0
  153. package/dist/types/dist-dereferenced/order/shipment/pos/return.d.ts +331 -0
  154. package/dist/types/dist-dereferenced/order/shipment/shipmentMain.d.ts +250 -0
  155. package/dist/types/dist-dereferenced/order/shipment/shipped/index.d.ts +288 -0
  156. package/dist/types/dist-dereferenced/order/shipment/shipped/outbound.d.ts +286 -0
  157. package/dist/types/dist-dereferenced/order/shipment/shipped/return.d.ts +287 -0
  158. package/dist/types/dist-dereferenced/order/shipment/shipped/shippedMain.d.ts +286 -0
  159. package/dist/types/dist-dereferenced/price.d.ts +58 -0
  160. package/dist/types/dist-dereferenced/product-category.d.ts +24 -0
  161. package/dist/types/dist-dereferenced/product-draft.d.ts +580 -0
  162. package/dist/types/dist-dereferenced/product.d.ts +619 -0
  163. package/dist/types/dist-dereferenced/stock.d.ts +74 -0
  164. package/dist/types/dist-dereferenced/total.d.ts +172 -0
  165. package/dist/types/dist-types/asset.d.ts +16 -0
  166. package/dist/types/dist-types/category.d.ts +20 -0
  167. package/dist/types/dist-types/country.d.ts +2 -0
  168. package/dist/types/dist-types/currency.d.ts +2 -0
  169. package/dist/types/dist-types/customer-segment.d.ts +6 -0
  170. package/dist/types/dist-types/development-colour.d.ts +31 -0
  171. package/dist/types/dist-types/index.d.ts +16 -0
  172. package/dist/types/dist-types/marketing-preferences.d.ts +9 -0
  173. package/dist/types/dist-types/messages/ean-change.d.ts +5 -0
  174. package/dist/types/dist-types/messages/index.d.ts +6 -0
  175. package/dist/types/dist-types/messages/order/delivered.d.ts +292 -0
  176. package/dist/types/dist-types/messages/order/index.d.ts +6 -0
  177. package/dist/types/dist-types/messages/order/new.d.ts +292 -0
  178. package/dist/types/dist-types/messages/order/processed.d.ts +292 -0
  179. package/dist/types/dist-types/messages/order/return-initiated.d.ts +292 -0
  180. package/dist/types/dist-types/messages/order/returned.d.ts +293 -0
  181. package/dist/types/dist-types/messages/order/shipped.d.ts +293 -0
  182. package/dist/types/dist-types/messages/price-change.d.ts +16 -0
  183. package/dist/types/dist-types/messages/product-category.d.ts +7 -0
  184. package/dist/types/dist-types/messages/product-draft.d.ts +136 -0
  185. package/dist/types/dist-types/messages/product.d.ts +144 -0
  186. package/dist/types/dist-types/money.d.ts +11 -0
  187. package/dist/types/dist-types/order/address.d.ts +27 -0
  188. package/dist/types/dist-types/order/customer.d.ts +81 -0
  189. package/dist/types/dist-types/order/index.d.ts +8 -0
  190. package/dist/types/dist-types/order/item.d.ts +85 -0
  191. package/dist/types/dist-types/order/orderMain.d.ts +289 -0
  192. package/dist/types/dist-types/order/payment.d.ts +26 -0
  193. package/dist/types/dist-types/order/shipment/index.d.ts +6 -0
  194. package/dist/types/dist-types/order/shipment/item/index.d.ts +4 -0
  195. package/dist/types/dist-types/order/shipment/item/itemMain.d.ts +6 -0
  196. package/dist/types/dist-types/order/shipment/item/returned.d.ts +11 -0
  197. package/dist/types/dist-types/order/shipment/pos/index.d.ts +5 -0
  198. package/dist/types/dist-types/order/shipment/pos/outbound.d.ts +76 -0
  199. package/dist/types/dist-types/order/shipment/pos/posMain.d.ts +71 -0
  200. package/dist/types/dist-types/order/shipment/pos/return.d.ts +75 -0
  201. package/dist/types/dist-types/order/shipment/shipmentMain.d.ts +62 -0
  202. package/dist/types/dist-types/order/shipment/shipped/index.d.ts +5 -0
  203. package/dist/types/dist-types/order/shipment/shipped/outbound.d.ts +68 -0
  204. package/dist/types/dist-types/order/shipment/shipped/return.d.ts +68 -0
  205. package/dist/types/dist-types/order/shipment/shipped/shippedMain.d.ts +69 -0
  206. package/dist/types/dist-types/price.d.ts +15 -0
  207. package/dist/types/dist-types/product-category.d.ts +6 -0
  208. package/dist/types/dist-types/product-draft.d.ts +135 -0
  209. package/dist/types/dist-types/product.d.ts +143 -0
  210. package/dist/types/dist-types/stock.d.ts +19 -0
  211. package/dist/types/dist-types/total.d.ts +44 -0
  212. package/dist/types/index.d.ts +3 -0
  213. package/dist/types/src-public/airtable.d.ts +227 -0
  214. package/dist/types/src-public/bigquery.d.ts +17 -0
  215. package/dist/types/src-public/centra.d.ts +176 -0
  216. package/dist/types/src-public/cloudtasks.d.ts +74 -0
  217. package/dist/types/src-public/dato.d.ts +95 -0
  218. package/dist/types/src-public/env.d.ts +144 -0
  219. package/dist/types/src-public/getEventTime.d.ts +1 -0
  220. package/dist/types/src-public/index.d.ts +18 -0
  221. package/dist/types/src-public/ipValidation.d.ts +15 -0
  222. package/dist/types/src-public/jwks.d.ts +15 -0
  223. package/dist/types/src-public/pubsub.d.ts +95 -0
  224. package/dist/types/src-public/rateLimit.d.ts +21 -0
  225. package/dist/types/src-public/redisClient.d.ts +6 -0
  226. package/dist/types/src-public/runtime.d.ts +58 -0
  227. package/dist/types/src-public/sanitize.d.ts +4 -0
  228. package/dist/types/src-public/scheduler.d.ts +71 -0
  229. package/dist/types/src-public/secret.d.ts +6 -0
  230. package/dist/types/src-public/setHeaders.d.ts +13 -0
  231. package/dist/types/src-public/types.d.ts +264 -0
  232. package/dist/types/src-public/utils.d.ts +101 -0
  233. package/dist/types/src-public/validate.d.ts +9 -0
  234. package/package.json +7 -4
  235. package/dist/index.d.ts +0 -34970
  236. package/dist/index.js +0 -113296
@@ -0,0 +1,144 @@
1
+ import { IncomingMessage } from "http";
2
+ import { type PubSub } from "@google-cloud/pubsub";
3
+ import { RateLimiterRedis } from "rate-limiter-flexible";
4
+ import PubSubHelper from "./pubsub";
5
+ import Runtime, { Opts as RuntimeOpts } from './runtime';
6
+ import { RNConfiguration } from "./types";
7
+ declare global {
8
+ var HUSH_PUBSUB_INSTANCE: PubSub | undefined;
9
+ }
10
+ type Level = 'env' | 'workflow' | 'trigger';
11
+ type SetOptions = {
12
+ ephemeralMs?: number;
13
+ ignoreStores?: Array<'redis' | 'global'>;
14
+ encrypted: boolean;
15
+ encryptionKey?: string | undefined;
16
+ };
17
+ type GetOptions = {
18
+ isEphemeral?: boolean;
19
+ encrypted?: boolean;
20
+ encryptionKey?: string | undefined;
21
+ expirationMarginMs?: number;
22
+ store?: 'inMemory' | 'global' | 'redis';
23
+ };
24
+ type ValueDetails = {
25
+ createdAt: number;
26
+ expiresAt: number;
27
+ value: string;
28
+ valid: boolean;
29
+ fetch?: () => Promise<string>;
30
+ };
31
+ declare global {
32
+ var IN_MEMORY_REF: undefined | {
33
+ env: Record<string, Record<string, string>>;
34
+ workflow: Record<string, Record<string, string>>;
35
+ trigger: Record<string, Record<string, string>>;
36
+ };
37
+ }
38
+ declare class EnvEngine extends Runtime {
39
+ globalInMemoryRef: {
40
+ env: Record<string, string>;
41
+ workflow: Record<string, string>;
42
+ trigger: Record<string, string>;
43
+ };
44
+ inMemoryRef: {
45
+ env: Record<string, string>;
46
+ workflow: Record<string, string>;
47
+ trigger: Record<string, string>;
48
+ };
49
+ private docRef;
50
+ private store;
51
+ private _envCache;
52
+ private _lockRateLimiter;
53
+ constructor(opts: Runtime | RuntimeOpts, _?: any);
54
+ private initializeDocRef;
55
+ set(envs: Array<{
56
+ name: string;
57
+ value: string;
58
+ }>, level: Level, options?: SetOptions): Promise<void>;
59
+ set(envs: Array<{
60
+ name: string;
61
+ value: string;
62
+ }>, level: Level, encryptWithValue?: string): Promise<void>;
63
+ private getFirestoreStore;
64
+ get<T extends ReadonlyArray<string>>(keys: T, level?: Level, options?: GetOptions): Promise<{
65
+ [K in T[number]]: string;
66
+ }>;
67
+ get<T extends ReadonlyArray<string>>(keys: T, level?: Level, decryptWithValue?: string): Promise<{
68
+ [K in T[number]]: string;
69
+ }>;
70
+ get<M extends string, T extends readonly [M] = [M]>(key: M, level?: Level, options?: GetOptions): Promise<string>;
71
+ get<M extends string, T extends readonly [M] = [M]>(key: M, level?: Level, decryptWithValue?: string): Promise<string>;
72
+ _get<T extends ReadonlyArray<string>>(keysParsed: T, level: Level | undefined, options: GetOptions): Promise<{
73
+ [K in T[number]]: ValueDetails;
74
+ }>;
75
+ withGoogleAccessToken(): ReturnType<typeof this.with<string>>;
76
+ withGoogleIdentityToken(audience: {
77
+ workflowId: string;
78
+ triggerId: string;
79
+ }): ReturnType<typeof this.with<string>>;
80
+ resolveEnvName(envName: string): string;
81
+ checkGoogleIdentiyToken(accessToken: string, audience?: {
82
+ workflowId?: string;
83
+ triggerId?: string;
84
+ }, allowedServiceAccounts?: Array<string>): Promise<any>;
85
+ withSecret(key: string): ReturnType<typeof this.with<string>>;
86
+ with<M extends string>(key: M, level?: Level, options?: SetOptions & {
87
+ fetch?: () => Promise<M>;
88
+ }): <T>(fn: (value: M, requestCacheRefresh?: () => void) => Promise<T> | T) => Promise<T>;
89
+ pauseRespectfulNudge(subscriptionName: string, partialConfig?: Partial<{
90
+ workflowTriggerId: string;
91
+ pubSubProjectId: string;
92
+ }>): Promise<boolean>;
93
+ getRespectfulNudgeConfig(subscriptionName: string, rnPartialConfig: Partial<RNConfiguration>): RNConfiguration;
94
+ createOrUpdateRespectfulNudge(subscriptionName: string, rnPartialConfig: Partial<RNConfiguration>): Promise<boolean>;
95
+ getRequestSource(request: {
96
+ headers: NodeJS.Dict<string | string[]>;
97
+ }): "respectful-nudge" | "pubsub" | "scheduler" | "cloud-task" | "direct";
98
+ validateAuthorizationHeader(request: {
99
+ headers: NodeJS.Dict<string | string[]>;
100
+ }): Promise<{
101
+ serviceAccount: any;
102
+ flags: string[];
103
+ }>;
104
+ decodeRequests(request: {
105
+ headers: NodeJS.Dict<string | string[]>;
106
+ query: Record<string, string>;
107
+ }, nodeReq: IncomingMessage): Promise<{
108
+ requestSource: string;
109
+ messageId: string | undefined;
110
+ sourceSystem: string;
111
+ targetSystem: string;
112
+ buildshipId: string;
113
+ publishTime: Date | null;
114
+ body: any;
115
+ bodyTxt: string | null;
116
+ exportableToBigQuery: boolean;
117
+ extraAttributes: Record<string, string>;
118
+ subscriptionName: string | undefined;
119
+ }[]>;
120
+ decodeRequest(request: {
121
+ headers: NodeJS.Dict<string | string[]>;
122
+ query: Record<string, string>;
123
+ }, nodeReq: IncomingMessage): Promise<{
124
+ requestSource: string;
125
+ messageId: string | undefined;
126
+ sourceSystem: string;
127
+ targetSystem: string;
128
+ buildshipId: string;
129
+ publishTime: Date | null;
130
+ body: any;
131
+ bodyTxt: string | null;
132
+ exportableToBigQuery: boolean;
133
+ extraAttributes: Record<string, string>;
134
+ subscriptionName: string | undefined;
135
+ }>;
136
+ fetchLogEntries(triggerId: string, retries?: number, delay?: number, filterOverride?: string | null): Promise<any>;
137
+ getPubSubHelper(PubSubClass: typeof PubSub): PubSubHelper;
138
+ static readonly LOCK_NOT_ACQUIRED_ERROR: unique symbol;
139
+ withLock<T>(key: string, maxWaitTimeMs: number | undefined, fn: () => Promise<T>): Promise<T | typeof EnvEngine.LOCK_NOT_ACQUIRED_ERROR>;
140
+ acquireLock(key: string, maxWaitTimeMs?: number): Promise<boolean>;
141
+ releaseLock(key: string): Promise<boolean>;
142
+ getLockRateLimiter(): Promise<null | RateLimiterRedis>;
143
+ }
144
+ export default EnvEngine;
@@ -0,0 +1 @@
1
+ export default function getEventTime(x: any, defaultValue: Date): Date;
@@ -0,0 +1,18 @@
1
+ export { default as validate } from './validate';
2
+ export * from './sanitize';
3
+ export * from './utils';
4
+ export { default as EnvEngine } from './env';
5
+ export { default as PubSubHelper, type Message, type ReceivedMessage } from './pubsub';
6
+ export { default as Runtime, Logging, ILogging } from './runtime';
7
+ export { default as SchedulerHelper } from './scheduler';
8
+ export { default as Secrets } from './secret';
9
+ export { default as CloudTasksHelper } from './cloudtasks';
10
+ export { default as JWKSHelper } from './jwks';
11
+ export { default as BigQueryHelper } from './bigquery';
12
+ export { default as CentraHelper } from './centra';
13
+ export { default as AirtableHelper } from './airtable';
14
+ export { default as DatoHelper } from './dato';
15
+ export { default as setHeaders } from './setHeaders';
16
+ export { type CentraError, type CentraErrors, type BasicCentraCountry, type BasicCentraMarket, type BasicCentraSizeChart, type BasicPricelist, type BasicCentraWarehouse, type BasicCentraCampaign, type BasicCentraProduct, type BasicCentraVariant, type BasicCentraDisplay } from './centra';
17
+ export { default as RateLimit, RedisConnectionError } from './rateLimit';
18
+ export { type TriggerOnCreateOptions, type TriggerOnExecuteOptions, type NodeOptions, type RNConfiguration, type TriggerExtraOptions } from './types';
@@ -0,0 +1,15 @@
1
+ import { IncomingMessage } from 'http';
2
+ export declare function isValidIp(value: string): boolean;
3
+ export declare function isValidCidr(value: string): boolean;
4
+ export declare function validateIpOrCidr(value: string): boolean;
5
+ export declare function isIpInCidr(ip: string, cidr: string): boolean;
6
+ export declare function isIpInCidrs(ip: string, cidrs: string[]): boolean;
7
+ export declare function getClientIp(req: IncomingMessage): string | undefined;
8
+ declare const _default: {
9
+ isValidIp: typeof isValidIp;
10
+ isValidCidr: typeof isValidCidr;
11
+ validateIpOrCidr: typeof validateIpOrCidr;
12
+ isIpInCidr: typeof isIpInCidr;
13
+ isIpInCidrs: typeof isIpInCidrs;
14
+ };
15
+ export default _default;
@@ -0,0 +1,15 @@
1
+ import { type Firestore } from "@google-cloud/firestore";
2
+ import Runtime, { Opts as RuntimeOpts } from "./runtime";
3
+ export declare const CACHE_TABLE = "cache-global";
4
+ declare class JWKSHelper extends Runtime {
5
+ private firestore;
6
+ constructor(opts: RuntimeOpts, firestore: Firestore);
7
+ validateAuthorizationHeader(authorizationHeader: string, expectedServiceAccount?: false | string | null): Promise<{
8
+ email: any;
9
+ }>;
10
+ getKey(keyId: string): Promise<{
11
+ kid: string;
12
+ } | undefined>;
13
+ private fetchJWKS;
14
+ }
15
+ export default JWKSHelper;
@@ -0,0 +1,95 @@
1
+ import { type PubSub, type Message as PubSubMessage, type Topic, type Subscription } from '@google-cloud/pubsub';
2
+ import { Context } from "co-body";
3
+ import Runtime, { Opts as RuntimeOpts } from './runtime';
4
+ declare global {
5
+ var HUSH_PUBSUB_PUBLISH_TOPICS: Record<string, Topic>;
6
+ }
7
+ export declare function isSubscriptionBigQuery(opts: SubscriptionOptionsBigQuery | SubscriptionOptionsPull): opts is SubscriptionOptionsBigQuery;
8
+ export type Message = {
9
+ buildshipId: string;
10
+ subscriptionName?: string;
11
+ body: any;
12
+ sourceSystem: string;
13
+ targetSystem: string;
14
+ processStartedAt: Date | null;
15
+ recordModifiedAt: Date | null;
16
+ originalPublishTime: Date | null;
17
+ publishTime: Date | null;
18
+ extraAttributes: Record<string, string>;
19
+ };
20
+ export type ReceivedMessage = Message & {
21
+ messageId?: string | undefined;
22
+ body: any;
23
+ bodyTxt: string;
24
+ };
25
+ type MessageBody = Record<string, any>;
26
+ type SubscriptionOptionsPull = {
27
+ topic: Topic;
28
+ exactlyOnceDelivery?: boolean;
29
+ retryMinDelay?: number;
30
+ retryMaxDelay?: number;
31
+ retryLimit?: number;
32
+ dlqTopic: Topic | null;
33
+ ackDeadline?: number;
34
+ subscriptionFilter?: string | null;
35
+ };
36
+ type SubscriptionOptionsBigQuery = {
37
+ topic: Topic;
38
+ tableId: string;
39
+ dlqTopic: Topic | null;
40
+ retryMinDelay?: number;
41
+ retryMaxDelay?: number;
42
+ retryLimit?: number;
43
+ ackDeadline?: number;
44
+ subscriptionFilter?: string | null;
45
+ };
46
+ declare class PubSubHelper extends Runtime {
47
+ private serviceAccountEmail;
48
+ private pubSub;
49
+ constructor(opts: Runtime | RuntimeOpts, settings: {
50
+ serviceAccountEmail: string;
51
+ }, pubsub: PubSub);
52
+ constructor(opts: RuntimeOpts & {
53
+ serviceAccountEmail: string;
54
+ }, pubSub: PubSub);
55
+ static decodeMessageFromRequest(req: PubSubMessage): Promise<ReceivedMessage>;
56
+ static decodeMessageFromRequest(req: Context): Promise<ReceivedMessage>;
57
+ publish(options: Partial<Message> & {
58
+ topicName: string;
59
+ sourceSystem: string;
60
+ attributesGenerator?: (payload: any) => Record<string, string>;
61
+ }, payloads: Array<MessageBody>): Promise<Array<string | Error>>;
62
+ createOrUpdate(opts: {
63
+ topicName: string;
64
+ subscriptionName?: string;
65
+ createDeadLetterQueues: boolean;
66
+ subscriptionFilter?: string | null;
67
+ pull?: null | {
68
+ retryLimit: number;
69
+ ackDeadline: number;
70
+ retryMinDelay: number;
71
+ retryMaxDelay: number;
72
+ };
73
+ table?: null | {
74
+ tableId: string;
75
+ retryLimit: number;
76
+ retryMinDelay: number;
77
+ retryMaxDelay: number;
78
+ ackDeadline: number;
79
+ };
80
+ }): Promise<{
81
+ mainTopic: Topic;
82
+ mainDlqTopic: Topic | undefined;
83
+ tableDlqTopic: Topic | undefined;
84
+ mainSubscription: Subscription | null;
85
+ mainDlqSubscription: Subscription | null;
86
+ tableDlqSubscription: Subscription | null;
87
+ tableSubscription: Subscription | null;
88
+ }>;
89
+ private findTopic;
90
+ private ensureTopicExists;
91
+ private getNameFromFullyQualifiedName;
92
+ private updateSubscription;
93
+ private ensureSubscribtionExists;
94
+ }
95
+ export default PubSubHelper;
@@ -0,0 +1,21 @@
1
+ export declare class RedisConnectionError extends Error {
2
+ constructor(message: string);
3
+ }
4
+ import { type RedisClientType } from "redis";
5
+ import Runtime, { Opts as RuntimeOpts } from './runtime';
6
+ export interface RateLimitLockInfo {
7
+ id: string;
8
+ workflowId: string;
9
+ triggerId: string;
10
+ url: string;
11
+ envName: string;
12
+ creation_time: number;
13
+ expiration_time: number;
14
+ }
15
+ export default class RateLimit extends Runtime {
16
+ private redisInstance;
17
+ constructor(opts: RuntimeOpts, redisInstance: RedisClientType);
18
+ acquireLock(id: string, maxConcurrentExecutions: number, expirationInSeconds?: number): Promise<boolean>;
19
+ releaseLock(id: string): Promise<void>;
20
+ viewLocks(id: string): Promise<RateLimitLockInfo[]>;
21
+ }
@@ -0,0 +1,6 @@
1
+ import { RedisClientType } from 'redis';
2
+ declare global {
3
+ var REDIS_CLIENTS: Record<string, any>;
4
+ }
5
+ export default function getRedisClient(sysEnv: string): any;
6
+ export declare function getConnectedRedisClient(url: string): Promise<RedisClientType | null>;
@@ -0,0 +1,58 @@
1
+ export interface ILogging {
2
+ log(...args: any[]): void;
3
+ error(...args: any[]): void;
4
+ }
5
+ export type Opts = {
6
+ workflowId?: string;
7
+ workflow?: {
8
+ id: string;
9
+ };
10
+ triggerId?: string;
11
+ trigger?: {
12
+ id: string;
13
+ };
14
+ url?: string;
15
+ runtimeUrl?: string;
16
+ request?: {
17
+ host?: string;
18
+ };
19
+ runtimeEnv?: string;
20
+ env?: {
21
+ triggerEnv?: any;
22
+ runtimeEnv?: string;
23
+ };
24
+ session?: {
25
+ executedNodes: {
26
+ [key: string]: {
27
+ nodeId: string;
28
+ nodeType: string;
29
+ };
30
+ };
31
+ };
32
+ logging?: ILogging;
33
+ } | Runtime;
34
+ export declare class Logging implements ILogging {
35
+ private workflowId;
36
+ private triggerId;
37
+ private systemEnvName;
38
+ metadata: any;
39
+ logFn: (...args: any[]) => void;
40
+ errorFn: (...args: any[]) => void;
41
+ constructor(workflowId: string, triggerId: string, systemEnvName: string);
42
+ log(...args: any[]): void;
43
+ error(...args: any[]): void;
44
+ }
45
+ export default class Runtime {
46
+ readonly workflowId: string;
47
+ readonly triggerId: string;
48
+ readonly envName: string;
49
+ readonly pubSubPrefix: string;
50
+ readonly systemEnvName: string;
51
+ readonly runtimeUrl: string;
52
+ readonly logging: ILogging;
53
+ readonly workflowRoot: any | null;
54
+ constructor(opts: Opts | Runtime);
55
+ private getRuntimeUrl;
56
+ private getSystemEnvName;
57
+ private get isDeployment();
58
+ }
@@ -0,0 +1,4 @@
1
+ import { DeepRedact } from '@hackylabs/deep-redact';
2
+ declare const sanitizeToString: DeepRedact;
3
+ declare const sanitize: DeepRedact;
4
+ export { sanitizeToString, sanitize };
@@ -0,0 +1,71 @@
1
+ import { type Topic } from '@google-cloud/pubsub';
2
+ import EnvEngine from './env';
3
+ import type { Opts as RuntimeOpts } from './runtime';
4
+ type SchedulerSettings = {
5
+ pubSubTarget?: Topic | null;
6
+ schedulerLocationId?: string | null;
7
+ };
8
+ declare class SchedulerHelper extends EnvEngine {
9
+ private pubSubTarget;
10
+ private pubSubProjectId;
11
+ private schedulerLocationId;
12
+ private readonly schedulerApiBase;
13
+ constructor(opts: RuntimeOpts & SchedulerSettings);
14
+ constructor(opts: RuntimeOpts, settings: SchedulerSettings);
15
+ get locationIds(): string[];
16
+ getTarget(extraQuery?: Record<string, string>): {
17
+ pubsubTarget: {
18
+ topicName: string;
19
+ data: Buffer<ArrayBuffer>;
20
+ };
21
+ httpTarget?: undefined;
22
+ } | {
23
+ httpTarget: {
24
+ uri: string;
25
+ httpMethod: "POST";
26
+ headers: {
27
+ "Content-Type": string;
28
+ };
29
+ oidcToken: {
30
+ serviceAccountEmail: string;
31
+ audience: string;
32
+ };
33
+ };
34
+ pubsubTarget?: undefined;
35
+ };
36
+ create({ schedule, timezone, extraQuery }: {
37
+ schedule: string;
38
+ timezone: string;
39
+ extraQuery?: Record<string, string>;
40
+ }): Promise<{
41
+ status: unknown;
42
+ state: string | undefined;
43
+ name: string | undefined;
44
+ httpTarget: Record<string, unknown> | undefined;
45
+ pubsubTarget: Record<string, unknown> | undefined;
46
+ }>;
47
+ retrieve(): Promise<{
48
+ state: string | undefined;
49
+ schedule: string | undefined;
50
+ timeZone: string | undefined;
51
+ httpTarget: Record<string, unknown> | undefined;
52
+ pubsubTarget: Record<string, unknown> | undefined;
53
+ } | null>;
54
+ update({ schedule, timezone, extraQuery }: {
55
+ schedule: string;
56
+ timezone: string;
57
+ extraQuery?: Record<string, string>;
58
+ }): Promise<{
59
+ status: unknown;
60
+ state: string | undefined;
61
+ name: string | undefined;
62
+ httpTarget: Record<string, unknown> | undefined;
63
+ pubsubTarget: Record<string, unknown> | undefined;
64
+ }>;
65
+ delete(): Promise<any>;
66
+ private getSchedulerIdentifiers;
67
+ private callScheduler;
68
+ private mapMutationJob;
69
+ private mapRetrievedJob;
70
+ }
71
+ export default SchedulerHelper;
@@ -0,0 +1,6 @@
1
+ import Runtime, { Opts as RuntimeOpts } from './runtime';
2
+ declare class Secrets extends Runtime {
3
+ constructor(opts: RuntimeOpts);
4
+ getSecret(name: string): Promise<string>;
5
+ }
6
+ export default Secrets;
@@ -0,0 +1,13 @@
1
+ declare const _default: ({ headerKey, headerValue, req }: {
2
+ headerKey: string;
3
+ headerValue: string;
4
+ req: {
5
+ set: (headerKey: string, headerValue: string) => void;
6
+ response: {
7
+ get: (headerKey: string) => string | undefined;
8
+ };
9
+ };
10
+ }) => Promise<{
11
+ [x: string]: string;
12
+ }>;
13
+ export default _default;