@inkbox/sdk 0.3.1 → 0.4.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/README.md +30 -25
- package/dist/agent_identity.d.ts +28 -31
- package/dist/agent_identity.d.ts.map +1 -1
- package/dist/agent_identity.js +34 -58
- package/dist/agent_identity.js.map +1 -1
- package/dist/api_keys/resources/apiKeys.d.ts +39 -0
- package/dist/api_keys/resources/apiKeys.d.ts.map +1 -0
- package/dist/api_keys/resources/apiKeys.js +38 -0
- package/dist/api_keys/resources/apiKeys.js.map +1 -0
- package/dist/api_keys/types.d.ts +68 -0
- package/dist/api_keys/types.d.ts.map +1 -0
- package/dist/api_keys/types.js +30 -0
- package/dist/api_keys/types.js.map +1 -0
- package/dist/identities/exceptions.d.ts +35 -0
- package/dist/identities/exceptions.d.ts.map +1 -0
- package/dist/identities/exceptions.js +49 -0
- package/dist/identities/exceptions.js.map +1 -0
- package/dist/identities/resources/identities.d.ts +36 -25
- package/dist/identities/resources/identities.d.ts.map +1 -1
- package/dist/identities/resources/identities.js +61 -31
- package/dist/identities/resources/identities.js.map +1 -1
- package/dist/identities/types.d.ts +38 -12
- package/dist/identities/types.d.ts.map +1 -1
- package/dist/identities/types.js +13 -3
- package/dist/identities/types.js.map +1 -1
- package/dist/index.d.ts +8 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -1
- package/dist/index.js.map +1 -1
- package/dist/inkbox.d.ts +22 -9
- package/dist/inkbox.d.ts.map +1 -1
- package/dist/inkbox.js +38 -27
- package/dist/inkbox.js.map +1 -1
- package/dist/mail/resources/mailboxes.d.ts +4 -28
- package/dist/mail/resources/mailboxes.d.ts.map +1 -1
- package/dist/mail/resources/mailboxes.js +4 -37
- package/dist/mail/resources/mailboxes.js.map +1 -1
- package/dist/mail/types.d.ts +4 -7
- package/dist/mail/types.d.ts.map +1 -1
- package/dist/mail/types.js +0 -1
- package/dist/mail/types.js.map +1 -1
- package/dist/phone/types.d.ts +6 -0
- package/dist/phone/types.d.ts.map +1 -1
- package/dist/phone/types.js +1 -0
- package/dist/phone/types.js.map +1 -1
- package/dist/tunnels/_reserved_names.d.ts +22 -0
- package/dist/tunnels/_reserved_names.d.ts.map +1 -0
- package/dist/tunnels/_reserved_names.js +149 -0
- package/dist/tunnels/_reserved_names.js.map +1 -0
- package/dist/tunnels/_validation.d.ts +16 -1
- package/dist/tunnels/_validation.d.ts.map +1 -1
- package/dist/tunnels/_validation.js +33 -8
- package/dist/tunnels/_validation.js.map +1 -1
- package/dist/tunnels/client/_protocol.d.ts +1 -1
- package/dist/tunnels/client/_protocol.js +1 -1
- package/dist/tunnels/client/_protocol.js.map +1 -1
- package/dist/tunnels/client/_runtime.d.ts +3 -2
- package/dist/tunnels/client/_runtime.d.ts.map +1 -1
- package/dist/tunnels/client/_runtime.js +7 -7
- package/dist/tunnels/client/_runtime.js.map +1 -1
- package/dist/tunnels/client/_state.d.ts +0 -13
- package/dist/tunnels/client/_state.d.ts.map +1 -1
- package/dist/tunnels/client/_state.js +0 -27
- package/dist/tunnels/client/_state.js.map +1 -1
- package/dist/tunnels/client/index.d.ts +13 -13
- package/dist/tunnels/client/index.d.ts.map +1 -1
- package/dist/tunnels/client/index.js +20 -65
- package/dist/tunnels/client/index.js.map +1 -1
- package/dist/tunnels/exceptions.d.ts +8 -6
- package/dist/tunnels/exceptions.d.ts.map +1 -1
- package/dist/tunnels/exceptions.js +12 -26
- package/dist/tunnels/exceptions.js.map +1 -1
- package/dist/tunnels/resources/tunnels.d.ts +9 -38
- package/dist/tunnels/resources/tunnels.d.ts.map +1 -1
- package/dist/tunnels/resources/tunnels.js +10 -92
- package/dist/tunnels/resources/tunnels.js.map +1 -1
- package/dist/tunnels/types.d.ts +17 -33
- package/dist/tunnels/types.d.ts.map +1 -1
- package/dist/tunnels/types.js +13 -23
- package/dist/tunnels/types.js.map +1 -1
- package/package.json +1 -1
- package/protocol/tunnel_protocol_constants.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/tunnels/client/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAGH,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACvE,OAAO,EACL,aAAa,EACb,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/tunnels/client/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,22 +10,24 @@ export declare class TunnelError extends InkboxError {
|
|
|
10
10
|
export declare class TunnelNameInvalid extends TunnelError {
|
|
11
11
|
constructor(message: string);
|
|
12
12
|
}
|
|
13
|
-
export declare class TunnelSecretUnavailable extends TunnelError {
|
|
14
|
-
constructor(message: string);
|
|
15
|
-
}
|
|
16
13
|
export declare class TunnelRemoved extends TunnelError {
|
|
17
14
|
constructor(message: string);
|
|
18
15
|
}
|
|
19
16
|
export declare class TunnelStateConflict extends InkboxAPIError {
|
|
20
17
|
constructor(statusCode: number, detail: InkboxAPIErrorDetail);
|
|
21
18
|
}
|
|
22
|
-
export declare class TunnelNameUnavailable extends InkboxAPIError {
|
|
23
|
-
constructor(statusCode: number, detail: InkboxAPIErrorDetail);
|
|
24
|
-
}
|
|
25
19
|
export declare class TunnelTLSModeMismatch extends InkboxAPIError {
|
|
26
20
|
constructor(statusCode: number, detail: InkboxAPIErrorDetail);
|
|
27
21
|
}
|
|
28
22
|
export declare class TunnelCSRStateConflict extends TunnelStateConflict {
|
|
29
23
|
constructor(statusCode: number, detail: InkboxAPIErrorDetail);
|
|
30
24
|
}
|
|
25
|
+
/**
|
|
26
|
+
* Raised by `connect()` when no tunnel exists for the supplied name in
|
|
27
|
+
* the calling org. Tunnels are provisioned atomically as part of
|
|
28
|
+
* `inkbox.createIdentity(...)`; they have no standalone create surface.
|
|
29
|
+
*/
|
|
30
|
+
export declare class TunnelNotProvisioned extends TunnelError {
|
|
31
|
+
constructor(message: string);
|
|
32
|
+
}
|
|
31
33
|
//# sourceMappingURL=exceptions.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"exceptions.d.ts","sourceRoot":"","sources":["../../src/tunnels/exceptions.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACL,cAAc,EACd,WAAW,EACX,KAAK,oBAAoB,EAC1B,MAAM,aAAa,CAAC;AAErB,qBAAa,WAAY,SAAQ,WAAW;gBAC9B,OAAO,EAAE,MAAM;CAI5B;AAED,qBAAa,iBAAkB,SAAQ,WAAW;gBACpC,OAAO,EAAE,MAAM;CAI5B;AAED,qBAAa,
|
|
1
|
+
{"version":3,"file":"exceptions.d.ts","sourceRoot":"","sources":["../../src/tunnels/exceptions.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACL,cAAc,EACd,WAAW,EACX,KAAK,oBAAoB,EAC1B,MAAM,aAAa,CAAC;AAErB,qBAAa,WAAY,SAAQ,WAAW;gBAC9B,OAAO,EAAE,MAAM;CAI5B;AAED,qBAAa,iBAAkB,SAAQ,WAAW;gBACpC,OAAO,EAAE,MAAM;CAI5B;AAED,qBAAa,aAAc,SAAQ,WAAW;gBAChC,OAAO,EAAE,MAAM;CAI5B;AAED,qBAAa,mBAAoB,SAAQ,cAAc;gBACzC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,oBAAoB;CAI7D;AAED,qBAAa,qBAAsB,SAAQ,cAAc;gBAC3C,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,oBAAoB;CAI7D;AAED,qBAAa,sBAAuB,SAAQ,mBAAmB;gBACjD,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,oBAAoB;CAI7D;AAED;;;;GAIG;AACH,qBAAa,oBAAqB,SAAQ,WAAW;gBACvC,OAAO,EAAE,MAAM;CAI5B"}
|
|
@@ -16,41 +16,16 @@ export class TunnelNameInvalid extends TunnelError {
|
|
|
16
16
|
this.name = "TunnelNameInvalid";
|
|
17
17
|
}
|
|
18
18
|
}
|
|
19
|
-
export class TunnelSecretUnavailable extends TunnelError {
|
|
20
|
-
constructor(message) {
|
|
21
|
-
super(message);
|
|
22
|
-
this.name = "TunnelSecretUnavailable";
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
19
|
export class TunnelRemoved extends TunnelError {
|
|
26
20
|
constructor(message) {
|
|
27
21
|
super(message);
|
|
28
22
|
this.name = "TunnelRemoved";
|
|
29
23
|
}
|
|
30
24
|
}
|
|
31
|
-
function sanitizeDetail(detail) {
|
|
32
|
-
const sanitizeStr = (s) => s.replace(/delete_pending/g, "pending_removal").replace(/deleted/g, "removed");
|
|
33
|
-
if (typeof detail === "string")
|
|
34
|
-
return sanitizeStr(detail);
|
|
35
|
-
if (detail && typeof detail === "object") {
|
|
36
|
-
const out = {};
|
|
37
|
-
for (const [k, v] of Object.entries(detail)) {
|
|
38
|
-
out[k] = typeof v === "string" ? sanitizeStr(v) : v;
|
|
39
|
-
}
|
|
40
|
-
return out;
|
|
41
|
-
}
|
|
42
|
-
return detail;
|
|
43
|
-
}
|
|
44
25
|
export class TunnelStateConflict extends InkboxAPIError {
|
|
45
|
-
constructor(statusCode, detail) {
|
|
46
|
-
super(statusCode, sanitizeDetail(detail));
|
|
47
|
-
this.name = "TunnelStateConflict";
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
export class TunnelNameUnavailable extends InkboxAPIError {
|
|
51
26
|
constructor(statusCode, detail) {
|
|
52
27
|
super(statusCode, detail);
|
|
53
|
-
this.name = "
|
|
28
|
+
this.name = "TunnelStateConflict";
|
|
54
29
|
}
|
|
55
30
|
}
|
|
56
31
|
export class TunnelTLSModeMismatch extends InkboxAPIError {
|
|
@@ -65,4 +40,15 @@ export class TunnelCSRStateConflict extends TunnelStateConflict {
|
|
|
65
40
|
this.name = "TunnelCSRStateConflict";
|
|
66
41
|
}
|
|
67
42
|
}
|
|
43
|
+
/**
|
|
44
|
+
* Raised by `connect()` when no tunnel exists for the supplied name in
|
|
45
|
+
* the calling org. Tunnels are provisioned atomically as part of
|
|
46
|
+
* `inkbox.createIdentity(...)`; they have no standalone create surface.
|
|
47
|
+
*/
|
|
48
|
+
export class TunnelNotProvisioned extends TunnelError {
|
|
49
|
+
constructor(message) {
|
|
50
|
+
super(message);
|
|
51
|
+
this.name = "TunnelNotProvisioned";
|
|
52
|
+
}
|
|
53
|
+
}
|
|
68
54
|
//# sourceMappingURL=exceptions.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"exceptions.js","sourceRoot":"","sources":["../../src/tunnels/exceptions.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACL,cAAc,EACd,WAAW,GAEZ,MAAM,aAAa,CAAC;AAErB,MAAM,OAAO,WAAY,SAAQ,WAAW;IAC1C,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,aAAa,CAAC;IAC5B,CAAC;CACF;AAED,MAAM,OAAO,iBAAkB,SAAQ,WAAW;IAChD,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,mBAAmB,CAAC;IAClC,CAAC;CACF;AAED,MAAM,OAAO,
|
|
1
|
+
{"version":3,"file":"exceptions.js","sourceRoot":"","sources":["../../src/tunnels/exceptions.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACL,cAAc,EACd,WAAW,GAEZ,MAAM,aAAa,CAAC;AAErB,MAAM,OAAO,WAAY,SAAQ,WAAW;IAC1C,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,aAAa,CAAC;IAC5B,CAAC;CACF;AAED,MAAM,OAAO,iBAAkB,SAAQ,WAAW;IAChD,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,mBAAmB,CAAC;IAClC,CAAC;CACF;AAED,MAAM,OAAO,aAAc,SAAQ,WAAW;IAC5C,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,eAAe,CAAC;IAC9B,CAAC;CACF;AAED,MAAM,OAAO,mBAAoB,SAAQ,cAAc;IACrD,YAAY,UAAkB,EAAE,MAA4B;QAC1D,KAAK,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;QAC1B,IAAI,CAAC,IAAI,GAAG,qBAAqB,CAAC;IACpC,CAAC;CACF;AAED,MAAM,OAAO,qBAAsB,SAAQ,cAAc;IACvD,YAAY,UAAkB,EAAE,MAA4B;QAC1D,KAAK,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;QAC1B,IAAI,CAAC,IAAI,GAAG,uBAAuB,CAAC;IACtC,CAAC;CACF;AAED,MAAM,OAAO,sBAAuB,SAAQ,mBAAmB;IAC7D,YAAY,UAAkB,EAAE,MAA4B;QAC1D,KAAK,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;QAC1B,IAAI,CAAC,IAAI,GAAG,wBAAwB,CAAC;IACvC,CAAC;CACF;AAED;;;;GAIG;AACH,MAAM,OAAO,oBAAqB,SAAQ,WAAW;IACnD,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,sBAAsB,CAAC;IACrC,CAAC;CACF"}
|
|
@@ -1,20 +1,16 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* inkbox-tunnels/resources/tunnels.ts
|
|
3
3
|
*
|
|
4
|
-
* Control-plane
|
|
4
|
+
* Control-plane reads + update + sign-csr for tunnels. Tunnels are
|
|
5
|
+
* created and deleted exclusively via identity-create / identity-delete
|
|
6
|
+
* cascades; there is no standalone create / delete / restore /
|
|
7
|
+
* force-delete / rotate-secret surface.
|
|
5
8
|
*/
|
|
6
9
|
import { HttpTransport } from "../../_http.js";
|
|
7
|
-
import {
|
|
10
|
+
import { SignedCert, Tunnel } from "../types.js";
|
|
8
11
|
export declare const POOL_SIZE_MIN = 1;
|
|
9
12
|
export declare const POOL_SIZE_MAX = 32;
|
|
10
|
-
export interface CreateTunnelOptions {
|
|
11
|
-
tunnelName: string;
|
|
12
|
-
tlsMode?: TLSMode | "edge" | "passthrough";
|
|
13
|
-
description?: string | null;
|
|
14
|
-
}
|
|
15
13
|
export interface UpdateTunnelOptions {
|
|
16
|
-
/** Pass `null` to clear; omit to leave unchanged. */
|
|
17
|
-
description?: string | null;
|
|
18
14
|
/**
|
|
19
15
|
* Pass `{}` or `null` to clear (the server's column is non-nullable
|
|
20
16
|
* and collapses both forms to `{}`); omit to leave unchanged.
|
|
@@ -27,38 +23,13 @@ export declare class TunnelsResource {
|
|
|
27
23
|
list(): Promise<Tunnel[]>;
|
|
28
24
|
get(tunnelId: string): Promise<Tunnel>;
|
|
29
25
|
/**
|
|
30
|
-
*
|
|
31
|
-
*
|
|
32
|
-
*/
|
|
33
|
-
create(options: CreateTunnelOptions): Promise<CreatedTunnel>;
|
|
34
|
-
/**
|
|
35
|
-
* Update a tunnel. Pass only the fields you want to change.
|
|
26
|
+
* Update a tunnel's metadata. `metadata` is the only mutable field;
|
|
27
|
+
* other tunnel attributes are derived from the owning identity.
|
|
36
28
|
*
|
|
37
|
-
* - `
|
|
38
|
-
* -
|
|
39
|
-
* (rejected client-side); pass `{}` to clear.
|
|
29
|
+
* - `metadata: {}` (or `null`) clears the metadata bag. The server
|
|
30
|
+
* column is non-nullable and collapses both forms to `{}`.
|
|
40
31
|
*/
|
|
41
32
|
update(tunnelId: string, options: UpdateTunnelOptions): Promise<Tunnel>;
|
|
42
|
-
/**
|
|
43
|
-
* Schedule a tunnel for removal. The name is held for 24 hours, during
|
|
44
|
-
* which `restore` brings it back online.
|
|
45
|
-
*/
|
|
46
|
-
delete(tunnelId: string): Promise<Tunnel>;
|
|
47
|
-
/** Bring a scheduled-for-removal tunnel back online. */
|
|
48
|
-
restore(tunnelId: string): Promise<Tunnel>;
|
|
49
|
-
/**
|
|
50
|
-
* Remove a scheduled-for-removal tunnel immediately, skipping the 24-hour
|
|
51
|
-
* window. Requires an admin-scoped API key.
|
|
52
|
-
*/
|
|
53
|
-
forceDelete(tunnelId: string): Promise<Tunnel>;
|
|
54
|
-
/**
|
|
55
|
-
* Rotate the per-tunnel connect secret.
|
|
56
|
-
*
|
|
57
|
-
* The new secret takes effect on the next agent reconnect; existing live
|
|
58
|
-
* connections continue serving traffic with the old secret until they
|
|
59
|
-
* reconnect.
|
|
60
|
-
*/
|
|
61
|
-
rotateSecret(tunnelId: string): Promise<RotatedSecret>;
|
|
62
33
|
/**
|
|
63
34
|
* Sign a CSR for a passthrough tunnel.
|
|
64
35
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tunnels.d.ts","sourceRoot":"","sources":["../../../src/tunnels/resources/tunnels.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"tunnels.d.ts","sourceRoot":"","sources":["../../../src/tunnels/resources/tunnels.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,aAAa,EAAkB,MAAM,gBAAgB,CAAC;AAK/D,OAAO,EAGL,UAAU,EACV,MAAM,EAGP,MAAM,aAAa,CAAC;AAMrB,eAAO,MAAM,aAAa,IAAI,CAAC;AAC/B,eAAO,MAAM,aAAa,KAAK,CAAC;AAoBhC,MAAM,WAAW,mBAAmB;IAClC;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;CAC3C;AAED,qBAAa,eAAe;IACd,OAAO,CAAC,QAAQ,CAAC,IAAI;gBAAJ,IAAI,EAAE,aAAa;IAI1C,IAAI,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAQzB,GAAG,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAO5C;;;;;;OAMG;IACG,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,MAAM,CAAC;IAe7E;;;;;;OAMG;IACG,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,UAAU,CAAC;CAalF"}
|
|
@@ -1,12 +1,14 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* inkbox-tunnels/resources/tunnels.ts
|
|
3
3
|
*
|
|
4
|
-
* Control-plane
|
|
4
|
+
* Control-plane reads + update + sign-csr for tunnels. Tunnels are
|
|
5
|
+
* created and deleted exclusively via identity-create / identity-delete
|
|
6
|
+
* cascades; there is no standalone create / delete / restore /
|
|
7
|
+
* force-delete / rotate-secret surface.
|
|
5
8
|
*/
|
|
6
9
|
import { InkboxAPIError } from "../../_http.js";
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
import { TLSMode, parseCreatedTunnel, parseRotatedSecret, parseSignedCert, parseTunnel, } from "../types.js";
|
|
10
|
+
import { TunnelCSRStateConflict, TunnelTLSModeMismatch, } from "../exceptions.js";
|
|
11
|
+
import { parseSignedCert, parseTunnel, } from "../types.js";
|
|
10
12
|
const BASE = "/tunnels";
|
|
11
13
|
const SIGN_CSR_TIMEOUT_MS = 180_000;
|
|
12
14
|
export const POOL_SIZE_MIN = 1;
|
|
@@ -21,18 +23,6 @@ function detailText(detail) {
|
|
|
21
23
|
}
|
|
22
24
|
return String(detail);
|
|
23
25
|
}
|
|
24
|
-
function mapCreateError(err) {
|
|
25
|
-
if (err.statusCode === 409) {
|
|
26
|
-
return new TunnelNameUnavailable(err.statusCode, err.detail);
|
|
27
|
-
}
|
|
28
|
-
return err;
|
|
29
|
-
}
|
|
30
|
-
function mapStateError(err) {
|
|
31
|
-
if (err.statusCode === 409) {
|
|
32
|
-
return new TunnelStateConflict(err.statusCode, err.detail);
|
|
33
|
-
}
|
|
34
|
-
return err;
|
|
35
|
-
}
|
|
36
26
|
function mapSignCsrError(err) {
|
|
37
27
|
if (err.statusCode !== 409)
|
|
38
28
|
return err;
|
|
@@ -59,40 +49,14 @@ export class TunnelsResource {
|
|
|
59
49
|
}
|
|
60
50
|
// --- Writes ----------------------------------------------------------
|
|
61
51
|
/**
|
|
62
|
-
*
|
|
63
|
-
*
|
|
64
|
-
*/
|
|
65
|
-
async create(options) {
|
|
66
|
-
validateTunnelName(options.tunnelName);
|
|
67
|
-
const body = {
|
|
68
|
-
tunnel_name: options.tunnelName,
|
|
69
|
-
tls_mode: options.tlsMode ?? TLSMode.EDGE,
|
|
70
|
-
};
|
|
71
|
-
if (options.description !== undefined && options.description !== null) {
|
|
72
|
-
body.description = options.description;
|
|
73
|
-
}
|
|
74
|
-
try {
|
|
75
|
-
const data = await this.http.post(`${BASE}/`, body);
|
|
76
|
-
return parseCreatedTunnel(data);
|
|
77
|
-
}
|
|
78
|
-
catch (err) {
|
|
79
|
-
if (err instanceof InkboxAPIError)
|
|
80
|
-
throw mapCreateError(err);
|
|
81
|
-
throw err;
|
|
82
|
-
}
|
|
83
|
-
}
|
|
84
|
-
/**
|
|
85
|
-
* Update a tunnel. Pass only the fields you want to change.
|
|
52
|
+
* Update a tunnel's metadata. `metadata` is the only mutable field;
|
|
53
|
+
* other tunnel attributes are derived from the owning identity.
|
|
86
54
|
*
|
|
87
|
-
* - `
|
|
88
|
-
* -
|
|
89
|
-
* (rejected client-side); pass `{}` to clear.
|
|
55
|
+
* - `metadata: {}` (or `null`) clears the metadata bag. The server
|
|
56
|
+
* column is non-nullable and collapses both forms to `{}`.
|
|
90
57
|
*/
|
|
91
58
|
async update(tunnelId, options) {
|
|
92
59
|
const body = {};
|
|
93
|
-
if ("description" in options) {
|
|
94
|
-
body.description = options.description;
|
|
95
|
-
}
|
|
96
60
|
if ("metadata" in options) {
|
|
97
61
|
const m = options.metadata;
|
|
98
62
|
if (m !== null && m !== undefined) {
|
|
@@ -105,52 +69,6 @@ export class TunnelsResource {
|
|
|
105
69
|
const data = await this.http.patch(`${BASE}/${tunnelId}`, body);
|
|
106
70
|
return parseTunnel(data);
|
|
107
71
|
}
|
|
108
|
-
/**
|
|
109
|
-
* Schedule a tunnel for removal. The name is held for 24 hours, during
|
|
110
|
-
* which `restore` brings it back online.
|
|
111
|
-
*/
|
|
112
|
-
async delete(tunnelId) {
|
|
113
|
-
const data = await this.http.deleteWithResponse(`${BASE}/${tunnelId}`);
|
|
114
|
-
return parseTunnel(data);
|
|
115
|
-
}
|
|
116
|
-
/** Bring a scheduled-for-removal tunnel back online. */
|
|
117
|
-
async restore(tunnelId) {
|
|
118
|
-
try {
|
|
119
|
-
const data = await this.http.post(`${BASE}/${tunnelId}/restore`);
|
|
120
|
-
return parseTunnel(data);
|
|
121
|
-
}
|
|
122
|
-
catch (err) {
|
|
123
|
-
if (err instanceof InkboxAPIError)
|
|
124
|
-
throw mapStateError(err);
|
|
125
|
-
throw err;
|
|
126
|
-
}
|
|
127
|
-
}
|
|
128
|
-
/**
|
|
129
|
-
* Remove a scheduled-for-removal tunnel immediately, skipping the 24-hour
|
|
130
|
-
* window. Requires an admin-scoped API key.
|
|
131
|
-
*/
|
|
132
|
-
async forceDelete(tunnelId) {
|
|
133
|
-
try {
|
|
134
|
-
const data = await this.http.deleteWithResponse(`${BASE}/${tunnelId}/force`);
|
|
135
|
-
return parseTunnel(data);
|
|
136
|
-
}
|
|
137
|
-
catch (err) {
|
|
138
|
-
if (err instanceof InkboxAPIError)
|
|
139
|
-
throw mapStateError(err);
|
|
140
|
-
throw err;
|
|
141
|
-
}
|
|
142
|
-
}
|
|
143
|
-
/**
|
|
144
|
-
* Rotate the per-tunnel connect secret.
|
|
145
|
-
*
|
|
146
|
-
* The new secret takes effect on the next agent reconnect; existing live
|
|
147
|
-
* connections continue serving traffic with the old secret until they
|
|
148
|
-
* reconnect.
|
|
149
|
-
*/
|
|
150
|
-
async rotateSecret(tunnelId) {
|
|
151
|
-
const data = await this.http.post(`${BASE}/${tunnelId}/rotate-secret`);
|
|
152
|
-
return parseRotatedSecret(data);
|
|
153
|
-
}
|
|
154
72
|
/**
|
|
155
73
|
* Sign a CSR for a passthrough tunnel.
|
|
156
74
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tunnels.js","sourceRoot":"","sources":["../../../src/tunnels/resources/tunnels.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"tunnels.js","sourceRoot":"","sources":["../../../src/tunnels/resources/tunnels.ts"],"names":[],"mappings":"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"}
|
package/dist/tunnels/types.d.ts
CHANGED
|
@@ -13,46 +13,41 @@ export declare enum TLSMode {
|
|
|
13
13
|
* - `awaiting_cert`: passthrough-only intermediate state. Inbound TLS
|
|
14
14
|
* will fail until you call `tunnels.signCsr(...)`.
|
|
15
15
|
* - `active`: routable end-to-end.
|
|
16
|
-
* - `
|
|
17
|
-
*
|
|
18
|
-
* tunnel
|
|
19
|
-
* point a `GET` for the tunnel id returns 404; `TunnelRemoved`
|
|
20
|
-
* surfaces that condition for clients holding stale state.
|
|
16
|
+
* - `deleted`: terminal. The tunnel is offline. Tunnels are deleted
|
|
17
|
+
* exclusively via the identity-delete cascade — there is no direct
|
|
18
|
+
* tunnel-delete surface.
|
|
21
19
|
*/
|
|
22
20
|
export declare enum TunnelStatus {
|
|
23
21
|
AWAITING_CERT = "awaiting_cert",
|
|
24
22
|
ACTIVE = "active",
|
|
25
|
-
|
|
23
|
+
DELETED = "deleted"
|
|
26
24
|
}
|
|
27
25
|
export interface Tunnel {
|
|
28
26
|
id: string;
|
|
29
27
|
organizationId: string;
|
|
30
28
|
tunnelName: string;
|
|
31
|
-
description: string | null;
|
|
32
29
|
tlsMode: TLSMode;
|
|
33
30
|
certPem: string | null;
|
|
34
31
|
certFingerprintSha256: string | null;
|
|
35
32
|
certExpiresAt: Date | null;
|
|
36
|
-
|
|
33
|
+
/**
|
|
34
|
+
* One of the known {@link TunnelStatus} values, or — if the server
|
|
35
|
+
* returns a status the SDK doesn't recognize — the raw string. Future
|
|
36
|
+
* statuses survive parsing without fail-open coercion; callers should
|
|
37
|
+
* handle a `string` default branch alongside the enum cases.
|
|
38
|
+
*/
|
|
39
|
+
status: TunnelStatus | string;
|
|
37
40
|
lastConnectedAt: Date | null;
|
|
38
41
|
lastConnectedIpAddr: string | null;
|
|
39
|
-
restoreDeadlineAt: Date | null;
|
|
40
42
|
currentlyConnected: boolean;
|
|
41
|
-
|
|
42
|
-
|
|
43
|
+
/** Customer-facing hostname — e.g. `my-agent.inkboxwire.com` in production. Lower environments use a different tunnel zone. Non-null for live tunnels. */
|
|
44
|
+
publicHost: string;
|
|
45
|
+
/** Zone endpoint for the data-plane. Agents connect to `https://{zone}/_system/connect`. In production this is `inkboxwire.com`; lower environments use a different zone. Non-null for live tunnels. */
|
|
46
|
+
zone: string;
|
|
43
47
|
metadata: Record<string, unknown>;
|
|
44
48
|
createdAt: Date;
|
|
45
49
|
updatedAt: Date;
|
|
46
50
|
}
|
|
47
|
-
export interface CreatedTunnel {
|
|
48
|
-
tunnel: Tunnel;
|
|
49
|
-
/** Shown ONCE — persist immediately. */
|
|
50
|
-
connectSecret: string;
|
|
51
|
-
}
|
|
52
|
-
export interface RotatedSecret {
|
|
53
|
-
/** New secret. Takes effect on the next agent reconnect. */
|
|
54
|
-
connectSecret: string;
|
|
55
|
-
}
|
|
56
51
|
export interface SignedCert {
|
|
57
52
|
certPem: string;
|
|
58
53
|
chainPem: string;
|
|
@@ -63,7 +58,6 @@ export interface RawTunnel {
|
|
|
63
58
|
id: string;
|
|
64
59
|
organization_id: string;
|
|
65
60
|
tunnel_name: string;
|
|
66
|
-
description: string | null;
|
|
67
61
|
tls_mode: string;
|
|
68
62
|
cert_pem: string | null;
|
|
69
63
|
cert_fingerprint_sha256: string | null;
|
|
@@ -71,21 +65,13 @@ export interface RawTunnel {
|
|
|
71
65
|
status: string;
|
|
72
66
|
last_connected_at: string | null;
|
|
73
67
|
last_connected_ip_addr: string | null;
|
|
74
|
-
restore_deadline_at: string | null;
|
|
75
68
|
currently_connected: boolean;
|
|
76
|
-
public_host
|
|
77
|
-
zone
|
|
69
|
+
public_host: string;
|
|
70
|
+
zone: string;
|
|
78
71
|
metadata?: Record<string, unknown> | null;
|
|
79
72
|
created_at: string;
|
|
80
73
|
updated_at: string;
|
|
81
74
|
}
|
|
82
|
-
export interface RawCreatedTunnel {
|
|
83
|
-
tunnel: RawTunnel;
|
|
84
|
-
connect_secret: string;
|
|
85
|
-
}
|
|
86
|
-
export interface RawRotatedSecret {
|
|
87
|
-
connect_secret: string;
|
|
88
|
-
}
|
|
89
75
|
export interface RawSignedCert {
|
|
90
76
|
cert_pem: string;
|
|
91
77
|
chain_pem: string;
|
|
@@ -93,7 +79,5 @@ export interface RawSignedCert {
|
|
|
93
79
|
cert_expires_at: string;
|
|
94
80
|
}
|
|
95
81
|
export declare function parseTunnel(raw: RawTunnel): Tunnel;
|
|
96
|
-
export declare function parseCreatedTunnel(raw: RawCreatedTunnel): CreatedTunnel;
|
|
97
|
-
export declare function parseRotatedSecret(raw: RawRotatedSecret): RotatedSecret;
|
|
98
82
|
export declare function parseSignedCert(raw: RawSignedCert): SignedCert;
|
|
99
83
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/tunnels/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,oBAAY,OAAO;IACjB,IAAI,SAAS;IACb,WAAW,gBAAgB;CAC5B;AAED
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/tunnels/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,oBAAY,OAAO;IACjB,IAAI,SAAS;IACb,WAAW,gBAAgB;CAC5B;AAED;;;;;;;;;GASG;AACH,oBAAY,YAAY;IACtB,aAAa,kBAAkB;IAC/B,MAAM,WAAW;IACjB,OAAO,YAAY;CACpB;AAED,MAAM,WAAW,MAAM;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,qBAAqB,EAAE,MAAM,GAAG,IAAI,CAAC;IACrC,aAAa,EAAE,IAAI,GAAG,IAAI,CAAC;IAC3B;;;;;OAKG;IACH,MAAM,EAAE,YAAY,GAAG,MAAM,CAAC;IAC9B,eAAe,EAAE,IAAI,GAAG,IAAI,CAAC;IAC7B,mBAAmB,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,kBAAkB,EAAE,OAAO,CAAC;IAC5B,0JAA0J;IAC1J,UAAU,EAAE,MAAM,CAAC;IACnB,wMAAwM;IACxM,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,SAAS,EAAE,IAAI,CAAC;IAChB,SAAS,EAAE,IAAI,CAAC;CACjB;AAED,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,qBAAqB,EAAE,MAAM,CAAC;IAC9B,aAAa,EAAE,IAAI,CAAC;CACrB;AAED,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,eAAe,EAAE,MAAM,CAAC;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,uBAAuB,EAAE,MAAM,GAAG,IAAI,CAAC;IACvC,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,sBAAsB,EAAE,MAAM,GAAG,IAAI,CAAC;IACtC,mBAAmB,EAAE,OAAO,CAAC;IAC7B,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IAC1C,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,uBAAuB,EAAE,MAAM,CAAC;IAChC,eAAe,EAAE,MAAM,CAAC;CACzB;AAOD,wBAAgB,WAAW,CAAC,GAAG,EAAE,SAAS,GAAG,MAAM,CA0BlD;AAED,wBAAgB,eAAe,CAAC,GAAG,EAAE,aAAa,GAAG,UAAU,CAO9D"}
|
package/dist/tunnels/types.js
CHANGED
|
@@ -14,57 +14,47 @@ export var TLSMode;
|
|
|
14
14
|
* - `awaiting_cert`: passthrough-only intermediate state. Inbound TLS
|
|
15
15
|
* will fail until you call `tunnels.signCsr(...)`.
|
|
16
16
|
* - `active`: routable end-to-end.
|
|
17
|
-
* - `
|
|
18
|
-
*
|
|
19
|
-
* tunnel
|
|
20
|
-
* point a `GET` for the tunnel id returns 404; `TunnelRemoved`
|
|
21
|
-
* surfaces that condition for clients holding stale state.
|
|
17
|
+
* - `deleted`: terminal. The tunnel is offline. Tunnels are deleted
|
|
18
|
+
* exclusively via the identity-delete cascade — there is no direct
|
|
19
|
+
* tunnel-delete surface.
|
|
22
20
|
*/
|
|
23
21
|
export var TunnelStatus;
|
|
24
22
|
(function (TunnelStatus) {
|
|
25
23
|
TunnelStatus["AWAITING_CERT"] = "awaiting_cert";
|
|
26
24
|
TunnelStatus["ACTIVE"] = "active";
|
|
27
|
-
TunnelStatus["
|
|
25
|
+
TunnelStatus["DELETED"] = "deleted";
|
|
28
26
|
})(TunnelStatus || (TunnelStatus = {}));
|
|
29
|
-
const STATUS_REMAP_TO_PUBLIC = {
|
|
30
|
-
awaiting_cert: TunnelStatus.AWAITING_CERT,
|
|
31
|
-
active: TunnelStatus.ACTIVE,
|
|
32
|
-
delete_pending: TunnelStatus.PENDING_REMOVAL,
|
|
33
|
-
};
|
|
34
27
|
function parseDate(v) {
|
|
35
28
|
if (v === null || v === undefined)
|
|
36
29
|
return null;
|
|
37
30
|
return new Date(v);
|
|
38
31
|
}
|
|
39
32
|
export function parseTunnel(raw) {
|
|
40
|
-
|
|
33
|
+
if (typeof raw.public_host !== "string" || raw.public_host === "") {
|
|
34
|
+
throw new Error("tunnel response missing required field 'public_host'");
|
|
35
|
+
}
|
|
36
|
+
if (typeof raw.zone !== "string" || raw.zone === "") {
|
|
37
|
+
throw new Error("tunnel response missing required field 'zone'");
|
|
38
|
+
}
|
|
41
39
|
return {
|
|
42
40
|
id: String(raw.id),
|
|
43
41
|
organizationId: String(raw.organization_id),
|
|
44
42
|
tunnelName: String(raw.tunnel_name),
|
|
45
|
-
description: raw.description ?? null,
|
|
46
43
|
tlsMode: raw.tls_mode,
|
|
47
44
|
certPem: raw.cert_pem ?? null,
|
|
48
45
|
certFingerprintSha256: raw.cert_fingerprint_sha256 ?? null,
|
|
49
46
|
certExpiresAt: parseDate(raw.cert_expires_at),
|
|
50
|
-
status,
|
|
47
|
+
status: raw.status,
|
|
51
48
|
lastConnectedAt: parseDate(raw.last_connected_at),
|
|
52
49
|
lastConnectedIpAddr: raw.last_connected_ip_addr ?? null,
|
|
53
|
-
restoreDeadlineAt: parseDate(raw.restore_deadline_at),
|
|
54
50
|
currentlyConnected: Boolean(raw.currently_connected),
|
|
55
|
-
publicHost: raw.public_host
|
|
56
|
-
zone: raw.zone
|
|
51
|
+
publicHost: raw.public_host,
|
|
52
|
+
zone: raw.zone,
|
|
57
53
|
metadata: raw.metadata && typeof raw.metadata === "object" ? { ...raw.metadata } : {},
|
|
58
54
|
createdAt: new Date(raw.created_at),
|
|
59
55
|
updatedAt: new Date(raw.updated_at),
|
|
60
56
|
};
|
|
61
57
|
}
|
|
62
|
-
export function parseCreatedTunnel(raw) {
|
|
63
|
-
return { tunnel: parseTunnel(raw.tunnel), connectSecret: raw.connect_secret };
|
|
64
|
-
}
|
|
65
|
-
export function parseRotatedSecret(raw) {
|
|
66
|
-
return { connectSecret: raw.connect_secret };
|
|
67
|
-
}
|
|
68
58
|
export function parseSignedCert(raw) {
|
|
69
59
|
return {
|
|
70
60
|
certPem: raw.cert_pem,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/tunnels/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,MAAM,CAAN,IAAY,OAGX;AAHD,WAAY,OAAO;IACjB,wBAAa,CAAA;IACb,sCAA2B,CAAA;AAC7B,CAAC,EAHW,OAAO,KAAP,OAAO,QAGlB;AAED
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/tunnels/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,MAAM,CAAN,IAAY,OAGX;AAHD,WAAY,OAAO;IACjB,wBAAa,CAAA;IACb,sCAA2B,CAAA;AAC7B,CAAC,EAHW,OAAO,KAAP,OAAO,QAGlB;AAED;;;;;;;;;GASG;AACH,MAAM,CAAN,IAAY,YAIX;AAJD,WAAY,YAAY;IACtB,+CAA+B,CAAA;IAC/B,iCAAiB,CAAA;IACjB,mCAAmB,CAAA;AACrB,CAAC,EAJW,YAAY,KAAZ,YAAY,QAIvB;AA8DD,SAAS,SAAS,CAAC,CAA4B;IAC7C,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC;IAC/C,OAAO,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC;AACrB,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,GAAc;IACxC,IAAI,OAAO,GAAG,CAAC,WAAW,KAAK,QAAQ,IAAI,GAAG,CAAC,WAAW,KAAK,EAAE,EAAE,CAAC;QAClE,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAC;IAC1E,CAAC;IACD,IAAI,OAAO,GAAG,CAAC,IAAI,KAAK,QAAQ,IAAI,GAAG,CAAC,IAAI,KAAK,EAAE,EAAE,CAAC;QACpD,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;IACnE,CAAC;IACD,OAAO;QACL,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;QAClB,cAAc,EAAE,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC;QAC3C,UAAU,EAAE,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC;QACnC,OAAO,EAAE,GAAG,CAAC,QAAmB;QAChC,OAAO,EAAE,GAAG,CAAC,QAAQ,IAAI,IAAI;QAC7B,qBAAqB,EAAE,GAAG,CAAC,uBAAuB,IAAI,IAAI;QAC1D,aAAa,EAAE,SAAS,CAAC,GAAG,CAAC,eAAe,CAAC;QAC7C,MAAM,EAAE,GAAG,CAAC,MAAM;QAClB,eAAe,EAAE,SAAS,CAAC,GAAG,CAAC,iBAAiB,CAAC;QACjD,mBAAmB,EAAE,GAAG,CAAC,sBAAsB,IAAI,IAAI;QACvD,kBAAkB,EAAE,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC;QACpD,UAAU,EAAE,GAAG,CAAC,WAAW;QAC3B,IAAI,EAAE,GAAG,CAAC,IAAI;QACd,QAAQ,EACN,GAAG,CAAC,QAAQ,IAAI,OAAO,GAAG,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,GAAG,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE;QAC7E,SAAS,EAAE,IAAI,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC;QACnC,SAAS,EAAE,IAAI,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC;KACpC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,GAAkB;IAChD,OAAO;QACL,OAAO,EAAE,GAAG,CAAC,QAAQ;QACrB,QAAQ,EAAE,GAAG,CAAC,SAAS;QACvB,qBAAqB,EAAE,GAAG,CAAC,uBAAuB;QAClD,aAAa,EAAE,IAAI,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC;KAC7C,CAAC;AACJ,CAAC"}
|
package/package.json
CHANGED