@shushed/helpers 0.0.199 → 0.0.200-runtime-url-fix-20251125155626

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/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 +562 -0
  97. package/dist/cjs/src-public/bigquery.js +59 -0
  98. package/dist/cjs/src-public/cloudtasks.js +207 -0
  99. package/dist/cjs/src-public/dato.js +637 -0
  100. package/dist/cjs/src-public/env.js +897 -0
  101. package/dist/cjs/src-public/getEventTime.js +28 -0
  102. package/dist/cjs/src-public/index.js +50 -0
  103. package/dist/cjs/src-public/ipValidation.js +167 -0
  104. package/dist/cjs/src-public/jwks.js +108 -0
  105. package/dist/cjs/src-public/pubsub.js +423 -0
  106. package/dist/cjs/src-public/rateLimit.js +140 -0
  107. package/dist/cjs/src-public/redisClient.js +44 -0
  108. package/dist/cjs/src-public/runtime.js +141 -0
  109. package/dist/cjs/src-public/sanitize.js +25 -0
  110. package/dist/cjs/src-public/scheduler.js +247 -0
  111. package/dist/cjs/src-public/secret.js +16 -0
  112. package/dist/cjs/src-public/setHeaders.js +16 -0
  113. package/dist/cjs/src-public/types.js +2 -0
  114. package/dist/cjs/src-public/utils.js +336 -0
  115. package/dist/cjs/src-public/validate.js +40 -0
  116. package/dist/package.json +6 -3
  117. package/dist/types/dist-dereferenced/asset.d.ts +51 -0
  118. package/dist/types/dist-dereferenced/category.d.ts +58 -0
  119. package/dist/types/dist-dereferenced/country.d.ts +8 -0
  120. package/dist/types/dist-dereferenced/currency.d.ts +8 -0
  121. package/dist/types/dist-dereferenced/customer-segment.d.ts +26 -0
  122. package/dist/types/dist-dereferenced/development-colour.d.ts +114 -0
  123. package/dist/types/dist-dereferenced/index.d.ts +16 -0
  124. package/dist/types/dist-dereferenced/marketing-preferences.d.ts +31 -0
  125. package/dist/types/dist-dereferenced/messages/ean-change.d.ts +17 -0
  126. package/dist/types/dist-dereferenced/messages/index.d.ts +6 -0
  127. package/dist/types/dist-dereferenced/messages/order/delivered.d.ts +3432 -0
  128. package/dist/types/dist-dereferenced/messages/order/index.d.ts +6 -0
  129. package/dist/types/dist-dereferenced/messages/order/new.d.ts +3432 -0
  130. package/dist/types/dist-dereferenced/messages/order/processed.d.ts +3426 -0
  131. package/dist/types/dist-dereferenced/messages/order/return-initiated.d.ts +3432 -0
  132. package/dist/types/dist-dereferenced/messages/order/returned.d.ts +3431 -0
  133. package/dist/types/dist-dereferenced/messages/order/shipped.d.ts +3430 -0
  134. package/dist/types/dist-dereferenced/messages/price-change.d.ts +58 -0
  135. package/dist/types/dist-dereferenced/messages/product-category.d.ts +33 -0
  136. package/dist/types/dist-dereferenced/messages/product-draft.d.ts +589 -0
  137. package/dist/types/dist-dereferenced/messages/product.d.ts +628 -0
  138. package/dist/types/dist-dereferenced/money.d.ts +41 -0
  139. package/dist/types/dist-dereferenced/order/address.d.ts +98 -0
  140. package/dist/types/dist-dereferenced/order/customer.d.ts +309 -0
  141. package/dist/types/dist-dereferenced/order/index.d.ts +3422 -0
  142. package/dist/types/dist-dereferenced/order/item.d.ts +336 -0
  143. package/dist/types/dist-dereferenced/order/orderMain.d.ts +3417 -0
  144. package/dist/types/dist-dereferenced/order/payment.d.ts +110 -0
  145. package/dist/types/dist-dereferenced/order/shipment/index.d.ts +253 -0
  146. package/dist/types/dist-dereferenced/order/shipment/item/index.d.ts +19 -0
  147. package/dist/types/dist-dereferenced/order/shipment/item/itemMain.d.ts +18 -0
  148. package/dist/types/dist-dereferenced/order/shipment/item/returned.d.ts +34 -0
  149. package/dist/types/dist-dereferenced/order/shipment/pos/index.d.ts +282 -0
  150. package/dist/types/dist-dereferenced/order/shipment/pos/outbound.d.ts +319 -0
  151. package/dist/types/dist-dereferenced/order/shipment/pos/posMain.d.ts +280 -0
  152. package/dist/types/dist-dereferenced/order/shipment/pos/return.d.ts +330 -0
  153. package/dist/types/dist-dereferenced/order/shipment/shipmentMain.d.ts +250 -0
  154. package/dist/types/dist-dereferenced/order/shipment/shipped/index.d.ts +288 -0
  155. package/dist/types/dist-dereferenced/order/shipment/shipped/outbound.d.ts +286 -0
  156. package/dist/types/dist-dereferenced/order/shipment/shipped/return.d.ts +287 -0
  157. package/dist/types/dist-dereferenced/order/shipment/shipped/shippedMain.d.ts +286 -0
  158. package/dist/types/dist-dereferenced/price.d.ts +49 -0
  159. package/dist/types/dist-dereferenced/product-category.d.ts +24 -0
  160. package/dist/types/dist-dereferenced/product-draft.d.ts +580 -0
  161. package/dist/types/dist-dereferenced/product.d.ts +619 -0
  162. package/dist/types/dist-dereferenced/stock.d.ts +74 -0
  163. package/dist/types/dist-dereferenced/total.d.ts +172 -0
  164. package/dist/types/dist-types/asset.d.ts +16 -0
  165. package/dist/types/dist-types/category.d.ts +20 -0
  166. package/dist/types/dist-types/country.d.ts +2 -0
  167. package/dist/types/dist-types/currency.d.ts +2 -0
  168. package/dist/types/dist-types/customer-segment.d.ts +6 -0
  169. package/dist/types/dist-types/development-colour.d.ts +31 -0
  170. package/dist/types/dist-types/index.d.ts +16 -0
  171. package/dist/types/dist-types/marketing-preferences.d.ts +9 -0
  172. package/dist/types/dist-types/messages/ean-change.d.ts +5 -0
  173. package/dist/types/dist-types/messages/index.d.ts +6 -0
  174. package/dist/types/dist-types/messages/order/delivered.d.ts +298 -0
  175. package/dist/types/dist-types/messages/order/index.d.ts +6 -0
  176. package/dist/types/dist-types/messages/order/new.d.ts +298 -0
  177. package/dist/types/dist-types/messages/order/processed.d.ts +298 -0
  178. package/dist/types/dist-types/messages/order/return-initiated.d.ts +298 -0
  179. package/dist/types/dist-types/messages/order/returned.d.ts +299 -0
  180. package/dist/types/dist-types/messages/order/shipped.d.ts +299 -0
  181. package/dist/types/dist-types/messages/price-change.d.ts +15 -0
  182. package/dist/types/dist-types/messages/product-category.d.ts +7 -0
  183. package/dist/types/dist-types/messages/product-draft.d.ts +136 -0
  184. package/dist/types/dist-types/messages/product.d.ts +144 -0
  185. package/dist/types/dist-types/money.d.ts +11 -0
  186. package/dist/types/dist-types/order/address.d.ts +27 -0
  187. package/dist/types/dist-types/order/customer.d.ts +81 -0
  188. package/dist/types/dist-types/order/index.d.ts +8 -0
  189. package/dist/types/dist-types/order/item.d.ts +85 -0
  190. package/dist/types/dist-types/order/orderMain.d.ts +295 -0
  191. package/dist/types/dist-types/order/payment.d.ts +30 -0
  192. package/dist/types/dist-types/order/shipment/index.d.ts +6 -0
  193. package/dist/types/dist-types/order/shipment/item/index.d.ts +4 -0
  194. package/dist/types/dist-types/order/shipment/item/itemMain.d.ts +6 -0
  195. package/dist/types/dist-types/order/shipment/item/returned.d.ts +11 -0
  196. package/dist/types/dist-types/order/shipment/pos/index.d.ts +5 -0
  197. package/dist/types/dist-types/order/shipment/pos/outbound.d.ts +76 -0
  198. package/dist/types/dist-types/order/shipment/pos/posMain.d.ts +71 -0
  199. package/dist/types/dist-types/order/shipment/pos/return.d.ts +75 -0
  200. package/dist/types/dist-types/order/shipment/shipmentMain.d.ts +62 -0
  201. package/dist/types/dist-types/order/shipment/shipped/index.d.ts +5 -0
  202. package/dist/types/dist-types/order/shipment/shipped/outbound.d.ts +68 -0
  203. package/dist/types/dist-types/order/shipment/shipped/return.d.ts +68 -0
  204. package/dist/types/dist-types/order/shipment/shipped/shippedMain.d.ts +69 -0
  205. package/dist/types/dist-types/price.d.ts +14 -0
  206. package/dist/types/dist-types/product-category.d.ts +6 -0
  207. package/dist/types/dist-types/product-draft.d.ts +135 -0
  208. package/dist/types/dist-types/product.d.ts +143 -0
  209. package/dist/types/dist-types/stock.d.ts +19 -0
  210. package/dist/types/dist-types/total.d.ts +44 -0
  211. package/dist/types/index.d.ts +3 -0
  212. package/dist/types/src-public/airtable.d.ts +220 -0
  213. package/dist/types/src-public/bigquery.d.ts +17 -0
  214. package/dist/types/src-public/cloudtasks.d.ts +74 -0
  215. package/dist/types/src-public/dato.d.ts +88 -0
  216. package/dist/types/src-public/env.d.ts +144 -0
  217. package/dist/types/src-public/getEventTime.d.ts +1 -0
  218. package/dist/types/src-public/index.d.ts +16 -0
  219. package/dist/types/src-public/ipValidation.d.ts +15 -0
  220. package/dist/types/src-public/jwks.d.ts +15 -0
  221. package/dist/types/src-public/pubsub.d.ts +95 -0
  222. package/dist/types/src-public/rateLimit.d.ts +21 -0
  223. package/dist/types/src-public/redisClient.d.ts +6 -0
  224. package/dist/types/src-public/runtime.d.ts +57 -0
  225. package/dist/types/src-public/sanitize.d.ts +4 -0
  226. package/dist/types/src-public/scheduler.d.ts +71 -0
  227. package/dist/types/src-public/secret.d.ts +6 -0
  228. package/dist/types/src-public/setHeaders.d.ts +13 -0
  229. package/dist/types/src-public/types.d.ts +264 -0
  230. package/dist/types/src-public/utils.d.ts +67 -0
  231. package/dist/types/src-public/validate.d.ts +9 -0
  232. package/package.json +7 -4
  233. package/dist/index.d.ts +0 -34970
  234. package/dist/index.js +0 -112969
