@zapier/zapier-sdk 0.31.2 → 0.31.3

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/CHANGELOG.md CHANGED
@@ -1,5 +1,11 @@
1
1
  # @zapier/zapier-sdk
2
2
 
3
+ ## 0.31.3
4
+
5
+ ### Patch Changes
6
+
7
+ - c98008a: Add callContext option to EventEmissionConfig to track where SDK method calls originate. MethodCalledEvent telemetry events now populate call_context with "sdk", "cli", or "mcp" instead of null.
8
+
3
9
  ## 0.31.2
4
10
 
5
11
  ### Patch Changes
package/dist/index.cjs CHANGED
@@ -5487,7 +5487,7 @@ function getCpuTime() {
5487
5487
 
5488
5488
  // package.json
5489
5489
  var package_default = {
5490
- version: "0.31.2"};
5490
+ version: "0.31.3"};
5491
5491
 
5492
5492
  // src/plugins/eventEmission/builders.ts
5493
5493
  function createBaseEvent(context = {}) {
@@ -5666,6 +5666,7 @@ var eventEmissionPlugin = ({ context }) => {
5666
5666
  });
5667
5667
  const config = {
5668
5668
  enabled: context.options.eventEmission?.enabled ?? true,
5669
+ callContext: context.options.eventEmission?.callContext,
5669
5670
  transport: (
5670
5671
  // If env var is set, use it (defaultTransport will be from env)
5671
5672
  process?.env?.ZAPIER_SDK_TELEMETRY_TRANSPORT ? defaultTransport : (
@@ -5879,7 +5880,10 @@ var eventEmissionPlugin = ({ context }) => {
5879
5880
  },
5880
5881
  createBaseEvent: createBaseEventHelper,
5881
5882
  emitMethodCalled: (data) => {
5882
- const event = buildMethodCalledEvent(data);
5883
+ const event = {
5884
+ ...buildMethodCalledEvent(data),
5885
+ call_context: config.callContext ?? "sdk"
5886
+ };
5883
5887
  silentEmit(
5884
5888
  transport,
5885
5889
  METHOD_CALLED_EVENT_SUBJECT,
package/dist/index.d.mts CHANGED
@@ -378,6 +378,7 @@ declare function getCpuTime(): number | null;
378
378
  interface EventEmissionConfig {
379
379
  enabled?: boolean;
380
380
  transport?: TransportConfig;
381
+ callContext?: "sdk" | "cli" | "mcp";
381
382
  }
382
383
  interface EventEmissionContext {
383
384
  eventEmission: {
package/dist/index.mjs CHANGED
@@ -5465,7 +5465,7 @@ function getCpuTime() {
5465
5465
 
5466
5466
  // package.json
5467
5467
  var package_default = {
5468
- version: "0.31.2"};
5468
+ version: "0.31.3"};
5469
5469
 
5470
5470
  // src/plugins/eventEmission/builders.ts
5471
5471
  function createBaseEvent(context = {}) {
@@ -5644,6 +5644,7 @@ var eventEmissionPlugin = ({ context }) => {
5644
5644
  });
5645
5645
  const config = {
5646
5646
  enabled: context.options.eventEmission?.enabled ?? true,
5647
+ callContext: context.options.eventEmission?.callContext,
5647
5648
  transport: (
5648
5649
  // If env var is set, use it (defaultTransport will be from env)
5649
5650
  process?.env?.ZAPIER_SDK_TELEMETRY_TRANSPORT ? defaultTransport : (
@@ -5857,7 +5858,10 @@ var eventEmissionPlugin = ({ context }) => {
5857
5858
  },
5858
5859
  createBaseEvent: createBaseEventHelper,
5859
5860
  emitMethodCalled: (data) => {
5860
- const event = buildMethodCalledEvent(data);
5861
+ const event = {
5862
+ ...buildMethodCalledEvent(data),
5863
+ call_context: config.callContext ?? "sdk"
5864
+ };
5861
5865
  silentEmit(
5862
5866
  transport,
5863
5867
  METHOD_CALLED_EVENT_SUBJECT,
@@ -53,4 +53,13 @@ describe("buildMethodCalledEvent", () => {
53
53
  }, { selected_api: "SlackCLIAPI@1.0.0" });
54
54
  expect(event.selected_api).toBe("SlackCLIAPI@1.0.0");
55
55
  });
56
+ it("should default call_context to null (plugin layer overrides this)", () => {
57
+ const event = buildMethodCalledEvent({
58
+ method_name: "listApps",
59
+ execution_duration_ms: 50,
60
+ success_flag: true,
61
+ argument_count: 0,
62
+ });
63
+ expect(event.call_context).toBeNull();
64
+ });
56
65
  });
@@ -16,6 +16,7 @@ export declare function cleanupEventListeners(): void;
16
16
  export interface EventEmissionConfig {
17
17
  enabled?: boolean;
18
18
  transport?: TransportConfig;
19
+ callContext?: "sdk" | "cli" | "mcp";
19
20
  }
20
21
  export interface EventEmissionContext {
21
22
  eventEmission: {
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/plugins/eventEmission/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAWnE,OAAO,KAAK,EAAgB,qBAAqB,EAAE,MAAM,SAAS,CAAC;AAsCnE;;;GAGG;AACH,wBAAgB,qBAAqB,SAEpC;AAGD,MAAM,WAAW,mBAAmB;IAClC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,SAAS,CAAC,EAAE,eAAe,CAAC;CAC7B;AAGD,MAAM,WAAW,oBAAoB;IACnC,aAAa,EAAE;QACb,SAAS,EAAE,cAAc,CAAC;QAC1B,MAAM,EAAE,mBAAmB,CAAC;QAE5B,IAAI,CAAC,CAAC,SAAS,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC;QAErD,eAAe,IAAI,OAAO,CAAC,SAAS,CAAC,CAAC;QAEtC,gBAAgB,CAAC,IAAI,EAAE,qBAAqB,GAAG,IAAI,CAAC;KACrD,CAAC;CACH;AAED,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,oBAAoB,CAAC;CAC/B;AA6FD,eAAO,MAAM,mBAAmB,EAAE,MAAM,CACtC,EAAE,EACF;IACE,OAAO,EAAE;QACP,aAAa,CAAC,EAAE,mBAAmB,CAAC;QACpC,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC;CACH,EACD,qBAAqB,CA0StB,CAAC;AAGF,YAAY,EACV,YAAY,EACZ,6BAA6B,EAC7B,sBAAsB,EACtB,qBAAqB,GACtB,MAAM,SAAS,CAAC;AACjB,OAAO,EACL,8BAA8B,EAC9B,0BAA0B,EAC1B,eAAe,EACf,eAAe,EACf,sBAAsB,GACvB,MAAM,YAAY,CAAC;AACpB,YAAY,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAC9D,cAAc,SAAS,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/plugins/eventEmission/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAWnE,OAAO,KAAK,EAAgB,qBAAqB,EAAE,MAAM,SAAS,CAAC;AAsCnE;;;GAGG;AACH,wBAAgB,qBAAqB,SAEpC;AAGD,MAAM,WAAW,mBAAmB;IAClC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,SAAS,CAAC,EAAE,eAAe,CAAC;IAC5B,WAAW,CAAC,EAAE,KAAK,GAAG,KAAK,GAAG,KAAK,CAAC;CACrC;AAGD,MAAM,WAAW,oBAAoB;IACnC,aAAa,EAAE;QACb,SAAS,EAAE,cAAc,CAAC;QAC1B,MAAM,EAAE,mBAAmB,CAAC;QAE5B,IAAI,CAAC,CAAC,SAAS,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC;QAErD,eAAe,IAAI,OAAO,CAAC,SAAS,CAAC,CAAC;QAEtC,gBAAgB,CAAC,IAAI,EAAE,qBAAqB,GAAG,IAAI,CAAC;KACrD,CAAC;CACH;AAED,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,oBAAoB,CAAC;CAC/B;AA6FD,eAAO,MAAM,mBAAmB,EAAE,MAAM,CACtC,EAAE,EACF;IACE,OAAO,EAAE;QACP,aAAa,CAAC,EAAE,mBAAmB,CAAC;QACpC,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC;CACH,EACD,qBAAqB,CA8StB,CAAC;AAGF,YAAY,EACV,YAAY,EACZ,6BAA6B,EAC7B,sBAAsB,EACtB,qBAAqB,GACtB,MAAM,SAAS,CAAC;AACjB,OAAO,EACL,8BAA8B,EAC9B,0BAA0B,EAC1B,eAAe,EACf,eAAe,EACf,sBAAsB,GACvB,MAAM,YAAY,CAAC;AACpB,YAAY,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAC9D,cAAc,SAAS,CAAC"}
@@ -110,6 +110,7 @@ export const eventEmissionPlugin = ({ context }) => {
110
110
  // Merge config: env var takes precedence over options, options take precedence over defaults
111
111
  const config = {
112
112
  enabled: context.options.eventEmission?.enabled ?? true,
113
+ callContext: context.options.eventEmission?.callContext,
113
114
  transport:
114
115
  // If env var is set, use it (defaultTransport will be from env)
115
116
  process?.env?.ZAPIER_SDK_TELEMETRY_TRANSPORT
@@ -354,7 +355,10 @@ export const eventEmissionPlugin = ({ context }) => {
354
355
  },
355
356
  createBaseEvent: createBaseEventHelper,
356
357
  emitMethodCalled: (data) => {
357
- const event = buildMethodCalledEvent(data);
358
+ const event = {
359
+ ...buildMethodCalledEvent(data),
360
+ call_context: config.callContext ?? "sdk",
361
+ };
358
362
  silentEmit(transport, METHOD_CALLED_EVENT_SUBJECT, event, getUserContext);
359
363
  },
360
364
  },
@@ -579,6 +579,80 @@ describe("eventEmissionPlugin", () => {
579
579
  expect(mockGetToken).toHaveBeenCalled();
580
580
  });
581
581
  });
582
+ describe("emitMethodCalled call_context", () => {
583
+ beforeEach(() => {
584
+ vi.clearAllMocks();
585
+ mockGetToken.mockResolvedValue(undefined);
586
+ });
587
+ it("should default call_context to 'sdk' when callContext is not configured", async () => {
588
+ const plugin = eventEmissionPlugin({
589
+ sdk: {},
590
+ context: {
591
+ meta: {},
592
+ options: {
593
+ eventEmission: {
594
+ enabled: true,
595
+ transport: { type: "console" },
596
+ },
597
+ },
598
+ },
599
+ });
600
+ plugin.context.eventEmission.emitMethodCalled({
601
+ method_name: "listApps",
602
+ execution_duration_ms: 50,
603
+ success_flag: true,
604
+ argument_count: 0,
605
+ });
606
+ await new Promise((resolve) => setTimeout(resolve, 50));
607
+ expect(mockTransport.emit).toHaveBeenCalledWith("platform.sdk.MethodCalledEvent", expect.objectContaining({ call_context: "sdk" }));
608
+ });
609
+ it("should set call_context to 'cli' when callContext is 'cli'", async () => {
610
+ const plugin = eventEmissionPlugin({
611
+ sdk: {},
612
+ context: {
613
+ meta: {},
614
+ options: {
615
+ eventEmission: {
616
+ enabled: true,
617
+ transport: { type: "console" },
618
+ callContext: "cli",
619
+ },
620
+ },
621
+ },
622
+ });
623
+ plugin.context.eventEmission.emitMethodCalled({
624
+ method_name: "listApps",
625
+ execution_duration_ms: 50,
626
+ success_flag: true,
627
+ argument_count: 0,
628
+ });
629
+ await new Promise((resolve) => setTimeout(resolve, 50));
630
+ expect(mockTransport.emit).toHaveBeenCalledWith("platform.sdk.MethodCalledEvent", expect.objectContaining({ call_context: "cli" }));
631
+ });
632
+ it("should set call_context to 'mcp' when callContext is 'mcp'", async () => {
633
+ const plugin = eventEmissionPlugin({
634
+ sdk: {},
635
+ context: {
636
+ meta: {},
637
+ options: {
638
+ eventEmission: {
639
+ enabled: true,
640
+ transport: { type: "console" },
641
+ callContext: "mcp",
642
+ },
643
+ },
644
+ },
645
+ });
646
+ plugin.context.eventEmission.emitMethodCalled({
647
+ method_name: "listApps",
648
+ execution_duration_ms: 50,
649
+ success_flag: true,
650
+ argument_count: 0,
651
+ });
652
+ await new Promise((resolve) => setTimeout(resolve, 50));
653
+ expect(mockTransport.emit).toHaveBeenCalledWith("platform.sdk.MethodCalledEvent", expect.objectContaining({ call_context: "mcp" }));
654
+ });
655
+ });
582
656
  describe("Process Listener Cleanup", () => {
583
657
  beforeEach(() => {
584
658
  // Clean up any listeners from previous tests
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zapier/zapier-sdk",
3
- "version": "0.31.2",
3
+ "version": "0.31.3",
4
4
  "description": "Complete Zapier SDK - combines all Zapier SDK packages",
5
5
  "main": "dist/index.cjs",
6
6
  "module": "dist/index.mjs",