@walkeros/server-source-gcp 4.0.0 → 4.0.1-next-1778183328892
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.
- package/README.md +216 -2
- package/dist/dev.d.mts +290 -33
- package/dist/dev.d.ts +290 -33
- package/dist/dev.js +1 -1
- package/dist/dev.js.map +1 -1
- package/dist/dev.mjs +1 -1
- package/dist/dev.mjs.map +1 -1
- package/dist/index.d.mts +292 -42
- package/dist/index.d.ts +292 -42
- package/dist/index.js +24 -1
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +24 -1
- package/dist/index.mjs.map +1 -1
- package/dist/walkerOS.json +6 -4
- package/package.json +16 -5
package/dist/index.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import { Source, WalkerOS, Flow, Trigger } from '@walkeros/core';
|
|
1
|
+
import { Source, WalkerOS, Flow, Trigger, SetupFn as SetupFn$1 } from '@walkeros/core';
|
|
2
2
|
import * as _walkeros_core_dev from '@walkeros/core/dev';
|
|
3
3
|
import { z } from '@walkeros/core/dev';
|
|
4
|
+
import { PubSub, Subscription } from '@google-cloud/pubsub';
|
|
4
5
|
|
|
5
6
|
/**
|
|
6
7
|
* HTTP methods enum
|
|
@@ -64,7 +65,7 @@ declare const SettingsSchema: z.ZodObject<{
|
|
|
64
65
|
}, z.core.$strip>]>>;
|
|
65
66
|
timeout: z.ZodOptional<z.ZodNumber>;
|
|
66
67
|
}, z.core.$strip>;
|
|
67
|
-
type Settings$
|
|
68
|
+
type Settings$3 = z.infer<typeof SettingsSchema>;
|
|
68
69
|
|
|
69
70
|
declare const settings: _walkeros_core_dev.JSONSchema;
|
|
70
71
|
|
|
@@ -74,7 +75,7 @@ declare const index$1_HttpMethod: typeof HttpMethod;
|
|
|
74
75
|
declare const index$1_SettingsSchema: typeof SettingsSchema;
|
|
75
76
|
declare const index$1_settings: typeof settings;
|
|
76
77
|
declare namespace index$1 {
|
|
77
|
-
export { type CorsOptions$1 as CorsOptions, index$1_CorsOptionsSchema as CorsOptionsSchema, index$1_CorsOrigin as CorsOrigin, index$1_HttpMethod as HttpMethod, type Settings$
|
|
78
|
+
export { type CorsOptions$1 as CorsOptions, index$1_CorsOptionsSchema as CorsOptionsSchema, index$1_CorsOrigin as CorsOrigin, index$1_HttpMethod as HttpMethod, type Settings$3 as Settings, index$1_SettingsSchema as SettingsSchema, index$1_settings as settings };
|
|
78
79
|
}
|
|
79
80
|
|
|
80
81
|
declare module '@walkeros/core' {
|
|
@@ -85,34 +86,34 @@ declare module '@walkeros/core' {
|
|
|
85
86
|
};
|
|
86
87
|
}
|
|
87
88
|
}
|
|
88
|
-
interface Request {
|
|
89
|
+
interface Request$1 {
|
|
89
90
|
method: string;
|
|
90
91
|
body?: unknown;
|
|
91
92
|
headers: Record<string, string | string[]>;
|
|
92
93
|
get(name: string): string | undefined;
|
|
93
94
|
}
|
|
94
|
-
interface Response {
|
|
95
|
-
status(code: number): Response;
|
|
96
|
-
json(body: unknown): Response;
|
|
97
|
-
send(body?: unknown): Response;
|
|
98
|
-
set(key: string, value: string): Response;
|
|
95
|
+
interface Response$1 {
|
|
96
|
+
status(code: number): Response$1;
|
|
97
|
+
json(body: unknown): Response$1;
|
|
98
|
+
send(body?: unknown): Response$1;
|
|
99
|
+
set(key: string, value: string): Response$1;
|
|
99
100
|
}
|
|
100
|
-
type Settings = z.infer<typeof SettingsSchema>;
|
|
101
|
+
type Settings$2 = z.infer<typeof SettingsSchema>;
|
|
101
102
|
type CorsOptions = z.infer<typeof CorsOptionsSchema>;
|
|
102
|
-
type InitSettings = Partial<Settings>;
|
|
103
|
-
interface Mapping {
|
|
103
|
+
type InitSettings$2 = Partial<Settings$2>;
|
|
104
|
+
interface Mapping$2 {
|
|
104
105
|
}
|
|
105
|
-
type Push = (req: Request, res: Response) => Promise<void>;
|
|
106
|
-
interface Env extends Source.Env {
|
|
107
|
-
req?: Request;
|
|
108
|
-
res?: Response;
|
|
106
|
+
type Push$2 = (req: Request$1, res: Response$1) => Promise<void>;
|
|
107
|
+
interface Env$2 extends Source.Env {
|
|
108
|
+
req?: Request$1;
|
|
109
|
+
res?: Response$1;
|
|
109
110
|
}
|
|
110
|
-
type Types = Source.Types<Settings, Mapping, Push, Env, InitSettings>;
|
|
111
|
-
interface CloudFunctionSource extends Omit<Source.Instance<Types>, 'push'> {
|
|
112
|
-
push: Push;
|
|
111
|
+
type Types$2 = Source.Types<Settings$2, Mapping$2, Push$2, Env$2, InitSettings$2>;
|
|
112
|
+
interface CloudFunctionSource extends Omit<Source.Instance<Types$2>, 'push'> {
|
|
113
|
+
push: Push$2;
|
|
113
114
|
}
|
|
114
|
-
type Config = Source.Config<Types>;
|
|
115
|
-
type PartialConfig = Source.PartialConfig<Types>;
|
|
115
|
+
type Config$2 = Source.Config<Types$2>;
|
|
116
|
+
type PartialConfig$2 = Source.PartialConfig<Types$2>;
|
|
116
117
|
interface EventRequest {
|
|
117
118
|
event: string;
|
|
118
119
|
data?: WalkerOS.AnyObject;
|
|
@@ -129,24 +130,14 @@ interface EventResponse {
|
|
|
129
130
|
type RequestBody = EventRequest;
|
|
130
131
|
type ResponseBody = EventResponse;
|
|
131
132
|
|
|
132
|
-
type
|
|
133
|
-
type
|
|
134
|
-
type
|
|
135
|
-
type
|
|
136
|
-
type
|
|
137
|
-
type
|
|
138
|
-
|
|
139
|
-
type
|
|
140
|
-
type types_PartialConfig = PartialConfig;
|
|
141
|
-
type types_Push = Push;
|
|
142
|
-
type types_Request = Request;
|
|
143
|
-
type types_RequestBody = RequestBody;
|
|
144
|
-
type types_Response = Response;
|
|
145
|
-
type types_ResponseBody = ResponseBody;
|
|
146
|
-
type types_Settings = Settings;
|
|
147
|
-
type types_Types = Types;
|
|
148
|
-
declare namespace types {
|
|
149
|
-
export type { types_CloudFunctionSource as CloudFunctionSource, types_Config as Config, types_CorsOptions as CorsOptions, types_Env as Env, types_EventRequest as EventRequest, types_EventResponse as EventResponse, types_InitSettings as InitSettings, types_Mapping as Mapping, types_PartialConfig as PartialConfig, types_Push as Push, types_Request as Request, types_RequestBody as RequestBody, types_Response as Response, types_ResponseBody as ResponseBody, types_Settings as Settings, types_Types as Types };
|
|
133
|
+
type types$2_CloudFunctionSource = CloudFunctionSource;
|
|
134
|
+
type types$2_CorsOptions = CorsOptions;
|
|
135
|
+
type types$2_EventRequest = EventRequest;
|
|
136
|
+
type types$2_EventResponse = EventResponse;
|
|
137
|
+
type types$2_RequestBody = RequestBody;
|
|
138
|
+
type types$2_ResponseBody = ResponseBody;
|
|
139
|
+
declare namespace types$2 {
|
|
140
|
+
export type { types$2_CloudFunctionSource as CloudFunctionSource, Config$2 as Config, types$2_CorsOptions as CorsOptions, Env$2 as Env, types$2_EventRequest as EventRequest, types$2_EventResponse as EventResponse, InitSettings$2 as InitSettings, Mapping$2 as Mapping, PartialConfig$2 as PartialConfig, Push$2 as Push, Request$1 as Request, types$2_RequestBody as RequestBody, Response$1 as Response, types$2_ResponseBody as ResponseBody, Settings$2 as Settings, Types$2 as Types };
|
|
150
141
|
}
|
|
151
142
|
|
|
152
143
|
/**
|
|
@@ -155,7 +146,7 @@ declare namespace types {
|
|
|
155
146
|
* Use this for testing HTTP event ingestion and request/response handling
|
|
156
147
|
* without requiring a real GCP Cloud Function environment.
|
|
157
148
|
*/
|
|
158
|
-
declare const push: Env;
|
|
149
|
+
declare const push: Env$2;
|
|
159
150
|
|
|
160
151
|
declare const env_push: typeof push;
|
|
161
152
|
declare namespace env {
|
|
@@ -197,6 +188,265 @@ declare namespace index {
|
|
|
197
188
|
export { index_createTrigger as createTrigger, index_env as env, index_step as step };
|
|
198
189
|
}
|
|
199
190
|
|
|
200
|
-
declare const sourceCloudFunction: Source.Init<Types>;
|
|
191
|
+
declare const sourceCloudFunction: Source.Init<Types$2>;
|
|
192
|
+
|
|
193
|
+
/**
|
|
194
|
+
* Shared types for the Pub/Sub source (pull and push).
|
|
195
|
+
*
|
|
196
|
+
* The source uses real `@google-cloud/pubsub` SDK types directly (`PubSub`,
|
|
197
|
+
* `Subscription`, `Topic`, `Message`, `SubscriptionMetadata`, etc.) rather
|
|
198
|
+
* than hand-rolled narrow surrogates. This keeps the runtime contract
|
|
199
|
+
* honest: if the SDK changes a signature, the source surfaces the break
|
|
200
|
+
* at compile time instead of papering over it with a permissive interface.
|
|
201
|
+
*
|
|
202
|
+
* Only domain types that have no SDK equivalent live here.
|
|
203
|
+
*/
|
|
204
|
+
/**
|
|
205
|
+
* Service account credentials. Mirrors the destination shape in
|
|
206
|
+
* `@walkeros/server-destination-gcp`.
|
|
207
|
+
*/
|
|
208
|
+
interface ServiceAccountCredentials {
|
|
209
|
+
client_email: string;
|
|
210
|
+
private_key: string;
|
|
211
|
+
project_id?: string;
|
|
212
|
+
}
|
|
213
|
+
/**
|
|
214
|
+
* Decoder mode for the message data payload.
|
|
215
|
+
*
|
|
216
|
+
* - `json`: JSON.parse(data.toString('utf8')). Default.
|
|
217
|
+
* - `text`: data.toString('utf8'). The text becomes the event payload.
|
|
218
|
+
* - `raw`: the raw Buffer is forwarded as-is.
|
|
219
|
+
*/
|
|
220
|
+
type Decoder = 'json' | 'text' | 'raw';
|
|
221
|
+
|
|
222
|
+
declare module '@walkeros/core' {
|
|
223
|
+
interface SourceMap {
|
|
224
|
+
'pubsub-pull': {
|
|
225
|
+
type: 'pubsub-pull';
|
|
226
|
+
platform: 'server';
|
|
227
|
+
};
|
|
228
|
+
}
|
|
229
|
+
}
|
|
230
|
+
interface Settings$1 {
|
|
231
|
+
client: PubSub;
|
|
232
|
+
projectId: string;
|
|
233
|
+
subscription: string;
|
|
234
|
+
topic?: string;
|
|
235
|
+
credentials?: string | ServiceAccountCredentials;
|
|
236
|
+
apiEndpoint?: string;
|
|
237
|
+
decoder?: Decoder;
|
|
238
|
+
flowControl?: {
|
|
239
|
+
maxMessages?: number;
|
|
240
|
+
maxBytes?: number;
|
|
241
|
+
};
|
|
242
|
+
ackDeadline?: number;
|
|
243
|
+
shutdownTimeoutMs?: number;
|
|
244
|
+
onPushError?: 'nack' | 'ack';
|
|
245
|
+
subscriptionHandle?: Subscription;
|
|
246
|
+
}
|
|
247
|
+
interface InitSettings$1 {
|
|
248
|
+
projectId: string;
|
|
249
|
+
subscription: string;
|
|
250
|
+
topic?: string;
|
|
251
|
+
client?: PubSub;
|
|
252
|
+
credentials?: string | ServiceAccountCredentials;
|
|
253
|
+
apiEndpoint?: string;
|
|
254
|
+
decoder?: Decoder;
|
|
255
|
+
flowControl?: {
|
|
256
|
+
maxMessages?: number;
|
|
257
|
+
maxBytes?: number;
|
|
258
|
+
};
|
|
259
|
+
ackDeadline?: number;
|
|
260
|
+
shutdownTimeoutMs?: number;
|
|
261
|
+
onPushError?: 'nack' | 'ack';
|
|
262
|
+
}
|
|
263
|
+
interface Mapping$1 {
|
|
264
|
+
}
|
|
265
|
+
/**
|
|
266
|
+
* Synthetic message input. Used by tests / triggers to dispatch a message
|
|
267
|
+
* through the same handler the SDK subscriber callback uses, without
|
|
268
|
+
* involving real Pub/Sub infrastructure.
|
|
269
|
+
*
|
|
270
|
+
* In production, `push()` is invoked without arguments and is a no-op:
|
|
271
|
+
* Pub/Sub is event-driven, the SDK's subscription emitter is the canonical
|
|
272
|
+
* delivery path. Tests pass a synthetic input to dispatch directly.
|
|
273
|
+
*/
|
|
274
|
+
interface SyntheticMessage {
|
|
275
|
+
id: string;
|
|
276
|
+
data: Buffer;
|
|
277
|
+
attributes?: Record<string, string>;
|
|
278
|
+
orderingKey?: string;
|
|
279
|
+
}
|
|
280
|
+
interface SyntheticPushResult {
|
|
281
|
+
acked: boolean;
|
|
282
|
+
nacked: boolean;
|
|
283
|
+
}
|
|
284
|
+
type Push$1 = (content?: SyntheticMessage) => Promise<SyntheticPushResult | void>;
|
|
285
|
+
interface Env$1 extends Source.Env {
|
|
286
|
+
PubSub?: typeof PubSub;
|
|
287
|
+
}
|
|
288
|
+
/**
|
|
289
|
+
* Provisioning options for `walkeros setup source.<id>`.
|
|
290
|
+
*
|
|
291
|
+
* Triggered only by the explicit CLI command. Idempotent. Never auto-run.
|
|
292
|
+
*/
|
|
293
|
+
interface Setup {
|
|
294
|
+
/** Optional: create the topic if it does not exist. Default: false (require pre-existing topic). */
|
|
295
|
+
createTopic?: boolean;
|
|
296
|
+
/** Subscription ack deadline in seconds. Default: 60. */
|
|
297
|
+
ackDeadlineSeconds?: number;
|
|
298
|
+
/** Subscription message retention. Default: undefined (project default). */
|
|
299
|
+
messageRetentionDuration?: {
|
|
300
|
+
seconds: number;
|
|
301
|
+
};
|
|
302
|
+
/** Filter expression. Optional. */
|
|
303
|
+
filter?: string;
|
|
304
|
+
/** Dead-letter policy. Optional but strongly recommended. */
|
|
305
|
+
deadLetterPolicy?: {
|
|
306
|
+
deadLetterTopic: string;
|
|
307
|
+
maxDeliveryAttempts: number;
|
|
308
|
+
/** Auto-create the dead-letter topic if it does not exist. Default: false. */
|
|
309
|
+
createDeadLetterTopic?: boolean;
|
|
310
|
+
};
|
|
311
|
+
/** Retry policy. Optional. */
|
|
312
|
+
retryPolicy?: {
|
|
313
|
+
minimumBackoff: {
|
|
314
|
+
seconds: number;
|
|
315
|
+
};
|
|
316
|
+
maximumBackoff: {
|
|
317
|
+
seconds: number;
|
|
318
|
+
};
|
|
319
|
+
};
|
|
320
|
+
/** Enable message ordering on the subscription. Default: false. */
|
|
321
|
+
enableMessageOrdering?: boolean;
|
|
322
|
+
/** Subscription labels. Optional. */
|
|
323
|
+
labels?: Record<string, string>;
|
|
324
|
+
/** Subscription expiration policy. `null` means never expire. */
|
|
325
|
+
expirationPolicy?: {
|
|
326
|
+
ttl?: {
|
|
327
|
+
seconds: number;
|
|
328
|
+
} | null;
|
|
329
|
+
};
|
|
330
|
+
}
|
|
331
|
+
type Types$1 = Source.Types<Settings$1, Mapping$1, Push$1, Env$1, InitSettings$1, Setup>;
|
|
332
|
+
type Config$1 = Source.Config<Types$1>;
|
|
333
|
+
type PartialConfig$1 = Source.PartialConfig<Types$1>;
|
|
334
|
+
type SetupFn = SetupFn$1<Config$1, Env$1>;
|
|
335
|
+
|
|
336
|
+
type types$1_Decoder = Decoder;
|
|
337
|
+
declare const types$1_PubSub: typeof PubSub;
|
|
338
|
+
type types$1_ServiceAccountCredentials = ServiceAccountCredentials;
|
|
339
|
+
type types$1_Setup = Setup;
|
|
340
|
+
type types$1_SetupFn = SetupFn;
|
|
341
|
+
declare const types$1_Subscription: typeof Subscription;
|
|
342
|
+
type types$1_SyntheticMessage = SyntheticMessage;
|
|
343
|
+
type types$1_SyntheticPushResult = SyntheticPushResult;
|
|
344
|
+
declare namespace types$1 {
|
|
345
|
+
export { type Config$1 as Config, type types$1_Decoder as Decoder, type Env$1 as Env, type InitSettings$1 as InitSettings, type Mapping$1 as Mapping, type PartialConfig$1 as PartialConfig, types$1_PubSub as PubSub, type Push$1 as Push, type types$1_ServiceAccountCredentials as ServiceAccountCredentials, type Settings$1 as Settings, type types$1_Setup as Setup, type types$1_SetupFn as SetupFn, types$1_Subscription as Subscription, type types$1_SyntheticMessage as SyntheticMessage, type types$1_SyntheticPushResult as SyntheticPushResult, type Types$1 as Types };
|
|
346
|
+
}
|
|
347
|
+
|
|
348
|
+
/**
|
|
349
|
+
* Google Cloud Pub/Sub pull source.
|
|
350
|
+
*
|
|
351
|
+
* Long-running streaming subscriber. `init()` opens the subscription stream
|
|
352
|
+
* and forwards each message to the collector via `env.push`. The source's
|
|
353
|
+
* `push` accepts an optional synthetic message (used by tests / triggers)
|
|
354
|
+
* and dispatches it through the same pipeline; called without arguments
|
|
355
|
+
* (production) it is a no-op since Pub/Sub is event-driven.
|
|
356
|
+
*
|
|
357
|
+
* `destroy()` closes the subscriber gracefully, honoring `shutdownTimeoutMs`.
|
|
358
|
+
*/
|
|
359
|
+
declare const sourcePubSubPull: Source.Init<Types$1>;
|
|
360
|
+
|
|
361
|
+
declare module '@walkeros/core' {
|
|
362
|
+
interface SourceMap {
|
|
363
|
+
'pubsub-push': {
|
|
364
|
+
type: 'pubsub-push';
|
|
365
|
+
platform: 'server';
|
|
366
|
+
};
|
|
367
|
+
}
|
|
368
|
+
}
|
|
369
|
+
/**
|
|
370
|
+
* Minimal request shape for the push handler. Mirrors the cloudfunction
|
|
371
|
+
* source so operators can wire `sourcePubSubPush` into express, lambda,
|
|
372
|
+
* or any framework that delivers a similar contract.
|
|
373
|
+
*/
|
|
374
|
+
interface Request {
|
|
375
|
+
method: string;
|
|
376
|
+
body?: unknown;
|
|
377
|
+
headers: Record<string, string | string[]>;
|
|
378
|
+
get(name: string): string | undefined;
|
|
379
|
+
}
|
|
380
|
+
interface Response {
|
|
381
|
+
status(code: number): Response;
|
|
382
|
+
json(body: unknown): Response;
|
|
383
|
+
send(body?: unknown): Response;
|
|
384
|
+
set(key: string, value: string): Response;
|
|
385
|
+
}
|
|
386
|
+
interface Settings {
|
|
387
|
+
/** GCP project id. Optional; informational, used in error messages. */
|
|
388
|
+
projectId?: string;
|
|
389
|
+
/** Decoder for the message data field. Default: 'json'. */
|
|
390
|
+
decoder?: Decoder;
|
|
391
|
+
/** Verify the OIDC bearer token Pub/Sub attaches to push requests. Default: false. */
|
|
392
|
+
verifyOidc?: boolean;
|
|
393
|
+
/** OIDC audience (your endpoint URL or a custom audience). Required if verifyOidc is true. */
|
|
394
|
+
audience?: string;
|
|
395
|
+
}
|
|
396
|
+
type InitSettings = Partial<Settings>;
|
|
397
|
+
interface Mapping {
|
|
398
|
+
}
|
|
399
|
+
type Push = (req: Request, res: Response) => Promise<void>;
|
|
400
|
+
interface Env extends Source.Env {
|
|
401
|
+
req?: Request;
|
|
402
|
+
res?: Response;
|
|
403
|
+
/** Optional override for OIDC verification. Tests can inject a stub. */
|
|
404
|
+
verifyOidcToken?: (token: string, audience: string) => Promise<{
|
|
405
|
+
sub?: string;
|
|
406
|
+
email?: string;
|
|
407
|
+
}>;
|
|
408
|
+
}
|
|
409
|
+
type Types = Source.Types<Settings, Mapping, Push, Env, InitSettings>;
|
|
410
|
+
type Config = Source.Config<Types>;
|
|
411
|
+
type PartialConfig = Source.PartialConfig<Types>;
|
|
412
|
+
/**
|
|
413
|
+
* Pub/Sub push envelope shape. Pub/Sub POSTs each message in this format
|
|
414
|
+
* to the configured push endpoint. `data` is base64-encoded.
|
|
415
|
+
*/
|
|
416
|
+
interface PushEnvelope {
|
|
417
|
+
message: {
|
|
418
|
+
data?: string;
|
|
419
|
+
attributes?: Record<string, string>;
|
|
420
|
+
messageId: string;
|
|
421
|
+
publishTime?: string;
|
|
422
|
+
orderingKey?: string;
|
|
423
|
+
};
|
|
424
|
+
subscription: string;
|
|
425
|
+
}
|
|
426
|
+
|
|
427
|
+
type types_Config = Config;
|
|
428
|
+
type types_Env = Env;
|
|
429
|
+
type types_InitSettings = InitSettings;
|
|
430
|
+
type types_Mapping = Mapping;
|
|
431
|
+
type types_PartialConfig = PartialConfig;
|
|
432
|
+
type types_Push = Push;
|
|
433
|
+
type types_PushEnvelope = PushEnvelope;
|
|
434
|
+
type types_Request = Request;
|
|
435
|
+
type types_Response = Response;
|
|
436
|
+
type types_Settings = Settings;
|
|
437
|
+
type types_Types = Types;
|
|
438
|
+
declare namespace types {
|
|
439
|
+
export type { types_Config as Config, types_Env as Env, types_InitSettings as InitSettings, types_Mapping as Mapping, types_PartialConfig as PartialConfig, types_Push as Push, types_PushEnvelope as PushEnvelope, types_Request as Request, types_Response as Response, types_Settings as Settings, types_Types as Types };
|
|
440
|
+
}
|
|
441
|
+
|
|
442
|
+
/**
|
|
443
|
+
* Google Cloud Pub/Sub push source.
|
|
444
|
+
*
|
|
445
|
+
* HTTP request handler. Pub/Sub POSTs each message envelope to the operator's
|
|
446
|
+
* endpoint; this source decodes the envelope, base64-decodes the data field,
|
|
447
|
+
* runs the configured decoder, and forwards the decoded value to the
|
|
448
|
+
* collector via env.push.
|
|
449
|
+
*/
|
|
450
|
+
declare const sourcePubSubPush: Source.Init<Types>;
|
|
201
451
|
|
|
202
|
-
export { types as SourceCloudFunction, index as examples, index$1 as schemas, sourceCloudFunction };
|
|
452
|
+
export { types$2 as SourceCloudFunction, types$1 as SourcePubSubPull, types as SourcePubSubPush, index as examples, index$1 as schemas, sourceCloudFunction, sourcePubSubPull, sourcePubSubPush };
|