@@ -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,57 @@
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
+ constructor(opts: Opts | Runtime);
54
+ private getRuntimeUrl;
55
+ private getSystemEnvName;
56
+ private get isDeployment();
57
+ }
@@ -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;
@@ -0,0 +1,264 @@
1
+ import { IncomingMessage } from "http";
2
+ export type TriggerOnResponseOptions = Omit<TriggerOnExecuteOptions, 'req'>;
3
+ export type TriggerOnExecuteOptions = {
4
+ req: {
5
+ status?: number;
6
+ body?: string;
7
+ throw: (status: number, body: string) => void;
8
+ };
9
+ request: {
10
+ headers: NodeJS.Dict<string | string[]>;
11
+ method: 'POST' | 'GET' | 'PUT' | 'PATCH';
12
+ body: undefined;
13
+ path: string;
14
+ query: Record<string, string>;
15
+ host: string;
16
+ hostname: string;
17
+ originalUrl: string;
18
+ ip: string;
19
+ ips: [];
20
+ querystring: string;
21
+ subdomains: Array<string>;
22
+ secure: boolean;
23
+ protocol: 'http' | 'https';
24
+ params: undefined;
25
+ };
26
+ nodeReq: IncomingMessage;
27
+ state: Record<string, string>;
28
+ root: {
29
+ state: Record<string, string>;
30
+ [key: string]: any;
31
+ };
32
+ workflowExecutionId: string;
33
+ logging: {
34
+ log: (...x: Array<any>) => void;
35
+ warn: (...x: Array<any>) => void;
36
+ error: (...x: Array<any>) => void;
37
+ };
38
+ terminate: (status: number, message: any) => void;
39
+ env: {
40
+ set: (args: {
41
+ name: string;
42
+ value: string;
43
+ }[], level: 'workflow' | 'project') => Promise<void>;
44
+ get: (name: string, level: 'workflow' | 'project') => string | null;
45
+ triggerEnv: any;
46
+ workflowId: string;
47
+ };
48
+ auth: {
49
+ getToken: (forceRefresh: boolean) => any;
50
+ getKey: (options: {
51
+ ignoreMissingKey?: boolean;
52
+ }) => any;
53
+ };
54
+ getBuildShipFile: (x: any) => any;
55
+ trigger: {
56
+ meta: {
57
+ fileUploadLimit: boolean;
58
+ name: string;
59
+ description: string;
60
+ id: string;
61
+ payloadLimit: boolean;
62
+ icon: {
63
+ type: 'SVG';
64
+ };
65
+ };
66
+ script: string;
67
+ defaultValues: {
68
+ path: string;
69
+ inputs: string;
70
+ };
71
+ lifeCycleFunctions: Array<'onExecution' | 'onCreate' | 'onResponse' | 'onUpdate' | 'getData'>;
72
+ id: string;
73
+ _libRef: {
74
+ integrity: string;
75
+ libNodeRefId: string;
76
+ libType: string;
77
+ isDirty: boolean;
78
+ version: string;
79
+ src: string;
80
+ };
81
+ label: string;
82
+ description: string;
83
+ envs: Record<string, any>;
84
+ env: any;
85
+ };
86
+ workflow: {
87
+ id: string;
88
+ };
89
+ };
90
+ export type TriggerOnCreateOptions = {
91
+ runtimeUrl: string;
92
+ workflowId: string;
93
+ auth: {
94
+ getToken: (forceRefresh: boolean) => any;
95
+ getKey: (options: {
96
+ ignoreMissingKey?: boolean;
97
+ }) => any;
98
+ };
99
+ trigger: {
100
+ meta: {
101
+ fileUploadLimit: boolean;
102
+ name: string;
103
+ description: string;
104
+ id: string;
105
+ payloadLimit: boolean;
106
+ icon: {
107
+ type: 'SVG';
108
+ };
109
+ };
110
+ script: string;
111
+ response: any;
112
+ dependencies: Record<string, string>;
113
+ type: string;
114
+ data: any;
115
+ config: any;
116
+ usage: string;
117
+ defaultValues: {
118
+ path: string;
119
+ inputs: string;
120
+ };
121
+ lifeCycleFunctions: Array<'onExecution' | 'onCreate' | 'onResponse' | 'onUpdate' | 'getData'>;
122
+ id: string;
123
+ _libRef: {
124
+ integrity: string;
125
+ libNodeRefId: string;
126
+ libType: string;
127
+ isDirty: boolean;
128
+ version: string;
129
+ src: string;
130
+ };
131
+ label: string;
132
+ description: string;
133
+ envs: Record<string, any>;
134
+ env: any;
135
+ };
136
+ workflow: {
137
+ id: string;
138
+ };
139
+ env: {
140
+ set: (args: {
141
+ name: string;
142
+ value: string;
143
+ }[], level: 'workflow' | 'project') => Promise<void>;
144
+ get: (name: string, level: 'workflow' | 'project') => string | null;
145
+ triggerEnv: any;
146
+ workflowId: string;
147
+ };
148
+ };
149
+ export type NodeOptions = {
150
+ req: undefined;
151
+ request: {
152
+ headers: NodeJS.Dict<string | string[]>;
153
+ method: 'POST' | 'GET' | 'PUT' | 'PATCH';
154
+ body: undefined;
155
+ path: string;
156
+ query: Record<string, string>;
157
+ host: string;
158
+ hostname: string;
159
+ originalUrl: string;
160
+ ip: string;
161
+ ips: [];
162
+ querystring: string;
163
+ subdomains: Array<string>;
164
+ secure: boolean;
165
+ protocol: 'http' | 'https';
166
+ params: undefined;
167
+ };
168
+ nodeReq: IncomingMessage;
169
+ auth: {
170
+ getToken: (forceRefresh: boolean) => any;
171
+ getKey: (options: {
172
+ ignoreMissingKey?: boolean;
173
+ }) => any;
174
+ };
175
+ workflow: {
176
+ id: string;
177
+ deployId: string;
178
+ runtimeVersion: string;
179
+ nodeValues: Record<string, any>;
180
+ env: Record<string, any>;
181
+ variables: Record<string, any>;
182
+ inputs: any;
183
+ outputs: any;
184
+ nodes: Array<any>;
185
+ builtNodes: Array<any>;
186
+ };
187
+ getBuildShipFile: (x: any) => any;
188
+ inputProperties: Record<string, any>;
189
+ env: {
190
+ set: (args: {
191
+ name: string;
192
+ value: string;
193
+ }[], level: 'workflow' | 'project') => Promise<void>;
194
+ get: (name: string, level: 'workflow' | 'project') => string | null;
195
+ triggerEnv: any;
196
+ workflowId: string;
197
+ };
198
+ node: {
199
+ id: string;
200
+ };
201
+ state: Record<string, any>;
202
+ root: {
203
+ state: Record<string, any>;
204
+ inputs: any;
205
+ };
206
+ session: {
207
+ rootState: undefined;
208
+ sessionId: string;
209
+ executedNodes: {
210
+ [key: string]: {
211
+ ts: number;
212
+ executionTime: number;
213
+ nodeId: string;
214
+ nodeType: string;
215
+ parents: Array<string>;
216
+ success: boolean;
217
+ libId: string;
218
+ libType: string;
219
+ };
220
+ };
221
+ nodeToTriggerSleep: undefined;
222
+ stateToTriggerSleep: undefined;
223
+ isSaved: boolean;
224
+ isToBeSaved: boolean;
225
+ isResumed: boolean;
226
+ initialState: any;
227
+ };
228
+ logging: {
229
+ log: (...x: Array<any>) => void;
230
+ warn: (...x: Array<any>) => void;
231
+ error: (...x: Array<any>) => void;
232
+ };
233
+ };
234
+ export type RNConfiguration = {
235
+ pubSubProjectId: string;
236
+ topicName: string;
237
+ workflowTriggerId: string;
238
+ noAllowedWorkers: number;
239
+ workerGroup: string;
240
+ errorThreshold: number;
241
+ error429Threshold: number;
242
+ pauseOnError429ThresholdExceededSeconds: number;
243
+ pauseOnErrorThresholdExceededSeconds: number;
244
+ pauseBeforeProcessingMessagesSeconds: number;
245
+ maxOutstandingMessages: number;
246
+ ackDeadline: number;
247
+ tableName: string;
248
+ tableRetryMinDelay: number;
249
+ tableRetryMaxDelay: number;
250
+ tableAckDeadline: number;
251
+ tableRetryLimit: number;
252
+ retryMinDelay: number;
253
+ retryMaxDelay: number;
254
+ retryLimit: number;
255
+ batchSize: number;
256
+ batchWindowSeconds: number;
257
+ orderingIndexFields: Array<string>;
258
+ orderingSortField: string | null;
259
+ subscriptionFilter: string | null;
260
+ };
261
+ export type TriggerExtraOptions = {
262
+ allowProductionTopic: boolean;
263
+ debug: Array<'notifications' | 'publishedMessages' | 'receivedMessages'>;
264
+ };
@@ -0,0 +1,67 @@
1
+ import { Firestore } from '@google-cloud/firestore';
2
+ import Runtime, { Opts as RuntimeOpts } from './runtime';
3
+ import { TriggerOnResponseOptions } from "./types";
4
+ export declare const isPubSubRequest: (headers: NodeJS.Dict<string | string[]>) => boolean;
5
+ export declare const isCronMessage: (headers: NodeJS.Dict<string | string[]>) => boolean;
6
+ export declare const isRespectfulNudge: (headers: NodeJS.Dict<string | string[]>) => boolean;
7
+ export declare const isCloudTask: (headers: NodeJS.Dict<string | string[]>) => boolean;
8
+ export declare const validateGoogleAuth: (opts: RuntimeOpts & {
9
+ serviceAccount?: string | null | false;
10
+ }, headers: Record<string, string>, firestore: Firestore) => Promise<{
11
+ email: any;
12
+ }>;
13
+ export declare const parseDateOrDefault: (date: string | null | Date, defaultValue?: Date | null) => Date | null;
14
+ export declare function getEventTime(x: any, defaultValue: Date | null): Date | null;
15
+ export declare function shortHash(input: string): string;
16
+ export declare function slugify(input: string): string;
17
+ declare global {
18
+ var BUILDSHIP_FIRESTORE_V7_CACHE: Record<string, any>;
19
+ var BUILDSHIP_FIRESTORE_V7_INSTANCE: any;
20
+ }
21
+ export declare function getFirestore(systemEnvName: string): Firestore;
22
+ export type PromisifiedFn<F extends (...args: any[]) => any> = (...args: Parameters<F>) => Promise<Awaited<ReturnType<F>>>;
23
+ export declare function createHandlerDecorator<TSettings, TRequiredO extends object = {}, TRequiredH extends object = {}>(decoratorFactory: <C, O, H extends TRequiredH, H2 extends H, R>(settings: TSettings) => (handler: (c: C, o: O & TRequiredO, h: H2) => R) => (c: C, o: O & TRequiredO, h: H2) => R | Promise<R>): <C, O, H extends TRequiredH, H2 extends H, R>(settings: TSettings) => (handler: (c: C, o: O & TRequiredO, h: H2) => R) => (c: C, o: O & TRequiredO, h: H2) => R | Promise<R>;
24
+ export declare function getSecret(runtime: Runtime, name: string, accessToken: string): Promise<string>;
25
+ export declare const getAccessToken: () => Promise<string>;
26
+ export declare const getIdentityToken: (expectedAudience: string) => Promise<string>;
27
+ export declare function splitTimeToArr(date?: Date): number[];
28
+ export declare function minutesAgo(minutes: number): string;
29
+ export declare function setRetryAfterVariable(response: Response, options: any): string | null;
30
+ export declare function setRetryAfterVariable(headers: Record<string, string>, options: any): string | null;
31
+ export declare function setRetryAfterVariable(headers: Headers, options: any): string | null;
32
+ export declare function setRetryAfterVariable(retryAfterValue: string, options: any): string | null;
33
+ declare global {
34
+ var functionsCache: Record<string, (symbol: symbol, payload: any) => any>;
35
+ }
36
+ export declare const FUNCTION_EXPR_ERROR: unique symbol;
37
+ export declare function createFunction(expression: string): (payload: any) => any;
38
+ export declare function createOnResponse(opts: {
39
+ requiredFlag: string;
40
+ }): (config: any & {
41
+ outputs: {
42
+ status: number;
43
+ body: any;
44
+ };
45
+ }, options: TriggerOnResponseOptions) => {
46
+ status: any;
47
+ value: any[];
48
+ cacheMaxAge?: undefined;
49
+ } | {
50
+ status: any;
51
+ value: any;
52
+ cacheMaxAge: number;
53
+ } | undefined;
54
+ export declare function onResponse(config: any & {
55
+ outputs: {
56
+ status: number;
57
+ body: any;
58
+ };
59
+ }, options: TriggerOnResponseOptions, requiredFlag?: string): {
60
+ status: any;
61
+ value: any[];
62
+ cacheMaxAge?: undefined;
63
+ } | {
64
+ status: any;
65
+ value: any;
66
+ cacheMaxAge: number;
67
+ } | undefined;
@@ -0,0 +1,9 @@
1
+ import { JSONSchemaType } from 'ajv';
2
+ type Log = {
3
+ log: (x: string) => void;
4
+ error: (x: string) => void;
5
+ };
6
+ export default function validate<T>(payload: T, schema: JSONSchemaType<T>, options: {
7
+ log: Log;
8
+ }): T;
9
+ export {};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@shushed/helpers",
3
- "version": "0.0.199",
3
+ "version": "0.0.200-runtime-url-fix-20251125155626",
4
4
  "author": "",
5
5
  "license": "UNLICENSED",
6
6
  "description": "",
@@ -10,6 +10,7 @@
10
10
  "ajv-formats": "^3.0.1",
11
11
  "co-body": "^6.2.0",
12
12
  "jose": "^6.0.11",
13
+ "lodash.chunk": "^4.2.0",
13
14
  "lodash.clonedeep": "^4.5.0",
14
15
  "lodash.isequal": "^4.5.0",
15
16
  "lodash.omit": "^4.5.0",
@@ -17,13 +18,15 @@
17
18
  "mime-types": "^3.0.1",
18
19
  "p-limit": "^7.1.1",
19
20
  "rate-limiter-flexible": "^7.2.0",
20
- "uuid": "^11.1.0"
21
+ "uuid": "^11.1.0",
22
+ "redis": "^5.6.0",
23
+ "@google-cloud/firestore": "^7.11.1"
21
24
  },
22
25
  "files": [
23
26
  "dist"
24
27
  ],
25
- "main": "dist/index.js",
26
- "types": "dist/index.d.ts",
28
+ "main": "dist/cjs/index.js",
29
+ "types": "dist/types/index.d.ts",
27
30
  "publishConfig": {
28
31
  "access": "public"
29
32
  }