@pristine-ts/gcp 2.0.16

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 (220) hide show
  1. package/LICENSE +201 -0
  2. package/dist/lib/cjs/clients/clients.js +22 -0
  3. package/dist/lib/cjs/clients/clients.js.map +1 -0
  4. package/dist/lib/cjs/clients/cloud-storage.client.js +189 -0
  5. package/dist/lib/cjs/clients/cloud-storage.client.js.map +1 -0
  6. package/dist/lib/cjs/clients/eventarc.client.js +146 -0
  7. package/dist/lib/cjs/clients/eventarc.client.js.map +1 -0
  8. package/dist/lib/cjs/clients/firestore.client.js +238 -0
  9. package/dist/lib/cjs/clients/firestore.client.js.map +1 -0
  10. package/dist/lib/cjs/clients/pub-sub.client.js +97 -0
  11. package/dist/lib/cjs/clients/pub-sub.client.js.map +1 -0
  12. package/dist/lib/cjs/clients/secret-manager.client.js +118 -0
  13. package/dist/lib/cjs/clients/secret-manager.client.js.map +1 -0
  14. package/dist/lib/cjs/decorators/decorators.js +18 -0
  15. package/dist/lib/cjs/decorators/decorators.js.map +1 -0
  16. package/dist/lib/cjs/decorators/dynamic-collection-name.decorator.js +33 -0
  17. package/dist/lib/cjs/decorators/dynamic-collection-name.decorator.js.map +1 -0
  18. package/dist/lib/cjs/enums/cloud-storage-event-type.enum.js +16 -0
  19. package/dist/lib/cjs/enums/cloud-storage-event-type.enum.js.map +1 -0
  20. package/dist/lib/cjs/enums/cloud-storage-presigned-operation-type.enum.js +13 -0
  21. package/dist/lib/cjs/enums/cloud-storage-presigned-operation-type.enum.js.map +1 -0
  22. package/dist/lib/cjs/enums/enums.js +22 -0
  23. package/dist/lib/cjs/enums/enums.js.map +1 -0
  24. package/dist/lib/cjs/enums/eventarc-event-type.enum.js +12 -0
  25. package/dist/lib/cjs/enums/eventarc-event-type.enum.js.map +1 -0
  26. package/dist/lib/cjs/enums/firestore-event-type.enum.js +16 -0
  27. package/dist/lib/cjs/enums/firestore-event-type.enum.js.map +1 -0
  28. package/dist/lib/cjs/enums/pub-sub-event-type.enum.js +13 -0
  29. package/dist/lib/cjs/enums/pub-sub-event-type.enum.js.map +1 -0
  30. package/dist/lib/cjs/errors/errors.js +20 -0
  31. package/dist/lib/cjs/errors/errors.js.map +1 -0
  32. package/dist/lib/cjs/errors/eventarc-publish.error.js +17 -0
  33. package/dist/lib/cjs/errors/eventarc-publish.error.js.map +1 -0
  34. package/dist/lib/cjs/errors/get-secret.error.js +17 -0
  35. package/dist/lib/cjs/errors/get-secret.error.js.map +1 -0
  36. package/dist/lib/cjs/errors/pub-sub-publish.error.js +19 -0
  37. package/dist/lib/cjs/errors/pub-sub-publish.error.js.map +1 -0
  38. package/dist/lib/cjs/event-payloads/cloud-storage.event-payload.js +11 -0
  39. package/dist/lib/cjs/event-payloads/cloud-storage.event-payload.js.map +1 -0
  40. package/dist/lib/cjs/event-payloads/event-payloads.js +21 -0
  41. package/dist/lib/cjs/event-payloads/event-payloads.js.map +1 -0
  42. package/dist/lib/cjs/event-payloads/eventarc.event-payload.js +11 -0
  43. package/dist/lib/cjs/event-payloads/eventarc.event-payload.js.map +1 -0
  44. package/dist/lib/cjs/event-payloads/firestore.event-payload.js +11 -0
  45. package/dist/lib/cjs/event-payloads/firestore.event-payload.js.map +1 -0
  46. package/dist/lib/cjs/event-payloads/pub-sub.event-payload.js +17 -0
  47. package/dist/lib/cjs/event-payloads/pub-sub.event-payload.js.map +1 -0
  48. package/dist/lib/cjs/gcp.configuration-keys.js +20 -0
  49. package/dist/lib/cjs/gcp.configuration-keys.js.map +1 -0
  50. package/dist/lib/cjs/gcp.module.js +76 -0
  51. package/dist/lib/cjs/gcp.module.js.map +1 -0
  52. package/dist/lib/cjs/gcp.module.keyname.js +5 -0
  53. package/dist/lib/cjs/gcp.module.keyname.js.map +1 -0
  54. package/dist/lib/cjs/interfaces/client-options.interface.js +3 -0
  55. package/dist/lib/cjs/interfaces/client-options.interface.js.map +1 -0
  56. package/dist/lib/cjs/interfaces/cloud-storage-client.interface.js +3 -0
  57. package/dist/lib/cjs/interfaces/cloud-storage-client.interface.js.map +1 -0
  58. package/dist/lib/cjs/interfaces/eventarc-client.interface.js +3 -0
  59. package/dist/lib/cjs/interfaces/eventarc-client.interface.js.map +1 -0
  60. package/dist/lib/cjs/interfaces/firestore-client.interface.js +3 -0
  61. package/dist/lib/cjs/interfaces/firestore-client.interface.js.map +1 -0
  62. package/dist/lib/cjs/interfaces/interfaces.js +23 -0
  63. package/dist/lib/cjs/interfaces/interfaces.js.map +1 -0
  64. package/dist/lib/cjs/interfaces/pub-sub-client.interface.js +3 -0
  65. package/dist/lib/cjs/interfaces/pub-sub-client.interface.js.map +1 -0
  66. package/dist/lib/cjs/interfaces/secret-manager-client.interface.js +3 -0
  67. package/dist/lib/cjs/interfaces/secret-manager-client.interface.js.map +1 -0
  68. package/dist/lib/cjs/mappers/cloud-storage-event.mapper.js +87 -0
  69. package/dist/lib/cjs/mappers/cloud-storage-event.mapper.js.map +1 -0
  70. package/dist/lib/cjs/mappers/eventarc-event.mapper.js +84 -0
  71. package/dist/lib/cjs/mappers/eventarc-event.mapper.js.map +1 -0
  72. package/dist/lib/cjs/mappers/firestore-event.mapper.js +78 -0
  73. package/dist/lib/cjs/mappers/firestore-event.mapper.js.map +1 -0
  74. package/dist/lib/cjs/mappers/mappers.js +21 -0
  75. package/dist/lib/cjs/mappers/mappers.js.map +1 -0
  76. package/dist/lib/cjs/mappers/pub-sub-event.mapper.js +78 -0
  77. package/dist/lib/cjs/mappers/pub-sub-event.mapper.js.map +1 -0
  78. package/dist/lib/cjs/models/dynamic-collection-name.model.js +11 -0
  79. package/dist/lib/cjs/models/dynamic-collection-name.model.js.map +1 -0
  80. package/dist/lib/cjs/models/eventarc-message.model.js +10 -0
  81. package/dist/lib/cjs/models/eventarc-message.model.js.map +1 -0
  82. package/dist/lib/cjs/models/models.js +20 -0
  83. package/dist/lib/cjs/models/models.js.map +1 -0
  84. package/dist/lib/cjs/models/pub-sub-message-sent-confirmation.model.js +11 -0
  85. package/dist/lib/cjs/models/pub-sub-message-sent-confirmation.model.js.map +1 -0
  86. package/dist/lib/cjs/models/pub-sub-message.model.js +11 -0
  87. package/dist/lib/cjs/models/pub-sub-message.model.js.map +1 -0
  88. package/dist/lib/cjs/tsconfig.cjs.tsbuildinfo +1 -0
  89. package/dist/lib/esm/clients/clients.js +6 -0
  90. package/dist/lib/esm/clients/clients.js.map +1 -0
  91. package/dist/lib/esm/clients/cloud-storage.client.js +186 -0
  92. package/dist/lib/esm/clients/cloud-storage.client.js.map +1 -0
  93. package/dist/lib/esm/clients/eventarc.client.js +110 -0
  94. package/dist/lib/esm/clients/eventarc.client.js.map +1 -0
  95. package/dist/lib/esm/clients/firestore.client.js +235 -0
  96. package/dist/lib/esm/clients/firestore.client.js.map +1 -0
  97. package/dist/lib/esm/clients/pub-sub.client.js +94 -0
  98. package/dist/lib/esm/clients/pub-sub.client.js.map +1 -0
  99. package/dist/lib/esm/clients/secret-manager.client.js +115 -0
  100. package/dist/lib/esm/clients/secret-manager.client.js.map +1 -0
  101. package/dist/lib/esm/decorators/decorators.js +2 -0
  102. package/dist/lib/esm/decorators/decorators.js.map +1 -0
  103. package/dist/lib/esm/decorators/dynamic-collection-name.decorator.js +29 -0
  104. package/dist/lib/esm/decorators/dynamic-collection-name.decorator.js.map +1 -0
  105. package/dist/lib/esm/enums/cloud-storage-event-type.enum.js +13 -0
  106. package/dist/lib/esm/enums/cloud-storage-event-type.enum.js.map +1 -0
  107. package/dist/lib/esm/enums/cloud-storage-presigned-operation-type.enum.js +10 -0
  108. package/dist/lib/esm/enums/cloud-storage-presigned-operation-type.enum.js.map +1 -0
  109. package/dist/lib/esm/enums/enums.js +6 -0
  110. package/dist/lib/esm/enums/enums.js.map +1 -0
  111. package/dist/lib/esm/enums/eventarc-event-type.enum.js +9 -0
  112. package/dist/lib/esm/enums/eventarc-event-type.enum.js.map +1 -0
  113. package/dist/lib/esm/enums/firestore-event-type.enum.js +13 -0
  114. package/dist/lib/esm/enums/firestore-event-type.enum.js.map +1 -0
  115. package/dist/lib/esm/enums/pub-sub-event-type.enum.js +10 -0
  116. package/dist/lib/esm/enums/pub-sub-event-type.enum.js.map +1 -0
  117. package/dist/lib/esm/errors/errors.js +4 -0
  118. package/dist/lib/esm/errors/errors.js.map +1 -0
  119. package/dist/lib/esm/errors/eventarc-publish.error.js +13 -0
  120. package/dist/lib/esm/errors/eventarc-publish.error.js.map +1 -0
  121. package/dist/lib/esm/errors/get-secret.error.js +13 -0
  122. package/dist/lib/esm/errors/get-secret.error.js.map +1 -0
  123. package/dist/lib/esm/errors/pub-sub-publish.error.js +15 -0
  124. package/dist/lib/esm/errors/pub-sub-publish.error.js.map +1 -0
  125. package/dist/lib/esm/event-payloads/cloud-storage.event-payload.js +7 -0
  126. package/dist/lib/esm/event-payloads/cloud-storage.event-payload.js.map +1 -0
  127. package/dist/lib/esm/event-payloads/event-payloads.js +5 -0
  128. package/dist/lib/esm/event-payloads/event-payloads.js.map +1 -0
  129. package/dist/lib/esm/event-payloads/eventarc.event-payload.js +7 -0
  130. package/dist/lib/esm/event-payloads/eventarc.event-payload.js.map +1 -0
  131. package/dist/lib/esm/event-payloads/firestore.event-payload.js +7 -0
  132. package/dist/lib/esm/event-payloads/firestore.event-payload.js.map +1 -0
  133. package/dist/lib/esm/event-payloads/pub-sub.event-payload.js +13 -0
  134. package/dist/lib/esm/event-payloads/pub-sub.event-payload.js.map +1 -0
  135. package/dist/lib/esm/gcp.configuration-keys.js +17 -0
  136. package/dist/lib/esm/gcp.configuration-keys.js.map +1 -0
  137. package/dist/lib/esm/gcp.module.js +59 -0
  138. package/dist/lib/esm/gcp.module.js.map +1 -0
  139. package/dist/lib/esm/gcp.module.keyname.js +2 -0
  140. package/dist/lib/esm/gcp.module.keyname.js.map +1 -0
  141. package/dist/lib/esm/interfaces/client-options.interface.js +2 -0
  142. package/dist/lib/esm/interfaces/client-options.interface.js.map +1 -0
  143. package/dist/lib/esm/interfaces/cloud-storage-client.interface.js +2 -0
  144. package/dist/lib/esm/interfaces/cloud-storage-client.interface.js.map +1 -0
  145. package/dist/lib/esm/interfaces/eventarc-client.interface.js +2 -0
  146. package/dist/lib/esm/interfaces/eventarc-client.interface.js.map +1 -0
  147. package/dist/lib/esm/interfaces/firestore-client.interface.js +2 -0
  148. package/dist/lib/esm/interfaces/firestore-client.interface.js.map +1 -0
  149. package/dist/lib/esm/interfaces/interfaces.js +7 -0
  150. package/dist/lib/esm/interfaces/interfaces.js.map +1 -0
  151. package/dist/lib/esm/interfaces/pub-sub-client.interface.js +2 -0
  152. package/dist/lib/esm/interfaces/pub-sub-client.interface.js.map +1 -0
  153. package/dist/lib/esm/interfaces/secret-manager-client.interface.js +2 -0
  154. package/dist/lib/esm/interfaces/secret-manager-client.interface.js.map +1 -0
  155. package/dist/lib/esm/mappers/cloud-storage-event.mapper.js +84 -0
  156. package/dist/lib/esm/mappers/cloud-storage-event.mapper.js.map +1 -0
  157. package/dist/lib/esm/mappers/eventarc-event.mapper.js +81 -0
  158. package/dist/lib/esm/mappers/eventarc-event.mapper.js.map +1 -0
  159. package/dist/lib/esm/mappers/firestore-event.mapper.js +75 -0
  160. package/dist/lib/esm/mappers/firestore-event.mapper.js.map +1 -0
  161. package/dist/lib/esm/mappers/mappers.js +5 -0
  162. package/dist/lib/esm/mappers/mappers.js.map +1 -0
  163. package/dist/lib/esm/mappers/pub-sub-event.mapper.js +75 -0
  164. package/dist/lib/esm/mappers/pub-sub-event.mapper.js.map +1 -0
  165. package/dist/lib/esm/models/dynamic-collection-name.model.js +7 -0
  166. package/dist/lib/esm/models/dynamic-collection-name.model.js.map +1 -0
  167. package/dist/lib/esm/models/eventarc-message.model.js +6 -0
  168. package/dist/lib/esm/models/eventarc-message.model.js.map +1 -0
  169. package/dist/lib/esm/models/models.js +4 -0
  170. package/dist/lib/esm/models/models.js.map +1 -0
  171. package/dist/lib/esm/models/pub-sub-message-sent-confirmation.model.js +7 -0
  172. package/dist/lib/esm/models/pub-sub-message-sent-confirmation.model.js.map +1 -0
  173. package/dist/lib/esm/models/pub-sub-message.model.js +7 -0
  174. package/dist/lib/esm/models/pub-sub-message.model.js.map +1 -0
  175. package/dist/lib/esm/tsconfig.tsbuildinfo +1 -0
  176. package/dist/types/clients/clients.d.ts +5 -0
  177. package/dist/types/clients/cloud-storage.client.d.ts +26 -0
  178. package/dist/types/clients/eventarc.client.d.ts +26 -0
  179. package/dist/types/clients/firestore.client.d.ts +47 -0
  180. package/dist/types/clients/pub-sub.client.d.ts +23 -0
  181. package/dist/types/clients/secret-manager.client.d.ts +24 -0
  182. package/dist/types/decorators/decorators.d.ts +1 -0
  183. package/dist/types/decorators/dynamic-collection-name.decorator.d.ts +22 -0
  184. package/dist/types/enums/cloud-storage-event-type.enum.d.ts +11 -0
  185. package/dist/types/enums/cloud-storage-presigned-operation-type.enum.d.ts +8 -0
  186. package/dist/types/enums/enums.d.ts +5 -0
  187. package/dist/types/enums/eventarc-event-type.enum.d.ts +7 -0
  188. package/dist/types/enums/firestore-event-type.enum.d.ts +11 -0
  189. package/dist/types/enums/pub-sub-event-type.enum.d.ts +8 -0
  190. package/dist/types/errors/errors.d.ts +3 -0
  191. package/dist/types/errors/eventarc-publish.error.d.ts +8 -0
  192. package/dist/types/errors/get-secret.error.d.ts +8 -0
  193. package/dist/types/errors/pub-sub-publish.error.d.ts +14 -0
  194. package/dist/types/event-payloads/cloud-storage.event-payload.d.ts +55 -0
  195. package/dist/types/event-payloads/event-payloads.d.ts +4 -0
  196. package/dist/types/event-payloads/eventarc.event-payload.d.ts +39 -0
  197. package/dist/types/event-payloads/firestore.event-payload.d.ts +43 -0
  198. package/dist/types/event-payloads/pub-sub.event-payload.d.ts +37 -0
  199. package/dist/types/gcp.configuration-keys.d.ts +35 -0
  200. package/dist/types/gcp.module.d.ts +11 -0
  201. package/dist/types/gcp.module.keyname.d.ts +1 -0
  202. package/dist/types/interfaces/client-options.interface.d.ts +19 -0
  203. package/dist/types/interfaces/cloud-storage-client.interface.d.ts +14 -0
  204. package/dist/types/interfaces/eventarc-client.interface.d.ts +5 -0
  205. package/dist/types/interfaces/firestore-client.interface.d.ts +27 -0
  206. package/dist/types/interfaces/interfaces.d.ts +6 -0
  207. package/dist/types/interfaces/pub-sub-client.interface.d.ts +8 -0
  208. package/dist/types/interfaces/secret-manager-client.interface.d.ts +9 -0
  209. package/dist/types/mappers/cloud-storage-event.mapper.d.ts +22 -0
  210. package/dist/types/mappers/eventarc-event.mapper.d.ts +22 -0
  211. package/dist/types/mappers/firestore-event.mapper.d.ts +17 -0
  212. package/dist/types/mappers/mappers.d.ts +4 -0
  213. package/dist/types/mappers/pub-sub-event.mapper.d.ts +23 -0
  214. package/dist/types/models/dynamic-collection-name.model.d.ts +8 -0
  215. package/dist/types/models/eventarc-message.model.d.ts +25 -0
  216. package/dist/types/models/models.d.ts +3 -0
  217. package/dist/types/models/pub-sub-message-sent-confirmation.model.d.ts +7 -0
  218. package/dist/types/models/pub-sub-message.model.d.ts +21 -0
  219. package/package.json +72 -0
  220. package/readme.md +32 -0
