@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 +6 -0
- package/dist/index.cjs +6 -2
- package/dist/index.d.mts +1 -0
- package/dist/index.mjs +6 -2
- package/dist/plugins/eventEmission/builders.test.js +9 -0
- package/dist/plugins/eventEmission/index.d.ts +1 -0
- package/dist/plugins/eventEmission/index.d.ts.map +1 -1
- package/dist/plugins/eventEmission/index.js +5 -1
- package/dist/plugins/eventEmission/index.test.js +74 -0
- package/package.json +1 -1
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.
|
|
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 =
|
|
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
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.
|
|
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 =
|
|
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
|
});
|
|
@@ -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;
|
|
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 =
|
|
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
|