autotel-subscribers 4.0.0

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 (87) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +669 -0
  3. package/dist/amplitude.cjs +2486 -0
  4. package/dist/amplitude.cjs.map +1 -0
  5. package/dist/amplitude.d.cts +49 -0
  6. package/dist/amplitude.d.ts +49 -0
  7. package/dist/amplitude.js +2463 -0
  8. package/dist/amplitude.js.map +1 -0
  9. package/dist/event-subscriber-base-CnF3V56W.d.cts +182 -0
  10. package/dist/event-subscriber-base-CnF3V56W.d.ts +182 -0
  11. package/dist/factories.cjs +16660 -0
  12. package/dist/factories.cjs.map +1 -0
  13. package/dist/factories.d.cts +304 -0
  14. package/dist/factories.d.ts +304 -0
  15. package/dist/factories.js +16624 -0
  16. package/dist/factories.js.map +1 -0
  17. package/dist/index.cjs +16575 -0
  18. package/dist/index.cjs.map +1 -0
  19. package/dist/index.d.cts +179 -0
  20. package/dist/index.d.ts +179 -0
  21. package/dist/index.js +16539 -0
  22. package/dist/index.js.map +1 -0
  23. package/dist/middleware.cjs +220 -0
  24. package/dist/middleware.cjs.map +1 -0
  25. package/dist/middleware.d.cts +227 -0
  26. package/dist/middleware.d.ts +227 -0
  27. package/dist/middleware.js +208 -0
  28. package/dist/middleware.js.map +1 -0
  29. package/dist/mixpanel.cjs +2940 -0
  30. package/dist/mixpanel.cjs.map +1 -0
  31. package/dist/mixpanel.d.cts +47 -0
  32. package/dist/mixpanel.d.ts +47 -0
  33. package/dist/mixpanel.js +2932 -0
  34. package/dist/mixpanel.js.map +1 -0
  35. package/dist/posthog.cjs +4115 -0
  36. package/dist/posthog.cjs.map +1 -0
  37. package/dist/posthog.d.cts +299 -0
  38. package/dist/posthog.d.ts +299 -0
  39. package/dist/posthog.js +4113 -0
  40. package/dist/posthog.js.map +1 -0
  41. package/dist/segment.cjs +6822 -0
  42. package/dist/segment.cjs.map +1 -0
  43. package/dist/segment.d.cts +49 -0
  44. package/dist/segment.d.ts +49 -0
  45. package/dist/segment.js +6794 -0
  46. package/dist/segment.js.map +1 -0
  47. package/dist/slack.cjs +368 -0
  48. package/dist/slack.cjs.map +1 -0
  49. package/dist/slack.d.cts +126 -0
  50. package/dist/slack.d.ts +126 -0
  51. package/dist/slack.js +366 -0
  52. package/dist/slack.js.map +1 -0
  53. package/dist/webhook.cjs +100 -0
  54. package/dist/webhook.cjs.map +1 -0
  55. package/dist/webhook.d.cts +53 -0
  56. package/dist/webhook.d.ts +53 -0
  57. package/dist/webhook.js +98 -0
  58. package/dist/webhook.js.map +1 -0
  59. package/examples/quickstart-custom-subscriber.ts +144 -0
  60. package/examples/subscriber-bigquery.ts +219 -0
  61. package/examples/subscriber-databricks.ts +280 -0
  62. package/examples/subscriber-kafka.ts +326 -0
  63. package/examples/subscriber-kinesis.ts +307 -0
  64. package/examples/subscriber-posthog.ts +421 -0
  65. package/examples/subscriber-pubsub.ts +336 -0
  66. package/examples/subscriber-snowflake.ts +232 -0
  67. package/package.json +141 -0
  68. package/src/amplitude.test.ts +231 -0
  69. package/src/amplitude.ts +148 -0
  70. package/src/event-subscriber-base.ts +325 -0
  71. package/src/factories.ts +197 -0
  72. package/src/index.ts +50 -0
  73. package/src/middleware.ts +489 -0
  74. package/src/mixpanel.test.ts +194 -0
  75. package/src/mixpanel.ts +134 -0
  76. package/src/mock-event-subscriber.ts +333 -0
  77. package/src/posthog.test.ts +629 -0
  78. package/src/posthog.ts +530 -0
  79. package/src/segment.test.ts +228 -0
  80. package/src/segment.ts +148 -0
  81. package/src/slack.ts +383 -0
  82. package/src/streaming-event-subscriber.ts +323 -0
  83. package/src/testing/index.ts +37 -0
  84. package/src/testing/mock-webhook-server.ts +242 -0
  85. package/src/testing/subscriber-test-harness.ts +365 -0
  86. package/src/webhook.test.ts +264 -0
  87. package/src/webhook.ts +158 -0
