svix 1.67.0 → 1.69.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/index.d.ts +8 -4
- package/dist/index.js +16 -8
- package/dist/index.js.map +1 -1
- package/dist/request.d.ts +1 -1
- package/dist/request.js +6 -1
- package/dist/request.js.map +1 -1
- package/package.json +4 -2
- package/src/index.ts +20 -9
- package/src/mockttp.test.ts +31 -0
- package/src/request.ts +9 -1
package/dist/index.d.ts
CHANGED
|
@@ -1,8 +1,10 @@
|
|
|
1
|
-
import { Authentication } from "./api/authentication";
|
|
2
1
|
import { Application } from "./api/application";
|
|
2
|
+
import { Authentication } from "./api/authentication";
|
|
3
3
|
import { BackgroundTask } from "./api/backgroundTask";
|
|
4
4
|
import { Endpoint } from "./api/endpoint";
|
|
5
|
+
import { Environment } from "./api/environment";
|
|
5
6
|
import { EventType } from "./api/eventType";
|
|
7
|
+
import { Health } from "./api/health";
|
|
6
8
|
import { Ingest } from "./api/ingest";
|
|
7
9
|
import { Integration } from "./api/integration";
|
|
8
10
|
import { Management } from "./api/management";
|
|
@@ -31,17 +33,19 @@ export interface SvixOptions {
|
|
|
31
33
|
export declare class Svix {
|
|
32
34
|
private readonly requestCtx;
|
|
33
35
|
constructor(token: string, options?: SvixOptions);
|
|
34
|
-
get authentication(): Authentication;
|
|
35
36
|
get application(): Application;
|
|
37
|
+
get authentication(): Authentication;
|
|
38
|
+
get backgroundTask(): BackgroundTask;
|
|
36
39
|
get endpoint(): Endpoint;
|
|
40
|
+
get environment(): Environment;
|
|
37
41
|
get eventType(): EventType;
|
|
42
|
+
get health(): Health;
|
|
38
43
|
get ingest(): Ingest;
|
|
39
44
|
get integration(): Integration;
|
|
40
45
|
get management(): Management;
|
|
41
46
|
get message(): Message;
|
|
42
47
|
get messageAttempt(): MessageAttempt;
|
|
43
|
-
get backgroundTask(): BackgroundTask;
|
|
44
|
-
get statistics(): Statistics;
|
|
45
48
|
get operationalWebhook(): OperationalWebhook;
|
|
49
|
+
get statistics(): Statistics;
|
|
46
50
|
get operationalWebhookEndpoint(): OperationalWebhookEndpoint;
|
|
47
51
|
}
|
package/dist/index.js
CHANGED
|
@@ -15,11 +15,13 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
17
|
exports.Svix = exports.messageInRaw = exports.ValidationError = exports.HttpErrorOut = exports.HTTPValidationError = exports.ApiException = void 0;
|
|
18
|
-
const authentication_1 = require("./api/authentication");
|
|
19
18
|
const application_1 = require("./api/application");
|
|
19
|
+
const authentication_1 = require("./api/authentication");
|
|
20
20
|
const backgroundTask_1 = require("./api/backgroundTask");
|
|
21
21
|
const endpoint_1 = require("./api/endpoint");
|
|
22
|
+
const environment_1 = require("./api/environment");
|
|
22
23
|
const eventType_1 = require("./api/eventType");
|
|
24
|
+
const health_1 = require("./api/health");
|
|
23
25
|
const ingest_1 = require("./api/ingest");
|
|
24
26
|
const integration_1 = require("./api/integration");
|
|
25
27
|
const management_1 = require("./api/management");
|
|
@@ -52,18 +54,27 @@ class Svix {
|
|
|
52
54
|
const baseUrl = (_c = (_b = options.serverUrl) !== null && _b !== void 0 ? _b : regionalUrl) !== null && _c !== void 0 ? _c : "https://api.svix.com";
|
|
53
55
|
this.requestCtx = { baseUrl, token, timeout: options.requestTimeout };
|
|
54
56
|
}
|
|
57
|
+
get application() {
|
|
58
|
+
return new application_1.Application(this.requestCtx);
|
|
59
|
+
}
|
|
55
60
|
get authentication() {
|
|
56
61
|
return new authentication_1.Authentication(this.requestCtx);
|
|
57
62
|
}
|
|
58
|
-
get
|
|
59
|
-
return new
|
|
63
|
+
get backgroundTask() {
|
|
64
|
+
return new backgroundTask_1.BackgroundTask(this.requestCtx);
|
|
60
65
|
}
|
|
61
66
|
get endpoint() {
|
|
62
67
|
return new endpoint_1.Endpoint(this.requestCtx);
|
|
63
68
|
}
|
|
69
|
+
get environment() {
|
|
70
|
+
return new environment_1.Environment(this.requestCtx);
|
|
71
|
+
}
|
|
64
72
|
get eventType() {
|
|
65
73
|
return new eventType_1.EventType(this.requestCtx);
|
|
66
74
|
}
|
|
75
|
+
get health() {
|
|
76
|
+
return new health_1.Health(this.requestCtx);
|
|
77
|
+
}
|
|
67
78
|
get ingest() {
|
|
68
79
|
return new ingest_1.Ingest(this.requestCtx);
|
|
69
80
|
}
|
|
@@ -79,15 +90,12 @@ class Svix {
|
|
|
79
90
|
get messageAttempt() {
|
|
80
91
|
return new messageAttempt_1.MessageAttempt(this.requestCtx);
|
|
81
92
|
}
|
|
82
|
-
get
|
|
83
|
-
return new
|
|
93
|
+
get operationalWebhook() {
|
|
94
|
+
return new operationalWebhook_1.OperationalWebhook(this.requestCtx);
|
|
84
95
|
}
|
|
85
96
|
get statistics() {
|
|
86
97
|
return new statistics_1.Statistics(this.requestCtx);
|
|
87
98
|
}
|
|
88
|
-
get operationalWebhook() {
|
|
89
|
-
return new operationalWebhook_1.OperationalWebhook(this.requestCtx);
|
|
90
|
-
}
|
|
91
99
|
get operationalWebhookEndpoint() {
|
|
92
100
|
return new operationalWebhookEndpoint_1.OperationalWebhookEndpoint(this.requestCtx);
|
|
93
101
|
}
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/request.d.ts
CHANGED
package/dist/request.js
CHANGED
|
@@ -12,7 +12,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
12
12
|
exports.SvixRequest = exports.HttpMethod = exports.LIB_VERSION = void 0;
|
|
13
13
|
require("svix-fetch");
|
|
14
14
|
const util_1 = require("./util");
|
|
15
|
-
|
|
15
|
+
const uuid_1 = require("uuid");
|
|
16
|
+
exports.LIB_VERSION = "1.69.0";
|
|
16
17
|
const USER_AGENT = `svix-libs/${exports.LIB_VERSION}/javascript`;
|
|
17
18
|
var HttpMethod;
|
|
18
19
|
(function (HttpMethod) {
|
|
@@ -93,6 +94,10 @@ class SvixRequest {
|
|
|
93
94
|
for (const [name, value] of Object.entries(this.queryParams)) {
|
|
94
95
|
url.searchParams.set(name, value);
|
|
95
96
|
}
|
|
97
|
+
if (this.headerParams["idempotency-key"] === undefined &&
|
|
98
|
+
this.method.toUpperCase() === "POST") {
|
|
99
|
+
this.headerParams["idempotency-key"] = "auto_" + (0, uuid_1.v4)();
|
|
100
|
+
}
|
|
96
101
|
const randomId = Math.floor(Math.random() * Number.MAX_SAFE_INTEGER);
|
|
97
102
|
if (this.body != null) {
|
|
98
103
|
this.headerParams["content-type"] = "application/json";
|
package/dist/request.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"request.js","sourceRoot":"","sources":["../src/request.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,sBAAoB;AACpB,iCAAsC;
|
|
1
|
+
{"version":3,"file":"request.js","sourceRoot":"","sources":["../src/request.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "svix",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.69.0",
|
|
4
4
|
"description": "Svix webhooks API client and webhook verification library",
|
|
5
5
|
"author": "svix",
|
|
6
6
|
"repository": "https://github.com/svix/svix-libs",
|
|
@@ -34,13 +34,15 @@
|
|
|
34
34
|
"es6-promise": "^4.2.8",
|
|
35
35
|
"fast-sha256": "^1.3.0",
|
|
36
36
|
"svix-fetch": "^3.0.0",
|
|
37
|
-
"url-parse": "^1.5.10"
|
|
37
|
+
"url-parse": "^1.5.10",
|
|
38
|
+
"uuid": "^10.0.0"
|
|
38
39
|
},
|
|
39
40
|
"devDependencies": {
|
|
40
41
|
"@eslint/js": "^9.20.0",
|
|
41
42
|
"@stablelib/utf8": "^2.0.0",
|
|
42
43
|
"@types/jest": "^29.5.13",
|
|
43
44
|
"@types/url-parse": "1.4.11",
|
|
45
|
+
"@types/uuid": "^10.0.0",
|
|
44
46
|
"eslint": "^9.20.1",
|
|
45
47
|
"globals": "^15.15.0",
|
|
46
48
|
"jest": "^29.7.0",
|
package/src/index.ts
CHANGED
|
@@ -1,8 +1,11 @@
|
|
|
1
|
-
|
|
1
|
+
// this file is @generated
|
|
2
2
|
import { Application } from "./api/application";
|
|
3
|
+
import { Authentication } from "./api/authentication";
|
|
3
4
|
import { BackgroundTask } from "./api/backgroundTask";
|
|
4
5
|
import { Endpoint } from "./api/endpoint";
|
|
6
|
+
import { Environment } from "./api/environment";
|
|
5
7
|
import { EventType } from "./api/eventType";
|
|
8
|
+
import { Health } from "./api/health";
|
|
6
9
|
import { Ingest } from "./api/ingest";
|
|
7
10
|
import { Integration } from "./api/integration";
|
|
8
11
|
import { Management } from "./api/management";
|
|
@@ -52,22 +55,34 @@ export class Svix {
|
|
|
52
55
|
this.requestCtx = { baseUrl, token, timeout: options.requestTimeout };
|
|
53
56
|
}
|
|
54
57
|
|
|
58
|
+
public get application() {
|
|
59
|
+
return new Application(this.requestCtx);
|
|
60
|
+
}
|
|
61
|
+
|
|
55
62
|
public get authentication() {
|
|
56
63
|
return new Authentication(this.requestCtx);
|
|
57
64
|
}
|
|
58
65
|
|
|
59
|
-
public get
|
|
60
|
-
return new
|
|
66
|
+
public get backgroundTask() {
|
|
67
|
+
return new BackgroundTask(this.requestCtx);
|
|
61
68
|
}
|
|
62
69
|
|
|
63
70
|
public get endpoint() {
|
|
64
71
|
return new Endpoint(this.requestCtx);
|
|
65
72
|
}
|
|
66
73
|
|
|
74
|
+
public get environment() {
|
|
75
|
+
return new Environment(this.requestCtx);
|
|
76
|
+
}
|
|
77
|
+
|
|
67
78
|
public get eventType() {
|
|
68
79
|
return new EventType(this.requestCtx);
|
|
69
80
|
}
|
|
70
81
|
|
|
82
|
+
public get health() {
|
|
83
|
+
return new Health(this.requestCtx);
|
|
84
|
+
}
|
|
85
|
+
|
|
71
86
|
public get ingest() {
|
|
72
87
|
return new Ingest(this.requestCtx);
|
|
73
88
|
}
|
|
@@ -88,18 +103,14 @@ export class Svix {
|
|
|
88
103
|
return new MessageAttempt(this.requestCtx);
|
|
89
104
|
}
|
|
90
105
|
|
|
91
|
-
public get
|
|
92
|
-
return new
|
|
106
|
+
public get operationalWebhook() {
|
|
107
|
+
return new OperationalWebhook(this.requestCtx);
|
|
93
108
|
}
|
|
94
109
|
|
|
95
110
|
public get statistics() {
|
|
96
111
|
return new Statistics(this.requestCtx);
|
|
97
112
|
}
|
|
98
113
|
|
|
99
|
-
public get operationalWebhook() {
|
|
100
|
-
return new OperationalWebhook(this.requestCtx);
|
|
101
|
-
}
|
|
102
|
-
|
|
103
114
|
public get operationalWebhookEndpoint() {
|
|
104
115
|
return new OperationalWebhookEndpoint(this.requestCtx);
|
|
105
116
|
}
|
package/src/mockttp.test.ts
CHANGED
|
@@ -418,4 +418,35 @@ describe("mockttp tests", () => {
|
|
|
418
418
|
'{"type":"generic-webhook","config":{},"name":"generic over <T>"}'
|
|
419
419
|
);
|
|
420
420
|
});
|
|
421
|
+
|
|
422
|
+
test("test idempotency key is sent for create request", async () => {
|
|
423
|
+
const endpointMock = await mockServer
|
|
424
|
+
.forPost("/api/v1/app")
|
|
425
|
+
.thenReply(200, ApplicationOut);
|
|
426
|
+
const svx = new Svix("token", { serverUrl: mockServer.url });
|
|
427
|
+
|
|
428
|
+
await svx.application.create({ name: "test app" });
|
|
429
|
+
|
|
430
|
+
const requests = await endpointMock.getSeenRequests();
|
|
431
|
+
expect(requests.length).toBe(1);
|
|
432
|
+
const idempotencyKey = requests[0].headers["idempotency-key"] as string;
|
|
433
|
+
expect(idempotencyKey.startsWith("auto_")).toBe(true);
|
|
434
|
+
});
|
|
435
|
+
|
|
436
|
+
test("test client provided idempotency key is not overridden", async () => {
|
|
437
|
+
const endpointMock = await mockServer
|
|
438
|
+
.forPost("/api/v1/app")
|
|
439
|
+
.thenReply(200, ApplicationOut);
|
|
440
|
+
const svx = new Svix("token", { serverUrl: mockServer.url });
|
|
441
|
+
|
|
442
|
+
const clientProvidedKey = "test-key-123";
|
|
443
|
+
await svx.application.create(
|
|
444
|
+
{ name: "test app" },
|
|
445
|
+
{ idempotencyKey: clientProvidedKey }
|
|
446
|
+
);
|
|
447
|
+
|
|
448
|
+
const requests = await endpointMock.getSeenRequests();
|
|
449
|
+
expect(requests.length).toBe(1);
|
|
450
|
+
expect(requests[0].headers["idempotency-key"]).toBe(clientProvidedKey);
|
|
451
|
+
});
|
|
421
452
|
});
|
package/src/request.ts
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import "svix-fetch";
|
|
2
2
|
import { ApiException } from "./util";
|
|
3
3
|
import { HttpErrorOut, HTTPValidationError } from "./HttpErrors";
|
|
4
|
+
import { v4 as uuidv4 } from "uuid";
|
|
4
5
|
|
|
5
|
-
export const LIB_VERSION = "1.
|
|
6
|
+
export const LIB_VERSION = "1.69.0";
|
|
6
7
|
const USER_AGENT = `svix-libs/${LIB_VERSION}/javascript`;
|
|
7
8
|
|
|
8
9
|
export enum HttpMethod {
|
|
@@ -113,6 +114,13 @@ export class SvixRequest {
|
|
|
113
114
|
url.searchParams.set(name, value);
|
|
114
115
|
}
|
|
115
116
|
|
|
117
|
+
if (
|
|
118
|
+
this.headerParams["idempotency-key"] === undefined &&
|
|
119
|
+
this.method.toUpperCase() === "POST"
|
|
120
|
+
) {
|
|
121
|
+
this.headerParams["idempotency-key"] = "auto_" + uuidv4();
|
|
122
|
+
}
|
|
123
|
+
|
|
116
124
|
const randomId = Math.floor(Math.random() * Number.MAX_SAFE_INTEGER);
|
|
117
125
|
|
|
118
126
|
if (this.body != null) {
|