@@ -0,0 +1,22 @@
1
+ import { EventIdManager, EventMapperInterface, EventResponse, EventsExecutionOptionsInterface, ExecutionContextInterface } from "@pristine-ts/core";
2
+ import { EventarcEventPayload } from "../event-payloads/eventarc.event-payload";
3
+ /**
4
+ * Catch-all mapper for CloudEvents that didn't match a more-specific GCP mapper.
5
+ * Sits at the end of the mapper chain (the more specific mappers — Pub/Sub, Cloud
6
+ * Storage, Firestore — short-circuit `supportsMapping` for events they own; this
7
+ * mapper accepts anything CloudEvent-shaped that nobody else claimed).
8
+ *
9
+ * Detection: the event has a CloudEvent `specversion` (or just `type` + `source`),
10
+ * and isn't one of the GCP-specific shapes already handled. The framework calls
11
+ * `supportsMapping` on every registered mapper; since this one matches broadly,
12
+ * relying on order alone isn't safe — instead, this mapper checks that the event
13
+ * is NOT one of the specific shapes already claimed by the dedicated mappers.
14
+ */
15
+ export declare class EventarcEventMapper implements EventMapperInterface<EventarcEventPayload, void> {
16
+ private readonly eventIdManager;
17
+ constructor(eventIdManager: EventIdManager);
18
+ supportsMapping(rawEvent: any, executionContext: ExecutionContextInterface<any>): boolean;
19
+ map(rawEvent: any, executionContext: ExecutionContextInterface<any>): EventsExecutionOptionsInterface<EventarcEventPayload>;
20
+ supportsReverseMapping(eventResponse: EventResponse<EventarcEventPayload, void>, response: any, executionContext: ExecutionContextInterface<any>): boolean;
21
+ reverseMap(eventResponse: EventResponse<EventarcEventPayload, void>, response: any, executionContext: ExecutionContextInterface<any>): void;
22
+ }
@@ -0,0 +1,17 @@
1
+ import { EventIdManager, EventMapperInterface, EventResponse, EventsExecutionOptionsInterface, ExecutionContextInterface } from "@pristine-ts/core";
2
+ import { FirestoreEventPayload } from "../event-payloads/firestore.event-payload";
3
+ /**
4
+ * Maps a GCP Firestore document-change CloudEvent into a
5
+ * Pristine `Event<FirestoreEventPayload>`.
6
+ *
7
+ * Detection: CloudEvent `type` starts with `google.cloud.firestore.document.v1.`.
8
+ */
9
+ export declare class FirestoreEventMapper implements EventMapperInterface<FirestoreEventPayload, void> {
10
+ private readonly eventIdManager;
11
+ constructor(eventIdManager: EventIdManager);
12
+ supportsMapping(rawEvent: any, executionContext: ExecutionContextInterface<any>): boolean;
13
+ map(rawEvent: any, executionContext: ExecutionContextInterface<any>): EventsExecutionOptionsInterface<FirestoreEventPayload>;
14
+ supportsReverseMapping(eventResponse: EventResponse<FirestoreEventPayload, void>, response: any, executionContext: ExecutionContextInterface<any>): boolean;
15
+ reverseMap(eventResponse: EventResponse<FirestoreEventPayload, void>, response: any, executionContext: ExecutionContextInterface<any>): void;
16
+ private findEnum;
17
+ }
@@ -0,0 +1,4 @@
1
+ export * from "./cloud-storage-event.mapper";
2
+ export * from "./eventarc-event.mapper";
3
+ export * from "./firestore-event.mapper";
4
+ export * from "./pub-sub-event.mapper";
@@ -0,0 +1,23 @@
1
+ import { EventIdManager, EventMapperInterface, EventResponse, EventsExecutionOptionsInterface, ExecutionContextInterface } from "@pristine-ts/core";
2
+ import { PubSubEventPayload } from "../event-payloads/pub-sub.event-payload";
3
+ /**
4
+ * Maps a GCP Pub/Sub push-subscription delivery into a Pristine `Event<PubSubEventPayload>`.
5
+ *
6
+ * Pub/Sub push subscriptions deliver a single JSON envelope:
7
+ *
8
+ * ```json
9
+ * { "message": { "data": "<base64>", "messageId": "...", "attributes": {...},
10
+ * "publishTime": "...", "orderingKey": "..." },
11
+ * "subscription": "projects/p/subscriptions/s" }
12
+ * ```
13
+ *
14
+ * Mirrors `SqsEventMapper`'s shape and DI registration.
15
+ */
16
+ export declare class PubSubEventMapper implements EventMapperInterface<PubSubEventPayload, void> {
17
+ private readonly eventIdManager;
18
+ constructor(eventIdManager: EventIdManager);
19
+ supportsMapping(rawEvent: any, executionContext: ExecutionContextInterface<any>): boolean;
20
+ map(rawEvent: any, executionContext: ExecutionContextInterface<any>): EventsExecutionOptionsInterface<PubSubEventPayload>;
21
+ supportsReverseMapping(eventResponse: EventResponse<PubSubEventPayload, void>, response: any, executionContext: ExecutionContextInterface<any>): boolean;
22
+ reverseMap(eventResponse: EventResponse<PubSubEventPayload, void>, response: any, executionContext: ExecutionContextInterface<any>): void;
23
+ }
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Model representing the object that the `@dynamicCollectionName` decorator saves in the
3
+ * registry, mirroring `DynamicTableNameModel` in `@pristine-ts/aws`.
4
+ */
5
+ export declare class DynamicCollectionNameModel {
6
+ classConstructor: any;
7
+ tokenName: string;
8
+ }
@@ -0,0 +1,25 @@
1
+ /**
2
+ * The payload sent to `EventarcClient.publish(...)`. CloudEvent-shaped.
3
+ */
4
+ export declare class EventarcMessageModel {
5
+ /**
6
+ * CloudEvent `type`.
7
+ */
8
+ type: string;
9
+ /**
10
+ * CloudEvent `source`.
11
+ */
12
+ source: string;
13
+ /**
14
+ * CloudEvent `subject`, optional.
15
+ */
16
+ subject?: string;
17
+ /**
18
+ * CloudEvent `data` — opaque payload.
19
+ */
20
+ data?: any;
21
+ /**
22
+ * CloudEvent `datacontenttype`, e.g. `application/json`.
23
+ */
24
+ dataContentType?: string;
25
+ }
@@ -0,0 +1,3 @@
1
+ export * from "./eventarc-message.model";
2
+ export * from "./pub-sub-message.model";
3
+ export * from "./pub-sub-message-sent-confirmation.model";
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Confirmation returned from `PubSubClient.publish(...)`. Mirrors
3
+ * `SqsMessageSentConfirmationModel`.
4
+ */
5
+ export declare class PubSubMessageSentConfirmationModel {
6
+ messageId: string;
7
+ }
@@ -0,0 +1,21 @@
1
+ /**
2
+ * The payload sent to `PubSubClient.publish(...)`. Mirrors `EventBridgeMessageModel` in
3
+ * spirit — a structured input the client uses to build the SDK request.
4
+ */
5
+ export declare class PubSubMessageModel {
6
+ /**
7
+ * The message body. Strings are UTF-8 encoded then base64-encoded on the wire.
8
+ * Buffers are base64-encoded as-is.
9
+ */
10
+ data: string | Buffer;
11
+ /**
12
+ * Optional string attributes to attach.
13
+ */
14
+ attributes?: {
15
+ [key: string]: string;
16
+ };
17
+ /**
18
+ * Optional ordering key for ordered delivery.
19
+ */
20
+ orderingKey?: string;
21
+ }
package/package.json ADDED
@@ -0,0 +1,72 @@
1
+ {
2
+ "name": "@pristine-ts/gcp",
3
+ "version": "2.0.16",
4
+ "description": "",
5
+ "module": "dist/lib/esm/gcp.module.js",
6
+ "main": "dist/lib/cjs/gcp.module.js",
7
+ "types": "dist/types/gcp.module.d.ts",
8
+ "scripts": {
9
+ "build": "tsc -p tsconfig.json && tsc -p tsconfig.cjs.json",
10
+ "prepublish": "npm run build",
11
+ "test": "jest",
12
+ "test:cov": "jest --coverage"
13
+ },
14
+ "files": [
15
+ "dist"
16
+ ],
17
+ "author": "",
18
+ "license": "ISC",
19
+ "dependencies": {
20
+ "@google-cloud/eventarc-publishing": "^2.0.0",
21
+ "@google-cloud/firestore": "^7.10.0",
22
+ "@google-cloud/pubsub": "^4.8.0",
23
+ "@google-cloud/secret-manager": "^5.6.0",
24
+ "@google-cloud/storage": "^7.14.0",
25
+ "@pristine-ts/common": "^2.0.16",
26
+ "@pristine-ts/core": "^2.0.16",
27
+ "@pristine-ts/logging": "^2.0.16"
28
+ },
29
+ "publishConfig": {
30
+ "access": "public"
31
+ },
32
+ "jest": {
33
+ "transform": {
34
+ ".(ts|tsx)": "ts-jest"
35
+ },
36
+ "globals": {
37
+ "ts-jest": {
38
+ "tsconfig": {
39
+ "strictNullChecks": false
40
+ }
41
+ }
42
+ },
43
+ "testEnvironment": "node",
44
+ "testRegex": "(/__tests__/.*|\\.(test|spec))\\.(ts|tsx|js)$",
45
+ "moduleFileExtensions": [
46
+ "ts",
47
+ "tsx",
48
+ "js"
49
+ ],
50
+ "coveragePathIgnorePatterns": [
51
+ "/node_modules/",
52
+ "/test/"
53
+ ],
54
+ "coverageThreshold": {
55
+ "global": {
56
+ "branches": 90,
57
+ "functions": 95,
58
+ "lines": 95,
59
+ "statements": 95
60
+ }
61
+ },
62
+ "collectCoverageFrom": [
63
+ "src/*.{js,ts}"
64
+ ]
65
+ },
66
+ "repository": {
67
+ "type": "git",
68
+ "url": "https://github.com/magieno/pristine-ts.git",
69
+ "directory": "packages/gcp"
70
+ },
71
+ "gitHead": "a55d7d59862672a8cbbca4088fed090779b37705"
72
+ }
package/readme.md ADDED
@@ -0,0 +1,32 @@
1
+ # @pristine-ts/gcp
2
+
3
+ Google Cloud Platform integration for Pristine-TS. Mirrors `@pristine-ts/aws`:
4
+ clients, event mappers, decorators, models, options, and results for GCP services.
5
+
6
+ ## Coverage
7
+
8
+ | GCP service | Client | Event mapper |
9
+ | :--- | :--- | :--- |
10
+ | Firestore (Native mode) | `FirestoreClient` | `FirestoreEventMapper` (CloudEvents) |
11
+ | Cloud Storage | `CloudStorageClient` | `CloudStorageEventMapper` (CloudEvents) |
12
+ | Pub/Sub | `PubSubClient` | `PubSubEventMapper` (push subscription shape) |
13
+ | Secret Manager | `SecretManagerClient` | — |
14
+ | Eventarc | `EventarcClient` | `EventarcEventMapper` (catch-all CloudEvent) |
15
+
16
+ ## Deliberately not implemented
17
+
18
+ AWS services with no first-party GCP equivalent are not mirrored:
19
+
20
+ - **SES** — GCP has no native transactional-email service. Use `@pristine-ts/http`
21
+ against SendGrid/Postmark/etc.
22
+ - **CloudFront** — Cloud CDN is configured at the infra level (Terraform/`gcloud`),
23
+ no SDK to wrap.
24
+ - **CloudFormation** — Deployment Manager is deprecated; Terraform is the modern
25
+ path and is out of framework scope.
26
+ - **Kafka / MSK** — Confluent Cloud on GCP has its own SDK; if needed, a dedicated
27
+ package can be added separately.
28
+
29
+ See companion packages: `@pristine-ts/gcp-functions` (HTTP entry mappers for Cloud
30
+ Functions / Cloud Run), `@pristine-ts/gcp-identity-platform` (auth),
31
+ `@pristine-ts/gcp-scheduling` (Cloud Scheduler), `@pristine-ts/gcp-trace`
32
+ (Cloud Trace).