svix 1.93.0 → 1.95.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.
- package/dist/api/messageAttempt.js +8 -4
- package/dist/api/messageAttempt.js.map +1 -1
- package/dist/api_internal/endpoint.d.ts +9 -0
- package/dist/api_internal/endpoint.js +23 -0
- package/dist/api_internal/endpoint.js.map +1 -0
- package/dist/api_internal/endpointAutoConfig.d.ts +8 -0
- package/dist/api_internal/endpointAutoConfig.js +20 -0
- package/dist/api_internal/endpointAutoConfig.js.map +1 -0
- package/dist/api_internal/index.d.ts +5 -0
- package/dist/api_internal/index.js +11 -0
- package/dist/api_internal/index.js.map +1 -0
- package/dist/autoconfig.d.ts +18 -0
- package/dist/autoconfig.js +77 -0
- package/dist/autoconfig.js.map +1 -0
- package/dist/index.d.ts +3 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/models/endpointTransformationOut.d.ts +3 -0
- package/dist/models/endpointTransformationOut.js +2 -0
- package/dist/models/endpointTransformationOut.js.map +1 -1
- package/dist/models/endpointTransformationPatch.d.ts +3 -0
- package/dist/models/endpointTransformationPatch.js +2 -0
- package/dist/models/endpointTransformationPatch.js.map +1 -1
- package/dist/models/subscribeIn.d.ts +8 -0
- package/dist/models/subscribeIn.js +17 -0
- package/dist/models/subscribeIn.js.map +1 -0
- package/dist/request.d.ts +1 -1
- package/dist/request.js +1 -1
- package/package.json +2 -2
- package/src/api/messageAttempt.ts +4 -4
- package/src/api_internal/endpoint.ts +40 -0
- package/src/api_internal/endpointAutoConfig.ts +27 -0
- package/src/api_internal/index.ts +8 -0
- package/src/autoconfig.test.ts +51 -0
- package/src/autoconfig.ts +115 -0
- package/src/index.test.ts +1 -0
- package/src/index.ts +4 -1
- package/src/mockttp.test.ts +1 -1
- package/src/models/endpointTransformationOut.ts +3 -0
- package/src/models/endpointTransformationPatch.ts +3 -0
- package/src/models/subscribeIn.ts +20 -0
- package/src/request.ts +1 -1
|
@@ -12,6 +12,7 @@ class MessageAttempt {
|
|
|
12
12
|
this.requestCtx = requestCtx;
|
|
13
13
|
}
|
|
14
14
|
listByEndpoint(appId, endpointId, options) {
|
|
15
|
+
var _a;
|
|
15
16
|
const request = new request_1.SvixRequest(request_1.HttpMethod.GET, "/api/v1/app/{app_id}/attempt/endpoint/{endpoint_id}");
|
|
16
17
|
request.setPathParam("app_id", appId);
|
|
17
18
|
request.setPathParam("endpoint_id", endpointId);
|
|
@@ -26,12 +27,13 @@ class MessageAttempt {
|
|
|
26
27
|
after: options === null || options === void 0 ? void 0 : options.after,
|
|
27
28
|
with_content: options === null || options === void 0 ? void 0 : options.withContent,
|
|
28
29
|
with_msg: options === null || options === void 0 ? void 0 : options.withMsg,
|
|
29
|
-
expanded_statuses: options === null || options === void 0 ? void 0 : options.expandedStatuses,
|
|
30
|
+
expanded_statuses: (_a = options === null || options === void 0 ? void 0 : options.expandedStatuses) !== null && _a !== void 0 ? _a : true,
|
|
30
31
|
event_types: options === null || options === void 0 ? void 0 : options.eventTypes,
|
|
31
32
|
});
|
|
32
33
|
return request.send(this.requestCtx, listResponseMessageAttemptOut_1.ListResponseMessageAttemptOutSerializer._fromJsonObject);
|
|
33
34
|
}
|
|
34
35
|
listByMsg(appId, msgId, options) {
|
|
36
|
+
var _a;
|
|
35
37
|
const request = new request_1.SvixRequest(request_1.HttpMethod.GET, "/api/v1/app/{app_id}/attempt/msg/{msg_id}");
|
|
36
38
|
request.setPathParam("app_id", appId);
|
|
37
39
|
request.setPathParam("msg_id", msgId);
|
|
@@ -46,12 +48,13 @@ class MessageAttempt {
|
|
|
46
48
|
before: options === null || options === void 0 ? void 0 : options.before,
|
|
47
49
|
after: options === null || options === void 0 ? void 0 : options.after,
|
|
48
50
|
with_content: options === null || options === void 0 ? void 0 : options.withContent,
|
|
49
|
-
expanded_statuses: options === null || options === void 0 ? void 0 : options.expandedStatuses,
|
|
51
|
+
expanded_statuses: (_a = options === null || options === void 0 ? void 0 : options.expandedStatuses) !== null && _a !== void 0 ? _a : true,
|
|
50
52
|
event_types: options === null || options === void 0 ? void 0 : options.eventTypes,
|
|
51
53
|
});
|
|
52
54
|
return request.send(this.requestCtx, listResponseMessageAttemptOut_1.ListResponseMessageAttemptOutSerializer._fromJsonObject);
|
|
53
55
|
}
|
|
54
56
|
listAttemptedMessages(appId, endpointId, options) {
|
|
57
|
+
var _a;
|
|
55
58
|
const request = new request_1.SvixRequest(request_1.HttpMethod.GET, "/api/v1/app/{app_id}/endpoint/{endpoint_id}/msg");
|
|
56
59
|
request.setPathParam("app_id", appId);
|
|
57
60
|
request.setPathParam("endpoint_id", endpointId);
|
|
@@ -64,18 +67,19 @@ class MessageAttempt {
|
|
|
64
67
|
before: options === null || options === void 0 ? void 0 : options.before,
|
|
65
68
|
after: options === null || options === void 0 ? void 0 : options.after,
|
|
66
69
|
with_content: options === null || options === void 0 ? void 0 : options.withContent,
|
|
67
|
-
expanded_statuses: options === null || options === void 0 ? void 0 : options.expandedStatuses,
|
|
70
|
+
expanded_statuses: (_a = options === null || options === void 0 ? void 0 : options.expandedStatuses) !== null && _a !== void 0 ? _a : true,
|
|
68
71
|
event_types: options === null || options === void 0 ? void 0 : options.eventTypes,
|
|
69
72
|
});
|
|
70
73
|
return request.send(this.requestCtx, listResponseEndpointMessageOut_1.ListResponseEndpointMessageOutSerializer._fromJsonObject);
|
|
71
74
|
}
|
|
72
75
|
get(appId, msgId, attemptId, options) {
|
|
76
|
+
var _a;
|
|
73
77
|
const request = new request_1.SvixRequest(request_1.HttpMethod.GET, "/api/v1/app/{app_id}/msg/{msg_id}/attempt/{attempt_id}");
|
|
74
78
|
request.setPathParam("app_id", appId);
|
|
75
79
|
request.setPathParam("msg_id", msgId);
|
|
76
80
|
request.setPathParam("attempt_id", attemptId);
|
|
77
81
|
request.setQueryParams({
|
|
78
|
-
expanded_statuses: options === null || options === void 0 ? void 0 : options.expandedStatuses,
|
|
82
|
+
expanded_statuses: (_a = options === null || options === void 0 ? void 0 : options.expandedStatuses) !== null && _a !== void 0 ? _a : true,
|
|
79
83
|
});
|
|
80
84
|
return request.send(this.requestCtx, messageAttemptOut_1.MessageAttemptOutSerializer._fromJsonObject);
|
|
81
85
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"messageAttempt.js","sourceRoot":"","sources":["../../src/api/messageAttempt.ts"],"names":[],"mappings":";;;AAEA,2DAAsF;AACtF,6FAGkD;AAClD,2FAGiD;AACjD,6FAGkD;AAClD,mEAGqC;AAGrC,wCAA8E;AAmG9E,MAAa,cAAc;IACzB,YAAoC,UAA8B;QAA9B,eAAU,GAAV,UAAU,CAAoB;IAAG,CAAC;IAU/D,cAAc,CACnB,KAAa,EACb,UAAkB,EAClB,OAA6C
|
|
1
|
+
{"version":3,"file":"messageAttempt.js","sourceRoot":"","sources":["../../src/api/messageAttempt.ts"],"names":[],"mappings":";;;AAEA,2DAAsF;AACtF,6FAGkD;AAClD,2FAGiD;AACjD,6FAGkD;AAClD,mEAGqC;AAGrC,wCAA8E;AAmG9E,MAAa,cAAc;IACzB,YAAoC,UAA8B;QAA9B,eAAU,GAAV,UAAU,CAAoB;IAAG,CAAC;IAU/D,cAAc,CACnB,KAAa,EACb,UAAkB,EAClB,OAA6C;;QAE7C,MAAM,OAAO,GAAG,IAAI,qBAAW,CAC7B,oBAAU,CAAC,GAAG,EACd,qDAAqD,CACtD,CAAC;QAEF,OAAO,CAAC,YAAY,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QACtC,OAAO,CAAC,YAAY,CAAC,aAAa,EAAE,UAAU,CAAC,CAAC;QAChD,OAAO,CAAC,cAAc,CAAC;YACrB,KAAK,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,KAAK;YACrB,QAAQ,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,QAAQ;YAC3B,MAAM,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,MAAM;YACvB,iBAAiB,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,eAAe;YAC3C,OAAO,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,OAAO;YACzB,GAAG,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,GAAG;YACjB,MAAM,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,MAAM;YACvB,KAAK,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,KAAK;YACrB,YAAY,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,WAAW;YAClC,QAAQ,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,OAAO;YAC1B,iBAAiB,EAAE,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,gBAAgB,mCAAI,IAAI;YACpD,WAAW,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,UAAU;SACjC,CAAC,CAAC;QAEH,OAAO,OAAO,CAAC,IAAI,CACjB,IAAI,CAAC,UAAU,EACf,uEAAuC,CAAC,eAAe,CACxD,CAAC;IACJ,CAAC;IAUM,SAAS,CACd,KAAa,EACb,KAAa,EACb,OAAwC;;QAExC,MAAM,OAAO,GAAG,IAAI,qBAAW,CAC7B,oBAAU,CAAC,GAAG,EACd,2CAA2C,CAC5C,CAAC;QAEF,OAAO,CAAC,YAAY,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QACtC,OAAO,CAAC,YAAY,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QACtC,OAAO,CAAC,cAAc,CAAC;YACrB,KAAK,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,KAAK;YACrB,QAAQ,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,QAAQ;YAC3B,MAAM,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,MAAM;YACvB,iBAAiB,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,eAAe;YAC3C,OAAO,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,OAAO;YACzB,GAAG,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,GAAG;YACjB,WAAW,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,UAAU;YAChC,MAAM,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,MAAM;YACvB,KAAK,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,KAAK;YACrB,YAAY,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,WAAW;YAClC,iBAAiB,EAAE,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,gBAAgB,mCAAI,IAAI;YACpD,WAAW,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,UAAU;SACjC,CAAC,CAAC;QAEH,OAAO,OAAO,CAAC,IAAI,CACjB,IAAI,CAAC,UAAU,EACf,uEAAuC,CAAC,eAAe,CACxD,CAAC;IACJ,CAAC;IAYM,qBAAqB,CAC1B,KAAa,EACb,UAAkB,EAClB,OAAoD;;QAEpD,MAAM,OAAO,GAAG,IAAI,qBAAW,CAC7B,oBAAU,CAAC,GAAG,EACd,iDAAiD,CAClD,CAAC;QAEF,OAAO,CAAC,YAAY,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QACtC,OAAO,CAAC,YAAY,CAAC,aAAa,EAAE,UAAU,CAAC,CAAC;QAChD,OAAO,CAAC,cAAc,CAAC;YACrB,KAAK,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,KAAK;YACrB,QAAQ,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,QAAQ;YAC3B,OAAO,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,OAAO;YACzB,GAAG,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,GAAG;YACjB,MAAM,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,MAAM;YACvB,MAAM,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,MAAM;YACvB,KAAK,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,KAAK;YACrB,YAAY,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,WAAW;YAClC,iBAAiB,EAAE,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,gBAAgB,mCAAI,IAAI;YACpD,WAAW,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,UAAU;SACjC,CAAC,CAAC;QAEH,OAAO,OAAO,CAAC,IAAI,CACjB,IAAI,CAAC,UAAU,EACf,yEAAwC,CAAC,eAAe,CACzD,CAAC;IACJ,CAAC;IAGM,GAAG,CACR,KAAa,EACb,KAAa,EACb,SAAiB,EACjB,OAAkC;;QAElC,MAAM,OAAO,GAAG,IAAI,qBAAW,CAC7B,oBAAU,CAAC,GAAG,EACd,wDAAwD,CACzD,CAAC;QAEF,OAAO,CAAC,YAAY,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QACtC,OAAO,CAAC,YAAY,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QACtC,OAAO,CAAC,YAAY,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC;QAC9C,OAAO,CAAC,cAAc,CAAC;YACrB,iBAAiB,EAAE,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,gBAAgB,mCAAI,IAAI;SACrD,CAAC,CAAC;QAEH,OAAO,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,+CAA2B,CAAC,eAAe,CAAC,CAAC;IACpF,CAAC;IAQM,cAAc,CAAC,KAAa,EAAE,KAAa,EAAE,SAAiB;QACnE,MAAM,OAAO,GAAG,IAAI,qBAAW,CAC7B,oBAAU,CAAC,MAAM,EACjB,gEAAgE,CACjE,CAAC;QAEF,OAAO,CAAC,YAAY,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QACtC,OAAO,CAAC,YAAY,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QACtC,OAAO,CAAC,YAAY,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC;QAE9C,OAAO,OAAO,CAAC,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACrD,CAAC;IAQM,yBAAyB,CAC9B,KAAa,EACb,KAAa,EACb,OAAwD;QAExD,MAAM,OAAO,GAAG,IAAI,qBAAW,CAC7B,oBAAU,CAAC,GAAG,EACd,4CAA4C,CAC7C,CAAC;QAEF,OAAO,CAAC,YAAY,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QACtC,OAAO,CAAC,YAAY,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QACtC,OAAO,CAAC,cAAc,CAAC;YACrB,KAAK,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,KAAK;YACrB,QAAQ,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,QAAQ;SAC5B,CAAC,CAAC;QAEH,OAAO,OAAO,CAAC,IAAI,CACjB,IAAI,CAAC,UAAU,EACf,yEAAwC,CAAC,eAAe,CACzD,CAAC;IACJ,CAAC;IAGM,MAAM,CACX,KAAa,EACb,KAAa,EACb,UAAkB,EAClB,OAAqC;QAErC,MAAM,OAAO,GAAG,IAAI,qBAAW,CAC7B,oBAAU,CAAC,IAAI,EACf,iEAAiE,CAClE,CAAC;QAEF,OAAO,CAAC,YAAY,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QACtC,OAAO,CAAC,YAAY,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QACtC,OAAO,CAAC,YAAY,CAAC,aAAa,EAAE,UAAU,CAAC,CAAC;QAChD,OAAO,CAAC,cAAc,CAAC,iBAAiB,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,cAAc,CAAC,CAAC;QAEnE,OAAO,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,uCAAuB,CAAC,eAAe,CAAC,CAAC;IAChF,CAAC;CACF;AAvND,wCAuNC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { type EndpointTransformationIn } from "../models/endpointTransformationIn";
|
|
2
|
+
import { EndpointAutoConfig } from "./endpointAutoConfig";
|
|
3
|
+
import { type SvixRequestContext } from "../request";
|
|
4
|
+
export declare class Endpoint {
|
|
5
|
+
private readonly requestCtx;
|
|
6
|
+
constructor(requestCtx: SvixRequestContext);
|
|
7
|
+
get auto_config(): EndpointAutoConfig;
|
|
8
|
+
transformationPartialUpdate(appId: string, endpointId: string, endpointTransformationIn: EndpointTransformationIn): Promise<void>;
|
|
9
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Endpoint = void 0;
|
|
4
|
+
const endpointTransformationIn_1 = require("../models/endpointTransformationIn");
|
|
5
|
+
const endpointAutoConfig_1 = require("./endpointAutoConfig");
|
|
6
|
+
const request_1 = require("../request");
|
|
7
|
+
class Endpoint {
|
|
8
|
+
constructor(requestCtx) {
|
|
9
|
+
this.requestCtx = requestCtx;
|
|
10
|
+
}
|
|
11
|
+
get auto_config() {
|
|
12
|
+
return new endpointAutoConfig_1.EndpointAutoConfig(this.requestCtx);
|
|
13
|
+
}
|
|
14
|
+
transformationPartialUpdate(appId, endpointId, endpointTransformationIn) {
|
|
15
|
+
const request = new request_1.SvixRequest(request_1.HttpMethod.PATCH, "/api/v1/app/{app_id}/endpoint/{endpoint_id}/transformation");
|
|
16
|
+
request.setPathParam("app_id", appId);
|
|
17
|
+
request.setPathParam("endpoint_id", endpointId);
|
|
18
|
+
request.setBody(endpointTransformationIn_1.EndpointTransformationInSerializer._toJsonObject(endpointTransformationIn));
|
|
19
|
+
return request.sendNoResponseBody(this.requestCtx);
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
exports.Endpoint = Endpoint;
|
|
23
|
+
//# sourceMappingURL=endpoint.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"endpoint.js","sourceRoot":"","sources":["../../src/api_internal/endpoint.ts"],"names":[],"mappings":";;;AAEA,iFAG4C;AAC5C,6DAA0D;AAC1D,wCAA8E;AAE9E,MAAa,QAAQ;IACnB,YAAoC,UAA8B;QAA9B,eAAU,GAAV,UAAU,CAAoB;IAAG,CAAC;IAEtE,IAAW,WAAW;QACpB,OAAO,IAAI,uCAAkB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACjD,CAAC;IAOM,2BAA2B,CAChC,KAAa,EACb,UAAkB,EAClB,wBAAkD;QAElD,MAAM,OAAO,GAAG,IAAI,qBAAW,CAC7B,oBAAU,CAAC,KAAK,EAChB,4DAA4D,CAC7D,CAAC;QAEF,OAAO,CAAC,YAAY,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QACtC,OAAO,CAAC,YAAY,CAAC,aAAa,EAAE,UAAU,CAAC,CAAC;QAChD,OAAO,CAAC,OAAO,CACb,6DAAkC,CAAC,aAAa,CAAC,wBAAwB,CAAC,CAC3E,CAAC;QAEF,OAAO,OAAO,CAAC,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACrD,CAAC;CACF;AA9BD,4BA8BC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { type EndpointOut } from "../models/endpointOut";
|
|
2
|
+
import { type SubscribeIn } from "../models/subscribeIn";
|
|
3
|
+
import { type SvixRequestContext } from "../request";
|
|
4
|
+
export declare class EndpointAutoConfig {
|
|
5
|
+
private readonly requestCtx;
|
|
6
|
+
constructor(requestCtx: SvixRequestContext);
|
|
7
|
+
update(appId: string, endpointId: string, subscribeIn: SubscribeIn): Promise<EndpointOut>;
|
|
8
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.EndpointAutoConfig = void 0;
|
|
4
|
+
const endpointOut_1 = require("../models/endpointOut");
|
|
5
|
+
const subscribeIn_1 = require("../models/subscribeIn");
|
|
6
|
+
const request_1 = require("../request");
|
|
7
|
+
class EndpointAutoConfig {
|
|
8
|
+
constructor(requestCtx) {
|
|
9
|
+
this.requestCtx = requestCtx;
|
|
10
|
+
}
|
|
11
|
+
update(appId, endpointId, subscribeIn) {
|
|
12
|
+
const request = new request_1.SvixRequest(request_1.HttpMethod.PUT, "/api/v1/app/{app_id}/endpoint/{endpoint_id}/auto-config");
|
|
13
|
+
request.setPathParam("app_id", appId);
|
|
14
|
+
request.setPathParam("endpoint_id", endpointId);
|
|
15
|
+
request.setBody(subscribeIn_1.SubscribeInSerializer._toJsonObject(subscribeIn));
|
|
16
|
+
return request.send(this.requestCtx, endpointOut_1.EndpointOutSerializer._fromJsonObject);
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
exports.EndpointAutoConfig = EndpointAutoConfig;
|
|
20
|
+
//# sourceMappingURL=endpointAutoConfig.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"endpointAutoConfig.js","sourceRoot":"","sources":["../../src/api_internal/endpointAutoConfig.ts"],"names":[],"mappings":";;;AAEA,uDAAgF;AAChF,uDAAgF;AAChF,wCAA8E;AAE9E,MAAa,kBAAkB;IAC7B,YAAoC,UAA8B;QAA9B,eAAU,GAAV,UAAU,CAAoB;IAAG,CAAC;IAG/D,MAAM,CACX,KAAa,EACb,UAAkB,EAClB,WAAwB;QAExB,MAAM,OAAO,GAAG,IAAI,qBAAW,CAC7B,oBAAU,CAAC,GAAG,EACd,yDAAyD,CAC1D,CAAC;QAEF,OAAO,CAAC,YAAY,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QACtC,OAAO,CAAC,YAAY,CAAC,aAAa,EAAE,UAAU,CAAC,CAAC;QAChD,OAAO,CAAC,OAAO,CAAC,mCAAqB,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC,CAAC;QAElE,OAAO,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,mCAAqB,CAAC,eAAe,CAAC,CAAC;IAC9E,CAAC;CACF;AApBD,gDAoBC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SvixInternal = void 0;
|
|
4
|
+
const __1 = require("..");
|
|
5
|
+
class SvixInternal extends __1.Svix {
|
|
6
|
+
getRequestCtx() {
|
|
7
|
+
return this.requestCtx;
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
exports.SvixInternal = SvixInternal;
|
|
11
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/api_internal/index.ts"],"names":[],"mappings":";;;AAAA,0BAA0B;AAG1B,MAAa,YAAa,SAAQ,QAAI;IAC7B,aAAa;QAClB,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;CACF;AAJD,oCAIC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/// <reference types="node" />
|
|
2
|
+
/// <reference types="node" />
|
|
3
|
+
import type { EndpointIn } from "./models/endpointIn";
|
|
4
|
+
import type { EndpointOut } from "./models/endpointOut";
|
|
5
|
+
import { type WebhookRequiredHeaders, type WebhookUnbrandedRequiredHeaders } from "./webhook";
|
|
6
|
+
export declare class AutoConfigError extends Error {
|
|
7
|
+
constructor(message?: string);
|
|
8
|
+
}
|
|
9
|
+
export declare class AutoConfig {
|
|
10
|
+
private readonly appId;
|
|
11
|
+
private readonly endpointId;
|
|
12
|
+
private readonly endpointIn;
|
|
13
|
+
private readonly webhook;
|
|
14
|
+
private readonly requestCtx;
|
|
15
|
+
constructor(token: string, endpoint: EndpointIn);
|
|
16
|
+
subscribe(): Promise<EndpointOut>;
|
|
17
|
+
verify(payload: string | Buffer, headers: WebhookRequiredHeaders | WebhookUnbrandedRequiredHeaders | Record<string, string>): unknown;
|
|
18
|
+
}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.AutoConfig = exports.AutoConfigError = void 0;
|
|
4
|
+
const api_internal_1 = require("./api_internal");
|
|
5
|
+
const endpoint_1 = require("./api_internal/endpoint");
|
|
6
|
+
const webhook_1 = require("./webhook");
|
|
7
|
+
const AUTOCONFIG_TOKEN_PREFIX_V1 = "auto_v1_";
|
|
8
|
+
class AutoConfigError extends Error {
|
|
9
|
+
constructor(message = "invalid token") {
|
|
10
|
+
super(message);
|
|
11
|
+
this.name = "AutoConfigError";
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
exports.AutoConfigError = AutoConfigError;
|
|
15
|
+
function isAutoConfigTokenContentV1(value) {
|
|
16
|
+
if (typeof value !== "object" || value === null) {
|
|
17
|
+
return false;
|
|
18
|
+
}
|
|
19
|
+
const { aid, eid, surl, esec, tok } = value;
|
|
20
|
+
return (typeof aid === "string" &&
|
|
21
|
+
typeof eid === "string" &&
|
|
22
|
+
typeof surl === "string" &&
|
|
23
|
+
typeof esec === "string" &&
|
|
24
|
+
typeof tok === "string");
|
|
25
|
+
}
|
|
26
|
+
function decodeAutoconfigTokenV1(token) {
|
|
27
|
+
if (!token.startsWith(AUTOCONFIG_TOKEN_PREFIX_V1)) {
|
|
28
|
+
throw new AutoConfigError();
|
|
29
|
+
}
|
|
30
|
+
const b64 = token.slice(AUTOCONFIG_TOKEN_PREFIX_V1.length);
|
|
31
|
+
let json;
|
|
32
|
+
try {
|
|
33
|
+
json = Buffer.from(b64, "base64").toString("utf8");
|
|
34
|
+
}
|
|
35
|
+
catch (_a) {
|
|
36
|
+
throw new AutoConfigError();
|
|
37
|
+
}
|
|
38
|
+
let parsed;
|
|
39
|
+
try {
|
|
40
|
+
parsed = JSON.parse(json);
|
|
41
|
+
}
|
|
42
|
+
catch (_b) {
|
|
43
|
+
throw new AutoConfigError();
|
|
44
|
+
}
|
|
45
|
+
if (!isAutoConfigTokenContentV1(parsed)) {
|
|
46
|
+
throw new AutoConfigError();
|
|
47
|
+
}
|
|
48
|
+
return parsed;
|
|
49
|
+
}
|
|
50
|
+
class AutoConfig {
|
|
51
|
+
constructor(token, endpoint) {
|
|
52
|
+
const content = decodeAutoconfigTokenV1(token);
|
|
53
|
+
let webhook;
|
|
54
|
+
try {
|
|
55
|
+
webhook = new webhook_1.Webhook(content.esec);
|
|
56
|
+
}
|
|
57
|
+
catch (_a) {
|
|
58
|
+
throw new AutoConfigError();
|
|
59
|
+
}
|
|
60
|
+
this.appId = content.aid;
|
|
61
|
+
this.endpointId = content.eid;
|
|
62
|
+
this.endpointIn = endpoint;
|
|
63
|
+
this.webhook = webhook;
|
|
64
|
+
const svix = new api_internal_1.SvixInternal(content.tok, { serverUrl: content.surl });
|
|
65
|
+
this.requestCtx = svix.getRequestCtx();
|
|
66
|
+
}
|
|
67
|
+
subscribe() {
|
|
68
|
+
return new endpoint_1.Endpoint(this.requestCtx).auto_config.update(this.appId, this.endpointId, {
|
|
69
|
+
endpoint: this.endpointIn,
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
verify(payload, headers) {
|
|
73
|
+
return this.webhook.verify(payload, headers);
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
exports.AutoConfig = AutoConfig;
|
|
77
|
+
//# sourceMappingURL=autoconfig.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"autoconfig.js","sourceRoot":"","sources":["../src/autoconfig.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -14,6 +14,7 @@ import { OperationalWebhook } from "./api/operationalWebhook";
|
|
|
14
14
|
import { Statistics } from "./api/statistics";
|
|
15
15
|
import { Streaming } from "./api/streaming";
|
|
16
16
|
import { OperationalWebhookEndpoint } from "./api/operationalWebhookEndpoint";
|
|
17
|
+
import type { SvixRequestContext } from "./request";
|
|
17
18
|
export { type PostOptions, ApiException } from "./util";
|
|
18
19
|
export { HTTPValidationError, HttpErrorOut, ValidationError } from "./HttpErrors";
|
|
19
20
|
export * from "./webhook";
|
|
@@ -38,7 +39,7 @@ export type SvixOptions = {
|
|
|
38
39
|
numRetries?: number;
|
|
39
40
|
}>;
|
|
40
41
|
export declare class Svix {
|
|
41
|
-
|
|
42
|
+
protected readonly requestCtx: SvixRequestContext;
|
|
42
43
|
constructor(token: string, options?: SvixOptions);
|
|
43
44
|
get application(): Application;
|
|
44
45
|
get authentication(): Authentication;
|
|
@@ -57,3 +58,4 @@ export declare class Svix {
|
|
|
57
58
|
get streaming(): Streaming;
|
|
58
59
|
get operationalWebhookEndpoint(): OperationalWebhookEndpoint;
|
|
59
60
|
}
|
|
61
|
+
export * from "./autoconfig";
|
package/dist/index.js
CHANGED
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AACA,mDAAgD;AAChD,yDAAsD;AACtD,yDAAsD;AACtD,+CAA4C;AAC5C,6CAA0C;AAC1C,mDAAgD;AAChD,+CAA4C;AAC5C,yCAAsC;AACtC,yCAAsC;AACtC,mDAAgD;AAChD,2CAAwC;AACxC,yDAAsD;AACtD,iEAA8D;AAC9D,iDAA8C;AAC9C,+CAA4C;AAC5C,iFAA8E;AAG9E,+BAAwD;AAA7B,oGAAA,YAAY,OAAA;AACvC,2CAAkF;AAAzE,iHAAA,mBAAmB,OAAA;AAAE,0GAAA,YAAY,OAAA;AAAE,6GAAA,eAAe,OAAA;AAC3D,4CAA0B;AAC1B,iDAA+B;AAQ/B,yCAAsE;AAApC,uGAAA,YAAY,OAAA;AA4B9C,MAAM,OAAO,GAAG;IACd,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,yBAAyB,EAAE;IAChD,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,yBAAyB,EAAE;IAChD,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,yBAAyB,EAAE;IAChD,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,yBAAyB,EAAE;IAChD,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,yBAAyB,EAAE;CACjD,CAAC;AAEF,MAAa,IAAI;IAGf,YAAmB,KAAa,EAAE,UAAuB,EAAE;;QACzD,MAAM,WAAW,GAAG,MAAA,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,0CAAE,GAAG,CAAC;QAC/E,MAAM,OAAO,GAAW,MAAA,MAAA,OAAO,CAAC,SAAS,mCAAI,WAAW,mCAAI,sBAAsB,CAAC;QAEnF,IAAI,OAAO,CAAC,iBAAiB,EAAE;YAC7B,IAAI,CAAC,UAAU,GAAG;gBAChB,OAAO;gBACP,KAAK;gBACL,OAAO,EAAE,OAAO,CAAC,cAAc;gBAC/B,iBAAiB,EAAE,OAAO,CAAC,iBAAiB;gBAC5C,KAAK,EAAE,OAAO,CAAC,KAAK;aACrB,CAAC;YACF,OAAO;SACR;QACD,IAAI,OAAO,CAAC,UAAU,EAAE;YACtB,IAAI,CAAC,UAAU,GAAG;gBAChB,OAAO;gBACP,KAAK;gBACL,OAAO,EAAE,OAAO,CAAC,cAAc;gBAC/B,UAAU,EAAE,OAAO,CAAC,UAAU;gBAC9B,KAAK,EAAE,OAAO,CAAC,KAAK;aACrB,CAAC;YACF,OAAO;SACR;QACD,IAAI,CAAC,UAAU,GAAG;YAChB,OAAO;YACP,KAAK;YACL,OAAO,EAAE,OAAO,CAAC,cAAc;YAC/B,KAAK,EAAE,OAAO,CAAC,KAAK;SACrB,CAAC;IACJ,CAAC;IAED,IAAW,WAAW;QACpB,OAAO,IAAI,yBAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC1C,CAAC;IAED,IAAW,cAAc;QACvB,OAAO,IAAI,+BAAc,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC7C,CAAC;IAED,IAAW,cAAc;QACvB,OAAO,IAAI,+BAAc,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC7C,CAAC;IAED,IAAW,SAAS;QAClB,OAAO,IAAI,qBAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACxC,CAAC;IAED,IAAW,QAAQ;QACjB,OAAO,IAAI,mBAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACvC,CAAC;IAED,IAAW,WAAW;QACpB,OAAO,IAAI,yBAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC1C,CAAC;IAED,IAAW,SAAS;QAClB,OAAO,IAAI,qBAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACxC,CAAC;IAED,IAAW,MAAM;QACf,OAAO,IAAI,eAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACrC,CAAC;IAED,IAAW,MAAM;QACf,OAAO,IAAI,eAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACrC,CAAC;IAED,IAAW,WAAW;QACpB,OAAO,IAAI,yBAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC1C,CAAC;IAED,IAAW,OAAO;QAChB,OAAO,IAAI,iBAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACtC,CAAC;IAED,IAAW,cAAc;QACvB,OAAO,IAAI,+BAAc,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC7C,CAAC;IAED,IAAW,kBAAkB;QAC3B,OAAO,IAAI,uCAAkB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACjD,CAAC;IAED,IAAW,UAAU;QACnB,OAAO,IAAI,uBAAU,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACzC,CAAC;IAED,IAAW,SAAS;QAClB,OAAO,IAAI,qBAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACxC,CAAC;IAED,IAAW,0BAA0B;QACnC,OAAO,IAAI,uDAA0B,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACzD,CAAC;CACF;AAlGD,oBAkGC;AAGD,+CAA6B"}
|
|
@@ -2,6 +2,9 @@ export interface EndpointTransformationOut {
|
|
|
2
2
|
code?: string | null;
|
|
3
3
|
enabled?: boolean;
|
|
4
4
|
updatedAt?: Date | null;
|
|
5
|
+
variables?: {
|
|
6
|
+
[key: string]: string;
|
|
7
|
+
} | null;
|
|
5
8
|
}
|
|
6
9
|
export declare const EndpointTransformationOutSerializer: {
|
|
7
10
|
_fromJsonObject(object: any): EndpointTransformationOut;
|
|
@@ -7,6 +7,7 @@ exports.EndpointTransformationOutSerializer = {
|
|
|
7
7
|
code: object["code"],
|
|
8
8
|
enabled: object["enabled"],
|
|
9
9
|
updatedAt: object["updatedAt"] ? new Date(object["updatedAt"]) : null,
|
|
10
|
+
variables: object["variables"],
|
|
10
11
|
};
|
|
11
12
|
},
|
|
12
13
|
_toJsonObject(self) {
|
|
@@ -14,6 +15,7 @@ exports.EndpointTransformationOutSerializer = {
|
|
|
14
15
|
code: self.code,
|
|
15
16
|
enabled: self.enabled,
|
|
16
17
|
updatedAt: self.updatedAt,
|
|
18
|
+
variables: self.variables,
|
|
17
19
|
};
|
|
18
20
|
},
|
|
19
21
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"endpointTransformationOut.js","sourceRoot":"","sources":["../../src/models/endpointTransformationOut.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"endpointTransformationOut.js","sourceRoot":"","sources":["../../src/models/endpointTransformationOut.ts"],"names":[],"mappings":";;;AASa,QAAA,mCAAmC,GAAG;IACjD,eAAe,CAAC,MAAW;QACzB,OAAO;YACL,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC;YACpB,OAAO,EAAE,MAAM,CAAC,SAAS,CAAC;YAC1B,SAAS,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI;YACrE,SAAS,EAAE,MAAM,CAAC,WAAW,CAAC;SAC/B,CAAC;IACJ,CAAC;IAED,aAAa,CAAC,IAA+B;QAC3C,OAAO;YACL,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,SAAS,EAAE,IAAI,CAAC,SAAS;SAC1B,CAAC;IACJ,CAAC;CACF,CAAC"}
|
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
export interface EndpointTransformationPatch {
|
|
2
2
|
code?: string | null;
|
|
3
3
|
enabled?: boolean;
|
|
4
|
+
variables?: {
|
|
5
|
+
[key: string]: string;
|
|
6
|
+
} | null;
|
|
4
7
|
}
|
|
5
8
|
export declare const EndpointTransformationPatchSerializer: {
|
|
6
9
|
_fromJsonObject(object: any): EndpointTransformationPatch;
|
|
@@ -6,12 +6,14 @@ exports.EndpointTransformationPatchSerializer = {
|
|
|
6
6
|
return {
|
|
7
7
|
code: object["code"],
|
|
8
8
|
enabled: object["enabled"],
|
|
9
|
+
variables: object["variables"],
|
|
9
10
|
};
|
|
10
11
|
},
|
|
11
12
|
_toJsonObject(self) {
|
|
12
13
|
return {
|
|
13
14
|
code: self.code,
|
|
14
15
|
enabled: self.enabled,
|
|
16
|
+
variables: self.variables,
|
|
15
17
|
};
|
|
16
18
|
},
|
|
17
19
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"endpointTransformationPatch.js","sourceRoot":"","sources":["../../src/models/endpointTransformationPatch.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"endpointTransformationPatch.js","sourceRoot":"","sources":["../../src/models/endpointTransformationPatch.ts"],"names":[],"mappings":";;;AAQa,QAAA,qCAAqC,GAAG;IACnD,eAAe,CAAC,MAAW;QACzB,OAAO;YACL,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC;YACpB,OAAO,EAAE,MAAM,CAAC,SAAS,CAAC;YAC1B,SAAS,EAAE,MAAM,CAAC,WAAW,CAAC;SAC/B,CAAC;IACJ,CAAC;IAED,aAAa,CAAC,IAAiC;QAC7C,OAAO;YACL,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,SAAS,EAAE,IAAI,CAAC,SAAS;SAC1B,CAAC;IACJ,CAAC;CACF,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SubscribeInSerializer = void 0;
|
|
4
|
+
const endpointIn_1 = require("./endpointIn");
|
|
5
|
+
exports.SubscribeInSerializer = {
|
|
6
|
+
_fromJsonObject(object) {
|
|
7
|
+
return {
|
|
8
|
+
endpoint: endpointIn_1.EndpointInSerializer._fromJsonObject(object["endpoint"]),
|
|
9
|
+
};
|
|
10
|
+
},
|
|
11
|
+
_toJsonObject(self) {
|
|
12
|
+
return {
|
|
13
|
+
endpoint: endpointIn_1.EndpointInSerializer._toJsonObject(self.endpoint),
|
|
14
|
+
};
|
|
15
|
+
},
|
|
16
|
+
};
|
|
17
|
+
//# sourceMappingURL=subscribeIn.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"subscribeIn.js","sourceRoot":"","sources":["../../src/models/subscribeIn.ts"],"names":[],"mappings":";;;AACA,6CAAqE;AAMxD,QAAA,qBAAqB,GAAG;IACnC,eAAe,CAAC,MAAW;QACzB,OAAO;YACL,QAAQ,EAAE,iCAAoB,CAAC,eAAe,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;SACnE,CAAC;IACJ,CAAC;IAED,aAAa,CAAC,IAAiB;QAC7B,OAAO;YACL,QAAQ,EAAE,iCAAoB,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC;SAC5D,CAAC;IACJ,CAAC;CACF,CAAC"}
|
package/dist/request.d.ts
CHANGED
package/dist/request.js
CHANGED
|
@@ -11,7 +11,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
12
|
exports.SvixRequest = exports.HttpMethod = exports.LIB_VERSION = void 0;
|
|
13
13
|
const util_1 = require("./util");
|
|
14
|
-
exports.LIB_VERSION = "1.
|
|
14
|
+
exports.LIB_VERSION = "1.95.0";
|
|
15
15
|
const USER_AGENT = `svix-libs/${exports.LIB_VERSION}/javascript`;
|
|
16
16
|
var HttpMethod;
|
|
17
17
|
(function (HttpMethod) {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "svix",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.95.0",
|
|
4
4
|
"description": "Svix webhooks API client and webhook verification library",
|
|
5
5
|
"author": "svix",
|
|
6
6
|
"repository": "https://github.com/svix/svix-webhooks",
|
|
@@ -33,7 +33,7 @@
|
|
|
33
33
|
"devDependencies": {
|
|
34
34
|
"@biomejs/biome": "2.2.4",
|
|
35
35
|
"@stablelib/utf8": "^2.0.0",
|
|
36
|
-
"mockttp": "^
|
|
36
|
+
"mockttp": "^4.4.1",
|
|
37
37
|
"typescript": "^4.0"
|
|
38
38
|
}
|
|
39
39
|
}
|
|
@@ -152,7 +152,7 @@ export class MessageAttempt {
|
|
|
152
152
|
after: options?.after,
|
|
153
153
|
with_content: options?.withContent,
|
|
154
154
|
with_msg: options?.withMsg,
|
|
155
|
-
expanded_statuses: options?.expandedStatuses,
|
|
155
|
+
expanded_statuses: options?.expandedStatuses ?? true,
|
|
156
156
|
event_types: options?.eventTypes,
|
|
157
157
|
});
|
|
158
158
|
|
|
@@ -193,7 +193,7 @@ export class MessageAttempt {
|
|
|
193
193
|
before: options?.before,
|
|
194
194
|
after: options?.after,
|
|
195
195
|
with_content: options?.withContent,
|
|
196
|
-
expanded_statuses: options?.expandedStatuses,
|
|
196
|
+
expanded_statuses: options?.expandedStatuses ?? true,
|
|
197
197
|
event_types: options?.eventTypes,
|
|
198
198
|
});
|
|
199
199
|
|
|
@@ -234,7 +234,7 @@ export class MessageAttempt {
|
|
|
234
234
|
before: options?.before,
|
|
235
235
|
after: options?.after,
|
|
236
236
|
with_content: options?.withContent,
|
|
237
|
-
expanded_statuses: options?.expandedStatuses,
|
|
237
|
+
expanded_statuses: options?.expandedStatuses ?? true,
|
|
238
238
|
event_types: options?.eventTypes,
|
|
239
239
|
});
|
|
240
240
|
|
|
@@ -260,7 +260,7 @@ export class MessageAttempt {
|
|
|
260
260
|
request.setPathParam("msg_id", msgId);
|
|
261
261
|
request.setPathParam("attempt_id", attemptId);
|
|
262
262
|
request.setQueryParams({
|
|
263
|
-
expanded_statuses: options?.expandedStatuses,
|
|
263
|
+
expanded_statuses: options?.expandedStatuses ?? true,
|
|
264
264
|
});
|
|
265
265
|
|
|
266
266
|
return request.send(this.requestCtx, MessageAttemptOutSerializer._fromJsonObject);
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
// this file is @generated
|
|
2
|
+
|
|
3
|
+
import {
|
|
4
|
+
type EndpointTransformationIn,
|
|
5
|
+
EndpointTransformationInSerializer,
|
|
6
|
+
} from "../models/endpointTransformationIn";
|
|
7
|
+
import { EndpointAutoConfig } from "./endpointAutoConfig";
|
|
8
|
+
import { HttpMethod, SvixRequest, type SvixRequestContext } from "../request";
|
|
9
|
+
|
|
10
|
+
export class Endpoint {
|
|
11
|
+
public constructor(private readonly requestCtx: SvixRequestContext) {}
|
|
12
|
+
|
|
13
|
+
public get auto_config() {
|
|
14
|
+
return new EndpointAutoConfig(this.requestCtx);
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* This operation was renamed to `set-transformation`.
|
|
19
|
+
*
|
|
20
|
+
* @deprecated
|
|
21
|
+
*/
|
|
22
|
+
public transformationPartialUpdate(
|
|
23
|
+
appId: string,
|
|
24
|
+
endpointId: string,
|
|
25
|
+
endpointTransformationIn: EndpointTransformationIn
|
|
26
|
+
): Promise<void> {
|
|
27
|
+
const request = new SvixRequest(
|
|
28
|
+
HttpMethod.PATCH,
|
|
29
|
+
"/api/v1/app/{app_id}/endpoint/{endpoint_id}/transformation"
|
|
30
|
+
);
|
|
31
|
+
|
|
32
|
+
request.setPathParam("app_id", appId);
|
|
33
|
+
request.setPathParam("endpoint_id", endpointId);
|
|
34
|
+
request.setBody(
|
|
35
|
+
EndpointTransformationInSerializer._toJsonObject(endpointTransformationIn)
|
|
36
|
+
);
|
|
37
|
+
|
|
38
|
+
return request.sendNoResponseBody(this.requestCtx);
|
|
39
|
+
}
|
|
40
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
// this file is @generated
|
|
2
|
+
|
|
3
|
+
import { type EndpointOut, EndpointOutSerializer } from "../models/endpointOut";
|
|
4
|
+
import { type SubscribeIn, SubscribeInSerializer } from "../models/subscribeIn";
|
|
5
|
+
import { HttpMethod, SvixRequest, type SvixRequestContext } from "../request";
|
|
6
|
+
|
|
7
|
+
export class EndpointAutoConfig {
|
|
8
|
+
public constructor(private readonly requestCtx: SvixRequestContext) {}
|
|
9
|
+
|
|
10
|
+
/** Update an auto-config endpoint by providing endpoint details. */
|
|
11
|
+
public update(
|
|
12
|
+
appId: string,
|
|
13
|
+
endpointId: string,
|
|
14
|
+
subscribeIn: SubscribeIn
|
|
15
|
+
): Promise<EndpointOut> {
|
|
16
|
+
const request = new SvixRequest(
|
|
17
|
+
HttpMethod.PUT,
|
|
18
|
+
"/api/v1/app/{app_id}/endpoint/{endpoint_id}/auto-config"
|
|
19
|
+
);
|
|
20
|
+
|
|
21
|
+
request.setPathParam("app_id", appId);
|
|
22
|
+
request.setPathParam("endpoint_id", endpointId);
|
|
23
|
+
request.setBody(SubscribeInSerializer._toJsonObject(subscribeIn));
|
|
24
|
+
|
|
25
|
+
return request.send(this.requestCtx, EndpointOutSerializer._fromJsonObject);
|
|
26
|
+
}
|
|
27
|
+
}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { test } from "node:test";
|
|
2
|
+
import { strict as assert } from "node:assert/strict";
|
|
3
|
+
|
|
4
|
+
import { AutoConfig, AutoConfigError, Webhook } from "./index";
|
|
5
|
+
|
|
6
|
+
function makeTokenV1(payload: Record<string, string>): string {
|
|
7
|
+
const json = JSON.stringify(payload);
|
|
8
|
+
return `auto_v1_${Buffer.from(json, "utf8").toString("base64")}`;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
test("AutoConfig accepts valid auto_v1 token and verify matches Webhook", () => {
|
|
12
|
+
const esec = "whsec_Zm9v";
|
|
13
|
+
const token = makeTokenV1({
|
|
14
|
+
aid: "app_1",
|
|
15
|
+
eid: "ep_2",
|
|
16
|
+
surl: "https://api.example.test",
|
|
17
|
+
esec,
|
|
18
|
+
tok: "sk_test_xyz",
|
|
19
|
+
});
|
|
20
|
+
const ac = new AutoConfig(token, { url: "https://consumer.example/webhook" });
|
|
21
|
+
|
|
22
|
+
const payload = '{"hello":"world"}';
|
|
23
|
+
const id = "msg_test_autoconfig";
|
|
24
|
+
const ts = new Date();
|
|
25
|
+
const wh = new Webhook(esec);
|
|
26
|
+
const sig = wh.sign(id, ts, payload);
|
|
27
|
+
const headers = {
|
|
28
|
+
"svix-id": id,
|
|
29
|
+
"svix-timestamp": Math.floor(ts.getTime() / 1000).toString(),
|
|
30
|
+
"svix-signature": sig,
|
|
31
|
+
};
|
|
32
|
+
|
|
33
|
+
ac.verify(payload, headers);
|
|
34
|
+
});
|
|
35
|
+
|
|
36
|
+
test("AutoConfig rejects wrong prefix", () => {
|
|
37
|
+
const json = JSON.stringify({
|
|
38
|
+
aid: "a",
|
|
39
|
+
eid: "e",
|
|
40
|
+
surl: "https://x",
|
|
41
|
+
esec: "whsec_Zm9v",
|
|
42
|
+
tok: "t",
|
|
43
|
+
});
|
|
44
|
+
const token = `wrong_${Buffer.from(json, "utf8").toString("base64")}`;
|
|
45
|
+
assert.throws(() => new AutoConfig(token, { url: "https://x" }), AutoConfigError);
|
|
46
|
+
});
|
|
47
|
+
|
|
48
|
+
test("AutoConfig rejects invalid JSON payload", () => {
|
|
49
|
+
const token = `auto_v1_${Buffer.from("not json", "utf8").toString("base64")}`;
|
|
50
|
+
assert.throws(() => new AutoConfig(token, { url: "https://x" }), AutoConfigError);
|
|
51
|
+
});
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
import { SvixInternal } from "./api_internal";
|
|
2
|
+
import { Endpoint as InternalEndpoint } from "./api_internal/endpoint";
|
|
3
|
+
import type { EndpointIn } from "./models/endpointIn";
|
|
4
|
+
import type { EndpointOut } from "./models/endpointOut";
|
|
5
|
+
import type { SvixRequestContext } from "./request";
|
|
6
|
+
import {
|
|
7
|
+
Webhook,
|
|
8
|
+
type WebhookRequiredHeaders,
|
|
9
|
+
type WebhookUnbrandedRequiredHeaders,
|
|
10
|
+
} from "./webhook";
|
|
11
|
+
|
|
12
|
+
const AUTOCONFIG_TOKEN_PREFIX_V1 = "auto_v1_";
|
|
13
|
+
|
|
14
|
+
interface AutoConfigTokenContentV1 {
|
|
15
|
+
aid: string;
|
|
16
|
+
eid: string;
|
|
17
|
+
surl: string;
|
|
18
|
+
esec: string;
|
|
19
|
+
tok: string;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
export class AutoConfigError extends Error {
|
|
23
|
+
public constructor(message = "invalid token") {
|
|
24
|
+
super(message);
|
|
25
|
+
this.name = "AutoConfigError";
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
function isAutoConfigTokenContentV1(value: unknown): value is AutoConfigTokenContentV1 {
|
|
30
|
+
if (typeof value !== "object" || value === null) {
|
|
31
|
+
return false;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
const { aid, eid, surl, esec, tok } = value as AutoConfigTokenContentV1;
|
|
35
|
+
return (
|
|
36
|
+
typeof aid === "string" &&
|
|
37
|
+
typeof eid === "string" &&
|
|
38
|
+
typeof surl === "string" &&
|
|
39
|
+
typeof esec === "string" &&
|
|
40
|
+
typeof tok === "string"
|
|
41
|
+
);
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
function decodeAutoconfigTokenV1(token: string): AutoConfigTokenContentV1 {
|
|
45
|
+
if (!token.startsWith(AUTOCONFIG_TOKEN_PREFIX_V1)) {
|
|
46
|
+
throw new AutoConfigError();
|
|
47
|
+
}
|
|
48
|
+
const b64 = token.slice(AUTOCONFIG_TOKEN_PREFIX_V1.length);
|
|
49
|
+
let json: string;
|
|
50
|
+
|
|
51
|
+
try {
|
|
52
|
+
json = Buffer.from(b64, "base64").toString("utf8");
|
|
53
|
+
} catch {
|
|
54
|
+
throw new AutoConfigError();
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
let parsed: unknown;
|
|
58
|
+
try {
|
|
59
|
+
parsed = JSON.parse(json);
|
|
60
|
+
} catch {
|
|
61
|
+
throw new AutoConfigError();
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
if (!isAutoConfigTokenContentV1(parsed)) {
|
|
65
|
+
throw new AutoConfigError();
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
return parsed;
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
export class AutoConfig {
|
|
72
|
+
private readonly appId: string;
|
|
73
|
+
private readonly endpointId: string;
|
|
74
|
+
private readonly endpointIn: EndpointIn;
|
|
75
|
+
private readonly webhook: Webhook;
|
|
76
|
+
private readonly requestCtx: SvixRequestContext;
|
|
77
|
+
|
|
78
|
+
public constructor(token: string, endpoint: EndpointIn) {
|
|
79
|
+
const content = decodeAutoconfigTokenV1(token);
|
|
80
|
+
let webhook: Webhook;
|
|
81
|
+
try {
|
|
82
|
+
webhook = new Webhook(content.esec);
|
|
83
|
+
} catch {
|
|
84
|
+
throw new AutoConfigError();
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
this.appId = content.aid;
|
|
88
|
+
this.endpointId = content.eid;
|
|
89
|
+
this.endpointIn = endpoint;
|
|
90
|
+
this.webhook = webhook;
|
|
91
|
+
|
|
92
|
+
const svix = new SvixInternal(content.tok, { serverUrl: content.surl });
|
|
93
|
+
this.requestCtx = svix.getRequestCtx();
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
public subscribe(): Promise<EndpointOut> {
|
|
97
|
+
return new InternalEndpoint(this.requestCtx).auto_config.update(
|
|
98
|
+
this.appId,
|
|
99
|
+
this.endpointId,
|
|
100
|
+
{
|
|
101
|
+
endpoint: this.endpointIn,
|
|
102
|
+
}
|
|
103
|
+
);
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
public verify(
|
|
107
|
+
payload: string | Buffer,
|
|
108
|
+
headers:
|
|
109
|
+
| WebhookRequiredHeaders
|
|
110
|
+
| WebhookUnbrandedRequiredHeaders
|
|
111
|
+
| Record<string, string>
|
|
112
|
+
): unknown {
|
|
113
|
+
return this.webhook.verify(payload, headers);
|
|
114
|
+
}
|
|
115
|
+
}
|
package/src/index.test.ts
CHANGED
package/src/index.ts
CHANGED
|
@@ -65,7 +65,7 @@ const REGIONS = [
|
|
|
65
65
|
];
|
|
66
66
|
|
|
67
67
|
export class Svix {
|
|
68
|
-
|
|
68
|
+
protected readonly requestCtx: SvixRequestContext;
|
|
69
69
|
|
|
70
70
|
public constructor(token: string, options: SvixOptions = {}) {
|
|
71
71
|
const regionalUrl = REGIONS.find((x) => x.region === token.split(".")[1])?.url;
|
|
@@ -163,3 +163,6 @@ export class Svix {
|
|
|
163
163
|
return new OperationalWebhookEndpoint(this.requestCtx);
|
|
164
164
|
}
|
|
165
165
|
}
|
|
166
|
+
|
|
167
|
+
// Last to avoid circular dependency
|
|
168
|
+
export * from "./autoconfig";
|
package/src/mockttp.test.ts
CHANGED
|
@@ -36,7 +36,7 @@ test("mockttp tests", async (t) => {
|
|
|
36
36
|
});
|
|
37
37
|
const requests = await endpointMock.getSeenRequests();
|
|
38
38
|
assert.equal(requests.length, 1);
|
|
39
|
-
assert(requests[0].url.
|
|
39
|
+
assert(requests[0].url.includes("before=2025-02-16T21%3A38%3A21.977Z"));
|
|
40
40
|
});
|
|
41
41
|
|
|
42
42
|
await t.test("test Date request body", async () => {
|
|
@@ -4,6 +4,7 @@ export interface EndpointTransformationOut {
|
|
|
4
4
|
code?: string | null;
|
|
5
5
|
enabled?: boolean;
|
|
6
6
|
updatedAt?: Date | null;
|
|
7
|
+
variables?: { [key: string]: string } | null;
|
|
7
8
|
}
|
|
8
9
|
|
|
9
10
|
export const EndpointTransformationOutSerializer = {
|
|
@@ -12,6 +13,7 @@ export const EndpointTransformationOutSerializer = {
|
|
|
12
13
|
code: object["code"],
|
|
13
14
|
enabled: object["enabled"],
|
|
14
15
|
updatedAt: object["updatedAt"] ? new Date(object["updatedAt"]) : null,
|
|
16
|
+
variables: object["variables"],
|
|
15
17
|
};
|
|
16
18
|
},
|
|
17
19
|
|
|
@@ -20,6 +22,7 @@ export const EndpointTransformationOutSerializer = {
|
|
|
20
22
|
code: self.code,
|
|
21
23
|
enabled: self.enabled,
|
|
22
24
|
updatedAt: self.updatedAt,
|
|
25
|
+
variables: self.variables,
|
|
23
26
|
};
|
|
24
27
|
},
|
|
25
28
|
};
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
export interface EndpointTransformationPatch {
|
|
4
4
|
code?: string | null;
|
|
5
5
|
enabled?: boolean;
|
|
6
|
+
variables?: { [key: string]: string } | null;
|
|
6
7
|
}
|
|
7
8
|
|
|
8
9
|
export const EndpointTransformationPatchSerializer = {
|
|
@@ -10,6 +11,7 @@ export const EndpointTransformationPatchSerializer = {
|
|
|
10
11
|
return {
|
|
11
12
|
code: object["code"],
|
|
12
13
|
enabled: object["enabled"],
|
|
14
|
+
variables: object["variables"],
|
|
13
15
|
};
|
|
14
16
|
},
|
|
15
17
|
|
|
@@ -17,6 +19,7 @@ export const EndpointTransformationPatchSerializer = {
|
|
|
17
19
|
return {
|
|
18
20
|
code: self.code,
|
|
19
21
|
enabled: self.enabled,
|
|
22
|
+
variables: self.variables,
|
|
20
23
|
};
|
|
21
24
|
},
|
|
22
25
|
};
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
// this file is @generated
|
|
2
|
+
import { type EndpointIn, EndpointInSerializer } from "./endpointIn";
|
|
3
|
+
|
|
4
|
+
export interface SubscribeIn {
|
|
5
|
+
endpoint: EndpointIn;
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
export const SubscribeInSerializer = {
|
|
9
|
+
_fromJsonObject(object: any): SubscribeIn {
|
|
10
|
+
return {
|
|
11
|
+
endpoint: EndpointInSerializer._fromJsonObject(object["endpoint"]),
|
|
12
|
+
};
|
|
13
|
+
},
|
|
14
|
+
|
|
15
|
+
_toJsonObject(self: SubscribeIn): any {
|
|
16
|
+
return {
|
|
17
|
+
endpoint: EndpointInSerializer._toJsonObject(self.endpoint),
|
|
18
|
+
};
|
|
19
|
+
},
|
|
20
|
+
};
|
package/src/request.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { ApiException, type XOR } from "./util";
|
|
2
2
|
import type { HttpErrorOut, HTTPValidationError } from "./HttpErrors";
|
|
3
3
|
|
|
4
|
-
export const LIB_VERSION = "1.
|
|
4
|
+
export const LIB_VERSION = "1.95.0";
|
|
5
5
|
const USER_AGENT = `svix-libs/${LIB_VERSION}/javascript`;
|
|
6
6
|
|
|
7
7
|
export enum HttpMethod {
|