@@ -0,0 +1,49 @@
1
+ import { EventSubscriber, EventAttributes, FunnelStatus, OutcomeStatus } from 'autotel/event-subscriber';
2
+
3
+ /**
4
+ * Segment Subscriber for autotel
5
+ *
6
+ * Send events to Segment (customer data platform).
7
+ *
8
+ * @example
9
+ * ```typescript
10
+ * import { Events } from 'autotel/events';
11
+ * import { SegmentSubscriber } from 'autotel-subscribers/segment';
12
+ *
13
+ * const events = new Events('checkout', {
14
+ * subscribers: [
15
+ * new SegmentSubscriber({
16
+ * writeKey: process.env.SEGMENT_WRITE_KEY!
17
+ * })
18
+ * ]
19
+ * });
20
+ *
21
+ * events.trackEvent('order.completed', { userId: '123', amount: 99.99 });
22
+ * ```
23
+ */
24
+
25
+ interface SegmentConfig {
26
+ /** Segment write key */
27
+ writeKey: string;
28
+ /** Enable/disable the subscriber */
29
+ enabled?: boolean;
30
+ }
31
+ declare class SegmentSubscriber implements EventSubscriber {
32
+ readonly name = "SegmentSubscriber";
33
+ readonly version = "1.0.0";
34
+ private events;
35
+ private enabled;
36
+ private config;
37
+ private initPromise;
38
+ constructor(config: SegmentConfig);
39
+ private initialize;
40
+ private ensureInitialized;
41
+ trackEvent(name: string, attributes?: EventAttributes): Promise<void>;
42
+ trackFunnelStep(funnelName: string, step: FunnelStatus, attributes?: EventAttributes): Promise<void>;
43
+ trackOutcome(operationName: string, outcome: OutcomeStatus, attributes?: EventAttributes): Promise<void>;
44
+ trackValue(name: string, value: number, attributes?: EventAttributes): Promise<void>;
45
+ /** Flush pending events before shutdown */
46
+ shutdown(): Promise<void>;
47
+ }
48
+
49
+ export { type SegmentConfig, SegmentSubscriber };
@@ -0,0 +1,49 @@
1
+ import { EventSubscriber, EventAttributes, FunnelStatus, OutcomeStatus } from 'autotel/event-subscriber';
2
+
3
+ /**
4
+ * Segment Subscriber for autotel
5
+ *
6
+ * Send events to Segment (customer data platform).
7
+ *
8
+ * @example
9
+ * ```typescript
10
+ * import { Events } from 'autotel/events';
11
+ * import { SegmentSubscriber } from 'autotel-subscribers/segment';
12
+ *
13
+ * const events = new Events('checkout', {
14
+ * subscribers: [
15
+ * new SegmentSubscriber({
16
+ * writeKey: process.env.SEGMENT_WRITE_KEY!
17
+ * })
18
+ * ]
19
+ * });
20
+ *
21
+ * events.trackEvent('order.completed', { userId: '123', amount: 99.99 });
22
+ * ```
23
+ */
24
+
25
+ interface SegmentConfig {
26
+ /** Segment write key */
27
+ writeKey: string;
28
+ /** Enable/disable the subscriber */
29
+ enabled?: boolean;
30
+ }
31
+ declare class SegmentSubscriber implements EventSubscriber {
32
+ readonly name = "SegmentSubscriber";
33
+ readonly version = "1.0.0";
34
+ private events;
35
+ private enabled;
36
+ private config;
37
+ private initPromise;
38
+ constructor(config: SegmentConfig);
39
+ private initialize;
40
+ private ensureInitialized;
41
+ trackEvent(name: string, attributes?: EventAttributes): Promise<void>;
42
+ trackFunnelStep(funnelName: string, step: FunnelStatus, attributes?: EventAttributes): Promise<void>;
43
+ trackOutcome(operationName: string, outcome: OutcomeStatus, attributes?: EventAttributes): Promise<void>;
44
+ trackValue(name: string, value: number, attributes?: EventAttributes): Promise<void>;
45
+ /** Flush pending events before shutdown */
46
+ shutdown(): Promise<void>;
47
+ }
48
+
49
+ export { type SegmentConfig, SegmentSubscriber };